diff --git a/.github/guides/AUTODOC.md b/.github/guides/AUTODOC.md
index dd2f30627b7d..90e5b2d1ac66 100644
--- a/.github/guides/AUTODOC.md
+++ b/.github/guides/AUTODOC.md
@@ -1,9 +1,9 @@
# dmdoc
-[DOCUMENTATION]: **PUT DOCUMENTATION LINK HERE**
+[DOCUMENTATION]: https://docs.cm-ss13.com/
[BYOND]: https://secure.byond.com/
-[DMDOC]: https://github.com/SpaceManiac/SpacemanDMM/tree/master/src/dmdoc
+[DMDOC]: https://github.com/SpaceManiac/SpacemanDMM/tree/master/crates/dmdoc
[DMDOC] is a documentation generator for DreamMaker, the scripting language
of the [BYOND] game engine. It produces simple static HTML files based on
@@ -13,9 +13,9 @@ We use **dmdoc** to generate [DOCUMENTATION] for our code, and that documentatio
is automatically generated and built on every new commit to the master branch
This gives new developers a clickable reference [DOCUMENTATION] they can browse to better help
-gain understanding of the /tg/station codebase structure and api reference.
+gain understanding of the CM-SS13 codebase structure and api reference.
-## Documenting code on /tg/station
+## Documenting code on CM-SS13
We use block comments to document procs and classes, and we use `///` line comments
when documenting individual variables.
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 8d7b4133840c..e2390c9fe817 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -89,6 +89,19 @@
],
"group": "build",
"label": "tgui: sonar"
+ },
+ {
+ "type": "shell",
+ "command": "bin/tgfont",
+ "windows": {
+ "command": ".\\bin\\tgfont.cmd"
+ },
+ "problemMatcher": [
+ "$tsc",
+ "$eslint-stylish"
+ ],
+ "group": "build",
+ "label": "tgui: rebuild tgfont"
}
]
}
diff --git a/bin/tgfont.cmd b/bin/tgfont.cmd
new file mode 100644
index 000000000000..b768c81d653a
--- /dev/null
+++ b/bin/tgfont.cmd
@@ -0,0 +1,2 @@
+@echo off
+call "%~dp0\..\tools\build\build.bat" --wait-on-error tg-font %*
diff --git a/code/__DEFINES/ARES.dm b/code/__DEFINES/ARES.dm
index a1b82af25821..0e3cc4a8ff6e 100644
--- a/code/__DEFINES/ARES.dm
+++ b/code/__DEFINES/ARES.dm
@@ -1,21 +1,22 @@
+#define ARES_ACCESS_LOGOUT 0
/// Generic access for 1:1 conversations with ARES and unrestricted commands.
-#define ARES_ACCESS_BASIC 0
+#define ARES_ACCESS_BASIC 1
/// Secure Access, can read ARES Announcements and Bioscans.
-#define ARES_ACCESS_COMMAND 1
-#define ARES_ACCESS_JOE 2
+#define ARES_ACCESS_COMMAND 2
+#define ARES_ACCESS_JOE 3
/// CL, can read Apollo Log and also Delete Announcements.
-#define ARES_ACCESS_CORPORATE 3
+#define ARES_ACCESS_CORPORATE 4
/// Senior Command, can Delete Bioscans.
-#define ARES_ACCESS_SENIOR 4
+#define ARES_ACCESS_SENIOR 5
/// Synth, CE & Commanding Officer, can read the access log.
-#define ARES_ACCESS_CE 5
-#define ARES_ACCESS_SYNTH 6
-#define ARES_ACCESS_CO 7
+#define ARES_ACCESS_CE 6
+#define ARES_ACCESS_SYNTH 7
+#define ARES_ACCESS_CO 8
/// High Command, can read the deletion log.
-#define ARES_ACCESS_HIGH 8
-#define ARES_ACCESS_WY_COMMAND 9
+#define ARES_ACCESS_HIGH 9
+#define ARES_ACCESS_WY_COMMAND 10
/// Debugging. Allows me to view everything without using a high command rank. Unlikely to stay in a full merge.
-#define ARES_ACCESS_DEBUG 10
+#define ARES_ACCESS_DEBUG 11
#define ARES_RECORD_ANNOUNCE "Announcement Record"
#define ARES_RECORD_ANTIAIR "AntiAir Control Log"
@@ -67,6 +68,12 @@
#define TICKET_OPEN "OPEN"
#define TICKET_CLOSED "CLOSED"
+// Priority status changes.
+/// Upgraded to Priority
+#define TICKET_PRIORITY "priority"
+/// Downgraded from Priority
+#define TICKET_NON_PRIORITY "non-priority"
+
/// Cooldowns
#define COOLDOWN_ARES_SENSOR 60 SECONDS
#define COOLDOWN_ARES_ACCESS_CONTROL 20 SECONDS
diff --git a/code/__DEFINES/__game.dm b/code/__DEFINES/__game.dm
index ead4c9665c7c..a03701045768 100644
--- a/code/__DEFINES/__game.dm
+++ b/code/__DEFINES/__game.dm
@@ -1,9 +1,3 @@
-#define RANGE_TURFS(RADIUS, CENTER) \
-block( \
- locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \
- locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \
-)
-
//Admin perms are in global.dm.
/// To make it even more clear that something is a bitfield.
@@ -283,7 +277,7 @@ block( \
// Helpers
/// Only use the CEILING_PROTECTION_TIER_X defines for `protection_level`
-#define CEILING_IS_PROTECTED(ceiling, protection_level) (ceiling >= protection_level)
+#define CEILING_IS_PROTECTED(ceiling, protection_level) ((ceiling) >= (protection_level))
// Default font settings
#define FONT_SIZE "5pt"
@@ -379,6 +373,7 @@ block( \
#define WALL_DEVWALL "devwall"
#define WALL_DEVWALL_R "devwall_r"
#define WALL_HUNTERSHIP "metal"//DMI specific name
+#define WALL_AICORE "aiwall"
//Defines for dropship weapon gimbals
#define GIMBAL_LEFT -1
@@ -536,7 +531,7 @@ block( \
/// `amount` - The number to get per time
/// `time` - The time period in which to gain this amount
/// To be used with delta_time. Multiplied by 10 to convert from deciseconds to seconds
-#define AMOUNT_PER_TIME(amount, time) ((amount / (time))*10)
+#define AMOUNT_PER_TIME(amount, time) (((amount) / (time))*10)
// Local message mode. Used to decide wheter message should be dispatched on the radio.
#define MESSAGE_MODE_LOCAL 1
diff --git a/code/__DEFINES/_math.dm b/code/__DEFINES/_math.dm
index 138adeeda451..d7c068237987 100644
--- a/code/__DEFINES/_math.dm
+++ b/code/__DEFINES/_math.dm
@@ -14,6 +14,8 @@
#define CEILING(x, y) ( -round(-(x) / (y)) * (y) )
+#define ROUND_UP(x) ( -round(-(x)))
+
// round() acts like floor(x, 1) by default but can't handle other values
#define FLOOR(x, y) ( round((x) / (y)) * (y) )
@@ -21,10 +23,10 @@
#define MODULUS(x, y) ( (x) - (y) * round((x) / (y)) )
// Returns true if val is from min to max, inclusive.
-#define ISINRANGE(val, min, max) (min <= val && val <= max)
+#define ISINRANGE(val, min, max) ((min) <= (val) && (val) <= (max))
// Same as above, exclusive.
-#define ISINRANGE_EX(val, min, max) (min < val && val < max)
+#define ISINRANGE_EX(val, min, max) ((min) < (val) && (val) < (max))
// Will filter out extra rotations and negative rotations
// E.g: 540 becomes 180. -180 becomes 180.
@@ -34,4 +36,4 @@
#define SIGN(x) ( ((x) > 0) - ((x) < 0) )
/// Performs a linear interpolation between a and b. Note that amount=0 returns a, amount=1 returns b, and amount=0.5 returns the mean of a and b.
-#define LERP(a, b, amount) ( amount ? ((a) + ((b) - (a)) * (amount)) : a )
+#define LERP(a, b, amount) ( (amount) ? ((a) + ((b) - (a)) * (amount)) : (a) )
diff --git a/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm
index 9846e974827e..e6e1e64e9c7e 100644
--- a/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm
+++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm
@@ -71,3 +71,10 @@
/// From /obj/effect/alien/resin/special/eggmorph/attack_alien: (mob/living/carbon/xenomorph/M)
#define COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER "xeno_take_hugger_from_morpher"
+
+/// From /mob/living/carbon/xenomorph/proc/handle_crit()
+#define COMSIG_XENO_ENTER_CRIT "xeno_entering_critical"
+
+/// From /mob/living/carbon/xenomorph/proc/hivemind_talk(): (message)
+#define COMSIG_XENO_TRY_HIVEMIND_TALK "xeno_try_hivemind_talk"
+ #define COMPONENT_OVERRIDE_HIVEMIND_TALK (1<<0)
diff --git a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm
index 710e4d9ae20a..f4df347c62db 100644
--- a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm
+++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm
@@ -75,9 +75,13 @@
#define COMSIG_MOB_PRE_CLICK "mob_pre_click"
#define COMPONENT_INTERRUPT_CLICK (1<<0)
-///from base of /mob/Login(): ()
+/// From base of /mob/Login(), called when a client logs into this mob: ()
+/// Not to be confused with [COMSIG_MOB_LOGGED_IN]
#define COMSIG_MOB_LOGIN "mob_login"
-///from base of /mob/Logout(): ()
+/// From base of /mob/Login(), called after a client logs into this mob: ()
+/// Not to be confused with [COMSIG_MOB_LOGIN]
+#define COMSIG_MOB_LOGGED_IN "mob_logged_in"
+/// From base of /mob/Logout(): ()
#define COMSIG_MOB_LOGOUT "mob_logout"
/// From /mob/proc/change_real_name(): (old_name, new_name)
@@ -109,6 +113,12 @@
#define COMSIG_MOB_EMOTED(emote_key) "mob_emoted_[emote_key]"
+#define COMSIG_MOB_TRY_EMOTE "mob_try_emote"
+ #define COMPONENT_OVERRIDE_EMOTE (1<<0)
+
+#define COMSIG_MOB_TRY_POINT "mob_try_point"
+ #define COMPONENT_OVERRIDE_POINT (1<<0)
+
//from /mob/living/set_stat()
#define COMSIG_MOB_STAT_SET_ALIVE "mob_stat_set_alive"
//from /mob/living/set_stat()
diff --git a/code/__DEFINES/dcs/signals/atom/signals_atom.dm b/code/__DEFINES/dcs/signals/atom/signals_atom.dm
index d9bd1202c159..4e4458232669 100644
--- a/code/__DEFINES/dcs/signals/atom/signals_atom.dm
+++ b/code/__DEFINES/dcs/signals/atom/signals_atom.dm
@@ -1,6 +1,7 @@
/// From /atom/proc/Decorate
#define COMSIG_ATOM_DECORATED "atom_decorated"
-
+//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization and has a loc
+#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON "atom_init_success_on"
///from base of atom/setDir(): (old_dir, new_dir). Called before the direction changes.
#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change"
diff --git a/code/__DEFINES/dcs/signals/atom/signals_turf.dm b/code/__DEFINES/dcs/signals/atom/signals_turf.dm
index 6a0788bcf871..881ffc3ee139 100644
--- a/code/__DEFINES/dcs/signals/atom/signals_turf.dm
+++ b/code/__DEFINES/dcs/signals/atom/signals_turf.dm
@@ -19,3 +19,6 @@
///from /turf/closed/wall/proc/place_poster
#define COMSIG_POSTER_PLACED "poster_placed"
+
+///from base of /datum/turf_reservation/proc/Release: (datum/turf_reservation/reservation)
+#define COMSIG_TURF_RESERVATION_RELEASED "turf_reservation_released"
diff --git a/code/__DEFINES/dcs/signals/signals_client.dm b/code/__DEFINES/dcs/signals/signals_client.dm
index 3968f654c486..36a60c153d0f 100644
--- a/code/__DEFINES/dcs/signals/signals_client.dm
+++ b/code/__DEFINES/dcs/signals/signals_client.dm
@@ -19,8 +19,8 @@
/// Called after one or more verbs are added: (list of verbs added)
#define COMSIG_CLIENT_VERB_REMOVED "client_verb_removed"
-/// Called after a client logs into a mob: (mob)
-#define COMSIG_CLIENT_MOB_LOGIN "client_mob_changed"
+/// Called from /mob/Login() after a client logs into a mob: (mob)
+#define COMSIG_CLIENT_MOB_LOGGED_IN "client_mob_logged_in"
/// Called when something is added to a client's screen : /client/proc/add_to_screen(screen_add)
#define COMSIG_CLIENT_SCREEN_ADD "client_screen_add"
diff --git a/code/__DEFINES/dcs/signals/signals_datum.dm b/code/__DEFINES/dcs/signals/signals_datum.dm
index 7696d8ad6037..b798d510763e 100644
--- a/code/__DEFINES/dcs/signals/signals_datum.dm
+++ b/code/__DEFINES/dcs/signals/signals_datum.dm
@@ -64,3 +64,6 @@
// from /proc/update_living_queens() : /mob/living/carbon/xenomorph/queen
#define COMSIG_HIVE_NEW_QUEEN "hive_new_queen"
+
+/// Fired on the lazy template datum when the template is finished loading. (list/loaded_atom_movables, list/loaded_turfs, list/loaded_areas)
+#define COMSIG_LAZY_TEMPLATE_LOADED "lazy_template_loaded"
diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm
index 5569ded71586..378948347a81 100644
--- a/code/__DEFINES/dcs/signals/signals_global.dm
+++ b/code/__DEFINES/dcs/signals/signals_global.dm
@@ -8,6 +8,8 @@
///from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
#define COMSIG_GLOB_NEW_Z "!new_z"
+/// sent after world.maxx and/or world.maxy are expanded: (has_exapnded_world_maxx, has_expanded_world_maxy)
+#define COMSIG_GLOB_EXPANDED_WORLD_BOUNDS "!expanded_world_bounds"
///from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
#define COMSIG_GLOB_VEHICLE_ORDERED "!vehicle_ordered"
/// from /datum/controller/subsystem/ticker/fire
@@ -32,9 +34,11 @@
#define COMSIG_GLOB_REMOVE_VOTE_BUTTON "!remove_vote_button"
-#define COMSIG_GLOB_CLIENT_LOGIN "!client_login"
+/// Called from /client/New() when a client logs in to the game: (client)
+#define COMSIG_GLOB_CLIENT_LOGGED_IN "!client_logged_in"
-#define COMSIG_GLOB_MOB_LOGIN "!mob_login"
+/// Called from /mob/Login() when a client logs into a mob: (mob)
+#define COMSIG_GLOB_MOB_LOGGED_IN "!mob_logged_in"
///from /datum/controller/subsystem/ticker/PostSetup
#define COMSIG_GLOB_POST_SETUP "!post_setup"
@@ -66,7 +70,7 @@
#define COMSIG_GLOB_RESEARCH_LOCKDOWN "!research_lockdown_closed"
#define COMSIG_GLOB_RESEARCH_LIFT "!research_lockdown_opened"
-/// From /obj/structure/machinery/power/fusion_engine/proc/set_overloading() : (set_overloading)
+/// From /obj/structure/machinery/power/reactor/proc/set_overloading() : (set_overloading)
#define COMSIG_GLOB_GENERATOR_SET_OVERLOADING "!generator_set_overloading"
#define COMSIG_GLOB_HIJACK_IMPACTED "!hijack_impacted"
diff --git a/code/__DEFINES/dropships.dm b/code/__DEFINES/dropships.dm
index f7df570a2864..d53e7c68d8db 100644
--- a/code/__DEFINES/dropships.dm
+++ b/code/__DEFINES/dropships.dm
@@ -10,3 +10,8 @@
#define DROPSHIP_MIN_AUTO_DELAY 10 SECONDS
#define DROPSHIP_AUTO_RETRY_COOLDOWN 20 SECONDS
#define DROPSHIP_MEDEVAC_COOLDOWN 20 SECONDS
+
+//Hatches states
+#define SHUTTLE_DOOR_BROKEN -1
+#define SHUTTLE_DOOR_UNLOCKED 0
+#define SHUTTLE_DOOR_LOCKED 1
diff --git a/code/__DEFINES/human.dm b/code/__DEFINES/human.dm
index ebf08f495752..c0a5e837c554 100644
--- a/code/__DEFINES/human.dm
+++ b/code/__DEFINES/human.dm
@@ -182,8 +182,8 @@
//Synthetic Defines
#define SYNTH_COLONY "Third Generation Colonial Synthetic"
-#define SYNTH_COLONY_GEN_TWO "First Generation Colonial Synthetic"
-#define SYNTH_COLONY_GEN_ONE "Second Generation Colonial Synthetic"
+#define SYNTH_COLONY_GEN_TWO "Second Generation Colonial Synthetic"
+#define SYNTH_COLONY_GEN_ONE "First Generation Colonial Synthetic"
#define SYNTH_COMBAT "Combat Synthetic"
#define SYNTH_INFILTRATOR "Infiltrator Synthetic"
#define SYNTH_WORKING_JOE "Working Joe"
diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm
index f4503aeea5d5..4b8fd9bd58b3 100644
--- a/code/__DEFINES/keybinding.dm
+++ b/code/__DEFINES/keybinding.dm
@@ -165,6 +165,8 @@
#define COMSIG_KB_XENO_HIVE_STATUS "keybinding_hive_status"
#define COMSIG_KB_XENO_HIDE "keybinding_hide"
#define COMSIG_KB_XENO_EVOLVE "keybinding_evolve"
+#define COMSIG_KB_XENO_PURCHASE_STRAIN "keybinding_purchase_strain"
+
// Yautja
#define COMSIG_KB_YAUTJA_BUTCHER "keybinding_yautja_butcher"
diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm
index 155a91fa62ed..ef3d17572f0d 100644
--- a/code/__DEFINES/maps.dm
+++ b/code/__DEFINES/maps.dm
@@ -118,8 +118,5 @@ require only minor tweaks.
#define MAP_ARMOR_STYLE_JUNGLE "jungle"
#define MAP_ARMOR_STYLE_PRISON "prison"
-//turf-only flags
-#define NOJAUNT_1 (1<<0)
-#define UNUSED_RESERVATION_TURF (1<<1)
-/// If a turf can be made dirty at roundstart. This is also used in areas.
-#define CAN_BE_DIRTY_1 (1<<2)
+/// A map key that corresponds to being one exclusively for Space.
+#define SPACE_KEY "space"
diff --git a/code/__DEFINES/mob_hud.dm b/code/__DEFINES/mob_hud.dm
index 02f992694832..c451d01d3c90 100644
--- a/code/__DEFINES/mob_hud.dm
+++ b/code/__DEFINES/mob_hud.dm
@@ -35,7 +35,7 @@
#define MOB_HUD_XENO_INFECTION 6
#define MOB_HUD_XENO_STATUS 7
#define MOB_HUD_XENO_HOSTILE 8
-#define MOB_HUD_FACTION_USCM 9
+#define MOB_HUD_FACTION_MARINE 9
#define MOB_HUD_FACTION_OBSERVER 10
#define MOB_HUD_FACTION_UPP 11
#define MOB_HUD_FACTION_WY 12
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index 7ec2ab8b975e..e2bd868f9a80 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -309,77 +309,6 @@
#define CAN_HOLD_TWO_HANDS 1
#define CAN_HOLD_ONE_HAND 2
-// ------------ //
-// STRAIN FLAGS //
-// ------------ //
-
-// Queen strain flags
-#define QUEEN_NORMAL "Normal"
-
-// Facehugger strain flags
-#define FACEHUGGER_NORMAL "Normal"
-#define FACEHUGGER_WATCHER "Watcher"
-
-// Drone strain flags
-#define DRONE_NORMAL "Normal"
-#define DRONE_HEALER "Healer"
-#define DRONE_GARDENER "Gardener"
-
-// Hivelord strain flags
-#define HIVELORD_NORMAL "Normal"
-#define HIVELORD_RESIN_WHISPERER "Resin Whisperer"
-
-// Carrier strain flags
-#define CARRIER_NORMAL "Normal"
-#define CARRIER_EGGSAC "Eggsac"
-
-// Burrower strain flags
-#define BURROWER_NORMAL "Normal"
-#define BURROWER_TREMOR "Tremor"
-
-// Sentinel strain flags
-#define SENTINEL_NORMAL "Normal"
-
-// Spitter strain flags
-#define SPITTER_NORMAL "Normal"
-
-// Boiler strain flags
-#define BOILER_NORMAL "Normal"
-#define BOILER_TRAPPER "Trapper"
-
-// Runner strain flags
-#define RUNNER_NORMAL "Normal"
-#define RUNNER_ACIDER "Acider"
-
-// Lurker strain flags
-#define LURKER_NORMAL "Normal"
-#define LURKER_VAMPIRE "Vampire"
-// Ravager strain flags
-#define RAVAGER_NORMAL "Normal"
-#define RAVAGER_HEDGEHOG "Hedgehog"
-#define RAVAGER_BERSERKER "Berserker"
-
-// Defender strain flags
-#define DEFENDER_NORMAL "Normal"
-#define DEFENDER_STEELCREST "Steelcrest"
-
-// Warrior strain flags
-#define WARRIOR_NORMAL "Normal"
-
-// Crusher strain flags
-#define CRUSHER_NORMAL "Normal"
-#define CRUSHER_CHARGER "Charger"
-
-// Praetorian strain flags
-#define PRAETORIAN_NORMAL "Normal"
-#define PRAETORIAN_VANGUARD "Vanguard"
-#define PRAETORIAN_DANCER "Dancer"
-#define PRAETORIAN_WARDEN "Warden"
-#define PRAETORIAN_OPPRESSOR "Oppressor"
-
-// Hellhound strain flags
-#define HELLHOUND_NORMAL "Normal"
-
GLOBAL_LIST_INIT(default_onmob_icons, list(
WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_0.dmi',
WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_0.dmi',
@@ -452,4 +381,3 @@ GLOBAL_LIST_INIT(default_xeno_onmob_icons, list(
#define MOBILITY_FLAGS_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND)
#define MOBILITY_FLAGS_CARBON_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN)
#define MOBILITY_FLAGS_REST_CAPABLE_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN)
-
diff --git a/code/__DEFINES/mode.dm b/code/__DEFINES/mode.dm
index 2b018c0a2810..ef3dfb03b337 100644
--- a/code/__DEFINES/mode.dm
+++ b/code/__DEFINES/mode.dm
@@ -279,6 +279,7 @@ DEFINE_BITFIELD(whitelist_status, list(
#define FACTION_LIST_MERCENARY list(FACTION_MERCENARY)
#define FACTION_LIST_MARSHAL list(FACTION_MARSHAL)
#define FACTION_LIST_DUTCH list(FACTION_DUTCH)
+#define FACTION_LIST_SURVIVOR_WY list(FACTION_SURVIVOR, FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY)
#define FACTION_LIST_MARINE_WY list(FACTION_MARINE, FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY)
#define FACTION_LIST_MARINE_UPP list(FACTION_MARINE, FACTION_UPP)
#define FACTION_LIST_MARINE_TWE list(FACTION_MARINE, FACTION_TWE)
diff --git a/code/__DEFINES/objects.dm b/code/__DEFINES/objects.dm
index 292b315360c5..d495c8e8c012 100644
--- a/code/__DEFINES/objects.dm
+++ b/code/__DEFINES/objects.dm
@@ -175,3 +175,8 @@ GLOBAL_LIST_INIT(RESTRICTED_CAMERA_NETWORKS, list( //Those networks can only be
#define CHECKS_PASSED 1
#define STILL_ON_COOLDOWN 2
#define NO_LIGHT_STATE_CHANGE 3
+
+//tool capabilities or something i don't know
+#define REMOVE_CROWBAR (1<<0)
+#define BREAK_CROWBAR (1<<1)
+#define REMOVE_SCREWDRIVER (1<<2)
diff --git a/code/__DEFINES/sentry_laptop_configurations.dm b/code/__DEFINES/sentry_laptop_configurations.dm
index 8626ba2cfaee..6f4e2bec14ca 100644
--- a/code/__DEFINES/sentry_laptop_configurations.dm
+++ b/code/__DEFINES/sentry_laptop_configurations.dm
@@ -1,4 +1,3 @@
-#define FACTION_USCM "USCM"
#define FACTION_WEYLAND "WY"
#define FACTION_HUMAN "HUMAN"
#define FACTION_COLONY "COLONY"
diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm
index a3299184e4ef..af3e164deb71 100644
--- a/code/__DEFINES/shuttles.dm
+++ b/code/__DEFINES/shuttles.dm
@@ -41,7 +41,7 @@
#define TRANSIT_REQUEST 1
#define TRANSIT_READY 2
-#define SHUTTLE_TRANSIT_BORDER 8
+#define SHUTTLE_TRANSIT_BORDER 16
#define PARALLAX_LOOP_TIME 25
#define HYPERSPACE_END_TIME 5
@@ -96,8 +96,8 @@
#define MOBILE_SHUTTLE_ID_ERT2 "ert_pmc_shuttle"
#define MOBILE_SHUTTLE_ID_ERT3 "ert_upp_shuttle"
#define MOBILE_SHUTTLE_ID_ERT4 "ert_twe_shuttle"
-#define MOBILE_SHUTTLE_ID_ERT_SMALL "ert_rescue_shuttle"
-#define MOBILE_SHUTTLE_ID_ERT_BIG "ert_boarding_shuttle"
+#define MOBILE_SHUTTLE_ID_ERT_SMALL "ert_small_shuttle_north"
+#define MOBILE_SHUTTLE_ID_ERT_BIG "ert_shuttle_big"
#define MOBILE_TRIJENT_ELEVATOR "trijentshuttle2"
#define STAT_TRIJENT_EMPTY "trijent_empty"
@@ -134,3 +134,11 @@
#define ESCAPE_SHUTTLE_SOUTH_PREFIX "escape_shuttle_s"
#define ESCAPE_SHUTTLE_DOCK_PREFIX "almayer-hangar-escape-shuttle-"
+
+#define ERT_SHUTTLE_DEFAULT_RECHARGE 90 SECONDS
+
+#define ADMIN_LANDING_PAD_1 "base-ert1"
+#define ADMIN_LANDING_PAD_2 "base-ert2"
+#define ADMIN_LANDING_PAD_3 "base-ert3"
+#define ADMIN_LANDING_PAD_4 "base-ert4"
+#define ADMIN_LANDING_PAD_5 "base-ert5"
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 96335a3c1acf..47aa0e732c76 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -146,8 +146,9 @@
#define SS_INIT_DATABASE -27
#define SS_INIT_ENTITYMANAGER -28
#define SS_INIT_PLAYTIME -29
-#define SS_INIT_PREDSHIPS -30
-#define SS_INIT_OBJECTIVES -31
+#define SS_INIT_STICKY -30
+#define SS_INIT_PREDSHIPS -31
+#define SS_INIT_OBJECTIVES -32
#define SS_INIT_MINIMAP -34
#define SS_INIT_STATPANELS -98
#define SS_INIT_CHAT -100 //Should be last to ensure chat remains smooth during init.
diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm
index fdfec5e8ca08..a4fb6d40be73 100644
--- a/code/__DEFINES/tgs.dm
+++ b/code/__DEFINES/tgs.dm
@@ -1,6 +1,6 @@
// tgstation-server DMAPI
-#define TGS_DMAPI_VERSION "7.0.2"
+#define TGS_DMAPI_VERSION "7.1.1"
// All functions and datums outside this document are subject to change with any version and should not be relied on.
@@ -50,6 +50,13 @@
#endif
+#ifndef TGS_FILE2TEXT_NATIVE
+#ifdef file2text
+#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You can fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses
+#endif
+#define TGS_FILE2TEXT_NATIVE file2text
+#endif
+
// EVENT CODES
/// Before a reboot mode change, extras parameters are the current and new reboot mode enums.
@@ -490,6 +497,16 @@
/world/proc/TgsChatChannelInfo()
return
+/**
+ * Trigger an event in TGS. Requires TGS version >= 6.3.0. Returns [TRUE] if the event was triggered successfully, [FALSE] otherwise. This function may sleep!
+ *
+ * event_name - The name of the event to trigger
+ * parameters - Optional list of string parameters to pass as arguments to the event script. The first parameter passed to a script will always be the running game's directory followed by these parameters.
+ * wait_for_completion - If set, this function will not return until the event has run to completion.
+ */
+/world/proc/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE)
+ return
+
/*
The MIT License
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index dc714472510a..010c74c404c4 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -159,6 +159,8 @@
#define TRAIT_DAZED "dazed"
/// Apply this to identify a mob as merged with weeds
#define TRAIT_MERGED_WITH_WEEDS "merged_with_weeds"
+/// Apply this to identify a mob as temporarily muted
+#define TRAIT_TEMPORARILY_MUTED "temporarily_muted"
// SPECIES TRAITS
/// Knowledge of Yautja technology
@@ -265,6 +267,9 @@
#define TRAIT_GUN_LIGHT_DEACTIVATED "t_gun_light_deactivated"
+/// If this ID belongs to an ERT member
+#define TRAIT_ERT_ID "ert_id"
+
// Miscellaneous item traits.
// Do NOT bloat this category, if needed make a new category (like shoe traits, xeno item traits...)
@@ -422,6 +427,8 @@ GLOBAL_LIST(trait_name_map)
///Status trait coming from ability
#define TRAIT_SOURCE_ABILITY(ability) "t_s_ability_[ability]"
#define TRAIT_SOURCE_LIMB(limb) "t_s_limb_[limb]"
+///Status trait coming from temporary_mute
+#define TRAIT_SOURCE_TEMPORARY_MUTE "t_s_temporary_mute"
///Status trait forced by the xeno action charge
#define TRAIT_SOURCE_XENO_ACTION_CHARGE "t_s_xeno_action_charge"
///Status trait coming from a xeno nest
@@ -462,6 +469,8 @@ GLOBAL_LIST(trait_name_map)
#define XENO_WEED_TRAIT "xeno_weed"
/// traits associated with actively interacted machinery
#define INTERACTION_TRAIT "interaction"
+/// traits associated with interacting with a dropship
+#define TRAIT_SOURCE_DROPSHIP_INTERACTION "dropship_interaction"
/// traits bound by stunned status effects
#define STUNNED_TRAIT "stunned"
/// traits bound by knocked_down status effect
diff --git a/code/__DEFINES/turf_flags.dm b/code/__DEFINES/turf_flags.dm
index d7b3e90811d8..19dc17191d7c 100644
--- a/code/__DEFINES/turf_flags.dm
+++ b/code/__DEFINES/turf_flags.dm
@@ -1,3 +1,12 @@
+//turf_flags values
+/// Marks a turf as organic. Used for alien wall and membranes.
+#define TURF_ORGANIC (1<<0)
+/// If a turf is an usused reservation turf awaiting assignment
+#define UNUSED_RESERVATION_TURF (1<<1)
+/// If a turf is a reserved turf
+#define RESERVATION_TURF (1<<2)
+
+//ChangeTurf options to change its behavior
#define CHANGETURF_DEFER_CHANGE (1<<0)
/// This flag prevents changeturf from gathering air from nearby turfs to fill the new turf with an approximation of local air
#define CHANGETURF_IGNORE_AIR (1<<1)
@@ -5,12 +14,3 @@
/// A flag for PlaceOnTop to just instance the new turf instead of calling ChangeTurf. Used for uninitialized turfs NOTHING ELSE
#define CHANGETURF_SKIP (1<<3)
-#define IS_OPAQUE_TURF(turf) (turf.directional_opacity == ALL_CARDINALS)
-
-/// Marks a turf as organic. Used for alien wall and membranes.
-#define TURF_ORGANIC (1<<0)
-
-
-#define REMOVE_CROWBAR (1<<0)
-#define BREAK_CROWBAR (1<<1)
-#define REMOVE_SCREWDRIVER (1<<2)
diff --git a/code/__DEFINES/turfs.dm b/code/__DEFINES/turfs.dm
new file mode 100644
index 000000000000..b9a80d4ab257
--- /dev/null
+++ b/code/__DEFINES/turfs.dm
@@ -0,0 +1,29 @@
+#define RANGE_TURFS(RADIUS, CENTER) \
+block( \
+ locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \
+ locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \
+)
+
+#define RECT_TURFS(H_RADIUS, V_RADIUS, CENTER) \
+ block( \
+ locate(max((CENTER).x-(H_RADIUS),1), max((CENTER).y-(V_RADIUS),1), (CENTER).z), \
+ locate(min((CENTER).x+(H_RADIUS),world.maxx), min((CENTER).y+(V_RADIUS),world.maxy), (CENTER).z) \
+ )
+
+///Returns all turfs in a zlevel
+#define Z_TURFS(ZLEVEL) block(locate(1,1,ZLEVEL), locate(world.maxx, world.maxy, ZLEVEL))
+
+/// Returns a list of turfs in the rectangle specified by BOTTOM LEFT corner and height/width, checks for being outside the world border for you
+#define CORNER_BLOCK(corner, width, height) CORNER_BLOCK_OFFSET(corner, width, height, 0, 0)
+
+/// Returns a list of turfs similar to CORNER_BLOCK but with offsets
+#define CORNER_BLOCK_OFFSET(corner, width, height, offset_x, offset_y) ((block(locate(corner.x + offset_x, corner.y + offset_y, corner.z), locate(min(corner.x + (width - 1) + offset_x, world.maxx), min(corner.y + (height - 1) + offset_y, world.maxy), corner.z))))
+
+/// Returns an outline (neighboring turfs) of the given block
+#define CORNER_OUTLINE(corner, width, height) ( \
+ CORNER_BLOCK_OFFSET(corner, width + 2, 1, -1, -1) + \
+ CORNER_BLOCK_OFFSET(corner, width + 2, 1, -1, height) + \
+ CORNER_BLOCK_OFFSET(corner, 1, height, -1, 0) + \
+ CORNER_BLOCK_OFFSET(corner, 1, height, width, 0))
+
+#define TURF_FROM_COORDS_LIST(List) (locate(List[1], List[2], List[3]))
diff --git a/code/__DEFINES/typecheck/generic_types.dm b/code/__DEFINES/typecheck/generic_types.dm
index d9fa3df55430..587108d5b5e6 100644
--- a/code/__DEFINES/typecheck/generic_types.dm
+++ b/code/__DEFINES/typecheck/generic_types.dm
@@ -11,6 +11,7 @@
#define ismovableatom(A) (ismovable(A))
#define isatom(A) (isloc(A))
#define isfloorturf(A) (istype(A, /turf/open/floor))
+#define isclosedturf(A) (istype(A, /turf/closed))
#define isweakref(D) (istype(D, /datum/weakref))
#define isgenerator(A) (istype(A, /generator))
diff --git a/code/__DEFINES/vendors.dm b/code/__DEFINES/vendors.dm
index 086b70a92428..dc78f7caa4d3 100644
--- a/code/__DEFINES/vendors.dm
+++ b/code/__DEFINES/vendors.dm
@@ -19,6 +19,8 @@
#define MARINE_CAN_BUY_COMBAT_ARMOR "combat_armor"
#define MARINE_CAN_BUY_KIT "kit"
#define MARINE_CAN_BUY_DRESS "dress"
+#define CIVILIAN_CAN_BUY_BACKPACK "civilian_backpack"
+#define CIVILIAN_CAN_BUY_UTILITY "civilian_utility"
#define MARINE_CAN_BUY_ALL list(MARINE_CAN_BUY_UNIFORM = 1, MARINE_CAN_BUY_SHOES = 1, MARINE_CAN_BUY_HELMET = 1, MARINE_CAN_BUY_ARMOR = 1, MARINE_CAN_BUY_GLOVES = 1, MARINE_CAN_BUY_EAR = 1, MARINE_CAN_BUY_BACKPACK = 1, MARINE_CAN_BUY_POUCH = 2, MARINE_CAN_BUY_BELT = 1, MARINE_CAN_BUY_GLASSES = 1, MARINE_CAN_BUY_MASK = 1, MARINE_CAN_BUY_ESSENTIALS = 1, MARINE_CAN_BUY_SECONDARY = 1, MARINE_CAN_BUY_ATTACHMENT = 1, MARINE_CAN_BUY_MRE = 1, MARINE_CAN_BUY_ACCESSORY = 1, MARINE_CAN_BUY_COMBAT_SHOES = 1, MARINE_CAN_BUY_COMBAT_HELMET = 1, MARINE_CAN_BUY_COMBAT_ARMOR = 1, MARINE_CAN_BUY_KIT = 1, MARINE_CAN_BUY_DRESS = 99)
diff --git a/code/__DEFINES/xeno.dm b/code/__DEFINES/xeno.dm
index e3a35d0c4744..fb9d6bfb4faf 100644
--- a/code/__DEFINES/xeno.dm
+++ b/code/__DEFINES/xeno.dm
@@ -62,6 +62,9 @@
#define ACID_SPRAY_LINE 0
#define ACID_SPRAY_CONE 1
+/// Defines for Abomination ability /datum/action/xeno_action/activable/feralfrenzy
+#define SINGLETARGETGUT 0
+#define AOETARGETGUT 1
#define WARDEN_HEAL_SHIELD 0
#define WARDEN_HEAL_HP 1
@@ -361,6 +364,48 @@
#define RESIN_CONSTRUCTION_NO_MAX -1
+// -------------- //
+// STRAIN DEFINES //
+// -------------- //
+
+// Facehugger strain flags
+#define FACEHUGGER_WATCHER "Watcher"
+
+// Drone strain flags
+#define DRONE_HEALER "Healer"
+#define DRONE_GARDENER "Gardener"
+
+// Hivelord strain flags
+#define HIVELORD_RESIN_WHISPERER "Resin Whisperer"
+
+// Carrier strain flags
+#define CARRIER_EGGSAC "Eggsac"
+
+// Boiler strain flags
+#define BOILER_TRAPPER "Trapper"
+
+// Runner strain flags
+#define RUNNER_ACIDER "Acider"
+
+// Lurker strain flags
+#define LURKER_VAMPIRE "Vampire"
+
+// Ravager strain flags
+#define RAVAGER_HEDGEHOG "Hedgehog"
+#define RAVAGER_BERSERKER "Berserker"
+
+// Defender strain flags
+#define DEFENDER_STEELCREST "Steelcrest"
+
+// Crusher strain flags
+#define CRUSHER_CHARGER "Charger"
+
+// Praetorian strain flags
+#define PRAETORIAN_VANGUARD "Vanguard"
+#define PRAETORIAN_DANCER "Dancer"
+#define PRAETORIAN_WARDEN "Warden"
+#define PRAETORIAN_OPPRESSOR "Oppressor"
+
/////////////////////////////////////////////////////////////////////////////////////
//
// Modifiers
@@ -660,7 +705,7 @@
// PARAMETERS:
// source_hive integer the hive to check the alliance of
// target_hive integer the target hive to see if the source_hive is allied to it.
-#define HIVE_ALLIED_TO_HIVE(source_hive, target_hive) (source_hive == target_hive || GLOB.hive_datum[source_hive]?.faction_is_ally(GLOB.hive_datum[target_hive]?.internal_faction))
+#define HIVE_ALLIED_TO_HIVE(source_hive, target_hive) ((source_hive) == (target_hive) || GLOB.hive_datum[source_hive]?.faction_is_ally(GLOB.hive_datum[target_hive]?.internal_faction))
#define QUEEN_SPAWN_TIMEOUT (2 MINUTES)
diff --git a/code/__HELPERS/#maths.dm b/code/__HELPERS/#maths.dm
index 825090bc4f3b..f8a9292d3806 100644
--- a/code/__HELPERS/#maths.dm
+++ b/code/__HELPERS/#maths.dm
@@ -9,7 +9,7 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4,
// MATH DEFINES
#define Ceiling(x) (-round(-(x)))
-#define CLAMP01(x) (clamp(x, 0, 1))
+#define CLAMP01(x) (clamp((x), 0, 1))
// cotangent
#define Cot(x) (1 / tan(x))
@@ -17,36 +17,36 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4,
// cosecant
#define Csc(x) (1 / sin(x))
-#define Default(a, b) (a ? a : b)
+#define Default(a, b) ((a) ? (a) : (b))
#define Floor(x) (round(x))
// Greatest Common Divisor - Euclid's algorithm
-#define Gcd(a, b) (b ? Gcd(b, a % b) : a)
+#define Gcd(a, b) ((b) ? Gcd((b), (a) % (b)) : (a))
-#define Inverse(x) (1 / x)
-#define IsEven(x) (x % 2 == 0)
+#define Inverse(x) (1 / (x))
+#define IsEven(x) ((x) % 2 == 0)
-#define IsInteger(x) (Floor(x) == x)
+#define IsInteger(x) (Floor(x) == (x))
#define IsOdd(x) (!IsEven(x))
-#define IsMultiple(x, y) (x % y == 0)
+#define IsMultiple(x, y) ((x) % (y) == 0)
// Least Common Multiple
-#define Lcm(a, b) (abs(a) / Gcd(a, b) * abs(b))
+#define Lcm(a, b) (abs(a) / Gcd((a), (b)) * abs(b))
// Returns the nth root of x.
-#define NRoot(n, x) (x ** (1 / n))
+#define NRoot(n, x) ((x) ** (1 / (n)))
// secant
#define Sec(x) (1 / cos(x))
// 57.2957795 = 180 / Pi
-#define ToDegrees(radians) (radians * 57.2957795)
+#define ToDegrees(radians) ((radians) * 57.2957795)
// 0.0174532925 = Pi / 180
-#define ToRadians(degrees) (degrees * 0.0174532925)
+#define ToRadians(degrees) ((degrees) * 0.0174532925)
// min is inclusive, max is exclusive
-#define WRAP(val, min, max) clamp(( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),min,max)
+#define WRAP(val, min, max) clamp(( (min) == (max) ? (min) : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),(min),(max))
// MATH PROCS
diff --git a/code/__HELPERS/lazy_templates.dm b/code/__HELPERS/lazy_templates.dm
new file mode 100644
index 000000000000..1a5dcf27f996
--- /dev/null
+++ b/code/__HELPERS/lazy_templates.dm
@@ -0,0 +1,10 @@
+GLOBAL_LIST_INIT(lazy_templates, generate_lazy_template_map())
+
+/**
+ * Iterates through all lazy template datums that exist and returns a list of them as an associative list of type -> instance.
+ * */
+/proc/generate_lazy_template_map()
+ . = list()
+ for(var/datum/lazy_template/template as anything in subtypesof(/datum/lazy_template))
+ .[template] = new template
+ return .
diff --git a/code/__HELPERS/lighting.dm b/code/__HELPERS/lighting.dm
index 08c360849b58..e768d9d1255c 100644
--- a/code/__HELPERS/lighting.dm
+++ b/code/__HELPERS/lighting.dm
@@ -1,3 +1,5 @@
+#define IS_OPAQUE_TURF(turf) (turf.directional_opacity == ALL_CARDINALS)
+
/// Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the [EMISSIVE_COLOR].
/proc/emissive_appearance(icon, icon_state = "", layer = FLOAT_LAYER, alpha = 255, appearance_flags = NONE)
var/mutable_appearance/appearance = mutable_appearance(icon, icon_state, layer, EMISSIVE_PLANE, alpha, appearance_flags | EMISSIVE_APPEARANCE_FLAGS)
diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm
index 30ef9428586d..9a8528aabcc3 100644
--- a/code/__HELPERS/lists.dm
+++ b/code/__HELPERS/lists.dm
@@ -534,7 +534,7 @@
//Copies a list, and all lists inside it recusively
//Does not copy any other reference type
-/proc/deepCopyList(list/L)
+/proc/deep_copy_list(list/L)
if(!islist(L))
return L
. = L.Copy()
@@ -545,10 +545,10 @@
continue
var/value = .[key]
if(islist(value))
- value = deepCopyList(value)
+ value = deep_copy_list(value)
.[key] = value
if(islist(key))
- key = deepCopyList(key)
+ key = deep_copy_list(key)
.[i] = key
.[key] = value
diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm
index c20db3da303f..59e4c7710992 100644
--- a/code/__HELPERS/logging.dm
+++ b/code/__HELPERS/logging.dm
@@ -209,10 +209,10 @@ GLOBAL_VAR_INIT(log_end, world.system_type == UNIX ? ascii2text(13) : "")
WRITE_LOG(GLOB.world_game_log, "MISC: [text]")
GLOB.STUI?.debug.Add("\[[time]]MISC: [text]")
-/proc/log_mutator(text)
- if(!GLOB.mutator_logs)
+/proc/log_strain(text)
+ if(!GLOB.strain_logs)
return
- WRITE_LOG(GLOB.mutator_logs, "[text]")
+ WRITE_LOG(GLOB.strain_logs, "[text]")
/proc/log_hiveorder(text)
var/time = time_stamp()
@@ -286,6 +286,16 @@ GLOBAL_PROTECT(config_error_log)
WRITE_LOG(GLOB.config_error_log, text)
SEND_TEXT(world.log, text)
+/// Logging for mapping errors
+/proc/log_mapping(text, skip_world_log)
+#ifdef UNIT_TESTS
+ GLOB.unit_test_mapping_logs += text
+#endif
+ if(skip_world_log)
+ return
+ WRITE_LOG(GLOB.mapping_log, text)
+ SEND_TEXT(world.log, text)
+
/proc/log_admin_private(text)
log_admin(text)
diff --git a/code/__HELPERS/string_lists.dm b/code/__HELPERS/string_lists.dm
new file mode 100644
index 000000000000..076bbf642756
--- /dev/null
+++ b/code/__HELPERS/string_lists.dm
@@ -0,0 +1,23 @@
+GLOBAL_LIST_EMPTY(string_lists)
+
+/**
+ * Caches lists with non-numeric stringify-able values (text or typepath).
+ */
+/proc/string_list(list/values)
+ var/string_id = values.Join("-")
+
+ . = GLOB.string_lists[string_id]
+
+ if(.)
+ return .
+
+ return GLOB.string_lists[string_id] = values
+
+///A wrapper for baseturf string lists, to offer support of non list values, and a stack_trace if we have major issues
+/proc/baseturfs_string_list(list/values, turf/baseturf_holder)
+ if(!islist(values))
+ return values //baseturf things
+ // return values
+ if(length(values) > 10)
+ return string_list(list(/turf/closed/cordon/debug))
+ return string_list(values)
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index 967967790b28..7396e8624ba9 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -201,6 +201,24 @@
return ""
+//Returns a string with reserved characters and spaces after the first and last letters removed
+//Like trim(), but very slightly faster. worth it for niche usecases
+/proc/trim_reduced(text)
+ var/starting_coord = 1
+ var/text_len = length(text)
+ for (var/i in 1 to text_len)
+ if (text2ascii(text, i) > 32)
+ starting_coord = i
+ break
+
+ for (var/i = text_len, i >= starting_coord, i--)
+ if (text2ascii(text, i) > 32)
+ return copytext(text, starting_coord, i + 1)
+
+ if(starting_coord > 1)
+ return copytext(text, starting_coord)
+ return ""
+
//Returns a string with reserved characters and spaces before the first word and after the last word removed.
/proc/trim(text)
return trim_left(trim_right(text))
@@ -381,3 +399,7 @@
if(.)
return
return 0
+
+/// Check if the string `haystack` begins with the string `needle`.
+/proc/string_starts_with(haystack, needle)
+ return (copytext(haystack, 1, length(needle) + 1) == needle)
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 7324c4a9634e..aa23131847d7 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -21,23 +21,23 @@
#define between(low, middle, high) (max(min(middle, high), low))
//Offuscate x for coord system
-#define obfuscate_x(x) (x + GLOB.obfs_x)
+#define obfuscate_x(x) ((x) + GLOB.obfs_x)
//Offuscate y for coord system
-#define obfuscate_y(y) (y + GLOB.obfs_y)
+#define obfuscate_y(y) ((y) + GLOB.obfs_y)
//Deoffuscate x for coord system
-#define deobfuscate_x(x) (x - GLOB.obfs_x)
+#define deobfuscate_x(x) ((x) - GLOB.obfs_x)
//Deoffuscate y for coord system
-#define deobfuscate_y(y) (y - GLOB.obfs_y)
+#define deobfuscate_y(y) ((y) - GLOB.obfs_y)
#define can_xeno_build(T) (!T.density && !(locate(/obj/structure/fence) in T) && !(locate(/obj/structure/tunnel) in T) && (locate(/obj/effect/alien/weeds) in T))
// For the purpose of a skillcheck, not having a skillset counts as being skilled in everything (!user.skills check)
// Note that is_skilled() checks if the skillset contains the skill internally, so a has_skill check is unnecessary
-#define skillcheck(user, skill, req_level) ((!user.skills || user.skills.is_skilled(skill, req_level)))
-#define skillcheckexplicit(user, skill, req_level) ((!user.skills || user.skills.is_skilled(skill, req_level, TRUE)))
+#define skillcheck(user, skill, req_level) ((!user.skills || user.skills.is_skilled((skill), (req_level))))
+#define skillcheckexplicit(user, skill, req_level) ((!user.skills || user.skills.is_skilled((skill), (req_level), TRUE)))
// Ensure the frequency is within bounds of what it should be sending/receiving at
// Sets f within bounds via `clamp(round(f), 1441, 1489)`
@@ -48,7 +48,7 @@
)
//Turns 1479 into 147.9
-#define format_frequency(f) "[round(f / 10)].[f % 10]"
+#define format_frequency(f) "[round((f) / 10)].[(f) % 10]"
#define reverse_direction(direction) ( \
( dir & (NORTH|SOUTH) ? ~dir & (NORTH|SOUTH) : 0 ) | \
@@ -820,7 +820,7 @@
animation.master = target
flick(flick_anim, animation)
-//Will return the contents of an atom recursivly to a depth of 'searchDepth'
+///Will return the contents of an atom recursivly to a depth of 'searchDepth', not including starting atom
/atom/proc/GetAllContents(searchDepth = 5, list/toReturn = list())
for(var/atom/part as anything in contents)
toReturn += part
@@ -828,6 +828,16 @@
part.GetAllContents(searchDepth - 1, toReturn)
return toReturn
+///Returns the src and all recursive contents as a list. Includes the starting atom.
+/atom/proc/get_all_contents(ignore_flag_1)
+ . = list(src)
+ var/i = 0
+ while(i < length(.))
+ var/atom/checked_atom = .[++i]
+ if(checked_atom.flags_atom & ignore_flag_1)
+ continue
+ . += checked_atom.contents
+
/// Returns list of contents of a turf recursively, much like GetAllContents
/// We only get containing atoms in the turf, excluding multitiles bordering on it
/turf/proc/GetAllTurfStrictContents(searchDepth = 5, list/toReturn = list())
@@ -1905,8 +1915,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
return list(region_x1 & region_x2, region_y1 & region_y2)
-#define TURF_FROM_COORDS_LIST(List) (locate(List[1], List[2], List[3]))
-
//Vars that will not be copied when using /DuplicateObject
GLOBAL_LIST_INIT(duplicate_forbidden_vars,list(
"tag", "datum_components", "area", "type", "loc", "locs", "vars", "parent", "parent_type", "verbs", "ckey", "key",
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index 59d14f2e0fed..bf9330c567cc 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -154,6 +154,12 @@ DEFINE_BITFIELD(flags_atom, list(
"HTML_USE_INITAL_ICON" = HTML_USE_INITAL_ICON,
))
+DEFINE_BITFIELD(turf_flags, list(
+ "TURF_ORGANIC" = TURF_ORGANIC,
+ "UNUSED_RESERVATION_TURF" = UNUSED_RESERVATION_TURF,
+ "RESERVATION_TURF" = RESERVATION_TURF,
+))
+
DEFINE_BITFIELD(flags_item, list(
"NODROP" = NODROP,
"NOBLUDGEON" = NOBLUDGEON,
diff --git a/code/_globalvars/global_lists.dm b/code/_globalvars/global_lists.dm
index 1f3404f403f2..4dbf46086f02 100644
--- a/code/_globalvars/global_lists.dm
+++ b/code/_globalvars/global_lists.dm
@@ -37,6 +37,9 @@ GLOBAL_LIST_EMPTY(minimap_icons)
GLOBAL_LIST_EMPTY(mainship_pipes)
+/// List of all the maps that have been cached for /proc/load_map
+GLOBAL_LIST_EMPTY(cached_maps)
+
/proc/initiate_minimap_icons()
var/list/icons = list()
for(var/iconstate in icon_states('icons/UI_icons/map_blips.dmi'))
@@ -166,9 +169,6 @@ GLOBAL_LIST_INIT(language_keys, setup_language_keys()) //table of say codes for
GLOBAL_REFERENCE_LIST_INDEXED(origins, /datum/origin, name)
GLOBAL_LIST_INIT(player_origins, USCM_ORIGINS)
-//Xeno mutators
-GLOBAL_REFERENCE_LIST_INDEXED_SORTED(xeno_mutator_list, /datum/xeno_mutator, name)
-
//Xeno hives
GLOBAL_LIST_INIT_TYPED(hive_datum, /datum/hive_status, list(
XENO_HIVE_NORMAL = new /datum/hive_status(),
diff --git a/code/_globalvars/lists/mapping_globals.dm b/code/_globalvars/lists/mapping_globals.dm
index 47cc22dae5e1..772561dbf4a6 100644
--- a/code/_globalvars/lists/mapping_globals.dm
+++ b/code/_globalvars/lists/mapping_globals.dm
@@ -53,6 +53,7 @@ GLOBAL_LIST_EMPTY(teleporter_landmarks)
GLOBAL_LIST_INIT(cardinals, list(NORTH, SOUTH, EAST, WEST))
GLOBAL_LIST_EMPTY(nightmare_landmarks)
+GLOBAL_LIST_EMPTY(nightmare_landmark_tags_removed)
GLOBAL_LIST_EMPTY(ship_areas)
diff --git a/code/_macros.dm b/code/_macros.dm
index e8a97cbada83..ec4f559f0bfc 100644
--- a/code/_macros.dm
+++ b/code/_macros.dm
@@ -78,14 +78,14 @@
// Spawns multiple objects of the same type
#define cast_new(type, num, args...) if((num) == 1) { new type(args) } else { for(var/i=0;i<(num),i++) { new type(args) } }
-#define FLAGS_EQUALS(flag, flags) ((flag & (flags)) == (flags))
+#define FLAGS_EQUALS(flag, flags) (((flag) & (flags)) == (flags))
#define IS_DIAGONAL_DIR(dir) (dir & ~(NORTH|SOUTH))
// Inverse direction, taking into account UP|DOWN if necessary.
-#define REVERSE_DIR(dir) ( ((dir & 85) << 1) | ((dir & 170) >> 1) )
+#define REVERSE_DIR(dir) ( (((dir) & 85) << 1) | (((dir) & 170) >> 1) )
-#define POSITIVE(val) max(val, 0)
+#define POSITIVE(val) max((val), 0)
#define GENERATE_DEBUG_ID "[rand(0, 9)][rand(0, 9)][rand(0, 9)][rand(0, 9)][pick(alphabet_lowercase)][pick(alphabet_lowercase)][pick(alphabet_lowercase)][pick(alphabet_lowercase)]"
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 37a858d76699..b8b55b42c028 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -272,18 +272,14 @@
static_inventory += using
/datum/hud/human/proc/draw_hand_equip(datum/custom_hud/ui_datum, ui_alpha, ui_color)
- var/atom/movable/screen/using = new /atom/movable/screen()
- using.name = "equip"
- using.icon = ui_datum.ui_style_icon
- using.icon_state = "act_equip"
- using.screen_loc = ui_datum.ui_equip
- using.layer = ABOVE_HUD_LAYER
- using.plane = ABOVE_HUD_PLANE
+ var/atom/movable/screen/equip/equip_button = new()
+ equip_button.icon = ui_datum.ui_style_icon
+ equip_button.screen_loc = ui_datum.ui_equip
if(ui_color)
- using.color = ui_color
+ equip_button.color = ui_color
if(ui_alpha)
- using.alpha = ui_alpha
- static_inventory += using
+ equip_button.alpha = ui_alpha
+ static_inventory += equip_button
/datum/hud/human/proc/draw_oxygen(datum/custom_hud/ui_datum)
oxygen_icon = new /atom/movable/screen/oxygen()
@@ -312,38 +308,28 @@
infodisplay += locate_leader
/datum/hud/human/proc/draw_gun_related(datum/custom_hud/ui_datum, ui_alpha)
- use_attachment = new /atom/movable/screen()
+ use_attachment = new /atom/movable/screen/gun/attachment()
use_attachment.icon = ui_datum.ui_style_icon
- use_attachment.icon_state = "gun_attach"
- use_attachment.name = "Activate weapon attachment"
use_attachment.screen_loc = ui_datum.ui_gun_attachment
static_inventory += use_attachment
- toggle_raillight = new /atom/movable/screen()
+ toggle_raillight = new /atom/movable/screen/gun/rail_light()
toggle_raillight.icon = ui_datum.ui_style_icon
- toggle_raillight.icon_state = "gun_raillight"
- toggle_raillight.name = "Toggle Rail Flashlight"
toggle_raillight.screen_loc = ui_datum.ui_gun_railtoggle
static_inventory += toggle_raillight
- eject_mag = new /atom/movable/screen()
+ eject_mag = new /atom/movable/screen/gun/eject_magazine()
eject_mag.icon = ui_datum.ui_style_icon
- eject_mag.icon_state = "gun_loaded"
- eject_mag.name = "Eject magazine"
eject_mag.screen_loc = ui_datum.ui_gun_eject
static_inventory += eject_mag
- toggle_burst = new /atom/movable/screen()
+ toggle_burst = new /atom/movable/screen/gun/toggle_firemode()
toggle_burst.icon = ui_datum.ui_style_icon
- toggle_burst.icon_state = "gun_burst"
- toggle_burst.name = "Toggle burst fire"
toggle_burst.screen_loc = ui_datum.ui_gun_burst
static_inventory += toggle_burst
- unique_action = new /atom/movable/screen()
+ unique_action = new /atom/movable/screen/gun/unique_action()
unique_action.icon = ui_datum.ui_style_icon
- unique_action.icon_state = "gun_unique"
- unique_action.name = "Use unique action"
unique_action.screen_loc = ui_datum.ui_gun_unique
static_inventory += unique_action
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 1eb555fceaf7..edf2d44a0714 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -59,9 +59,11 @@
/atom/movable/screen/action_button/attack_ghost(mob/dead/observer/user)
return
-/atom/movable/screen/action_button/clicked(mob/user)
+/atom/movable/screen/action_button/clicked(mob/user, list/mods)
if(!user || !source_action)
return TRUE
+ if(source_action.owner != user)
+ return TRUE
if(source_action.can_use_action())
source_action.action_activate()
@@ -97,7 +99,7 @@
icon_state = "hide"
var/hidden = 0
-/atom/movable/screen/action_button/hide_toggle/clicked(mob/user, mods)
+/atom/movable/screen/action_button/hide_toggle/clicked(mob/user, list/mods)
user.hud_used.action_buttons_hidden = !user.hud_used.action_buttons_hidden
hidden = user.hud_used.action_buttons_hidden
if(hidden)
@@ -107,7 +109,7 @@
name = "Hide Buttons"
icon_state = "hide"
user.update_action_buttons()
- return 1
+ return TRUE
/atom/movable/screen/action_button/ghost/minimap/get_button_screen_loc(button_number)
return "SOUTH:6,CENTER+1:24"
@@ -211,54 +213,53 @@
update_icon(user)
return 1
-/atom/movable/screen/clicked(mob/user)
+/atom/movable/screen/gun
+ /// The proc/verb which should be called on the gun.
+ var/gun_proc_ref
+
+/atom/movable/screen/gun/clicked(mob/user, list/mods)
+ . = ..()
+ if(.)
+ return
+ // If the user has a gun in their active hand, call `gun_proc_ref` on it.
+ var/obj/item/weapon/gun/held_item = user.get_held_item()
+ if(istype(held_item))
+ INVOKE_ASYNC(held_item, gun_proc_ref)
+
+/atom/movable/screen/gun/attachment
+ name = "Activate weapon attachment"
+ icon_state = "gun_attach"
+ gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, activate_attachment_verb)
+
+/atom/movable/screen/gun/rail_light
+ name = "Toggle rail flashlight"
+ icon_state = "gun_raillight"
+ gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, activate_rail_attachment_verb)
+
+/atom/movable/screen/gun/eject_magazine
+ name = "Eject magazine"
+ icon_state = "gun_loaded"
+ gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, empty_mag)
+
+/atom/movable/screen/gun/toggle_firemode
+ name = "Toggle firemode"
+ icon_state = "gun_burst"
+ gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, use_toggle_burst)
+
+/atom/movable/screen/gun/unique_action
+ name = "Use unique action"
+ icon_state = "gun_unique"
+ gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, use_unique_action)
+
+
+/atom/movable/screen/clicked(mob/user, list/mods)
if(!user)
return TRUE
if(isobserver(user))
return TRUE
- switch(name)
- if("equip")
- if(ishuman(user))
- var/mob/living/carbon/human/human = user
- human.quick_equip()
- return 1
-
- if("Reset Machine")
- user.unset_interaction()
- return 1
-
- if("Activate weapon attachment")
- var/obj/item/weapon/gun/held_item = user.get_held_item()
- if(istype(held_item))
- held_item.activate_attachment_verb()
- return 1
-
- if("Toggle Rail Flashlight")
- var/obj/item/weapon/gun/held_item = user.get_held_item()
- if(istype(held_item))
- held_item.activate_rail_attachment_verb()
- return 1
-
- if("Eject magazine")
- var/obj/item/weapon/gun/held_item = user.get_held_item()
- if(istype(held_item))
- held_item.empty_mag()
- return 1
-
- if("Toggle burst fire")
- var/obj/item/weapon/gun/held_item = user.get_held_item()
- if(istype(held_item))
- held_item.use_toggle_burst()
- return 1
-
- if("Use unique action")
- var/obj/item/weapon/gun/held_item = user.get_held_item()
- if(istype(held_item))
- held_item.use_unique_action()
- return 1
- return 0
+ return FALSE
/atom/movable/screen/inventory/clicked(mob/user)
@@ -585,6 +586,19 @@
vision_define = XENO_VISION_LEVEL_NO_NVG
to_chat(owner, SPAN_NOTICE("Night vision mode switched to [vision_define] ."))
+/atom/movable/screen/equip
+ name = "equip"
+ icon_state = "act_equip"
+ layer = ABOVE_HUD_LAYER
+ plane = ABOVE_HUD_PLANE
+
+/atom/movable/screen/equip/clicked(mob/user)
+ . = ..()
+ if(. || !ishuman(user))
+ return TRUE
+ var/mob/living/carbon/human/human_user = user
+ human_user.quick_equip()
+
/atom/movable/screen/bodytemp
name = "body temperature"
icon_state = "temp0"
diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm
index c47531f5fc45..d71bf1d747c9 100644
--- a/code/controllers/configuration/config_entry.dm
+++ b/code/controllers/configuration/config_entry.dm
@@ -4,6 +4,7 @@
#define KEY_MODE_TEXT 0
#define KEY_MODE_TYPE 1
+#define KEY_MODE_TEXT_UNALTERED 2
/datum/config_entry
var/name //read-only, this is determined by the last portion of the derived entry type
@@ -153,7 +154,9 @@
var/key_value = null
if(key_pos || value_mode == VALUE_MODE_FLAG)
- key_name = lowertext(copytext(str_val, 1, key_pos))
+ key_name = copytext(str_val, 1, key_pos)
+ if(key_mode != KEY_MODE_TEXT_UNALTERED)
+ key_name = lowertext(key_name)
if(key_pos)
key_value = copytext(str_val, key_pos + length(str_val[key_pos]))
var/new_key
@@ -161,7 +164,7 @@
var/continue_check_value
var/continue_check_key
switch(key_mode)
- if(KEY_MODE_TEXT)
+ if(KEY_MODE_TEXT, KEY_MODE_TEXT_UNALTERED)
new_key = key_name
continue_check_key = new_key
if(KEY_MODE_TYPE)
diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm
index 385cbcb8d446..e2572e5e2d61 100644
--- a/code/controllers/configuration/entries/general.dm
+++ b/code/controllers/configuration/entries/general.dm
@@ -491,8 +491,6 @@ This maintains a list of ip addresses that are able to bypass topic filtering.
/datum/config_entry/flag/respawn
-/datum/config_entry/flag/ToRban
-
/datum/config_entry/flag/ooc_country_flags
/datum/config_entry/flag/record_rounds
@@ -533,6 +531,8 @@ This maintains a list of ip addresses that are able to bypass topic filtering.
/datum/config_entry/string/round_results_webhook_url
+/datum/config_entry/string/important_log_channel
+
/// InfluxDB v2 Host to connect to for sending statistics (over HTTP API)
/datum/config_entry/string/influxdb_host
/// InfluxDB v2 Bucket to send staistics to
@@ -629,3 +629,14 @@ This maintains a list of ip addresses that are able to bypass topic filtering.
/datum/config_entry/flag/guest_ban
/datum/config_entry/flag/auto_profile
+
+/// Relay Ping Browser configuration
+/datum/config_entry/keyed_list/connection_relay_ping
+ splitter = "|"
+ key_mode = KEY_MODE_TEXT_UNALTERED
+ value_mode = VALUE_MODE_TEXT
+
+/datum/config_entry/keyed_list/connection_relay_con
+ splitter = "|"
+ key_mode = KEY_MODE_TEXT_UNALTERED
+ value_mode = VALUE_MODE_TEXT
diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm
index ae4783e4837a..f0d5ee14363e 100644
--- a/code/controllers/subsystem/atoms.dm
+++ b/code/controllers/subsystem/atoms.dm
@@ -19,6 +19,9 @@ SUBSYSTEM_DEF(atoms)
var/list/BadInitializeCalls = list()
+ ///initAtom() adds the atom its creating to this list iff InitializeAtoms() has been given a list to populate as an argument
+ var/list/created_atoms
+
initialized = INITIALIZATION_INSSATOMS
/datum/controller/subsystem/atoms/Initialize(timeofday)
@@ -34,7 +37,7 @@ SUBSYSTEM_DEF(atoms)
populate_seed_list()
return SS_INIT_SUCCESS
-/datum/controller/subsystem/atoms/proc/InitializeAtoms(list/atoms)
+/datum/controller/subsystem/atoms/proc/InitializeAtoms(list/atoms, list/atoms_to_return)
if(initialized == INITIALIZATION_INSSATOMS)
return
@@ -73,7 +76,10 @@ SUBSYSTEM_DEF(atoms)
processing_late_loaders = FALSE
/// Actually creates the list of atoms. Exists soley so a runtime in the creation logic doesn't cause initalized to totally break
-/datum/controller/subsystem/atoms/proc/CreateAtoms(list/atoms)
+/datum/controller/subsystem/atoms/proc/CreateAtoms(list/atoms, list/atoms_to_return = null)
+ if (atoms_to_return)
+ LAZYINITLIST(created_atoms)
+
#ifdef TESTING
var/count
#endif
@@ -152,12 +158,10 @@ SUBSYSTEM_DEF(atoms)
qdeleted = TRUE
else if(!(A.flags_atom & INITIALIZED))
BadInitializeCalls[the_type] |= BAD_INIT_DIDNT_INIT
- /*
else
- SEND_SIGNAL(A,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE)
+ SEND_SIGNAL(A, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON)
if(created_atoms && from_template && ispath(the_type, /atom/movable))//we only want to populate the list with movables
created_atoms += A.get_all_contents()
- */
return qdeleted || QDELING(A)
diff --git a/code/controllers/subsystem/communications.dm b/code/controllers/subsystem/communications.dm
index b8b037c33381..c245b1012900 100644
--- a/code/controllers/subsystem/communications.dm
+++ b/code/controllers/subsystem/communications.dm
@@ -66,6 +66,8 @@ Frequency range: 1200 to 1600
Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency, even during mapmaking)
*/
+#define UNIVERSAL_FREQ 1
+
#define MIN_FREE_FREQ 1201 // -------------------------------------------------
//Misc channels
@@ -327,11 +329,11 @@ SUBSYSTEM_DEF(radio)
if(length(extra_zs))
target_zs += extra_zs
for(var/obj/structure/machinery/telecomms/T as anything in tcomm_machines_ground)
- if(!length(T.freq_listening) || (frequency in T.freq_listening))
+ if((UNIVERSAL_FREQ in T.freq_listening) || (frequency in T.freq_listening))
target_zs += SSmapping.levels_by_trait(ZTRAIT_GROUND)
break
for(var/obj/structure/machinery/telecomms/T as anything in tcomm_machines_almayer)
- if(!length(T.freq_listening) || (frequency in T.freq_listening))
+ if((UNIVERSAL_FREQ in T.freq_listening) || (frequency in T.freq_listening))
target_zs += SSmapping.levels_by_trait(ZTRAIT_MARINE_MAIN_SHIP)
target_zs += SSmapping.levels_by_trait(ZTRAIT_RESERVED)
break
diff --git a/code/controllers/subsystem/hijack.dm b/code/controllers/subsystem/hijack.dm
index ed9eba2bc6c3..8ae313587038 100644
--- a/code/controllers/subsystem/hijack.dm
+++ b/code/controllers/subsystem/hijack.dm
@@ -299,7 +299,7 @@ SUBSYSTEM_DEF(hijack)
sd_unlocked = TRUE
marine_announcement("Fuel reserves full. Manual detonation of fuel reserves by overloading the on-board fusion reactors now possible.", HIJACK_ANNOUNCE)
-/datum/controller/subsystem/hijack/proc/on_generator_overload(obj/structure/machinery/power/fusion_engine/source, new_overloading)
+/datum/controller/subsystem/hijack/proc/on_generator_overload(obj/structure/machinery/power/reactor/source, new_overloading)
SIGNAL_HANDLER
if(!generator_ever_overloaded)
diff --git a/code/controllers/subsystem/interior.dm b/code/controllers/subsystem/interior.dm
index 8abc3179f191..e2b845f833d7 100644
--- a/code/controllers/subsystem/interior.dm
+++ b/code/controllers/subsystem/interior.dm
@@ -15,11 +15,11 @@ SUBSYSTEM_DEF(interior)
var/height_to_request = template.height + INTERIOR_BORDER_SIZE
var/width_to_request = template.width + INTERIOR_BORDER_SIZE
- var/datum/turf_reservation/reserved_area = SSmapping.RequestBlockReservation(width_to_request, height_to_request, type = /datum/turf_reservation/interior)
+ var/datum/turf_reservation/reserved_area = SSmapping.request_turf_block_reservation(width_to_request, height_to_request, reservation_type = /datum/turf_reservation/interior)
- var/list/bottom_left = reserved_area.bottom_left_coords
+ var/turf/bottom_left = reserved_area.bottom_left_turfs[1]
- var/list/bounds = template.load(locate(bottom_left[1] + (INTERIOR_BORDER_SIZE / 2), bottom_left[2] + (INTERIOR_BORDER_SIZE / 2), bottom_left[3]), centered = FALSE)
+ var/list/bounds = template.load(locate(bottom_left.x + (INTERIOR_BORDER_SIZE / 2), bottom_left.y + (INTERIOR_BORDER_SIZE / 2), bottom_left.z), centered = FALSE)
var/list/turfs = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]),
locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))
@@ -51,12 +51,7 @@ SUBSYSTEM_DEF(interior)
if(!isturf(loc))
loc = get_turf(loc)
- var/datum/weakref/reservation_weakref = SSmapping.used_turfs[loc]
-
- if(!reservation_weakref)
- return
-
- var/datum/turf_reservation/interior/reservation = reservation_weakref.resolve()
+ var/datum/turf_reservation/interior/reservation = SSmapping.used_turfs[loc]
if(!istype(reservation))
return FALSE
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index 0f4a63ff65e8..1d137aa7d8ae 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(mapping)
name = "Mapping"
init_order = SS_INIT_MAPPING
- flags = SS_NO_FIRE
+ runlevels = ALL
var/list/datum/map_config/configs
var/list/datum/map_config/next_map_configs
@@ -19,16 +19,27 @@ SUBSYSTEM_DEF(mapping)
var/list/turf/unused_turfs = list() //Not actually unused turfs they're unused but reserved for use for whatever requests them. "[zlevel_of_turf]" = list(turfs)
var/list/datum/turf_reservations //list of turf reservations
var/list/used_turfs = list() //list of turf = datum/turf_reservation
+ /// List of lists of turfs to reserve
+ var/list/lists_to_reserve = list()
var/list/reservation_ready = list()
var/clearing_reserved_turfs = FALSE
// Z-manager stuff
var/ground_start // should only be used for maploading-related tasks
- var/list/z_list
+ ///list of all z level datums in the order of their z (z level 1 is at index 1, etc.)
+ var/list/datum/space_level/z_list
var/datum/space_level/transit
var/num_of_res_levels = 1
+ /// True when in the process of adding a new Z-level, global locking
+ var/adding_new_zlevel = FALSE
+ /// list of traits and their associated z leves
+ var/list/z_trait_levels = list()
+
+ /// list of lazy templates that have been loaded
+ var/list/loaded_lazy_templates
+
//dlete dis once #39770 is resolved
/datum/controller/subsystem/mapping/proc/HACK_LoadMapConfig()
if(!configs)
@@ -52,14 +63,10 @@ SUBSYSTEM_DEF(mapping)
loadWorld()
repopulate_sorted_areas()
preloadTemplates()
- // Add the transit level
- transit = add_new_zlevel("Transit/Reserved", list(ZTRAIT_RESERVED = TRUE))
- initialize_reserved_level(transit.z_value)
+ // Add the first transit level
+ var/datum/space_level/base_transit = add_reservation_zlevel()
+ initialize_reserved_level(base_transit.z_value)
repopulate_sorted_areas()
- for(var/maptype as anything in configs)
- var/datum/map_config/MC = configs[maptype]
- if(MC.perf_mode)
- GLOB.perf_flags |= MC.perf_mode
if(configs[GROUND_MAP])
send2chat(new /datum/tgs_message_content("<@&[CONFIG_GET(string/new_round_alert_role_id)]> Round restarted! Map is [configs[GROUND_MAP].map_name]"), CONFIG_GET(string/new_round_alert_channel))
@@ -68,21 +75,60 @@ SUBSYSTEM_DEF(mapping)
return SS_INIT_SUCCESS
+/datum/controller/subsystem/mapping/fire(resumed)
+ // Cache for sonic speed
+ var/list/unused_turfs = src.unused_turfs
+ // CM TODO: figure out if these 2 are needed. Might be required by updated versions of map reader
+ //var/list/world_contents = GLOB.areas_by_type[world.area].contents
+ //var/list/world_turf_contents = GLOB.areas_by_type[world.area].contained_turfs
+ var/list/lists_to_reserve = src.lists_to_reserve
+ var/index = 0
+ while(index < length(lists_to_reserve))
+ var/list/packet = lists_to_reserve[index + 1]
+ var/packetlen = length(packet)
+ while(packetlen)
+ if(MC_TICK_CHECK)
+ if(index)
+ lists_to_reserve.Cut(1, index)
+ return
+ var/turf/T = packet[packetlen]
+ T.empty(RESERVED_TURF_TYPE, RESERVED_TURF_TYPE, null, TRUE)
+ LAZYINITLIST(unused_turfs["[T.z]"])
+ unused_turfs["[T.z]"] |= T
+ //var/area/old_area = T.loc
+ //old_area.turfs_to_uncontain += T
+ T.turf_flags = UNUSED_RESERVATION_TURF
+ //world_contents += T
+ //world_turf_contents += T
+ packet.len--
+ packetlen = length(packet)
+
+ index++
+ lists_to_reserve.Cut(1, index)
+
/datum/controller/subsystem/mapping/proc/wipe_reservations(wipe_safety_delay = 100)
if(clearing_reserved_turfs || !initialized) //in either case this is just not needed.
return
clearing_reserved_turfs = TRUE
message_admins("Clearing dynamic reservation space.")
+ // /tg/ Shuttles have extra handling here to avoid them being desallocated
do_wipe_turf_reservations()
clearing_reserved_turfs = FALSE
+/datum/controller/subsystem/mapping/proc/get_reservation_from_turf(turf/T)
+ RETURN_TYPE(/datum/turf_reservation)
+ return used_turfs[T]
+
/datum/controller/subsystem/mapping/Recover()
flags |= SS_NO_INIT
initialized = SSmapping.initialized
map_templates = SSmapping.map_templates
+
+ shuttle_templates = SSmapping.shuttle_templates
unused_turfs = SSmapping.unused_turfs
turf_reservations = SSmapping.turf_reservations
used_turfs = SSmapping.used_turfs
+ areas_in_z = SSmapping.areas_in_z
configs = SSmapping.configs
next_map_configs = SSmapping.next_map_configs
@@ -126,18 +172,33 @@ SUBSYSTEM_DEF(mapping)
var/start_z = world.maxz + 1
var/i = 0
for (var/level in traits)
- add_new_zlevel("[name][i ? " [i + 1]" : ""]", level)
+ add_new_zlevel("[name][i ? " [i + 1]" : ""]", level, contain_turfs = FALSE)
++i
+ // ================== CM Change ==================
+ // For some reason /tg/ SSmapping attempts to center the map in new Z-Level
+ // but because it's done before loading, it's calculated before performing
+ // X/Y world expansion. When loading a map bigger than world, this results
+ // in a negative offset and the start of the map to not be loaded.
+
// load the maps
for (var/datum/parsed_map/pm as anything in parsed_maps)
- var/cur_z = start_z + parsed_maps[pm]
- if (!pm.load(1, 1, cur_z, no_changeturf = TRUE))
+ var/bounds = pm.bounds
+ var/x_offset = 1
+ var/y_offset = 1
+ if(bounds && world.maxx > bounds[MAP_MAXX])
+ x_offset = round(world.maxx / 2 - bounds[MAP_MAXX] / 2) + 1
+ if(bounds && world.maxy > bounds[MAP_MAXY])
+ y_offset = round(world.maxy / 2 - bounds[MAP_MAXY] / 2) + 1
+ if (!pm.load(x_offset, y_offset, start_z + parsed_maps[pm], no_changeturf = TRUE, new_z = TRUE))
errorList |= pm.original_path
- if(istype(z_list[cur_z], /datum/space_level))
- var/datum/space_level/cur_level = z_list[cur_z]
- cur_level.x_bounds = pm.bounds[MAP_MAXX]
- cur_level.y_bounds = pm.bounds[MAP_MAXY]
+ // CM Snowflake for Mass Screenshot dimensions auto detection
+ for(var/z in bounds[MAP_MINZ] to bounds[MAP_MAXZ])
+ var/datum/space_level/zlevel = z_list[start_z + z - 1]
+ zlevel.bounds = list(bounds[MAP_MINX], bounds[MAP_MINY], z, bounds[MAP_MAXX], bounds[MAP_MAXY], z)
+
+ // =============== END CM Change =================
+
if(!silent)
INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!")
return parsed_maps
@@ -256,66 +317,78 @@ SUBSYSTEM_DEF(mapping)
var/datum/map_template/tent/new_tent = new template()
tent_type_templates[new_tent.map_id] = new_tent
-/datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override)
- UNTIL(initialized && !clearing_reserved_turfs)
- var/datum/turf_reservation/reserve = new type
- if(turf_type_override)
+/// Adds a new reservation z level. A bit of space that can be handed out on request
+/// Of note, reservations default to transit turfs, to make their most common use, shuttles, faster
+/datum/controller/subsystem/mapping/proc/add_reservation_zlevel(for_shuttles)
+ num_of_res_levels++
+ return add_new_zlevel("Transit/Reserved #[num_of_res_levels]", list(ZTRAIT_RESERVED = TRUE))
+
+/// Requests a /datum/turf_reservation based on the given width, height, and z_size. You can specify a z_reservation to use a specific z level, or leave it null to use any z level.
+/datum/controller/subsystem/mapping/proc/request_turf_block_reservation(
+ width,
+ height,
+ z_size = 1,
+ z_reservation = null,
+ reservation_type = /datum/turf_reservation,
+ turf_type_override = null,
+)
+ UNTIL((!z_reservation || reservation_ready["[z_reservation]"]) && !clearing_reserved_turfs)
+ var/datum/turf_reservation/reserve = new reservation_type
+ if(!isnull(turf_type_override))
reserve.turf_type = turf_type_override
- if(!z)
+ if(!z_reservation)
for(var/i in levels_by_trait(ZTRAIT_RESERVED))
- if(reserve.Reserve(width, height, i))
+ if(reserve.reserve(width, height, z_size, i))
return reserve
//If we didn't return at this point, theres a good chance we ran out of room on the exisiting reserved z levels, so lets try a new one
- log_debug("Ran out of space in existing transit levels, adding a new one")
- num_of_res_levels++
- var/datum/space_level/newReserved = add_new_zlevel("Transit/Reserved [num_of_res_levels]", list(ZTRAIT_RESERVED = TRUE))
+ var/datum/space_level/newReserved = add_reservation_zlevel()
initialize_reserved_level(newReserved.z_value)
- for(var/i in levels_by_trait(ZTRAIT_RESERVED))
- if(reserve.Reserve(width, height, i))
- return reserve
- CRASH("Despite adding a fresh reserved zlevel still failed to get a reservation")
+ if(reserve.reserve(width, height, z_size, newReserved.z_value))
+ return reserve
else
- if(!level_trait(z, ZTRAIT_RESERVED))
- log_debug("Cannot block reserve on a non-ZTRAIT_RESERVED level")
+ if(!level_trait(z_reservation, ZTRAIT_RESERVED))
qdel(reserve)
return
else
- if(reserve.Reserve(width, height, z))
+ if(reserve.reserve(width, height, z_size, z_reservation))
return reserve
- log_debug("unknown reservation failure")
QDEL_NULL(reserve)
-//This is not for wiping reserved levels, use wipe_reservations() for that.
+///Sets up a z level as reserved
+///This is not for wiping reserved levels, use wipe_reservations() for that.
+///If this is called after SSatom init, it will call Initialize on all turfs on the passed z, as its name promises
/datum/controller/subsystem/mapping/proc/initialize_reserved_level(z)
UNTIL(!clearing_reserved_turfs) //regardless, lets add a check just in case.
clearing_reserved_turfs = TRUE //This operation will likely clear any existing reservations, so lets make sure nothing tries to make one while we're doing it.
if(!level_trait(z,ZTRAIT_RESERVED))
clearing_reserved_turfs = FALSE
CRASH("Invalid z level prepared for reservations.")
- var/turf/A = get_turf(locate(8,8,z))
- var/turf/B = get_turf(locate(world.maxx - 8,world.maxy - 8,z))
+ var/turf/A = get_turf(locate(SHUTTLE_TRANSIT_BORDER,SHUTTLE_TRANSIT_BORDER,z))
+ var/turf/B = get_turf(locate(world.maxx - SHUTTLE_TRANSIT_BORDER,world.maxy - SHUTTLE_TRANSIT_BORDER,z))
var/block = block(A, B)
- for(var/t in block)
- // No need to empty() these, because it's world init and they're
- // already /turf/open/space/basic.
- var/turf/T = t
- T.flags_atom |= UNUSED_RESERVATION_TURF
+ for(var/turf/T as anything in block)
+ // No need to empty() these, because they just got created and are already /turf/open/space/basic.
+ T.turf_flags = UNUSED_RESERVATION_TURF
+ CHECK_TICK
+
+ // Gotta create these suckers if we've not done so already
+ if(SSatoms.initialized)
+ SSatoms.InitializeAtoms(Z_TURFS(z))
+
unused_turfs["[z]"] = block
reservation_ready["[z]"] = TRUE
clearing_reserved_turfs = FALSE
-/datum/controller/subsystem/mapping/proc/reserve_turfs(list/turfs)
- for(var/i in turfs)
- var/turf/T = i
- T.empty(RESERVED_TURF_TYPE, RESERVED_TURF_TYPE, null, TRUE)
- LAZYINITLIST(unused_turfs["[T.z]"])
- unused_turfs["[T.z]"] |= T
- T.flags_atom |= UNUSED_RESERVATION_TURF
- GLOB.areas_by_type[world.area].contents += T
- CHECK_TICK
+/// Schedules a group of turfs to be handed back to the reservation system's control
+/// If await is true, will sleep until the turfs are finished work
+/datum/controller/subsystem/mapping/proc/reserve_turfs(list/turfs, await = FALSE)
+ lists_to_reserve += list(turfs)
+ if(await)
+ UNTIL(!length(turfs))
//DO NOT CALL THIS PROC DIRECTLY, CALL wipe_reservations().
/datum/controller/subsystem/mapping/proc/do_wipe_turf_reservations()
+ PRIVATE_PROC(TRUE)
UNTIL(initialized) //This proc is for AFTER init, before init turf reservations won't even exist and using this will likely break things.
for(var/i in turf_reservations)
var/datum/turf_reservation/TR = i
@@ -323,19 +396,28 @@ SUBSYSTEM_DEF(mapping)
qdel(TR, TRUE)
UNSETEMPTY(turf_reservations)
var/list/clearing = list()
- for(var/l in unused_turfs) //unused_turfs is a assoc list by z = list(turfs)
+ for(var/l in unused_turfs) //unused_turfs is an assoc list by z = list(turfs)
if(islist(unused_turfs[l]))
clearing |= unused_turfs[l]
clearing |= used_turfs //used turfs is an associative list, BUT, reserve_turfs() can still handle it. If the code above works properly, this won't even be needed as the turfs would be freed already.
unused_turfs.Cut()
used_turfs.Cut()
- reserve_turfs(clearing)
+ reserve_turfs(clearing, await = TRUE)
/datum/controller/subsystem/mapping/proc/reg_in_areas_in_z(list/areas)
for(var/B in areas)
var/area/A = B
A.reg_in_areas_in_z()
+/// Takes a z level datum, and tells the mapping subsystem to manage it
+/// Also handles things like plane offset generation, and other things that happen on a z level to z level basis
+/datum/controller/subsystem/mapping/proc/manage_z_level(datum/space_level/new_z, filled_with_space, contain_turfs = TRUE)
+ // First, add the z
+ z_list += new_z
+ // Then we build our lookup lists
+ //var/z_value = new_z.z_value
+ //TODO: All the Z-plane init stuff goes below here normally, we don't have that yet
+
/// Gets a name for the marine ship as per the enabled ship map configuration
/datum/controller/subsystem/mapping/proc/get_main_ship_name()
if(!configs)
@@ -344,3 +426,28 @@ SUBSYSTEM_DEF(mapping)
if(!MC)
return MAIN_SHIP_DEFAULT_NAME
return MC.map_name
+
+/datum/controller/subsystem/mapping/proc/lazy_load_template(datum/lazy_template/template_to_load, force = FALSE)
+ RETURN_TYPE(/datum/turf_reservation)
+
+ UNTIL(initialized)
+ var/static/lazy_loading = FALSE
+ UNTIL(!lazy_loading)
+
+ lazy_loading = TRUE
+ . = _lazy_load_template(template_to_load, force)
+ lazy_loading = FALSE
+ return .
+
+/datum/controller/subsystem/mapping/proc/_lazy_load_template(datum/lazy_template/template_to_load, force = FALSE)
+ PRIVATE_PROC(TRUE)
+
+ if(LAZYACCESS(loaded_lazy_templates, template_to_load) && !force)
+ var/datum/lazy_template/template = GLOB.lazy_templates[template_to_load]
+ return template.reservations[1]
+ LAZYSET(loaded_lazy_templates, template_to_load, TRUE)
+
+ var/datum/lazy_template/target = GLOB.lazy_templates[template_to_load]
+ if(!target)
+ CRASH("Attempted to lazy load a template key that does not exist: '[template_to_load]'")
+ return target.lazy_load()
diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm
index 410ded82f7b3..478848906047 100644
--- a/code/controllers/subsystem/minimap.dm
+++ b/code/controllers/subsystem/minimap.dm
@@ -585,6 +585,8 @@ SUBSYSTEM_DEF(minimaps)
owner?.client?.remove_from_screen(map)
minimap_displayed = FALSE
+ UnregisterSignal(target, COMSIG_MOVABLE_Z_CHANGED)
+
/**
* Updates the map when the owner changes zlevel
*/
diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm
index 3e59744cff31..439f83ceb8c0 100644
--- a/code/controllers/subsystem/shuttles.dm
+++ b/code/controllers/subsystem/shuttles.dm
@@ -39,9 +39,6 @@ SUBSYSTEM_DEF(shuttle)
var/loading_shuttle = FALSE
/datum/controller/subsystem/shuttle/Initialize(timeofday)
- if(GLOB.perf_flags & PERF_TOGGLE_SHUTTLES)
- can_fire = FALSE
- return
initial_load()
return SS_INIT_SUCCESS
@@ -52,8 +49,6 @@ SUBSYSTEM_DEF(shuttle)
CHECK_TICK
/datum/controller/subsystem/shuttle/fire(resumed = FALSE)
- if(!resumed && (GLOB.perf_flags & PERF_TOGGLE_SHUTTLES))
- return
for(var/thing in mobile)
if(!thing)
mobile.Remove(thing)
@@ -164,9 +159,6 @@ SUBSYSTEM_DEF(shuttle)
// First, determine the size of the needed zone
// Because of shuttle rotation, the "width" of the shuttle is not
// always x.
- var/travel_dir = M.preferred_direction
- // Remember, the direction is the direction we appear to be
- // coming from
var/dock_angle = dir2angle(M.preferred_direction) + dir2angle(M.port_direction) + 180
var/dock_dir = angle2dir(dock_angle)
@@ -185,27 +177,24 @@ SUBSYSTEM_DEF(shuttle)
/*
to_chat(world, "The attempted transit dock will be [transit_width] width, and \)
- [transit_height] in height. The travel dir is [travel_dir]."
+ [transit_height] in height. The travel dir is [M.preferred_direction]."
*/
- var/transit_path = /turf/open/space/transit
- switch(travel_dir)
- if(NORTH)
- transit_path = /turf/open/space/transit/north
- if(SOUTH)
- transit_path = /turf/open/space/transit/south
- if(EAST)
- transit_path = /turf/open/space/transit/east
- if(WEST)
- transit_path = /turf/open/space/transit/west
+ var/transit_path = M.get_transit_path_type()
- var/datum/turf_reservation/proposal = SSmapping.RequestBlockReservation(transit_width, transit_height, null, /datum/turf_reservation/transit, transit_path)
+ var/datum/turf_reservation/proposal = SSmapping.request_turf_block_reservation(
+ transit_width,
+ transit_height,
+ 1,
+ reservation_type = /datum/turf_reservation/transit,
+ turf_type_override = transit_path,
+ )
if(!istype(proposal))
log_debug("generate_transit_dock() failed to get a block reservation from mapping system")
return FALSE
- var/turf/bottomleft = locate(proposal.bottom_left_coords[1], proposal.bottom_left_coords[2], proposal.bottom_left_coords[3])
+ var/turf/bottomleft = proposal.bottom_left_turfs[1]
// Then create a transit docking port in the middle
var/coords = M.return_coords(0, 0, dock_dir)
/* 0------2
@@ -374,7 +363,7 @@ SUBSYSTEM_DEF(shuttle)
return shuttle
-/datum/controller/subsystem/shuttle/proc/action_load(datum/map_template/shuttle/loading_template, obj/docking_port/stationary/destination_port)
+/datum/controller/subsystem/shuttle/proc/action_load(datum/map_template/shuttle/loading_template, obj/docking_port/stationary/destination_port, replace = FALSE)
// Check for an existing preview
if(preview_shuttle && (loading_template != preview_template))
preview_shuttle.jumpToNullSpace()
@@ -383,8 +372,7 @@ SUBSYSTEM_DEF(shuttle)
QDEL_NULL(preview_reservation)
if(!preview_shuttle)
- if(load_template(loading_template))
- preview_shuttle.linkup(loading_template, destination_port)
+ load_template(loading_template)
preview_template = loading_template
// get the existing shuttle information, if any
@@ -419,9 +407,6 @@ SUBSYSTEM_DEF(shuttle)
for(var/area/A as anything in preview_shuttle.shuttle_areas)
for(var/turf/T as anything in A)
- // turfs inside the shuttle are not available for shuttles
- T.flags_atom &= ~UNUSED_RESERVATION_TURF
-
// update underlays
if(istype(T, /turf/closed/shuttle))
var/dx = T.x - preview_shuttle.x
@@ -430,8 +415,10 @@ SUBSYSTEM_DEF(shuttle)
T.underlays.Cut()
T.underlays += mutable_appearance(target_lz.icon, target_lz.icon_state, TURF_LAYER, FLOOR_PLANE)
+ preview_shuttle.register(replace)
var/list/force_memory = preview_shuttle.movement_force
preview_shuttle.movement_force = list("KNOCKDOWN" = 0, "THROW" = 0)
+
preview_shuttle.initiate_docking(D)
preview_shuttle.movement_force = force_memory
@@ -442,7 +429,7 @@ SUBSYSTEM_DEF(shuttle)
preview_shuttle.timer = timer
preview_shuttle.mode = mode
- preview_shuttle.register()
+ preview_shuttle.postregister(replace)
// TODO indicate to the user that success happened, rather than just
// blanking the modification tab
@@ -452,16 +439,21 @@ SUBSYSTEM_DEF(shuttle)
selected = null
QDEL_NULL(preview_reservation)
-/datum/controller/subsystem/shuttle/proc/load_template(datum/map_template/shuttle/S)
+/datum/controller/subsystem/shuttle/proc/load_template(datum/map_template/shuttle/loading_template)
. = FALSE
- // load shuttle template, centred at shuttle import landmark,
- preview_reservation = SSmapping.RequestBlockReservation(S.width, S.height, SSmapping.transit.z_value, /datum/turf_reservation/transit)
+ // Load shuttle template to a fresh block reservation.
+ preview_reservation = SSmapping.request_turf_block_reservation(
+ loading_template.width,
+ loading_template.height,
+ 1,
+ reservation_type = /datum/turf_reservation/transit,
+ )
if(!preview_reservation)
CRASH("failed to reserve an area for shuttle template loading")
- var/turf/BL = TURF_FROM_COORDS_LIST(preview_reservation.bottom_left_coords)
- S.load(BL, centered = FALSE, register = FALSE)
+ var/turf/bottom_left = preview_reservation.bottom_left_turfs[1]
+ loading_template.load(bottom_left, centered = FALSE, register = FALSE)
- var/affected = S.get_affected_turfs(BL, centered=FALSE)
+ var/affected = loading_template.get_affected_turfs(bottom_left, centered=FALSE)
var/found = 0
// Search the turfs for docking ports
@@ -475,13 +467,13 @@ SUBSYSTEM_DEF(shuttle)
found++
if(found > 1)
qdel(P, force=TRUE)
- log_world("Map warning: Shuttle Template [S.mappath] has multiple mobile docking ports.")
+ log_world("Map warning: Shuttle Template [loading_template.mappath] has multiple mobile docking ports.")
else
preview_shuttle = P
if(istype(P, /obj/docking_port/stationary))
- log_world("Map warning: Shuttle Template [S.mappath] has a stationary docking port.")
+ log_world("Map warning: Shuttle Template [loading_template.mappath] has a stationary docking port.")
if(!found)
- var/msg = "load_template(): Shuttle Template [S.mappath] has no mobile docking port. Aborting import."
+ var/msg = "load_template(): Shuttle Template [loading_template.mappath] has no mobile docking port. Aborting import."
for(var/T in affected)
var/turf/T0 = T
T0.empty()
@@ -490,7 +482,7 @@ SUBSYSTEM_DEF(shuttle)
WARNING(msg)
return
//Everything fine
- S.post_load(preview_shuttle)
+ loading_template.post_load(preview_shuttle)
return TRUE
/datum/controller/subsystem/shuttle/proc/unload_preview()
diff --git a/code/controllers/subsystem/stickyban.dm b/code/controllers/subsystem/stickyban.dm
new file mode 100644
index 000000000000..48e934addc1a
--- /dev/null
+++ b/code/controllers/subsystem/stickyban.dm
@@ -0,0 +1,284 @@
+SUBSYSTEM_DEF(stickyban)
+ name = "Sticky Ban"
+ init_order = SS_INIT_STICKY
+ flags = SS_NO_FIRE
+
+/datum/controller/subsystem/stickyban/Initialize()
+ var/list/all_bans = world.GetConfig("ban")
+
+ for(var/existing_ban in all_bans)
+ var/list/ban_data = params2list(world.GetConfig("ban", existing_ban))
+ INVOKE_ASYNC(src, PROC_REF(import_sticky), existing_ban, ban_data)
+
+ return SS_INIT_SUCCESS
+
+/**
+ * Returns a list of [/datum/view_record/stickyban]s, or null, if no stickybans are found. All arguments are optional, but you should pass at least one if you want any results.
+ */
+/datum/controller/subsystem/stickyban/proc/check_for_sticky_ban(ckey, address, computer_id)
+ var/list/stickyban_ids = list()
+
+ for(var/datum/view_record/stickyban_matched_ckey/matched_ckey as anything in get_impacted_ckey_records(ckey))
+ stickyban_ids += matched_ckey.linked_stickyban
+
+ for(var/datum/view_record/stickyban_matched_cid/matched_cid as anything in get_impacted_cid_records(computer_id))
+ stickyban_ids += matched_cid.linked_stickyban
+
+ for(var/datum/view_record/stickyban_matched_ip/matched_ip as anything in get_impacted_ip_records(address))
+ stickyban_ids += matched_ip.linked_stickyban
+
+ if(!length(stickyban_ids))
+ return FALSE
+
+ var/list/datum/view_record/stickyban/stickies = DB_VIEW(/datum/view_record/stickyban,
+ DB_AND(
+ DB_COMP("id", DB_IN, stickyban_ids),
+ DB_COMP("active", DB_EQUALS, TRUE)
+ )
+ )
+
+ for(var/datum/view_record/stickyban/current_sticky in stickies)
+ if(length(get_whitelisted_ckey_records(current_sticky.id, ckey)))
+ stickies -= current_sticky
+
+ if(!length(stickies))
+ return FALSE
+
+ return stickies
+
+/**
+ * Associates an existing stickyban with a new match, either of a ckey, address, or computer_id. Or all three.
+ *
+ * Arguments:
+ * - existing_ban_id, int, required
+ * - ckey, string, optional
+ * - address, string, optional
+ * - computer_id, string, optional
+ */
+/datum/controller/subsystem/stickyban/proc/match_sticky(existing_ban_id, ckey, address, computer_id)
+ if(!existing_ban_id)
+ return
+
+ if(ckey)
+ add_matched_ckey(existing_ban_id, ckey)
+
+ if(address)
+ add_matched_ip(existing_ban_id, address)
+
+ if(computer_id)
+ add_matched_cid(existing_ban_id, computer_id)
+
+/**
+ * Adds a new tracked stickyban, and returns a [/datum/entity/stickyban] if it was successful. Blocking, sleeps.
+ */
+/datum/controller/subsystem/stickyban/proc/add_stickyban(identifier, reason, message, datum/entity/player/banning_admin, override_date)
+ var/datum/entity/stickyban/new_sticky = DB_ENTITY(/datum/entity/stickyban)
+ new_sticky.identifier = identifier
+ new_sticky.reason = reason
+ new_sticky.message = message
+
+ if(banning_admin)
+ new_sticky.adminid = banning_admin.id
+
+ new_sticky.date = override_date ? override_date : "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]"
+ new_sticky.save()
+ new_sticky.sync()
+
+ return new_sticky
+
+/// Adds a ckey match to the specified sticky ban.
+/datum/controller/subsystem/stickyban/proc/add_matched_ckey(existing_ban_id, key)
+ key = ckey(key)
+
+ if(length(DB_VIEW(/datum/view_record/stickyban_matched_ckey,
+ DB_AND(
+ DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id),
+ DB_COMP("ckey", DB_EQUALS, key)
+ )
+ )))
+ return
+
+ var/datum/entity/stickyban_matched_ckey/matched_ckey = DB_ENTITY(/datum/entity/stickyban_matched_ckey)
+
+ matched_ckey.ckey = key
+ matched_ckey.linked_stickyban = existing_ban_id
+
+ matched_ckey.save()
+
+/// Adds an IP match to the specified stickyban.
+/datum/controller/subsystem/stickyban/proc/add_matched_ip(existing_ban_id, ip)
+ if(length(DB_VIEW(/datum/view_record/stickyban_matched_ip,
+ DB_AND(
+ DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id),
+ DB_COMP("ip", DB_EQUALS, ip)
+ )
+ )))
+ return
+
+ var/datum/entity/stickyban_matched_ip/matched_ip = DB_ENTITY(/datum/entity/stickyban_matched_ip)
+
+ matched_ip.ip = ip
+ matched_ip.linked_stickyban = existing_ban_id
+
+ matched_ip.save()
+
+/// Adds a CID match to the specified stickyban.
+/datum/controller/subsystem/stickyban/proc/add_matched_cid(existing_ban_id, cid)
+ if(length(DB_VIEW(/datum/view_record/stickyban_matched_cid,
+ DB_AND(
+ DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id),
+ DB_COMP("cid", DB_EQUALS, cid)
+ )
+ )))
+ return
+
+
+ var/datum/entity/stickyban_matched_cid/matched_cid = DB_ENTITY(/datum/entity/stickyban_matched_cid)
+
+ matched_cid.cid = cid
+ matched_cid.linked_stickyban = existing_ban_id
+
+ matched_cid.save()
+
+/// Whitelists a specific CKEY to the specified stickyban, which will allow connection, even with matching CIDs and IPs.
+/datum/controller/subsystem/stickyban/proc/whitelist_ckey(existing_ban_id, key)
+ key = ckey(key)
+
+ if(!key)
+ return
+
+ var/id_to_select
+
+ var/list/datum/view_record/stickyban_matched_ckey/existing_matches = DB_VIEW(/datum/view_record/stickyban_matched_ckey,
+ DB_AND(
+ DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id),
+ DB_COMP("ckey", DB_EQUALS, key)
+ )
+ )
+
+ if(length(existing_matches))
+ var/datum/view_record/stickyban_matched_ckey/match = existing_matches[1]
+ id_to_select = match.id
+
+ var/datum/entity/stickyban_matched_ckey/whitelisted_ckey = DB_ENTITY(/datum/entity/stickyban_matched_ckey, id_to_select)
+
+ whitelisted_ckey.ckey = key
+ whitelisted_ckey.linked_stickyban = existing_ban_id
+ whitelisted_ckey.whitelisted = TRUE
+
+ whitelisted_ckey.save()
+
+/**
+ * Returns a [/list] of [/datum/view_record/stickyban_matched_ckey] where the ckey provided has not been
+ * whitelisted from the stickyban, and would be prevented from joining - provided that the stickyban itself
+ * remains active.
+ */
+/datum/controller/subsystem/stickyban/proc/get_impacted_ckey_records(key)
+ key = ckey(key)
+
+ return DB_VIEW(/datum/view_record/stickyban_matched_ckey,
+ DB_AND(
+ DB_COMP("ckey", DB_EQUALS, key),
+ DB_COMP("whitelisted", DB_EQUALS, FALSE)
+ )
+ )
+
+/**
+ * Returns a [/list] of [/datum/view_record/stickyban_matched_ckey] which have been manually whitelisted by an admin and matches the provided existing_ban_id and key.
+ */
+/datum/controller/subsystem/stickyban/proc/get_whitelisted_ckey_records(existing_ban_id, key)
+ key = ckey(key)
+
+ return DB_VIEW(/datum/view_record/stickyban_matched_ckey,
+ DB_AND(
+ DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id),
+ DB_COMP("ckey", DB_EQUALS, key),
+ DB_COMP("whitelisted", DB_EQUALS, TRUE),
+ )
+ )
+
+/**
+ * Returns a [/list] of [/datum/view_record/stickyban_matched_cid] where the impacted CID matches the CID provided.
+ * Connections matching this CID will be blocked - provided the linked stickyban is active.
+ */
+/datum/controller/subsystem/stickyban/proc/get_impacted_cid_records(cid)
+ return DB_VIEW(/datum/view_record/stickyban_matched_cid,
+ DB_COMP("cid", DB_EQUALS, cid)
+ )
+
+/**
+ * Returns a [/list] of [/datum/view_record/stickyban_matched_ip] where the impacted IP matches the IP provided.
+ * Connections matchin this IP will be blocked - provided the linked stickyban is active.
+ */
+/datum/controller/subsystem/stickyban/proc/get_impacted_ip_records(ip)
+ return DB_VIEW(/datum/view_record/stickyban_matched_ip,
+ DB_COMP("ip", DB_EQUALS, ip)
+ )
+
+/// Legacy import from pager bans to database bans.
+/datum/controller/subsystem/stickyban/proc/import_sticky(identifier, list/ban_data)
+ WAIT_DB_READY
+
+ if(ban_data["type"] != "sticky")
+ handle_old_perma(identifier, ban_data)
+ return
+
+ if(!ban_data["message"])
+ ban_data["message"] = "Evasion"
+
+ add_stickyban(identifier, ban_data["reason"], ban_data["message"], override_date = "LEGACY")
+
+/**
+ * We abuse the on_insert from ndatabase here to ensure we have the synced ID of the new stickyban when applying a *lot* of associated bans. If we don't have a matching pager ban with the new sticky's identifier, we stop.
+ */
+/datum/entity_meta/stickyban/on_insert(datum/entity/stickyban/new_sticky)
+ var/list/ban_data = params2list(world.GetConfig("ban", new_sticky.identifier))
+
+ if(!length(ban_data))
+ return
+
+ var/list/whitelisted = list()
+ if(ban_data["whitelist"])
+ whitelisted = splittext(ban_data["whitelist"], ",")
+ for(var/key in whitelisted)
+ SSstickyban.whitelist_ckey(new_sticky.id, key)
+
+ if(ban_data["keys"])
+ var/list/keys = splittext(ban_data["keys"], ",")
+ keys -= whitelisted
+ for(var/key in keys)
+ SSstickyban.add_matched_ckey(new_sticky.id, key)
+
+ if(ban_data["computer_id"])
+ var/list/cids = splittext(ban_data["computer_id"], ",")
+ for(var/cid in cids)
+ SSstickyban.add_matched_cid(new_sticky.id, cid)
+
+ if(ban_data["IP"])
+ var/list/ips = splittext(ban_data["IP"], ",")
+ for(var/ip in ips)
+ SSstickyban.add_matched_ip(new_sticky.id, ip)
+
+ world.SetConfig("ban", new_sticky.identifier, null)
+
+/// Imports permabans from the old ban.txt, and does *not* ban people that have been whitelisted.
+/datum/controller/subsystem/stickyban/proc/handle_old_perma(identifier, list/ban_data)
+ var/list/keys_to_ban = list()
+
+ keys_to_ban += splittext(ban_data["keys"], ",")
+
+ for(var/x in 1 to length(keys_to_ban))
+ keys_to_ban[x] = ckey(keys_to_ban[x])
+
+ var/list/keys = splittext(ban_data["whitelist"], ",")
+ for(var/key in keys)
+ keys_to_ban -= ckey(key)
+
+ for(var/key in keys_to_ban)
+ var/datum/entity/player/player_entity = get_player_from_key(key)
+ if(!player_entity)
+ continue
+
+ INVOKE_ASYNC(player_entity, TYPE_PROC_REF(/datum/entity/player, add_perma_ban), ban_data["message"])
+
+ world.SetConfig("ban", identifier, null)
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 2b9812abade4..f265315460e3 100644
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -8,6 +8,10 @@ SUBSYSTEM_DEF(ticker)
var/current_state = GAME_STATE_STARTUP //State of current round used by process()
var/force_ending = FALSE //Round was ended by admin intervention
+
+ /// If TRUE, there is no lobby phase, the game starts immediately.
+ var/start_immediately = FALSE
+
var/bypass_checks = FALSE //Bypass mode init checks
var/setup_failed = FALSE //If the setup has failed at any point
var/setup_started = FALSE
@@ -80,6 +84,10 @@ SUBSYSTEM_DEF(ticker)
var/mob/new_player/player = i
if(player.ready) // TODO: port this == PLAYER_READY_TO_PLAY)
++totalPlayersReady
+
+ if(start_immediately)
+ time_left = 0
+
if(time_left < 0 || delay_start)
return
@@ -207,7 +215,7 @@ SUBSYSTEM_DEF(ticker)
CHECK_TICK
mode.announce()
if(mode.taskbar_icon)
- RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGIN, PROC_REF(handle_mode_icon))
+ RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGGED_IN, PROC_REF(handle_mode_icon))
set_clients_taskbar_icon(mode.taskbar_icon)
if(GLOB.perf_flags & PERF_TOGGLE_LAZYSS)
diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm
index 6188e38e8d60..2438577a1771 100644
--- a/code/controllers/subsystem/vote.dm
+++ b/code/controllers/subsystem/vote.dm
@@ -59,7 +59,7 @@ SUBSYSTEM_DEF(vote)
voting.Cut()
remove_action_buttons()
- UnregisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGIN)
+ UnregisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGGED_IN)
for(var/c in GLOB.player_list)
update_static_data(c)
@@ -373,7 +373,7 @@ SUBSYSTEM_DEF(vote)
if(send_clients_vote)
C.mob.vote()
- RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGIN, PROC_REF(handle_client_joining))
+ RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGGED_IN, PROC_REF(handle_client_joining))
SStgui.update_uis(src)
return TRUE
return FALSE
@@ -525,7 +525,7 @@ GLOBAL_LIST_INIT(possible_vote_types, list(
if(!(params["vote_type"] in GLOB.possible_vote_types))
return
- if(!check_rights(R_ADMIN))
+ if(!check_rights(R_MOD))
var/list/vote_type = GLOB.possible_vote_types[params["vote_type"]]
if(vote_type["admin_only"])
return
diff --git a/code/datums/ammo/ammo.dm b/code/datums/ammo/ammo.dm
index 7a4006deee73..229c10b31e3a 100644
--- a/code/datums/ammo/ammo.dm
+++ b/code/datums/ammo/ammo.dm
@@ -84,7 +84,7 @@
/// that will be given to a projectile with the current ammo datum
var/list/list/traits_to_give
- var/flamer_reagent_type = /datum/reagent/napalm/ut
+ var/flamer_reagent_id = "utnapthal"
/// The flicker that plays when a bullet hits a target. Usually red. Can be nulled so it doesn't show up at all.
var/hit_effect_color = "#FF0000"
@@ -237,11 +237,12 @@
P.fire_at(new_target, original_P.firer, original_P.shot_from, P.ammo.max_range, P.ammo.shell_speed, original_P.original) //Fire!
-/datum/ammo/proc/drop_flame(turf/T, datum/cause_data/cause_data) // ~Art updated fire 20JAN17
- if(!istype(T))
+/datum/ammo/proc/drop_flame(turf/turf, datum/cause_data/cause_data) // ~Art updated fire 20JAN17
+ if(!istype(turf))
return
- if(locate(/obj/flamer_fire) in T)
+ if(locate(/obj/flamer_fire) in turf)
return
- var/datum/reagent/R = new flamer_reagent_type()
- new /obj/flamer_fire(T, cause_data, R)
+ var/datum/reagent/chemical = GLOB.chemical_reagents_list[flamer_reagent_id]
+
+ new /obj/flamer_fire(turf, cause_data, chemical)
diff --git a/code/datums/ammo/bullet/pistol.dm b/code/datums/ammo/bullet/pistol.dm
index 8be63b0a15af..937c40d16cff 100644
--- a/code/datums/ammo/bullet/pistol.dm
+++ b/code/datums/ammo/bullet/pistol.dm
@@ -66,7 +66,7 @@
/datum/ammo/bullet/pistol/ap/toxin/on_hit_turf(turf/T, obj/projectile/P)
. = ..()
- if(T.flags_turf & TURF_ORGANIC)
+ if(T.turf_flags & TURF_ORGANIC)
P.damage *= organic_damage_mult
/datum/ammo/bullet/pistol/ap/toxin/on_hit_obj(obj/O, obj/projectile/P)
@@ -197,7 +197,7 @@
/datum/ammo/bullet/pistol/squash/toxin/on_hit_turf(turf/T, obj/projectile/P)
. = ..()
- if(T.flags_turf & TURF_ORGANIC)
+ if(T.turf_flags & TURF_ORGANIC)
P.damage *= organic_damage_mult
/datum/ammo/bullet/pistol/squash/toxin/on_hit_obj(obj/O, obj/projectile/P)
diff --git a/code/datums/ammo/bullet/revolver.dm b/code/datums/ammo/bullet/revolver.dm
index 633bf3e2f7ff..0688e615378e 100644
--- a/code/datums/ammo/bullet/revolver.dm
+++ b/code/datums/ammo/bullet/revolver.dm
@@ -52,7 +52,7 @@
/datum/ammo/bullet/revolver/marksman/toxin/on_hit_turf(turf/T, obj/projectile/P)
. = ..()
- if(T.flags_turf & TURF_ORGANIC)
+ if(T.turf_flags & TURF_ORGANIC)
P.damage *= organic_damage_mult
/datum/ammo/bullet/revolver/marksman/toxin/on_hit_obj(obj/O, obj/projectile/P)
diff --git a/code/datums/ammo/bullet/rifle.dm b/code/datums/ammo/bullet/rifle.dm
index 0be6f1db8ff4..7711e082a596 100644
--- a/code/datums/ammo/bullet/rifle.dm
+++ b/code/datums/ammo/bullet/rifle.dm
@@ -21,11 +21,16 @@
/datum/ammo/bullet/rifle/holo_target
name = "holo-targeting rifle bullet"
damage = 30
+ /// inflicts this many holo stacks per bullet hit
var/holo_stacks = 10
+ /// modifies the default cap limit of 100 by this amount
+ var/bonus_damage_cap_increase = 0
+ /// multiplies the default drain of 5 holo stacks per second by this amount
+ var/stack_loss_multiplier = 1
-/datum/ammo/bullet/rifle/holo_target/on_hit_mob(mob/M, obj/projectile/P)
+/datum/ammo/bullet/rifle/holo_target/on_hit_mob(mob/hit_mob, obj/projectile/bullet)
. = ..()
- M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time)
+ hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier)
/datum/ammo/bullet/rifle/holo_target/hunting
name = "holo-targeting hunting bullet"
@@ -69,7 +74,7 @@
/datum/ammo/bullet/rifle/ap/toxin/on_hit_turf(turf/T, obj/projectile/P)
. = ..()
- if(T.flags_turf & TURF_ORGANIC)
+ if(T.turf_flags & TURF_ORGANIC)
P.damage *= organic_damage_mult
/datum/ammo/bullet/rifle/ap/toxin/on_hit_obj(obj/O, obj/projectile/P)
@@ -169,16 +174,16 @@
shell_speed = AMMO_SPEED_TIER_6
/datum/ammo/bullet/rifle/m4ra/impact/on_hit_mob(mob/M, obj/projectile/P)
- knockback(M, P, 32) // Can knockback basically at max range
+ knockback(M, P, 32) // Can knockback basically at max range max range is 24 tiles...
/datum/ammo/bullet/rifle/m4ra/impact/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile)
if(iscarbonsizexeno(living_mob))
var/mob/living/carbon/xenomorph/target = living_mob
to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!"))
- target.KnockDown(0.5) // purely for visual effect, noone actually cares
- target.Stun(0.5)
- target.apply_effect(2, SUPERSLOW)
- target.apply_effect(5, SLOW)
+ target.KnockDown(0.5-fired_projectile.distance_travelled/100) // purely for visual effect, noone actually cares
+ target.Stun(0.5-fired_projectile.distance_travelled/100)
+ target.apply_effect(2-fired_projectile.distance_travelled/20, SUPERSLOW)
+ target.apply_effect(5-fired_projectile.distance_travelled/10, SLOW)
else
if(!isyautja(living_mob)) //Not predators.
living_mob.apply_effect(1, SUPERSLOW)
diff --git a/code/datums/ammo/bullet/smg.dm b/code/datums/ammo/bullet/smg.dm
index e24b3021da97..3fa087972fbe 100644
--- a/code/datums/ammo/bullet/smg.dm
+++ b/code/datums/ammo/bullet/smg.dm
@@ -51,7 +51,7 @@
/datum/ammo/bullet/smg/ap/toxin/on_hit_turf(turf/T, obj/projectile/P)
. = ..()
- if(T.flags_turf & TURF_ORGANIC)
+ if(T.turf_flags & TURF_ORGANIC)
P.damage *= organic_damage_mult
/datum/ammo/bullet/smg/ap/toxin/on_hit_obj(obj/O, obj/projectile/P)
diff --git a/code/datums/ammo/bullet/sniper.dm b/code/datums/ammo/bullet/sniper.dm
index a82f00631608..22371972e623 100644
--- a/code/datums/ammo/bullet/sniper.dm
+++ b/code/datums/ammo/bullet/sniper.dm
@@ -139,6 +139,28 @@
BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating/heavy)
))
+/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target
+ name = "holo-targeting anti-materiel sniper bullet"
+ damage = 60 // it's a big bullet but its purpose is to support marines, not to kill enemies by itself
+ /// inflicts this many holo stacks per bullet hit
+ var/holo_stacks = 333
+ /// modifies the default cap limit of 100 by this amount
+ var/bonus_damage_cap_increase = 233
+ /// multiplies the default drain of 5 holo stacks per second by this amount
+ var/stack_loss_multiplier = 2
+
+/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target/on_hit_mob(mob/hit_mob, obj/projectile/bullet)
+ hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier)
+ playsound(hit_mob, 'sound/weapons/gun_vulture_mark.ogg', 40)
+ to_chat(hit_mob, isxeno(hit_mob) ? SPAN_XENOHIGHDANGER("It feels as if we were MARKED FOR DEATH!") : SPAN_HIGHDANGER("It feels as if you were MARKED FOR DEATH!"))
+ hit_mob.balloon_alert_to_viewers("marked for death!")
+
+// the effect should be limited to one target, with IFF to compensate how hard it will be to hit these shots
+/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target/set_bullet_traits()
+ LAZYADD(traits_to_give, list(
+ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff)
+ ))
+
/datum/ammo/bullet/sniper/elite
name = "supersonic sniper bullet"
diff --git a/code/datums/ammo/bullet/special_ammo.dm b/code/datums/ammo/bullet/special_ammo.dm
index 3d53c6b0c0d0..97c1bf5735f9 100644
--- a/code/datums/ammo/bullet/special_ammo.dm
+++ b/code/datums/ammo/bullet/special_ammo.dm
@@ -46,12 +46,16 @@
/datum/ammo/bullet/smartgun/holo_target //Royal marines smartgun bullet has only diff between regular ammo is this one does holostacks
name = "holo-targeting smartgun bullet"
damage = 30
- ///Stuff for the HRP holotargetting stacks
+ /// inflicts this many holo stacks per bullet hit
var/holo_stacks = 15
+ /// modifies the default cap limit of 100 by this amount
+ var/bonus_damage_cap_increase = 0
+ /// multiplies the default drain of 5 holo stacks per second by this amount
+ var/stack_loss_multiplier = 1
-/datum/ammo/bullet/smartgun/holo_target/on_hit_mob(mob/M, obj/projectile/P)
+/datum/ammo/bullet/smartgun/holo_target/on_hit_mob(mob/hit_mob, obj/projectile/bullet)
. = ..()
- M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time)
+ hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier)
/datum/ammo/bullet/smartgun/holo_target/ap
name = "armor-piercing smartgun bullet"
diff --git a/code/datums/ammo/energy.dm b/code/datums/ammo/energy.dm
index 16cbab378438..1f48806d2d52 100644
--- a/code/datums/ammo/energy.dm
+++ b/code/datums/ammo/energy.dm
@@ -230,3 +230,10 @@
var/mob/living/carbon/xenomorph/xeno = hit_mob
xeno.apply_damage(damage * 0.75, BURN)
xeno.interference = 30
+
+/datum/ammo/energy/yautja/rifle/bolt/set_bullet_traits()
+ . = ..()
+ LAZYADD(traits_to_give, list(
+ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary)
+ ))
+
diff --git a/code/datums/ammo/misc.dm b/code/datums/ammo/misc.dm
index 62a78539b6a2..bcb9673548db 100644
--- a/code/datums/ammo/misc.dm
+++ b/code/datums/ammo/misc.dm
@@ -49,11 +49,11 @@
drop_flame(get_turf(P), P.weapon_cause_data)
/datum/ammo/flamethrower/tank_flamer
- flamer_reagent_type = /datum/reagent/napalm/blue
+ flamer_reagent_id = "napalmx"
/datum/ammo/flamethrower/sentry_flamer
flags_ammo_behavior = AMMO_IGNORE_ARMOR|AMMO_IGNORE_COVER|AMMO_FLAME
- flamer_reagent_type = /datum/reagent/napalm/blue
+ flamer_reagent_id = "napalmx"
accuracy = HIT_ACCURACY_TIER_8
accurate_range = 6
diff --git a/code/datums/ammo/shrapnel.dm b/code/datums/ammo/shrapnel.dm
index e27caa4b277d..39b0813fad25 100644
--- a/code/datums/ammo/shrapnel.dm
+++ b/code/datums/ammo/shrapnel.dm
@@ -43,10 +43,17 @@
shrapnel_chance = 0
shell_speed = AMMO_SPEED_TIER_3//she fast af boi
penetration = ARMOR_PENETRATION_TIER_5
-
-/datum/ammo/bullet/shrapnel/hornet_rounds/on_hit_mob(mob/M, obj/projectile/P)
+ /// inflicts this many holo stacks per bullet hit
+ var/holo_stacks = 10
+ /// modifies the default cap limit of 100 by this amount
+ var/bonus_damage_cap_increase = 0
+ /// multiplies the default drain of 5 holo stacks per second by this amount
+ var/stack_loss_multiplier = 1
+
+/datum/ammo/bullet/shrapnel/hornet_rounds/on_hit_mob(mob/hit_mob, obj/projectile/bullet)
. = ..()
- M.AddComponent(/datum/component/bonus_damage_stack, 10, world.time)
+ hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier)
+
/datum/ammo/bullet/shrapnel/incendiary
name = "flaming shrapnel"
diff --git a/code/datums/components/bonus_damage_stack.dm b/code/datums/components/bonus_damage_stack.dm
index faf4813541b8..78da5e036ce4 100644
--- a/code/datums/components/bonus_damage_stack.dm
+++ b/code/datums/components/bonus_damage_stack.dm
@@ -15,15 +15,21 @@
var/bonus_damage_cap = 100
/// Last world.time that the afflicted was hit by a holo-targeting round.
var/last_stack
+ /// extra cap limit added by more powerful bullets
+ var/bonus_damage_cap_increase = 0
+ /// multiplies the BONUS_DAMAGE_STACK_LOSS_PER_SECOND calculation, modifying how fast we lose holo stacks
+ var/stack_loss_multiplier = 1
-/datum/component/bonus_damage_stack/Initialize(bonus_damage_stacks, time)
+/datum/component/bonus_damage_stack/Initialize(bonus_damage_stacks, time, bonus_damage_cap_increase, stack_loss_multiplier)
. = ..()
src.bonus_damage_stacks = bonus_damage_stacks
+ src.stack_loss_multiplier = stack_loss_multiplier
+ src.bonus_damage_cap = initial(bonus_damage_cap) + bonus_damage_cap_increase // this way it will never increase over the intended limit
if(!time)
time = world.time
src.last_stack = time
-/datum/component/bonus_damage_stack/InheritComponent(datum/component/bonus_damage_stack/BDS, i_am_original, bonus_damage_stacks, time)
+/datum/component/bonus_damage_stack/InheritComponent(datum/component/bonus_damage_stack/BDS, i_am_original, bonus_damage_stacks, time, bonus_damage_cap_increase, stack_loss_multiplier)
. = ..()
if(!BDS)
src.bonus_damage_stacks += bonus_damage_stacks
@@ -32,22 +38,32 @@
src.bonus_damage_stacks += BDS.bonus_damage_stacks
src.last_stack = BDS.last_stack
- src.bonus_damage_stacks = min(src.bonus_damage_stacks, bonus_damage_cap)
+ // if a different type of holo targetting bullet hits a mob and has a bigger bonus cap, it will get applied.
+ if(src.bonus_damage_cap_increase < bonus_damage_cap_increase)
+ src.bonus_damage_cap_increase = bonus_damage_cap_increase
+ src.bonus_damage_cap = initial(bonus_damage_cap) + src.bonus_damage_cap_increase
+
+ // however, if it has a worse stack_loss_multiplier, it will get applied instead.
+ // this way, if a weapon is meant to have a big bonus cap but holo stacks that rapidly deplete, it will not be messed up by a weapon that a low stack_loss_multiplier.
+ if(src.stack_loss_multiplier < stack_loss_multiplier)
+ src.stack_loss_multiplier = stack_loss_multiplier
+
+ src.bonus_damage_stacks = min(src.bonus_damage_stacks, src.bonus_damage_cap)
/datum/component/bonus_damage_stack/process(delta_time)
if(last_stack + 5 SECONDS < world.time)
- bonus_damage_stacks = bonus_damage_stacks - BONUS_DAMAGE_STACK_LOSS_PER_SECOND * delta_time
+ bonus_damage_stacks = bonus_damage_stacks - BONUS_DAMAGE_STACK_LOSS_PER_SECOND * stack_loss_multiplier * delta_time
if(bonus_damage_stacks <= 0)
qdel(src)
var/color = COLOR_BONUS_DAMAGE
- var/intensity = bonus_damage_stacks / (bonus_damage_cap * 2)
- color += num2text(BONUS_DAMAGE_MAX_ALPHA * intensity, 2, 16)
-
+ var/intensity = bonus_damage_stacks / (initial(bonus_damage_cap) * 2)
+ // if intensity is too high of a value, the hex code will become invalid
+ color += num2text(BONUS_DAMAGE_MAX_ALPHA * clamp(intensity, 0, 0.5), 1, 16)
if(parent)
var/atom/A = parent
- A.add_filter("bonus_damage_stacks", 2, list("type" = "outline", "color" = color, "size" = 1))
+ A.add_filter("bonus_damage_stacks", 2, list("type" = "outline", "color" = color, "size" = 1 + clamp(intensity, 0, 1)))
/datum/component/bonus_damage_stack/RegisterWithParent()
START_PROCESSING(SSdcs, src)
@@ -67,7 +83,7 @@
SIGNAL_HANDLER
L += "Bonus Damage Taken: [bonus_damage_stacks * 0.1]%"
-/datum/component/bonus_damage_stack/proc/get_bonus_damage(mob/M, list/damage_data) // 10% damage bonus at most
+/datum/component/bonus_damage_stack/proc/get_bonus_damage(mob/M, list/damage_data) // 10% damage bonus in most instances
SIGNAL_HANDLER
damage_data["bonus_damage"] = damage_data["damage"] * (min(bonus_damage_stacks, bonus_damage_cap) / 1000)
diff --git a/code/datums/components/temporary_mute.dm b/code/datums/components/temporary_mute.dm
new file mode 100644
index 000000000000..64b3e87809b6
--- /dev/null
+++ b/code/datums/components/temporary_mute.dm
@@ -0,0 +1,92 @@
+/datum/component/temporary_mute
+ dupe_mode = COMPONENT_DUPE_UNIQUE
+ /// A message to tell the user when they attempt to speak, if any
+ var/on_speak_message = ""
+ /// A message to tell the user when they attempt to emote, if any
+ var/on_emote_message = ""
+ /// A message to tell the user when they become no longer mute, if any
+ var/on_unmute_message = ""
+ /// How long after the component's initialization it should be deleted. -1 means it will never delete
+ var/time_until_unmute = 3 MINUTES
+
+/datum/component/temporary_mute/Initialize(on_speak_message = "", on_emote_message = "", on_unmute_message = "", time_until_unmute = 3 MINUTES)
+ . = ..()
+ if(!ismob(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ src.on_speak_message = on_speak_message
+ src.on_emote_message = on_emote_message
+ src.on_unmute_message = on_unmute_message
+ src.time_until_unmute = time_until_unmute
+ if(time_until_unmute != -1)
+ QDEL_IN(src, time_until_unmute)
+
+/datum/component/temporary_mute/RegisterWithParent()
+ ..()
+ RegisterSignal(parent, COMSIG_LIVING_SPEAK, PROC_REF(on_speak))
+ RegisterSignal(parent, COMSIG_XENO_TRY_HIVEMIND_TALK, PROC_REF(on_hivemind))
+ RegisterSignal(parent, COMSIG_MOB_TRY_EMOTE, PROC_REF(on_emote))
+ RegisterSignal(parent, COMSIG_MOB_TRY_POINT, PROC_REF(on_point))
+ ADD_TRAIT(parent, TRAIT_TEMPORARILY_MUTED, TRAIT_SOURCE_TEMPORARY_MUTE)
+
+/datum/component/temporary_mute/UnregisterFromParent()
+ ..()
+ if(parent)
+ UnregisterSignal(parent, COMSIG_LIVING_SPEAK)
+ UnregisterSignal(parent, COMSIG_XENO_TRY_HIVEMIND_TALK)
+ UnregisterSignal(parent, COMSIG_MOB_TRY_EMOTE)
+ UnregisterSignal(parent, COMSIG_MOB_TRY_POINT)
+ if(on_unmute_message)
+ to_chat(parent, SPAN_NOTICE(on_unmute_message))
+ REMOVE_TRAIT(parent, TRAIT_TEMPORARILY_MUTED, TRAIT_SOURCE_TEMPORARY_MUTE)
+
+/datum/component/temporary_mute/proc/on_speak(
+ mob/user,
+ message,
+ datum/language/speaking = null,
+ verb = "says",
+ alt_name = "",
+ italics = FALSE,
+ message_range = GLOB.world_view_size,
+ sound/speech_sound,
+ sound_vol,
+ nolog = FALSE,
+ message_mode = null
+)
+ SIGNAL_HANDLER
+
+ if(!nolog)
+ log_say("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to say the following before their spawn mute ended: [message] (CKEY: [user.key]) (JOB: [user.job])")
+ if(on_speak_message)
+ to_chat(parent, SPAN_BOLDNOTICE(on_speak_message))
+ return COMPONENT_OVERRIDE_SPEAK
+
+/datum/component/temporary_mute/proc/on_hivemind(mob/user, message)
+ SIGNAL_HANDLER
+
+ log_say("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to hivemind the following before their spawn mute ended: [message] (CKEY: [user.key]) (JOB: [user.job])")
+ if(on_speak_message)
+ to_chat(parent, SPAN_BOLDNOTICE(on_speak_message))
+ return COMPONENT_OVERRIDE_HIVEMIND_TALK
+
+/datum/component/temporary_mute/proc/on_emote(mob/user, datum/emote/current_emote, act, m_type, param, intentional)
+ SIGNAL_HANDLER
+
+ // Allow involuntary emotes or non-custom emotes
+ if(!intentional)
+ return
+ if(!param && !istype(current_emote, /datum/emote/custom))
+ return
+
+ log_say("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to emote the following before their spawn mute ended: [param] (CKEY: [user.key]) (JOB: [user.job])")
+ if(on_emote_message)
+ to_chat(parent, SPAN_BOLDNOTICE(on_emote_message))
+ return COMPONENT_OVERRIDE_EMOTE
+
+/datum/component/temporary_mute/proc/on_point(mob/user, atom/target)
+ SIGNAL_HANDLER
+
+ log_say("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to point at the following before their spawn mute ended: [target] (CKEY: [user.key]) (JOB: [user.job])")
+ if(on_emote_message)
+ to_chat(parent, SPAN_BOLDNOTICE(on_emote_message))
+ return COMPONENT_OVERRIDE_POINT
diff --git a/code/datums/diseases/black_goo.dm b/code/datums/diseases/black_goo.dm
index 183cdadf17aa..a5f67c8445be 100644
--- a/code/datums/diseases/black_goo.dm
+++ b/code/datums/diseases/black_goo.dm
@@ -2,6 +2,7 @@
#define ZOMBIE_INFECTION_STAGE_ONE 1
#define ZOMBIE_INFECTION_STAGE_TWO 2
#define ZOMBIE_INFECTION_STAGE_THREE 3
+#define ZOMBIE_INFECTION_STAGE_FOUR 4
#define SLOW_INFECTION_RATE 1
#define FAST_INFECTION_RATE 7
#define STAGE_LEVEL_THRESHOLD 360
@@ -9,7 +10,7 @@
/datum/disease/black_goo
name = "Black Goo"
- max_stages = 3
+ max_stages = 4
cure = "Anti-Zed"
cure_id = "antiZed"
spread = "Bites"
@@ -120,17 +121,23 @@
stage_level += 42
if(ZOMBIE_INFECTION_STAGE_THREE)
- //check if the mob is already a zombie and just return to avoid weird stuff, edge case if zombie_is_transforming deoesn't work.
+ // if zombie or transforming we upgrade it to stage four.
if(iszombie(infected_mob))
+ stage++
return
-
- if(infected_mob.stat == DEAD && stage_counter != stage)
- to_chat(infected_mob, SPAN_CENTERBOLD("Your zombie infection is now at stage three! Zombie transformation begin!"))
- stage_counter = stage
- hidden = list(0,0)
+ // if not a zombie(above check) and isn't transforming then we transform you into a zombie.
if(!zombie_is_transforming)
+ // if your dead we inform you that you're going to turn into a zombie.
+ if(infected_mob.stat == DEAD && stage_counter != stage)
+ to_chat(infected_mob, SPAN_CENTERBOLD("Your zombie infection is now at stage three! Zombie transformation begin!"))
+ stage_counter = stage
zombie_transform(infected_mob)
- infected_mob.next_move_slowdown = max(infected_mob.next_move_slowdown, 2)
+ hidden = list(0,0)
+ infected_mob.next_move_slowdown = max(infected_mob.next_move_slowdown, 2)
+
+ if(ZOMBIE_INFECTION_STAGE_FOUR)
+ return
+ // final stage of infection it's to avoid running the above test once you're a zombie for now. maybe more later.
/datum/disease/black_goo/proc/zombie_transform(mob/living/carbon/human/human)
set waitfor = 0
@@ -149,7 +156,7 @@
playsound(human.loc, 'sound/hallucinations/wail.ogg', 25, 1)
human.jitteriness = 0
human.set_species(SPECIES_ZOMBIE)
- stage = 3
+ stage = 4
human.faction = FACTION_ZOMBIE
zombie_is_transforming = FALSE
@@ -250,7 +257,6 @@
/obj/item/reagent_container/glass/bottle/labeled_black_goo_cure
name = "\"Pathogen\" cure bottle"
desc = "The bottle has a biohazard symbol on the front, and has a label, designating its use against Agent A0-3959X.91–15, colloquially known as the \"Black Goo\"."
- icon_state = "bottle20"
/obj/item/reagent_container/glass/bottle/labeled_black_goo_cure/Initialize()
. = ..()
@@ -310,6 +316,7 @@
#undef ZOMBIE_INFECTION_STAGE_ONE
#undef ZOMBIE_INFECTION_STAGE_TWO
#undef ZOMBIE_INFECTION_STAGE_THREE
+#undef ZOMBIE_INFECTION_STAGE_FOUR
#undef STAGE_LEVEL_THRESHOLD
#undef SLOW_INFECTION_RATE
#undef FAST_INFECTION_RATE
diff --git a/code/datums/emergency_calls/cbrn.dm b/code/datums/emergency_calls/cbrn.dm
index cee96e10137e..fc20f98f20b3 100644
--- a/code/datums/emergency_calls/cbrn.dm
+++ b/code/datums/emergency_calls/cbrn.dm
@@ -2,6 +2,7 @@
name = "CBRN (Squad)"
arrival_message = "A CBRN squad has been dispatched to your ship. Stand by."
objectives = "Handle the chemical, biological, radiological, or nuclear threat. Further orders may be provided."
+ home_base = /datum/lazy_template/ert/weyland_station
mob_min = 3
mob_max = 5
max_heavies = 0
diff --git a/code/datums/emergency_calls/clf.dm b/code/datums/emergency_calls/clf.dm
index 88c95ef31bc4..5441ba3103a7 100644
--- a/code/datums/emergency_calls/clf.dm
+++ b/code/datums/emergency_calls/clf.dm
@@ -8,6 +8,7 @@
objectives = "Assault the USCM, and sabotage as much as you can. Ensure any survivors escape in your custody."
probability = 20
hostility = TRUE
+ home_base = /datum/lazy_template/ert/clf_station
var/max_synths = 1
var/synths = 0
diff --git a/code/datums/emergency_calls/cmb.dm b/code/datums/emergency_calls/cmb.dm
index 56b8b169b313..feb31cf0fe16 100644
--- a/code/datums/emergency_calls/cmb.dm
+++ b/code/datums/emergency_calls/cmb.dm
@@ -3,6 +3,7 @@
name = "CMB - Colonial Marshals Patrol Team (Friendly)"
mob_max = 5
probability = 10
+ home_base = /datum/lazy_template/ert/weyland_station
var/max_synths = 1
var/synths = 0
diff --git a/code/datums/emergency_calls/deathsquad.dm b/code/datums/emergency_calls/deathsquad.dm
index 1cd5bdef6713..66e9a377a8bc 100644
--- a/code/datums/emergency_calls/deathsquad.dm
+++ b/code/datums/emergency_calls/deathsquad.dm
@@ -9,7 +9,8 @@
arrival_message = "'!`2*%slau#*jer t*h$em a!l%. le&*ve n(o^ w&*nes%6es.*v$e %#d ou^'"
objectives = "Whiteout protocol is in effect for the target. Ensure there are no traces of the infestation or any witnesses."
probability = 0
- shuttle_id = "Distress_PMC"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT2
+ home_base = /datum/lazy_template/ert/weyland_station
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc
item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item
max_medics = 1
@@ -91,7 +92,8 @@
mob_max = 8
mob_min = 5
probability = 0
- shuttle_id = "Distress_PMC"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT2
+ home_base = /datum/lazy_template/ert/weyland_station
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc
/datum/emergency_call/marsoc/create_member(datum/mind/M, turf/override_spawn_loc)
@@ -120,8 +122,9 @@
mob_max = 8
mob_min = 5
probability = 0
- shuttle_id = "Distress_PMC"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT2
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc
+ home_base = /datum/lazy_template/ert/weyland_station
/datum/emergency_call/marsoc_covert/create_member(datum/mind/M)
diff --git a/code/datums/emergency_calls/emergency_call.dm b/code/datums/emergency_calls/emergency_call.dm
index 7884d93b18bc..a803a7f06c78 100644
--- a/code/datums/emergency_calls/emergency_call.dm
+++ b/code/datums/emergency_calls/emergency_call.dm
@@ -28,6 +28,10 @@
var/mob_min = 3
var/dispatch_message = "An encrypted signal has been received from a nearby vessel. Stand by." //Msg to display when starting
var/arrival_message = "" //Msg to display about when the shuttle arrives
+ /// Probability that the message will be replaced with static. - prob(chance_hidden)
+ var/chance_hidden = 20
+ /// Message to display when distress beacon is hidden
+ var/static_message = "**STATIC** %$#&!- *!%^#$$ ^%%$# +_!@* &*%$## **STATIC** &%$#^*! @!*%$# ^%&$#@ *%&$#^ **STATIC** --SIGNAL LOST"
var/objectives //Txt of objectives to display to joined. Todo: make this into objective notes
var/objective_info //For additional info in the objectives txt
var/probability = 0
@@ -46,13 +50,19 @@
var/max_heavies = 1
var/max_smartgunners = 1
var/shuttle_id = MOBILE_SHUTTLE_ID_ERT1 //Empty shuttle ID means we're not using shuttles (aka spawn straight into cryo)
- var/auto_shuttle_launch = FALSE
+ var/auto_shuttle_launch = TRUE
var/spawn_max_amount = FALSE
var/ert_message = "An emergency beacon has been activated"
var/time_required_for_job = 5 HOURS
+ /// the shuttle being used by this distress call
+ var/obj/docking_port/mobile/emergency_response/shuttle
+
+ /// the [/datum/lazy_template] we should attempt to spawn in for the return journey
+ var/home_base = /datum/lazy_template/ert/freelancer_station
+
/datum/game_mode/proc/initialize_emergency_calls()
if(all_calls.len) //It's already been set up.
return
@@ -92,12 +102,19 @@
return chosen_call
/datum/game_mode/proc/get_specific_call(call_name, quiet_launch = FALSE, announce_incoming = TRUE, info = "")
- for(var/datum/emergency_call/E in all_calls) //Loop through all potential candidates
- if(E.name == call_name)
- var/datum/emergency_call/em_call = new E.type()
- em_call.objective_info = info
- em_call.activate(quiet_launch, announce_incoming)
- return
+ if(ispath(call_name, /datum/emergency_call))
+ var/datum/emergency_call/em_call = new call_name
+ em_call.objective_info = info
+ em_call.activate(quiet_launch, announce_incoming)
+ return
+
+ var/call_path = text2path(call_name)
+ if(ispath(call_path, /datum/emergency_call))
+ var/datum/emergency_call/em_call = new call_path
+ em_call.objective_info = info
+ em_call.activate(quiet_launch, announce_incoming)
+ return
+
error("get_specific_call could not find emergency call '[call_name]'")
return
@@ -258,12 +275,15 @@
if(M.client)
to_chat(M, SPAN_NOTICE("Distress beacon: [src.name] finalized."))
- var/obj/docking_port/mobile/shuttle = SSshuttle.getShuttle(shuttle_id)
+ if(shuttle_id && !override_spawn_loc)
+ if(!SSmapping.shuttle_templates[shuttle_id])
+ message_admins("Distress beacon: [name] does not have a valid shuttle_id: [shuttle_id]")
+ CRASH("ert called with invalid shuttle_id")
- if(!istype(shuttle))
- if(shuttle_id) //Cryo distress doesn't have a shuttle
- message_admins("Warning: Distress shuttle not found.")
- spawn_items()
+ var/datum/map_template/shuttle/new_shuttle = SSmapping.shuttle_templates[shuttle_id]
+ shuttle = SSshuttle.load_template_to_transit(new_shuttle)
+ shuttle.control_doors("force-lock", force = TRUE, external_only = TRUE)
+ shuttle.distress_beacon = src
if(shuttle && auto_shuttle_launch)
var/obj/structure/machinery/computer/shuttle/ert/comp = shuttle.getControlConsole()
@@ -305,7 +325,17 @@
candidates = list()
if(arrival_message && announce_incoming)
- marine_announcement(arrival_message, "Intercepted Transmission:")
+ if(prob(chance_hidden))
+ marine_announcement(static_message, "Intercepted Transmission:")
+ else
+ marine_announcement(arrival_message, "Intercepted Transmission:")
+
+ for(var/datum/mind/spawned as anything in members)
+ if(ishuman(spawned.current))
+ var/mob/living/carbon/human/spawned_human = spawned.current
+ var/obj/item/card/id/id = spawned_human.get_idcard()
+ if(id)
+ ADD_TRAIT(id, TRAIT_ERT_ID, src)
/datum/emergency_call/proc/add_candidate(mob/M)
if(!M.client || (M.mind && (M.mind in candidates)) || istype(M, /mob/living/carbon/xenomorph))
@@ -321,6 +351,23 @@
/datum/emergency_call/proc/get_spawn_point(is_for_items)
var/landmark
+
+ if(shuttle)
+ if(is_for_items)
+ landmark = SAFEPICK(shuttle.local_landmarks[item_spawn])
+ else
+ landmark = SAFEPICK(shuttle.local_landmarks[name_of_spawn])
+
+ if(landmark)
+ return get_turf(landmark)
+
+ var/list/valid_turfs = list()
+ for(var/turf/open/floor/valid_turf in shuttle.return_turfs())
+ valid_turfs += valid_turf
+
+ if(length(valid_turfs))
+ return pick(valid_turfs)
+
if(is_for_items)
landmark = SAFEPICK(GLOB.ert_spawns[item_spawn])
else
diff --git a/code/datums/emergency_calls/ert_stations.dm b/code/datums/emergency_calls/ert_stations.dm
new file mode 100644
index 000000000000..3e7874572365
--- /dev/null
+++ b/code/datums/emergency_calls/ert_stations.dm
@@ -0,0 +1,14 @@
+/datum/lazy_template/ert/clf_station
+ map_name = "clf_ert_station"
+
+/datum/lazy_template/ert/freelancer_station
+ map_name = "freelancer_ert_station"
+
+/datum/lazy_template/ert/twe_station
+ map_name = "twe_ert_station"
+
+/datum/lazy_template/ert/upp_station
+ map_name = "upp_ert_station"
+
+/datum/lazy_template/ert/weyland_station
+ map_name = "weyland_ert_station"
diff --git a/code/datums/emergency_calls/forsaken_xenos.dm b/code/datums/emergency_calls/forsaken_xenos.dm
index d089830658d9..1c876d4d4d44 100644
--- a/code/datums/emergency_calls/forsaken_xenos.dm
+++ b/code/datums/emergency_calls/forsaken_xenos.dm
@@ -3,6 +3,7 @@
mob_min = 1
mob_max = 4
hostility = TRUE
+ shuttle_id = ""
name_of_spawn = /obj/effect/landmark/ert_spawns/groundside_xeno
objectives = "You have been left behind to safeguard the abandoned colony. Do not allow trespassers."
diff --git a/code/datums/emergency_calls/goons.dm b/code/datums/emergency_calls/goons.dm
index 8a0b00968807..edd3d05d1441 100644
--- a/code/datums/emergency_calls/goons.dm
+++ b/code/datums/emergency_calls/goons.dm
@@ -2,6 +2,7 @@
name = "Weyland-Yutani Corporate Security (Squad)"
mob_max = 6
probability = 0
+ home_base = /datum/lazy_template/ert/weyland_station
/datum/emergency_call/goon/New()
..()
@@ -96,6 +97,45 @@
to_chat(backstory_human, SPAN_BOLD("You heard about the original distress signal ages ago, but you have only just gotten permission from corporate to enter the area."))
to_chat(backstory_human, SPAN_BOLD("Ensure no damage is incurred against Weyland-Yutani. Make sure the researcher is kept safe and follow their instructions."))
+/datum/emergency_call/goon/bodyguard
+ name = "Weyland-Yutani Goon (Executive Bodyguard Detail)"
+ mob_max = 1
+ mob_min = 1
+
+/datum/emergency_call/goon/bodyguard/New()
+ ..()
+ dispatch_message = "[MAIN_SHIP_NAME], this is a Weyland-Yutani Corporate Security Protection Detail shuttle inbound to the Liaison's Beacon."
+ objectives = "Protect the Corporate Liaison and follow his commands, unless it goes against Company policy. Do not damage Wey-Yu property."
+
+/datum/emergency_call/goon/bodyguard/create_member(datum/mind/M, turf/override_spawn_loc)
+ var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point()
+
+ if(!istype(spawn_loc))
+ return //Didn't find a useable spawn point.
+
+ var/mob/living/carbon/human/mob = new(spawn_loc)
+ M.transfer_to(mob, TRUE)
+
+ if(!leader && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job))
+ leader = mob
+ to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani Corporate Security Lead!"))
+ arm_equipment(mob, /datum/equipment_preset/goon/lead, TRUE, TRUE)
+ else
+ to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani Corporate Security Officer!"))
+ arm_equipment(mob, /datum/equipment_preset/goon/standard, TRUE, TRUE)
+
+ print_backstory(mob)
+
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS)
+
+/datum/emergency_call/goon/bodyguard/print_backstory(mob/living/carbon/human/M)
+ to_chat(M, SPAN_BOLD("You were born [pick(75;"in Europe", 15;"in Asia", 10;"on Mars")] to a poor family."))
+ to_chat(M, SPAN_BOLD("Joining the ranks of Weyland-Yutani was all you could do to keep yourself and your loved ones fed."))
+ to_chat(M, SPAN_BOLD("You have no idea what a xenomorph is."))
+ to_chat(M, SPAN_BOLD("You are a simple security officer employed by Weyland-Yutani to guard their Executives from all Divisions alike."))
+ to_chat(M, SPAN_BOLD("You were sent to act as the Executives bodyguard on the [MAIN_SHIP_NAME], you have gotten permission from corporate to enter the area."))
+ to_chat(M, SPAN_BOLD("Ensure no damage is incurred against Weyland-Yutani. Make sure the CL is safe."))
+
/datum/emergency_call/goon/platoon
name = "Weyland-Yutani Corporate Security (Platoon)"
mob_min = 8
diff --git a/code/datums/emergency_calls/inspection.dm b/code/datums/emergency_calls/inspection.dm
index f0400528ac31..031a9f210761 100644
--- a/code/datums/emergency_calls/inspection.dm
+++ b/code/datums/emergency_calls/inspection.dm
@@ -125,6 +125,7 @@
name = "Inspection - Corporate"
mob_max = 2
mob_min = 1
+ home_base = /datum/lazy_template/ert/weyland_station
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc
item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item
probability = 0
@@ -164,6 +165,42 @@
new /obj/item/storage/box/handcuffs(drop_spawn)
new /obj/item/storage/box/handcuffs(drop_spawn)
+/datum/emergency_call/inspection_wy/lawyer
+ name = "Lawyers - Corporate"
+ mob_max = 2
+ mob_min = 1
+ name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc
+ item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item
+ probability = 0
+
+/datum/emergency_call/inspection_wy/lawyer/New()
+ ..()
+ objectives = "Make sure the crew of the [MAIN_SHIP_NAME] is aware of your presence. Investigate who the Corporate Liaison reported for breaking their contract and any review other Company assets and make sure they remain loyal to the Company. Make a detailed report back to Corporate."
+
+/datum/emergency_call/inspection_wy/lawyer/create_member(datum/mind/M, turf/override_spawn_loc)
+ var/turf/T = override_spawn_loc ? override_spawn_loc : get_spawn_point()
+
+ if(!istype(T))
+ return FALSE
+
+ var/mob/living/carbon/human/H = new(T)
+ M.transfer_to(H, TRUE)
+
+ if(!leader && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, list(JOB_SQUAD_LEADER), time_required_for_job))
+ leader = H
+ arm_equipment(H, /datum/equipment_preset/wy/exec_supervisor/lawyer, TRUE, TRUE)
+ to_chat(H, SPAN_ROLE_HEADER("You are a Weyland-Yutani Lead Corporate Attorney!"))
+ to_chat(H, SPAN_ROLE_BODY("While officially the Corporate Affairs Division does mundane paperwork for Weyland-Yutani, in practice you serve as both official and unofficial investigators into conduct of Company and non-Company personnel. You are being dispatched to the [MAIN_SHIP_NAME] to make sure that the USCM abides by it's signed contracts provided by the local Liaison and that they have not forgotten the real hand that feeds them."))
+ to_chat(H, SPAN_ROLE_BODY("Remember the USCM personnel on the ship may not appreciate your presence there. Should the Liaison be in jail, you are to act as legal counsel in any way. Your basic duty is to make a detailed report of anything involving the Liaison, any other WY personnel and of course any contract violations on board the ship."))
+ to_chat(H, SPAN_WARNING("You are to avoid open conflict with the Marines. Retreat and make a report if they are outright hostile. Ahelp if you have any more questions or wish to release this character for other players."))
+ else
+ arm_equipment(H, /datum/equipment_preset/wy/exec_spec/lawyer, TRUE, TRUE)
+ to_chat(H, SPAN_ROLE_HEADER("You are a Weyland-Yutani Corporate Attorney!"))
+ to_chat(H, SPAN_ROLE_BODY("While officially the Corporate Affairs Division does mundane paperwork for Weyland-Yutani, in practice you serve as both official and unofficial investigators into conduct of Company and non-Company personnel. The Lead Attorney is in charge, your duty is to provide counsel and any other form of assistance you can render to make sure your mission is a success."))
+ to_chat(H, SPAN_ROLE_BODY("Remember that the USCM, or at least some parts of it, may be hostile towards your presence on the ship. You and the Lead Attorney are to avoid open conflict with the Marines. Your main priority is making sure that you both survive to write the report the Company is due."))
+ to_chat(H, SPAN_WARNING("You are to avoid open conflict with the Marines. Retreat and make a report if they are outright hostile. Ahelp if you have any more questions or wish to release this character for other players."))
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS)
+
// Colonial Marshals - UA Law Enforcement / Investigative Federal Agents which usually watch over Colonies. Also a good option for prisoner transfers, investigating corporate corruption, survivor rescues, or illict trade practices(black market).
/datum/emergency_call/inspection_cmb
@@ -171,6 +208,7 @@
mob_max = 4
mob_min = 1
probability = 0
+ home_base = /datum/lazy_template/ert/weyland_station
var/max_synths = 1
var/synths = 0
@@ -268,7 +306,7 @@
name = "Inspection - Colonial Marshals Ledger Investigation Team"
mob_max = 3 //Marshal, Deputy, ICC CL
mob_min = 2
- shuttle_id = "Distress_PMC"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT2
max_synths = 0
will_spawn_icc_liaison = TRUE
diff --git a/code/datums/emergency_calls/pizza.dm b/code/datums/emergency_calls/pizza.dm
index a35ce584c68d..a2c312887dc9 100644
--- a/code/datums/emergency_calls/pizza.dm
+++ b/code/datums/emergency_calls/pizza.dm
@@ -6,9 +6,9 @@
mob_min = 1
arrival_message = "'That'll be... sixteen orders of cheesy fries, eight large double topping pizzas, nine bottles of Four Loko... hello? Is anyone on this ship? Your pizzas are getting cold.'"
objectives = "Make sure you get a tip!"
- shuttle_id = "Distress_Small"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT_SMALL
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pizza
- probability = 0
+ probability = 1
/datum/emergency_call/pizza/create_member(datum/mind/M, turf/override_spawn_loc)
var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point()
@@ -32,7 +32,7 @@
name = "Pizza Delivery (Cryo)"
probability = 0
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_cryo
- shuttle_id = ""
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT_SMALL
/obj/effect/landmark/ert_spawns/distress_pizza
name = "Distress_Pizza"
diff --git a/code/datums/emergency_calls/pmc.dm b/code/datums/emergency_calls/pmc.dm
index 2f43e94828d6..06a51c9869eb 100644
--- a/code/datums/emergency_calls/pmc.dm
+++ b/code/datums/emergency_calls/pmc.dm
@@ -4,7 +4,8 @@
name = "Weyland-Yutani PMC (Squad)"
mob_max = 6
probability = 20
- shuttle_id = "Distress_PMC"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT2
+ home_base = /datum/lazy_template/ert/weyland_station
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc
item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item
diff --git a/code/datums/emergency_calls/royal_marines.dm b/code/datums/emergency_calls/royal_marines.dm
index 21f79e7c3026..a614d5a0c1c7 100644
--- a/code/datums/emergency_calls/royal_marines.dm
+++ b/code/datums/emergency_calls/royal_marines.dm
@@ -2,6 +2,8 @@
name = "Royal Marines Commando (Squad) (Friendly)"
mob_max = 7
probability = 15
+ home_base = /datum/lazy_template/ert/twe_station
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT4
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_twe
item_spawn = /obj/effect/landmark/ert_spawns/distress_twe/item
max_engineers = 0
diff --git a/code/datums/emergency_calls/upp.dm b/code/datums/emergency_calls/upp.dm
index d68171981355..cb5db1f0e3b9 100644
--- a/code/datums/emergency_calls/upp.dm
+++ b/code/datums/emergency_calls/upp.dm
@@ -5,7 +5,8 @@
name = "UPP Naval Infantry (Squad)"
mob_max = 9
probability = 20
- shuttle_id = "Distress_UPP"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT3
+ home_base = /datum/lazy_template/ert/upp_station
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_upp
item_spawn = /obj/effect/landmark/ert_spawns/distress_upp/item
//1 leader, 1 engineer, 2 medics, 1 specialist, 5 soldiers
@@ -99,18 +100,20 @@
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS)
-/datum/emergency_call/upp/hostile
+/datum/emergency_call/upp/hostile //if admins want to specifically call in friendly ones
name = "UPP Naval Infantry (Squad) (Hostile)"
hostility = TRUE
+ probability = 0
/datum/emergency_call/upp/hostile/New()
..()
arrival_message = "[MAIN_SHIP_NAME] t*is i* UP* d^sp^*ch`. STr*&e teaM, #*u are cLe*% for a*pr*%^h. Pr*mE a*l wE*p^ns and pR*epr# t% r@nd$r a(tD."
objectives = "Eliminate the UA Forces to ensure the UPP presence in this sector is continued. Listen to your superior officers and take over the [MAIN_SHIP_NAME] at all costs."
-/datum/emergency_call/upp/friendly
+/datum/emergency_call/upp/friendly //ditto
name = "UPP Naval Infantry (Squad) (Friendly)"
hostility = FALSE
+ probability = 0
/datum/emergency_call/upp/friendly/New()
..()
diff --git a/code/datums/emergency_calls/upp_commando.dm b/code/datums/emergency_calls/upp_commando.dm
index 1bc2b59ba08c..53f117c26127 100644
--- a/code/datums/emergency_calls/upp_commando.dm
+++ b/code/datums/emergency_calls/upp_commando.dm
@@ -5,7 +5,7 @@
mob_max = 6
probability = 0
objectives = "Stealthily assault the ship. Use your silenced weapons, tranquilizers, and night vision to get the advantage on the enemy. Take out the power systems, comms and engine. Stick together and keep a low profile."
- shuttle_id = "Distress_UPP"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT3
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_upp
item_spawn = /obj/effect/landmark/ert_spawns/distress_upp/item
hostility = TRUE
diff --git a/code/datums/entities/player.dm b/code/datums/entities/player.dm
index 2973a174858f..f30c01b3128b 100644
--- a/code/datums/entities/player.dm
+++ b/code/datums/entities/player.dm
@@ -29,6 +29,9 @@
var/stickyban_whitelisted = FALSE
+ var/byond_account_age
+ var/first_join_date
+
// UNTRACKED FIELDS
var/name // Used for NanoUI statistics menu
@@ -78,6 +81,8 @@ BSQL_PROTECT_DATUM(/datum/entity/player)
"migrated_bans" = DB_FIELDTYPE_INT,
"migrated_jobbans" = DB_FIELDTYPE_INT,
"stickyban_whitelisted" = DB_FIELDTYPE_INT,
+ "byond_account_age" = DB_FIELDTYPE_STRING_MEDIUM,
+ "first_join_date" = DB_FIELDTYPE_STRING_MEDIUM,
)
// NOTE: good example of database operations using NDatabase, so it is well commented
@@ -305,6 +310,36 @@ BSQL_PROTECT_DATUM(/datum/entity/player)
return TRUE
+/// Permanently bans this user, with the provided reason. The banner ([/datum/entity/player]) argument is optional, as this can be done without admin intervention.
+/datum/entity/player/proc/add_perma_ban(reason, internal_reason, datum/entity/player/banner)
+ if(is_permabanned)
+ return FALSE
+
+ is_permabanned = TRUE
+ permaban_date = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]"
+ permaban_reason = reason
+
+ if(banner)
+ permaban_admin_id = banner.id
+ message_admins("[key_name_admin(banner.owning_client)] has permanently banned [ckey] for '[reason]'.")
+ var/datum/tgs_chat_embed/field/reason_embed
+ if(internal_reason)
+ reason_embed = new("Permaban Reason", internal_reason)
+ important_message_external("[banner.owning_client] has permanently banned [ckey] for '[reason]'.", "Permaban Placed", reason_embed ? list(reason_embed) : null)
+
+ add_note("Permanently banned | [reason]", FALSE, NOTE_ADMIN, TRUE)
+ if(internal_reason)
+ add_note("Internal reason: [internal_reason]", TRUE, NOTE_ADMIN)
+
+ if(owning_client)
+ to_chat_forced(owning_client, SPAN_LARGE("You have been permanently banned by [banner.ckey].\nReason: [reason]. "))
+ to_chat_forced(owning_client, SPAN_LARGE("This is a permanent ban. It will not be removed."))
+ QDEL_NULL(owning_client)
+
+ save()
+
+ return TRUE
+
/datum/entity/player/proc/auto_unban()
if(!is_time_banned)
return
@@ -419,6 +454,31 @@ BSQL_PROTECT_DATUM(/datum/entity/player)
for(var/datum/entity/player_stat/S as anything in _stat)
LAZYSET(stats, S.stat_id, S)
+/datum/entity/player/proc/load_byond_account_age()
+ var/datum/http_request/request = new()
+ request.prepare(RUSTG_HTTP_METHOD_GET, "https://www.byond.com/members/[ckey]?format=text")
+ request.execute_blocking()
+ var/datum/http_response/response = request.into_response()
+ if(response.errored)
+ return
+
+ var/static/regex/regex = regex("joined = \"(\\d{4}-\\d{2}-\\d{2})\"")
+ if(!regex.Find(response.body))
+ return
+
+ byond_account_age = regex.group[1]
+
+/datum/entity/player/proc/find_first_join_date()
+ var/list/triplets = search_login_triplet_by_ckey(ckey)
+
+ if(!length(triplets))
+ first_join_date = "UNKNOWN"
+ return
+
+ var/datum/view_record/login_triplet/first_triplet = triplets[1]
+ first_join_date = first_triplet.login_date
+
+
/proc/get_player_from_key(key)
var/safe_key = ckey(key)
if(!safe_key)
@@ -440,61 +500,58 @@ BSQL_PROTECT_DATUM(/datum/entity/player)
error("ALARM: MISMATCH. Loaded player data for client [ckey], player data ckey is [player.ckey], id: [player.id]")
player_data = player
player_data.owning_client = src
+ if(!player_data.last_login)
+ player_data.first_join_date = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]"
+ if(!player_data.first_join_date)
+ player_data.find_first_join_date()
player_data.last_login = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]"
player_data.last_known_ip = address
player_data.last_known_cid = computer_id
+ if(!player_data.byond_account_age)
+ player_data.load_byond_account_age()
player_data.save()
record_login_triplet(player.ckey, address, computer_id)
player_data.sync()
-/datum/entity/player/proc/check_ban(computer_id, address)
+/datum/entity/player/proc/check_ban(computer_id, address, is_telemetry)
. = list()
- var/list/linked_bans = check_for_sticky_ban(address, computer_id)
- if(islist(linked_bans))
- var/datum/view_record/stickyban_list_view/SLW = LAZYACCESS(linked_bans, 1)
- if(SLW)
- var/reason = ""
-
- if(SLW.address == address)
- reason += "IP Address Matches; "
- if(SLW.computer_id == computer_id)
- reason += "CID Matches; "
- if(SLW.ckey == ckey)
- reason += "Ckey Matches; "
-
- var/source_id = SLW.linked_stickyban
- var/source_reason = SLW.linked_reason
- var/source_ckey = SLW.linked_ckey
- if(!source_id)
- source_id = "[SLW.entry_id]"
- source_reason = SLW.reason
- source_ckey = SLW.ckey
-
- log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Stickybanned (Linked to [source_ckey]; Reason: [source_reason])")
- message_admins("Failed Login: [ckey] (IP: [last_known_ip], CID: [last_known_cid]) - Stickybanned (Linked to ckey [source_ckey]; Reason: [source_reason])")
-
- DB_FILTER(/datum/entity/player_sticky_ban,
- DB_AND(
- DB_COMP("ckey", DB_EQUALS, ckey),
- DB_COMP("address", DB_EQUALS, address),
- DB_COMP("computer_id", DB_EQUALS, computer_id)
- ), CALLBACK(src, PROC_REF(process_stickyban), address, computer_id, source_id, reason, null))
-
- .["desc"] = "\nReason: Stickybanned\nExpires: PERMANENT"
- .["reason"] = "ckey/id"
- return .
+ var/list/datum/view_record/stickyban/all_stickies = SSstickyban.check_for_sticky_ban(ckey, address, computer_id)
+
+ if(length(all_stickies))
+ var/datum/view_record/stickyban/sticky = all_stickies[1]
+
+ if(!is_telemetry)
+ log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Stickybanned (Reason: [sticky.reason])")
+ message_admins("Failed Login: [ckey] (IP: [last_known_ip], CID: [last_known_cid]) - Stickybanned (Reason: [sticky.reason])")
+
+ var/appeal
+ if(CONFIG_GET(string/banappeals))
+ appeal = "\nFor more information on your ban, or to appeal, head to [CONFIG_GET(string/banappeals)] "
+
+ .["desc"] = "\nReason: Stickybanned - [sticky.message] Identifier: [sticky.identifier]\n[appeal]"
+ .["reason"] = "ckey/id"
+
+ if(!is_telemetry)
+ SSstickyban.match_sticky(sticky.id, ckey, address, computer_id)
+ return
+
if(!is_time_banned && !is_permabanned)
return null
+
var/appeal
if(CONFIG_GET(string/banappeals))
appeal = "\nFor more information on your ban, or to appeal, head to [CONFIG_GET(string/banappeals)] "
if(is_permabanned)
- permaban_admin.sync()
- log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [permaban_reason]")
- message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [permaban_reason]")
- .["desc"] = "\nReason: [permaban_reason]\nExpires: PERMANENT \nBy: [permaban_admin.ckey][appeal]"
+ var/banner = "Host"
+ if(permaban_admin_id)
+ var/datum/view_record/players/banning_admin = locate() in DB_VIEW(/datum/view_record/players, DB_COMP("id", DB_EQUALS, permaban_admin_id))
+ banner = banning_admin.ckey
+ if(!is_telemetry)
+ log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [permaban_reason]")
+ message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [permaban_reason]")
+ .["desc"] = "\nReason: [permaban_reason]\nExpires: PERMANENT \nBy: [banner][appeal]"
.["reason"] = "ckey/id"
return .
if(is_time_banned)
@@ -509,8 +566,9 @@ BSQL_PROTECT_DATUM(/datum/entity/player)
timeleftstring = "[round(time_left / 60, 0.1)] Hours"
else
timeleftstring = "[time_left] Minutes"
- log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [time_ban_reason]")
- message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [time_ban_reason]")
+ if(!is_telemetry)
+ log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [time_ban_reason]")
+ message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [time_ban_reason]")
.["desc"] = "\nReason: [time_ban_reason]\nExpires: [timeleftstring]\nBy: [time_ban_admin.ckey][appeal]"
.["reason"] = "ckey/id"
return .
@@ -681,7 +739,6 @@ BSQL_PROTECT_DATUM(/datum/entity/player)
parent_entity = /datum/entity/player
child_entity = /datum/entity/player
child_field = "permaban_admin_id"
-
parent_name = "permabanning_admin"
/datum/view_record/players
diff --git a/code/datums/entities/player_sticky_ban.dm b/code/datums/entities/player_sticky_ban.dm
index d79befddb04e..752334e8e001 100644
--- a/code/datums/entities/player_sticky_ban.dm
+++ b/code/datums/entities/player_sticky_ban.dm
@@ -1,94 +1,133 @@
-/datum/entity/player_sticky_ban
- var/player_id
- var/admin_id
+BSQL_PROTECT_DATUM(/datum/entity/stickyban)
+
+/datum/entity/stickyban
+ var/identifier
var/reason
+ var/message
var/date
- var/ckey
- var/address
- var/computer_id
-
- var/linked_stickyban
-
-BSQL_PROTECT_DATUM(/datum/entity/player_sticky_ban)
+ var/active = TRUE
+ var/adminid
-/datum/entity_meta/player_sticky_ban
- entity_type = /datum/entity/player_sticky_ban
- table_name = "player_sticky_bans"
+/datum/entity_meta/stickyban
+ entity_type = /datum/entity/stickyban
+ table_name = "stickyban"
field_types = list(
- "player_id"=DB_FIELDTYPE_BIGINT,
- "admin_id"=DB_FIELDTYPE_BIGINT,
- "reason"=DB_FIELDTYPE_STRING_MAX,
- "date"=DB_FIELDTYPE_STRING_LARGE,
- "address"=DB_FIELDTYPE_STRING_LARGE,
- "ckey" = DB_FIELDTYPE_STRING_LARGE,
- "computer_id"=DB_FIELDTYPE_STRING_LARGE,
- "linked_stickyban"=DB_FIELDTYPE_BIGINT,
+ "identifier" = DB_FIELDTYPE_STRING_LARGE,
+ "reason" = DB_FIELDTYPE_STRING_LARGE,
+ "message" = DB_FIELDTYPE_STRING_LARGE,
+ "date" = DB_FIELDTYPE_STRING_LARGE,
+ "active" = DB_FIELDTYPE_INT,
+ "adminid" = DB_FIELDTYPE_BIGINT,
)
+/datum/view_record/stickyban
+ var/id
+ var/identifier
+ var/reason
+ var/message
+ var/date
+ var/active
+ var/admin
-/datum/entity_link/linked_sticky_bans
- parent_entity = /datum/entity/player_sticky_ban
- child_entity = /datum/entity/player_sticky_ban
- child_field = "linked_stickyban"
-
- parent_name = "linked_ban"
- child_name = "linked_bans"
-
-/datum/entity_link/player_to_player_sticky_bans
- parent_entity = /datum/entity/player
- child_entity = /datum/entity/player_sticky_ban
- child_field = "player_id"
-
- parent_name = "player"
- child_name = "stickybans"
+/datum/entity_view_meta/stickyban
+ root_record_type = /datum/entity/stickyban
+ destination_entity = /datum/view_record/stickyban
+ fields = list(
+ "id",
+ "identifier",
+ "reason",
+ "message",
+ "date",
+ "active",
+ "admin" = DB_CASE(DB_COMP("adminid", DB_ISNOT), "stickybanning_admin.ckey", DB_CONST("AdminBot"))
+ )
-/datum/entity_link/admin_to_player_sticky_bans
+/datum/entity_link/stickyban_to_banning_admin
parent_entity = /datum/entity/player
- child_entity = /datum/entity/player_sticky_ban
- child_field = "admin_id"
+ child_entity = /datum/entity/stickyban
+ child_field = "adminid"
+ parent_name = "stickybanning_admin"
- parent_name = "admin"
+/datum/entity/stickyban_matched_ckey
+ var/ckey
+ var/linked_stickyban
+ var/whitelisted = FALSE
-/datum/view_record/stickyban_list_view
- var/entry_id
- var/player_id
- var/admin_id
+/datum/entity_meta/stickyban_matched_ckey
+ entity_type = /datum/entity/stickyban_matched_ckey
+ table_name = "stickyban_matched_ckey"
+ field_types = list(
+ "ckey" = DB_FIELDTYPE_STRING_LARGE,
+ "linked_stickyban" = DB_FIELDTYPE_BIGINT,
+ "whitelisted" = DB_FIELDTYPE_INT,
+ )
- var/reason
- var/date
- var/address
- var/computer_id
+/datum/view_record/stickyban_matched_ckey
+ var/id
var/ckey
+ var/linked_stickyban
var/whitelisted
+/datum/entity_view_meta/stickyban_matched_ckey
+ root_record_type = /datum/entity/stickyban_matched_ckey
+ destination_entity = /datum/view_record/stickyban_matched_ckey
+ fields = list(
+ "id",
+ "ckey",
+ "linked_stickyban",
+ "whitelisted",
+ )
+
+
+/datum/entity/stickyban_matched_cid
+ var/cid
var/linked_stickyban
- var/linked_ckey
- var/linked_reason
- var/admin_ckey
- var/linked_admin_ckey
+/datum/entity_meta/stickyban_matched_cid
+ entity_type = /datum/entity/stickyban_matched_cid
+ table_name = "stickyban_matched_cid"
+ field_types = list(
+ "cid" = DB_FIELDTYPE_STRING_LARGE,
+ "linked_stickyban" = DB_FIELDTYPE_BIGINT,
+ )
+/datum/view_record/stickyban_matched_cid
+ var/id
+ var/cid
+ var/linked_stickyban
-/datum/entity_view_meta/stickyban_list_view
- root_record_type = /datum/entity/player_sticky_ban
- destination_entity = /datum/view_record/stickyban_list_view
+/datum/entity_view_meta/stickyban_matched_cid
+ root_record_type = /datum/entity/stickyban_matched_cid
+ destination_entity = /datum/view_record/stickyban_matched_cid
fields = list(
- "entry_id" = "id",
- "player_id",
- "admin_id",
+ "id",
+ "cid",
+ "linked_stickyban",
+ )
- "reason",
- "date",
- "address",
- "computer_id",
- "ckey" = "player.ckey",
- "whitelisted" = "player.stickyban_whitelisted",
- "linked_stickyban",
- "linked_ckey" = "linked_ban.player.ckey",
- "linked_reason" = "linked_ban.reason",
+/datum/entity/stickyban_matched_ip
+ var/ip
+ var/linked_stickyban
- "admin_ckey" = "admin.ckey",
- "linked_admin_ckey" = "linked_ban.admin.ckey"
+/datum/entity_meta/stickyban_matched_ip
+ entity_type = /datum/entity/stickyban_matched_ip
+ table_name = "stickyban_matched_ip"
+ field_types = list(
+ "ip" = DB_FIELDTYPE_STRING_LARGE,
+ "linked_stickyban" = DB_FIELDTYPE_BIGINT,
+ )
+
+/datum/view_record/stickyban_matched_ip
+ var/id
+ var/ip
+ var/linked_stickyban
+
+/datum/entity_view_meta/stickyban_matched_ip
+ root_record_type = /datum/entity/stickyban_matched_ip
+ destination_entity = /datum/view_record/stickyban_matched_ip
+ fields = list(
+ "id",
+ "ip",
+ "linked_stickyban",
)
- order_by = list("entry_id" = DB_ORDER_BY_DESC)
diff --git a/code/datums/keybinding/xenomorph.dm b/code/datums/keybinding/xenomorph.dm
index cef04d01a75c..64acd876b49f 100644
--- a/code/datums/keybinding/xenomorph.dm
+++ b/code/datums/keybinding/xenomorph.dm
@@ -189,21 +189,9 @@
. = ..()
if(.)
return
-
- var/mob/living/carbon/xenomorph/current_xeno = user?.mob
-
- if(!current_xeno?.hive)
- return
-
- if((!current_xeno.hive.living_xeno_queen || SSmapping.configs[GROUND_MAP].map_name == MAP_WHISKEY_OUTPOST) && !current_xeno.hive.allow_no_queen_actions) //No Hive status on WO
- to_chat(current_xeno, SPAN_WARNING("There is no Queen. We are alone."))
- return
-
- if(current_xeno.interference)
- to_chat(current_xeno, SPAN_WARNING("A headhunter temporarily cut off our psychic connection!"))
- return
-
- current_xeno.hive.hive_ui.open_hive_status(current_xeno)
+ var/mob/living/carbon/xenomorph/xeno = user.mob
+ xeno.hive_status()
+ return TRUE
/datum/keybinding/xenomorph/hide
hotkey_keys = list("Unbound")
@@ -218,3 +206,18 @@
name = "evolve"
full_name = "Evolve"
keybind_signal = COMSIG_KB_XENO_EVOLVE
+
+/datum/keybinding/xenomorph/purchase_strain
+ hotkey_keys = list("Unbound")
+ classic_keys = list("Unbound")
+ name = "purchase_strain"
+ full_name = "Purchase Strain"
+ keybind_signal = COMSIG_KB_XENO_PURCHASE_STRAIN
+
+/datum/keybinding/xenomorph/purchase_strain/down(client/user)
+ . = ..()
+ if(.)
+ return
+
+ var/mob/living/carbon/xenomorph/current_xeno = user?.mob
+ current_xeno.purchase_strain()
diff --git a/code/datums/lazy_template.dm b/code/datums/lazy_template.dm
new file mode 100644
index 000000000000..03715cbd80b8
--- /dev/null
+++ b/code/datums/lazy_template.dm
@@ -0,0 +1,98 @@
+
+/**
+ * Datum used to designate certain areas that do not need to exist nor be loaded at world start
+ * but do want to be loaded under certain circumstances. Use this for stuff like the nukie base or wizden, aka stuff that only matters when their antag is rolled.
+ */
+/datum/lazy_template
+ var/list/datum/turf_reservation/reservations = list()
+
+ /// If this is true each load will increment an index keyed to the type and it will load [map_name]_[index]
+ var/uses_multiple_allocations = FALSE
+
+ /// Directory of maps to prefix to the filename
+ var/map_dir = "maps/templates/lazy_templates"
+
+ /// The filename (without extension) of the map to load
+ var/map_name
+
+/datum/lazy_template/New()
+ reservations = list()
+ ..()
+
+/datum/lazy_template/Destroy(force)
+ if(!force)
+ stack_trace("Something is trying to delete [type]")
+ return QDEL_HINT_LETMELIVE
+
+ QDEL_LIST(reservations)
+ GLOB.lazy_templates -= type
+ return ..()
+
+/**
+ * Does the grunt work of loading the template.
+ */
+/datum/lazy_template/proc/lazy_load()
+ RETURN_TYPE(/datum/turf_reservation)
+ // This is a static assosciative list that is used to ensure maps that have variations are correctly varied when spawned
+ // I want to make it to where you can make a range and it'll randomly pick'n'take from the available versions at random
+ // But that can be done later when I have the time
+ var/static/list/multiple_allocation_hash = list()
+
+ var/load_path = "[map_dir]/[map_name].dmm"
+ if(uses_multiple_allocations)
+ var/times = multiple_allocation_hash[type] || 0
+ times += 1
+ multiple_allocation_hash[type] = times
+ load_path = "[map_dir]/[map_name]_[times].dmm"
+
+ if(!load_path || !fexists(load_path))
+ CRASH("lazy template [type] has an invalid load_path: '[load_path]', check directory and map name!")
+
+ var/datum/parsed_map/parsed_template = load_map(
+ file(load_path),
+ measure_only = TRUE,
+ )
+ if(isnull(parsed_template.parsed_bounds))
+ CRASH("Failed to cache lazy template for loading: '[type]'")
+
+ var/width = parsed_template.parsed_bounds[MAP_MAXX] - parsed_template.parsed_bounds[MAP_MINX] + 1
+ var/height = parsed_template.parsed_bounds[MAP_MAXY] - parsed_template.parsed_bounds[MAP_MINY] + 1
+ var/datum/turf_reservation/reservation = SSmapping.request_turf_block_reservation(
+ width,
+ height,
+ parsed_template.parsed_bounds[MAP_MAXZ],
+ )
+ if(!reservation)
+ CRASH("Failed to reserve a block for lazy template: '[type]'")
+
+ // lists kept for overall loading
+ var/list/loaded_atom_movables = list()
+ var/list/loaded_turfs = list()
+ var/list/loaded_areas = list()
+
+ for(var/z_idx in parsed_template.parsed_bounds[MAP_MAXZ] to 1 step -1)
+ var/turf/bottom_left = reservation.bottom_left_turfs[z_idx]
+ var/turf/top_right = reservation.top_right_turfs[z_idx]
+
+ load_map(
+ file(load_path),
+ bottom_left.x,
+ bottom_left.y,
+ bottom_left.z,
+ z_upper = z_idx,
+ z_lower = z_idx,
+ )
+ for(var/turf/turf as anything in block(bottom_left, top_right))
+ loaded_turfs += turf
+ loaded_areas |= get_area(turf)
+
+ // atoms can actually be in the contents of two or more turfs based on its icon/bound size
+ // see https://www.byond.com/docs/ref/index.html#/atom/var/contents
+ for(var/thing in (turf.get_all_contents() - turf))
+ loaded_atom_movables |= thing
+
+ SSatoms.InitializeAtoms(loaded_areas + loaded_atom_movables + loaded_turfs)
+
+ SEND_SIGNAL(src, COMSIG_LAZY_TEMPLATE_LOADED, loaded_atom_movables, loaded_turfs, loaded_areas)
+ reservations += reservation
+ return reservation
diff --git a/code/datums/mob_hud.dm b/code/datums/mob_hud.dm
index 778ec2b75a36..b7b5544777b3 100644
--- a/code/datums/mob_hud.dm
+++ b/code/datums/mob_hud.dm
@@ -10,7 +10,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list(
MOB_HUD_XENO_INFECTION = new /datum/mob_hud/xeno_infection(),
MOB_HUD_XENO_STATUS = new /datum/mob_hud/xeno(),
MOB_HUD_XENO_HOSTILE = new /datum/mob_hud/xeno_hostile(),
- MOB_HUD_FACTION_USCM = new /datum/mob_hud/faction(),
+ MOB_HUD_FACTION_MARINE = new /datum/mob_hud/faction(),
MOB_HUD_FACTION_OBSERVER = new /datum/mob_hud/faction/observer(),
MOB_HUD_FACTION_UPP = new /datum/mob_hud/faction/upp(),
MOB_HUD_FACTION_WY = new /datum/mob_hud/faction/wy(),
diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm
index 98bcf296755b..0eba86add45d 100644
--- a/code/datums/shuttles.dm
+++ b/code/datums/shuttles.dm
@@ -62,43 +62,30 @@
locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ]))
for(var/i in 1 to turfs.len)
var/turf/place = turfs[i]
+
+ // ================== CM Change ==================
+ // We perform atom initialization of the docking_ports BEFORE skipping space,
+ // because our lifeboats have their corners as object props and still
+ // reside on space turfs. Notably the bottom left corner, which also contains
+ // the docking port.
+
+ for(var/obj/docking_port/mobile/port in place)
+ SSatoms.InitializeAtoms(list(port))
+ if(register)
+ port.register()
+
if(istype(place, /turf/open/space)) // This assumes all shuttles are loaded in a single spot then moved to their real destination.
continue
if(length(place.baseturfs) < 2) // Some snowflake shuttle shit
continue
place.baseturfs.Insert(3, /turf/baseturf_skipover/shuttle)
-
- for(var/obj/docking_port/mobile/port in place)
- if(register)
- port.register()
- if(isnull(port_x_offset))
- continue
- switch(port.dir) // Yeah this looks a little ugly but mappers had to do this in their head before
- if(NORTH)
- port.width = width
- port.height = height
- port.dwidth = port_x_offset - 1
- port.dheight = port_y_offset - 1
- if(EAST)
- port.width = height
- port.height = width
- port.dwidth = height - port_y_offset
- port.dheight = port_x_offset - 1
- if(SOUTH)
- port.width = width
- port.height = height
- port.dwidth = width - port_x_offset
- port.dheight = height - port_y_offset
- if(WEST)
- port.width = height
- port.height = width
- port.dwidth = port_y_offset - 1
- port.dheight = width - port_x_offset
+ // =============== END CM Change =================
//Whatever special stuff you want
-/datum/map_template/shuttle/proc/post_load(obj/docking_port/mobile/M)
+/datum/map_template/shuttle/post_load(obj/docking_port/mobile/M)
if(movement_force)
M.movement_force = movement_force.Copy()
+ M.linkup()
/datum/map_template/shuttle/vehicle
@@ -115,3 +102,9 @@
/datum/map_template/shuttle/trijent_elevator/B
elevator_network = "B"
+
+/datum/map_template/shuttle/trijent_elevator/post_load(obj/docking_port/mobile/M)
+ . = ..()
+ var/obj/docking_port/mobile/trijent_elevator/elev = M
+ elev.elevator_network = elevator_network
+ log_debug("Adding network [elevator_network] to [M.id]")
diff --git a/code/datums/supply_packs/ammo.dm b/code/datums/supply_packs/ammo.dm
index 326ca075a343..0929f24f7c95 100644
--- a/code/datums/supply_packs/ammo.dm
+++ b/code/datums/supply_packs/ammo.dm
@@ -346,15 +346,15 @@
//------------------------Sentries Ammo----------------
-/datum/supply_packs/ammo_sentry
- name = "UA 571-C sentry ammunition (x2)"
+/datum/supply_packs/ammo_sentry_shotgun
+ name = "UA 12-G sentry shotgun ammunition (x2)"
contains = list(
- /obj/item/ammo_magazine/sentry,
- /obj/item/ammo_magazine/sentry,
+ /obj/item/ammo_magazine/sentry/shotgun,
+ /obj/item/ammo_magazine/sentry/shotgun,
)
cost = 40
containertype = /obj/structure/closet/crate/ammo
- containername = "\improper sentry ammo crate"
+ containername = "\improper sentry shotgun ammo crate"
group = "Ammo"
/datum/supply_packs/ammo_sentry_flamer
@@ -368,15 +368,37 @@
containername = "\improper sentry flamer ammo crate"
group = "Ammo"
-/datum/supply_packs/ammo_sentry_shotgun
- name = "UA 12-G sentry shotgun ammunition (x2)"
+/datum/supply_packs/ammo_mini_sentry_flamer
+ name = "UA 45-F mini sentry flamer ammunition (x2)"
contains = list(
- /obj/item/ammo_magazine/sentry/shotgun,
- /obj/item/ammo_magazine/sentry/shotgun,
+ /obj/item/ammo_magazine/sentry_flamer/mini,
+ /obj/item/ammo_magazine/sentry_flamer/mini,
)
cost = 40
containertype = /obj/structure/closet/crate/ammo
- containername = "\improper sentry shotgun ammo crate"
+ containername = "\improper mini sentry flamer ammo crate"
+ group = "Ammo"
+
+/datum/supply_packs/ammo_glob_sentry_flamer
+ name = "UA 60-FP sentry plasma incinerator tank (x2)"
+ contains = list(
+ /obj/item/ammo_magazine/sentry_flamer/glob,
+ /obj/item/ammo_magazine/sentry_flamer/glob,
+ )
+ cost = 40
+ containertype = /obj/structure/closet/crate/ammo
+ containername = "\improper sentry plasma incinerator ammo crate"
+ group = "Ammo"
+
+/datum/supply_packs/ammo_sentry
+ name = "UA 571-C sentry ammunition (x2)"
+ contains = list(
+ /obj/item/ammo_magazine/sentry,
+ /obj/item/ammo_magazine/sentry,
+ )
+ cost = 40
+ containertype = /obj/structure/closet/crate/ammo
+ containername = "\improper sentry ammo crate"
group = "Ammo"
//------------------------M240 flamer tanks----------------
@@ -419,6 +441,28 @@
containertype = /obj/structure/closet/crate/ammo/alt/flame
group = "Ammo"
+//------------------------Mounted guns ammo----------------
+/datum/supply_packs/ammo_m2c
+ name = "M2C ammunition crate (x2)"
+ contains = list(
+ /obj/item/ammo_magazine/m2c,
+ /obj/item/ammo_magazine/m2c,
+ )
+ cost = 25
+ containertype = /obj/structure/closet/crate/ammo
+ containername = "\improper m2c ammunition crate"
+ group = "Ammo"
+
+/datum/supply_packs/ammo_m56d
+ name = "M56D drum magazine crate (x1)"
+ contains = list(
+ /obj/item/ammo_magazine/m56d,
+ )
+ cost = 25
+ containertype = /obj/structure/closet/crate/ammo
+ containername = "\improper m56d drum magazine crate"
+ group = "Ammo"
+
//This crate has a little bit of everything, mostly okay stuff, but it does have some really unique picks.
/datum/supply_packs/ammo_surplus
name = "Surplus ammo crate (various USCM magazines x10)"
diff --git a/code/datums/supply_packs/spec_ammo.dm b/code/datums/supply_packs/spec_ammo.dm
index e20a5de865a3..f0eb5ab9cea2 100644
--- a/code/datums/supply_packs/spec_ammo.dm
+++ b/code/datums/supply_packs/spec_ammo.dm
@@ -157,13 +157,11 @@
group = "Weapons Specialist Ammo"
/datum/supply_packs/ammo_scout_incendiary
- name = "M4RA Scout Incendiary Magazine Crate (x5)"
+ name = "M4RA Scout Incendiary Magazine Crate (x3)"
contains = list(
/obj/item/ammo_magazine/rifle/m4ra/custom/incendiary,
/obj/item/ammo_magazine/rifle/m4ra/custom/incendiary,
/obj/item/ammo_magazine/rifle/m4ra/custom/incendiary,
- /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary,
- /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary,
)
cost = 30
containertype = /obj/structure/closet/crate/ammo
@@ -171,13 +169,11 @@
group = "Weapons Specialist Ammo"
/datum/supply_packs/ammo_scout_impact
- name = "M4RA Scout Impact Magazine Crate (x5)"
+ name = "M4RA Scout Impact Magazine Crate (x3)"
contains = list(
/obj/item/ammo_magazine/rifle/m4ra/custom/impact,
/obj/item/ammo_magazine/rifle/m4ra/custom/impact,
/obj/item/ammo_magazine/rifle/m4ra/custom/impact,
- /obj/item/ammo_magazine/rifle/m4ra/custom/impact,
- /obj/item/ammo_magazine/rifle/m4ra/custom/impact,
)
cost = 30
containertype = /obj/structure/closet/crate/ammo
diff --git a/code/datums/tutorial/_tutorial.dm b/code/datums/tutorial/_tutorial.dm
index 5423453bbdb9..f6e70e33cdd9 100644
--- a/code/datums/tutorial/_tutorial.dm
+++ b/code/datums/tutorial/_tutorial.dm
@@ -50,11 +50,12 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial)
tutorial_mob = starting_mob
- reservation = SSmapping.RequestBlockReservation(initial(tutorial_template.width), initial(tutorial_template.height))
+ reservation = SSmapping.request_turf_block_reservation(initial(tutorial_template.width), initial(tutorial_template.height), 1)
if(!reservation)
+ abort_tutorial()
return FALSE
- var/turf/bottom_left_corner_reservation = locate(reservation.bottom_left_coords[1], reservation.bottom_left_coords[2], reservation.bottom_left_coords[3])
+ var/turf/bottom_left_corner_reservation = reservation.bottom_left_turfs[1]
var/datum/map_template/tutorial/template = new tutorial_template
template.load(bottom_left_corner_reservation, FALSE, TRUE)
var/obj/landmark = locate(/obj/effect/landmark/tutorial_bottom_left) in GLOB.landmarks_list
@@ -97,11 +98,7 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial)
/// Verify the template loaded fully and without error.
/datum/tutorial/proc/verify_template_loaded()
// We subtract 1 from x and y because the bottom left corner doesn't start at the walls.
- var/turf/true_bottom_left_corner = locate(
- reservation.bottom_left_coords[1],
- reservation.bottom_left_coords[2],
- reservation.bottom_left_coords[3],
- )
+ var/turf/true_bottom_left_corner = reservation.bottom_left_turfs[1]
// We subtract 1 from x and y here because the bottom left corner counts as the first tile
var/turf/top_right_corner = locate(
true_bottom_left_corner.x + initial(tutorial_template.width) - 1,
diff --git a/code/datums/tutorial/_tutorial_menu.dm b/code/datums/tutorial/_tutorial_menu.dm
index 42eb3f6aabfa..3c7a28e77b92 100644
--- a/code/datums/tutorial/_tutorial_menu.dm
+++ b/code/datums/tutorial/_tutorial_menu.dm
@@ -71,7 +71,7 @@
path = text2path(params["tutorial_path"])
- if(!path || !isnewplayer(usr))
+ if(!ispath(path, /datum/tutorial) || !isnewplayer(usr))
return
if(HAS_TRAIT(usr, TRAIT_IN_TUTORIAL) || istype(get_area(usr), /area/misc/tutorial))
@@ -79,5 +79,6 @@
return
path = new path
- path.start_tutorial(usr)
- return TRUE
+ if(path.start_tutorial(usr))
+ ui.close()
+ return TRUE
diff --git a/code/datums/tutorial/xenomorph/_xenomorph.dm b/code/datums/tutorial/xenomorph/_xenomorph.dm
index bd85cdb35f44..caa33d8eed43 100644
--- a/code/datums/tutorial/xenomorph/_xenomorph.dm
+++ b/code/datums/tutorial/xenomorph/_xenomorph.dm
@@ -22,6 +22,10 @@
// We don't want people talking to other xenomorphs across tutorials
new_character.can_hivemind_speak = FALSE
+ // No age prefix or HUD element
+ new_character.age = XENO_NO_AGE
+ new_character.show_age_prefix = FALSE
+ new_character.generate_name()
tutorial_mob = new_character
xeno = new_character
diff --git a/code/datums/tutorial/xenomorph/xenomorph_basic.dm b/code/datums/tutorial/xenomorph/xenomorph_basic.dm
index 0415977835aa..965f7b55d3c0 100644
--- a/code/datums/tutorial/xenomorph/xenomorph_basic.dm
+++ b/code/datums/tutorial/xenomorph/xenomorph_basic.dm
@@ -4,6 +4,7 @@
name = "Xenomorph - Basic"
desc = "A tutorial to get you acquainted with the very basics of how to play a xenomorph."
icon_state = "xeno"
+ tutorial_id = "xeno_basic_1"
tutorial_template = /datum/map_template/tutorial/s12x12
starting_xenomorph_type = /mob/living/carbon/xenomorph/drone
@@ -20,6 +21,7 @@
xeno.plasma_max = 0
xeno.melee_damage_lower = 40
xeno.melee_damage_upper = 40
+ xeno.lock_evolve = TRUE
message_to_player("Welcome to the Xenomorph basic tutorial. You are [xeno.name], a drone, the workhorse of the hive.")
@@ -105,7 +107,7 @@
UnregisterSignal(human_dummy, COMSIG_MOB_DEATH)
message_to_player("Well done. Killing humans is one of many ways to help the hive.")
- message_to_player("Another way is to capture them. This will grow a new xenomorph inside them which will eventually burst into a new playable xenomorph!")
+ message_to_player("Another way is to capture them. This will grow a new xenomorph inside them which will eventually burst into a new playable xenomorph!")
addtimer(CALLBACK(human_dummy, TYPE_PROC_REF(/mob/living, rejuvenate)), 8 SECONDS)
addtimer(CALLBACK(src, PROC_REF(proceed_to_tackle_phase)), 10 SECONDS)
@@ -227,3 +229,5 @@
/datum/tutorial/xenomorph/basic/init_map()
loc_from_corner(9,0).ChangeTurf(/turf/closed/wall/resin/tutorial)
+
+#undef WAITING_HEALTH_THRESHOLD
diff --git a/code/datums/xeno_shields/shield_types/vanguard_shield.dm b/code/datums/xeno_shields/shield_types/vanguard_shield.dm
index 5b9eebc04ab8..21d9fb12cfd7 100644
--- a/code/datums/xeno_shields/shield_types/vanguard_shield.dm
+++ b/code/datums/xeno_shields/shield_types/vanguard_shield.dm
@@ -50,7 +50,6 @@
if (!istype(linked_xeno))
return
- if (linked_xeno.mutation_type == PRAETORIAN_VANGUARD)
- var/datum/behavior_delegate/praetorian_vanguard/BD = linked_xeno.behavior_delegate
- if (istype(BD))
- BD.last_combat_time = world.time
+ var/datum/behavior_delegate/praetorian_vanguard/behavior = linked_xeno.behavior_delegate
+ if (istype(behavior))
+ behavior.last_combat_time = world.time
diff --git a/code/defines/procs/admin.dm b/code/defines/procs/admin.dm
index 1e4f02e95cc0..d48c02127ea9 100644
--- a/code/defines/procs/admin.dm
+++ b/code/defines/procs/admin.dm
@@ -1,3 +1,15 @@
-/proc/log_and_message_admins(message as text)
- log_admin("[key_name(usr)] [message]")
- message_admins("[key_name(usr)] [message]")
+/proc/important_message_external(message, title, list/datum/tgs_chat_embed/field/fields)
+ if(CONFIG_GET(string/important_log_channel))
+ var/datum/tgs_message_content/to_send = new("")
+
+ var/datum/tgs_chat_embed/structure/embed = new()
+ embed.title = title ? title : "Important Log"
+ embed.description = message
+ embed.timestamp = time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")
+ embed.colour = "#ED2939"
+ if(length(fields))
+ embed.fields = fields
+
+ to_send.embed = embed
+
+ send2chat(to_send, CONFIG_GET(string/important_log_channel))
diff --git a/code/game/area/admin_level.dm b/code/game/area/admin_level.dm
index bfca1481155e..1724f2fdeea3 100644
--- a/code/game/area/admin_level.dm
+++ b/code/game/area/admin_level.dm
@@ -141,6 +141,9 @@
requires_power = 0
flags_area = AREA_NOTUNNEL
+/area/misc
+ weather_enabled = FALSE
+
/area/misc/testroom
requires_power = FALSE
name = "Test Room"
diff --git a/code/game/area/almayer.dm b/code/game/area/almayer.dm
index 8acad9821cdd..c3898283cbbb 100644
--- a/code/game/area/almayer.dm
+++ b/code/game/area/almayer.dm
@@ -2,6 +2,7 @@
// Fore = West | Aft = East //
// Port = South | Starboard = North //
// Bow = Western|Stern = Eastern //(those are the front and back small sections)
+// Naming convention is to start by port or starboard then put eitheir (bow,fore,midship,aft,stern)
/area/almayer
icon = 'icons/turf/area_almayer.dmi'
// ambience = list('sound/ambience/shipambience.ogg')
@@ -29,26 +30,6 @@
if(hijack_evacuation_area)
SShijack.progress_areas[src] = power_equip
-/area/shuttle/almayer/elevator_maintenance/upperdeck
- name = "\improper Upper Deck Maintenance Elevator"
- icon_state = "shuttle"
- fake_zlevel = 1
-
-/area/shuttle/almayer/elevator_maintenance/lowerdeck
- name = "\improper Lower Deck Maintenance Elevator"
- icon_state = "shuttle"
- fake_zlevel = 2
-
-/area/shuttle/almayer/elevator_hangar/lowerdeck
- name = "\improper Hangar Elevator"
- icon_state = "shuttle"
- fake_zlevel = 2 // lowerdeck
-
-/area/shuttle/almayer/elevator_hangar/underdeck
- name = "\improper Hangar Elevator"
- icon_state = "shuttle"
- fake_zlevel = 3
-
/obj/structure/machinery/computer/shuttle_control/almayer/hangar
name = "Elevator Console"
icon = 'icons/obj/structures/machinery/computer.dmi'
@@ -260,8 +241,11 @@
/area/almayer/shipboard/brig/armory
name = "\improper Brig Armory"
-/area/almayer/shipboard/brig/main_office
- name = "\improper Brig Main Office"
+/area/almayer/shipboard/brig/mp_bunks
+ name = "\improper Brig MP Bunks"
+
+/area/almayer/shipboard/brig/starboard_hallway
+ name = "\improper Brig Starboard Hallway"
/area/almayer/shipboard/brig/perma
name = "\improper Brig Perma Cells"
@@ -269,8 +253,11 @@
/area/almayer/shipboard/brig/cryo
name = "\improper Brig Cryo Pods"
-/area/almayer/shipboard/brig/surgery
- name = "\improper Brig Surgery"
+/area/almayer/shipboard/brig/medical
+ name = "\improper Brig Medical"
+
+/area/almayer/shipboard/brig/interrogation
+ name = "\improper Brig Interrogation Room"
/area/almayer/shipboard/brig/general_equipment
name = "\improper Brig General Equipment"
@@ -281,11 +268,15 @@
/area/almayer/shipboard/brig/execution
name = "\improper Brig Execution Room"
+/area/almayer/shipboard/brig/execution_storage
+ name = "\improper Brig Execution Storage"
+
/area/almayer/shipboard/brig/cic_hallway
name = "\improper Brig CiC Hallway"
/area/almayer/shipboard/brig/dress
name = "\improper CIC Dress Uniform Room"
+
/area/almayer/shipboard/brig/processing
name = "\improper Brig Processing and Holding"
@@ -297,6 +288,10 @@
name = "\improper Brig Chief MP Office"
icon_state = "chiefmpoffice"
+/area/almayer/shipboard/brig/warden_office
+ name = "\improper Brig Warden Office"
+ icon_state = "chiefmpoffice"
+
/area/almayer/shipboard/sea_office
name = "\improper Lower Deck Senior Enlisted Advisor Office"
icon_state = "chiefmpoffice"
@@ -312,10 +307,6 @@
icon_state = "firingrange"
fake_zlevel = 2 // lowerdeck
-/area/almayer/shipboard/sensors
- name = "\improper Sensor Room"
- icon_state = "sensor"
-
/area/almayer/hallways/hangar
name = "\improper Hangar"
icon_state = "hangar"
@@ -323,79 +314,62 @@
soundscape_playlist = SCAPE_PL_HANGAR
soundscape_interval = 50
-/area/almayer/hallways/vehiclehangar
- name = "\improper Lower Deck Vehicle Storage"
- icon_state = "exoarmor"
- fake_zlevel = 2
-
-/area/almayer/living
- minimap_color = MINIMAP_AREA_COLONY
-
-/area/almayer/living/tankerbunks
- name = "\improper Lower Deck Vehicle Crew Bunks"
- icon_state = "livingspace"
- fake_zlevel = 2
-
-/area/almayer/living/auxiliary_officer_office
- name = "\improper Lower Deck Auxiliary Support Officer office"
- icon_state = "livingspace"
- fake_zlevel = 2
-
-/area/almayer/squads/tankdeliveries
- name = "\improper Lower Deck Vehicle ASRS"
- icon_state = "req"
- fake_zlevel = 2
+/area/almayer/hallways/lower
+ fake_zlevel = 2 // lowerdeck
-/area/almayer/hallways/exoarmor
- name = "\improper Lower Deck Vehicle Armor Storage"
+/area/almayer/hallways/lower/vehiclehangar
+ name = "\improper Lower Deck Vehicle Storage"
icon_state = "exoarmor"
- fake_zlevel = 2 // lowerdeck
-/area/almayer/hallways/repair_bay
+/area/almayer/hallways/lower/repair_bay
name = "\improper Lower Deck Deployment Workshop"
icon_state = "dropshiprepair"
- fake_zlevel = 2 // lowerdeck
-/area/almayer/hallways/mission_planner
- name = "\improper Lower Deck Dropship Central Computer Room"
- icon_state = "missionplanner"
- fake_zlevel = 2 // lowerdeck
-
-/area/almayer/hallways/starboard_umbilical
+/area/almayer/hallways/lower/starboard_umbilical
name = "\improper Lower Deck Starboard Umbilical Hallway"
icon_state = "starboardumbilical"
- fake_zlevel = 2 // lowerdeck
-/area/almayer/hallways/port_umbilical
+/area/almayer/hallways/lower/port_umbilical
name = "\improper Lower Deck Port Umbilical Hallway"
icon_state = "portumbilical"
- fake_zlevel = 2 // lowerdeck
-/area/almayer/hallways/aft_hallway
- name = "\improper Upper Deck Aft Hallway"
- icon_state = "aft"
- fake_zlevel = 1 // upperdeck
+//port
+/area/almayer/hallways/lower/port_fore_hallway
+ name = "\improper Lower Deck Port-Fore Hallway"
+ icon_state = "port"
-/area/almayer/hallways/stern_hallway
- name = "\improper Upper Deck Stern Hallway"
- icon_state = "stern"
- fake_zlevel = 1 // upperdeck
+/area/almayer/hallways/lower/port_midship_hallway
+ name = "\improper Lower Deck Port-Midship Hallway"
+ icon_state = "port"
-/area/almayer/hallways/port_hallway
- name = "\improper Lower Deck Port Hallway"
+/area/almayer/hallways/lower/port_aft_hallway
+ name = "\improper Lower Deck Port-Aft Hallway"
icon_state = "port"
- fake_zlevel = 2 // lowerdeck
-/area/almayer/hallways/starboard_hallway
- name = "\improper Lower Deck Starboard Hallway"
+//starboard
+/area/almayer/hallways/lower/starboard_fore_hallway
+ name = "\improper Lower Deck Starboard-Fore Hallway"
icon_state = "starboard"
- fake_zlevel = 2 // lowerdeck
-//new hallways areas
+/area/almayer/hallways/lower/starboard_midship_hallway
+ name = "\improper Lower Deck Starboard-Midship Hallway"
+ icon_state = "starboard"
+
+/area/almayer/hallways/lower/starboard_aft_hallway
+ name = "\improper Lower Deck Starboard-Aft Hallway"
+ icon_state = "starboard"
/area/almayer/hallways/upper
fake_zlevel = 1 // upperdeck
+/area/almayer/hallways/upper/aft_hallway
+ name = "\improper Upper Deck Aft Hallway"
+ icon_state = "aft"
+
+/area/almayer/hallways/upper/stern_hallway
+ name = "\improper Upper Deck Stern Hallway"
+ icon_state = "stern"
+
/area/almayer/hallways/upper/port
name = "\improper Upper Deck Port Hallway"
icon_state = "port"
@@ -404,6 +378,7 @@
name = "\improper Upper Deck Starboard Hallway"
icon_state = "starboard"
+//area that are used for transition between decks.
/area/almayer/stair_clone
name = "\improper Lower Deck Stairs"
icon_state = "stairs_lowerdeck"
@@ -514,7 +489,7 @@
name = "\improper Upper Deck Starboard-Stern Hull"
/area/almayer/maint/hull/upper/u_f_s
- name = "\improper Upper Deck Fore-Starboard Hull"
+ name = "\improper Upper Deck Starboard-Fore Hull"
/area/almayer/maint/hull/upper/u_m_s
name = "\improper Upper Deck Starboard-Midship Hull"
@@ -531,6 +506,19 @@
/area/almayer/maint/hull/upper/u_a_p
name = "\improper Upper Deck Port-Aft Hull"
+/area/almayer/living
+ minimap_color = MINIMAP_AREA_COLONY
+
+/area/almayer/living/tankerbunks
+ name = "\improper Lower Deck Vehicle Crew Bunks"
+ icon_state = "livingspace"
+ fake_zlevel = 2
+
+/area/almayer/living/auxiliary_officer_office
+ name = "\improper Lower Deck Auxiliary Support Officer office"
+ icon_state = "livingspace"
+ fake_zlevel = 2
+
/area/almayer/living/cryo_cells
name = "\improper Lower Deck Cryo Cells"
icon_state = "cryo"
@@ -704,11 +692,6 @@
icon_state = "science"
fake_zlevel = 1 // upperdeck
-/area/almayer/medical/testlab
- name = "\improper Medical Research workshop"
- icon_state = "science"
- fake_zlevel = 1 // upperdeck
-
/area/almayer/medical/containment
name = "\improper Medical Research containment"
icon_state = "science"
@@ -808,27 +791,22 @@
hijack_evacuation_type = EVACUATION_TYPE_ADDITIVE
/area/almayer/lifeboat_pumps/north1
- name = "Starboard Fore Lifeboat Fuel Pump"
+ name = "Starboard-Fore Lifeboat Fuel Pump"
/area/almayer/lifeboat_pumps/north2
- name = "Starboard Aft Lifeboat Fuel Pump"
+ name = "Starboard-Aft Lifeboat Fuel Pump"
/area/almayer/lifeboat_pumps/south1
- name = "Port Fore Lifeboat Fuel Pump"
+ name = "Port-Fore Lifeboat Fuel Pump"
/area/almayer/lifeboat_pumps/south2
- name = "Port Aft Lifeboat Fuel Pump"
+ name = "Port-Aft Lifeboat Fuel Pump"
/area/almayer/command/lifeboat
name = "\improper Lifeboat Docking Port"
icon_state = "selfdestruct"
fake_zlevel = 1 // upperdeck
-/area/almayer/ert_port
- name = "\improper ERT Docking Port"
- icon_state = "lifeboat"
- flags_area = AREA_NOTUNNEL
-
/area/space/almayer/lifeboat_dock
name = "\improper Port Lifeboat Docking"
icon_state = "lifeboat"
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 732bce1fc3ee..be7037295497 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -104,12 +104,6 @@
if(is_mainship_level(z))
GLOB.ship_areas += src
- if(base_lighting_alpha)
- return INITIALIZE_HINT_ROUNDSTART
-
-/area/LateInitialize()
- . = ..()
-
update_base_lighting()
/area/proc/initialize_power(override_power)
diff --git a/code/game/area/shuttles.dm b/code/game/area/shuttles.dm
index 62c42406e795..3a8d53ab30b7 100644
--- a/code/game/area/shuttles.dm
+++ b/code/game/area/shuttles.dm
@@ -81,4 +81,4 @@
/area/shuttle/lifeboat
icon = 'icons/turf/area_almayer.dmi'
icon_state = "lifeboat"
- flags_atom = AREA_NOTUNNEL
+ flags_area = AREA_NOTUNNEL
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 5f36b3b8b390..f2ae11425f42 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -503,7 +503,7 @@ Parameters are passed from New.
onclose(usr, "[name]")
///This proc is called on atoms when they are loaded into a shuttle
-/atom/proc/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE)
+/atom/proc/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock)
return
/**
diff --git a/code/game/gamemodes/cm_initialize.dm b/code/game/gamemodes/cm_initialize.dm
index f8c8be5c10ad..30e179949be5 100644
--- a/code/game/gamemodes/cm_initialize.dm
+++ b/code/game/gamemodes/cm_initialize.dm
@@ -934,7 +934,7 @@ Additional game mode variables.
var/marine_pop_size = 0
var/uscm_personnel_count = 0
for(var/mob/living/carbon/human/human as anything in GLOB.alive_human_list)
- if(human.faction == FACTION_USCM)
+ if(human.faction == FACTION_MARINE)
uscm_personnel_count++
var/datum/job/job = GET_MAPPED_ROLE(human.job)
marine_pop_size += GLOB.RoleAuthority.calculate_role_weight(job)
diff --git a/code/game/gamemodes/colonialmarines/colonialmarines.dm b/code/game/gamemodes/colonialmarines/colonialmarines.dm
index 6dfe50542b00..ca0f34e64a7b 100644
--- a/code/game/gamemodes/colonialmarines/colonialmarines.dm
+++ b/code/game/gamemodes/colonialmarines/colonialmarines.dm
@@ -265,7 +265,7 @@
continue
if(groundside_humans > (groundside_xenos * GROUNDSIDE_XENO_MULTIPLIER))
- SSticker.mode.get_specific_call("Xenomorphs Groundside (Forsaken)", TRUE, FALSE)
+ SSticker.mode.get_specific_call(/datum/emergency_call/forsaken_xenos, TRUE, FALSE) // "Xenomorphs Groundside (Forsaken)"
TIMER_COOLDOWN_START(src, COOLDOWN_HIJACK_GROUND_CHECK, 1 MINUTES)
@@ -372,10 +372,16 @@
var/living = headcount["total_headcount"]
if ((headcount["WY_headcount"] / living) > MAJORITY)
musical_track = pick('sound/theme/lastmanstanding_wy.ogg')
+ log_game("3rd party victory: Weyland-Yutani")
+ message_admins("3rd party victory: Weyland-Yutani")
else if ((headcount["UPP_headcount"] / living) > MAJORITY)
musical_track = pick('sound/theme/lastmanstanding_upp.ogg')
+ log_game("3rd party victory: Union of Progressive Peoples")
+ message_admins("3rd party victory: Union of Progressive Peoples")
else if ((headcount["CLF_headcount"] / living) > MAJORITY)
musical_track = pick('sound/theme/lastmanstanding_clf.ogg')
+ log_game("3rd party victory: Colonial Liberation Front")
+ message_admins("3rd party victory: Colonial Liberation Front")
else if ((headcount["marine_headcount"] / living) > MAJORITY)
musical_track = pick('sound/theme/neutral_melancholy2.ogg') //This is the theme song for Colonial Marines the game, fitting
else
diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm
index f6fbb5f4f900..d216ba762a3e 100644
--- a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm
+++ b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm
@@ -194,7 +194,7 @@
announce_xeno_wave(wave)
if(xeno_wave == 7)
//Wave when Marines get reinforcements!
- get_specific_call("Marine Reinforcements (Squad)", FALSE, TRUE)
+ get_specific_call(/datum/emergency_call/wo, FALSE, TRUE) // "Marine Reinforcements (Squad)"
xeno_wave = min(xeno_wave + 1, WO_MAX_WAVE)
diff --git a/code/game/gamemodes/events/power_failure.dm b/code/game/gamemodes/events/power_failure.dm
index 5ebedd8fd26d..c8b80efe9b7f 100644
--- a/code/game/gamemodes/events/power_failure.dm
+++ b/code/game/gamemodes/events/power_failure.dm
@@ -74,16 +74,15 @@
if(announce)
marine_announcement("Power has been restored. Reason: Unknown.", "Power Systems Nominal", 'sound/AI/poweron.ogg')
-/proc/power_restore_ship_reactors(announce = 1)
- for(var/obj/structure/machinery/power/fusion_engine/FE in GLOB.machines)
- FE.buildstate = 0
- FE.is_on = 1
- FE.fusion_cell = new
- FE.power_gen_percent = 98
- FE.update_icon()
- FE.start_processing()
- FE.power_change()
+/proc/power_restore_ship_reactors(announce = TRUE)
+ for(var/obj/structure/machinery/power/reactor/reactor in GLOB.machines)
+ if(!is_mainship_level(reactor.z)) //Only ship reactors should be repaired
+ continue
+ reactor.buildstate = 0
+ if(reactor.require_fusion_cell && !reactor.fusion_cell)
+ reactor.fusion_cell = new
+ reactor.power_gen_percent = 98
+ reactor.start_functioning(TRUE)
- sleep(100)
if(announce)
- marine_announcement("Power has been restored. Reason: Unknown.", "Power Systems Nominal", 'sound/AI/poweron.ogg')
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(marine_announcement), "Power has been restored. Reason: Unknown.", "Power Systems Nominal", 'sound/AI/poweron.ogg'), 10 SECONDS)
diff --git a/code/game/jobs/job/civilians/other/survivors.dm b/code/game/jobs/job/civilians/other/survivors.dm
index a85731aa781a..71dd5f1b96e8 100644
--- a/code/game/jobs/job/civilians/other/survivors.dm
+++ b/code/game/jobs/job/civilians/other/survivors.dm
@@ -85,6 +85,8 @@
if(hostile)
to_chat(survivor, SPAN_HIGHDANGER("You are HOSTILE to the USCM!"))
+ else if(survivor.faction == FACTION_CLF)
+ to_chat(survivor, SPAN_HIGHDANGER("You are HOSTILE to the USCM, but NOT to other survivors!"))
else
to_chat(survivor, SPAN_XENOHIGHDANGER("You are NON-HOSTILE to the USCM!"))
diff --git a/code/game/jobs/job/command/cic/staffofficer.dm b/code/game/jobs/job/command/cic/staffofficer.dm
index 94769de2158f..c73270944c3a 100644
--- a/code/game/jobs/job/command/cic/staffofficer.dm
+++ b/code/game/jobs/job/command/cic/staffofficer.dm
@@ -23,8 +23,17 @@
total_positions_so_far = positions
return positions
-/datum/job/command/bridge/generate_entry_message(mob/living/carbon/human/H)
- return ..()
+
+/datum/job/command/bridge/generate_entry_conditions(mob/living/M, whitelist_status)
+ . = ..()
+ if(!islist(GLOB.marine_leaders[JOB_SO]))
+ GLOB.marine_leaders[JOB_SO] = list()
+ GLOB.marine_leaders[JOB_SO] += M
+ RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(cleanup_leader_candidate))
+
+/datum/job/command/bridge/proc/cleanup_leader_candidate(mob/M)
+ SIGNAL_HANDLER
+ GLOB.marine_leaders[JOB_SO] -= M
AddTimelock(/datum/job/command/bridge, list(
JOB_SQUAD_LEADER = 1 HOURS,
diff --git a/code/game/machinery/ARES/ARES_interface.dm b/code/game/machinery/ARES/ARES_interface.dm
index aa1cd92547ec..dd99240b2550 100644
--- a/code/game/machinery/ARES/ARES_interface.dm
+++ b/code/game/machinery/ARES/ARES_interface.dm
@@ -9,10 +9,10 @@
var/current_menu = "login"
var/last_menu = ""
- var/authentication = ARES_ACCESS_BASIC
+ var/authentication = ARES_ACCESS_LOGOUT
/// The last person to login.
- var/last_login
+ var/last_login = "No User"
/// The person pretending to be last_login
var/sudo_holder
@@ -218,17 +218,17 @@
return
playsound(src, "keyboard_alt", 15, 1)
+ var/mob/living/carbon/human/operator = ui.user
switch (action)
if("go_back")
if(!last_menu)
- return to_chat(usr, SPAN_WARNING("Error, no previous page detected."))
+ return to_chat(operator, SPAN_WARNING("Error, no previous page detected."))
var/temp_holder = current_menu
current_menu = last_menu
last_menu = temp_holder
if("login")
- var/mob/living/carbon/human/operator = usr
var/obj/item/card/id/idcard = operator.get_active_hand()
if(istype(idcard))
authentication = get_ares_access(idcard)
@@ -239,7 +239,7 @@
authentication = get_ares_access(idcard)
last_login = idcard.registered_name
else
- to_chat(usr, SPAN_WARNING("You require an ID card to access this terminal!"))
+ to_chat(operator, SPAN_WARNING("You require an ID card to access this terminal!"))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
if(authentication)
@@ -247,14 +247,14 @@
current_menu = "main"
if("sudo")
- var/new_user = tgui_input_text(usr, "Enter Sudo Username", "Sudo User", encode = FALSE)
+ var/new_user = tgui_input_text(operator, "Enter Sudo Username", "Sudo User", encode = FALSE)
if(new_user)
if(new_user == sudo_holder)
last_login = sudo_holder
sudo_holder = null
return FALSE
if(new_user == last_login)
- to_chat(usr, SPAN_WARNING("Already remote logged in as this user."))
+ to_chat(operator, SPAN_WARNING("Already remote logged in as this user."))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
sudo_holder = last_login
@@ -275,6 +275,8 @@
last_login = sudo_holder
sudo_holder = null
datacore.interface_access_list += "[last_login] logged out at [worldtime2text()]."
+ last_login = "No User"
+ authentication = ARES_ACCESS_LOGOUT
if("home")
last_menu = current_menu
@@ -319,6 +321,8 @@
// -- Delete Button -- //
if("delete_record")
var/datum/ares_record/record = locate(params["record"])
+ if(!istype(record))
+ return FALSE
if(record.record_name == ARES_RECORD_DELETED)
return FALSE
var/datum/ares_record/deletion/new_delete = new
@@ -366,12 +370,14 @@
datacore.records_talking -= conversation
if("message_ares")
- var/message = tgui_input_text(usr, "What do you wish to say to ARES?", "ARES Message", encode = FALSE)
+ var/message = tgui_input_text(operator, "What do you wish to say to ARES?", "ARES Message", encode = FALSE)
if(message)
- message_ares(message, usr, params["active_convo"])
+ message_ares(message, operator, params["active_convo"])
if("read_record")
var/datum/ares_record/deleted_talk/conversation = locate(params["record"])
+ if(!istype(conversation))
+ return FALSE
deleted_1to1 = conversation.conversation
last_menu = current_menu
current_menu = "read_deleted"
@@ -379,36 +385,36 @@
// -- Emergency Buttons -- //
if("general_quarters")
if(!COOLDOWN_FINISHED(datacore, ares_quarters_cooldown))
- to_chat(usr, SPAN_WARNING("It has not been long enough since the last General Quarters call!"))
+ to_chat(operator, SPAN_WARNING("It has not been long enough since the last General Quarters call!"))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
if(GLOB.security_level < SEC_LEVEL_RED)
set_security_level(SEC_LEVEL_RED, no_sound = TRUE, announce = FALSE)
shipwide_ai_announcement("ATTENTION! GENERAL QUARTERS. ALL HANDS, MAN YOUR BATTLESTATIONS.", MAIN_AI_SYSTEM, 'sound/effects/GQfullcall.ogg')
- log_game("[key_name(usr)] has called for general quarters via ARES.")
- message_admins("[key_name_admin(usr)] has called for general quarters via ARES.")
+ log_game("[key_name(operator)] has called for general quarters via ARES.")
+ message_admins("[key_name_admin(operator)] has called for general quarters via ARES.")
log_ares_security("General Quarters", "[last_login] has called for general quarters via ARES.")
COOLDOWN_START(datacore, ares_quarters_cooldown, 10 MINUTES)
. = TRUE
if("evacuation_start")
if(GLOB.security_level < SEC_LEVEL_RED)
- to_chat(usr, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures."))
+ to_chat(operator, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures."))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
if(SShijack.evac_admin_denied)
- to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods."))
+ to_chat(operator, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods."))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
if(!SShijack.initiate_evacuation())
- to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!"))
+ to_chat(operator, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!"))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
- log_game("[key_name(usr)] has called for an emergency evacuation via ARES.")
- message_admins("[key_name_admin(usr)] has called for an emergency evacuation via ARES.")
+ log_game("[key_name(operator)] has called for an emergency evacuation via ARES.")
+ message_admins("[key_name_admin(operator)] has called for an emergency evacuation via ARES.")
log_ares_security("Initiate Evacuation", "[last_login] has called for an emergency evacuation via ARES.")
. = TRUE
@@ -416,27 +422,27 @@
if(!SSticker.mode)
return FALSE //Not a game mode?
if(world.time < DISTRESS_TIME_LOCK)
- to_chat(usr, SPAN_WARNING("You have been here for less than six minutes... what could you possibly have done!"))
+ to_chat(operator, SPAN_WARNING("You have been here for less than six minutes... what could you possibly have done!"))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
if(!COOLDOWN_FINISHED(datacore, ares_distress_cooldown))
- to_chat(usr, SPAN_WARNING("The distress launcher is cooling down!"))
+ to_chat(operator, SPAN_WARNING("The distress launcher is cooling down!"))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
if(GLOB.security_level == SEC_LEVEL_DELTA)
- to_chat(usr, SPAN_WARNING("The ship is already undergoing self destruct procedures!"))
+ to_chat(operator, SPAN_WARNING("The ship is already undergoing self destruct procedures!"))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
if(GLOB.security_level < SEC_LEVEL_RED)
- to_chat(usr, SPAN_WARNING("The ship must be under red alert to launch a distress beacon!"))
+ to_chat(operator, SPAN_WARNING("The ship must be under red alert to launch a distress beacon!"))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
for(var/client/admin in GLOB.admins)
if((R_ADMIN|R_MOD) & admin.admin_holder.rights)
playsound_client(admin,'sound/effects/sos-morse-code.ogg',10)
- SSticker.mode.request_ert(usr, TRUE)
- to_chat(usr, SPAN_NOTICE("A distress beacon request has been sent to USCM High Command."))
+ SSticker.mode.request_ert(operator, TRUE)
+ to_chat(operator, SPAN_NOTICE("A distress beacon request has been sent to USCM High Command."))
COOLDOWN_START(datacore, ares_distress_cooldown, COOLDOWN_COMM_REQUEST)
return TRUE
@@ -444,25 +450,25 @@
if(!SSticker.mode)
return FALSE //Not a game mode?
if(world.time < NUCLEAR_TIME_LOCK)
- to_chat(usr, SPAN_WARNING("It is too soon to request Nuclear Ordnance!"))
+ to_chat(operator, SPAN_WARNING("It is too soon to request Nuclear Ordnance!"))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
if(!COOLDOWN_FINISHED(datacore, ares_nuclear_cooldown))
- to_chat(usr, SPAN_WARNING("The ordnance request frequency is garbled, wait for reset!"))
+ to_chat(operator, SPAN_WARNING("The ordnance request frequency is garbled, wait for reset!"))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
if(GLOB.security_level == SEC_LEVEL_DELTA || SSticker.mode.is_in_endgame)
- to_chat(usr, SPAN_WARNING("The mission has failed catastrophically, what do you want a nuke for?!"))
+ to_chat(operator, SPAN_WARNING("The mission has failed catastrophically, what do you want a nuke for?!"))
playsound(src, 'sound/machines/buzz-two.ogg', 15, 1)
return FALSE
- var/reason = tgui_input_text(usr, "Please enter reason nuclear ordnance is required.", "Reason for Nuclear Ordnance")
+ var/reason = tgui_input_text(operator, "Please enter reason nuclear ordnance is required.", "Reason for Nuclear Ordnance")
if(!reason)
return FALSE
for(var/client/admin in GLOB.admins)
if((R_ADMIN|R_MOD) & admin.admin_holder.rights)
playsound_client(admin,'sound/effects/sos-morse-code.ogg',10)
- message_admins("[key_name(usr)] has requested use of Nuclear Ordnance (via ARES)! Reason: [reason] [CC_MARK(usr)] (APPROVE ) (DENY ) [ADMIN_JMP_USER(usr)] [CC_REPLY(usr)]")
- to_chat(usr, SPAN_NOTICE("A nuclear ordnance request has been sent to USCM High Command for the following reason: [reason]"))
+ message_admins("[key_name(operator)] has requested use of Nuclear Ordnance (via ARES)! Reason: [reason] [CC_MARK(operator)] (APPROVE ) (DENY ) [ADMIN_JMP_USER(operator)] [CC_REPLY(operator)]")
+ to_chat(operator, SPAN_NOTICE("A nuclear ordnance request has been sent to USCM High Command for the following reason: [reason]"))
log_ares_security("Nuclear Ordnance Request", "[last_login] has sent a request for nuclear ordnance for the following reason: [reason]")
if(ares_can_interface())
ai_silent_announcement("[last_login] has sent a request for nuclear ordnance to USCM High Command.", ".V")
diff --git a/code/game/machinery/ARES/ARES_interface_admin.dm b/code/game/machinery/ARES/ARES_interface_admin.dm
new file mode 100644
index 000000000000..e388c0eb453d
--- /dev/null
+++ b/code/game/machinery/ARES/ARES_interface_admin.dm
@@ -0,0 +1,479 @@
+/client/proc/cmd_admin_open_ares()
+ set name = "Open ARES Interface"
+ set category = "Admin.Factions"
+
+ var/mob/user = usr
+ if(!check_rights(R_MOD))
+ to_chat(user, SPAN_WARNING("You do not have access to this command."))
+ return FALSE
+
+ if(!SSticker.mode)
+ to_chat(user, SPAN_WARNING("The round has not started yet."))
+ return FALSE
+
+ if(!GLOB.ares_link || !GLOB.ares_link.admin_interface || !GLOB.ares_link.interface)
+ to_chat(usr, SPAN_BOLDWARNING("ERROR: ARES Link or Interface not found!"))
+ return FALSE
+ GLOB.ares_link.tgui_interact(user)
+ var/log = "[key_name(user)] opened the remote ARES Interface."
+ if(user.job)
+ log = "[key_name(user)] ([user.job]) opened the remote ARES Interface."
+ log_admin(log)
+
+/datum/ares_console_admin
+ var/current_menu = "login"
+ var/last_menu = ""
+
+ var/authentication = ARES_ACCESS_BASIC
+
+ /// The last admin to login.
+ var/last_login
+ /// The currently logged in admin.
+ var/logged_in
+ /// A record of who logged in and when.
+ var/list/access_list = list()
+ var/list/deleted_1to1 = list()
+
+
+/datum/ares_link/tgui_interact(mob/user, datum/tgui/ui)
+ if(!interface || !admin_interface)
+ to_chat(user, SPAN_WARNING("ARES ADMIN DATA LINK FAILED"))
+ return FALSE
+ ui = SStgui.try_update_ui(user, GLOB.ares_link, ui)
+ if(!ui)
+ ui = new(user, GLOB.ares_link, "AresAdmin", "ARES Admin Interface")
+ ui.open()
+
+/datum/ares_link/ui_data(mob/user)
+ if(!interface)
+ to_chat(user, SPAN_WARNING("ARES ADMIN DATA LINK FAILED"))
+ return FALSE
+ var/list/data = list()
+
+ data["admin_login"] = "[admin_interface.logged_in], [user.client.admin_holder?.rank]"
+ data["admin_access_log"] = list(admin_interface.access_list)
+
+ data["current_menu"] = admin_interface.current_menu
+ data["last_page"] = admin_interface.last_menu
+
+ data["logged_in"] = interface.last_login
+ data["sudo"] = interface.sudo_holder ? TRUE : FALSE
+
+ data["access_text"] = "[interface.sudo_holder ? "(SUDO)," : ""] access level [interface.authentication], [interface.ares_auth_to_text(interface.authentication)]."
+ data["access_level"] = interface.authentication
+
+ data["alert_level"] = GLOB.security_level
+ data["evac_status"] = SShijack.evac_status
+ data["worldtime"] = world.time
+
+ data["access_log"] = datacore.interface_access_list
+ data["apollo_log"] = datacore.apollo_log
+
+ data["deleted_conversation"] = admin_interface.deleted_1to1
+
+ data["distresstime"] = datacore.ares_distress_cooldown
+ data["distresstimelock"] = DISTRESS_TIME_LOCK
+ data["mission_failed"] = SSticker.mode.is_in_endgame
+ data["nuketimelock"] = NUCLEAR_TIME_LOCK
+ data["nuke_available"] = datacore.nuke_available
+
+ var/list/logged_announcements = list()
+ for(var/datum/ares_record/announcement/broadcast in datacore.records_announcement)
+ var/list/current_broadcast = list()
+ current_broadcast["time"] = broadcast.time
+ current_broadcast["title"] = broadcast.title
+ current_broadcast["details"] = broadcast.details
+ current_broadcast["ref"] = "\ref[broadcast]"
+ logged_announcements += list(current_broadcast)
+ data["records_announcement"] = logged_announcements
+
+ var/list/logged_alerts = list()
+ for(var/datum/ares_record/security/security_alert in datacore.records_security)
+ var/list/current_alert = list()
+ current_alert["time"] = security_alert.time
+ current_alert["title"] = security_alert.title
+ current_alert["details"] = security_alert.details
+ current_alert["ref"] = "\ref[security_alert]"
+ logged_alerts += list(current_alert)
+ data["records_security"] = logged_alerts
+
+ var/list/logged_flights = list()
+ for(var/datum/ares_record/flight/flight_log in datacore.records_flight)
+ var/list/current_flight = list()
+ current_flight["time"] = flight_log.time
+ current_flight["title"] = flight_log.title
+ current_flight["details"] = flight_log.details
+ current_flight["user"] = flight_log.user
+ current_flight["ref"] = "\ref[flight_log]"
+ logged_flights += list(current_flight)
+ data["records_flight"] = logged_flights
+
+ var/list/logged_bioscans = list()
+ for(var/datum/ares_record/bioscan/scan in datacore.records_bioscan)
+ var/list/current_scan = list()
+ current_scan["time"] = scan.time
+ current_scan["title"] = scan.title
+ current_scan["details"] = scan.details
+ current_scan["ref"] = "\ref[scan]"
+ logged_bioscans += list(current_scan)
+ data["records_bioscan"] = logged_bioscans
+
+ var/list/logged_bombs = list()
+ for(var/datum/ares_record/bombardment/bomb in datacore.records_bombardment)
+ var/list/current_bomb = list()
+ current_bomb["time"] = bomb.time
+ current_bomb["title"] = bomb.title
+ current_bomb["details"] = bomb.details
+ current_bomb["user"] = bomb.user
+ current_bomb["ref"] = "\ref[bomb]"
+ logged_bombs += list(current_bomb)
+ data["records_bombardment"] = logged_bombs
+
+ var/list/logged_deletes = list()
+ for(var/datum/ares_record/deletion/deleted in datacore.records_deletion)
+ var/list/current_delete = list()
+ current_delete["time"] = deleted.time
+ current_delete["title"] = deleted.title
+ current_delete["details"] = deleted.details
+ current_delete["user"] = deleted.user
+ current_delete["ref"] = "\ref[deleted]"
+ logged_deletes += list(current_delete)
+ data["records_deletion"] = logged_deletes
+
+ var/list/logged_discussions = list()
+ for(var/datum/ares_record/deleted_talk/deleted_convo in datacore.records_deletion)
+ var/list/deleted_disc = list()
+ deleted_disc["time"] = deleted_convo.time
+ deleted_disc["title"] = deleted_convo.title
+ deleted_disc["ref"] = "\ref[deleted_convo]"
+ logged_discussions += list(deleted_disc)
+ data["deleted_discussions"] = logged_discussions
+
+ var/list/logged_orders = list()
+ for(var/datum/ares_record/requisition_log/req_order in datacore.records_asrs)
+ var/list/current_order = list()
+ current_order["time"] = req_order.time
+ current_order["details"] = req_order.details
+ current_order["title"] = req_order.title
+ current_order["user"] = req_order.user
+ current_order["ref"] = "\ref[req_order]"
+ logged_orders += list(current_order)
+ data["records_requisition"] = logged_orders
+
+ var/list/logged_convos = list()
+ var/list/active_convo = list()
+ var/active_ref
+ for(var/datum/ares_record/talk_log/log in datacore.records_talking)
+ if(log.user == interface.last_login)
+ active_convo = log.conversation
+ active_ref = "\ref[log]"
+
+ var/list/current_convo = list()
+ current_convo["user"] = log.user
+ current_convo["ref"] = "\ref[log]"
+ current_convo["conversation"] = log.conversation
+ logged_convos += list(current_convo)
+
+ data["active_convo"] = active_convo
+ data["active_ref"] = active_ref
+ data["conversations"] = logged_convos
+
+ var/list/logged_maintenance = list()
+ for(var/datum/ares_ticket/maintenance/maint_ticket in tickets_maintenance)
+ var/lock_status = TICKET_OPEN
+ switch(maint_ticket.ticket_status)
+ if(TICKET_REJECTED, TICKET_CANCELLED, TICKET_COMPLETED)
+ lock_status = TICKET_CLOSED
+
+ var/list/current_maint = list()
+ current_maint["id"] = maint_ticket.ticket_id
+ current_maint["time"] = maint_ticket.ticket_time
+ current_maint["priority_status"] = maint_ticket.ticket_priority
+ current_maint["category"] = maint_ticket.ticket_name
+ current_maint["details"] = maint_ticket.ticket_details
+ current_maint["status"] = maint_ticket.ticket_status
+ current_maint["submitter"] = maint_ticket.ticket_submitter
+ current_maint["assignee"] = maint_ticket.ticket_assignee
+ current_maint["lock_status"] = lock_status
+ current_maint["ref"] = "\ref[maint_ticket]"
+ logged_maintenance += list(current_maint)
+ data["maintenance_tickets"] = logged_maintenance
+
+ var/list/logged_access = list()
+ for(var/datum/ares_ticket/access/access_ticket in tickets_access)
+ var/lock_status = TICKET_OPEN
+ switch(access_ticket.ticket_status)
+ if(TICKET_REJECTED, TICKET_CANCELLED, TICKET_REVOKED)
+ lock_status = TICKET_CLOSED
+
+ var/list/current_ticket = list()
+ current_ticket["id"] = access_ticket.ticket_id
+ current_ticket["time"] = access_ticket.ticket_time
+ current_ticket["priority_status"] = access_ticket.ticket_priority
+ current_ticket["title"] = access_ticket.ticket_name
+ current_ticket["details"] = access_ticket.ticket_details
+ current_ticket["status"] = access_ticket.ticket_status
+ current_ticket["submitter"] = access_ticket.ticket_submitter
+ current_ticket["assignee"] = access_ticket.ticket_assignee
+ current_ticket["lock_status"] = lock_status
+ current_ticket["ref"] = "\ref[access_ticket]"
+ logged_access += list(current_ticket)
+ data["access_tickets"] = logged_access
+
+ return data
+
+
+/datum/ares_link/ui_state(mob/user)
+ return GLOB.admin_state
+
+/datum/ares_link/ui_close(mob/user)
+ . = ..()
+ if(admin_interface.logged_in && (user.ckey == admin_interface.logged_in))
+ admin_interface.current_menu = "login"
+ admin_interface.last_menu = "login"
+ admin_interface.access_list += "[admin_interface.logged_in] logged out at [worldtime2text()]."
+ admin_interface.last_login = admin_interface.logged_in
+ admin_interface.logged_in = null
+
+/datum/ares_link/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
+ . = ..()
+ if(.)
+ return
+ var/mob/user = ui.user
+ if(!check_rights_for(user.client, R_MOD))
+ to_chat(user, SPAN_WARNING("You require staff identification to access this terminal!"))
+ return FALSE
+ switch (action)
+ if("go_back")
+ if(!admin_interface.last_menu)
+ to_chat(user, SPAN_WARNING("Error, no previous page detected."))
+ return FALSE
+ var/temp_holder = admin_interface.current_menu
+ admin_interface.current_menu = admin_interface.last_menu
+ admin_interface.last_menu = temp_holder
+
+ if("login")
+ admin_interface.logged_in = user.client.ckey
+ admin_interface.access_list += "[user.client.ckey] at [worldtime2text()], Access Level '[user.client.admin_holder?.rank]'."
+ admin_interface.current_menu = "main"
+
+ // -- Page Changers -- //
+ if("logout")
+ admin_interface.current_menu = "login"
+ admin_interface.last_menu = "login"
+ admin_interface.access_list += "[admin_interface.logged_in] logged out at [worldtime2text()]. (UI Termination)"
+ admin_interface.last_login = admin_interface.logged_in
+ admin_interface.logged_in = null
+
+ if("home")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "main"
+ if("page_1to1")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "talking"
+ if("page_announcements")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "announcements"
+ if("page_bioscans")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "bioscans"
+ if("page_bombardments")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "bombardments"
+ if("page_apollo")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "apollo"
+ if("page_access")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "access_log"
+ if("page_admin_list")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "admin_access_log"
+ if("page_security")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "security"
+ if("page_requisitions")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "requisitions"
+ if("page_flight")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "flight_log"
+ if("page_emergency")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "emergency"
+ if("page_deleted")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "delete_log"
+ if("page_deleted_1to1")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "deleted_talks"
+ if("page_access_management")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "access_management"
+ if("page_maint_management")
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "maintenance_management"
+
+ // -- 1:1 Conversation -- //
+ if("new_conversation")
+ var/datum/ares_record/talk_log/convo = new(interface.last_login)
+ convo.conversation += "[MAIN_AI_SYSTEM] at [worldtime2text()], 'New 1:1 link initiated. Greetings, [interface.last_login].'"
+ datacore.records_talking += convo
+
+ if("clear_conversation")
+ var/datum/ares_record/talk_log/conversation = locate(params["active_convo"])
+ if(!istype(conversation))
+ return FALSE
+ var/datum/ares_record/deleted_talk/deleted = new
+ deleted.title = conversation.title
+ deleted.conversation = conversation.conversation
+ deleted.user = MAIN_AI_SYSTEM
+ datacore.records_deletion += deleted
+ datacore.records_talking -= conversation
+
+ if("fake_message_ares")
+ var/message = tgui_input_text(user, "What do you wish to say to ARES?", "ARES Message", encode = FALSE)
+ if(message)
+ interface.message_ares(message, user, params["active_convo"], TRUE)
+ if("ares_reply")
+ var/message = tgui_input_text(user, "What do you wish to reply with?", "ARES Response", encode = FALSE)
+ if(message)
+ interface.response_from_ares(message, params["active_convo"])
+ var/datum/ares_record/talk_log/conversation = locate(params["active_convo"])
+ if(!istype(conversation))
+ return FALSE
+ var/admin_log = SPAN_STAFF_IC("ADMINS/MODS: [SPAN_RED("[key_name(user)] replied to [conversation.user]'s ARES message")] [SPAN_GREEN("via Remote Interface")] with: [SPAN_BLUE(message)] ")
+ for(var/client/admin in GLOB.admins)
+ if((R_ADMIN|R_MOD) & admin.admin_holder.rights)
+ to_chat(admin, admin_log)
+
+ if("read_record")
+ var/datum/ares_record/deleted_talk/conversation = locate(params["record"])
+ if(!istype(conversation))
+ return FALSE
+ admin_interface.deleted_1to1 = conversation.conversation
+ admin_interface.last_menu = admin_interface.current_menu
+ admin_interface.current_menu = "read_deleted"
+
+ if("claim_ticket")
+ var/datum/ares_ticket/ticket = locate(params["ticket"])
+ if(!istype(ticket))
+ return FALSE
+ var/claim = TRUE
+ var/assigned = ticket.ticket_assignee
+ if(assigned)
+ if(assigned == MAIN_AI_SYSTEM)
+ var/prompt = tgui_alert(user, "ARES already claimed this ticket! Do you wish to drop the claim?", "Unclaim ticket", list("Yes", "No"))
+ if(prompt != "Yes")
+ return FALSE
+ /// set ticket back to pending
+ ticket.ticket_assignee = null
+ ticket.ticket_status = TICKET_PENDING
+ return claim
+ var/choice = tgui_alert(user, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No"))
+ if(choice != "Yes")
+ claim = FALSE
+ if(claim)
+ ticket.ticket_assignee = MAIN_AI_SYSTEM
+ ticket.ticket_status = TICKET_ASSIGNED
+ return claim
+
+ if("auth_access")
+ var/datum/ares_ticket/access/access_ticket = locate(params["ticket"])
+ if(!istype(access_ticket))
+ return FALSE
+ for(var/obj/item/card/id/identification in waiting_ids)
+ if(identification.registered_gid != access_ticket.user_id_num)
+ continue
+ identification.handle_ares_access(MAIN_AI_SYSTEM, user)
+ access_ticket.ticket_status = TICKET_GRANTED
+ ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] granted core access.")
+ return TRUE
+ for(var/obj/item/card/id/identification in active_ids)
+ if(identification.registered_gid != access_ticket.user_id_num)
+ continue
+ identification.handle_ares_access(MAIN_AI_SYSTEM, user)
+ access_ticket.ticket_status = TICKET_REVOKED
+ ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: core access for [access_ticket.ticket_submitter] revoked.")
+ return TRUE
+ return FALSE
+
+ if("reject_access")
+ var/datum/ares_ticket/access/access_ticket = locate(params["ticket"])
+ if(!istype(access_ticket))
+ return FALSE
+ access_ticket.ticket_status = TICKET_REJECTED
+ to_chat(user, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected."))
+ ares_apollo_talk("Access Ticket [access_ticket.ticket_id] rejected.")
+ return TRUE
+
+ if("new_report")
+ var/priority_report = FALSE
+ var/maint_type = tgui_input_list(user, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS)
+ switch(maint_type)
+ if("Major Structural Damage", "Fire", "Communications Failure", "Power Generation Failure")
+ priority_report = TRUE
+
+ if(!maint_type)
+ return FALSE
+ var/details = tgui_input_text(user, "What are the details for this report?", "Ticket Details", encode = FALSE)
+ if(!details)
+ return FALSE
+
+ if(!priority_report)
+ var/is_priority = tgui_alert(user, "Is this a priority report?", "Priority designation", list("Yes", "No"))
+ if(is_priority == "Yes")
+ priority_report = TRUE
+
+ var/confirm = alert(user, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No")
+ if(confirm == "Yes")
+ var/datum/ares_ticket/maintenance/maint_ticket = new(MAIN_AI_SYSTEM, maint_type, details, priority_report)
+ tickets_maintenance += maint_ticket
+ if(priority_report)
+ ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.")
+ log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(user)] as [MAIN_AI_SYSTEM] with Category '[maint_type]' and Details of '[details]'.")
+ return TRUE
+ return FALSE
+
+ if("cancel_ticket")
+ var/datum/ares_ticket/ticket = locate(params["ticket"])
+ if(!istype(ticket))
+ return FALSE
+ if(ticket.ticket_submitter != MAIN_AI_SYSTEM)
+ to_chat(user, SPAN_WARNING("You cannot cancel a ticket that does not belong to [MAIN_AI_SYSTEM]!"))
+ return FALSE
+ to_chat(user, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled."))
+ ticket.ticket_status = TICKET_CANCELLED
+ if(ticket.ticket_priority)
+ ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been cancelled.")
+ return TRUE
+
+ if("mark_ticket")
+ var/datum/ares_ticket/ticket = locate(params["ticket"])
+ if(!istype(ticket))
+ return FALSE
+ var/options_list = list(TICKET_COMPLETED, TICKET_REJECTED)
+ if(ticket.ticket_priority)
+ options_list += TICKET_NON_PRIORITY
+ else
+ options_list += TICKET_PRIORITY
+ var/choice = tgui_alert(user, "What do you wish to mark the ticket as?", "Mark", options_list, 20 SECONDS)
+ switch(choice)
+ if(TICKET_PRIORITY)
+ ticket.ticket_priority = TRUE
+ ares_apollo_talk("[ticket.ticket_type] [ticket.ticket_id] upgraded to Priority.")
+ return TRUE
+ if(TICKET_NON_PRIORITY)
+ ticket.ticket_priority = FALSE
+ ares_apollo_talk("[ticket.ticket_type] [ticket.ticket_id] downgraded from Priority.")
+ return TRUE
+ if(TICKET_COMPLETED)
+ ticket.ticket_status = TICKET_COMPLETED
+ if(TICKET_REJECTED)
+ ticket.ticket_status = TICKET_REJECTED
+ else
+ return FALSE
+ if(ticket.ticket_priority)
+ ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been [choice] by [MAIN_AI_SYSTEM].")
+ to_chat(user, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice]."))
+ return TRUE
diff --git a/code/game/machinery/ARES/ARES_interface_apollo.dm b/code/game/machinery/ARES/ARES_interface_apollo.dm
index 56283417ae05..c1c936676dc5 100644
--- a/code/game/machinery/ARES/ARES_interface_apollo.dm
+++ b/code/game/machinery/ARES/ARES_interface_apollo.dm
@@ -18,6 +18,9 @@
/// The last person to login.
var/last_login
+ /// Notification sound
+ var/notify_sounds = TRUE
+
/obj/structure/machinery/computer/working_joe/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override)
if(link && !override)
@@ -34,6 +37,16 @@
link_systems(override = FALSE)
. = ..()
+/obj/structure/machinery/computer/working_joe/proc/notify()
+ if(notify_sounds)
+ playsound(src, 'sound/machines/pda_ping.ogg', 25, 0)
+
+/obj/structure/machinery/computer/working_joe/proc/send_notifcation()
+ for(var/obj/structure/machinery/computer/working_joe/ticketer as anything in link.ticket_computers)
+ if(ticketer == src)
+ continue
+ ticketer.notify()
+
/obj/structure/machinery/computer/working_joe/proc/delink()
if(link)
link.ticket_computers -= src
@@ -76,8 +89,9 @@
data["access_log"] = list()
data["access_log"] += datacore.apollo_login_list
- data["apollo_log"] = list()
- data["apollo_log"] += datacore.apollo_log
+ data["apollo_log"] = datacore.apollo_log
+
+ data["notify_sounds"] = notify_sounds
var/list/logged_maintenance = list()
for(var/datum/ares_ticket/maintenance/maint_ticket as anything in link.tickets_maintenance)
@@ -142,12 +156,12 @@
return
var/playsound = TRUE
- var/mob/living/carbon/human/operator = usr
+ var/mob/living/carbon/human/operator = ui.user
switch (action)
if("go_back")
if(!last_menu)
- return to_chat(usr, SPAN_WARNING("Error, no previous page detected."))
+ return to_chat(operator, SPAN_WARNING("Error, no previous page detected."))
var/temp_holder = current_menu
current_menu = last_menu
last_menu = temp_holder
@@ -198,6 +212,9 @@
last_menu = current_menu
current_menu = "maint_claim"
+ if("toggle_sound")
+ notify_sounds = !notify_sounds
+
if("new_report")
var/priority_report = FALSE
var/maint_type = tgui_input_list(operator, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS)
@@ -223,6 +240,8 @@
link.tickets_maintenance += maint_ticket
if(priority_report)
ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.")
+ else
+ send_notifcation()
log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(operator)] as [last_login] with Category '[maint_type]' and Details of '[details]'.")
return TRUE
return FALSE
@@ -235,14 +254,14 @@
var/assigned = ticket.ticket_assignee
if(assigned)
if(assigned == last_login)
- var/prompt = tgui_alert(usr, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No"))
+ var/prompt = tgui_alert(operator, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No"))
if(prompt != "Yes")
return FALSE
/// set ticket back to pending
ticket.ticket_assignee = null
ticket.ticket_status = TICKET_PENDING
return claim
- var/choice = tgui_alert(usr, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No"))
+ var/choice = tgui_alert(operator, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No"))
if(choice != "Yes")
claim = FALSE
if(claim)
@@ -255,12 +274,14 @@
if(!istype(ticket))
return FALSE
if(ticket.ticket_submitter != last_login)
- to_chat(usr, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!"))
+ to_chat(operator, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!"))
return FALSE
- to_chat(usr, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled."))
+ to_chat(operator, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled."))
ticket.ticket_status = TICKET_CANCELLED
if(ticket.ticket_priority)
ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been cancelled.")
+ else
+ send_notifcation()
return TRUE
if("mark_ticket")
@@ -268,9 +289,9 @@
if(!istype(ticket))
return FALSE
if(ticket.ticket_assignee != last_login && ticket.ticket_assignee) //must be claimed by you or unclaimed.)
- to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!"))
+ to_chat(operator, SPAN_WARNING("You cannot update a ticket that is not assigned to you!"))
return FALSE
- var/choice = tgui_alert(usr, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS)
+ var/choice = tgui_alert(operator, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS)
switch(choice)
if(TICKET_COMPLETED)
ticket.ticket_status = TICKET_COMPLETED
@@ -280,7 +301,9 @@
return FALSE
if(ticket.ticket_priority)
ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been [choice] by [last_login].")
- to_chat(usr, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice]."))
+ else
+ send_notifcation()
+ to_chat(operator, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice]."))
return TRUE
if("new_access")
@@ -328,8 +351,6 @@
break
for(var/obj/item/card/id/identification in link.active_ids)
- if(!istype(identification))
- continue
if(identification.registered_gid != access_ticket.user_id_num)
continue
@@ -353,11 +374,9 @@
if("auth_access")
playsound = FALSE
var/datum/ares_ticket/access/access_ticket = locate(params["ticket"])
- if(!access_ticket)
+ if(!istype(access_ticket))
return FALSE
for(var/obj/item/card/id/identification in link.waiting_ids)
- if(!istype(identification))
- continue
if(identification.registered_gid != access_ticket.user_id_num)
continue
identification.handle_ares_access(last_login, operator)
@@ -366,8 +385,6 @@
ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was granted access by [last_login].")
return TRUE
for(var/obj/item/card/id/identification in link.active_ids)
- if(!istype(identification))
- continue
if(identification.registered_gid != access_ticket.user_id_num)
continue
identification.handle_ares_access(last_login, operator)
@@ -382,22 +399,29 @@
if(!istype(access_ticket))
return FALSE
if(access_ticket.ticket_assignee != last_login && access_ticket.ticket_assignee) //must be claimed by you or unclaimed.)
- to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!"))
+ to_chat(operator, SPAN_WARNING("You cannot update a ticket that is not assigned to you!"))
return FALSE
access_ticket.ticket_status = TICKET_REJECTED
- to_chat(usr, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected."))
+ to_chat(operator, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected."))
ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was rejected access by [last_login].")
+ for(var/obj/item/card/id/identification in link.waiting_ids)
+ if(identification.registered_gid != access_ticket.user_id_num)
+ continue
+ var/mob/living/carbon/human/id_owner = identification.registered_ref?.resolve()
+ if(id_owner)
+ to_chat(id_owner, SPAN_WARNING("AI visitation access rejected."))
+ playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0)
return TRUE
if(playsound)
playsound(src, "keyboard_alt", 15, 1)
-/obj/item/card/id/proc/handle_ares_access(logged_in, mob/user)
+/obj/item/card/id/proc/handle_ares_access(logged_in = MAIN_AI_SYSTEM, mob/user)
var/operator = key_name(user)
var/datum/ares_link/link = GLOB.ares_link
if(logged_in == MAIN_AI_SYSTEM)
if(!user)
- operator = "[MAIN_AI_SYSTEM] (Sensor Trip)"
+ operator = "[MAIN_AI_SYSTEM] (Automated)"
else
operator = "[user.ckey]/([MAIN_AI_SYSTEM])"
if(ACCESS_MARINE_AI_TEMP in access)
@@ -405,10 +429,18 @@
link.active_ids -= src
modification_log += "Temporary AI access revoked by [operator]"
to_chat(user, SPAN_NOTICE("Access revoked from [registered_name]."))
+ var/mob/living/carbon/human/id_owner = registered_ref?.resolve()
+ if(id_owner)
+ to_chat(id_owner, SPAN_WARNING("AI visitation access revoked."))
+ playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0)
else
access += ACCESS_MARINE_AI_TEMP
modification_log += "Temporary AI access granted by [operator]"
to_chat(user, SPAN_NOTICE("Access granted to [registered_name]."))
link.waiting_ids -= src
link.active_ids += src
+ var/mob/living/carbon/human/id_owner = registered_ref?.resolve()
+ if(id_owner)
+ to_chat(id_owner, SPAN_HELPFUL("AI visitation access granted."))
+ playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0)
return TRUE
diff --git a/code/game/machinery/ARES/ARES_procs.dm b/code/game/machinery/ARES/ARES_procs.dm
index 8113614d9b92..90616add6d25 100644
--- a/code/game/machinery/ARES/ARES_procs.dm
+++ b/code/game/machinery/ARES/ARES_procs.dm
@@ -1,5 +1,5 @@
-GLOBAL_DATUM_INIT(ares_link, /datum/ares_link, new)
GLOBAL_DATUM_INIT(ares_datacore, /datum/ares_datacore, new)
+GLOBAL_DATUM_INIT(ares_link, /datum/ares_link, new)
GLOBAL_LIST_INIT(maintenance_categories, list(
"Broken Light",
"Shattered Glass",
@@ -25,6 +25,9 @@ GLOBAL_LIST_INIT(maintenance_categories, list(
var/obj/structure/machinery/ares/processor/apollo/processor_apollo
var/obj/structure/machinery/ares/processor/bioscan/processor_bioscan
var/obj/structure/machinery/computer/ares_console/interface
+ var/datum/ares_console_admin/admin_interface
+ var/datum/ares_datacore/datacore
+
var/list/obj/structure/machinery/computer/working_joe/ticket_computers = list()
/// Working Joe stuff
@@ -33,6 +36,25 @@ GLOBAL_LIST_INIT(maintenance_categories, list(
var/list/waiting_ids = list()
var/list/active_ids = list()
+/datum/ares_link/New()
+ admin_interface = new
+ datacore = GLOB.ares_datacore
+
+/datum/ares_link/Destroy()
+ qdel(admin_interface)
+ for(var/obj/structure/machinery/ares/link in linked_systems)
+ link.delink()
+ for(var/obj/structure/machinery/computer/ares_console/interface in linked_systems)
+ interface.delink()
+ for(var/obj/effect/step_trigger/ares_alert/alert in linked_alerts)
+ alert.delink()
+ ..()
+
+/* BELOW ARE IN AdminAres.dm
+/datum/ares_link/tgui_interact(mob/user, datum/tgui/ui)
+/datum/ares_link/ui_data(mob/user)
+*/
+
/datum/ares_datacore
/// A record of who logged in and when.
var/list/interface_access_list = list()
@@ -61,21 +83,10 @@ GLOBAL_LIST_INIT(maintenance_categories, list(
/// Is nuke request usable or not?
var/nuke_available = TRUE
-
COOLDOWN_DECLARE(ares_distress_cooldown)
COOLDOWN_DECLARE(ares_nuclear_cooldown)
COOLDOWN_DECLARE(ares_quarters_cooldown)
-/datum/ares_link/Destroy()
- for(var/obj/structure/machinery/ares/link in linked_systems)
- link.delink()
- for(var/obj/structure/machinery/computer/ares_console/interface in linked_systems)
- interface.delink()
- for(var/obj/effect/step_trigger/ares_alert/alert in linked_alerts)
- alert.delink()
- ..()
-
-
// ------ ARES Logging Procs ------ //
/proc/ares_is_active()
for(var/mob/living/silicon/decoy/ship_ai/ai in GLOB.ai_mob_list)
@@ -196,43 +207,58 @@ GLOBAL_LIST_INIT(maintenance_categories, list(
/obj/structure/machinery/computer/proc/ares_auth_to_text(access_level)
switch(access_level)
- if(ARES_ACCESS_BASIC)//0
+ if(ARES_ACCESS_LOGOUT)
+ return "Logged Out"
+ if(ARES_ACCESS_BASIC)
return "Authorized"
- if(ARES_ACCESS_COMMAND)//1
+ if(ARES_ACCESS_COMMAND)
return "[MAIN_SHIP_NAME] Command"
- if(ARES_ACCESS_JOE)//2
+ if(ARES_ACCESS_JOE)
return "Working Joe"
- if(ARES_ACCESS_CORPORATE)//3
+ if(ARES_ACCESS_CORPORATE)
return "Weyland-Yutani"
- if(ARES_ACCESS_SENIOR)//4
+ if(ARES_ACCESS_SENIOR)
return "[MAIN_SHIP_NAME] Senior Command"
- if(ARES_ACCESS_CE)//5
+ if(ARES_ACCESS_CE)
return "Chief Engineer"
- if(ARES_ACCESS_SYNTH)//6
+ if(ARES_ACCESS_SYNTH)
return "USCM Synthetic"
- if(ARES_ACCESS_CO)//7
+ if(ARES_ACCESS_CO)
return "[MAIN_SHIP_NAME] Commanding Officer"
- if(ARES_ACCESS_HIGH)//8
+ if(ARES_ACCESS_HIGH)
return "USCM High Command"
- if(ARES_ACCESS_WY_COMMAND)//9
+ if(ARES_ACCESS_WY_COMMAND)
return "Weyland-Yutani Directorate"
- if(ARES_ACCESS_DEBUG)//10
+ if(ARES_ACCESS_DEBUG)
return "AI Service Technician"
-/obj/structure/machinery/computer/ares_console/proc/message_ares(text, mob/Sender, ref)
- var/msg = SPAN_STAFF_IC("ARES: [key_name(Sender, 1)] [ARES_MARK(Sender)] [ADMIN_PP(Sender)] [ADMIN_VV(Sender)] [ADMIN_SM(Sender)] [ADMIN_JMP_USER(Sender)] [ARES_REPLY(Sender, ref)]: [text]")
+/obj/structure/machinery/computer/ares_console/proc/message_ares(text, mob/Sender, ref, fake = FALSE)
var/datum/ares_record/talk_log/conversation = locate(ref)
+ if(!istype(conversation))
+ return
+ var/msg = SPAN_STAFF_IC("ARES: [key_name(Sender, 1)] [ARES_MARK(Sender)] [ADMIN_PP(Sender)] [ADMIN_VV(Sender)] [ADMIN_SM(Sender)] [ADMIN_JMP_USER(Sender)] [ARES_REPLY(Sender, ref)]: [text]")
conversation.conversation += "[last_login] at [worldtime2text()], '[text]'"
+ if(fake)
+ log_say("[key_name(Sender)] faked the message '[text]' from [last_login] in ARES 1:1.")
+ msg = SPAN_STAFF_IC("ARES: [key_name(Sender, 1)] faked a message from '[last_login]': [text]")
+ else
+ log_say("[key_name(Sender)] sent '[text]' to ARES 1:1.")
+ for(var/client/admin in GLOB.admins)
+ if(admin.prefs.toggles_sound & SOUND_ARES_MESSAGE)
+ playsound_client(admin, 'sound/machines/chime.ogg', vol = 25)
+
for(var/client/admin in GLOB.admins)
if((R_ADMIN|R_MOD) & admin.admin_holder.rights)
to_chat(admin, msg)
- if(admin.prefs.toggles_sound & SOUND_ARES_MESSAGE)
- playsound_client(admin, 'sound/machines/chime.ogg', vol = 25)
- log_say("[key_name(Sender)] sent '[text]' to ARES 1:1.")
+ var/admin_user = GLOB.ares_link.admin_interface.logged_in
+ if(admin_user && !fake)
+ to_chat(admin, SPAN_STAFF_IC("ADMINS/MODS: [SPAN_RED("[admin_user] is logged in to ARES Remote Interface! They may be replying to this message!")] "))
/obj/structure/machinery/computer/ares_console/proc/response_from_ares(text, ref)
var/datum/ares_record/talk_log/conversation = locate(ref)
+ if(!istype(conversation))
+ return
conversation.conversation += "[MAIN_AI_SYSTEM] at [worldtime2text()], '[text]'"
// ------ End ARES Interface Procs ------ //
diff --git a/code/game/machinery/ARES/ARES_records.dm b/code/game/machinery/ARES/ARES_records.dm
index f89b2c120e05..e8dc11fa3995 100644
--- a/code/game/machinery/ARES/ARES_records.dm
+++ b/code/game/machinery/ARES/ARES_records.dm
@@ -45,7 +45,7 @@
/datum/ares_record/flight/New(details, user)
time = worldtime2text()
- src.title = "Flight Log"
+ title = "Flight Log"
src.details = details
src.user = user
diff --git a/code/game/machinery/ARES/apollo_pda.dm b/code/game/machinery/ARES/apollo_pda.dm
index 8df3faf79260..69e774cf0da3 100644
--- a/code/game/machinery/ARES/apollo_pda.dm
+++ b/code/game/machinery/ARES/apollo_pda.dm
@@ -19,6 +19,9 @@
/// The last person to login.
var/last_login
+ /// Notification sound
+ var/notify_sounds = TRUE
+
/obj/item/device/working_joe_pda/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override)
if(link && !override)
@@ -35,6 +38,16 @@
link_systems(override = FALSE)
. = ..()
+/obj/item/device/working_joe_pda/proc/notify()
+ if(notify_sounds)
+ playsound(src, 'sound/machines/pda_ping.ogg', 25, 0)
+
+/obj/item/device/working_joe_pda/proc/send_notifcation()
+ for(var/obj/item/device/working_joe_pda/ticketer as anything in link.ticket_computers)
+ if(ticketer == src)
+ continue
+ ticketer.notify()
+
/obj/item/device/working_joe_pda/proc/delink()
if(link)
link.ticket_computers -= src
@@ -103,6 +116,8 @@
data["apollo_log"] = list()
data["apollo_log"] += datacore.apollo_log
+ data["notify_sounds"] = notify_sounds
+
var/list/logged_maintenance = list()
for(var/datum/ares_ticket/maintenance/maint_ticket as anything in link.tickets_maintenance)
if(!istype(maint_ticket))
@@ -164,12 +179,12 @@
return
var/playsound = TRUE
- var/mob/living/carbon/human/operator = usr
+ var/mob/living/carbon/human/operator = ui.user
switch (action)
if("go_back")
if(!last_menu)
- return to_chat(usr, SPAN_WARNING("Error, no previous page detected."))
+ return to_chat(operator, SPAN_WARNING("Error, no previous page detected."))
var/temp_holder = current_menu
current_menu = last_menu
last_menu = temp_holder
@@ -223,6 +238,9 @@
last_menu = current_menu
current_menu = "maint_claim"
+ if("toggle_sound")
+ notify_sounds = !notify_sounds
+
if("new_report")
var/priority_report = FALSE
var/maint_type = tgui_input_list(operator, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS)
@@ -248,6 +266,8 @@
link.tickets_maintenance += maint_ticket
if(priority_report)
ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.")
+ else
+ send_notifcation()
log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(operator)] as [last_login] with Category '[maint_type]' and Details of '[details]'.")
return TRUE
return FALSE
@@ -260,14 +280,14 @@
var/assigned = ticket.ticket_assignee
if(assigned)
if(assigned == last_login)
- var/prompt = tgui_alert(usr, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No"))
+ var/prompt = tgui_alert(operator, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No"))
if(prompt != "Yes")
return FALSE
/// set ticket back to pending
ticket.ticket_assignee = null
ticket.ticket_status = TICKET_PENDING
return claim
- var/choice = tgui_alert(usr, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No"))
+ var/choice = tgui_alert(operator, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No"))
if(choice != "Yes")
claim = FALSE
if(claim)
@@ -280,12 +300,14 @@
if(!istype(ticket))
return FALSE
if(ticket.ticket_submitter != last_login)
- to_chat(usr, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!"))
+ to_chat(operator, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!"))
return FALSE
- to_chat(usr, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled."))
+ to_chat(operator, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled."))
ticket.ticket_status = TICKET_CANCELLED
if(ticket.ticket_priority)
ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been cancelled.")
+ else
+ send_notifcation()
return TRUE
if("mark_ticket")
@@ -293,9 +315,9 @@
if(!istype(ticket))
return FALSE
if(ticket.ticket_assignee != last_login && ticket.ticket_assignee) //must be claimed by you or unclaimed.)
- to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!"))
+ to_chat(operator, SPAN_WARNING("You cannot update a ticket that is not assigned to you!"))
return FALSE
- var/choice = tgui_alert(usr, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS)
+ var/choice = tgui_alert(operator, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS)
switch(choice)
if(TICKET_COMPLETED)
ticket.ticket_status = TICKET_COMPLETED
@@ -305,7 +327,9 @@
return FALSE
if(ticket.ticket_priority)
ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been [choice] by [last_login].")
- to_chat(usr, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice]."))
+ else
+ send_notifcation()
+ to_chat(operator, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice]."))
return TRUE
if("new_access")
@@ -353,8 +377,6 @@
break
for(var/obj/item/card/id/identification in link.active_ids)
- if(!istype(identification))
- continue
if(identification.registered_gid != access_ticket.user_id_num)
continue
@@ -381,8 +403,6 @@
if(!access_ticket)
return FALSE
for(var/obj/item/card/id/identification in link.waiting_ids)
- if(!istype(identification))
- continue
if(identification.registered_gid != access_ticket.user_id_num)
continue
identification.handle_ares_access(last_login, operator)
@@ -391,8 +411,6 @@
ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was granted access by [last_login].")
return TRUE
for(var/obj/item/card/id/identification in link.active_ids)
- if(!istype(identification))
- continue
if(identification.registered_gid != access_ticket.user_id_num)
continue
identification.handle_ares_access(last_login, operator)
@@ -407,11 +425,18 @@
if(!istype(access_ticket))
return FALSE
if(access_ticket.ticket_assignee != last_login && access_ticket.ticket_assignee) //must be claimed by you or unclaimed.)
- to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!"))
+ to_chat(operator, SPAN_WARNING("You cannot update a ticket that is not assigned to you!"))
return FALSE
access_ticket.ticket_status = TICKET_REJECTED
- to_chat(usr, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected."))
+ to_chat(operator, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected."))
ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was rejected access by [last_login].")
+ for(var/obj/item/card/id/identification in link.waiting_ids)
+ if(identification.registered_gid != access_ticket.user_id_num)
+ continue
+ var/mob/living/carbon/human/id_owner = identification.registered_ref?.resolve()
+ if(id_owner)
+ to_chat(id_owner, SPAN_WARNING("AI visitation access rejected."))
+ playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0)
return TRUE
if(playsound)
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 6ccb0b5b18f7..cf7a0a6bc1a8 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -419,11 +419,16 @@
)
SStgui.update_uis(src)
+ //Print speed based on w_class.
+ var/obj/item/item = making.path
+ var/size = initial(item.w_class)
+ var/print_speed = clamp(size, 2, 5) SECONDS
+
//Fancy autolathe animation.
icon_state = "[base_state]_n"
playsound(src, 'sound/machines/print.ogg', 25)
- sleep(5 SECONDS)
+ sleep(print_speed)
playsound(src, 'sound/machines/print_off.ogg', 25)
icon_state = "[base_state]"
diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm
index e11fc2d4844d..01a40b3638f6 100644
--- a/code/game/machinery/autolathe_datums.dm
+++ b/code/game/machinery/autolathe_datums.dm
@@ -409,7 +409,7 @@
path = /obj/item/reagent_container/blood
/datum/autolathe/recipe/medilathe/bluespace
- name = "bluespace beaker"
+ name = "high-capacity beaker"
path = /obj/item/reagent_container/glass/beaker/bluespace
/datum/autolathe/recipe/medilathe/bonesetter
diff --git a/code/game/machinery/groundmap_geothermal.dm b/code/game/machinery/colony_floodlights.dm
similarity index 50%
rename from code/game/machinery/groundmap_geothermal.dm
rename to code/game/machinery/colony_floodlights.dm
index 087facdbf5ee..eef05df3352e 100644
--- a/code/game/machinery/groundmap_geothermal.dm
+++ b/code/game/machinery/colony_floodlights.dm
@@ -1,206 +1,3 @@
-/obj/structure/machinery/power/geothermal
- name = "\improper G-11 geothermal generator"
- icon = 'icons/obj/structures/machinery/geothermal.dmi'
- icon_state = "weld"
- desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is heavily damaged. Use a blowtorch, wirecutters, then wrench to repair it."
- anchored = TRUE
- density = TRUE
- directwired = 0 //Requires a cable directly underneath
- unslashable = TRUE
- unacidable = TRUE //NOPE.jpg
- var/power_gen_percent = 0 //100,000W at full capacity
- var/power_generation_max = 100000 //Full capacity
- var/powernet_connection_failed = 0 //Logic checking for powernets
- var/buildstate = 1 //What state of building it are we on, 0-3, 1 is "broken", the default
- var/is_on = 0 //Is this damn thing on or what?
- var/fail_rate = 10 //% chance of failure each fail_tick check
- var/fail_check_ticks = 100 //Check for failure every this many ticks
- var/cur_tick = 0 //Tick updater
- power_machine = TRUE
-
-//We don't want to cut/update the power overlays every single proc. Just when it actually changes. This should save on CPU cycles. Efficiency!
-/obj/structure/machinery/power/geothermal/update_icon()
- ..()
- if(!buildstate && is_on)
- desc = "A thermoelectric generator sitting atop a borehole dug deep in the planet's surface. It generates energy by boiling the plasma steam that rises from the well.\nIt is old technology and has a large failure rate, and must be repaired frequently.\nIt is currently on, and beeping randomly amid faint hisses of steam."
- switch(power_gen_percent)
- if(25) icon_state = "on[power_gen_percent]"
- if(50) icon_state = "on[power_gen_percent]"
- if(75) icon_state = "on[power_gen_percent]"
- if(100) icon_state = "on[power_gen_percent]"
-
-
- else if (!buildstate && !is_on)
- icon_state = "off"
- desc = "A thermoelectric generator sitting atop a borehole dug deep in the planet's surface. It generates energy by boiling the plasma steam that rises from the well.\nIt is old technology and has a large failure rate, and must be repaired frequently.\nIt is currently turned off and silent."
- else
- if(buildstate == 1)
- icon_state = "weld"
- desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is heavily damaged. Use a blowtorch, wirecutters, then wrench to repair it."
- else if(buildstate == 2)
- icon_state = "wire"
- desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is damaged. Use a wirecutters, then wrench to repair it."
- else
- icon_state = "wrench"
- desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is lightly damaged. Use a wrench to repair it."
-
-/obj/structure/machinery/power/geothermal/Initialize(mapload, ...)
- . = ..()
- if(!connect_to_network()) //Should start with a cable piece underneath, if it doesn't, something's messed up in mapping
- powernet_connection_failed = 1
-
-/obj/structure/machinery/power/geothermal/power_change()
- return
-
-/obj/structure/machinery/power/geothermal/process()
- if(!is_on || buildstate || !anchored) //Default logic checking
- return 0
-
- if(!powernet && !powernet_connection_failed) //Powernet checking, make sure there's valid cables & powernets
- if(!connect_to_network())
- powernet_connection_failed = 1 //God damn it, where'd our network go
- is_on = 0
- stop_processing()
- // Error! Check again in 15 seconds. Someone could have blown/acided or snipped a cable
- addtimer(VARSET_CALLBACK(src, powernet_connection_failed, FALSE), 15 SECONDS)
- else if(powernet) //All good! Let's fire it up!
- if(!check_failure()) //Wait! Check to see if it breaks during processing
- update_icon()
- if(power_gen_percent < 100) power_gen_percent++
- switch(power_gen_percent)
- if(10) visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to whirr as it powers up.")]")
- if(50) visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to hum loudly as it reaches half capacity.")]")
- if(99) visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] rumbles loudly as the combustion and thermal chambers reach full strength.")]")
- add_avail(power_generation_max * (power_gen_percent / 100) ) //Nope, all good, just add the power
-
-/obj/structure/machinery/power/geothermal/proc/check_failure()
- cur_tick++
- if(cur_tick < fail_check_ticks) //Nope, not time for it yet
- return 0
- else if(cur_tick > fail_check_ticks) //Went past with no fail, reset the timer
- cur_tick = 0
- if(rand(1,100) < fail_rate) //Oh snap, we failed! Shut it down!
- if(rand(0,3) == 0)
- visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and a fuse blows! Use wirecutters, then a wrench to repair it.")]")
- buildstate = 2
- icon_state = "wire"
- else
- visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and sprays random pieces everywhere! Use a wrench to repair it.")]")
- buildstate = 3
- icon_state = "wrench"
- is_on = 0
- power_gen_percent = 0
- update_icon()
- cur_tick = 0
- stop_processing()
- return 1
- return 0 //Nope, all fine
-
-/obj/structure/machinery/power/geothermal/attack_hand(mob/user as mob)
- if(!anchored) return 0 //Shouldn't actually be possible
- if(user.is_mob_incapacitated()) return 0
- if(!ishuman(user))
- to_chat(user, SPAN_DANGER("You have no idea how to use that.")) //No xenos or mankeys
- return 0
-
- add_fingerprint(user)
-
- if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
- to_chat(user, SPAN_WARNING("You have no clue how this thing works..."))
- return 0
-
- if(buildstate == 1)
- to_chat(usr, SPAN_INFO("Use a blowtorch, then wirecutters, then wrench to repair it."))
- return 0
- else if (buildstate == 2)
- to_chat(usr, SPAN_INFO("Use a wirecutters, then wrench to repair it."))
- return 0
- else if (buildstate == 3)
- to_chat(usr, SPAN_INFO("Use a wrench to repair it."))
- return 0
- if(is_on)
- visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps softly and the humming stops as [usr] shuts off the turbines.")]")
- is_on = 0
- power_gen_percent = 0
- cur_tick = 0
- icon_state = "off"
- stop_processing()
- return 1
- visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps loudly as [usr] turns on the turbines and the generator begins spinning up.")]")
- icon_state = "on10"
- is_on = 1
- cur_tick = 0
- start_processing()
- return 1
-
-/obj/structure/machinery/power/geothermal/attackby(obj/item/O as obj, mob/user as mob)
- if(iswelder(O))
- if(!HAS_TRAIT(O, TRAIT_TOOL_BLOWTORCH))
- to_chat(user, SPAN_WARNING("You need a stronger blowtorch!"))
- return
- if(buildstate == 1 && !is_on)
- if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
- to_chat(user, SPAN_WARNING("You have no clue how to repair this thing."))
- return 0
- var/obj/item/tool/weldingtool/WT = O
- if(WT.remove_fuel(1, user))
-
- playsound(loc, 'sound/items/weldingtool_weld.ogg', 25)
- user.visible_message(SPAN_NOTICE("[user] starts welding [src]'s internal damage."),
- SPAN_NOTICE("You start welding [src]'s internal damage."))
- if(do_after(user, 200 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
- if(buildstate != 1 || is_on || !WT.isOn())
- return FALSE
- playsound(loc, 'sound/items/Welder2.ogg', 25, 1)
- buildstate = 2
- user.visible_message(SPAN_NOTICE("[user] welds [src]'s internal damage."),
- SPAN_NOTICE("You weld [src]'s internal damage."))
- update_icon()
- return TRUE
- else
- to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task."))
- return
- else if(HAS_TRAIT(O, TRAIT_TOOL_WIRECUTTERS))
- if(buildstate == 2 && !is_on)
- if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
- to_chat(user, SPAN_WARNING("You have no clue how to repair this thing."))
- return 0
- playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1)
- user.visible_message(SPAN_NOTICE("[user] starts securing [src]'s wiring."),
- SPAN_NOTICE("You start securing [src]'s wiring."))
- if(do_after(user, 120 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, numticks = 12))
- if(buildstate != 2 || is_on)
- return FALSE
- playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1)
- buildstate = 3
- user.visible_message(SPAN_NOTICE("[user] secures [src]'s wiring."),
- SPAN_NOTICE("You secure [src]'s wiring."))
- update_icon()
- return TRUE
- else if(HAS_TRAIT(O, TRAIT_TOOL_WRENCH))
- if(buildstate == 3 && !is_on)
- if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
- to_chat(user, SPAN_WARNING("You have no clue how to repair this thing."))
- return 0
- playsound(loc, 'sound/items/Ratchet.ogg', 25, 1)
- user.visible_message(SPAN_NOTICE("[user] starts repairing [src]'s tubing and plating."),
- SPAN_NOTICE("You start repairing [src]'s tubing and plating."))
- if(do_after(user, 150 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
- if(buildstate != 3 || is_on)
- return FALSE
- playsound(loc, 'sound/items/Ratchet.ogg', 25, 1)
- buildstate = 0
- user.count_niche_stat(STATISTICS_NICHE_REPAIR_GENERATOR)
- user.visible_message(SPAN_NOTICE("[user] repairs [src]'s tubing and plating."),
- SPAN_NOTICE("You repair [src]'s tubing and plating."))
- update_icon()
- return TRUE
- else
- return ..() //Deal with everything else, like hitting with stuff
-
-/obj/structure/machinery/power/geothermal/ex_act(severity, direction)
- return FALSE //gameplay-wise these should really never go away
-
//Putting these here since it's power-related
/obj/structure/machinery/colony_floodlight_switch
name = "Colony Floodlight Switch"
diff --git a/code/game/machinery/computer/groundside_operations.dm b/code/game/machinery/computer/groundside_operations.dm
index 95ea46177ca2..52ff558cde89 100644
--- a/code/game/machinery/computer/groundside_operations.dm
+++ b/code/game/machinery/computer/groundside_operations.dm
@@ -1,3 +1,5 @@
+#define COMMAND_SQUAD "Command"
+
/obj/structure/machinery/computer/groundside_operations
name = "groundside operations console"
desc = "This can be used for various important functions."
@@ -19,6 +21,7 @@
var/lz_selection = TRUE
var/has_squad_overwatch = TRUE
var/faction = FACTION_MARINE
+ var/show_command_squad = FALSE
/obj/structure/machinery/computer/groundside_operations/Initialize()
if(SSticker.mode && MODE_HAS_FLAG(MODE_FACTION_CLASH))
@@ -69,8 +72,11 @@
dat += "
"
if(has_squad_overwatch)
- dat += "Current Squad: [!isnull(current_squad) ? "[current_squad.name]" : "----------"] "
- if(current_squad)
+ if(show_command_squad)
+ dat += "Current Squad: Command "
+ else
+ dat += "Current Squad: [!isnull(current_squad) ? "[current_squad.name]" : "----------"] "
+ if(current_squad || show_command_squad)
dat += get_overwatch_info()
dat += "Close "
@@ -104,98 +110,94 @@
"}
- if(!current_squad)
- dat += "No Squad selected! "
+ if(show_command_squad)
+ dat += format_list_of_marines(list(GLOB.marine_leaders[JOB_CO], GLOB.marine_leaders[JOB_XO]) + GLOB.marine_leaders[JOB_SO], list(JOB_CO, JOB_XO, JOB_SO))
+ else if(current_squad)
+ dat += format_list_of_marines(current_squad.marines_list, list(JOB_SQUAD_LEADER, JOB_SQUAD_SPECIALIST, JOB_SQUAD_MEDIC, JOB_SQUAD_ENGI, JOB_SQUAD_SMARTGUN, JOB_SQUAD_MARINE))
else
- var/leader_text = ""
- var/tl_text = ""
- var/spec_text = ""
- var/medic_text = ""
- var/engi_text = ""
- var/smart_text = ""
- var/marine_text = ""
- var/misc_text = ""
- var/living_count = 0
- var/almayer_count = 0
- var/SSD_count = 0
- var/helmetless_count = 0
-
- for(var/X in current_squad.marines_list)
- if(!X)
- continue //just to be safe
- var/mob_name = "unknown"
- var/mob_state = ""
- var/role = "unknown"
- var/act_sl = ""
- var/area_name = "??? "
- var/mob/living/carbon/human/H
- if(ishuman(X))
- H = X
- mob_name = H.real_name
- var/area/A = get_area(H)
- var/turf/M_turf = get_turf(H)
- if(A)
- area_name = sanitize_area(A.name)
-
- if(H.job)
- role = H.job
- else if(istype(H.wear_id, /obj/item/card/id)) //decapitated marine is mindless,
- var/obj/item/card/id/ID = H.wear_id //we use their ID to get their role.
- if(ID.rank)
- role = ID.rank
-
- switch(H.stat)
- if(CONSCIOUS)
- mob_state = "Conscious"
- living_count++
- if(UNCONSCIOUS)
- mob_state = "Unconscious "
- living_count++
- else
- continue
-
- if(!is_ground_level(M_turf.z))
- almayer_count++
- continue
+ dat += "No Squad selected! "
+ dat += " "
+ dat += "Refresh "
+ return dat
- if(!istype(H.head, /obj/item/clothing/head/helmet/marine))
- helmetless_count++
+/obj/structure/machinery/computer/groundside_operations/proc/format_list_of_marines(list/mob/living/carbon/human/marine_list, list/jobs_in_order)
+ var/dat = ""
+ var/list/job_order = list()
+
+ for(var/job in jobs_in_order)
+ job_order[job] = ""
+
+ var/misc_text = ""
+
+ var/living_count = 0
+ var/almayer_count = 0
+ var/SSD_count = 0
+ var/helmetless_count = 0
+ var/total_count = 0
+
+ for(var/X in marine_list)
+ if(!X)
+ continue //just to be safe
+ total_count++
+ var/mob_name = "unknown"
+ var/mob_state = ""
+ var/role = "unknown"
+ var/area_name = "??? "
+ var/mob/living/carbon/human/H
+ var/act_sl = ""
+ if(ishuman(X))
+ H = X
+ mob_name = H.real_name
+ var/area/A = get_area(H)
+ var/turf/M_turf = get_turf(H)
+ if(A)
+ area_name = sanitize_area(A.name)
+
+ if(H.job)
+ role = H.job
+ else if(istype(H.wear_id, /obj/item/card/id)) //decapitated marine is mindless,
+ var/obj/item/card/id/ID = H.wear_id //we use their ID to get their role.
+ if(ID.rank)
+ role = ID.rank
+
+ switch(H.stat)
+ if(CONSCIOUS)
+ mob_state = "Conscious"
+ living_count++
+ if(UNCONSCIOUS)
+ mob_state = "Unconscious "
+ living_count++
+ else
continue
- if(!H.key || !H.client)
- SSD_count++
- continue
- if(H == current_squad.squad_leader && role != JOB_SQUAD_LEADER)
- act_sl = "(ASL)"
-
- var/marine_infos = "[mob_name] [role][act_sl] [mob_state] [area_name] "
- switch(role)
- if(JOB_SQUAD_LEADER)
- leader_text += marine_infos
- if(JOB_SQUAD_TEAM_LEADER)
- tl_text += marine_infos
- if(JOB_SQUAD_SPECIALIST)
- spec_text += marine_infos
- if(JOB_SQUAD_MEDIC)
- medic_text += marine_infos
- if(JOB_SQUAD_ENGI)
- engi_text += marine_infos
- if(JOB_SQUAD_SMARTGUN)
- smart_text += marine_infos
- if(JOB_SQUAD_MARINE)
- marine_text += marine_infos
- else
- misc_text += marine_infos
-
- dat += "Total: [current_squad.marines_list.len] Deployed "
- dat += "Marines detected: [living_count] ([helmetless_count] no helmet, [SSD_count] SSD, [almayer_count] on Almayer) "
- dat += "Search: "
- dat += ""
- dat += "Name Role State Location "
- dat += leader_text + tl_text + spec_text + medic_text + engi_text + smart_text + marine_text + misc_text
- dat += "
"
- dat += " "
- dat += "Refresh "
+ if(!is_ground_level(M_turf.z))
+ almayer_count++
+ continue
+
+ if(!istype(H.head, /obj/item/clothing/head/helmet/marine))
+ helmetless_count++
+ continue
+
+ if(!H.key || !H.client)
+ SSD_count++
+ continue
+ if(current_squad)
+ if(H == current_squad.squad_leader && role != JOB_SQUAD_LEADER)
+ act_sl = " (ASL)"
+ var/marine_infos = "[mob_name] [role][act_sl] [mob_state] [area_name] "
+ if(role in job_order)
+ job_order[role] += marine_infos
+ else
+ misc_text += marine_infos
+ dat += "Total: [total_count] Deployed "
+ dat += "Marines detected: [living_count] ([helmetless_count] no helmet, [SSD_count] SSD, [almayer_count] on Almayer) "
+ dat += "Search: "
+ dat += ""
+ dat += "Name Role State Location "
+ for(var/job in job_order)
+ dat += job_order[job]
+ dat += misc_text
+ dat += "
"
return dat
/obj/structure/machinery/computer/groundside_operations/Topic(href, href_list)
@@ -272,23 +274,31 @@
for(var/datum/squad/S in GLOB.RoleAuthority.squads)
if(S.active && S.faction == faction)
squad_list += S.name
+ squad_list += COMMAND_SQUAD
var/name_sel = tgui_input_list(usr, "Which squad would you like to look at?", "Pick Squad", squad_list)
if(!name_sel)
return
- var/datum/squad/selected = get_squad_by_name(name_sel)
- if(selected)
- current_squad = selected
+ if(name_sel == COMMAND_SQUAD)
+ show_command_squad = TRUE
+ current_squad = null
+
else
- to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Invalid input. Aborting.")]")
+ show_command_squad = FALSE
+
+ var/datum/squad/selected = get_squad_by_name(name_sel)
+ if(selected)
+ current_squad = selected
+ else
+ to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Invalid input. Aborting.")]")
if("use_cam")
if(isRemoteControlling(usr))
to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Unable to override console camera viewer. Track with camera instead. ")]")
return
- if(current_squad)
+ if(current_squad || show_command_squad)
var/mob/cam_target = locate(href_list["cam_target"])
var/obj/structure/machinery/camera/new_cam = get_camera_from_target(cam_target)
if(!new_cam || !new_cam.can_use())
@@ -379,3 +389,5 @@
lz_selection = FALSE
has_squad_overwatch = FALSE
minimap_type = MINIMAP_FLAG_PMC
+
+#undef COMMAND_SQUAD
diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm
index 545d4c35bb5a..3f5e78dfc39f 100644
--- a/code/game/machinery/door_control.dm
+++ b/code/game/machinery/door_control.dm
@@ -176,9 +176,9 @@
flick(initial(icon_state) + "-denied",src)
return
- // safety first
- if(!is_mainship_level(SSshuttle.vehicle_elevator.z))
- flick(initial(icon_state) + "-denied",src)
+ // If someone's trying to lower the railings but the elevator isn't in the vehicle bay.
+ if(!desiredstate && !is_mainship_level(SSshuttle.vehicle_elevator.z))
+ flick(initial(icon_state) + "-denied", src) // Safety first!
return
use_power(5)
diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm
index 57e27cc60d91..b656250dabeb 100644
--- a/code/game/machinery/doors/airlock_control.dm
+++ b/code/game/machinery/doors/airlock_control.dm
@@ -123,14 +123,16 @@
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK)
-/obj/structure/machinery/door/airlock/open(surpress_send)
+/obj/structure/machinery/door/airlock/open(forced)
. = ..()
- if(!surpress_send) send_status()
+ if(!forced)
+ send_status()
-/obj/structure/machinery/door/airlock/close(surpress_send)
+/obj/structure/machinery/door/airlock/close(forced)
. = ..()
- if(!surpress_send) send_status()
+ if(!forced)
+ send_status()
/obj/structure/machinery/door/airlock/proc/set_frequency(new_frequency)
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 021cb60769f9..27bb58397956 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -214,7 +214,7 @@
flick("door_deny", src)
return
-/obj/structure/machinery/door/proc/open(forced=0)
+/obj/structure/machinery/door/proc/open(forced)
if(!density)
return TRUE
if(operating || !loc)
diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm
index 0a179af27803..0de099801b49 100644
--- a/code/game/machinery/doors/multi_tile.dm
+++ b/code/game/machinery/doors/multi_tile.dm
@@ -241,10 +241,43 @@
no_panel = 1
not_weldable = 1
var/queen_pryable = TRUE
+ var/obj/docking_port/mobile/marine_dropship/linked_dropship
+
/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/ex_act(severity)
return
+/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/attackby(obj/item/item, mob/user)
+ if(HAS_TRAIT(item, TRAIT_TOOL_MULTITOOL))
+ var/direction
+ switch(id)
+ if("starboard_door")
+ direction = "starboard"
+ if("port_door")
+ direction = "port"
+ if("aft_door")
+ direction = "aft"
+ if(!linked_dropship || !linked_dropship.door_control.door_controllers[direction])
+ return ..()
+ var/datum/door_controller/single/control = linked_dropship.door_control.door_controllers[direction]
+ if (control.status != SHUTTLE_DOOR_BROKEN)
+ return ..()
+ if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
+ to_chat(user, SPAN_WARNING("You don't seem to understand how to restore a remote connection to [src]."))
+ return
+ if(user.action_busy)
+ return
+
+ to_chat(user, SPAN_WARNING("You begin to restore the remote connection to [src]."))
+ if(!do_after(user, 5 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD))
+ to_chat(user, SPAN_WARNING("You fail to restore a remote connection to [src]."))
+ return
+ unlock(TRUE)
+ close(FALSE)
+ control.status = SHUTTLE_DOOR_UNLOCKED
+ to_chat(user, SPAN_WARNING("You successfully restored the remote connection to [src]."))
+ return
+ ..()
/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/unlock()
if(is_reserved_level(z))
@@ -258,13 +291,31 @@
if(!queen_pryable)
return ..()
- if(!locked)
- return ..()
-
- to_chat(xeno, SPAN_NOTICE("You try and force the doors open"))
+ if(xeno.action_busy)
+ return
+
+ var/direction
+ switch(id)
+ if("starboard_door")
+ direction = "starboard"
+ if("port_door")
+ direction = "port"
+ if("aft_door")
+ direction = "aft"
+ var/datum/door_controller/single/control
+ if(linked_dropship && linked_dropship.door_control.door_controllers[direction])
+ control = linked_dropship.door_control.door_controllers[direction]
+
+ if(control && control.status == SHUTTLE_DOOR_BROKEN)
+ to_chat(xeno, SPAN_NOTICE("The door is already disabled."))
+ return
+
+ to_chat(xeno, SPAN_WARNING("You try and force the doors open!"))
if(do_after(xeno, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE))
+ if(control)
+ control.status = SHUTTLE_DOOR_BROKEN
unlock(TRUE)
- open(1)
+ open(TRUE)
lock(TRUE)
/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/ds1
@@ -336,7 +387,7 @@
continue
INVOKE_ASYNC(atom_movable, TYPE_PROC_REF(/atom/movable, throw_atom), projected, 1, SPEED_FAST, null, FALSE)
-/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override)
+/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock)
. = ..()
if(istype(port, /obj/docking_port/mobile/crashable/lifeboat))
var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = port
@@ -569,4 +620,3 @@
icon = 'icons/obj/structures/doors/2x1almayerdoor_glass.dmi'
opacity = FALSE
glass = TRUE
-
diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm
index 0a3b873ce385..df6be1a44b14 100644
--- a/code/game/machinery/doors/poddoor.dm
+++ b/code/game/machinery/doors/poddoor.dm
@@ -283,22 +283,44 @@
/obj/structure/machinery/door/airlock,
)
+/obj/structure/machinery/door/poddoor/almayer/Initialize()
+ . = ..()
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/structure/machinery/door/poddoor/almayer/LateInitialize()
+ . = ..()
+ relativewall_neighbours()
+
/obj/structure/machinery/door/poddoor/almayer/open
density = FALSE
+
/obj/structure/machinery/door/poddoor/almayer/blended
icon_state = "almayer_pdoor1"
base_icon_state = "almayer_pdoor"
+
/obj/structure/machinery/door/poddoor/almayer/blended/open
density = FALSE
+
/obj/structure/machinery/door/poddoor/almayer/blended/white
icon_state = "w_almayer_pdoor1"
base_icon_state = "w_almayer_pdoor"
+
/obj/structure/machinery/door/poddoor/almayer/blended/white/open
density = FALSE
-/obj/structure/machinery/door/poddoor/almayer/Initialize()
- . = ..()
- addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, relativewall_neighbours)), 10)
+/obj/structure/machinery/door/poddoor/almayer/blended/aicore
+ icon_state = "aidoor1"
+ base_icon_state = "aidoor"
+
+/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open
+ density = FALSE
+
+/obj/structure/machinery/door/poddoor/almayer/blended/white_aicore
+ icon_state = "w_aidoor1"
+ base_icon_state = "w_aidoor"
+
+/obj/structure/machinery/door/poddoor/almayer/blended/white_aicore/open
+ density = FALSE
/obj/structure/machinery/door/poddoor/almayer/locked
unslashable = TRUE
diff --git a/code/game/machinery/fax_machine.dm b/code/game/machinery/fax_machine.dm
index 53b8736f75f3..b3c981a0cf71 100644
--- a/code/game/machinery/fax_machine.dm
+++ b/code/game/machinery/fax_machine.dm
@@ -87,7 +87,7 @@ GLOBAL_LIST_EMPTY(alldepartments)
else
to_chat(user, SPAN_NOTICE("\The [src] jammed! It can only accept up to five papers at once."))
playsound(src, "sound/machines/terminal_insert_disc.ogg", 50, TRUE)
- flick("faxsend", src)
+ flick("[initial(icon_state)]send", src)
updateUsrDialog()
return
@@ -245,7 +245,7 @@ GLOBAL_LIST_EMPTY(alldepartments)
else
to_chat(ui.user, SPAN_NOTICE("\The [src] jammed! It can only accept up to five papers at once."))
playsound(src, "sound/machines/terminal_insert_disc.ogg", 50, TRUE)
- flick("faxsend", src)
+ flick("[initial(icon_state)]send", src)
. = TRUE
if("ejectid")
@@ -408,10 +408,10 @@ GLOBAL_LIST_EMPTY(alldepartments)
return
if(! (F.inoperable() ) )
- flick("faxreceive", F)
+ flick("[initial(icon_state)]receive", F)
// give the sprite some time to flick
- spawn(20)
+ spawn(30)
var/obj/item/paper/P = new(F.loc,faxcontents.photo_list)
P.name = "faxed message"
P.info = "[faxcontents.data]"
@@ -515,6 +515,85 @@ GLOBAL_LIST_EMPTY(alldepartments)
target_department = "Brig"
network = "USCM High Command Quantum Relay"
+
+///The deployed fax machine backpack
+/obj/structure/machinery/faxmachine/backpack
+ name = "\improper Portable Press Fax Machine"
+ desc = "A standard issue portable fax machine for civilian reporters. Functions off of an internal battery. Cannot receive faxes while being worn. It is currently deployed. Click-drag the device towards you to pick it up."
+ icon_state = "fax_backpack"
+ needs_power = FALSE
+ use_power = USE_POWER_NONE
+ health = 150
+
+///The wearable and deployable part of the fax machine backpack
+/obj/item/device/fax_backpack
+ name = "\improper Portable Press Fax Machine"
+ desc = "A standard issue portable fax machine for civilian reporters. Functions off of an internal battery. Cannot receive faxes while being worn. It is currently undeployed. Activate the device inhand to deploy it."
+ icon = 'icons/obj/structures/machinery/library.dmi'
+ icon_state = "fax_backpack"
+ item_state = "fax_backpack"
+ w_class = SIZE_HUGE
+ flags_equip_slot = SLOT_BACK
+ flags_item = ITEM_OVERRIDE_NORTHFACE
+
+/obj/item/device/fax_backpack/attack_self(mob/user) //activate item version fax inhand to deploy
+ if(!ishuman(user))
+ return
+ var/turf/deployturf = get_turf(user)
+ if(istype(deployturf, /turf/open))
+ var/turf/open/floor = deployturf
+ if(!floor.allow_construction)
+ to_chat(user, SPAN_WARNING("You cannot deploy [src] here, find a more secure surface!"))
+ return FALSE
+ var/fail = FALSE
+ if(deployturf.density)
+ fail = TRUE
+ else
+ var/static/list/blocking_types = typecacheof(list(
+ /obj/structure/machinery/defenses,
+ /obj/structure/window,
+ /obj/structure/windoor_assembly,
+ /obj/structure/machinery/door,
+ ))
+ for(var/obj/blockingobj in deployturf.contents)
+ if(blockingobj.density && !(blockingobj.flags_atom & ON_BORDER))
+ fail = TRUE
+ break
+ if(is_type_in_typecache(blockingobj, blocking_types))
+ fail = TRUE
+ break
+ if(fail)
+ to_chat(user, SPAN_WARNING("You can't deploy [src] here, something is in the way."))
+ return
+ to_chat(user, SPAN_NOTICE("You begin to deploy [src]..."))
+ if(do_after(user, 4.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
+ to_chat(user, SPAN_NOTICE("You deploy [src]."))
+ var/obj/structure/machinery/faxmachine/backpack/deployedfax = new(deployturf)
+ transfer_label_component(deployedfax)
+ playsound(src.loc, 'sound/machines/print.ogg', 40, 1)
+ qdel(src)
+ return
+ return ..()
+
+/obj/structure/machinery/faxmachine/backpack/MouseDrop(over_object, src_location, over_location) //Drag the deployed fax onto you to pick it up.
+ if(!ishuman(usr))
+ return
+ var/mob/living/carbon/human/user = usr
+ if(over_object == user && in_range(src, user))
+ if(original_fax || scan)
+ to_chat(user, SPAN_NOTICE("There is still something in [src]. Remove it before you pick it up."))
+ return
+ to_chat(user, SPAN_NOTICE("You begin to pick up [src]..."))
+ if(do_after(user, 4.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
+ playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1)
+ to_chat(user, SPAN_NOTICE("You pick up [src]."))
+ var/obj/item/device/fax_backpack/faxbag = new(loc)
+ transfer_label_component(faxbag)
+ user.put_in_hands(faxbag)
+ qdel(src)
+ return
+ return ..()
+
/datum/fax
var/data
var/list/photo_list
diff --git a/code/game/machinery/fuelcell_recycler.dm b/code/game/machinery/fuelcell_recycler.dm
index 697d7385a012..52c01beaf6fe 100644
--- a/code/game/machinery/fuelcell_recycler.dm
+++ b/code/game/machinery/fuelcell_recycler.dm
@@ -1,144 +1,220 @@
/obj/structure/machinery/fuelcell_recycler
- name = "fuel cell recycler"
+ name = "\improper fuel cell recycler"
desc = "A large machine with whirring fans and two cylindrical holes in the top. Used to regenerate fuel cells."
icon = 'icons/obj/structures/machinery/fusion_eng.dmi'
icon_state = "recycler"
- anchored = TRUE
density = TRUE
- idle_power_usage = 5
active_power_usage = 15000
- bound_height = 32
- bound_width = 32
- var/obj/item/fuelCell/cell_left = null
- var/obj/item/fuelCell/cell_right = null
unslashable = TRUE
unacidable = TRUE
+ indestructible = TRUE
-/obj/structure/machinery/fuelcell_recycler/attackby(obj/item/I, mob/user)
- if(istype(I, /obj/item/fuelCell))
- if(!cell_left)
- if(user.drop_inv_item_to_loc(I, src))
- cell_left = I
- start_processing()
- else if(!cell_right)
- if(user.drop_inv_item_to_loc(I, src))
- cell_right = I
- start_processing()
- else
- to_chat(user, SPAN_NOTICE("The recycler is full!"))
- return
- update_icon()
- else
- to_chat(user, SPAN_NOTICE("You can't see how you'd use [I] with [src]..."))
+ ///How much to recharge the cells per process
+ var/recharge_amount = 5
+ ///A fuel cell in the recycler
+ var/obj/item/fuel_cell/cell_left
+ ///A fuel cell in the recycler
+ var/obj/item/fuel_cell/cell_right
+
+/obj/structure/machinery/fuelcell_recycler/Destroy()
+ . = ..()
+ QDEL_NULL(cell_left)
+ QDEL_NULL(cell_right)
+
+/obj/structure/machinery/fuelcell_recycler/get_examine_text(mob/user)
+ . = ..()
+ . += SPAN_INFO("It is [machine_processing ? "online" : "offline"].")
+ if(!ishuman(user))
+ return
+
+ if(cell_left)
+ . += SPAN_INFO("The left cell is at [cell_left.get_fuel_percent()]%.")
+ if(cell_right)
+ . += SPAN_INFO("The right cell is at [cell_right.get_fuel_percent()]%.")
+
+/obj/structure/machinery/fuelcell_recycler/attackby(obj/item/attacking_item, mob/user)
+ if(!istype(attacking_item, /obj/item/fuel_cell))
+ to_chat(user, SPAN_NOTICE("[src] rejects [attacking_item]. It can only regenerate fuel cells."))
+ return
+ var/obj/item/fuel_cell/cell = attacking_item
+
+ if(cell_left && cell_right)
+ to_chat(user, SPAN_NOTICE("[src] cannot regenerate any more fuel cells. Remove [cell_left] or [cell_right] first."))
+ return
+
+ if(cell.get_fuel_percent() == 100)
+ to_chat(user, SPAN_NOTICE("[cell] is already full and does not need to be regenerated."))
return
-/obj/structure/machinery/fuelcell_recycler/attack_hand(mob/M)
- if(cell_left == null && cell_right == null)
- to_chat(M, SPAN_NOTICE("The recycler is empty."))
+ if(!user.drop_inv_item_to_loc(cell, src))
+ to_chat(user, SPAN_WARNING("You fail to insert [cell] into [src]."))
return
- add_fingerprint(M)
+ add_fingerprint(user)
+ var/inserted_to_left = TRUE
+ if(!cell_left)
+ cell_left = cell
+ else if(!cell_right)
+ inserted_to_left = FALSE
+ cell_right = cell
+
+ to_chat(user, SPAN_NOTICE("You insert [cell] into the [inserted_to_left ? "left" : "right"] fuel cell receptacle."))
+ update_icon()
+ if(!machine_processing)
+ visible_message(SPAN_NOTICE("[src] starts whirring as it turns on."))
+ update_use_power(USE_POWER_ACTIVE)
+ start_processing()
+
+/obj/structure/machinery/fuelcell_recycler/attack_hand(mob/user)
+ if(!cell_left && !cell_right)
+ to_chat(user, SPAN_NOTICE("[src] is empty."))
+ return
- if(cell_right == null)
- cell_left.update_icon()
- M.put_in_hands(cell_left)
+ add_fingerprint(user)
+ cell_left?.update_icon()
+ cell_right?.update_icon()
+
+ if(cell_left && cell_right)
+ if(cell_left.get_fuel_percent() >= cell_right.get_fuel_percent())
+ user.put_in_hands(cell_left)
+ cell_left = null
+ else
+ user.put_in_hands(cell_right)
+ cell_right = null
+ update_icon()
+ return
+
+ if(cell_left)
+ user.put_in_hands(cell_left)
cell_left = null
update_icon()
- else if(cell_left == null)
- cell_right.update_icon()
- M.put_in_hands(cell_right)
+ return
+
+ if(cell_right)
+ user.put_in_hands(cell_right)
cell_right = null
update_icon()
- else
- if(cell_left.get_fuel_percent() > cell_right.get_fuel_percent())
- cell_left.update_icon()
- M.put_in_hands(cell_left)
- cell_left = null
- update_icon()
- else
- cell_right.update_icon()
- M.put_in_hands(cell_right)
- cell_right = null
- update_icon()
/obj/structure/machinery/fuelcell_recycler/process()
if(inoperable())
- update_use_power(USE_POWER_NONE)
- update_icon()
+ turn_off()
return
+
if(!cell_left && !cell_right)
- update_use_power(USE_POWER_IDLE)
- update_icon()
- stop_processing()
+ balloon_alert_to_viewers("no cells detected.")
+ turn_off()
return
- else
- var/active = FALSE
- if(cell_left != null)
- if(!cell_left.is_regenerated())
- active = TRUE
- cell_left.give(active_power_usage*(CELLRATE * 0.1))
- if(cell_right != null)
- if(!cell_right.is_regenerated())
- active = TRUE
- cell_right.give(active_power_usage*(CELLRATE * 0.1))
- if(active)
- update_use_power(USE_POWER_ACTIVE)
- else
- update_use_power(USE_POWER_IDLE)
- stop_processing()
- update_icon()
+ if((!cell_right && cell_left?.is_regenerated()) || (!cell_left && cell_right?.is_regenerated()) || (cell_left?.is_regenerated() && cell_right?.is_regenerated()))
+ balloon_alert_to_viewers("all cells charged.")
+ turn_off()
+ return
+
+ if(cell_left && !cell_left.is_regenerated())
+ recharge_cell(cell_left)
+
+ if(cell_right && !cell_right.is_regenerated())
+ recharge_cell(cell_right)
+
+ update_icon()
/obj/structure/machinery/fuelcell_recycler/power_change()
..()
update_icon()
/obj/structure/machinery/fuelcell_recycler/update_icon()
- src.overlays.Cut()
+ overlays.Cut()
+
+ if(cell_left)
+ overlays += "overlay_left_cell"
+ if(cell_right)
+ overlays += "overlay_right_cell"
if(inoperable())
- icon_state = "recycler0"
- if(cell_left != null)
- src.overlays += "recycler-left-cell"
- if(cell_right != null)
- src.overlays += "recycler-right-cell"
- return
- else
icon_state = "recycler"
-
- var/overlay_builder = "recycler-"
- if(cell_left == null && cell_right == null)
return
- if(cell_right == null)
+
+ if(cell_left)
if(cell_left.is_regenerated())
- overlay_builder += "left-charged"
+ overlays += "overlay_left_charged"
else
- overlay_builder += "left-charging"
+ overlays += "overlay_left_charging"
- src.overlays += overlay_builder
- src.overlays += "recycler-left-cell"
- return
- else if(cell_left == null)
+ if(cell_right)
if(cell_right.is_regenerated())
- overlay_builder += "right-charged"
+ overlays += "overlay_right_charged"
else
- overlay_builder += "right-charging"
+ overlays += "overlay_right_charging"
- src.overlays += overlay_builder
- src.overlays += "recycler-right-cell"
+ if(!machine_processing)
+ icon_state = "recycler"
return
- else // both left and right cells are there
- if(cell_left.is_regenerated())
- overlay_builder += "left-charged"
- else
- overlay_builder += "left-charging"
+ icon_state = "recycler_on"
- if(cell_right.is_regenerated())
- overlay_builder += "-right-charged"
- else
- overlay_builder += "-right-charging"
-
- src.overlays += overlay_builder
- src.overlays += "recycler-left-cell"
- src.overlays += "recycler-right-cell"
+/obj/structure/machinery/fuelcell_recycler/ex_act(severity)
+ if(indestructible)
return
+ . = ..()
+
+/obj/structure/machinery/fuelcell_recycler/proc/turn_off()
+ visible_message(SPAN_NOTICE("[src] stops whirring as it turns off."))
+ stop_processing()
+ update_icon()
+ update_use_power(USE_POWER_NONE)
+
+/obj/structure/machinery/fuelcell_recycler/proc/recharge_cell(obj/item/fuel_cell/cell)
+ cell.modify_fuel(recharge_amount)
+ if(!cell.new_cell)
+ cell.new_cell = TRUE
+
+/obj/structure/machinery/fuelcell_recycler/full/Initialize(mapload, ...)
+ . = ..()
+ cell_left = new(src)
+ cell_right = new(src)
+ update_icon()
+
+//reactor full cells
+/obj/item/fuel_cell
+ name = "\improper WL-6 universal fuel cell"
+ icon = 'icons/obj/structures/machinery/shuttle-parts.dmi'
+ icon_state = "cell-full"
+ desc = "A rechargeable fuel cell designed to work as a power source for the Cheyenne-Class transport or for Westingland S-52 Reactors."
+ ///How much fuel is in the reactor
+ var/fuel_amount = 100
+ ///Max amount that the cell can hold
+ var/max_fuel_amount = 100
+ ///If the fuel cell has been used since last recharge
+ var/new_cell = TRUE
+
+/obj/item/fuel_cell/update_icon()
+ switch(get_fuel_percent())
+ if(-INFINITY to 0)
+ icon_state = "cell-empty"
+ if(0 to 25)
+ icon_state = "cell-low"
+ if(25 to 75)
+ icon_state = "cell-medium"
+ if(75 to 99)
+ icon_state = "cell-high"
+ if(100 to INFINITY)
+ icon_state = "cell-full"
+
+/obj/item/fuel_cell/get_examine_text(mob/user)
+ . = ..()
+ if(ishuman(user))
+ . += "The fuel indicator reads: [get_fuel_percent()]%"
+
+///Percentage of fuel left in the cell
+/obj/item/fuel_cell/proc/get_fuel_percent()
+ return round(100 * fuel_amount/max_fuel_amount)
+
+///Whether the fuel cell is full
+/obj/item/fuel_cell/proc/is_regenerated()
+ return (fuel_amount == max_fuel_amount)
+
+/// increase or decrease fuel, making sure it cannot go above the max
+/obj/item/fuel_cell/proc/modify_fuel(amount)
+ fuel_amount = clamp(fuel_amount + amount, 0, max_fuel_amount)
+
+/obj/item/fuel_cell/used
+ new_cell = FALSE
diff --git a/code/game/machinery/fusion_engine.dm b/code/game/machinery/fusion_engine.dm
index 0e5f8142c2be..72f836717b0f 100644
--- a/code/game/machinery/fusion_engine.dm
+++ b/code/game/machinery/fusion_engine.dm
@@ -1,417 +1,463 @@
-//Experimental engine for the Almayer. Should be fancier. I expect I'll eventually make it totally separate from the Geothermal as I don't like the procs... - Apop
+//Reactor damage states
+#define BUILDSTATE_FUNCTIONAL 0
+#define BUILDSTATE_DAMAGE_WRENCH 1
+#define BUILDSTATE_DAMAGE_WIRE 2
+#define BUILDSTATE_DAMAGE_WELD 3
+//How often it checks if the reactor has failed
+#define REACTOR_FAIL_CHECK_TICKS 100
-#define FUSION_ENGINE_MAX_POWER_GEN 50000 //Full capacity
-
-#define FUSION_ENGINE_FAIL_CHECK_TICKS 100 //Check for failure every this many ticks
-
-/obj/structure/machinery/power/fusion_engine
+/obj/structure/machinery/power/reactor
name = "\improper S-52 fusion reactor"
icon = 'icons/obj/structures/machinery/fusion_eng.dmi'
- icon_state = "off-0"
- desc = "A Westingland S-52 Fusion Reactor. Takes fuels cells and converts them to power for the ship. Also produces a large amount of heat."
- directwired = 0 //Requires a cable directly underneath
+ icon_state = "off"
+ desc = "A Westingland S-52 Fusion Reactor."
+ directwired = FALSE //Requires a cable directly underneath
unslashable = TRUE
- unacidable = TRUE //NOPE.jpg
+ unacidable = TRUE
anchored = TRUE
density = TRUE
power_machine = TRUE
-
- var/power_gen_percent = 0 //50,000W at full capacity
- var/buildstate = 0 //What state of building it are we on, 0-3, 1 is "broken", the default
- var/is_on = TRUE //Is this damn thing on or what?
- var/fail_rate = FALSE //% chance of failure each fail_tick check
+ throwpass = FALSE
+
+ ///Whether the reactor is functional
+ var/is_on = TRUE
+ ///Whether the reactor is on the ship
+ var/is_ship_reactor = FALSE
+ ///If the generator is overloaded
+ var/overloaded = FALSE //Only possible during hijack once fuel is at 100%
+
+ ///How damaged the reactor is
+ var/buildstate = BUILDSTATE_FUNCTIONAL
+
+ ///Original fail rate of the reactor
+ var/original_fail_rate = 0
+ ///% chance of the reactor failing every check_failure
+ var/fail_rate = 0
+ ///How often the reactor checks if it can fail
+ var/fail_check_ticks = REACTOR_FAIL_CHECK_TICKS
+ ///How many ticks since last fail check
var/cur_tick = 0 //Tick updater
- var/obj/item/fuelCell/fusion_cell = new //Starts with a fuel cell loaded in. Maybe replace with the plasma tanks in the future and have it consume plasma? Possibly remove this later if it's irrelevent...
- var/fuel_rate = 0 //Rate at which fuel is used. Based mostly on how long the generator has been running.
- /// If the generator is overloaded. Only possible during hijack once fuel is at 100%.
- var/overloaded = FALSE
+ ///% of power produced, increases to 100% over time
+ var/power_gen_percent = 0
+ ///How much the reactor will generate at max power_gen_percent
+ var/power_generation_max = 50000 //50,000W
+ ///All icon states split by power_gen_percent
+ var/list/power_percent_states = list(10, 25, 50, 75, 100) //Easier to add more icon states to one without also adding them to the other
-/obj/structure/machinery/power/fusion_engine/Initialize(mapload, ...)
+ ///Whether the reactor requires a fusion cell
+ var/require_fusion_cell = TRUE
+ ///The reactors fuel cell, fail rate increases if empty
+ var/obj/item/fuel_cell/fusion_cell
+
+/obj/structure/machinery/power/reactor/Initialize(mapload, ...)
. = ..()
- fusion_cell.fuel_amount = 100
+ if(is_mainship_level(z)) //Only ship reactors can overload
+ is_ship_reactor = TRUE
+
+ if(!buildstate && is_ground_level(z)) //Colony reactors start damaged
+ switch(rand(1, 6))
+ if(1 to 3) //50%
+ buildstate = BUILDSTATE_DAMAGE_WELD
+ if(4 to 5) //34%
+ buildstate = BUILDSTATE_DAMAGE_WIRE
+ if(6) //16%
+ buildstate = BUILDSTATE_DAMAGE_WRENCH
+
+ if(require_fusion_cell) //Set up fuel cell if needed
+ fusion_cell = new /obj/item/fuel_cell/used(src)
+ fusion_cell.fuel_amount = fusion_cell.max_fuel_amount
+
+ fail_rate = original_fail_rate
update_icon()
- connect_to_network() //Should start with a cable piece underneath, if it doesn't, something's messed up in mapping
- start_processing()
-/obj/structure/machinery/power/fusion_engine/Destroy()
+ if(is_on)
+ start_processing()
+
+ return INITIALIZE_HINT_ROUNDSTART
+
+/obj/structure/machinery/power/reactor/LateInitialize() //Need to wait for powernets to start existing first
+ . = ..()
+
+ if(QDELETED(src))
+ return
+ if(powernet)
+ return
+
+ if(!connect_to_network()) //Make sure its connected to a powernet
+ CRASH("[src] has failed to connect to a power network. Check that it has been mapped correctly.")
+
+/obj/structure/machinery/power/reactor/Destroy()
QDEL_NULL(fusion_cell)
return ..()
-/obj/structure/machinery/power/fusion_engine/attack_alien(mob/living/carbon/xenomorph/xeno)
- if(!overloaded)
- to_chat(xeno, SPAN_WARNING("You see no reason to attack [src]."))
- return XENO_NO_DELAY_ACTION
+/obj/structure/machinery/power/reactor/get_examine_text(mob/user)
+ . = ..()
- xeno.animation_attack_on(src)
- playsound(src, 'sound/effects/metalhit.ogg', 25, 1)
- xeno.visible_message(SPAN_DANGER("[xeno] [xeno.slashes_verb] [src], stopping its overload process!"), \
- SPAN_DANGER("You [xeno.slash_verb] [src], stopping its overload process!"), null, 5, CHAT_TYPE_XENO_COMBAT)
- set_overloading(FALSE)
- return XENO_ATTACK_ACTION
+ if(!is_on)
+ . += SPAN_INFO("It is offline.")
+
+ if(!ishuman(user))
+ return
+ if(is_on)
+ . += SPAN_INFO("The power gauge reads: [power_gen_percent]%")
+
+ switch(buildstate)
+ if(BUILDSTATE_DAMAGE_WELD)
+ . += SPAN_INFO(SPAN_BOLD("Use a blowtorch to repair it."))
+ if(BUILDSTATE_DAMAGE_WIRE)
+ . += SPAN_INFO(SPAN_BOLD("Use wirecutters to repair it."))
+ if(BUILDSTATE_DAMAGE_WRENCH)
+ . += SPAN_INFO(SPAN_BOLD("Use a wrench to repair it."))
+
+ if(buildstate || require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0))
+ if(is_on)
+ . += SPAN_INFO("The emergency shutdown button is visible.")
+ else
+ . += SPAN_INFO("The emergency start lever is visible.")
+
+ if(!fusion_cell)
+ . += SPAN_INFO("There is no fuel cell in it.")
+ else
+ switch(fusion_cell.get_fuel_percent())
+ if(-INFINITY to 0)
+ . += SPAN_INFO("[fusion_cell] is empty.")
+ if(1 to 9)
+ . += SPAN_INFO("[fusion_cell] is critically low.")
+ if(10 to 24)
+ . += SPAN_INFO("[fusion_cell] is low.")
+ if(25 to 49)
+ . += SPAN_INFO("[fusion_cell] is less than half full.")
+ if(50 to 74)
+ . += SPAN_INFO("[fusion_cell] is over half full.")
+ if(75 to 99)
+ . += SPAN_INFO("[fusion_cell] is nearly full.")
+ if(99 to INFINITY)
+ . += SPAN_INFO("[fusion_cell] is full.")
+
+ if(is_ship_reactor && SShijack.sd_unlocked)
+ if(overloaded)
+ . += SPAN_INFO("It is overloaded.")
+ return
+ if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
+ . += SPAN_INFO("You could overload its safeties with a multitool.")
-/obj/structure/machinery/power/fusion_engine/power_change()
+/obj/structure/machinery/power/reactor/power_change()
. = ..()
if(overloaded)
set_overloading(FALSE)
- visible_message("[icon2html(src, viewers(src))] [src] 's overload suddenly ceases as primary power is lost.")
+ visible_message(SPAN_NOTICE("[src]'s overload suddenly ceases as primary power is lost."))
-/obj/structure/machinery/power/fusion_engine/process()
- if(!is_on || buildstate || !anchored || !powernet || !fusion_cell) //Default logic checking
- if(is_on)
- is_on = FALSE
- power_gen_percent = 0
- update_icon()
- stop_processing()
- return 0
- if (fusion_cell.fuel_amount <= 0)
- visible_message("[icon2html(src, viewers(src))] [src] flashes that the fuel cell is empty as the engine seizes.")
- fuel_rate = 0
- buildstate = 2 //No fuel really fucks it.
- is_on = 0
- power_gen_percent = 0
- fail_rate+=2 //Each time the engine is allowed to seize up it's fail rate for the future increases because reasons.
- update_icon()
- stop_processing()
- return FALSE
+/obj/structure/machinery/power/reactor/process()
+ if(!is_on) //if off, turn off
+ start_functioning(FALSE)
+ return
+
+ if(buildstate)
+ if(require_fusion_cell) //if broken and fuel cell, lose fuel
+ if(fusion_cell && fusion_cell.fuel_amount)
+ fusion_cell.modify_fuel(rand(-5, -20))
+ visible_message(SPAN_DANGER("[src] hisses as fuel starts to pool around it."))
+ else //Otherwise just start to break down faster
+ visible_message(SPAN_DANGER("[src] sparks and seizes."))
+ fail_rate += 2.5
+
+ if(require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0)) //empty fuel
+ if(prob(20))
+ visible_message(SPAN_DANGER("[src] flashes that the fuel cell is [fusion_cell ? "empty" : "missing"] as the engine seizes."))
+ fail_rate += 2.5
if(overloaded && prob(1)) // up to 18 generators at 1% every 3.5 seconds means that every ~21 seconds or so, one generator will make noise assuming all are overloaded
- switch(rand(1, 2))
- if(1)
- visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] loudly hums.")]")
- playsound(src, 'sound/machines/resource_node/node_idle.ogg', 60, TRUE)
- if(2)
- visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] makes a worrying hiss.")]")
- playsound(src, 'sound/machines/hiss.ogg', 60, TRUE)
-
- if(!check_failure())
- if(power_gen_percent < 100)
- power_gen_percent++
-
- switch(power_gen_percent) //Flavor text!
- if(10)
- visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to whirr as it powers up.")]")
- fuel_rate = 0.025
- if(50)
- visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to hum loudly as it reaches half capacity.")]")
- fuel_rate = 0.05
- if(99)
- visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] rumbles loudly as the combustion and thermal chambers reach full strength.")]")
- fuel_rate = 0.1
-
- add_avail(FUSION_ENGINE_MAX_POWER_GEN * (power_gen_percent / 100) ) //Nope, all good, just add the power
+ if(prob(50))
+ visible_message(SPAN_NOTICE("[src] loudly hums."))
+ playsound(src, 'sound/machines/resource_node/node_idle.ogg', 60, TRUE)
+ else
+ visible_message(SPAN_NOTICE("[src] makes a worrying hiss."))
+ playsound(src, 'sound/machines/hiss.ogg', 60, TRUE)
- update_icon()
+ if(power_gen_percent < 100)
+ power_gen_percent = min(power_gen_percent + 1, 100)
+ add_avail(power_generation_max * (power_gen_percent / 100))
+ check_failure(buildstate > BUILDSTATE_DAMAGE_WIRE || require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0))
+ update_icon()
-/obj/structure/machinery/power/fusion_engine/attack_hand(mob/user)
- if(!ishuman(user))
- to_chat(user, SPAN_WARNING("You have no idea how to use that.")) //No ayylamos
+/obj/structure/machinery/power/reactor/proc/check_failure(damaged_reactor = FALSE)
+ if(cur_tick < fail_check_ticks) //Nope, not time for it yet
+ cur_tick++
+ if(damaged_reactor)
+ cur_tick += fail_check_ticks/5 //fail much faster if damaged
+ return
+ cur_tick = 0 //reset the timer
+
+ fail_rate = clamp(fail_rate, 0, 100)
+ if(!prob(fail_rate)) //Oh snap, we failed! Shut it down!
+ return
+
+ visible_message(SPAN_DANGER("[src] seizes and breaks down."))
+ if(buildstate >= BUILDSTATE_DAMAGE_WELD)
+ start_functioning(FALSE)
+ buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD)
+
+/obj/structure/machinery/power/reactor/attack_hand(mob/user)
+ . = TRUE
+ if(overloaded)
+ to_chat(user, SPAN_DANGER("[src] is not responding to your attempt to shut the reactor down."))
return FALSE
add_fingerprint(user)
- switch(buildstate)
- if(1)
- to_chat(user, SPAN_INFO("Use a blowtorch, then wirecutters, then wrench to repair it."))
- return FALSE
- if(2)
- to_chat(user, SPAN_NOTICE("Use a wirecutters, then wrench to repair it."))
- return FALSE
- if(3)
- to_chat(user, SPAN_NOTICE("Use a wrench to repair it."))
+
+ if(buildstate || require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0))
+ if(is_on)
+ to_chat(user, SPAN_NOTICE("You press [src]'s emergency shutdown button."))
+ visible_message(SPAN_NOTICE("[user] presses [src]'s emergency shutdown button."))
+ start_functioning(FALSE)
+ return
+
+ visible_message(SPAN_NOTICE("[user] starts to hold [src]'s emergency start lever."))
+ if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD, src))
+ to_chat(user, SPAN_NOTICE("You let go of the emergency start lever."))
return FALSE
+ start_functioning(TRUE)
+ return
+
if(is_on)
- if(overloaded)
- to_chat(user, SPAN_WARNING("You can't shut off [src] while it's overloaded!"))
- return
+ visible_message(SPAN_WARNING("[src] beeps softly and stops humming as [user] shuts off the generator."))
+ start_functioning(FALSE)
+ return
- visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps softly and the humming stops as [usr] shuts off the generator.")]")
- is_on = 0
- power_gen_percent = 0
- cur_tick = 0
+ visible_message(SPAN_NOTICE("[src] beeps loudly as [user] starts the reactor."))
+ start_functioning(TRUE)
+
+/obj/structure/machinery/power/reactor/attack_alien(mob/living/carbon/xenomorph/xeno)
+ . = XENO_NONCOMBAT_ACTION
+ if(buildstate >= BUILDSTATE_DAMAGE_WELD)
+ to_chat(xeno, SPAN_WARNING("You see no reason to attack [src]."))
+ return
+
+ if(xeno.action_busy)
+ to_chat(xeno, SPAN_WARNING("You cannot damage [src] while doing something else."))
+ return
+
+ if(overloaded)
+ xeno.animation_attack_on(src)
+ playsound(src, 'sound/effects/metalhit.ogg', 25, 1)
+ xeno.visible_message(SPAN_DANGER("[xeno] [xeno.slashes_verb] [src], stopping its overload process!"), \
+ SPAN_DANGER("You [xeno.slash_verb] [src], stopping its overload process!"), null, 5, CHAT_TYPE_XENO_COMBAT)
+ set_overloading(FALSE)
+ return
+
+ var/looping = FALSE
+ while(buildstate < BUILDSTATE_DAMAGE_WELD)
+ to_chat(xeno, SPAN_NOTICE("You [looping ? "continue damaging" : "start to damage"] [src]."))
+ if(!do_after(xeno, 10 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE, src))
+ to_chat(xeno, SPAN_DANGER("You stop damaging [src]."))
+ break
+ xeno.animation_attack_on(src)
+ playsound(src, 'sound/effects/metalhit.ogg', 25, 1)
+ xeno.visible_message(SPAN_DANGER("[xeno] [xeno.slashes_verb] [src], [is_on ? "disabling" : "damaging"] it!"))
+ switch(buildstate)
+ if(BUILDSTATE_FUNCTIONAL)
+ visible_message(SPAN_DANGER("[src] starts to fall apart!"))
+ if(BUILDSTATE_DAMAGE_WRENCH)
+ visible_message(SPAN_DANGER("[src] sparks as wires fall out!"))
+ if(BUILDSTATE_DAMAGE_WIRE)
+ visible_message(SPAN_DANGER("[src] gets torn apart!"))
+ buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD)
update_icon()
- stop_processing()
- return TRUE
+ looping = TRUE
- if(!fusion_cell)
- to_chat(user, SPAN_NOTICE("The reactor requires a fuel cell before you can turn it on."))
- return FALSE
+/obj/structure/machinery/power/reactor/attackby(obj/item/attacking_item, mob/user)
+ //Fuel Cells
+ if(user.action_busy)
+ return
- if(!powernet)
- if(!connect_to_network())
- to_chat(user, SPAN_WARNING("Power network not found, make sure the engine is connected to a cable."))
- return FALSE
+ if(istype(attacking_item, /obj/item/fuel_cell))
+ var/obj/item/fuel_cell/cell = attacking_item
+ if(fusion_cell)
+ to_chat(user, SPAN_WARNING("[src] already has [fusion_cell]. Before you can replace it with [cell] you need to remove it with a crowbar."))
+ return
- if(fusion_cell.fuel_amount <= 10)
- to_chat(user, "[icon2html(src, user)] [SPAN_WARNING("[src] : Fuel levels critically low.")]")
- visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps loudly as [user] turns the generator on and begins the process of fusion...")]")
- fuel_rate = 0.01
- is_on = 1
- cur_tick = 0
- update_icon()
- start_processing()
- return TRUE
+ to_chat(user, SPAN_NOTICE("You start inserting [cell] into [src]."))
+ if(!do_after(user, 10 SECONDS * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL, BUSY_ICON_BUILD, src))
+ return
+ if(!user.drop_inv_item_to_loc(cell, src))
+ to_chat(user, SPAN_NOTICE("You fail to insert [cell] into [src]."))
+ return
+ to_chat(user, SPAN_NOTICE("You insert [cell] into [src]."))
+ fusion_cell = cell
+ update_icon()
+ if(cell.new_cell)
+ fail_rate = original_fail_rate
+ cell.new_cell = FALSE
+ return
-/obj/structure/machinery/power/fusion_engine/attackby(obj/item/O, mob/user)
- if(istype(O, /obj/item/fuelCell))
- if(is_on)
- to_chat(user, SPAN_WARNING("[src] needs to be turned off first."))
- return TRUE
+ if(HAS_TRAIT(attacking_item, TRAIT_TOOL_CROWBAR))
if(!fusion_cell)
- if(user.drop_inv_item_to_loc(O, src))
- fusion_cell = O
- update_icon()
- to_chat(user, SPAN_NOTICE("You load [src] with [O]."))
- return TRUE
- else
- to_chat(user, SPAN_WARNING("You need to remove the fuel cell from [src] first."))
- return TRUE
- else if(iswelder(O))
- if(!HAS_TRAIT(O, TRAIT_TOOL_BLOWTORCH))
- to_chat(user, SPAN_WARNING("You need a stronger blowtorch!"))
+ to_chat(user, SPAN_WARNING("There is no fuel cell to remove from [src]."))
return
- if(buildstate == 1)
- var/obj/item/tool/weldingtool/WT = O
- if(WT.remove_fuel(1, user))
- if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
- user.visible_message(SPAN_NOTICE("[user] fumbles around figuring out [src]'s internals."),
- SPAN_NOTICE("You fumble around figuring out [src]'s internals."))
- var/fumbling_time = 50
- if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return
- playsound(loc, 'sound/items/weldingtool_weld.ogg', 25)
- user.visible_message(SPAN_NOTICE("[user] starts welding [src]'s internal damage."),
- SPAN_NOTICE("You start welding [src]'s internal damage."))
- if(do_after(user, 200 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
- if(buildstate != 1 || is_on || !WT.isOn())
- return FALSE
- playsound(loc, 'sound/items/Welder2.ogg', 25, 1)
- buildstate = 2
- user.visible_message(SPAN_NOTICE("[user] welds [src]'s internal damage."),
- SPAN_NOTICE("You weld [src]'s internal damage."))
- update_icon()
- return TRUE
- else
- to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task."))
- return FALSE
- else if(HAS_TRAIT(O, TRAIT_TOOL_WIRECUTTERS))
- if(buildstate == 2 && !is_on)
- if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
- user.visible_message(SPAN_NOTICE("[user] fumbles around figuring out [src]'s wiring."),
- SPAN_NOTICE("You fumble around figuring out [src]'s wiring."))
- var/fumbling_time = 50
- if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return
- playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1)
- user.visible_message(SPAN_NOTICE("[user] starts securing [src]'s wiring."),
- SPAN_NOTICE("You start securing [src]'s wiring."))
- if(do_after(user, 120 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, numticks = 12))
- if(buildstate != 2 || is_on)
- return FALSE
- playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1)
- buildstate = 3
- user.visible_message(SPAN_NOTICE("[user] secures [src]'s wiring."),
- SPAN_NOTICE("You secure [src]'s wiring."))
- update_icon()
- return TRUE
- else if(HAS_TRAIT(O, TRAIT_TOOL_WRENCH))
- if(buildstate == 3 && !is_on)
- if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
- user.visible_message(SPAN_NOTICE("[user] fumbles around figuring out [src]'s tubing and plating."),
- SPAN_NOTICE("You fumble around figuring out [src]'s tubing and plating."))
- var/fumbling_time = 50
- if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return
- playsound(loc, 'sound/items/Ratchet.ogg', 25, 1)
- user.visible_message(SPAN_NOTICE("[user] starts repairing [src]'s tubing and plating."),
- SPAN_NOTICE("You start repairing [src]'s tubing and plating."))
- if(do_after(user, 150 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
- if(buildstate != 3 || is_on)
- return FALSE
- playsound(loc, 'sound/items/Ratchet.ogg', 25, 1)
- buildstate = 0
- user.count_niche_stat(STATISTICS_NICHE_REPAIR_GENERATOR)
- user.visible_message(SPAN_NOTICE("[user] repairs [src]'s tubing and plating."),
- SPAN_NOTICE("You repair [src]'s tubing and plating."))
- update_icon()
- return TRUE
- else if(HAS_TRAIT(O, TRAIT_TOOL_CROWBAR))
- if(buildstate)
- to_chat(user, SPAN_WARNING("You must repair the generator before working with its fuel cell."))
+
+ to_chat(user, SPAN_NOTICE("You start prying [fusion_cell] out of [src]."))
+ if(!do_after(user, 10 SECONDS * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL, BUSY_ICON_BUILD, src))
return
- if(overloaded)
- to_chat(user, SPAN_WARNING("You must restore the safeties on the generator before working with its fuel cell."))
+ to_chat(user, SPAN_NOTICE("You remove [fusion_cell] from [src]."))
+ fusion_cell.update_icon()
+ user.put_in_hands(fusion_cell)
+ fusion_cell = null
+ update_icon()
+ return
+
+ //Repairing
+ if(HAS_TRAIT(attacking_item, TRAIT_TOOL_BLOWTORCH))
+ if(!attempt_repair(attacking_item, BUILDSTATE_DAMAGE_WELD, user))
+ return
+ var/obj/item/tool/weldingtool/welder = attacking_item
+ if(!welder.remove_fuel(1, user))
return
+ playsound(loc, 'sound/items/Welder2.ogg', 25, 1)
+ buildstate = BUILDSTATE_DAMAGE_WIRE
+ update_icon()
+ return
- if(is_on)
- to_chat(user, SPAN_WARNING("You must turn off the generator before working with its fuel cell."))
+ if(HAS_TRAIT(attacking_item, TRAIT_TOOL_WIRECUTTERS))
+ if(!attempt_repair(attacking_item, BUILDSTATE_DAMAGE_WIRE, user))
return
+ playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1)
+ buildstate = BUILDSTATE_DAMAGE_WRENCH
+ update_icon()
+ return
- if(!fusion_cell)
- to_chat(user, SPAN_WARNING("There is no cell to remove."))
+ if(HAS_TRAIT(attacking_item, TRAIT_TOOL_WRENCH))
+ if(!attempt_repair(attacking_item, BUILDSTATE_DAMAGE_WRENCH, user))
+ return
+ playsound(loc, 'sound/items/Ratchet.ogg', 25, 1)
+ buildstate = BUILDSTATE_FUNCTIONAL
+ update_icon()
+ return
+
+ //Self Destruct
+ if(HAS_TRAIT(attacking_item, TRAIT_TOOL_MULTITOOL))
+ if(!SShijack.sd_unlocked)
+ return
+ if(!is_ship_reactor)
+ return
- else
- if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
- user.visible_message(SPAN_WARNING("[user] fumbles around figuring out [src]'s fuel receptacle."),
- SPAN_WARNING("You fumble around figuring out [src]'s fuel receptacle."))
- var/fumbling_time = 50
- if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return
- playsound(loc, 'sound/items/Crowbar.ogg', 25, 1)
- user.visible_message(SPAN_NOTICE("[user] starts prying [src]'s fuel receptacle open."),
- SPAN_NOTICE("You start prying [src]'s fuel receptacle open."))
- if(do_after(user, 100 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
- if(buildstate != 0 || is_on || !fusion_cell)
- return FALSE
- user.visible_message(SPAN_NOTICE("[user] pries [src]'s fuel receptacle open and removes the cell."),
- SPAN_NOTICE("You pry [src]'s fuel receptacle open and remove the cell."))
- fusion_cell.update_icon()
- user.put_in_hands(fusion_cell)
- fusion_cell = null
- update_icon()
- return TRUE
-
- else if(HAS_TRAIT(O, TRAIT_TOOL_MULTITOOL))
if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
- to_chat(user, SPAN_WARNING("You have no idea what to do with [src]."))
return
- if(!overloaded)
- if(!SShijack.sd_unlocked)
- to_chat(user, SPAN_WARNING("You consider overloading [src]'s safeties, but you decide against it."))
- return
+ to_chat(user, SPAN_WARNING("You start [overloaded ? "overloading" : "restoring"] the safeties on [src]."))
+ if(!do_after(user, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD))
+ return
- if(inoperable())
- to_chat(user, SPAN_WARNING("[src] needs to be working and have external power in order to overload it!"))
- return
+ if(inoperable())
+ to_chat(user, SPAN_WARNING("[src] needs to be working and have external power in order to be overloaded."))
+ return
- to_chat(user, SPAN_WARNING("You start overloading the safeties on [src]..."))
- if(!do_after(user, 1.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
- return
+ set_overloading(!overloaded)
+ to_chat(user, SPAN_WARNING("You finish [overloaded ? "overloading" : "restoring"] the safeties on [src]."))
+ log_game("[key_name(user)] has [overloaded ? "overloaded" : "restored the safeties of"] a generator.")
+ return
- if(inoperable())
- return
+ . = ..()
- to_chat(user, SPAN_WARNING("You finish overloading the safeties on [src]."))
- set_overloading(TRUE)
- log_game("[key_name(user)] has overloaded a generator.")
+/obj/structure/machinery/power/reactor/update_icon()
+ switch(buildstate)
+ if(BUILDSTATE_DAMAGE_WELD)
+ icon_state = "weld"
+ if(BUILDSTATE_DAMAGE_WIRE)
+ icon_state = "wire"
+ if(BUILDSTATE_DAMAGE_WRENCH)
+ icon_state = "wrench"
+ if(buildstate)
+ return
- else
- to_chat(user, SPAN_WARNING("You start restoring the safeties on [src]..."))
- if(!do_after(user, 1.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
- return
+ if(!is_on)
+ icon_state = "off"
+ return
+
+ if(require_fusion_cell && !fusion_cell)
+ icon_state = "cell_missing"
+ return
- if(inoperable())
- return
+ if(overloaded)
+ icon_state = "overloaded"
+ return
- to_chat(user, SPAN_WARNING("You finish restoring the safeties on [src]."))
- log_game("[key_name(user)] has restored the safeties of a generator.")
- set_overloading(FALSE)
+ var/abs_percent = 100
+ var/closest_percent
+ for(var/current_percent in power_percent_states)
+ if(abs(current_percent-power_gen_percent) >= abs_percent)
+ continue
+ abs_percent = abs(current_percent-power_gen_percent)
+ closest_percent = current_percent
+ if(!abs_percent)
+ break
+ icon_state = "on-[closest_percent]"
+
+/obj/structure/machinery/power/reactor/ex_act(severity)
+ . = FALSE
+ if(severity <= EXPLOSION_THRESHOLD_MLOW)
+ return
- return TRUE
+ var/datum/effect_system/spark_spread/sparks = new
+ sparks.set_up(7, FALSE, loc)
+ buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD)
+ sparks.start()
- else
- return ..()
+ if(!overloaded)
+ return
+ set_overloading(FALSE)
-/obj/structure/machinery/power/fusion_engine/get_examine_text(mob/user)
+/obj/structure/machinery/power/reactor/bullet_act(obj/projectile/bullet)
. = ..()
- if(isxeno(user))
- if(overloaded)
- . += SPAN_INFO("You could attack this to stop the overload process.")
-
- else if(ishuman(user))
- if(buildstate)
- . += SPAN_INFO("It's broken.")
- switch(buildstate)
- if(1)
- . += SPAN_INFO("Use a blowtorch , then wirecutters , then wrench to repair it.")
- if(2)
- . += SPAN_INFO("Use a wirecutters , then wrench to repair it.")
- if(3)
- . += SPAN_INFO("Use a wrench to repair it.")
- return FALSE
+ if(buildstate >= BUILDSTATE_DAMAGE_WELD)
+ return
+ if(!prob(5))
+ return
- if(SShijack.sd_unlocked && skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
- if(!overloaded)
- . += SPAN_INFO("You could overload this with a multitool .")
- else
- . += SPAN_INFO("You could restore its safeties with a multitool .")
+ var/datum/effect_system/spark_spread/sparks = new
+ sparks.set_up(7, FALSE, loc)
+ buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD)
+ sparks.start()
- if(!is_on)
- . += SPAN_INFO("It looks offline.")
- else
- . += SPAN_INFO("The power gauge reads: [power_gen_percent]%")
- if(fusion_cell)
- . += SPAN_INFO("You can see a fuel cell in the receptacle.")
- if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
- switch(fusion_cell.get_fuel_percent())
- if(0 to 10)
- . += SPAN_DANGER("The fuel cell is critically low.")
- if(10 to 25)
- . += SPAN_WARNING("The fuel cell is running low.")
- if(25 to 50)
- . += SPAN_INFO("The fuel cell is a little under halfway.")
- if(50 to 75)
- . += SPAN_INFO("The fuel cell is a little above halfway.")
- if(75 to INFINITY)
- . += SPAN_INFO("The fuel cell is nearly full.")
- else
- . += SPAN_INFO("There is no fuel cell in the receptacle.")
+/obj/structure/machinery/power/reactor/proc/start_functioning(enabling)
+ if(enabling)
+ is_on = TRUE
+ start_processing()
+ update_icon()
+ return
+ is_on = FALSE
+ power_gen_percent = 0
+ cur_tick = 0
+ set_overloading(FALSE)
+ update_icon()
-/obj/structure/machinery/power/fusion_engine/ex_act(severity)
- if(overloaded && severity >= EXPLOSION_THRESHOLD_MLOW)
- set_overloading(FALSE)
- return
+/obj/structure/machinery/power/reactor/proc/attempt_repair(obj/item/tool, repair_type, mob/user)
+ if(!tool || !repair_type)
+ return
+ if(!buildstate)
+ to_chat(user, SPAN_NOTICE("[src] does not need repairs."))
+ return
+ if(buildstate != repair_type)
+ to_chat(user, SPAN_WARNING("You need a different tool to repair [src]."))
+ return
-/obj/structure/machinery/power/fusion_engine/update_icon()
- switch(buildstate)
- if(0)
- if(fusion_cell)
- if(overloaded)
- icon_state = "overloaded"
- else
- var/pstatus = is_on ? "on" : "off"
- switch(fusion_cell.get_fuel_percent())
- if(0 to 10)
- icon_state = "[pstatus]-10"
- if(10 to 25)
- icon_state = "[pstatus]-25"
- if(25 to 50)
- icon_state = "[pstatus]-50"
- if(50 to 75)
- icon_state = "[pstatus]-75"
- if(75 to INFINITY)
- icon_state = "[pstatus]-100"
- else
- icon_state = "off"
-
- if(1)
- icon_state = "weld"
- if(2)
- icon_state = "wire"
- if(3)
- icon_state = "wrench"
+ var/repair_time = 20 SECONDS
+ repair_time *= user.get_skill_duration_multiplier(SKILL_ENGINEER)
+ if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
+ repair_time += 5 SECONDS
+ to_chat(user, SPAN_NOTICE("You start repairing [src] with [tool]."))
+ if(!do_after(user, repair_time, INTERRUPT_ALL, BUSY_ICON_BUILD, src))
+ return
-/obj/structure/machinery/power/fusion_engine/proc/check_failure()
- if(cur_tick < FUSION_ENGINE_FAIL_CHECK_TICKS) //Nope, not time for it yet
- cur_tick++
- return 0
- cur_tick = 0 //reset the timer
- if(rand(1,100) < fail_rate) //Oh snap, we failed! Shut it down!
- if(prob(25))
- visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and a fuse blows! Use wirecutters, then a wrench to repair it.")]")
- buildstate = 2
- else
- visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and sprays random pieces everywhere! Use a wrench to repair it.")]")
- buildstate = 3
- is_on = 0
- power_gen_percent = 0
- update_icon()
- stop_processing()
- return 1
- else
- return 0
+ return TRUE
-/obj/structure/machinery/power/fusion_engine/proc/set_overloading(new_overloading)
+/obj/structure/machinery/power/reactor/proc/set_overloading(new_overloading)
+ if(!is_ship_reactor)
+ return
if(overloaded == new_overloading)
return
@@ -419,42 +465,17 @@
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_GENERATOR_SET_OVERLOADING, overloaded)
update_icon()
+/obj/structure/machinery/power/reactor/colony
+ name = "\improper G-11 geothermal generator"
+ icon = 'icons/obj/structures/machinery/geothermal.dmi'
+ desc = "A thermoelectric generator sitting atop a plasma-filled borehole."
+ is_on = FALSE
+ power_generation_max = 100000 //100,000W at full capacity
+ original_fail_rate = 10
-//FUEL CELL
-/obj/item/fuelCell
- name = "\improper WL-6 universal fuel cell"
- icon = 'icons/obj/structures/machinery/shuttle-parts.dmi'
- icon_state = "cell-full"
- desc = "A rechargeable fuel cell designed to work as a power source for the Cheyenne-Class transport or for Westingland S-52 Reactors."
- var/fuel_amount = 100
- var/max_fuel_amount = 100
-
-/obj/item/fuelCell/update_icon()
- switch(get_fuel_percent())
- if(-INFINITY to 0)
- icon_state = "cell-empty"
- if(0 to 25)
- icon_state = "cell-low"
- if(25 to 75)
- icon_state = "cell-medium"
- if(75 to 99)
- icon_state = "cell-high"
- else
- icon_state = "cell-full"
-
-/obj/item/fuelCell/get_examine_text(mob/user)
- . = ..()
- if(ishuman(user))
- . += "The fuel indicator reads: [get_fuel_percent()]%"
-
-/obj/item/fuelCell/proc/get_fuel_percent()
- return round(100*fuel_amount/max_fuel_amount)
-
-/obj/item/fuelCell/proc/is_regenerated()
- return (fuel_amount == max_fuel_amount)
-
-/obj/item/fuelCell/proc/give(amount)
- fuel_amount += amount
- if(fuel_amount > max_fuel_amount)
- fuel_amount = max_fuel_amount
+#undef BUILDSTATE_FUNCTIONAL
+#undef BUILDSTATE_DAMAGE_WELD
+#undef BUILDSTATE_DAMAGE_WIRE
+#undef BUILDSTATE_DAMAGE_WRENCH
+#undef REACTOR_FAIL_CHECK_TICKS
diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm
index a18f5db8af43..4918df4d9a5b 100644
--- a/code/game/machinery/kitchen/processor.dm
+++ b/code/game/machinery/kitchen/processor.dm
@@ -19,15 +19,44 @@
/datum/food_processor_process/process(loc, what)
if (src.output && loc)
- new src.output(loc)
+ var/obj/item/reagent_container/food/snacks/created_food = new src.output(loc)
+ var/obj/item/reagent_container/food/snacks/original_food = what
+ if(original_food.made_from_player)
+ created_food.made_from_player = original_food.made_from_player
+ created_food.name = (created_food.made_from_player + created_food.name)
if (what)
qdel(what)
+/datum/food_processor_process/proc/can_use(mob/user)
+ // By default, anyone can do it.
+ return TRUE
+
/* objs */
+
+/datum/food_processor_process/xenomeat
+ input = /obj/item/reagent_container/food/snacks/meat/xenomeat
+ output = /obj/item/reagent_container/food/snacks/meat/xenomeat/processed
+
+/datum/food_processor_process/xenomeat/can_use(mob/user)
+ if(!skillcheck(user, SKILL_DOMESTIC, SKILL_DOMESTIC_MASTER))
+ to_chat(user, SPAN_DANGER("You aren't trained to remove dangerous substances from food!"))
+ return FALSE
+ return TRUE
+
/datum/food_processor_process/meat
input = /obj/item/reagent_container/food/snacks/meat
output = /obj/item/reagent_container/food/snacks/rawmeatball
+/datum/food_processor_process/carpmeat
+ input = /obj/item/reagent_container/food/snacks/carpmeat
+ output = /obj/item/reagent_container/food/snacks/carpmeat/processed
+
+/datum/food_processor_process/carpmeat/can_use(mob/user)
+ if(!skillcheck(user, SKILL_DOMESTIC, SKILL_DOMESTIC_MASTER))
+ to_chat(user, SPAN_DANGER("You aren't trained to remove dangerous substances from food!"))
+ return FALSE
+ return TRUE
+
/datum/food_processor_process/potato
input = /obj/item/reagent_container/food/snacks/grown/potato
output = /obj/item/reagent_container/food/snacks/rawsticks
@@ -88,6 +117,8 @@
if (!P)
to_chat(user, SPAN_DANGER("That probably won't blend."))
return 1
+ if(!P.can_use(user))
+ return 1
user.visible_message("[user] put [what] into [src].", \
"You put [what] into [src].")
user.drop_held_item()
diff --git a/code/game/machinery/medical_pod/sleeper.dm b/code/game/machinery/medical_pod/sleeper.dm
index 84ef2f579ba1..5868df901c6a 100644
--- a/code/game/machinery/medical_pod/sleeper.dm
+++ b/code/game/machinery/medical_pod/sleeper.dm
@@ -208,6 +208,14 @@
var/amount = text2num(params["amount"])
if(!length(chemical) || amount <= 0)
return
+ if(!(amount in connected.amounts))
+ log_debug("[amount] is an invalid amount to inject in [src]!")
+ return
+ if(!(chemical in connected.available_chemicals))
+ log_debug("[chemical] is not available to inject in [src]!")
+ return
+ if(connected.occupant.reagents && connected.occupant.reagents.get_reagent_amount(chemical) + amount > connected.max_chem)
+ return
if(connected.occupant.health > connected.min_health || (chemical in connected.emergency_chems))
connected.inject_chemical(usr, chemical, amount)
else
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index d9aa42dbd1f1..96e1635bb0b8 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -1,742 +1,12 @@
-//##############################################
-//################### NEWSCASTERS BE HERE! ####
-//###-Agouri###################################
-
-/datum/feed_message
- var/author =""
- var/body =""
- var/message_type ="Story"
- //var/parent_channel
- var/backup_body =""
- var/backup_author =""
- var/is_admin_message = 0
- var/icon/img = null
- var/icon/backup_img
-
-/datum/feed_channel
- var/channel_name=""
- var/list/datum/feed_message/messages = list()
- //var/message_count = 0
- var/locked=0
- var/author=""
- var/backup_author=""
- var/censored=0
- var/is_admin_channel=0
- //var/page = null //For newspapers
-
-/datum/feed_message/proc/clear()
- src.author = ""
- src.body = ""
- src.backup_body = ""
- src.backup_author = ""
- src.img = null
- src.backup_img = null
-
-/datum/feed_channel/proc/clear()
- src.channel_name = ""
- src.messages = list()
- src.locked = 0
- src.author = ""
- src.backup_author = ""
- src.censored = 0
- src.is_admin_channel = 0
-
-/datum/feed_network
- var/list/datum/feed_channel/network_channels = list()
- var/datum/feed_message/wanted_issue
-
-GLOBAL_DATUM_INIT(news_network, /datum/feed_network, new()) //The global news-network, which is coincidentally a global list.
-
-GLOBAL_LIST_INIT_TYPED(allCasters, /obj/structure/machinery/newscaster, list()) //Global list that will contain reference to all newscasters in existence.
-
/obj/structure/machinery/newscaster
name = "newscaster"
desc = "A standard Weyland-Yutani-licensed newsfeed handler for use in commercial space stations. All the news you absolutely have no use for, in one place!"
icon = 'icons/obj/structures/machinery/terminals.dmi'
icon_state = "newscaster_normal"
- var/isbroken = FALSE //1 if someone banged it with something heavy
- var/ispowered = TRUE //starts powered, changes with power_change()
- //var/list/datum/feed_channel/channel_list = list() //This list will contain the names of the feed channels. Each name will refer to a data region where the messages of the feed channels are stored.
- //OBSOLETE: We're now using a global news network
- var/screen = 0 //Or maybe I'll make it into a list within a list afterwards... whichever I prefer, go fuck yourselves :3
- // 0 = welcome screen - main menu
- // 1 = view feed channels
- // 2 = create feed channel
- // 3 = create feed story
- // 4 = feed story submited sucessfully
- // 5 = feed channel created successfully
- // 6 = ERROR: Cannot create feed story
- // 7 = ERROR: Cannot create feed channel
- // 8 = print newspaper
- // 9 = viewing channel feeds
- // 10 = censor feed story
- // 11 = censor feed channel
- //Holy shit this is outdated, made this when I was still starting newscasters :3
- var/paper_remaining = 0
- var/securityCaster = 0
- // 0 = Caster cannot be used to issue wanted posters
- // 1 = the opposite
- var/unit_no = 0 //Each newscaster has a unit number
- //var/datum/feed_message/wanted //We're gonna use a feed_message to store data of the wanted person because fields are similar
- //var/wanted_issue = 0 //OBSOLETE
- // 0 = there's no WANTED issued, we don't need a special icon_state
- // 1 = Guess what.
- var/alert_delay = 500
- var/alert = 0
- // 0 = there hasn't been a news/wanted update in the last alert_delay
- // 1 = there has
- var/scanned_user = "Unknown" //Will contain the name of the person who currently uses the newscaster
- var/msg = ""; //Feed message
- var/obj/item/photo/photo = null
- var/channel_name = ""; //the feed channel which will be receiving the feed, or being created
- var/c_locked=0; //Will our new channel be locked to public submissions?
- var/hitstaken = 0 //Death at 3 hits from an item with force>=15
- var/datum/feed_channel/viewing_channel = null
anchored = TRUE
-
-/obj/structure/machinery/newscaster/security_unit //Security unit
+/obj/structure/machinery/newscaster/security_unit
name = "Security Newscaster"
- securityCaster = 1
-
-/obj/structure/machinery/newscaster/security_unit/New() //Constructor, ho~
- GLOB.allCasters += src
- src.paper_remaining = 15 // Will probably change this to something better
- for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters) // Let's give it an appropriate unit number
- src.unit_no++
- src.update_icon() //for any custom ones on the map...
- ..() //I just realised the newscasters weren't in the global machines list. The superconstructor call will tend to that
-
-/obj/structure/machinery/newscaster/security_unit/Destroy()
- GLOB.allCasters -= src
- return ..()
-
-/obj/structure/machinery/newscaster/update_icon()
- if(!ispowered || isbroken)
- icon_state = "newscaster_off"
- if(isbroken) //If the thing is smashed, add crack overlay on top of the unpowered sprite.
- src.overlays.Cut()
- src.overlays += image(src.icon, "crack3")
- return
-
- src.overlays.Cut() //reset overlays
-
- if(GLOB.news_network.wanted_issue) //wanted icon state, there can be no overlays on it as it's a priority message
- icon_state = "newscaster_wanted"
- return
-
- if(alert) //new message alert overlay
- src.overlays += "newscaster_alert"
-
- if(hitstaken > 0) //Cosmetic damage overlay
- src.overlays += image(src.icon, "crack[hitstaken]")
-
- icon_state = "newscaster_normal"
- return
-
-/obj/structure/machinery/newscaster/power_change()
- if(isbroken) //Broken shit can't be powered.
- return
- ..()
- if( !(stat & NOPOWER) )
- src.ispowered = TRUE
- src.update_icon()
- else
- spawn(rand(0, 15))
- src.ispowered = FALSE
- src.update_icon()
-
-
-/obj/structure/machinery/newscaster/ex_act(severity)
- switch(severity)
- if(0 to EXPLOSION_THRESHOLD_LOW)
- if(prob(50))
- src.isbroken=1
- src.update_icon()
- return
- if(EXPLOSION_THRESHOLD_LOW to EXPLOSION_THRESHOLD_MEDIUM)
- src.isbroken=1
- if(prob(50))
- deconstruct(FALSE)
- else
- src.update_icon() //can't place it above the return and outside the if-else. or we might get runtimes of null.update_icon() if(prob(50)) goes in.
- return
- if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY)
- deconstruct(FALSE)
- return
- return
-
-/obj/structure/machinery/newscaster/attack_remote(mob/user as mob)
- return src.attack_hand(user)
-
-/obj/structure/machinery/newscaster/attack_hand(mob/user as mob) //########### THE MAIN BEEF IS HERE! And in the proc below this...############
- if(!src.ispowered || src.isbroken)
- return
- if(istype(user, /mob/living/carbon/human) || istype(user,/mob/living/silicon) )
- var/mob/living/human_or_robot_user = user
- var/dat
- dat = text("Newscaster Newscaster Unit #[src.unit_no] ")
-
- src.scan_user(human_or_robot_user) //Newscaster scans you
-
- switch(screen)
- if(0)
- dat += "Welcome to Newscasting Unit #[src.unit_no]. Interface & News networks Operational."
- dat += "Property of Weyland-Yutani "
- if(GLOB.news_network.wanted_issue)
- dat+= "Read Wanted Issue "
- dat+= "Create Feed Channel "
- dat+= "View Feed Channels "
- dat+= "Submit new Feed story "
- dat+= "Print newspaper "
- dat+= "Re-scan User "
- dat+= "Exit "
- if(src.securityCaster)
- var/wanted_already = 0
- if(GLOB.news_network.wanted_issue)
- wanted_already = 1
-
- dat+="Feed Security functions: "
- dat+="[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue "
- dat+="Censor Feed Stories "
- dat+="Mark Feed Channel with Weyland-Yutani D-Notice "
- dat+=" The newscaster recognises you as: [src.scanned_user] "
- if(1)
- dat+= "Station Feed Channels "
- if(!length(GLOB.news_network.network_channels) )
- dat+="No active channels found... "
- else
- for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels)
- if(CHANNEL.is_admin_channel)
- dat+="[CHANNEL.channel_name] "
- else
- dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("*** ") : null] "
- /*for(var/datum/feed_channel/CHANNEL in src.channel_list)
- dat+="[CHANNEL.channel_name]: \[created by: [CHANNEL.author] \] "
- if(!length(CHANNEL.messages) )
- dat+="No feed messages found in channel... "
- else
- for(var/datum/feed_message/MESSAGE in CHANNEL.messages)
- dat+="-[MESSAGE.body] \[[MESSAGE.message_type] by [MESSAGE.author] \] "*/
-
- dat+="Refresh "
- dat+="Back "
- if(2)
- dat+="Creating new Feed Channel..."
- dat+="Channel Name : [src.channel_name] "
- dat+="Channel Author: [src.scanned_user] "
- dat+="Will Accept Public Feeds : [(src.c_locked) ? ("NO") : ("YES")] "
- dat+="Submit Cancel "
- if(3)
- dat+="Creating new Feed Message..."
- dat+="Receiving Channel : [src.channel_name] " //MARK
- dat+="Message Author: [src.scanned_user] "
- dat+="Message Body : [src.msg] "
- dat+="Attach Photo : [(src.photo ? "Photo Attached" : "No Photo")]"
- dat+="Submit Cancel "
- if(4)
- dat+="Feed story successfully submitted to [src.channel_name]. "
- dat+="Return "
- if(5)
- dat+="Feed Channel [src.channel_name] created successfully. "
- dat+="Return "
- if(6)
- dat+="ERROR: Could not submit Feed story to Network. "
- if(src.channel_name=="")
- dat+="�Invalid receiving channel name. "
- if(src.scanned_user=="Unknown")
- dat+="�Channel author unverified. "
- if(src.msg == "" || src.msg == "\[REDACTED\]")
- dat+="�Invalid message body. "
-
- dat+="Return "
- if(7)
- dat+="ERROR: Could not submit Feed Channel to Network. "
- //var/list/existing_channels = list() //Let's get dem existing channels - OBSOLETE
- var/list/existing_authors = list()
- for(var/datum/feed_channel/FC in GLOB.news_network.network_channels)
- //existing_channels += FC.channel_name //OBSOLETE
- if(FC.author == "\[REDACTED\]")
- existing_authors += FC.backup_author
- else
- existing_authors += FC.author
- if(src.scanned_user in existing_authors)
- dat+="�There already exists a Feed channel under your name. "
- if(src.channel_name=="" || src.channel_name == "\[REDACTED\]")
- dat+="�Invalid channel name. "
- var/check = 0
- for(var/datum/feed_channel/FC in GLOB.news_network.network_channels)
- if(FC.channel_name == src.channel_name)
- check = 1
- break
- if(check)
- dat+="�Channel name already in use. "
- if(src.scanned_user=="Unknown")
- dat+="�Channel author unverified. "
- dat+="Return "
- if(8)
- var/total_num=length(GLOB.news_network.network_channels)
- var/active_num=total_num
- var/message_num=0
- for(var/datum/feed_channel/FC in GLOB.news_network.network_channels)
- if(!FC.censored)
- message_num += length(FC.messages) //Dont forget, datum/feed_channel's var messages is a list of datum/feed_message
- else
- active_num--
- dat+="Network currently serves a total of [total_num] Feed channels, [active_num] of which are active, and a total of [message_num] Feed Stories." //TODO: CONTINUE
- dat+="Liquid Paper remaining: [(src.paper_remaining) *100 ] cm^3"
- dat+="Print Paper "
- dat+="Cancel "
- if(9)
- dat+="[src.viewing_channel.channel_name]: \[created by: [src.viewing_channel.author] \] "
- if(src.viewing_channel.censored)
- dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Weyland-Yutani D-Notice. "
- dat+="No further feed story additions are allowed while the D-Notice is in effect. "
- else
- if(!length(src.viewing_channel.messages) )
- dat+="No feed messages found in channel... "
- else
- var/i = 0
- for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages)
- i++
- dat+="-[MESSAGE.body] "
- if(MESSAGE.img)
- usr << browse_rsc(MESSAGE.img, "tmp_photo[i].png")
- dat+=" "
- dat+="\[[MESSAGE.message_type] by [MESSAGE.author] \] "
- dat+="Refresh "
- dat+="Back "
- if(10)
- dat+="Weyland-Yutani Feed Censorship Tool "
- dat+="NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible. "
- dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it. "
- dat+=" Select Feed channel to get Stories from: "
- if(!length(GLOB.news_network.network_channels))
- dat+="No feed channels found active... "
- else
- for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels)
- dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("*** ") : null] "
- dat+="Cancel "
- if(11)
- dat+="Weyland-Yutani D-Notice Handler "
- dat+="A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's"
- dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed"
- dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time. "
- if(!length(GLOB.news_network.network_channels))
- dat+="No feed channels found active... "
- else
- for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels)
- dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("*** ") : null] "
-
- dat+="Back "
- if(12)
- dat+="[src.viewing_channel.channel_name]: \[ created by: [src.viewing_channel.author] \] "
- dat+="[(src.viewing_channel.author=="\[REDACTED\]") ? ("Undo Author censorship") : ("Censor channel Author")] "
-
-
- if(!length(src.viewing_channel.messages) )
- dat+="No feed messages found in channel... "
- else
- for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages)
- dat+="-[MESSAGE.body] \[[MESSAGE.message_type] by [MESSAGE.author] \] "
- dat+="[(MESSAGE.body == "\[REDACTED\]") ? ("Undo story censorship") : ("Censor story")] - [(MESSAGE.author == "\[REDACTED\]") ? ("Undo Author Censorship") : ("Censor message Author")] "
- dat+="Back "
- if(13)
- dat+="[src.viewing_channel.channel_name]: \[ created by: [src.viewing_channel.author] \] "
- dat+="Channel messages listed below. If you deem them dangerous to the station, you can Bestow a D-Notice upon the channel . "
- if(src.viewing_channel.censored)
- dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Weyland-Yutani D-Notice. "
- dat+="No further feed story additions are allowed while the D-Notice is in effect. "
- else
- if(!length(src.viewing_channel.messages) )
- dat+="No feed messages found in channel... "
- else
- for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages)
- dat+="-[MESSAGE.body] \[[MESSAGE.message_type] by [MESSAGE.author] \] "
-
- dat+="Back "
- if(14)
- dat+="Wanted Issue Handler: "
- var/wanted_already = 0
- var/end_param = 1
- if(GLOB.news_network.wanted_issue)
- wanted_already = 1
- end_param = 2
-
- if(wanted_already)
- dat+="A wanted issue is already in Feed Circulation. You can edit or cancel it below. "
- dat+=" "
- dat+="Criminal Name : [src.channel_name] "
- dat+="Description : [src.msg] "
- dat+="Attach Photo : [(src.photo ? "Photo Attached" : "No Photo")]"
- if(wanted_already)
- dat+="Wanted Issue created by: [GLOB.news_network.wanted_issue.backup_author] "
- else
- dat+="Wanted Issue will be created under prosecutor: [src.scanned_user] "
- dat+="[(wanted_already) ? ("Edit Issue") : ("Submit")] "
- if(wanted_already)
- dat+="Take down Issue "
- dat+="Cancel "
- if(15)
- dat+="Wanted issue for [src.channel_name] is now in Network Circulation. "
- dat+="Return "
- if(16)
- dat+="ERROR: Wanted Issue rejected by Network. "
- if(src.channel_name=="" || src.channel_name == "\[REDACTED\]")
- dat+="�Invalid name for person wanted. "
- if(src.scanned_user=="Unknown")
- dat+="�Issue author unverified. "
- if(src.msg == "" || src.msg == "\[REDACTED\]")
- dat+="�Invalid description. "
- dat+="Return "
- if(17)
- dat+="Wanted Issue successfully deleted from Circulation "
- dat+="Return "
- if(18)
- dat+="-- STATIONWIDE WANTED ISSUE -- \[Submitted by: [GLOB.news_network.wanted_issue.backup_author] \] "
- dat+="Criminal : [GLOB.news_network.wanted_issue.author] "
- dat+="Description : [GLOB.news_network.wanted_issue.body] "
- dat+="Photo: : "
- if(GLOB.news_network.wanted_issue.img)
- usr << browse_rsc(GLOB.news_network.wanted_issue.img, "tmp_photow.png")
- dat+=" "
- else
- dat+="None"
- dat+="Back "
- if(19)
- dat+="Wanted issue for [src.channel_name] successfully edited. "
- dat+="Return "
- if(20)
- dat+="Printing successful. Please receive your newspaper from the bottom of the machine. "
- dat+="Return "
- if(21)
- dat+="Unable to print newspaper. Insufficient paper. Please notify maintenance personnel to refill machine storage. "
- dat+="Return "
- else
- dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com"
-
-
- human_or_robot_user << browse(dat, "window=newscaster_main;size=400x600")
- onclose(human_or_robot_user, "newscaster_main")
-
- /*if(src.isbroken) //debugging shit
- return
- src.hitstaken++
- if(src.hitstaken==3)
- src.isbroken = TRUE
- src.update_icon()*/
-
-
-/obj/structure/machinery/newscaster/Topic(href, href_list)
- if(..())
- return
- if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (isRemoteControlling(usr)))
- usr.set_interaction(src)
- if(href_list["set_channel_name"])
- src.channel_name = strip_html(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", ""))
- while (findtext(src.channel_name," ") == 1)
- src.channel_name = copytext(src.channel_name,2,length(src.channel_name)+1)
- src.updateUsrDialog()
- //src.update_icon()
-
- else if(href_list["set_channel_lock"])
- src.c_locked = !src.c_locked
- src.updateUsrDialog()
- //src.update_icon()
-
- else if(href_list["submit_new_channel"])
- //var/list/existing_channels = list() //OBSOLETE
- var/list/existing_authors = list()
- for(var/datum/feed_channel/FC in GLOB.news_network.network_channels)
- //existing_channels += FC.channel_name
- if(FC.author == "\[REDACTED\]")
- existing_authors += FC.backup_author
- else
- existing_authors +=FC.author
- var/check = 0
- for(var/datum/feed_channel/FC in GLOB.news_network.network_channels)
- if(FC.channel_name == src.channel_name)
- check = 1
- break
- if(src.channel_name == "" || src.channel_name == "\[REDACTED\]" || src.scanned_user == "Unknown" || check || (src.scanned_user in existing_authors) )
- src.screen=7
- else
- var/choice = alert("Please confirm Feed channel creation","Network Channel Handler","Confirm","Cancel")
- if(choice=="Confirm")
- var/datum/feed_channel/newChannel = new /datum/feed_channel
- newChannel.channel_name = src.channel_name
- newChannel.author = src.scanned_user
- newChannel.locked = c_locked
- GLOB.news_network.network_channels += newChannel //Adding channel to the global network
- src.screen=5
- src.updateUsrDialog()
- //src.update_icon()
-
- else if(href_list["set_channel_receiving"])
- //var/list/datum/feed_channel/available_channels = list()
- var/list/available_channels = list()
- for(var/datum/feed_channel/F in GLOB.news_network.network_channels)
- if( (!F.locked || F.author == scanned_user) && !F.censored)
- available_channels += F.channel_name
- src.channel_name = strip_html(tgui_input_list(usr, "Choose receiving Feed Channel", "Network Channel Handler", available_channels ))
- src.updateUsrDialog()
-
- else if(href_list["set_new_message"])
- src.msg = strip_html(input(usr, "Write your Feed story", "Network Channel Handler", ""))
- while (findtext(src.msg," ") == 1)
- src.msg = copytext(src.msg,2,length(src.msg)+1)
- src.updateUsrDialog()
-
- else if(href_list["set_attachment"])
- AttachPhoto(usr)
- src.updateUsrDialog()
-
- else if(href_list["submit_new_message"])
- if(src.msg =="" || src.msg=="\[REDACTED\]" || src.scanned_user == "Unknown" || src.channel_name == "" )
- src.screen=6
- else
- var/datum/feed_message/newMsg = new /datum/feed_message
- newMsg.author = src.scanned_user
- newMsg.body = src.msg
- if(photo)
- newMsg.img = photo.img
- for(var/datum/feed_channel/FC in GLOB.news_network.network_channels)
- if(FC.channel_name == src.channel_name)
- FC.messages += newMsg //Adding message to the network's appropriate feed_channel
- break
- src.screen=4
- for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters)
- NEWSCASTER.newsAlert(src.channel_name)
-
- src.updateUsrDialog()
-
- else if(href_list["create_channel"])
- src.screen=2
- src.updateUsrDialog()
-
- else if(href_list["create_feed_story"])
- src.screen=3
- src.updateUsrDialog()
-
- else if(href_list["menu_paper"])
- src.screen=8
- src.updateUsrDialog()
- else if(href_list["print_paper"])
- if(!src.paper_remaining)
- src.screen=21
- else
- src.print_paper()
- src.screen = 20
- src.updateUsrDialog()
-
- else if(href_list["menu_censor_story"])
- src.screen=10
- src.updateUsrDialog()
-
- else if(href_list["menu_censor_channel"])
- src.screen=11
- src.updateUsrDialog()
-
- else if(href_list["menu_wanted"])
- var/already_wanted = 0
- if(GLOB.news_network.wanted_issue)
- already_wanted = 1
-
- if(already_wanted)
- src.channel_name = GLOB.news_network.wanted_issue.author
- src.msg = GLOB.news_network.wanted_issue.body
- src.screen = 14
- src.updateUsrDialog()
-
- else if(href_list["set_wanted_name"])
- src.channel_name = strip_html(input(usr, "Provide the name of the Wanted person", "Network Security Handler", ""))
- while (findtext(src.channel_name," ") == 1)
- src.channel_name = copytext(src.channel_name,2,length(src.channel_name)+1)
- src.updateUsrDialog()
-
- else if(href_list["set_wanted_desc"])
- src.msg = strip_html(input(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler", ""))
- while (findtext(src.msg," ") == 1)
- src.msg = copytext(src.msg,2,length(src.msg)+1)
- src.updateUsrDialog()
-
- else if(href_list["submit_wanted"])
- var/input_param = text2num(href_list["submit_wanted"])
- if(src.msg == "" || src.channel_name == "" || src.scanned_user == "Unknown")
- src.screen = 16
- else
- var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel")
- if(choice=="Confirm")
- if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. See the else below
- var/datum/feed_message/WANTED = new /datum/feed_message
- WANTED.author = src.channel_name
- WANTED.body = src.msg
- WANTED.backup_author = src.scanned_user //I know, a bit wacky
- if(photo)
- WANTED.img = photo.img
- GLOB.news_network.wanted_issue = WANTED
- for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters)
- NEWSCASTER.newsAlert()
- NEWSCASTER.update_icon()
- src.screen = 15
- else
- if(GLOB.news_network.wanted_issue.is_admin_message)
- alert("The wanted issue has been distributed by a Weyland-Yutani higherup. You cannot edit it.","Ok")
- return
- GLOB.news_network.wanted_issue.author = src.channel_name
- GLOB.news_network.wanted_issue.body = src.msg
- GLOB.news_network.wanted_issue.backup_author = src.scanned_user
- if(photo)
- GLOB.news_network.wanted_issue.img = photo.img
- src.screen = 19
-
- src.updateUsrDialog()
-
- else if(href_list["cancel_wanted"])
- if(GLOB.news_network.wanted_issue.is_admin_message)
- alert("The wanted issue has been distributed by a Weyland-Yutani higherup. You cannot take it down.","Ok")
- return
- var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel")
- if(choice=="Confirm")
- GLOB.news_network.wanted_issue = null
- for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters)
- NEWSCASTER.update_icon()
- src.screen=17
- src.updateUsrDialog()
-
- else if(href_list["view_wanted"])
- src.screen=18
- src.updateUsrDialog()
- else if(href_list["censor_channel_author"])
- var/datum/feed_channel/FC = locate(href_list["censor_channel_author"])
- if(FC.is_admin_channel)
- alert("This channel was created by a Weyland-Yutani Officer. You cannot censor it.","Ok")
- return
- if(FC.author != "\[REDACTED\] ")
- FC.backup_author = FC.author
- FC.author = "\[REDACTED\] "
- else
- FC.author = FC.backup_author
- src.updateUsrDialog()
-
- else if(href_list["censor_channel_story_author"])
- var/datum/feed_message/MSG = locate(href_list["censor_channel_story_author"])
- if(MSG.is_admin_message)
- alert("This message was created by a Weyland-Yutani Officer. You cannot censor its author.","Ok")
- return
- if(MSG.author != "\[REDACTED\] ")
- MSG.backup_author = MSG.author
- MSG.author = "\[REDACTED\] "
- else
- MSG.author = MSG.backup_author
- src.updateUsrDialog()
-
- else if(href_list["censor_channel_story_body"])
- var/datum/feed_message/MSG = locate(href_list["censor_channel_story_body"])
- if(MSG.is_admin_message)
- alert("This channel was created by a Weyland-Yutani Officer. You cannot censor it.","Ok")
- return
- if(MSG.img != null)
- MSG.backup_img = MSG.img
- MSG.img = null
- else
- MSG.img = MSG.backup_img
- if(MSG.body != "\[REDACTED\] ")
- MSG.backup_body = MSG.body
- MSG.body = "\[REDACTED\] "
- else
- MSG.body = MSG.backup_body
- src.updateUsrDialog()
-
- else if(href_list["pick_d_notice"])
- var/datum/feed_channel/FC = locate(href_list["pick_d_notice"])
- src.viewing_channel = FC
- src.screen=13
- src.updateUsrDialog()
-
- else if(href_list["toggle_d_notice"])
- var/datum/feed_channel/FC = locate(href_list["toggle_d_notice"])
- if(FC.is_admin_channel)
- alert("This channel was created by a Weyland-Yutani Officer. You cannot place a D-Notice upon it.","Ok")
- return
- FC.censored = !FC.censored
- src.updateUsrDialog()
-
- else if(href_list["view"])
- src.screen=1
- src.updateUsrDialog()
-
- else if(href_list["setScreen"]) //Brings us to the main menu and resets all fields~
- src.screen = text2num(href_list["setScreen"])
- if (src.screen == 0)
- src.scanned_user = "Unknown";
- msg = "";
- src.c_locked=0;
- channel_name="";
- src.viewing_channel = null
- src.updateUsrDialog()
-
- else if(href_list["show_channel"])
- var/datum/feed_channel/FC = locate(href_list["show_channel"])
- src.viewing_channel = FC
- src.screen = 9
- src.updateUsrDialog()
-
- else if(href_list["pick_censor_channel"])
- var/datum/feed_channel/FC = locate(href_list["pick_censor_channel"])
- src.viewing_channel = FC
- src.screen = 12
- src.updateUsrDialog()
-
- else if(href_list["refresh"])
- src.updateUsrDialog()
-
-
-/obj/structure/machinery/newscaster/attackby(obj/item/I as obj, mob/user as mob)
-
- if (src.isbroken)
- playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 25, 1)
- for (var/mob/O in hearers(5, src.loc))
- O.show_message("[user.name] further abuses the shattered [src.name].", SHOW_MESSAGE_VISIBLE)
- else
- if(!(I.flags_item & NOBLUDGEON) && I.force)
- if(I.force <15)
- for (var/mob/O in hearers(5, src.loc))
- O.show_message("[user.name] hits the [src.name] with the [I.name] with no visible effect.", SHOW_MESSAGE_VISIBLE)
- playsound(src.loc, 'sound/effects/Glasshit.ogg', 25, 1)
- else
- src.hitstaken++
- if(src.hitstaken==3)
- for (var/mob/O in hearers(5, src.loc))
- O.show_message("[user.name] smashes the [src.name]!", SHOW_MESSAGE_VISIBLE)
- src.isbroken=1
- playsound(src.loc, 'sound/effects/Glassbr3.ogg', 50, 1)
- else
- for (var/mob/O in hearers(5, src.loc))
- O.show_message("[user.name] forcefully slams the [src.name] with the [I.name]!", SHOW_MESSAGE_VISIBLE)
- playsound(src.loc, 'sound/effects/Glasshit.ogg', 25, 1)
- else
- to_chat(user, "This does nothing. ")
- src.update_icon()
-
-/obj/structure/machinery/newscaster/attack_remote(mob/user as mob)
- return src.attack_hand(user) //or maybe it'll have some special functions? No idea.
-
-/obj/structure/machinery/newscaster/proc/AttachPhoto(mob/user as mob)
- if(photo)
- if(!isRemoteControlling(user))
- photo.forceMove(loc)
- user.put_in_inactive_hand(photo)
- photo = null
- var/obj/item/photo/PH = user.get_active_hand()
- if(istype(PH))
- if(user.drop_inv_item_to_loc(photo, src))
- photo = PH
-
-
-//########################################################################################################################
-//###################################### NEWSPAPER! ######################################################################
-//########################################################################################################################
/obj/item/newspaper
name = "newspaper"
@@ -745,191 +15,3 @@ GLOBAL_LIST_INIT_TYPED(allCasters, /obj/structure/machinery/newscaster, list())
icon_state = "newspaper"
w_class = SIZE_TINY //Let's make it fit in trashbags!
attack_verb = list("bapped")
- var/screen = 0
- var/pages = 0
- var/curr_page = 0
- var/list/datum/feed_channel/news_content = list()
- var/datum/feed_message/important_message = null
- var/scribble=""
- var/scribble_page = null
-
-/obj/item/newspaper/attack_self(mob/user as mob)
- ..()
- if(!ishuman(user))
- to_chat(user, "The paper is full of intelligible symbols!")
- return
-
- var/mob/living/carbon/human/human_user = user
- var/dat
- src.pages = 0
- switch(screen)
- if(0) //Cover
- dat+="The Griffon
"
- dat+="Weyland-Yutani-standard newspaper, for use on Weyland-Yutani� Space Facilities
"
- if(!length(src.news_content))
- if(src.important_message)
- dat+="Contents:** Important Security Announcement** \[page [src.pages+2]\] "
- else
- dat+="Other than the title, the rest of the newspaper is unprinted... "
- else
- dat+="Contents:"
- for(var/datum/feed_channel/NP in src.news_content)
- src.pages++
- if(src.important_message)
- dat+="** Important Security Announcement** \[page [src.pages+2]\] "
- var/temp_page=0
- for(var/datum/feed_channel/NP in src.news_content)
- temp_page++
- dat+="[NP.channel_name] \[page [temp_page+1]\] "
- dat+=" "
- if(scribble_page==curr_page)
- dat+="There is a small scribble near the end of this page... It reads: \"[src.scribble]\" "
- dat+= " "
- if(1) // X channel pages inbetween.
- for(var/datum/feed_channel/NP in src.news_content)
- src.pages++ //Let's get it right again.
- var/datum/feed_channel/C = src.news_content[src.curr_page]
- dat+="[C.channel_name] \[created by: [C.author] \] "
- if(C.censored)
- dat+="This channel was deemed dangerous to the general welfare of the station and therefore marked with a D-Notice . Its contents were not transferred to the newspaper at the time of printing."
- else
- if(!length(C.messages))
- dat+="No Feed stories stem from this channel..."
- else
- dat+=""
- var/i = 0
- for(var/datum/feed_message/MESSAGE in C.messages)
- i++
- dat+="-[MESSAGE.body] "
- if(MESSAGE.img)
- user << browse_rsc(MESSAGE.img, "tmp_photo[i].png")
- dat+=" "
- dat+="\[[MESSAGE.message_type] by [MESSAGE.author] \] "
- dat+=" "
- if(scribble_page==curr_page)
- dat+="There is a small scribble near the end of this page... It reads: \"[src.scribble]\" "
- dat+= " "
- if(2) //Last page
- for(var/datum/feed_channel/NP in src.news_content)
- src.pages++
- if(src.important_message!=null)
- dat+="Wanted Issue:
"
- dat+="Criminal name : [important_message.author] "
- dat+="Description : [important_message.body] "
- dat+="Photo: : "
- if(important_message.img)
- user << browse_rsc(important_message.img, "tmp_photow.png")
- dat+=" "
- else
- dat+="None"
- else
- dat+="Apart from some uninteresting Classified ads, there's nothing on this page... "
- if(scribble_page==curr_page)
- dat+="There is a small scribble near the end of this page... It reads: \"[src.scribble]\" "
- dat+= " "
- else
- dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com"
-
- dat+="[src.curr_page+1]
"
- human_user << browse(dat, "window=newspaper_main;size=300x400")
- onclose(human_user, "newspaper_main")
-
-
-/obj/item/newspaper/Topic(href, href_list)
- var/mob/living/U = usr
- ..()
- if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) ))
- U.set_interaction(src)
- if(href_list["next_page"])
- if(curr_page==src.pages+1)
- return //Don't need that at all, but anyway.
- if(src.curr_page == src.pages) //We're at the middle, get to the end
- src.screen = 2
- else
- if(curr_page == 0) //We're at the start, get to the middle
- src.screen=1
- src.curr_page++
- playsound(src.loc, "pageturn", 15, 1)
-
- else if(href_list["prev_page"])
- if(curr_page == 0)
- return
- if(curr_page == 1)
- src.screen = 0
-
- else
- if(curr_page == src.pages+1) //we're at the end, let's go back to the middle.
- src.screen = 1
- src.curr_page--
- playsound(src.loc, "pageturn", 15, 1)
-
- if (istype(src.loc, /mob))
- src.attack_self(src.loc)
-
-
-/obj/item/newspaper/attackby(obj/item/W as obj, mob/user as mob)
- if(HAS_TRAIT(W, TRAIT_TOOL_PEN))
- if(src.scribble_page == src.curr_page)
- to_chat(user, "There's already a scribble in this page... You wouldn't want to make things too cluttered, would you? ")
- else
- var/s = strip_html( input(user, "Write something", "Newspaper", "") )
- s = strip_html(s)
- if (!s)
- return
- if (!in_range(src, usr) && src.loc != usr)
- return
- src.scribble_page = src.curr_page
- src.scribble = s
- src.attack_self(user)
- return
-
-
-////////////////////////////////////helper procs
-
-
-/obj/structure/machinery/newscaster/proc/scan_user(mob/living/user as mob)
- if(istype(user,/mob/living/carbon/human)) //User is a human
- var/mob/living/carbon/human/human_user = user
- if(human_user.wear_id) //Newscaster scans you
- if(istype(human_user.wear_id, /obj/item/card/id) )
- var/obj/item/card/id/ID = human_user.wear_id
- src.scanned_user ="[ID.registered_name] ([ID.assignment])"
- else
- src.scanned_user ="Unknown"
- else
- src.scanned_user ="Unknown"
- else
- var/mob/living/silicon/ai_user = user
- src.scanned_user = "[ai_user.name] ([ai_user.job])"
-
-
-/obj/structure/machinery/newscaster/proc/print_paper()
- var/obj/item/newspaper/NEWSPAPER = new /obj/item/newspaper
- for(var/datum/feed_channel/FC in GLOB.news_network.network_channels)
- NEWSPAPER.news_content += FC
- if(GLOB.news_network.wanted_issue)
- NEWSPAPER.important_message = GLOB.news_network.wanted_issue
- NEWSPAPER.forceMove(get_turf(src))
- src.paper_remaining--
- return
-
-//Removed for now so these aren't even checked every tick. Left this here in-case Agouri needs it later.
-///obj/structure/machinery/newscaster/process() //Was thinking of doing the icon update through process, but multiple iterations per second does not
-// return //bode well with a newscaster network of 10+ machines. Let's just return it, as it's added in the machines list.
-
-/obj/structure/machinery/newscaster/proc/newsAlert(channel) //This isn't Agouri's work, for it is ugly and vile.
- var/turf/T = get_turf(src) //Who the fuck uses spawn(600) anyway, jesus christ
- if(channel)
- for(var/mob/O in hearers(GLOB.world_view_size-1, T))
- O.show_message(SPAN_NEWSCASTER("[src.name] beeps, \"Breaking news from [channel]!\""), SHOW_MESSAGE_AUDIBLE)
- src.alert = 1
- src.update_icon()
- spawn(30 SECONDS)
- src.alert = 0
- src.update_icon()
- playsound(src.loc, 'sound/machines/twobeep.ogg', 25, 1)
- else
- for(var/mob/O in hearers(GLOB.world_view_size-1, T))
- O.show_message(SPAN_NEWSCASTER("[src.name] beeps, \"Attention! Wanted issue distributed!\""), SHOW_MESSAGE_AUDIBLE)
- playsound(src.loc, 'sound/machines/warning-buzzer.ogg', 25, 1)
- return
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index e87bb56da489..d86a5c0e30d0 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -8,14 +8,23 @@
use_power = USE_POWER_IDLE
idle_power_usage = 50
active_power_usage = 50
+ can_buckle = TRUE
+ /// the borg inside
var/mob/living/occupant = null
- var/max_internal_charge = 15000 // Two charged borgs in a row with default cell
- var/current_internal_charge = 15000 // Starts charged, to prevent power surges on round start
- var/charging_cap_active = 25000 // Active Cap - When cyborg is inside
- var/charging_cap_passive = 2500 // Passive Cap - Recharging internal capacitor when no cyborg is inside
- var/icon_update_tick = 0 // Used to update icon only once every 10 ticks
+ /// Two charged borgs in a row with default cell
+ var/max_internal_charge = 15000
+ /// Starts charged, to prevent power surges on round start
+ var/current_internal_charge = 15000
+ /// Active Cap - When cyborg is inside
+ var/charging_cap_active = 25000
+ /// Passive Cap - Recharging internal capacitor when no cyborg is inside
+ var/charging_cap_passive = 2500
+ /// Used to update icon only once every 10 ticks
+ var/icon_update_tick = 0
+ /// implants to not remove
var/known_implants = list(/obj/item/implant/chem, /obj/item/implant/death_alarm, /obj/item/implant/loyalty, /obj/item/implant/tracking, /obj/item/implant/neurostim)
- can_buckle = TRUE
+ ///stun time upon exiting, if at all
+ var/exit_stun = 2
/obj/structure/machinery/recharge_station/Initialize(mapload, ...)
@@ -183,18 +192,23 @@
/obj/structure/machinery/recharge_station/proc/go_out()
- if(!( src.occupant ))
+ if(!occupant)
return
- //for(var/obj/O in src)
- // O.forceMove(src.loc)
- if (src.occupant.client)
- src.occupant.client.eye = src.occupant.client.mob
- src.occupant.client.perspective = MOB_PERSPECTIVE
- src.occupant.forceMove(loc)
- src.occupant = null
+ var/mob/living/synth = occupant
+
+ if(synth.client)
+ synth.client.eye = synth.client.mob
+ synth.client.perspective = MOB_PERSPECTIVE
+
+ synth.forceMove(loc)
+ if(exit_stun)
+ synth.Stun(exit_stun) //Action delay when going out of a closet
+ if(synth.mobility_flags & MOBILITY_MOVE)
+ synth.visible_message(SPAN_WARNING("[synth] suddenly gets out of [src]!"), SPAN_WARNING("You get out of [src] and get your bearings!"))
+
+ occupant = null
update_icon()
update_use_power(USE_POWER_IDLE)
- return
/obj/structure/machinery/recharge_station/verb/move_eject()
set category = "Object"
diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm
index c97a28932262..459eddc4a544 100644
--- a/code/game/machinery/telecomms/presets.dm
+++ b/code/game/machinery/telecomms/presets.dm
@@ -155,7 +155,7 @@
toggle_state(user) // just flip dat switch
/obj/structure/machinery/telecomms/relay/preset/tower/all
- freq_listening = list()
+ freq_listening = list(UNIVERSAL_FREQ)
/obj/structure/machinery/telecomms/relay/preset/tower/faction
name = "UPP telecommunications relay"
@@ -267,8 +267,8 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers)
to_chat(user, SPAN_WARNING("\The [src.name] needs repairs to have frequencies added to its software!"))
return
var/choice = tgui_input_list(user, "What do you wish to do?", "TC-3T comms tower", list("Wipe communication frequencies", "Add your faction's frequencies"))
- if(choice == "Wipe frequencies")
- freq_listening = null
+ if(choice == "Wipe communication frequencies")
+ freq_listening.Cut()
to_chat(user, SPAN_NOTICE("You wipe the preexisting frequencies from \the [src]."))
return
else if(choice == "Add your faction's frequencies")
@@ -277,12 +277,16 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers)
switch(user.faction)
if(FACTION_SURVIVOR)
freq_listening |= COLONY_FREQ
+ if(FACTION_MARINE in user.faction_group) //FORECON survivors
+ freq_listening |= SOF_FREQ
if(FACTION_CLF)
freq_listening |= CLF_FREQS
if(FACTION_UPP)
freq_listening |= UPP_FREQS
if(FACTION_WY,FACTION_PMC)
freq_listening |= PMC_FREQS
+ if(FACTION_TWE)
+ freq_listening |= RMC_FREQ
if(FACTION_YAUTJA)
to_chat(user, SPAN_WARNING("You decide to leave the human machine alone."))
return
diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm
index 8b8b12dfd170..7652ac601f56 100644
--- a/code/game/machinery/telecomms/telecomunications.dm
+++ b/code/game/machinery/telecomms/telecomunications.dm
@@ -26,7 +26,7 @@ GLOBAL_LIST_EMPTY_TYPED(telecomms_list, /obj/structure/machinery/telecomms)
var/traffic = 0 // value increases as traffic increases
var/netspeed = 5 // how much traffic to lose per tick (50 gigabytes/second * netspeed)
var/list/autolinkers = list() // list of text/number values to link with
- var/list/freq_listening = list() // list of frequencies to tune into: if none, will listen to all
+ var/list/freq_listening = list(UNIVERSAL_FREQ) // list of frequencies to tune into: if universal frequency is included, will listen to all
var/machinetype = 0 // just a hacky way of preventing alike machines from pairing
var/delay = 10 // how many process() ticks to delay per heat
var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub)
diff --git a/code/game/machinery/vending/cm_vending.dm b/code/game/machinery/vending/cm_vending.dm
index 2ba1ac089826..4f825030d627 100644
--- a/code/game/machinery/vending/cm_vending.dm
+++ b/code/game/machinery/vending/cm_vending.dm
@@ -900,7 +900,7 @@ GLOBAL_LIST_EMPTY(vending_products)
for(var/list/vendspec in listed_products)
var/multiplier = vendspec[2]
if(multiplier > 0)
- var/awarded = round(vendspec[2] * scale) // Starting amount
+ var/awarded = round(vendspec[2] * scale, 1) // Starting amount
//Record the multiplier and how many have actually been given out
dynamic_stock_multipliers[vendspec] = list(vendspec[2], awarded)
vendspec[2] = awarded // Override starting amount
@@ -920,8 +920,8 @@ GLOBAL_LIST_EMPTY(vending_products)
var/list/metadata = dynamic_stock_multipliers[vendspec]
var/multiplier = metadata[1] // How much do we multiply scales by
var/previous_max_amount = metadata[2] // How many we already handed out at old scale
- var/projected_max_amount = round(new_scale * multiplier) // How much we would have had total now in total
- var/amount_to_add = round(projected_max_amount - previous_max_amount) // Rounding just in case
+ var/projected_max_amount = round(new_scale * multiplier, 1) // How much we would have had total now in total
+ var/amount_to_add = round(projected_max_amount - previous_max_amount, 1) // Rounding just in case
if(amount_to_add > 0)
metadata[2] += amount_to_add
vendspec[2] += amount_to_add
diff --git a/code/game/machinery/vending/vending_types.dm b/code/game/machinery/vending/vending_types.dm
index 0a7b85cae7e2..92ba81af4d94 100644
--- a/code/game/machinery/vending/vending_types.dm
+++ b/code/game/machinery/vending/vending_types.dm
@@ -200,25 +200,30 @@
/obj/item/storage/fancy/cigarettes/arcturian_ace = 15,
/obj/item/storage/fancy/cigarettes/emeraldgreen = 15,
/obj/item/storage/fancy/cigarettes/wypacket = 15,
+ /obj/item/storage/fancy/cigarettes/trading_card = 15,
/obj/item/storage/fancy/cigarettes/lady_finger = 15,
/obj/item/storage/fancy/cigarettes/blackpack = 10,
/obj/item/storage/fancy/cigar/tarbacks = 5,
+
/obj/item/storage/box/matches = 10,
/obj/item/tool/lighter/random = 20,
/obj/item/tool/lighter/zippo = 5,
+
)
prices = list(
/obj/item/storage/fancy/cigarettes/kpack = 40,
/obj/item/storage/fancy/cigarettes/arcturian_ace = 25,
/obj/item/storage/fancy/cigarettes/emeraldgreen = 35,
- /obj/item/storage/fancy/cigarettes/wypacket = 35,
+ /obj/item/storage/fancy/cigarettes/wypacket = 30,
+ /obj/item/storage/fancy/cigarettes/trading_card = 35,
/obj/item/storage/fancy/cigarettes/lady_finger = 30,
/obj/item/storage/fancy/cigarettes/blackpack = 75,
/obj/item/storage/fancy/cigar/tarbacks = 35,
/obj/item/storage/box/matches = 1,
/obj/item/tool/lighter/random = 10,
/obj/item/tool/lighter/zippo = 25,
+
)
/obj/structure/machinery/vending/security
@@ -407,7 +412,7 @@
name = "\improper Rec-Vend"
desc = "Contains Weyland-Yutani approved recreational items, like Walkmans and Cards."
icon_state = "walkman"
- product_ads = "The only place to have fun in the entire Marine Corps!;You'll find no better music from here to Arcturus!;Instructions not included with decks of cards!;No volume controls - you don't need them!;All products responsibly made by people having just as much fun as you will be!"
+ product_ads = "The only place to have fun in the entire Marine Corps!;You'll find no better music from here to Arcturus!;Instructions not included with decks of cards!;No volume controls - you don't need them!;All products responsibly made by people having just as much fun as you will be!;Say goodbye to the lucky strike military tobacco monopoly, with the new Weyland Yutani Military Trading Card Gold cigarette pack!"
vend_delay = 0.5 SECONDS
idle_power_usage = 200
@@ -436,6 +441,10 @@
/obj/item/tool/pen/blue = 10,
/obj/item/tool/pen/red = 10,
/obj/item/tool/pen/fountain = 3,
+ /obj/item/storage/fancy/cigarettes/trading_card = 20,
+ /obj/item/storage/fancy/trading_card = 20,
+ /obj/item/toy/trading_card = 50,
+
)
contraband = list(/obj/item/toy/sword = 2)
@@ -463,6 +472,10 @@
/obj/item/tool/pen/blue = 2,
/obj/item/tool/pen/red = 2,
/obj/item/tool/pen/fountain = 30,
+ /obj/item/storage/fancy/cigarettes/trading_card = 30,
+ /obj/item/storage/fancy/trading_card = 20,
+ /obj/item/toy/trading_card = 5,
+
)
product_type = VENDOR_PRODUCT_TYPE_RECREATIONAL
diff --git a/code/game/machinery/vending/vendor_types/crew/combat_correspondent.dm b/code/game/machinery/vending/vendor_types/crew/combat_correspondent.dm
new file mode 100644
index 000000000000..b0894ca2a5a2
--- /dev/null
+++ b/code/game/machinery/vending/vendor_types/crew/combat_correspondent.dm
@@ -0,0 +1,51 @@
+//------------ CC CLOTHING VENDOR---------------
+
+GLOBAL_LIST_INIT(cm_vending_clothing_combat_correspondent, list(
+ list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
+ list("Essential Reporter's Set", 0, /obj/effect/essentials_set/cc, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
+ list("Portable Press Fax Machine", 0, /obj/item/device/fax_backpack, CIVILIAN_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED),
+ list("Press Broadcasting Camera", 0, /obj/item/device/camera/broadcasting, CIVILIAN_CAN_BUY_UTILITY, VENDOR_ITEM_RECOMMENDED),
+ list("Leather Satchel", 0, /obj/item/storage/backpack/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR),
+
+ list("UNIFORM (CHOOSE 1)", 0, null, null, null),
+ list("Black Uniform", 0, /obj/item/clothing/under/marine/reporter/black, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
+ list("Orange Uniform", 0, /obj/item/clothing/under/marine/reporter/orange, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
+ list("Red Uniform", 0, /obj/item/clothing/under/marine/reporter/red, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
+
+ list("ARMOR (CHOOSE 1)", 0, null, null, null),
+ list("Combat Correspondent's Armor", 0, /obj/item/clothing/suit/storage/marine/light/reporter, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED),
+ list("Blue Vest", 0, /obj/item/clothing/suit/storage/jacket/marine/reporter/blue, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("Black Vest", 0, /obj/item/clothing/suit/storage/hazardvest/black, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("Black Coat", 0, /obj/item/clothing/suit/storage/jacket/marine/reporter/black, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("Green Coat", 0, /obj/item/clothing/suit/storage/jacket/marine/reporter/green, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+
+ list("HELMET (CHOOSE 1)", 0, null, null, null),
+ list("Combat Correspondent's Helmet", 0, /obj/item/clothing/head/helmet/marine/reporter, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED),
+ list("Combat Correspondent's Cap", 0, /obj/item/clothing/head/cmcap/reporter, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("Fedora", 0, /obj/item/clothing/head/fedora, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+
+ list("REFILLS", 0, null, null, null),
+ list("Camera", 10, /obj/item/device/camera, null, VENDOR_ITEM_REGULAR),
+ list("Camera Film", 5, /obj/item/device/camera_film, null, VENDOR_ITEM_REGULAR),
+ list("Toner", 5, /obj/item/device/toner, null, VENDOR_ITEM_REGULAR),
+ list("Regulation Tapes", 15, /obj/item/storage/box/tapes, null, VENDOR_ITEM_REGULAR),
+ list("Paper Bin", 10, /obj/item/paper_bin/uscm, null, VENDOR_ITEM_REGULAR),
+ ))
+
+/obj/structure/machinery/cm_vending/clothing/combat_correspondent
+ name = "\improper ColMarTech Combat Correspondent Equipment Rack"
+ desc = "An automated rack hooked up to a colossal storage of Reporter standard-issue equipment."
+ req_access = list(ACCESS_PRESS)
+ vendor_role = list(JOB_COMBAT_REPORTER)
+
+/obj/structure/machinery/cm_vending/clothing/combat_correspondent/get_listed_products(mob/user)
+ return GLOB.cm_vending_clothing_combat_correspondent
+
+/obj/effect/essentials_set/cc
+ spawned_gear_list = list(
+ /obj/item/device/flashlight,
+ /obj/item/tool/pen,
+ /obj/item/device/binoculars,
+ /obj/item/notepad,
+ /obj/item/device/taperecorder,
+ )
diff --git a/code/game/machinery/vending/vendor_types/crew/engineering.dm b/code/game/machinery/vending/vendor_types/crew/engineering.dm
new file mode 100644
index 000000000000..9d5a809e52f7
--- /dev/null
+++ b/code/game/machinery/vending/vendor_types/crew/engineering.dm
@@ -0,0 +1,74 @@
+//------------ MT CLOTHING VENDOR---------------
+
+GLOBAL_LIST_INIT(cm_vending_clothing_maintenance_technician, list(
+ list("MAINTENANCE SET (MANDATORY)", 0, null, null, null),
+ list("Essential Maintenance Set", 0, /obj/effect/essentials_set/maintenance, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
+
+ list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
+ list("Insulated Gloves", 0, /obj/item/clothing/gloves/yellow, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Headset", 0, /obj/item/device/radio/headset/almayer/mt, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
+ list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
+ list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY),
+
+ list("HELMET (CHOOSE 1)", 0, null, null, null),
+ list("Beret, Engineering", 0, /obj/item/clothing/head/beret/eng, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("White Hardhat", 0, /obj/item/clothing/head/hardhat/white, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("Orange Hardhat", 0, /obj/item/clothing/head/hardhat/orange, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("Blue Hardhat", 0, /obj/item/clothing/head/hardhat/dblue, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("Welding Helmet", 0, /obj/item/clothing/head/welding, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+
+ list("SUIT (CHOOSE 1)", 0, null, null, null),
+ list("Black Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest/black, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("Blue Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest/blue, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("Orange Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("Yellow Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest/yellow, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+
+ list("BACKPACK (CHOOSE 1)", 0, null, null, null),
+ list("Technician Backpack", 0, /obj/item/storage/backpack/marine/tech, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR),
+ list("Technician Satchel", 0, /obj/item/storage/backpack/marine/satchel/tech, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR),
+ list("Technician Welderpack", 0, /obj/item/storage/backpack/marine/engineerpack, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR),
+ list("Technician Welder-Satchel", 0, /obj/item/storage/backpack/marine/engineerpack/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED),
+ list("Technician Welder Chestrig", 0, /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR),
+
+ list("BELT (CHOOSE 1)", 0, null, null, null),
+ list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
+ list("M276 Toolbelt Rig (Full)", 0, /obj/item/storage/belt/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_MANDATORY),
+
+ list("POUCHES (CHOOSE 2)", 0, null, null, null),
+ list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Tools Pouch (Full)", 0, /obj/item/storage/pouch/tools/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+
+ list("MASK (CHOOSE 1)", 0, null, null, null),
+ list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
+ list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
+ list("Rebreather", 0, /obj/item/clothing/mask/rebreather, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
+
+ list("ACCESSORIES (CHOOSE 1)", 0, null, null, null),
+ list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_RECOMMENDED),
+ list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR),
+ list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR),
+ ))
+
+/obj/structure/machinery/cm_vending/clothing/maintenance_technician
+ name = "\improper ColMarTech Maintenance Technician Equipment Rack"
+ desc = "An automated rack hooked up to a colossal storage of Maintenance Technician standard-issue equipment."
+ req_access = list(ACCESS_MARINE_ENGINEERING)
+ vendor_role = list(JOB_MAINT_TECH)
+
+/obj/structure/machinery/cm_vending/clothing/maintenance_technician/get_listed_products(mob/user)
+ return GLOB.cm_vending_clothing_maintenance_technician
+
+/obj/effect/essentials_set/maintenance
+ spawned_gear_list = list(
+ /obj/item/device/lightreplacer,
+ /obj/item/device/demo_scanner,
+ /obj/item/storage/bag/trash,
+ /obj/item/storage/toolbox/mechanical,
+ /obj/item/device/flashlight,
+ )
diff --git a/code/game/machinery/vending/vendor_types/crew/medical.dm b/code/game/machinery/vending/vendor_types/crew/medical.dm
index 29838f3b57d0..af519a908ee6 100644
--- a/code/game/machinery/vending/vendor_types/crew/medical.dm
+++ b/code/game/machinery/vending/vendor_types/crew/medical.dm
@@ -43,6 +43,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_doctor, list(
list("UNIFORM (CHOOSE 1)", 0, null, null, null),
list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED),
list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
+ list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
list("SUIT (CHOOSE 1)", 0, null, null, null),
@@ -106,7 +107,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_nurse, list(
list("Prescription Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY),
list("UNIFORM (CHOOSE 1)", 0, null, null, null),
- list("Medical Nurse Scrubs", 0, /obj/item/clothing/under/rank/medical/nurse, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
+ list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED),
list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
@@ -178,6 +179,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_researcher, list(
list("Researcher Uniform", 0, /obj/item/clothing/under/marine/officer/researcher, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED),
list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
+ list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
list("SUIT (CHOOSE 1)", 0, null, null, null),
diff --git a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm
index 96e7bf058924..a5d3cbe85b01 100644
--- a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm
+++ b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm
@@ -162,6 +162,9 @@ GLOBAL_LIST_INIT(cm_vending_clothing_chief_engineer, list(
list("M41A Pulse Rifle MK2", 0, /obj/item/storage/box/guncase/m41a, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR),
list("M240 Incinerator Unit", 0, /obj/item/storage/box/guncase/flamer, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR),
+ list("Spare Equipment", 0, null, null, null),
+ list("Technician's Headset", 15, /obj/item/device/radio/headset/almayer/mt, null, VENDOR_ITEM_REGULAR),
+
))
@@ -228,6 +231,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_cmo, list(
list("Doctor Uniform", 0, /obj/item/clothing/under/rank/medical, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
+ list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR),
list("SUIT (CHOOSE 1)", 0, null, null, null),
@@ -287,6 +291,10 @@ GLOBAL_LIST_INIT(cm_vending_clothing_cmo, list(
list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR),
list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR),
list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR),
+
+ list("Spare Equipment", 0, null, null, null),
+ list("Doctor's Headset", 15, /obj/item/device/radio/headset/almayer/doc, null, VENDOR_ITEM_REGULAR),
+ list("Researcher's Headset", 15, /obj/item/device/radio/headset/almayer/research, null, VENDOR_ITEM_REGULAR),
))
diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm
index 2395d572bad7..c3fa77be3798 100644
--- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm
+++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm
@@ -183,6 +183,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth, list(
GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list(
list("USCM UNIFORMS", 0, null, null, null),
list("Medical Scrubs, Blue", 12, /obj/item/clothing/under/rank/medical/blue, null, VENDOR_ITEM_REGULAR),
+ list("Medical Scrubs, Light Blue", 0, /obj/item/clothing/under/rank/medical/lightblue, null, VENDOR_ITEM_REGULAR),
list("Medical Scrubs, Green", 12, /obj/item/clothing/under/rank/medical/green, null, VENDOR_ITEM_REGULAR),
list("Medical Scrubs, Purple", 12, /obj/item/clothing/under/rank/medical/purple, null, VENDOR_ITEM_REGULAR),
list("Medical Scrubs, White", 12, /obj/item/clothing/under/rank/medical, null, VENDOR_ITEM_REGULAR),
diff --git a/code/game/machinery/vending/vendor_types/requisitions.dm b/code/game/machinery/vending/vendor_types/requisitions.dm
index 1a9ec9156e20..9ce8390095e8 100644
--- a/code/game/machinery/vending/vendor_types/requisitions.dm
+++ b/code/game/machinery/vending/vendor_types/requisitions.dm
@@ -409,6 +409,7 @@
list("Engineering Radio Encryption Key", 5, /obj/item/device/encryptionkey/engi, VENDOR_ITEM_REGULAR),
list("Intel Radio Encryption Key", 5, /obj/item/device/encryptionkey/intel, VENDOR_ITEM_REGULAR),
list("JTAC Radio Encryption Key", 5, /obj/item/device/encryptionkey/jtac, VENDOR_ITEM_REGULAR),
+ list("Medical Radio Encryption Key", 5, /obj/item/device/encryptionkey/med, VENDOR_ITEM_REGULAR),
list("Sentry Gun Network Encryption Key", 8, /obj/item/device/encryptionkey/sentry_laptop, VENDOR_ITEM_REGULAR),
list("Marine Radio Headset", 5, /obj/item/device/radio/headset/almayer, VENDOR_ITEM_REGULAR),
list("Supply Radio Encryption Key", 5, /obj/item/device/encryptionkey/req, VENDOR_ITEM_REGULAR),
diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm
index 6d015c203bd7..95864404f4e8 100644
--- a/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm
+++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm
@@ -36,16 +36,22 @@ GLOBAL_LIST_INIT(cm_vending_gear_engi, list(
list("M20 Mine Box (x4 mines)", 18, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR),
list("M40 MFHS Metal Foam Grenade", 5, /obj/item/explosive/grenade/metal_foam, null, VENDOR_ITEM_REGULAR),
- list("AMMUNITION", 0, null, null, null),
+ list("PRIMARY AMMUNITION", 0, null, null, null),
list("M4RA AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR),
list("M39 AP Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR),
list("M39 Extended Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR),
list("M41A AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR),
list("M41A Extended Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR),
+ list("SIDEARM AMMUNITION", 0, null, null, null),
+ list("M44 Heavy Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 HP Magazine", 3, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 AP Magazine", 3, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR),
+ list("VP78 Magazine", 3, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR),
+
list("ARMORS", 0, null, null, null),
list("M3 B12 Pattern Marine Armor", 24, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR),
- list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR),
+ list("M4 Pattern Armor", 16, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR),
list("RESTRICTED FIREARMS", 0, null, null, null),
list("VP78 Pistol", 8, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR),
diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm
index 6c7cbf2db740..0039d5b03250 100644
--- a/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm
+++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm
@@ -16,7 +16,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_leader, list(
list("Basic Engineering Supplies", 0, /obj/item/storage/box/kit/engineering_supply_kit, MARINE_CAN_BUY_KIT, VENDOR_ITEM_REGULAR),
list("ARMORS", 0, null, null, null),
- list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR),
+ list("M4 Pattern Armor", 16, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR),
list("CLOTHING ITEMS", 0, null, null, null),
list("Machete Scabbard (Full)", 4, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR),
@@ -79,12 +79,20 @@ GLOBAL_LIST_INIT(cm_vending_gear_leader, list(
list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR),
list("Roller Bed", 2, /obj/item/roller, null, VENDOR_ITEM_REGULAR),
- list("SPECIAL AMMUNITION", 0, null, null, null),
+ list("PRIMARY AMMUNITION", 0, null, null, null),
list("M4RA AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR),
list("M39 AP Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR),
list("M39 Extended Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR),
list("M41A AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR),
list("M41A Extended Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR),
+
+ list("SIDEARM AMMUNITION", 0, null, null, null),
+ list("M44 Heavy Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 HP Magazine", 3, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 AP Magazine", 3, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR),
+ list("VP78 Magazine", 3, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR),
+
+ list("SPECIAL AMMUNITION", 0, null, null, null),
list("M240 Incinerator Tank (Napthal)", 3, /obj/item/ammo_magazine/flamer_tank, null, VENDOR_ITEM_REGULAR),
list("M240 Incinerator Tank (B-Gel)", 3, /obj/item/ammo_magazine/flamer_tank/gellied, null, VENDOR_ITEM_REGULAR),
diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm
index 6b4954ee5e92..b29b528ded13 100644
--- a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm
+++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm
@@ -58,16 +58,22 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list(
list("M74 AGM-Hornet Airburst Packet (x3 airburst grenades", 20, /obj/item/storage/box/packet/hornet, null, VENDOR_ITEM_REGULAR),
list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR),
- list("AMMUNITION", 0, null, null, null),
+ list("PRIMARY AMMUNITION", 0, null, null, null),
list("M4RA AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR),
list("M39 AP Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR),
list("M39 Extended Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR),
list("M41A AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR),
list("M41A Extended Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR),
+ list("SIDEARM AMMUNITION", 0, null, null, null),
+ list("M44 Heavy Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 HP Magazine", 3, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 AP Magazine", 3, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR),
+ list("VP78 Magazine", 3, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR),
+
list("ARMORS", 0, null, null, null),
- list("M3 B12 Pattern Marine Armor", 28, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR),
- list("M4 Pattern Armor", 28, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR),
+ list("M3 B12 Pattern Marine Armor", 24, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR),
+ list("M4 Pattern Armor", 16, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR),
list("RESTRICTED FIREARMS", 0, null, null, null),
list("VP78 Pistol", 8, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR),
diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm
index 27c041312765..2736de3a981d 100644
--- a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm
+++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm
@@ -130,6 +130,7 @@
list("Technician Backpack", round(scale * 15), /obj/item/storage/backpack/marine/tech, VENDOR_ITEM_REGULAR),
list("Medical Backpack", round(scale * 15), /obj/item/storage/backpack/marine/medic, VENDOR_ITEM_REGULAR),
list("USCM Satchel", round(scale * 15), /obj/item/storage/backpack/marine/satchel, VENDOR_ITEM_REGULAR),
+ list("USCM Chestrig", round(scale * 15), /obj/item/storage/backpack/marine/satchel/chestrig, VENDOR_ITEM_REGULAR),
list("USCM Technical Satchel", round(scale * 15), /obj/item/storage/backpack/marine/satchel/tech, VENDOR_ITEM_REGULAR),
list("USCM Technical Chestrig", round(scale * 15), /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, VENDOR_ITEM_REGULAR),
list("Medical Satchel", round(scale * 15), /obj/item/storage/backpack/marine/satchel/medic, VENDOR_ITEM_REGULAR),
diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm
index 15661cc4b661..0b980fc31960 100644
--- a/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm
+++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm
@@ -67,23 +67,28 @@ GLOBAL_LIST_INIT(cm_vending_clothing_marine, list(
list("M74 AGM-Hornet Airburst Packet (x3 airburst grenades", 15, /obj/item/storage/box/packet/hornet, null, VENDOR_ITEM_REGULAR),
list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR),
- list("AMMUNITION", 0, null, null, null),
+ list("PRIMARY AMMUNITION", 0, null, null, null),
list("M4RA AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR),
list("M39 AP Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR),
list("M39 Extended Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR),
list("M41A AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR),
list("M41A Extended Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR),
+
+ list("SIDEARM AMMUNITION", 0, null, null, null),
list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR),
+ list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR),
list("ARMORS", 0, null, null, null),
list("M3 B12 Pattern Marine Armor", 30, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR),
- list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR),
+ list("M4 Pattern Armor", 20, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR),
list("CLOTHING ITEMS", 0, null, null, null),
list("Webbing", 10, /obj/item/clothing/accessory/storage/webbing, null, VENDOR_ITEM_REGULAR),
list("Brown Webbing Vest", 15, /obj/item/clothing/accessory/storage/black_vest/brown_vest, null, VENDOR_ITEM_REGULAR),
list("Black Webbing Vest", 15, /obj/item/clothing/accessory/storage/black_vest, null, VENDOR_ITEM_REGULAR),
- list("Drop Pouch", 15, /obj/item/clothing/accessory/storage/droppouch, null, VENDOR_ITEM_REGULAR),
+ list("Drop Pouch", 10, /obj/item/clothing/accessory/storage/droppouch, null, VENDOR_ITEM_REGULAR),
list("Shoulder Holster", 15, /obj/item/clothing/accessory/storage/holster, null, VENDOR_ITEM_REGULAR),
list("Machete Scabbard (Full)", 15, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR),
list("Machete Pouch (Full)", 15, /obj/item/storage/pouch/machete/full, null, VENDOR_ITEM_REGULAR),
diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm
index 04061370168d..8c64e48f0f84 100644
--- a/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm
+++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm
@@ -20,6 +20,16 @@ GLOBAL_LIST_INIT(cm_vending_gear_smartgun, list(
list("M74 AGM-Hornet Airburst Packet (x3 airburst grenades", 20, /obj/item/storage/box/packet/hornet, null, VENDOR_ITEM_REGULAR),
list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR),
+ list("SIDEARM AMMUNITION", 0, null, null, null),
+ list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR),
+ list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR),
+
+ list("RESTRICTED FIREARMS", 0, null, null, null),
+ list("VP78 Pistol", 15, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR),
+ list("SU-6 Smart Pistol", 15, /obj/item/storage/box/guncase/smartpistol, null, VENDOR_ITEM_REGULAR),
+
list("CLOTHING ITEMS", 0, null, null, null),
list("Machete Scabbard (Full)", 6, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR),
list("Fuel Tank Strap Pouch", 5, /obj/item/storage/pouch/flamertank, null, VENDOR_ITEM_REGULAR),
diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm
index d9ba7ee97c26..a013ddb15212 100644
--- a/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm
+++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm
@@ -1,17 +1,6 @@
//------------GEAR VENDOR---------------
GLOBAL_LIST_INIT(cm_vending_gear_tl, list(
-
- list("AMMUNITION", 0, null, null, null),
- list("M4RA AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR),
- list("M39 AP Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR),
- list("M39 Extended Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR),
- list("M41A AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR),
- list("M41A Extended Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR),
- list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR),
- list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR),
- list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR),
-
list("EXPLOSIVES", 0, null, null, null),
list("M40 HEDP High Explosive Packet (x3 grenades)", 18, /obj/item/storage/box/packet/high_explosive, null, VENDOR_ITEM_REGULAR),
list("M40 HIDP Incendiary Packet (x3 grenades)", 18, /obj/item/storage/box/packet/incendiary, null, VENDOR_ITEM_REGULAR),
@@ -24,6 +13,19 @@ GLOBAL_LIST_INIT(cm_vending_gear_tl, list(
list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR),
list("M40 MFHS Metal Foam Grenade", 5, /obj/item/explosive/grenade/metal_foam, null, VENDOR_ITEM_REGULAR),
+ list("PRIMARY AMMUNITION", 0, null, null, null),
+ list("M4RA AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR),
+ list("M39 AP Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR),
+ list("M39 Extended Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR),
+ list("M41A AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR),
+ list("M41A Extended Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR),
+
+ list("SIDEARM AMMUNITION", 0, null, null, null),
+ list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR),
+ list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR),
+ list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR),
+
list("RESTRICTED FIREARMS", 0, null, null, null),
list("VP78 Pistol", 10, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR),
list("SU-6 Smart Pistol", 15, /obj/item/storage/box/guncase/smartpistol, null, VENDOR_ITEM_REGULAR),
diff --git a/code/game/objects/effects/elevator.dm b/code/game/objects/effects/elevator.dm
index 443652a7f7a7..f3b6da2e442a 100644
--- a/code/game/objects/effects/elevator.dm
+++ b/code/game/objects/effects/elevator.dm
@@ -1,6 +1,6 @@
-/obj/effect/elevator/supply
- name = "\improper empty space"
- desc = "There seems to be an awful lot of machinery down below"
+/obj/effect/elevator
+ name = "\proper empty space"
+ desc = "There seems to be an awful lot of machinery down below..."
icon = 'icons/effects/160x160.dmi'
icon_state = "supply_elevator_lowered"
unacidable = TRUE
@@ -8,17 +8,25 @@
layer = ABOVE_TURF_LAYER
appearance_flags = KEEP_TOGETHER
-/obj/effect/elevator/supply/ex_act(severity)
+/obj/effect/elevator/ex_act(severity)
return
-/obj/effect/elevator/supply/Destroy(force)
+/obj/effect/elevator/Destroy(force)
if(!force)
return QDEL_HINT_LETMELIVE
return ..()
-/obj/effect/elevator/supply/visible_message() //Prevents message spam with empty elevator shaft - "The empty space falls into the depths!"
+// Don't move with the elevator.
+/obj/effect/elevator/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock)
+ return
+/obj/effect/elevator/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation)
+ return
+/obj/effect/elevator/lateShuttleMove(turf/oldT, list/movement_force, move_dir)
return
/obj/effect/elevator/animation_overlay
blend_mode = BLEND_INSET_OVERLAY
appearance_flags = KEEP_TOGETHER
+
+/obj/effect/elevator/vehicle
+ icon_state = "vehicle_elevator_lowered"
diff --git a/code/game/objects/effects/landmarks/landmarks.dm b/code/game/objects/effects/landmarks/landmarks.dm
index a7afb80ef080..bf3b952edcf5 100644
--- a/code/game/objects/effects/landmarks/landmarks.dm
+++ b/code/game/objects/effects/landmarks/landmarks.dm
@@ -90,9 +90,11 @@
return
GLOB.nightmare_landmarks[insert_tag] = get_turf(src)
/obj/effect/landmark/nightmare/Destroy()
- if(insert_tag && autoremove \
- && GLOB.nightmare_landmarks[insert_tag] == get_turf(src))
- GLOB.nightmare_landmarks.Remove(insert_tag)
+ if(insert_tag)
+ var/turf/turf = get_turf(src)
+ if(autoremove && GLOB.nightmare_landmarks[insert_tag] == turf)
+ GLOB.nightmare_landmarks.Remove(insert_tag)
+ GLOB.nightmare_landmark_tags_removed += insert_tag
return ..()
/obj/effect/landmark/ert_spawns/distress
diff --git a/code/game/objects/effects/landmarks/survivor_spawner.dm b/code/game/objects/effects/landmarks/survivor_spawner.dm
index 39c7dbffa6ee..803d73151aeb 100644
--- a/code/game/objects/effects/landmarks/survivor_spawner.dm
+++ b/code/game/objects/effects/landmarks/survivor_spawner.dm
@@ -35,13 +35,27 @@
intro_text = list("You are a survivor of a crash landing! ",\
"You are NOT aware of the xenomorph threat. ",\
"Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp. ")
- story_text = "You are a soldier of Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rose up and noticed that one of your limbs is at a weird angle, broken. You looked at other survivors, also limping and trying to fix their broken bones."
+ story_text = "You are a soldier fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked at other survivors, also limping and trying to tend to their wounds, luckily, none of you were seriously hurt."
roundstart_damage_min = 3
roundstart_damage_max = 10
roundstart_damage_times = 2
spawn_priority = SPAWN_PRIORITY_HIGH
+/obj/effect/landmark/survivor_spawner/lv624_crashed_clf_leader
+ hostile = TRUE
+ equipment = /datum/equipment_preset/clf/leader
+ synth_equipment = /datum/equipment_preset/clf/synth
+ intro_text = list("You are a survivor of a crash landing! ",\
+ "You are NOT aware of the xenomorph threat. ",\
+ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp. ")
+ story_text = "You are the leader of a squad fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants and under your orders, you and your team small boarded a small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of your pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked up at the few remaining survivors of your squad, all limping and trying to tend to their wounds, luckily, none of your men were seriously hurt, and all seem to be responsive to your orders."
+ roundstart_damage_min = 2
+ roundstart_damage_max = 10
+ roundstart_damage_times = 2
+
+ spawn_priority = SPAWN_PRIORITY_VERY_HIGH
+
/obj/effect/landmark/survivor_spawner/lv624_crashed_clf_engineer
hostile = TRUE
equipment = /datum/equipment_preset/clf/engineer
@@ -49,7 +63,7 @@
intro_text = list("You are a survivor of a crash landing! ",\
"You are NOT aware of the xenomorph threat.",\
"Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.")
- story_text = "You are a soldier of Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rose up and noticed that one of your limbs is at a weird angle, broken. You looked at other survivors, also limping and trying to fix their broken bones."
+ story_text = "You are an engineer fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked at other survivors, also limping and trying to tend to their wounds, luckily, none of you were seriously hurt."
roundstart_damage_min = 3
roundstart_damage_max = 10
roundstart_damage_times = 2
@@ -63,13 +77,35 @@
intro_text = list("You are a survivor of a crash landing! ",\
"You are NOT aware of the xenomorph threat.",\
"Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.")
- story_text = "You are a soldier of Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rose up and noticed that one of your limbs is at a weird angle, broken. You looked at other survivors, also limping and trying to fix their broken bones."
+ story_text = "You are a doctor fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked at other survivors, also limping and trying to tend to their wounds, luckily, none of you were seriously hurt."
roundstart_damage_min = 3
roundstart_damage_max = 10
roundstart_damage_times = 2
spawn_priority = SPAWN_PRIORITY_VERY_HIGH
+//Weyland-Yutani Survivors//
+
+/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_cl
+ equipment = /datum/equipment_preset/survivor/wy/executive
+ synth_equipment = /datum/equipment_preset/synth/survivor/wy/security_synth
+ intro_text = list("You are the last alive Executive of Lazarus Landing! ",\
+ "You are aware of the xenomorph threat. ",\
+ "Your primary objective is to survive the outbreak. ")
+ story_text = "You are a Corporate Liaison stationed on LV-624 from Weyland-Yutani. You were tipped off about some very peculiar looking eggs recovered from the alien temple North-East of the colony. Being the smart Executive the Company hired you to be, you decided to prepare your office for the worst when the first 'facehugger' was born in the vats of the Research Dome. Turned out, you were right, everyone who called you crazy and called these the new 'synthetics' is now dead, you along with your Corporate Security detail are the only survivors due to your paranoia. The xenomorph onslaught was relentless, a fuel tank was shot by one of the Officers, leading to the destruction of a part of the dome, along with alot of the defences being melted. You must survive and find a way to contact Weyland-Yutani."
+
+ spawn_priority = SPAWN_PRIORITY_VERY_HIGH
+
+/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_goon
+ equipment = /datum/equipment_preset/survivor/goon
+ synth_equipment = /datum/equipment_preset/synth/survivor/wy/security_synth
+ intro_text = list("You are a Corporate Security Officer! ",\
+ "You are aware of the xenomorph threat. ",\
+ "Your primary objective is to survive the outbreak. ")
+ story_text = "You are a Corporate Security Officer stationed on LV-624 from Weyland-Yutani. Suddenly one day you were pulled aside by the Corporate Liaison and told to bring supplies from both Engineering and the Marshals Offices to their office, and fast. You began fortifying the Corporate Dome and was told by the Executive that something big will ravage the entire colony, excluding you. Turns out, the Liaison was right, these so called 'xenomorphs' broke containment from the Research Dome and began destroying the entire colony. Once they came for the Dome and tried to kill all of you, you barely managed to hold them off even after losing one Officer and alot of the defences. The Liaison said they will soon find a way to contact Weyland-Yutani and to remain steadfast until rescue arrives."
+
+ spawn_priority = SPAWN_PRIORITY_HIGH
+
/obj/effect/landmark/survivor_spawner/bigred_crashed_pmc
equipment = /datum/equipment_preset/survivor/pmc
synth_equipment = /datum/equipment_preset/synth/survivor/pmc
@@ -115,13 +151,75 @@
intro_text = list("You are a survivor of a crash landing! ",\
"You are NOT aware of the xenomorph threat. ",\
"Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp. ")
- story_text = "You are an Assistant Manager from Weyland-Yutani. You were being escorted onboard a PMC ship to Solaris Ridge. On the way, the ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, the pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconscious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. The shipcrew lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You must get up and find a way to contact Weyland-Yutani."
+ story_text = "You are an Assistant Manager from Weyland-Yutani. You were being escorted onboard a PMC ship to Solaris Ridge. On the way, the ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, the pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconscious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your PMC escorts lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You must get up and find a way to contact Weyland-Yutani."
roundstart_damage_min = 3
roundstart_damage_max = 10
roundstart_damage_times = 2
spawn_priority = SPAWN_PRIORITY_VERY_HIGH
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_cl
+ equipment = /datum/equipment_preset/survivor/wy/asstmanager
+ synth_equipment = /datum/equipment_preset/synth/survivor/wy/corporate_synth
+ intro_text = list("You are the last alive Senior Administrator on the Colony! ",\
+ "You are aware of the xenomorph threat. ",\
+ "Your primary objective is to survive the outbreak. ")
+ story_text = "You are the Assistant Operations Manager stationed on 'Ifrit' by Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons you one-day said were 'useless' and a waste of Company dollars. You remember that Administrator Stahl sent out a distress beacon to any ship in range, hoping to get picked up by the Company, he ran to the Spaceport. You have not seen him since. In their attempts at trying to breach in, the so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani."
+
+ spawn_priority = SPAWN_PRIORITY_VERY_HIGH
+
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc
+ equipment = /datum/equipment_preset/survivor/doctor
+ synth_equipment = /datum/equipment_preset/synth/survivor/emt_synth
+ intro_text = list("You are a Medical Doctor on the Colony! ",\
+ "You are aware of the xenomorph threat. ",\
+ "Your primary objective is to survive the outbreak. ")
+ story_text = "You are a Doctor working on 'Ifrit' for Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons. You remember that the xenomorphs have a sort of implanter which latches on to your face and then... something bursts out of your chest, through the rib cage. You had plenty of those cases at the Medical Bay. In their attempts at trying to breach in, the so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani."
+
+ spawn_priority = SPAWN_PRIORITY_HIGH
+
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_sci
+ equipment = /datum/equipment_preset/survivor/scientist
+ synth_equipment = /datum/equipment_preset/synth/survivor/scientist_synth
+ intro_text = list("You are a Weyland-Yutani Scientist on the Colony! ",\
+ "You are aware of the xenomorph threat. ",\
+ "Your primary objective is to survive the outbreak. ")
+ story_text = "You are a Scientist working on 'Ifrit' for Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons. You remember that the XX-121 species, codenamed that by Research Director Clarke, have a variety of different species, what you can assume a 'leader' of some sort and that their acid is deadly should it come in contact with you or the shutters. You ran far from the labs and have not seen some your coworkers since. In their attempts at trying to breach in, these so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani."
+
+ spawn_priority = SPAWN_PRIORITY_HIGH
+
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_civ
+ equipment = /datum/equipment_preset/survivor/civilian
+ synth_equipment = /datum/equipment_preset/synth/survivor/chef_synth
+ intro_text = list("You are a worker on the Colony! ",\
+ "You are aware of the xenomorph threat. ",\
+ "Your primary objective is to survive the outbreak. ")
+ story_text = "You are a civilian working on 'Ifrit' for Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons. You remember hearing the alarms blaring and decided to run with a couple others to the Panic Room, hoping to be safe from the threat until rescue arrives. Now you wait along with others for their second attack on the Panic Room. In their first attempt at trying to breach in, the so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani."
+
+ spawn_priority = SPAWN_PRIORITY_MEDIUM
+
+//CMB Survivors//
+
+/obj/effect/landmark/survivor_spawner/fiorina_armory_cmb
+ equipment = /datum/equipment_preset/survivor/colonial_marshal
+ synth_equipment = /datum/equipment_preset/synth/survivor/cmb_synth
+ intro_text = list("You are a CMB Deputy! ",\
+ "You are aware of the 'alien' threat. ",\
+ "Your primary objective is to survive the infestation. ")
+ story_text = "You are a Deputy of the Office of the Colonial Marshals. Your dispatcher received a distress signal from the infamous Fiorina Maximum Penitentiary. You figured it was just another typical case of the prison dealing with a riot their understaffed security force couldn't handle, with more and more of its personnel getting dispatched elsewhere in the galaxy. This wasn't the first time OCM officers were called in to assist, but unfortunately for you, this time it also wasn't the 'minor riot' you expected it to be. Loaded up with only beanbags and finding nobody to greet you on the LZ after being dropped off, you and the rest of your team had gone towards the armory to speak to the Quartermaster, but only found corpses of both prisoners and security littered around on the way. Worried about armed prisoners, your team was in the process of switching to lethals in the armory when some sort of huge alien jumped out from the shadows and snatched Jerry away while he was off praying. The thing dragged him off too fast to catch and his screams faded away down the halls, poor bastard. Now, you'll need to decide whether to look for more clues about what the hell happened here, hunt whatever's out there, or hold a position and hope someone else will respond to the distress signal before it's too late..."
+
+ spawn_priority = SPAWN_PRIORITY_VERY_HIGH
+
+/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control
+ equipment = /datum/equipment_preset/survivor/colonial_marshal/fiorina
+ synth_equipment = /datum/equipment_preset/synth/survivor/cmb_synth
+ intro_text = list("You are a United Americas Riot Control Officer! ",\
+ "You are aware of the 'alien' threat. ",\
+ "Your primary objective is to survive the infestation. ")
+ story_text = "You are a United Americas Riot Control Officer. Your dispatcher received a request from the local OCM Outpost, requesting some men to intervene assist a Deputy with handling a riot at Fiorina. The prison was an understaffed mess so you weren't too surprised they had sent out a distress signal, calling you in to do their jobs yet again. Unfortunately for you, this time it also wasn't the 'minor riot' you expected it to be. Loaded up with only beanbags and finding nobody to greet you on the LZ after being dropped off, you and the rest of your team had gone towards the armory to speak to the Quartermaster, but only found corpses of both prisoners and security littered around on the way. Worried about armed prisoners, your team was in the process of switching to lethals in the armory when some sort of huge alien jumped out from the shadows and snatched Jerry away while he was off praying. The thing dragged him off too fast to catch and his screams faded away down the halls, poor bastard. Now, you'll need to decide whether to look for more clues about what the hell happened here, hunt whatever's out there, or hold a position and hope someone else will respond to the distress signal before it's too late..."
+
+ spawn_priority = SPAWN_PRIORITY_HIGH
+
//Military Survivors//
/obj/effect/landmark/survivor_spawner/lv522_forecon_tech
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index 69eababfe000..6a5d31010ef1 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -22,9 +22,9 @@
/obj/effect/spider/attackby(obj/item/W, mob/user)
if(LAZYLEN(W.attack_verb))
- visible_message(SPAN_DANGER("\The [src] have been [pick(W.attack_verb)] with \the [W][(user ? "by [user]." : ".")]"))
+ visible_message(SPAN_DANGER("[src] has been [pick(W.attack_verb)] with [W][(user ? " by [user]." : ".")]"))
else
- visible_message(SPAN_DANGER("\The [src] have been attacked with \the [W][(user ? "by [user]." : ".")]"))
+ visible_message(SPAN_DANGER("[src] has been attacked with [W][(user ? " by [user]." : ".")]"))
var/damage = W.force / 4
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index 9addf3346a39..31158d055327 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -67,7 +67,7 @@
/// The name registered_name on the card
var/registered_name = "Unknown"
- var/registered_ref = null
+ var/datum/weakref/registered_ref = null
var/registered_gid = 0
flags_equip_slot = SLOT_ID
diff --git a/code/game/objects/items/devices/dummy_tablet.dm b/code/game/objects/items/devices/dummy_tablet.dm
index d1036ebfa93b..3172c84c8b01 100644
--- a/code/game/objects/items/devices/dummy_tablet.dm
+++ b/code/game/objects/items/devices/dummy_tablet.dm
@@ -1,6 +1,6 @@
/obj/item/device/professor_dummy_tablet
icon = 'icons/obj/items/devices.dmi'
- name = "Professor DUMMY tablet"
+ name = "\improper Professor DUMMY tablet"
desc = "A Professor DUMMY Control Tablet."
suffix = "\[3\]"
icon_state = "Cotablet"
@@ -21,23 +21,35 @@
*/
/obj/item/device/professor_dummy_tablet/proc/is_adjacent_to_dummy(mob/user)
if (get_dist(linked_dummy, user) > 1)
- to_chat(user, "You are too far away to use the tablet.")
+ to_chat(user, SPAN_WARNING("You are too far away from the dummy to use its tablet."))
return FALSE
-
return TRUE
-/obj/item/device/professor_dummy_tablet/proc/link_mob(mob/living/carbon/human/H)
- linked_dummy = H
+/obj/item/device/professor_dummy_tablet/proc/link_dummy(mob/living/carbon/human/dummy_to_link)
+ if(dummy_to_link)
+ linked_dummy = dummy_to_link
+ RegisterSignal(linked_dummy, COMSIG_PARENT_QDELETING, PROC_REF(self_delete))
+ return
+
+/obj/item/device/professor_dummy_tablet/proc/self_delete()
+ SIGNAL_HANDLER
+
+ UnregisterSignal(linked_dummy, COMSIG_PARENT_QDELETING)
+ linked_dummy = null
+ if(isstorage(loc))
+ var/obj/item/storage/storage = loc
+ storage.remove_from_storage(src, get_turf(src))
+ qdel(src)
/obj/item/device/professor_dummy_tablet/attack_self(mob/user as mob)
..()
interact(user)
/obj/item/device/professor_dummy_tablet/interact(mob/user as mob)
- if (isnull(linked_dummy))
+ if(isnull(linked_dummy))
return
- if (!is_adjacent_to_dummy(user))
+ if(!is_adjacent_to_dummy(user))
return
user.set_interaction(src)
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 58e86998f39a..2af343c8de26 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -238,7 +238,7 @@
desc = "A red USCM issued flare. There are instructions on the side, it reads 'pull cord, make light'."
w_class = SIZE_SMALL
light_power = 2
- light_range = 7
+ light_range = 5
icon_state = "flare"
item_state = "flare"
actions = list() //just pull it manually, neckbeard.
diff --git a/code/game/objects/items/devices/helmet_visors.dm b/code/game/objects/items/devices/helmet_visors.dm
index 05d75a9fefd6..4d1b38491791 100644
--- a/code/game/objects/items/devices/helmet_visors.dm
+++ b/code/game/objects/items/devices/helmet_visors.dm
@@ -6,7 +6,7 @@
w_class = SIZE_TINY
///The type of HUD our visor shows
- var/hud_type = MOB_HUD_FACTION_USCM
+ var/hud_type = MOB_HUD_FACTION_MARINE
///The sound when toggling on the visor
var/toggle_on_sound = 'sound/handling/hud_on.ogg'
@@ -302,7 +302,7 @@
/obj/item/device/helmet_visor/night_vision/marine_raider
name = "advanced night vision optic"
desc = "An insertable visor HUD into a standard USCM helmet. This type gives a form of night vision and is standard issue in special forces units."
- hud_type = list(MOB_HUD_FACTION_USCM, MOB_HUD_MEDICAL_ADVANCED)
+ hud_type = list(MOB_HUD_FACTION_MARINE, MOB_HUD_MEDICAL_ADVANCED)
helmet_overlay = "nvg_sight_right_raider"
power_use = 0
visor_glows = FALSE
diff --git a/code/game/objects/items/devices/motion_detector.dm b/code/game/objects/items/devices/motion_detector.dm
index c26db692f082..7db2825deedf 100644
--- a/code/game/objects/items/devices/motion_detector.dm
+++ b/code/game/objects/items/devices/motion_detector.dm
@@ -191,6 +191,14 @@
if(ishuman(A.loc))
return A.loc
+/obj/item/device/motiondetector/xm4
+
+///Forces the blue blip to appear around the detected mob
+/obj/item/device/motiondetector/xm4/get_user()
+ var/atom/holder = loc
+ if(ishuman(holder.loc))
+ return holder.loc
+
/obj/item/device/motiondetector/proc/apply_debuff(mob/M)
return
diff --git a/code/game/objects/items/devices/portable_vendor.dm b/code/game/objects/items/devices/portable_vendor.dm
index da399192b713..8e7c8df1d9a7 100644
--- a/code/game/objects/items/devices/portable_vendor.dm
+++ b/code/game/objects/items/devices/portable_vendor.dm
@@ -267,8 +267,11 @@
req_role = JOB_CORPORATE_LIAISON
listed_products = list(
list("INCENTIVES", 0, null, null, null),
+ list("Corporate Security Bodyguard", 50, /obj/item/handheld_distress_beacon/bodyguard, "white", "A beacon which sends the Corporate Security Division an encoded message informing them of your request for a Corporate Security Bodyguard."),
+ list("Corporate Lawyer Team", 50, /obj/item/handheld_distress_beacon/lawyer, "white", "A beacon which sends the Corporate Affairs Division an encoded message informing them of your request for a Corporate Lawyer, required when a contract signee breaks one of their clauses."),
list("Neurostimulator Implant", 30, /obj/item/implanter/neurostim, "white", "Implant which regulates nociception and sensory function. Benefits include pain reduction, improved balance, and improved resistance to overstimulation and disorientation. To encourage compliance, negative stimulus is applied if the implant hears a (non-radio) spoken codephrase. Implant will be degraded by the body's immune system over time, and thus malfunction with gradually increasing frequency. Personal use not recommended."),
list("Ultrazine Injector", 25, /obj/item/reagent_container/hypospray/autoinjector/ultrazine/liaison, "white", "Highly-addictive stimulant. Enhances short-term physical performance, particularly running speed. Effects last approximately 10 minutes per injection. More than two injections at a time will result in overdose. Withdrawal causes extreme discomfort and hallucinations. Long-term use results in halluciations and organ failure. Conditional distribution secures subject compliance. Not for personal use."),
+ list("Cyanide Pill", 20, /obj/item/reagent_container/pill/cyanide, "white", "A cyanide pill, also known as a suicide pill. For the easy way out."),
list("Ceramic Plate", 10, /obj/item/trash/ceramic_plate, "white", "A ceramic plate, useful in a variety of situations."),
list("Cash", 5, /obj/item/spacecash/c1000/counterfeit, "white", "$1000 USD, unmarked bills"),
list("WY Encryption Key", 5, /obj/item/device/encryptionkey/WY, "white", "WY private comms encryption key, for conducting private business."),
@@ -282,6 +285,7 @@
list("Sake", 5, /obj/item/reagent_container/food/drinks/bottle/sake, "white", "Weyland-Yutani Sake, for a proper business dinner."),
list("Beer", 5, /obj/item/reagent_container/food/drinks/cans/aspen, "white", "Weyland-Yutani Aspen Beer, for a more casual night."),
list("Drinking Glass", 1, /obj/item/reagent_container/food/drinks/drinkingglass, "white", "A Drinking Glass, because you have class."),
+ list("Weyland-Yutani Coffee Mug", 1, /obj/item/reagent_container/food/drinks/coffeecup/wy, "white", "A Weyland-Yutani coffee mug, for any Marines who want a Company souvenir."),
list("STATIONARY", 0, null, null, null),
list("WY pen, black", 1, /obj/item/tool/pen/clicky, "white", "A WY pen, for writing formally on the go."),
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 7b987752011c..00f0ad16220c 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -35,7 +35,7 @@
var/headset_hud_on = FALSE
var/locate_setting = TRACKER_SL
var/misc_tracking = FALSE
- var/hud_type = MOB_HUD_FACTION_USCM
+ var/hud_type = MOB_HUD_FACTION_MARINE
var/default_freq
///The type of minimap this headset is added to
@@ -233,7 +233,7 @@
), PROC_REF(turn_on))
wearer = user
RegisterSignal(user, COMSIG_MOB_STAT_SET_ALIVE, PROC_REF(update_minimap_icon))
- RegisterSignal(user, COMSIG_MOB_LOGIN, PROC_REF(add_hud_tracker))
+ RegisterSignal(user, COMSIG_MOB_LOGGED_IN, PROC_REF(add_hud_tracker))
RegisterSignal(user, COMSIG_MOB_DEATH, PROC_REF(update_minimap_icon))
RegisterSignal(user, COMSIG_HUMAN_SET_UNDEFIBBABLE, PROC_REF(update_minimap_icon))
if(headset_hud_on)
@@ -250,7 +250,7 @@
UnregisterSignal(user, list(
COMSIG_LIVING_REJUVENATED,
COMSIG_HUMAN_REVIVED,
- COMSIG_MOB_LOGIN,
+ COMSIG_MOB_LOGGED_IN,
COMSIG_MOB_DEATH,
COMSIG_HUMAN_SET_UNDEFIBBABLE,
COMSIG_MOB_STAT_SET_ALIVE
@@ -341,7 +341,7 @@
var/z_level = turf_gotten.z
if(wearer.assigned_equipment_preset.always_minimap_visible == TRUE || wearer.stat == DEAD) //We show to all marines if we have this flag, separated by faction
- if(hud_type == MOB_HUD_FACTION_USCM)
+ if(hud_type == MOB_HUD_FACTION_MARINE)
marker_flags = MINIMAP_FLAG_USCM
else if(hud_type == MOB_HUD_FACTION_UPP)
marker_flags = MINIMAP_FLAG_UPP
@@ -1013,7 +1013,7 @@
icon_state = "cmb_headset"
initial_keys = list(/obj/item/device/encryptionkey/cmb)
has_hud = TRUE
- hud_type = MOB_HUD_FACTION_USCM
+ hud_type = MOB_HUD_FACTION_MARINE
/obj/item/device/radio/headset/distress/CMB/limited
name = "\improper Damaged CMB Earpiece"
@@ -1058,7 +1058,7 @@
initial_keys = list(/obj/item/device/encryptionkey/soc/forecon)
volume = RADIO_VOLUME_QUIET
has_hud = TRUE
- hud_type = MOB_HUD_FACTION_USCM
+ hud_type = MOB_HUD_FACTION_MARINE
/obj/item/device/radio/headset/almayer/mcom/vc
name = "marine vehicle crew radio headset"
diff --git a/code/game/objects/items/explosives/plastic.dm b/code/game/objects/items/explosives/plastic.dm
index 1d2986f79e55..58cbca9a5ab3 100644
--- a/code/game/objects/items/explosives/plastic.dm
+++ b/code/game/objects/items/explosives/plastic.dm
@@ -24,6 +24,9 @@
var/list/breachable = list(/obj/structure/window, /turf/closed, /obj/structure/machinery/door, /obj/structure/mineral_door , /obj/structure/cargo_container)
antigrief_protection = TRUE //Should it be checked by antigrief?
+ var/req_skill = SKILL_ENGINEER
+ var/req_skill_level = SKILL_ENGINEER_TRAINED
+
/obj/item/explosive/plastic/Destroy()
disarm()
return ..()
@@ -65,7 +68,7 @@
if(user.action_busy || !flag)
return
- if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED))
+ if(!skillcheck(user, req_skill, req_skill_level))
to_chat(user, SPAN_WARNING("You don't seem to know how to use [src]..."))
return
if(!can_place(user, target))
@@ -363,6 +366,9 @@
overlay_image = "riot-active"
shrapnel_volume = 20
shrapnel_type = /datum/ammo/bullet/shrapnel/rubber
+ req_skill = SKILL_POLICE
+ req_skill_level = SKILL_POLICE_SKILLED
+ antigrief_protection = FALSE
/obj/item/explosive/plastic/breaching_charge/plasma
name = "plasma charge"
diff --git a/code/game/objects/items/fulton.dm b/code/game/objects/items/fulton.dm
index e36d269c8b90..664c7871ba7f 100644
--- a/code/game/objects/items/fulton.dm
+++ b/code/game/objects/items/fulton.dm
@@ -140,10 +140,12 @@ GLOBAL_LIST_EMPTY(deployed_fultons)
sleep(30)
original_location = get_turf(attached_atom)
playsound(loc, 'sound/items/fulton.ogg', 50, 1)
- reservation = SSmapping.RequestBlockReservation(3, 3, turf_type_override = /turf/open/space)
- var/middle_x = reservation.bottom_left_coords[1] + Floor((reservation.top_right_coords[1] - reservation.bottom_left_coords[1]) / 2)
- var/middle_y = reservation.bottom_left_coords[2] + Floor((reservation.top_right_coords[2] - reservation.bottom_left_coords[2]) / 2)
- var/turf/space_tile = locate(middle_x, middle_y, reservation.bottom_left_coords[3])
+ reservation = SSmapping.request_turf_block_reservation(3, 3, 1, turf_type_override = /turf/open/space)
+ var/turf/bottom_left_turf = reservation.bottom_left_turfs[1]
+ var/turf/top_right_turf = reservation.top_right_turfs[1]
+ var/middle_x = bottom_left_turf.x + Floor((top_right_turf.x - bottom_left_turf.x) / 2)
+ var/middle_y = bottom_left_turf.y + Floor((top_right_turf.y - bottom_left_turf.y) / 2)
+ var/turf/space_tile = locate(middle_x, middle_y, bottom_left_turf.z)
if(!space_tile)
visible_message(SPAN_WARNING("[src] begins beeping like crazy. Something is wrong!"))
return
diff --git a/code/game/objects/items/handheld_distress_beacon.dm b/code/game/objects/items/handheld_distress_beacon.dm
index c11a7a57c350..5764604c9a2f 100644
--- a/code/game/objects/items/handheld_distress_beacon.dm
+++ b/code/game/objects/items/handheld_distress_beacon.dm
@@ -12,9 +12,9 @@
///Tells the user who the beacon will be sent to IC
var/recipient = "the USCSS Royce"
///The name of the ERT that will be passed to get_specific_call
- var/list/ert_full_name = list("Weyland-Yutani PMC (Chemical Investigation Squad)")
+ var/list/ert_paths = list(/datum/emergency_call/pmc/chem_retrieval) // "Weyland-Yutani PMC (Chemical Investigation Squad)"
///The clickable version that will be sent in message_admins
- var/list/ert_short_name = list("SEND PMCs")
+ var/list/ert_short_names = list("SEND PMCs")
///Whether beacon can be used, or has already been used
var/active = FALSE
@@ -41,13 +41,13 @@
active = TRUE
update_icon()
- if(!ert_full_name || !ert_short_name || (length(ert_full_name) != length(ert_short_name))) //Make sure they are greater than 0, and both are same length
+ if(!ert_paths || !ert_short_names || (length(ert_paths) != length(ert_short_names))) //Make sure they are greater than 0, and both are same length
to_chat(user, SPAN_BOLDWARNING("[src] is broken!"))
CRASH("[src] was improperly set, and has been disabled.") //For the runtime logs
var/beacon_call_buttons
- for(var/current_ert_num in 1 to length(ert_full_name))
- beacon_call_buttons += "([ert_short_name[current_ert_num]] ) "
+ for(var/current_ert_num in 1 to length(ert_paths))
+ beacon_call_buttons += "([ert_short_names[current_ert_num]] ) "
for(var/client/admin_client in GLOB.admins)
if((R_ADMIN|R_MOD) & admin_client.admin_holder.rights)
@@ -62,5 +62,26 @@
beacon_type = "CMB beacon"
recipient = "Anchorpoint Station"
- ert_full_name = list("CMB - Patrol Team - Marshals in Distress (Friendly)", "CMB - Anchorpoint Station Colonial Marine QRF (Friendly)")
- ert_short_name = list("SEND CMB", "SEND QRF")
+ // "CMB - Patrol Team - Marshals in Distress (Friendly)", "CMB - Anchorpoint Station Colonial Marine QRF (Friendly)"
+ ert_paths = list(/datum/emergency_call/cmb/alt, /datum/emergency_call/cmb/anchorpoint)
+ ert_short_names = list("SEND CMB", "SEND QRF")
+
+// Corporate Lawyer beacon available for 50 points at the CLs briefcase
+/obj/item/handheld_distress_beacon/lawyer
+ name = "\improper Corporate Affairs Division handheld beacon"
+ desc = "An encoded beacon. This one is branded with the Weyland-Yutani slogan, 'Building Better Worlds since 2099'. Etched in stencil on the side is 'FOR CONTRACT BREAKERS ONLY'. This one is branded with the Corporate Affairs Division symbol and provided to most Executives situated in UA or TWE space."
+
+ beacon_type = "Lawyer beacon"
+ recipient = "the Corporate Affairs Division"
+ ert_paths = list(/datum/emergency_call/inspection_wy/lawyer) // "Lawyers - Corporate"
+ ert_short_names = list("SEND LAWYERS")
+
+// Corporate Security Bodyguard beacon available for 50 points at the CLs briefcase
+/obj/item/handheld_distress_beacon/bodyguard
+ name = "\improper Corporate Security Division handheld beacon"
+ desc = "An standard Corporate Security beacon. This one is branded with the Weyland-Yutani slogan, 'Building Better Worlds since 2099'. This one is branded with the Corporate Security Division symbol and provided to Executives stationed in very dangerous sites across the entire Galaxy."
+
+ beacon_type = "Bodyguard beacon"
+ recipient = "the Corporate Security Division"
+ ert_paths = list(/datum/emergency_call/goon/bodyguard) // "Weyland-Yutani Goon (Executive Bodyguard Detail)"
+ ert_short_names = list("SEND BODYGUARD")
diff --git a/code/game/objects/items/reagent_containers/food/snacks.dm b/code/game/objects/items/reagent_containers/food/snacks.dm
index 3ae57723668f..112a8e40e85b 100644
--- a/code/game/objects/items/reagent_containers/food/snacks.dm
+++ b/code/game/objects/items/reagent_containers/food/snacks.dm
@@ -641,9 +641,17 @@
/obj/item/reagent_container/food/snacks/carpmeat/Initialize()
. = ..()
reagents.add_reagent("fish", 3)
- reagents.add_reagent("carpotoxin", 3)
+ reagents.add_reagent("carpotoxin", 6)
src.bitesize = 6
+/obj/item/reagent_container/food/snacks/carpmeat/processed
+ name = "processed carp fillet"
+ desc = "A fillet of spess carp meat. This one has been processed to remove carpotoxin."
+
+/obj/item/reagent_container/food/snacks/carpmeat/processed/Initialize()
+ . = ..()
+ reagents.remove_reagent("carpotoxin", 6)
+
/obj/item/reagent_container/food/snacks/fishfingers
name = "Fish Fingers"
desc = "A finger of fish."
@@ -653,7 +661,6 @@
/obj/item/reagent_container/food/snacks/fishfingers/Initialize()
. = ..()
reagents.add_reagent("fish", 4)
- reagents.add_reagent("carpotoxin", 3)
bitesize = 3
/obj/item/reagent_container/food/snacks/hugemushroomslice
@@ -802,7 +809,6 @@
. = ..()
reagents.add_reagent("bread", 3)
reagents.add_reagent("fish", 3)
- reagents.add_reagent("carpotoxin", 3)
bitesize = 3
/obj/item/reagent_container/food/snacks/tofuburger
@@ -850,7 +856,6 @@
. = ..()
reagents.add_reagent("bread", 3)
reagents.add_reagent("meatprotein", 3)
- reagents.add_reagent("xenoblood", 3)
bitesize = 3
/obj/item/reagent_container/food/snacks/clownburger
@@ -1070,7 +1075,6 @@
. = ..()
reagents.add_reagent("bread", 4)
reagents.add_reagent("meatprotein", 2)
- reagents.add_reagent("xenoblood", 4)
bitesize = 2
/obj/item/reagent_container/food/snacks/wingfangchu
@@ -1084,7 +1088,6 @@
. = ..()
reagents.add_reagent("soysauce", 4)
reagents.add_reagent("meatprotein", 4)
- reagents.add_reagent("xenoblood", 4)
bitesize = 2
/obj/item/reagent_container/food/snacks/human/kabob
@@ -1133,7 +1136,6 @@
/obj/item/reagent_container/food/snacks/cubancarp/Initialize()
. = ..()
reagents.add_reagent("fish", 6)
- reagents.add_reagent("carpotoxin", 3)
reagents.add_reagent("hotsauce", 3)
bitesize = 3
@@ -1690,7 +1692,6 @@
/obj/item/reagent_container/food/snacks/fishandchips/Initialize()
. = ..()
reagents.add_reagent("fish", 6)
- reagents.add_reagent("carpotoxin", 3)
bitesize = 3
/obj/item/reagent_container/food/snacks/sandwich
@@ -2172,7 +2173,6 @@
reagents.add_reagent("bread", 10)
reagents.add_reagent("meatprotein", 10)
reagents.add_reagent("cheese", 10)
- reagents.add_reagent("xenoblood", 10)
bitesize = 2
/obj/item/reagent_container/food/snacks/xenomeatbreadslice
diff --git a/code/game/objects/items/reagent_containers/food/snacks/meat.dm b/code/game/objects/items/reagent_containers/food/snacks/meat.dm
index f459d1b169ae..f68f488f268d 100644
--- a/code/game/objects/items/reagent_containers/food/snacks/meat.dm
+++ b/code/game/objects/items/reagent_containers/food/snacks/meat.dm
@@ -57,9 +57,16 @@
/obj/item/reagent_container/food/snacks/meat/xenomeat/Initialize()
. = ..()
- reagents.add_reagent("xenoblood", 3)
+ reagents.add_reagent("xenoblood", 6)
src.bitesize = 6
+/obj/item/reagent_container/food/snacks/meat/xenomeat/processed
+ desc = "A slab of acrid smelling meat. This one has been processed to remove acid."
+
+/obj/item/reagent_container/food/snacks/meat/xenomeat/processed/Initialize()
+ . = ..()
+ reagents.remove_reagent("xenoblood", 6)
+
//fishable atoms meat
// todo: rewrite this into a procgen'ed item when gutting fish? May be incompatible with recipe code if done that way and not hardcoded.
/obj/item/reagent_container/food/snacks/meat/fish
diff --git a/code/game/objects/items/reagent_containers/glass.dm b/code/game/objects/items/reagent_containers/glass.dm
index 2a7bde748fba..fc8d03f5d24d 100644
--- a/code/game/objects/items/reagent_containers/glass.dm
+++ b/code/game/objects/items/reagent_containers/glass.dm
@@ -217,17 +217,16 @@
overlays.Cut()
if(reagents && reagents.total_volume)
- var/image/filling = image('icons/obj/items/reagentfillings.dmi', src, "[icon_state]10")
+ var/image/filling = image('icons/obj/items/reagentfillings.dmi', src, "[icon_state]-20")
var/percent = round((reagents.total_volume / volume) * 100)
switch(percent)
- if(0 to 9) filling.icon_state = "[icon_state]-10"
- if(10 to 24) filling.icon_state = "[icon_state]10"
- if(25 to 49) filling.icon_state = "[icon_state]25"
- if(50 to 74) filling.icon_state = "[icon_state]50"
- if(75 to 79) filling.icon_state = "[icon_state]75"
- if(80 to 90) filling.icon_state = "[icon_state]80"
- if(91 to INFINITY) filling.icon_state = "[icon_state]100"
+ if(0) filling.icon_state = null
+ if(1 to 20) filling.icon_state = "[icon_state]-20"
+ if(21 to 40) filling.icon_state = "[icon_state]-40"
+ if(41 to 60) filling.icon_state = "[icon_state]-60"
+ if(61 to 80) filling.icon_state = "[icon_state]-80"
+ if(81 to INFINITY) filling.icon_state = "[icon_state]-100"
filling.color = mix_color_from_reagents(reagents.reagent_list)
overlays += filling
@@ -345,8 +344,8 @@
flags_atom = FPRINT|OPENCONTAINER|NOREACT
/obj/item/reagent_container/glass/beaker/bluespace
- name = "bluespace beaker"
- desc = "A beaker with an enlarged holding capacity, made with blue-tinted plexiglass in order to withstand greater pressure - affectionately nicknamed \"bluespace\". Can hold up to 300 units."
+ name = "high-capacity beaker"
+ desc = "A beaker with an enlarged holding capacity, made with blue-tinted plexiglass in order to withstand greater pressure. Can hold up to 300 units."
icon_state = "beakerbluespace"
matter = list("glass" = 10000)
volume = 300
diff --git a/code/game/objects/items/reagent_containers/glass/bottle.dm b/code/game/objects/items/reagent_containers/glass/bottle.dm
index 01eb751774e1..9e0215b535b6 100644
--- a/code/game/objects/items/reagent_containers/glass/bottle.dm
+++ b/code/game/objects/items/reagent_containers/glass/bottle.dm
@@ -4,13 +4,14 @@
name = "bottle"
desc = "A small bottle."
icon = 'icons/obj/items/chemistry.dmi'
- icon_state = null
+ icon_state = "bottle-1"
item_state = "atoxinbottle"
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5, 10, 15, 25, 30, 40, 60)
flags_atom = FPRINT|OPENCONTAINER
volume = 60
attack_speed = 4
+ var/randomize = TRUE
/obj/item/reagent_container/glass/bottle/on_reagent_change()
update_icon()
@@ -29,247 +30,224 @@
/obj/item/reagent_container/glass/bottle/Initialize()
. = ..()
- if(!icon_state)
+ if(randomize)
icon_state = "bottle-[rand(1,4)]"
/obj/item/reagent_container/glass/bottle/update_icon()
overlays.Cut()
- if(reagents.total_volume && (icon_state == "bottle-1" || icon_state == "bottle-2" || icon_state == "bottle-3" || icon_state == "bottle-4"))
+ if(reagents.total_volume)
var/image/filling = image('icons/obj/items/reagentfillings.dmi', src, "[icon_state]10")
var/percent = round((reagents.total_volume / volume) * 100)
switch(percent)
- if(0 to 9) filling.icon_state = "[icon_state]--10"
- if(10 to 24) filling.icon_state = "[icon_state]-10"
- if(25 to 49) filling.icon_state = "[icon_state]-25"
- if(50 to 74) filling.icon_state = "[icon_state]-50"
- if(75 to 79) filling.icon_state = "[icon_state]-75"
- if(80 to 90) filling.icon_state = "[icon_state]-80"
- if(91 to INFINITY) filling.icon_state = "[icon_state]-100"
+ if(0) filling.icon_state = null
+ if(1 to 20) filling.icon_state = "[icon_state]-20"
+ if(21 to 40) filling.icon_state = "[icon_state]-40"
+ if(41 to 60) filling.icon_state = "[icon_state]-60"
+ if(61 to 80) filling.icon_state = "[icon_state]-80"
+ if(81 to INFINITY) filling.icon_state = "[icon_state]-100"
filling.color = mix_color_from_reagents(reagents.reagent_list)
overlays += filling
- if (!is_open_container())
- var/image/lid = image(icon, src, "lid_bottle")
+ if(!is_open_container())
+ var/image/lid = image(icon, src, "lid_[icon_state]")
overlays += lid
+
/obj/item/reagent_container/glass/bottle/inaprovaline
name = "\improper Inaprovaline bottle"
desc = "A small bottle. Contains inaprovaline - used to stabilize patients."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle19"
amount_per_transfer_from_this = 60
/obj/item/reagent_container/glass/bottle/inaprovaline/Initialize()
. = ..()
reagents.add_reagent("inaprovaline", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/kelotane
name = "\improper Kelotane bottle"
desc = "A small bottle. Contains kelotane - used to treat burned areas."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle16"
amount_per_transfer_from_this = 60
/obj/item/reagent_container/glass/bottle/kelotane/Initialize()
. = ..()
reagents.add_reagent("kelotane", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/dexalin
name = "\improper Dexalin bottle"
- desc = "A small bottle. Contains dexalin - used to treat oxygen deprivation."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle10"
amount_per_transfer_from_this = 60
/obj/item/reagent_container/glass/bottle/dexalin/Initialize()
. = ..()
reagents.add_reagent("dexalin", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/spaceacillin
name = "\improper Spaceacillin bottle"
desc = "A small bottle. Contains spaceacillin - used to treat infected wounds."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle8"
amount_per_transfer_from_this = 60
/obj/item/reagent_container/glass/bottle/spaceacillin/Initialize()
. = ..()
reagents.add_reagent("spaceacillin", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/toxin
name = "toxin bottle"
desc = "A small bottle of toxins. Do not drink, it is poisonous."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle12"
-
/obj/item/reagent_container/glass/bottle/toxin/Initialize()
. = ..()
reagents.add_reagent("toxin", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/cyanide
name = "cyanide bottle"
desc = "A small bottle of cyanide. Bitter almonds?"
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle12"
/obj/item/reagent_container/glass/bottle/cyanide/Initialize()
. = ..()
reagents.add_reagent("cyanide", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/stoxin
name = "Soporific bottle"
desc = "A small bottle of soporific. Just the fumes make you sleepy."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle20"
amount_per_transfer_from_this = 60
/obj/item/reagent_container/glass/bottle/stoxin/Initialize()
. = ..()
reagents.add_reagent("stoxin", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/chloralhydrate
name = "chloral hydrate bottle"
desc = "A small bottle of Choral Hydrate. Mickey's Favorite!"
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle20"
/obj/item/reagent_container/glass/bottle/chloralhydrate/Initialize()
. = ..()
reagents.add_reagent("chloralhydrate", 30) //Intentionally low since it is so strong. Still enough to knock someone out.
+ update_icon()
/obj/item/reagent_container/glass/bottle/antitoxin
name = "\improper Dylovene bottle"
desc = "A small bottle of dylovene. Counters poisons, and repairs toxin damage. A wonder drug."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle7"
amount_per_transfer_from_this = 60
/obj/item/reagent_container/glass/bottle/antitoxin/Initialize()
. = ..()
reagents.add_reagent("anti_toxin", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/mutagen
name = "unstable mutagen bottle"
desc = "A small bottle of unstable mutagen. Randomly changes the DNA structure of whoever comes in contact."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle7"
/obj/item/reagent_container/glass/bottle/mutagen/Initialize()
. = ..()
reagents.add_reagent("mutagen", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/ammonia
name = "ammonia bottle"
desc = "A small bottle."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle20"
/obj/item/reagent_container/glass/bottle/ammonia/Initialize()
. = ..()
reagents.add_reagent("ammonia", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/diethylamine
name = "diethylamine bottle"
desc = "A small bottle. Contains a potent fertiliser."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle17"
/obj/item/reagent_container/glass/bottle/diethylamine/Initialize()
. = ..()
reagents.add_reagent("diethylamine", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/flu_virion
name = "flu virion culture bottle"
desc = "A small bottle. Contains H13N1 flu virion culture in synthblood medium."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
/obj/item/reagent_container/glass/bottle/flu_virion/Initialize()
. = ..()
var/datum/disease/F = new /datum/disease/advance/flu(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
+ update_icon()
/obj/item/reagent_container/glass/bottle/epiglottis_virion
name = "epiglottis virion culture bottle"
desc = "A small bottle. Contains Epiglottis virion culture in synthblood medium."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
/obj/item/reagent_container/glass/bottle/epiglottis_virion/Initialize()
. = ..()
var/datum/disease/F = new /datum/disease/advance/voice_change(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
+ update_icon()
/obj/item/reagent_container/glass/bottle/liver_enhance_virion
name = "liver enhancement virion culture bottle"
desc = "A small bottle. Contains liver enhancement virion culture in synthblood medium."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
/obj/item/reagent_container/glass/bottle/liver_enhance_virion/Initialize()
. = ..()
var/datum/disease/F = new /datum/disease/advance/heal(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
+ update_icon()
/obj/item/reagent_container/glass/bottle/hullucigen_virion
name = "hullucigen virion culture bottle"
desc = "A small bottle. Contains hullucigen virion culture in synthblood medium."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
/obj/item/reagent_container/glass/bottle/hullucigen_virion/Initialize()
. = ..()
var/datum/disease/F = new /datum/disease/advance/hullucigen(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
+ update_icon()
/obj/item/reagent_container/glass/bottle/pierrot_throat
name = "\improper Pierrot's Throat culture bottle"
desc = "A small bottle. Contains H0NI<42 virion culture in synthblood medium."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
/obj/item/reagent_container/glass/bottle/pierrot_throat/Initialize()
. = ..()
var/datum/disease/F = new /datum/disease/pierrot_throat(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
+ update_icon()
/obj/item/reagent_container/glass/bottle/cold
name = "rhinovirus culture bottle"
desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
/obj/item/reagent_container/glass/bottle/cold/Initialize()
. = ..()
var/datum/disease/advance/F = new /datum/disease/advance/cold(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
+ update_icon()
/obj/item/reagent_container/glass/bottle/random
name = "random culture bottle"
desc = "A small bottle. Contains a random disease."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
/obj/item/reagent_container/glass/bottle/random/Initialize()
. = ..()
var/datum/disease/advance/F = new(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
+ update_icon()
/obj/item/reagent_container/glass/bottle/gbs
name = "\improper GBS culture bottle"
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS+ culture in synthblood medium."//Or simply - General BullShit
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
amount_per_transfer_from_this = 5
/obj/item/reagent_container/glass/bottle/gbs/Initialize()
@@ -278,24 +256,23 @@
var/datum/disease/F = new /datum/disease/gbs
var/list/data = list("virus"= F)
reagents.add_reagent("blood", 20, data)
+ update_icon()
/obj/item/reagent_container/glass/bottle/fake_gbs
name = "\improper GBS culture bottle"
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS- culture in synthblood medium."//Or simply - General BullShit
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
/obj/item/reagent_container/glass/bottle/fake_gbs/Initialize()
. = ..()
var/datum/disease/F = new /datum/disease/fake_gbs(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
+ update_icon()
+
/*
/obj/item/reagent_container/glass/bottle/rhumba_beat
name = "Rhumba Beat culture bottle"
desc = "A small bottle. Contains The Rhumba Beat culture in synthblood medium."//Or simply - General BullShit
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
amount_per_transfer_from_this = 5
New()
@@ -305,126 +282,117 @@
var/datum/disease/F = new /datum/disease/rhumba_beat
var/list/data = list("virus"= F)
R.add_reagent("blood", 20, data)
+ update_icon()
+
*/
/obj/item/reagent_container/glass/bottle/brainrot
name = "\improper Brainrot culture bottle"
desc = "A small bottle. Contains Cryptococcus Cosmosis culture in synthblood medium."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
/obj/item/reagent_container/glass/bottle/brainrot/Initialize()
. = ..()
var/datum/disease/F = new /datum/disease/brainrot(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
+ update_icon()
/obj/item/reagent_container/glass/bottle/magnitis
name = "\improper Magnitis culture bottle"
desc = "A small bottle. Contains a small dosage of Fukkos Miracos."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
/obj/item/reagent_container/glass/bottle/magnitis/Initialize()
. = ..()
var/datum/disease/F = new /datum/disease/magnitis(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
+ update_icon()
/obj/item/reagent_container/glass/bottle/pacid
name = "polytrinic acid bottle"
desc = "A small bottle. Contains a small amount of Polytrinic Acid, an extremely potent and dangerous acid."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle17"
/obj/item/reagent_container/glass/bottle/pacid/Initialize()
. = ..()
reagents.add_reagent("pacid", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/adminordrazine
name = "\improper Adminordrazine bottle"
desc = "A small bottle. Contains the liquid essence of the gods."
- icon = 'icons/obj/items/drinks.dmi'
- icon_state = "holyflask"
/obj/item/reagent_container/glass/bottle/adminordrazine/Initialize()
. = ..()
reagents.add_reagent("adminordrazine", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/capsaicin
name = "\improper Capsaicin bottle"
desc = "A small bottle. Contains hot sauce."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle3"
/obj/item/reagent_container/glass/bottle/capsaicin/Initialize()
. = ..()
reagents.add_reagent("capsaicin", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/frostoil
name = "\improper Frost Oil bottle"
desc = "A small bottle. Contains cold sauce."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle17"
/obj/item/reagent_container/glass/bottle/frostoil/Initialize()
. = ..()
reagents.add_reagent("frostoil", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/bicaridine
name = "\improper Bicaridine bottle"
desc = "A small bottle. Contains Bicaridine - Used to treat brute damage."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle17"
amount_per_transfer_from_this = 60
/obj/item/reagent_container/glass/bottle/bicaridine/Initialize()
. = ..()
reagents.add_reagent("bicaridine", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/peridaxon
name = "\improper Peridaxon bottle"
desc = "A small bottle. Contains Peridaxon - Used by lazy doctors to temporarily halt the effects of internal organ damage."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle4"
volume = 60
amount_per_transfer_from_this = 60
/obj/item/reagent_container/glass/bottle/peridaxon/Initialize()
. = ..()
reagents.add_reagent("peridaxon", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/tramadol
name = "\improper Tramadol bottle"
desc = "A small bottle. Contains Tramadol - Used as a basic painkiller."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle1"
volume = 60
amount_per_transfer_from_this = 60
/obj/item/reagent_container/glass/bottle/tramadol/Initialize()
. = ..()
reagents.add_reagent("tramadol", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/oxycodone
name = "\improper Oxycodone bottle"
desc = "A small bottle. Contains Oxycodone - Used as an Extreme Painkiller. ILLEGAL TO DISTRIBUTE."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle2"
volume = 60
amount_per_transfer_from_this = 60
/obj/item/reagent_container/glass/bottle/oxycodone/Initialize()
. = ..()
reagents.add_reagent("oxycodone", 60)
+ update_icon()
/obj/item/reagent_container/glass/bottle/tricordrazine
name = "\improper Tricordrazine bottle"
desc = "A small bottle. Contains tricordrazine - A weak but catch-all medicine for treating all sorts of damage."
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle18"
volume = 60
/obj/item/reagent_container/glass/bottle/tricordrazine/Initialize()
. = ..()
reagents.add_reagent("tricordrazine", 60)
+ update_icon()
diff --git a/code/game/objects/items/reagent_containers/glass/bottle/robot.dm b/code/game/objects/items/reagent_containers/glass/bottle/robot.dm
index 553b3e0dcbc3..67c397e30eb5 100644
--- a/code/game/objects/items/reagent_containers/glass/bottle/robot.dm
+++ b/code/game/objects/items/reagent_containers/glass/bottle/robot.dm
@@ -10,7 +10,6 @@
name = "internal inaprovaline bottle"
desc = "A small bottle. Contains inaprovaline - used to stabilize patients."
icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle16"
reagent = "inaprovaline"
/obj/item/reagent_container/glass/bottle/robot/inaprovaline/Initialize()
@@ -23,7 +22,6 @@
name = "internal anti-toxin bottle"
desc = "A small bottle of Anti-toxins. Counters poisons, and repairs damage, a wonder drug."
icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle17"
reagent = "anti_toxin"
/obj/item/reagent_container/glass/bottle/robot/antitoxin/Initialize()
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index cb5071326e13..d984f01ae1be 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -107,7 +107,7 @@ GLOBAL_LIST_INIT_TYPED(plasteel_recipes, /datum/stack_recipe, list ( \
/obj/item/stack/sheet/plasteel
name = "plasteel sheet"
singular_name = "plasteel sheet"
- desc = "These sheets are an alloy of iron and phoron."
+ desc = "Plasteel is an expensive, durable material made from combining platinum, steel, and advanced polymers to create a metal that is corrosion-resistant, highly durable, and lightweight. The only reason this isn't used more often is because of how damn costly it is."
icon_state = "sheet-plasteel"
item_state = "sheet-plasteel"
matter = list("metal" = 3750)
diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm
index 29c4ec15d03a..5aeef14c536d 100644
--- a/code/game/objects/items/storage/backpack.dm
+++ b/code/game/objects/items/storage/backpack.dm
@@ -494,6 +494,12 @@
desc = "A heavy-duty chestrig used by some USCM technicians."
icon_state = "marinesatch_techi"
+/obj/item/storage/backpack/marine/satchel/chestrig
+ name = "\improper USCM chestrig"
+ desc = "A chestrig used by some USCM personnel."
+ icon_state = "chestrig"
+ has_gamemode_skin = FALSE
+
GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/rto)
/obj/item/storage/backpack/marine/satchel/rto
diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm
index f7ada8ce220c..5d7aecbc03db 100644
--- a/code/game/objects/items/storage/fancy.dm
+++ b/code/game/objects/items/storage/fancy.dm
@@ -218,6 +218,46 @@
default_cig_type = /obj/item/clothing/mask/cigarette/ucigarette
storage_slots = 4
+/obj/item/storage/fancy/cigarettes/trading_card
+ name = "\improper WeyYu Gold Military Trading Card packet"
+ desc = "Gotta collect 'em all, and smoke 'em all! This fancy military trading card version of Weyland Yutani Gold cigarette packs has one card that is apart of the 3 available 5-card sets."
+ icon_state = "collectpacket"
+ item_state = "collectpacket"
+ storage_slots = 21
+ can_hold = list(
+ /obj/item/clothing/mask/cigarette,
+ /obj/item/clothing/mask/cigarette/ucigarette,
+ /obj/item/clothing/mask/cigarette/bcigarette,
+ /obj/item/tool/lighter,
+ /obj/item/toy/trading_card,
+ )
+ var/obj/item/toy/trading_card/trading_card
+
+/obj/item/storage/fancy/cigarettes/trading_card/fill_preset_inventory()
+ flags_atom |= NOREACT
+ for(var/i = 1 to (storage_slots-1))
+ new default_cig_type(src)
+ trading_card = new(src)
+
+/obj/item/storage/fancy/cigarettes/trading_card/attack_hand(mob/user, mods)
+ if(trading_card?.loc == src && loc == user)
+ to_chat(user, SPAN_NOTICE("You pull a [trading_card.collection_color] trading card out of the cigarette pack."))
+ //have to take two disparate systems n' ram 'em together
+ remove_from_storage(trading_card, user.loc)
+ user.put_in_hands(trading_card)
+ trading_card = null
+
+ return ..()
+
+/obj/item/storage/fancy/cigarettes/trading_card/attackby(obj/item/attacked_by_item, mob/user)
+ if(istype(attacked_by_item, /obj/item/toy/trading_card))
+ trading_card = attacked_by_item
+
+ return ..()
+
+/////////////
+//CIGAR BOX//
+/////////////
// CIGAR BOX
/obj/item/storage/fancy/cigar
@@ -409,3 +449,73 @@
/obj/item/storage/lockbox/vials/attackby(obj/item/W as obj, mob/user as mob)
..()
update_icon()
+
+// Trading Card Pack
+
+/obj/item/storage/fancy/trading_card
+ name = "pack of Red WeyYu Military Trading Cards"
+ desc = "A 5 pack of Red Weyland Yutani Military Trading Cards."
+ icon = 'icons/obj/items/playing_cards.dmi'
+ icon_state = "trading_red_pack_closed"
+ storage_slots = 5
+ icon_type = "trading card"
+ can_hold = list(/obj/item/toy/trading_card)
+ foldable = /obj/item/stack/sheet/cardboard
+ var/collection_color = null
+ var/obj/item/toy/trading_card/top_trading_card
+
+/obj/item/storage/fancy/trading_card/Initialize()
+ if(!collection_color)
+ collection_color = pick("red", "green", "blue") // because of vodoo shenanigans with fill_preset_inventory happening during parent's initalize this'll have to run prior to that
+
+ . = ..()
+
+ name = "pack of [capitalize(collection_color)] WeyYu Military Trading Cards"
+ desc = "A 5 pack of [capitalize(collection_color)] Weyland Yutani Military Trading Cards."
+ icon_state = "trading_[collection_color]_pack_closed"
+
+
+/obj/item/storage/fancy/trading_card/fill_preset_inventory()
+
+ for(var/i in 1 to storage_slots)
+ top_trading_card = new /obj/item/toy/trading_card(src)
+
+/obj/item/storage/fancy/trading_card/update_icon()
+ if(!(top_trading_card))
+ icon_state = "trading_[collection_color]_pack_empty"
+ return
+ if(length(contents) == storage_slots)
+ icon_state = "trading_[collection_color]_pack_closed"
+ return
+ icon_state = "trading_[collection_color]_pack_open"
+
+/obj/item/storage/fancy/trading_card/attack_hand(mob/user, mods)
+ if(top_trading_card?.loc == src && loc == user)
+ to_chat(user, SPAN_NOTICE("You pull a [top_trading_card.collection_color] trading card out of the pack."))
+ //have to take two disparate systems n' ram 'em together
+ remove_from_storage(top_trading_card, user.loc)
+ user.put_in_hands(top_trading_card)
+ if(!(length(contents)))
+ top_trading_card = null
+ update_icon()
+ return
+ top_trading_card = contents[(length(contents))]
+ update_icon()
+ return
+
+ return ..()
+
+/obj/item/storage/fancy/trading_card/attackby(obj/item/attacked_by_item, mob/user)
+ if(istype(attacked_by_item, /obj/item/toy/trading_card))
+ top_trading_card = attacked_by_item
+
+ return ..()
+
+/obj/item/storage/fancy/trading_card/red
+ collection_color = "red"
+
+/obj/item/storage/fancy/trading_card/green
+ collection_color = "green"
+
+/obj/item/storage/fancy/trading_card/blue
+ collection_color = "blue"
diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm
index 3b2dbfa33aa4..3e7c00f3d0ff 100644
--- a/code/game/objects/items/storage/firstaid.dm
+++ b/code/game/objects/items/storage/firstaid.dm
@@ -123,7 +123,6 @@
desc = "It's an emergency medical kit containing lifesaving anti-toxic medication. With medical training you can fit this in a backpack."
icon_state = "antitoxin"
item_state = "firstaid-toxin"
- possible_icons_full = list("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3")
/obj/item/storage/firstaid/toxin/fill_preset_inventory()
new /obj/item/device/healthanalyzer(src)
diff --git a/code/game/objects/items/storage/large_holster.dm b/code/game/objects/items/storage/large_holster.dm
index 3f653926f8b3..09885db34fc9 100644
--- a/code/game/objects/items/storage/large_holster.dm
+++ b/code/game/objects/items/storage/large_holster.dm
@@ -64,6 +64,7 @@
can_hold = list(
/obj/item/weapon/gun/shotgun/pump,
/obj/item/weapon/gun/shotgun/combat,
+ /obj/item/weapon/gun/shotgun/double/mou53,
)
has_gamemode_skin = TRUE
diff --git a/code/game/objects/items/tools/hydro_tools.dm b/code/game/objects/items/tools/hydro_tools.dm
index 7ae4989104f6..045a5b864555 100644
--- a/code/game/objects/items/tools/hydro_tools.dm
+++ b/code/game/objects/items/tools/hydro_tools.dm
@@ -31,24 +31,19 @@
/obj/item/tool/plantspray/pests/old
name = "bottle of pestkiller"
- icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle16"
/obj/item/tool/plantspray/pests/old/carbaryl
name = "bottle of carbaryl"
- icon_state = "bottle16"
toxicity = 4
pest_kill_str = 2
/obj/item/tool/plantspray/pests/old/lindane
name = "bottle of lindane"
- icon_state = "bottle18"
toxicity = 6
pest_kill_str = 4
/obj/item/tool/plantspray/pests/old/phosmet
name = "bottle of phosmet"
- icon_state = "bottle15"
toxicity = 8
pest_kill_str = 7
@@ -57,25 +52,21 @@
/obj/item/tool/weedkiller
name = "bottle of weedkiller"
icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle16"
var/toxicity = 0
var/weed_kill_str = 0
/obj/item/tool/weedkiller/triclopyr
name = "bottle of glyphosate"
- icon_state = "bottle16"
toxicity = 4
weed_kill_str = 2
/obj/item/tool/weedkiller/lindane
name = "bottle of triclopyr"
- icon_state = "bottle18"
toxicity = 6
weed_kill_str = 4
/obj/item/tool/weedkiller/D24
name = "bottle of 2,4-D"
- icon_state = "bottle15"
toxicity = 8
weed_kill_str = 7
diff --git a/code/game/objects/items/tools/surgery_tools.dm b/code/game/objects/items/tools/surgery_tools.dm
index 2e2725b52b81..7d354d8d8c1c 100644
--- a/code/game/objects/items/tools/surgery_tools.dm
+++ b/code/game/objects/items/tools/surgery_tools.dm
@@ -201,6 +201,8 @@
icon_state = "bone-gel"
w_class = SIZE_SMALL
matter = list("plastic" = 7500)
+ ///base icon state for update_icon() to reference, fixes bonegel/empty
+ var/base_icon_state = "bone-gel"
///percent of gel remaining in container
var/remaining_gel = 100
///If gel is used when doing bone surgery
@@ -215,6 +217,22 @@
///How much bone gel is needed to mend bones
var/mend_bones_fix_cost = 5
+/obj/item/tool/surgery/bonegel/update_icon()
+ . = ..()
+ if(remaining_gel >= 100)
+ icon_state = base_icon_state
+ return
+ if(remaining_gel > 50)
+ icon_state = "[base_icon_state]_75"
+ return
+ if(remaining_gel > 25)
+ icon_state = "[base_icon_state]_50"
+ return
+ if(remaining_gel > 0)
+ icon_state = "[base_icon_state]_25"
+ return
+ icon_state = "[base_icon_state]_0"
+
/obj/item/tool/surgery/bonegel/get_examine_text(mob/user)
. = ..()
if(unlimited_gel) //Only show how much gel is left if it actually uses bone gel
@@ -244,6 +262,7 @@
if(!do_after(user, time_per_refill, INTERRUPT_ALL, BUSY_ICON_FRIENDLY, refilling_obj))
break
remaining_gel = clamp(remaining_gel + 10, 0, 100)
+ update_icon()
to_chat(user, SPAN_NOTICE("[refilling_obj] chimes, and displays \"[remaining_gel]% filled\"."))
refilling = FALSE
@@ -257,14 +276,17 @@
if(remaining_gel < gel_cost)
return FALSE
remaining_gel -= gel_cost
+ update_icon()
return TRUE
/obj/item/tool/surgery/bonegel/empty
remaining_gel = 0
+ icon_state = "bone-gel_0"
/obj/item/tool/surgery/bonegel/predatorbonegel
name = "gel gun"
desc = "Inside is a liquid that is similar in effect to bone gel, but requires much smaller quantities, allowing near infinite use from a single capsule."
+ base_icon_state = "predator_bone-gel"
icon_state = "predator_bone-gel"
unlimited_gel = TRUE
diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm
index 6fa420df35d5..91d8164dcf38 100644
--- a/code/game/objects/items/toys/toys.dm
+++ b/code/game/objects/items/toys/toys.dm
@@ -396,6 +396,14 @@
src.add_fingerprint(user)
addtimer(VARSET_CALLBACK(src, spam_flag, FALSE), 2 SECONDS)
+// rubber duck
+/obj/item/toy/bikehorn/rubberducky
+ name = "rubber ducky"
+ desc = "Rubber ducky you're so fine, you make bathtime lots of fuuun. Rubber ducky I'm awfully fooooond of yooooouuuu~" //thanks doohl
+ icon = 'icons/obj/structures/props/watercloset.dmi'
+ icon_state = "rubberducky"
+ item_state = "rubberducky"
+
/obj/item/computer3_part
name = "computer part"
desc = "Holy jesus you donnit now"
diff --git a/code/game/objects/items/toys/trading_cards.dm b/code/game/objects/items/toys/trading_cards.dm
new file mode 100644
index 000000000000..9fb83cd1e5e1
--- /dev/null
+++ b/code/game/objects/items/toys/trading_cards.dm
@@ -0,0 +1,61 @@
+/obj/item/toy/trading_card
+ name = "WeyYu Military Trading Card"
+ icon = 'icons/obj/items/playing_cards.dmi'
+ icon_state = "trading_red"
+ w_class = SIZE_TINY
+
+ var/trading_card_number = "1"
+ var/picture_description = "barrel charger"
+ var/collection_color
+ var/is_front = FALSE
+ var/back_name = "Red WeyYu Military Trading Card"
+ var/front_name = "Red WeyYu Military Trading Card Number One"
+ var/back_description = "The back of a red trading card with the text: WeyYu Military Trading Cards! GOTTA COLLECT EM ALL!"
+ var/front_description = "A red trading card with a picture of the United Americas flag emblazoned on it. It is number one out of the five red cards."
+ var/back_icon_state = "trading_red"
+ var/front_icon_state = "trading_red_one"
+ var/picture_descriptions = list("5" = list("red" = "a fanatical colonial seditionist", "green" = "Almirante Joelle De La Cruz (the United Americas Secretary of Defense)", "blue" = "the United Americas flag"),
+ "4" = list("red" = "a UPPA soldier", "green" = "Marechal-do-ar Enzo Gabriel Lurdes (the Chief of Naval Operations of the Latin American Colonial Navy)", "blue" = "the Union of Progressive Peoples flag"),
+ "3" = list("red" = "a UPPA minigunner", "green" = "Generale d'armee Felix Couture (the Commandant of the Canadian Colonial Armed Forces)", "blue" = "the Three World Empire flag"),
+ "2" = list("red" = "a UPPA officer", "green" = "General Diego Dellamarggio (the Commandant of the United States Colonial Marines)", "blue" = "the Weyland Yutani logo"),
+ "1" = list("red" = "a Holy Order of the HEFA cultist", "green" = "General Delyla S. Vaughn (the Assistant Commandant of the United States Colonial Marines)", "blue" = "the Independent Core System Colonies logo",)
+ )
+
+/obj/item/toy/trading_card/Initialize()
+ . = ..()
+
+ if(istype(loc, /obj/item/storage/fancy/trading_card))
+ var/obj/item/storage/fancy/trading_card/packet = loc
+ collection_color = packet.collection_color
+
+ if(!collection_color)
+ collection_color = pick("red", "green", "blue")
+ trading_card_number = pick_weight(list("5" = 25, "4" = 20, "3" = 15, "2" = 10, "1" = 5))
+ picture_description = picture_descriptions[trading_card_number][collection_color]
+
+ name = "[capitalize(collection_color)] WeyYu Military Trading Card"
+ back_name = "[capitalize(collection_color)] WeyYu Military Trading Card"
+ front_name = "[capitalize(collection_color)] WeyYu Military Trading Card #[trading_card_number]"
+
+ desc = "The back of a [collection_color] trading card with the text: WeyYu Military Trading Cards! GOTTA COLLECT EM ALL!"
+ back_description = "The back of a [collection_color] trading card with the text: WeyYu Military Trading Cards! GOTTA COLLECT EM ALL!"
+ front_description = "A [collection_color] trading card with a picture of [picture_description] emblazoned on it. It is #[trading_card_number] out of the five [collection_color] cards."
+
+ icon_state = "trading_[collection_color]"
+ back_icon_state = "trading_[collection_color]"
+ front_icon_state = "trading_[collection_color]_[trading_card_number]"
+
+/obj/item/toy/trading_card/attack_self(mob/user)
+ if(loc == user)
+ if(is_front)
+ name = back_name
+ desc = back_description
+ icon_state = back_icon_state
+ is_front = FALSE
+ else
+ to_chat(user, SPAN_NOTICE("You reveal the card. It has a picture of [picture_description] on it!"))
+ name = front_name
+ desc = front_description
+ icon_state = front_icon_state
+ is_front = TRUE
+ return ..()
diff --git a/code/game/objects/structures/barricade/barricade.dm b/code/game/objects/structures/barricade/barricade.dm
index 0a37e4bcec59..313067ca6a56 100644
--- a/code/game/objects/structures/barricade/barricade.dm
+++ b/code/game/objects/structures/barricade/barricade.dm
@@ -5,21 +5,28 @@
climbable = TRUE
anchored = TRUE
density = TRUE
- throwpass = TRUE //You can throw objects over this, despite its density.
+ /// You can throw objects over this, despite its density.
+ throwpass = TRUE
layer = BELOW_OBJ_LAYER
flags_atom = ON_BORDER
- var/stack_type //The type of stack the barricade dropped when disassembled if any.
- var/stack_amount = 5 //The amount of stack dropped when disassembled at full health
- var/destroyed_stack_amount //to specify a non-zero amount of stack to drop when destroyed
+ /// The type of stack the barricade dropped when disassembled if any.
+ var/stack_type
+ /// The amount of stack dropped when disassembled at full health
+ var/stack_amount = 5
+ /// to specify a non-zero amount of stack to drop when destroyed
+ var/destroyed_stack_amount
health = 100 //Pretty tough. Changes sprites at 300 and 150
- var/maxhealth = 100 //Basic code functions
+ var/maxhealth = 100
/// Used for calculating some stuff related to maxhealth as it constantly changes due to e.g. barbed wire. set to 100 to avoid possible divisions by zero
var/starting_maxhealth = 100
- var/crusher_resistant = TRUE //Whether a crusher can ram through it.
- var/force_level_absorption = 5 //How much force an item needs to even damage it at all.
+ /// Whether a crusher can ram through it.
+ var/crusher_resistant = TRUE
+ /// How much force an item needs to even damage it at all.
+ var/force_level_absorption = 5
var/barricade_hitsound
var/barricade_type = "barricade" //"metal", "plasteel", etc.
- var/wire_icon = 'icons/obj/structures/barricades.dmi' //! Icon file used for the wiring
+ /// ! Icon file used for the wiring
+ var/wire_icon = 'icons/obj/structures/barricades.dmi'
var/can_change_dmg_state = TRUE
var/damage_state = BARRICADE_DMG_NONE
var/closed = FALSE
@@ -35,6 +42,8 @@
var/burn_flame_multiplier = 1
var/repair_materials = list()
var/metallic = TRUE
+ /// Lower limit of damage beyond which the barricade cannot be fixed by welder. Compared to damage_state. If null it can be repaired at any damage_state.
+ var/welder_lower_damage_limit = null
/obj/structure/barricade/Initialize(mapload, mob/user)
. = ..()
@@ -357,9 +366,8 @@
if(50 to 75) damage_state = BARRICADE_DMG_SLIGHT
if(75 to INFINITY) damage_state = BARRICADE_DMG_NONE
-/obj/structure/barricade/proc/weld_cade(obj/item/tool/weldingtool/welder, mob/user)
- if(!metallic)
- user.visible_message(SPAN_WARNING("You can't weld \the [src]!"))
+/obj/structure/barricade/proc/try_weld_cade(obj/item/tool/weldingtool/welder, mob/user, repeat = TRUE, skip_check = FALSE)
+ if(!skip_check && !can_weld(welder, user))
return FALSE
if(!(welder.remove_fuel(2, user)))
@@ -378,6 +386,16 @@
user.count_niche_stat(STATISTICS_NICHE_REPAIR_CADES)
update_health(-200)
playsound(src.loc, 'sound/items/Welder2.ogg', 25, TRUE)
+
+ var/current_tool = user.get_active_hand()
+ if(current_tool != welder)
+ return TRUE // Swapped hands or tool
+ if(repeat && can_weld(welder, user, silent = TRUE))
+ // Assumption: The implementation of can_weld will return false if fully repaired
+ if(!try_weld_cade(welder, user, repeat = TRUE, skip_check = TRUE))
+ // If this returned false, then we were interrupted or ran out of fuel, so stop looping
+ return TRUE
+
return TRUE
/obj/structure/barricade/verb/count_rotate()
@@ -466,3 +484,29 @@
nailgun.in_chamber = null
nailgun.load_into_chamber()
return TRUE
+
+/obj/structure/barricade/proc/can_weld(obj/item/item, mob/user, silent)
+ if(user.action_busy)
+ return FALSE
+
+ if(!metallic)
+ if(!silent)
+ user.visible_message(SPAN_WARNING("You can't weld \the [src]!"))
+ return FALSE
+
+ if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH))
+ if(!silent)
+ to_chat(user, SPAN_WARNING("You need a stronger blowtorch!"))
+ return FALSE
+
+ if(health == maxhealth)
+ if(!silent)
+ to_chat(user, SPAN_WARNING("[src] doesn't need repairs."))
+ return FALSE
+
+ if(!(isnull(damage_state)) && !(isnull(welder_lower_damage_limit)) && damage_state >= welder_lower_damage_limit)
+ if(!silent)
+ to_chat(user, SPAN_WARNING("[src] has sustained too much structural damage to be repaired."))
+ return FALSE
+
+ return TRUE
diff --git a/code/game/objects/structures/barricade/deployable.dm b/code/game/objects/structures/barricade/deployable.dm
index 0d5275f98a3d..ca35f82bdde5 100644
--- a/code/game/objects/structures/barricade/deployable.dm
+++ b/code/game/objects/structures/barricade/deployable.dm
@@ -24,40 +24,28 @@
. += SPAN_INFO("Drag its sprite onto yourself to undeploy.")
/obj/structure/barricade/deployable/attackby(obj/item/item, mob/user)
-
if(iswelder(item))
- if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH))
- to_chat(user, SPAN_WARNING("You need a stronger blowtorch!"))
- return
- if(user.action_busy)
- return
- var/obj/item/tool/weldingtool/welder = item
- if(health == maxhealth)
- to_chat(user, SPAN_WARNING("[src] doesn't need repairs."))
- return
-
- weld_cade(welder, user)
+ try_weld_cade(item, user)
return
- else if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR))
+ if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR))
if(user.action_busy)
return
if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED))
to_chat(user, SPAN_WARNING("You do not know how to collapse [src] using a crowbar..."))
return
+ user.visible_message(SPAN_NOTICE("[user] starts collapsing [src]."), \
+ SPAN_NOTICE("You begin collapsing [src]..."))
+ playsound(loc, 'sound/items/Crowbar.ogg', 25, 1)
+ if(do_after(user, 1.5 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_FRIENDLY, src))
+ collapse(usr)
else
- user.visible_message(SPAN_NOTICE("[user] starts collapsing [src]."), \
- SPAN_NOTICE("You begin collapsing [src]..."))
- playsound(loc, 'sound/items/Crowbar.ogg', 25, 1)
- if(do_after(user, 1.5 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_FRIENDLY, src))
- collapse(usr)
- else
- to_chat(user, SPAN_WARNING("You stop collapsing [src]."))
+ to_chat(user, SPAN_WARNING("You stop collapsing [src]."))
if(try_nailgun_usage(item, user))
return
- . = ..()
+ return ..()
/obj/structure/barricade/deployable/MouseDrop(obj/over_object as obj)
if(!ishuman(usr))
@@ -202,7 +190,7 @@
to_chat(user, SPAN_INFO("You transfer [to_transfer] between the stacks."))
return
- else if(iswelder(item))
+ if(iswelder(item))
if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH))
to_chat(user, SPAN_WARNING("You need a stronger blowtorch!"))
return
@@ -248,7 +236,7 @@
playsound(loc, 'sound/items/Welder2.ogg', 25, TRUE)
return
- . = ..()
+ return ..()
/obj/item/stack/folding_barricade/attack_hand(mob/user)
var/mob/living/carbon/human/human = user
diff --git a/code/game/objects/structures/barricade/handrail.dm b/code/game/objects/structures/barricade/handrail.dm
index ae166dbbf985..1d641479c3d9 100644
--- a/code/game/objects/structures/barricade/handrail.dm
+++ b/code/game/objects/structures/barricade/handrail.dm
@@ -67,7 +67,7 @@
reinforced = !reinforced
update_icon()
-/obj/structure/barricade/handrail/attackby(obj/item/W, mob/user)
+/obj/structure/barricade/handrail/attackby(obj/item/item, mob/user)
for(var/obj/effect/xenomorph/acid/A in src.loc)
if(A.acid_t == src)
to_chat(user, "You can't get near that, it's melting!")
@@ -75,7 +75,7 @@
switch(build_state)
if(BARRICADE_BSTATE_SECURED) //Non-reinforced. Wrench to unsecure. Screwdriver to disassemble into metal. 1 metal to reinforce.
- if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) // Make unsecure
+ if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) // Make unsecure
if(user.action_busy)
return
if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED))
@@ -89,7 +89,7 @@
build_state = BARRICADE_BSTATE_UNSECURED
update_icon()
return
- if(istype(W, /obj/item/stack/sheet/metal)) // Start reinforcing
+ if(istype(item, /obj/item/stack/sheet/metal)) // Start reinforcing
if(!can_be_reinforced)
return
if(user.action_busy)
@@ -97,7 +97,7 @@
if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED))
to_chat(user, SPAN_WARNING("You are not trained to reinforce [src]..."))
return
- var/obj/item/stack/sheet/metal/M = W
+ var/obj/item/stack/sheet/metal/M = item
playsound(src.loc, 'sound/items/Screwdriver2.ogg', 25, 1)
if(M.amount >= 1 && do_after(user, 30, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) //Shouldnt be possible, but doesnt hurt to check
if(!M.use(1))
@@ -109,7 +109,7 @@
return
if(BARRICADE_BSTATE_UNSECURED)
- if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) // Secure again
+ if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) // Secure again
if(user.action_busy)
return
if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED))
@@ -123,7 +123,7 @@
build_state = BARRICADE_BSTATE_SECURED
update_icon()
return
- if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) // Disassemble into metal
+ if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER)) // Disassemble into metal
if(user.action_busy)
return
if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED))
@@ -141,7 +141,7 @@
if(BARRICADE_BSTATE_FORTIFIED)
if(reinforced)
- if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) // Un-reinforce
+ if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) // Un-reinforce
if(user.action_busy)
return
if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED))
@@ -155,8 +155,8 @@
reinforce()
return
else
- if(iswelder(W)) // Finish reinforcing
- if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH))
+ if(iswelder(item)) // Finish reinforcing
+ if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH))
to_chat(user, SPAN_WARNING("You need a stronger blowtorch!"))
return
if(user.action_busy)
diff --git a/code/game/objects/structures/barricade/metal.dm b/code/game/objects/structures/barricade/metal.dm
index 4f250eed50e9..3e79af2e21e1 100644
--- a/code/game/objects/structures/barricade/metal.dm
+++ b/code/game/objects/structures/barricade/metal.dm
@@ -19,6 +19,8 @@
var/build_state = BARRICADE_BSTATE_SECURED //Look at __game.dm for barricade defines
var/upgrade = null
+ welder_lower_damage_limit = BARRICADE_DMG_HEAVY
+
/obj/structure/barricade/metal/update_icon()
. = ..()
if(dir > 2)
@@ -42,26 +44,20 @@
if(BARRICADE_UPGRADE_ANTIFF)
. += SPAN_NOTICE("The cade is protected by a composite upgrade.")
-/obj/structure/barricade/metal/attackby(obj/item/item, mob/user)
- if(iswelder(item))
- if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH))
- to_chat(user, SPAN_WARNING("You need a stronger blowtorch!"))
- return
- if(user.action_busy)
- return
- if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED))
+/obj/structure/barricade/metal/can_weld(obj/item/item, mob/user, silent)
+ if(!..())
+ return FALSE
+
+ if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED))
+ if(!silent)
to_chat(user, SPAN_WARNING("You're not trained to repair [src]..."))
- return
- var/obj/item/tool/weldingtool/welder = item
- if(damage_state == BARRICADE_DMG_HEAVY)
- to_chat(user, SPAN_WARNING("[src] has sustained too much structural damage to be repaired."))
- return
+ return FALSE
- if(health == maxhealth)
- to_chat(user, SPAN_WARNING("[src] doesn't need repairs."))
- return
+ return TRUE
- weld_cade(welder, user)
+/obj/structure/barricade/metal/attackby(obj/item/item, mob/user)
+ if(iswelder(item))
+ try_weld_cade(item, user)
return
if(try_nailgun_usage(item, user))
@@ -204,11 +200,13 @@
to_chat(user, SPAN_WARNING("You are not trained to assemble [src]..."))
return
playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1)
- if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return
+ if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src))
+ return
user.visible_message(SPAN_NOTICE("[user] set [src]'s protection panel back."),
SPAN_NOTICE("You set [src]'s protection panel back."))
build_state = BARRICADE_BSTATE_SECURED
return
+
if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH))
if(user.action_busy)
return
@@ -216,13 +214,15 @@
to_chat(user, SPAN_WARNING("You are not trained to disassemble [src]..."))
return
playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1)
- if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return
+ if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src))
+ return
user.visible_message(SPAN_NOTICE("[user] loosens [src]'s anchor bolts."),
SPAN_NOTICE("You loosen [src]'s anchor bolts."))
anchored = FALSE
build_state = BARRICADE_BSTATE_MOVABLE
update_icon() //unanchored changes layer
return
+
if(BARRICADE_BSTATE_MOVABLE) //Anchor bolts loosened step. Apply crowbar to unseat the panel and take apart the whole thing. Apply wrench to resecure anchor bolts
if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH))
if(user.action_busy)
@@ -239,13 +239,15 @@
to_chat(user, SPAN_WARNING("[src] must be secured on a proper surface!"))
return
playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1)
- if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return
+ if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src))
+ return
user.visible_message(SPAN_NOTICE("[user] secures [src]'s anchor bolts."),
SPAN_NOTICE("You secure [src]'s anchor bolts."))
build_state = BARRICADE_BSTATE_UNSECURED
anchored = TRUE
update_icon() //unanchored changes layer
return
+
if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR))
if(user.action_busy)
return
@@ -262,7 +264,7 @@
deconstruct(TRUE) //Note : Handles deconstruction too !
return
- . = ..()
+ return ..()
/obj/structure/barricade/metal/wired/New()
maxhealth += 50
@@ -271,7 +273,7 @@
is_wired = TRUE
climbable = FALSE
update_icon()
- . = ..()
+ return ..()
/obj/structure/barricade/metal/wired/initialize_pass_flags(datum/pass_flags_container/PF)
..()
diff --git a/code/game/objects/structures/barricade/misc.dm b/code/game/objects/structures/barricade/misc.dm
index 5e0958f974b1..a0465de8f070 100644
--- a/code/game/objects/structures/barricade/misc.dm
+++ b/code/game/objects/structures/barricade/misc.dm
@@ -44,8 +44,8 @@
user.visible_message(SPAN_NOTICE("\The [user] removes \the [src]."))
deconstruct(TRUE)
return
- else
- . = ..()
+
+ return ..()
/obj/structure/barricade/snow/hit_barricade(obj/item/I)
switch(I.damtype)
@@ -101,7 +101,7 @@
if(try_nailgun_usage(W, user))
return
- . = ..()
+ return ..()
/obj/structure/barricade/wooden/hit_barricade(obj/item/I)
switch(I.damtype)
diff --git a/code/game/objects/structures/barricade/plasteel.dm b/code/game/objects/structures/barricade/plasteel.dm
index dd95aa3f1baf..1acedae9997d 100644
--- a/code/game/objects/structures/barricade/plasteel.dm
+++ b/code/game/objects/structures/barricade/plasteel.dm
@@ -20,12 +20,15 @@
repair_materials = list("plasteel" = 0.3)
var/build_state = BARRICADE_BSTATE_SECURED //Look at __game.dm for barricade defines
- var/tool_cooldown = 0 //Delay to apply tools to prevent spamming
- var/busy = FALSE //Standard busy check
+ /// Delay to apply tools to prevent spamming
+ var/tool_cooldown = 0
+ /// Standard busy check
+ var/busy = FALSE
var/linked = 0
var/recentlyflipped = FALSE
var/hasconnectionoverlay = TRUE
var/linkable = TRUE
+ welder_lower_damage_limit = BARRICADE_DMG_HEAVY
/obj/structure/barricade/plasteel/update_icon()
..()
@@ -44,7 +47,7 @@
if(!closed) // Closed = gate down for plasteel for some reason
return ..()
else
- return 0
+ return FALSE
/obj/structure/barricade/plasteel/get_examine_text(mob/user)
. = ..()
@@ -57,35 +60,28 @@
if(BARRICADE_BSTATE_MOVABLE)
. += SPAN_INFO("The protection panel has been removed and the anchor bolts loosened. It's ready to be taken apart.")
-/obj/structure/barricade/plasteel/weld_cade(obj/item/W, mob/user)
+/obj/structure/barricade/plasteel/try_weld_cade(obj/item/item, mob/user, repeat = TRUE, skip_check = FALSE)
busy = TRUE
..()
busy = FALSE
-/obj/structure/barricade/plasteel/attackby(obj/item/W, mob/user)
- if(iswelder(W))
- if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH))
- to_chat(user, SPAN_WARNING("You need a stronger blowtorch!"))
- return
- if(busy || tool_cooldown > world.time)
- return
- tool_cooldown = world.time + 10
- if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED))
+/obj/structure/barricade/plasteel/can_weld(obj/item/item, mob/user, silent)
+ if(!..())
+ return FALSE
+
+ if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED))
+ if(!silent)
to_chat(user, SPAN_WARNING("You're not trained to repair [src]..."))
- return
- var/obj/item/tool/weldingtool/WT = W
- if(damage_state == BARRICADE_DMG_HEAVY)
- to_chat(user, SPAN_WARNING("[src] has sustained too much structural damage to be repaired."))
- return
+ return FALSE
- if(health == maxhealth)
- to_chat(user, SPAN_WARNING("[src] doesn't need repairs."))
- return
+ return TRUE
- weld_cade(WT, user)
+/obj/structure/barricade/plasteel/attackby(obj/item/item, mob/user)
+ if(iswelder(item))
+ try_weld_cade(item, user)
return
- if(try_nailgun_usage(W, user))
+ if(try_nailgun_usage(item, user))
return
for(var/obj/effect/xenomorph/acid/A in src.loc)
@@ -94,8 +90,8 @@
return
switch(build_state)
- if(2) //Fully constructed step. Use screwdriver to remove the protection panels to reveal the bolts
- if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER))
+ if(BARRICADE_BSTATE_SECURED) //Fully constructed step. Use screwdriver to remove the protection panels to reveal the bolts
+ if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER))
if(busy || tool_cooldown > world.time)
return
tool_cooldown = world.time + 10
@@ -107,13 +103,15 @@
if(B != src && B.dir == dir)
to_chat(user, SPAN_WARNING("There's already a barricade here."))
return
- if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return
+ if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src))
+ return
user.visible_message(SPAN_NOTICE("[user] removes [src]'s protection panel."),
SPAN_NOTICE("You remove [src]'s protection panels, exposing the anchor bolts."))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1)
build_state = BARRICADE_BSTATE_UNSECURED
return
- if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR))
+
+ if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR))
if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
to_chat(user, SPAN_WARNING("You are not trained to modify [src]..."))
return
@@ -132,28 +130,32 @@
for(var/obj/structure/barricade/plasteel/cade in get_step(src, direction))
cade.update_icon()
update_icon()
- if(1) //Protection panel removed step. Screwdriver to put the panel back, wrench to unsecure the anchor bolts
- if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER))
+
+ if(BARRICADE_BSTATE_UNSECURED) //Protection panel removed step. Screwdriver to put the panel back, wrench to unsecure the anchor bolts
+ if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER))
if(busy || tool_cooldown > world.time)
return
tool_cooldown = world.time + 10
if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
to_chat(user, SPAN_WARNING("You are not trained to assemble [src]..."))
return
- if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return
+ if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src))
+ return
user.visible_message(SPAN_NOTICE("[user] set [src]'s protection panel back."),
SPAN_NOTICE("You set [src]'s protection panel back."))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1)
build_state = BARRICADE_BSTATE_SECURED
return
- if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH))
+
+ if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH))
if(busy || tool_cooldown > world.time)
return
tool_cooldown = world.time + 10
if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
to_chat(user, SPAN_WARNING("You are not trained to assemble [src]..."))
return
- if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return
+ if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src))
+ return
user.visible_message(SPAN_NOTICE("[user] loosens [src]'s anchor bolts."),
SPAN_NOTICE("You loosen [src]'s anchor bolts."))
playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1)
@@ -162,8 +164,8 @@
update_icon() //unanchored changes layer
return
- if(0) //Anchor bolts loosened step. Apply crowbar to unseat the panel and take apart the whole thing. Apply wrench to rescure anchor bolts
- if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH))
+ if(BARRICADE_BSTATE_MOVABLE) //Anchor bolts loosened step. Apply crowbar to unseat the panel and take apart the whole thing. Apply wrench to rescure anchor bolts
+ if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH))
if(busy || tool_cooldown > world.time)
return
tool_cooldown = world.time + 10
@@ -174,7 +176,8 @@
if(!(istype(T) && T.allow_construction))
to_chat(user, SPAN_WARNING("[src] must be secured on a proper surface!"))
return
- if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return
+ if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src))
+ return
user.visible_message(SPAN_NOTICE("[user] secures [src]'s anchor bolts."),
SPAN_NOTICE("You secure [src]'s anchor bolts."))
playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1)
@@ -182,7 +185,8 @@
build_state = BARRICADE_BSTATE_UNSECURED
update_icon() //unanchored changes layer
return
- if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR))
+
+ if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR))
if(busy || tool_cooldown > world.time)
return
tool_cooldown = world.time + 10
@@ -194,15 +198,14 @@
playsound(src.loc, 'sound/items/Crowbar.ogg', 25, 1)
busy = TRUE
if(do_after(user, 50 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src))
- busy = FALSE
user.visible_message(SPAN_NOTICE("[user] takes [src]'s panels apart."),
SPAN_NOTICE("You take [src]'s panels apart."))
playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1)
deconstruct(TRUE) //Note : Handles deconstruction too !
- else busy = FALSE
+ busy = FALSE
return
- . = ..()
+ return ..()
/obj/structure/barricade/plasteel/attack_hand(mob/user as mob)
if(isxeno(user))
@@ -264,7 +267,7 @@
is_wired = TRUE
climbable = FALSE
update_icon()
- . = ..()
+ return ..()
/obj/structure/barricade/plasteel/wired/initialize_pass_flags(datum/pass_flags_container/PF)
..()
diff --git a/code/game/objects/structures/crates_lockers/closets/coffin.dm b/code/game/objects/structures/crates_lockers/closets/coffin.dm
index 41c27ae47519..c1c0839fa6f5 100644
--- a/code/game/objects/structures/crates_lockers/closets/coffin.dm
+++ b/code/game/objects/structures/crates_lockers/closets/coffin.dm
@@ -14,6 +14,13 @@
else
icon_state = icon_opened
+/obj/structure/closet/coffin/uscm
+ name = "\improper USCM coffin"
+ desc = "A burial receptacle for dearly departed Marines, adorned in red and finished with the Corps' emblem on the interior. Semper fi."
+ icon_state = "uscm_coffin"
+ icon_closed = "uscm_coffin"
+ icon_opened = "uscm_coffin_open"
+
/obj/structure/closet/coffin/predator
name = "strange coffin"
desc = "It's a burial receptacle for the dearly departed. Seems to have weird markings on the side..?"
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm
index 9b473d91f46e..6c711a7bcabe 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm
@@ -254,6 +254,7 @@ GLOBAL_LIST_EMPTY(co_secure_boxes)
new /obj/item/storage/belt/medical/full(src)
new /obj/item/clothing/under/rank/medical/green(src)
new /obj/item/clothing/under/rank/medical/blue(src)
+ new /obj/item/clothing/under/rank/medical/lightblue(src)
new /obj/item/clothing/under/rank/medical/purple(src)
new /obj/item/clothing/mask/surgical(src)
new /obj/item/clothing/head/surgery/green(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index 4244fd82881e..f7518a8c6058 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -93,6 +93,7 @@
new /obj/item/clothing/gloves/latex(src)
new /obj/item/clothing/under/rank/medical/green(src)
new /obj/item/clothing/under/rank/medical/blue(src)
+ new /obj/item/clothing/under/rank/medical/lightblue(src)
new /obj/item/clothing/under/rank/medical/purple(src)
new /obj/item/clothing/head/surgery/green(src)
new /obj/item/clothing/head/surgery/blue(src)
@@ -106,8 +107,6 @@
new /obj/item/storage/pouch/medical(src)
new /obj/item/storage/pouch/syringe(src)
new /obj/item/storage/pouch/medkit(src)
- if(is_mainship_level(z))
- new /obj/item/device/radio/headset/almayer/cmo(src)
return
/obj/structure/closet/secure_closet/chemical
name = "chemical closet"
@@ -170,3 +169,63 @@
. = ..()
new /obj/item/storage/surgical_tray(src)
new /obj/item/roller/surgical(src)
+
+/obj/structure/closet/secure_closet/professor_dummy
+ name = "professor dummy cabinet"
+ desc = "An ultrasafe cabinet containing Professor DUMMY and its tablet. Only accessible by Chief Medical Officers and Senior Listed Advisors."
+ icon_state = "surgical_wall_locked"
+ icon_closed = "surgical_wall_unlocked"
+ icon_locked = "surgical_wall_locked"
+ icon_opened = "surgical_wall_open"
+ icon_broken = "surgical_wall_spark"
+ health = null // Unbreakable
+ unacidable = TRUE
+ unslashable = TRUE
+ store_mobs = TRUE
+ wall_mounted = TRUE
+
+/obj/structure/closet/secure_closet/professor_dummy/Initialize()
+ . = ..()
+ var/mob/living/carbon/human/dummy/professor_dummy/spawned_dummy = new(src)
+ var/datum/equipment_preset/dummy_preset = /datum/equipment_preset/other/professor_dummy
+ arm_equipment(spawned_dummy, initial(dummy_preset.name), TRUE, FALSE)
+
+/obj/structure/closet/secure_closet/professor_dummy/togglelock(mob/living/user)
+ if(user.job == JOB_CMO || user.job == JOB_SEA)
+ return ..()
+
+ to_chat(user, SPAN_WARNING("Only the [JOB_CMO] or the [JOB_SEA] can toggle this lock."))
+
+/obj/structure/closet/secure_closet/professor_dummy/dump_contents()
+ if(locate(/mob/living/carbon/human/dummy/professor_dummy) in src)
+ visible_message(SPAN_HIGHDANGER("Professor DUMMY should only be used for teaching medical personnel, exclusively done by the [JOB_CMO] or the [JOB_SEA]. Do not abuse it."))
+ return ..()
+
+/obj/structure/closet/secure_closet/professor_dummy/close()
+ for(var/mob/mob in loc)
+ if(!istype(mob, /mob/living/carbon/human/dummy/professor_dummy))
+ visible_message(SPAN_WARNING("[src] won't budge!"))
+ return
+ ..()
+
+ // Force locking upon closing it
+ locked = TRUE
+ update_icon()
+
+/obj/structure/closet/secure_closet/professor_dummy/flashbang(datum/source, obj/item/explosive/grenade/flashbang/FB)
+ return
+
+/obj/structure/closet/secure_closet/professor_dummy/proc/check_and_destroy_dummy()
+ var/mob/dummy = locate(/mob/living/carbon/human/dummy/professor_dummy) in src
+ if(dummy)
+ visible_message(SPAN_DANGER("Something in [src] blows apart!"))
+ playsound(src, 'sound/effects/metal_crash.ogg', 25, 1)
+ qdel(dummy)
+
+/obj/structure/closet/secure_closet/professor_dummy/emp_act(severity)
+ check_and_destroy_dummy()
+ ..()
+
+/obj/structure/closet/secure_closet/professor_dummy/ex_act(severity)
+ check_and_destroy_dummy()
+ ..()
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index daecf1906c21..eddc0690233c 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -297,6 +297,7 @@
new /obj/item/clothing/under/rank/medical(src)
new /obj/item/clothing/under/rank/medical(src)
new /obj/item/clothing/under/rank/medical/blue(src)
+ new /obj/item/clothing/under/rank/medical/lightblue(src)
new /obj/item/clothing/under/rank/medical/green(src)
new /obj/item/clothing/under/rank/medical/purple(src)
new /obj/item/clothing/shoes/white(src)
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index cfb62812f0c6..d891119a8404 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -335,7 +335,7 @@
icon_closed = "closed_supply"
/obj/structure/closet/crate/trashcart
- name = "\improper trash cart"
+ name = "trash cart"
desc = "A heavy, metal trashcart with wheels."
icon_state = "closed_trashcart"
icon_opened = "open_trashcart"
@@ -437,4 +437,3 @@
density = TRUE
icon_opened = "open_mcart_y"
icon_closed = "closed_mcart_y"
-
diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm
index 39a659c5f397..5620f106b560 100644
--- a/code/game/objects/structures/crates_lockers/largecrate.dm
+++ b/code/game/objects/structures/crates_lockers/largecrate.dm
@@ -22,32 +22,18 @@
playsound(src, unpacking_sound, 35)
- /// Store the reference of the crate material
- var/obj/item/stack/sheet/material_sheet
- if(parts_type) // Create the crate material and store its reference
- material_sheet = new parts_type(current_turf, 2)
-
- // Move the objects back to the turf, above the crate material
+ // Move the contents back to the turf
for(var/atom/movable/moving_atom as anything in contents)
moving_atom.forceMove(current_turf)
- deconstruct(TRUE)
-
- // Move the crate material to the bottom of the turf's contents
- if(material_sheet)
- move_to_bottom(material_sheet, current_turf)
+ if(parts_type) // Create the crate material
+ new parts_type(current_turf, 2)
-/// Custom proc to move an object to the bottom of the turf's contents
-/obj/structure/largecrate/proc/move_to_bottom(obj/moving_down, turf/current_turf)
- if(!istype(moving_down) || !istype(current_turf))
- return
- for(var/atom/movable/checking_atom in current_turf.contents)
- if(checking_atom != moving_down)
- checking_atom.layer = max(checking_atom.layer, moving_down.layer + 0.1)
+ deconstruct(TRUE)
/obj/structure/largecrate/deconstruct(disassembled = TRUE)
if(!disassembled)
- new /obj/item/stack/sheet/wood(loc)
+ new parts_type(loc)
return ..()
diff --git a/code/game/objects/structures/props.dm b/code/game/objects/structures/props.dm
index 8aad7de3e04c..8c03a4dbd66c 100644
--- a/code/game/objects/structures/props.dm
+++ b/code/game/objects/structures/props.dm
@@ -926,7 +926,7 @@
name = "\improper S-52 fusion reactor"
desc = "A Westingland S-52 Fusion Reactor. Takes fuels cells and converts them to power. Also produces a large amount of heat."
icon = 'icons/obj/structures/machinery/fusion_eng.dmi'
- icon_state = "off-0"
+ icon_state = "off"
/obj/structure/prop/invuln/pipe_water
name = "pipe water"
diff --git a/code/game/objects/structures/reagent_dispensers.dm b/code/game/objects/structures/reagent_dispensers.dm
index 1981dcaba569..a89f35ce38f3 100644
--- a/code/game/objects/structures/reagent_dispensers.dm
+++ b/code/game/objects/structures/reagent_dispensers.dm
@@ -5,6 +5,7 @@
icon_state = "watertank"
density = TRUE
anchored = FALSE
+ drag_delay = 1
health = 100 // Can be destroyed in 2-4 slashes.
flags_atom = CAN_BE_SYRINGED
wrenchable = TRUE
@@ -432,6 +433,7 @@
icon = 'icons/obj/objects.dmi'
icon_state = "peppertank"
anchored = TRUE
+ drag_delay = 3
wrenchable = FALSE
density = FALSE
amount_per_transfer_from_this = 45
@@ -445,6 +447,7 @@
icon_state = "water_cooler"
possible_transfer_amounts = null
anchored = TRUE
+ drag_delay = 3
chemical = "water"
/obj/structure/reagent_dispensers/water_cooler/walk_past
@@ -460,6 +463,7 @@
icon_state = "beertankTEMP"
amount_per_transfer_from_this = 10
chemical = "beer"
+ drag_delay = 3
/obj/structure/reagent_dispensers/beerkeg/alt
icon_state = "beertank_alt"
@@ -474,6 +478,7 @@
icon_state = "virusfoodtank"
amount_per_transfer_from_this = 10
anchored = TRUE
+ drag_delay = 3
wrenchable = FALSE
density = FALSE
chemical = "virusfood"
diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm
new file mode 100644
index 000000000000..b731a2c0e242
--- /dev/null
+++ b/code/game/objects/structures/shower.dm
@@ -0,0 +1,222 @@
+/obj/structure/machinery/shower
+ name = "shower"
+ desc = "The HS-451. Installed in the 2050s by the Weyland Hygiene Division."
+ icon = 'icons/obj/structures/props/watercloset.dmi'
+ icon_state = "shower"
+ density = FALSE
+ anchored = TRUE
+ use_power = USE_POWER_NONE
+ var/on = 0
+ var/obj/effect/mist/mymist = null
+ /// needs a var so we can make it linger~
+ var/ismist = 0
+ /// freezing, normal, or boiling
+ var/watertemp = "normal"
+ /// true if there is a mob on the shower's loc, this is to ease process()
+ var/mobpresent = 0
+ var/is_washing = 0
+
+/obj/structure/machinery/shower/Initialize()
+ . = ..()
+ create_reagents(2)
+
+//add heat controls? when emagged, you can freeze to death in it?
+
+/obj/effect/mist
+ name = "mist"
+ icon = 'icons/obj/structures/props/watercloset.dmi'
+ icon_state = "mist"
+ layer = FLY_LAYER
+ anchored = TRUE
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+
+
+/obj/structure/machinery/shower/attack_hand(mob/M as mob)
+ on = !on
+ update_icon()
+ if(on)
+ start_processing()
+ if (M.loc == loc)
+ wash(M)
+ check_heat(M)
+ for (var/atom/movable/G in src.loc)
+ G.clean_blood()
+ else
+ stop_processing()
+
+
+/obj/structure/machinery/shower/attackby(obj/item/I as obj, mob/user as mob)
+ if(I.type == /obj/item/device/analyzer)
+ to_chat(user, SPAN_NOTICE("The water temperature seems to be [watertemp]."))
+ if(HAS_TRAIT(I, TRAIT_TOOL_WRENCH))
+ to_chat(user, SPAN_NOTICE("You begin to adjust the temperature valve with \the [I]."))
+ if(do_after(user, 50, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
+ switch(watertemp)
+ if("normal")
+ watertemp = "freezing"
+ if("freezing")
+ watertemp = "boiling"
+ if("boiling")
+ watertemp = "normal"
+ user.visible_message(SPAN_NOTICE("[user] adjusts the shower with \the [I]."), SPAN_NOTICE("You adjust the shower with \the [I]."))
+ add_fingerprint(user)
+
+
+/obj/structure/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up
+ overlays.Cut() //once it's been on for a while, in addition to handling the water overlay.
+ QDEL_NULL(mymist)
+
+ if(on)
+ overlays += image('icons/obj/structures/props/watercloset.dmi', src, "water", MOB_LAYER + 1, dir)
+ if(watertemp == "freezing")
+ return
+ if(!ismist)
+ spawn(50)
+ if(src && on)
+ ismist = 1
+ mymist = new /obj/effect/mist(loc)
+ else
+ ismist = 1
+ mymist = new /obj/effect/mist(loc)
+ else if(ismist)
+ ismist = 1
+ mymist = new /obj/effect/mist(loc)
+ spawn(250)
+ if(src && !on)
+ QDEL_NULL(mymist)
+ ismist = 0
+
+
+/obj/structure/machinery/shower/Crossed(atom/movable/O)
+ ..()
+ wash(O)
+ if(ismob(O))
+ mobpresent++
+ check_heat(O)
+
+
+/obj/structure/machinery/shower/Uncrossed(atom/movable/O)
+ if(ismob(O))
+ mobpresent--
+ ..()
+
+//Yes, showers are super powerful as far as washing goes.
+/obj/structure/machinery/shower/proc/wash(atom/movable/O as obj|mob)
+ if(!on) return
+
+
+ if(isliving(O))
+ var/mob/living/L = O
+ L.ExtinguishMob()
+ L.fire_stacks = -20 //Douse ourselves with water to avoid fire more easily
+ to_chat(L, SPAN_WARNING("You've been drenched in water!"))
+ if(iscarbon(O))
+ var/mob/living/carbon/M = O
+ if(M.r_hand)
+ M.r_hand.clean_blood()
+ if(M.l_hand)
+ M.l_hand.clean_blood()
+ if(M.back)
+ if(M.back.clean_blood())
+ M.update_inv_back(0)
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ var/washgloves = 1
+ var/washshoes = 1
+ var/washmask = 1
+ var/washears = 1
+ var/washglasses = 1
+
+ if(H.wear_suit)
+ washgloves = !(H.wear_suit.flags_inv_hide & HIDEGLOVES)
+ washshoes = !(H.wear_suit.flags_inv_hide & HIDESHOES)
+
+ if(H.head)
+ washmask = !(H.head.flags_inv_hide & HIDEMASK)
+ washglasses = !(H.head.flags_inv_hide & HIDEEYES)
+ washears = !(H.head.flags_inv_hide & HIDEEARS)
+
+ if(H.wear_mask)
+ if (washears)
+ washears = !(H.wear_mask.flags_inv_hide & HIDEEARS)
+ if (washglasses)
+ washglasses = !(H.wear_mask.flags_inv_hide & HIDEEYES)
+
+ if(H.head)
+ if(H.head.clean_blood())
+ H.update_inv_head()
+ if(H.wear_suit)
+ if(H.wear_suit.clean_blood())
+ H.update_inv_wear_suit()
+ else if(H.w_uniform)
+ if(H.w_uniform.clean_blood())
+ H.update_inv_w_uniform()
+ if(H.gloves && washgloves)
+ if(H.gloves.clean_blood())
+ H.update_inv_gloves()
+ if(H.shoes && washshoes)
+ if(H.shoes.clean_blood())
+ H.update_inv_shoes()
+ if(H.wear_mask && washmask)
+ if(H.wear_mask.clean_blood())
+ H.update_inv_wear_mask()
+ if(H.glasses && washglasses)
+ if(H.glasses.clean_blood())
+ H.update_inv_glasses()
+ if((H.wear_l_ear || H.wear_r_ear) && washears)
+ if((H.wear_l_ear && H.wear_l_ear.clean_blood()) ||(H.wear_r_ear && H.wear_r_ear.clean_blood()))
+ H.update_inv_ears()
+ if(H.belt)
+ if(H.belt.clean_blood())
+ H.update_inv_belt()
+ H.clean_blood(washshoes)
+ else
+ if(M.wear_mask) //if the mob is not human, it cleans the mask without asking for bitflags
+ if(M.wear_mask.clean_blood())
+ M.update_inv_wear_mask()
+ M.clean_blood()
+ else
+ O.clean_blood()
+
+ if(isturf(loc))
+ var/turf/tile = loc
+ tile.clean_blood()
+ for(var/obj/effect/E in tile)
+ if(istype(E,/obj/effect/decal/cleanable) || istype(E,/obj/effect/overlay))
+ qdel(E)
+
+
+/obj/structure/machinery/shower/process()
+ if(!on) return
+ wash_floor()
+ if(!mobpresent) return
+ for(var/mob/living/carbon/C in loc)
+ check_heat(C)
+
+
+/obj/structure/machinery/shower/proc/wash_floor()
+ if(!ismist && is_washing)
+ return
+ is_washing = 1
+ var/turf/T = get_turf(src)
+// reagents.add_reagent("water", 2)
+ T.clean(src)
+ addtimer(VARSET_CALLBACK(src, is_washing, FALSE), 10 SECONDS)
+
+
+/obj/structure/machinery/shower/proc/check_heat(mob/M as mob)
+ if(!on || watertemp == "normal") return
+ if(iscarbon(M))
+ var/mob/living/carbon/C = M
+
+ if(watertemp == "freezing")
+ C.bodytemperature = max(80, C.bodytemperature - 80)
+ C.recalculate_move_delay = TRUE
+ to_chat(C, SPAN_WARNING("The water is freezing!"))
+ return
+ if(watertemp == "boiling")
+ C.bodytemperature = min(500, C.bodytemperature + 35)
+ C.recalculate_move_delay = TRUE
+ C.apply_damage(5, BURN)
+ to_chat(C, SPAN_DANGER("The water is searing!"))
+ return
diff --git a/code/game/objects/structures/sink.dm b/code/game/objects/structures/sink.dm
new file mode 100644
index 000000000000..6bac40ea7da4
--- /dev/null
+++ b/code/game/objects/structures/sink.dm
@@ -0,0 +1,122 @@
+/obj/structure/sink
+ name = "sink"
+ icon = 'icons/obj/structures/props/watercloset.dmi'
+ icon_state = "sink_emptied_animation"
+ desc = "A sink used for washing one's hands and face."
+ anchored = TRUE
+ /// if something's being washed at the moment
+ var/busy = FALSE
+
+
+/obj/structure/sink/Initialize()
+ . = ..()
+ if(prob(50))
+ icon_state = "sink_emptied"
+
+
+/obj/structure/sink/proc/stop_flow() //sets sink animation to normal sink (without running water)
+
+ if(prob(50))
+ icon_state = "sink_emptied_animation"
+ else
+ icon_state = "sink_emptied"
+ flick("sink_animation_empty", src)
+
+
+/obj/structure/sink/attack_hand(mob/user)
+ if(isRemoteControlling(user))
+ return
+
+ if(!Adjacent(user))
+ return
+
+ if(busy)
+ to_chat(user, SPAN_DANGER("Someone's already washing here."))
+ return
+
+ to_chat(usr, SPAN_NOTICE(" You start washing your hands."))
+ flick("sink_animation_fill", src) //<- play the filling animation then automatically switch back to the loop
+ icon_state = "sink_animation_fill_loop" //<- set it to the loop
+ addtimer(CALLBACK(src, PROC_REF(stop_flow)), 6 SECONDS)
+ playsound(loc, 'sound/effects/sinkrunning.ogg', 25, TRUE)
+
+ busy = TRUE
+ sleep(40)
+ busy = FALSE
+
+ if(!Adjacent(user)) return //Person has moved away from the sink
+
+ user.clean_blood()
+ if(ishuman(user))
+ user:update_inv_gloves()
+ for(var/mob/V in viewers(src, null))
+ V.show_message(SPAN_NOTICE("[user] washes their hands using \the [src]."), SHOW_MESSAGE_VISIBLE)
+
+
+/obj/structure/sink/attackby(obj/item/O as obj, mob/user as mob)
+ if(busy)
+ to_chat(user, SPAN_DANGER("Someone's already washing here."))
+ return
+
+ var/obj/item/reagent_container/RG = O
+ if (istype(RG) && RG.is_open_container())
+ RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
+ user.visible_message(SPAN_NOTICE("[user] fills \the [RG] using \the [src]."),SPAN_NOTICE("You fill \the [RG] using \the [src]."))
+ return
+
+ else if (istype(O, /obj/item/weapon/baton))
+ var/obj/item/weapon/baton/B = O
+ if(B.bcell)
+ if(B.bcell.charge > 0 && B.status == 1)
+ flick("baton_active", src)
+ user.apply_effect(10, STUN)
+ user.stuttering = 10
+ user.apply_effect(10, WEAKEN)
+ B.deductcharge(B.hitcost)
+ user.visible_message( \
+ SPAN_DANGER("[user] was stunned by \his wet [O]!"), \
+ SPAN_DANGER("You were stunned by your wet [O]!"))
+ return
+
+ var/turf/location = user.loc
+ if(!isturf(location)) return
+
+ var/obj/item/I = O
+ if(!I || !istype(I,/obj/item)) return
+
+ to_chat(usr, SPAN_NOTICE(" You start washing \the [I]."))
+
+ busy = TRUE
+ sleep(40)
+ busy = FALSE
+
+ if(user.loc != location) return //User has moved
+ if(!I) return //Item's been destroyed while washing
+ if(user.get_active_hand() != I) return //Person has switched hands or the item in their hands
+
+ O.clean_blood()
+ user.visible_message( \
+ SPAN_NOTICE("[user] washes \a [I] using \the [src]."), \
+ SPAN_NOTICE("You wash \a [I] using \the [src]."))
+
+
+/obj/structure/sink/kitchen
+ name = "kitchen sink"
+ icon_state = "sink_alt"
+
+
+/obj/structure/sink/puddle //splishy splashy ^_^
+ name = "puddle"
+ icon_state = "puddle"
+
+
+/obj/structure/sink/puddle/attack_hand(mob/M as mob)
+ icon_state = "puddle-splash"
+ ..()
+ icon_state = "puddle"
+
+
+/obj/structure/sink/puddle/attackby(obj/item/O as obj, mob/user as mob)
+ icon_state = "puddle-splash"
+ ..()
+ icon_state = "puddle"
diff --git a/code/game/objects/structures/urinal.dm b/code/game/objects/structures/urinal.dm
new file mode 100644
index 000000000000..c6d14f46540a
--- /dev/null
+++ b/code/game/objects/structures/urinal.dm
@@ -0,0 +1,22 @@
+/obj/structure/urinal
+ name = "urinal"
+ desc = "The HU-452, an experimental urinal."
+ icon = 'icons/obj/structures/props/watercloset.dmi'
+ icon_state = "urinal"
+ density = FALSE
+ anchored = TRUE
+
+/obj/structure/urinal/attackby(obj/item/I, mob/living/user)
+ if(istype(I, /obj/item/grab))
+ if(isxeno(user)) return
+ var/obj/item/grab/G = I
+ if(isliving(G.grabbed_thing))
+ var/mob/living/GM = G.grabbed_thing
+ if(user.grab_level > GRAB_PASSIVE)
+ if(!GM.loc == get_turf(src))
+ to_chat(user, SPAN_NOTICE("[GM.name] needs to be on the urinal."))
+ return
+ user.visible_message(SPAN_DANGER("[user] slams [GM.name] into [src]!"), SPAN_NOTICE("You slam [GM.name] into [src]!"))
+ GM.apply_damage(8, BRUTE)
+ else
+ to_chat(user, SPAN_NOTICE("You need a tighter grip."))
diff --git a/code/game/objects/structures/vulture_spotter.dm b/code/game/objects/structures/vulture_spotter.dm
index d90a1ec1615a..4d8e5d06749b 100644
--- a/code/game/objects/structures/vulture_spotter.dm
+++ b/code/game/objects/structures/vulture_spotter.dm
@@ -87,7 +87,7 @@
if(user.client)
RegisterSignal(user.client, COMSIG_PARENT_QDELETING, PROC_REF(do_unscope))
user.client.change_view(scope_zoom, src)
- RegisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED), PROC_REF(do_unscope))
+ RegisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED, COMSIG_MOB_DEATH, COMSIG_LIVING_SET_BODY_POSITION), PROC_REF(do_unscope))
user.see_in_dark += darkness_view
user.lighting_alpha = 127
user.sync_lighting_plane_alpha()
@@ -234,7 +234,7 @@
user.lighting_alpha = user.default_lighting_alpha
user.sync_lighting_plane_alpha()
user.clear_fullscreen("vulture_spotter")
- UnregisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED))
+ UnregisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED, COMSIG_MOB_DEATH, COMSIG_LIVING_SET_BODY_POSITION))
user.pixel_x = 0
user.pixel_y = 0
if(user.client)
@@ -295,6 +295,10 @@
return rifle.attachments["rail"]
+/obj/structure/vulture_spotter_tripod/check_eye(mob/living/user)
+ if((user.body_position != STANDING_UP) || (get_dist(user, src) > 0) || user.is_mob_incapacitated() || !user.client)
+ do_unscope()
+
/datum/action/vulture_tripod_unscope
name = "Stop Using Scope"
action_icon_state = "vulture_tripod_close"
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index ea93d868c5a1..1014e8ab7a96 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -1,5 +1,3 @@
-//todo: toothbrushes, and some sort of "toilet-filthinator" for the hos
-
/obj/structure/toilet
name = "toilet"
desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one seems remarkably clean."
@@ -9,16 +7,19 @@
anchored = TRUE
can_buckle = TRUE
buckle_lying = 0
- var/open = 0 //if the lid is up
- var/cistern = 0 //if the cistern bit is open
- var/w_items = 0 //the combined w_class of all the items in the cistern
- var/mob/living/swirlie = null //the mob being given a swirlie
+ /// if the lid is up
+ var/open = 0
+ /// if the cistern bit is open
+ var/cistern = 0
+ /// the combined w_class of all the items in the cistern
+ var/w_items = 0
+ /// the mob being given a swirlie
+ var/mob/living/swirlie = null
var/list/buckling_y = list("north" = 1, "south" = 4, "east" = 0, "west" = 0)
var/list/buckling_x = list("north" = 0, "south" = 0, "east" = -5, "west" = 4)
var/atom/movable/overlay/cistern_overlay
-
/obj/structure/toilet/Initialize()
. = ..()
open = round(rand(0, 1))
@@ -29,6 +30,7 @@
vis_contents += cistern_overlay
update_icon()
+
/obj/structure/toilet/attack_hand(mob/living/user as mob)
if(buckled_mob)
manual_unbuckle(user)
@@ -69,7 +71,6 @@
flick("cistern[cistern]_flush", cistern_overlay)
-
/obj/structure/toilet/send_buckling_message(mob/M, mob/user)
if (M == user)
to_chat(M, SPAN_NOTICE("You seat yourself onto the toilet"))
@@ -77,10 +78,10 @@
to_chat(user, SPAN_NOTICE("[M] has been seated onto the toilet by [user]."))
to_chat(M, SPAN_NOTICE("You have been seated onto the toilet by [user]."))
+
/obj/structure/toilet/afterbuckle(mob/M)
. = ..()
-
if(. && buckled_mob == M)
var/direction = dir2text(dir)
M.pixel_y = buckling_y[direction] + pixel_y
@@ -106,7 +107,6 @@
M.overlays -= image("toilet00")
-
/obj/structure/toilet/verb/flip_lid()
set name = "Flip lid"
set category = "Object"
@@ -116,11 +116,11 @@
update_icon()
-
/obj/structure/toilet/update_icon()
icon_state = "toilet[open][cistern]"
cistern_overlay.icon_state = "cistern[cistern]"
+
/obj/structure/toilet/attackby(obj/item/I, mob/living/user)
if(HAS_TRAIT(I, TRAIT_TOOL_CROWBAR))
to_chat(user, SPAN_NOTICE("You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]."))
@@ -168,374 +168,3 @@
w_items += I.w_class
to_chat(user, "You carefully place \the [I] into the cistern.")
return
-
-
-
-/obj/structure/urinal
- name = "urinal"
- desc = "The HU-452, an experimental urinal."
- icon = 'icons/obj/structures/props/watercloset.dmi'
- icon_state = "urinal"
- density = FALSE
- anchored = TRUE
-
-/obj/structure/urinal/attackby(obj/item/I, mob/living/user)
- if(istype(I, /obj/item/grab))
- if(isxeno(user)) return
- var/obj/item/grab/G = I
- if(isliving(G.grabbed_thing))
- var/mob/living/GM = G.grabbed_thing
- if(user.grab_level > GRAB_PASSIVE)
- if(!GM.loc == get_turf(src))
- to_chat(user, SPAN_NOTICE("[GM.name] needs to be on the urinal."))
- return
- user.visible_message(SPAN_DANGER("[user] slams [GM.name] into [src]!"), SPAN_NOTICE("You slam [GM.name] into [src]!"))
- GM.apply_damage(8, BRUTE)
- else
- to_chat(user, SPAN_NOTICE("You need a tighter grip."))
-
-
-
-/obj/structure/machinery/shower
- name = "shower"
- desc = "The HS-451. Installed in the 2050s by the Weyland Hygiene Division."
- icon = 'icons/obj/structures/props/watercloset.dmi'
- icon_state = "shower"
- density = FALSE
- anchored = TRUE
- use_power = USE_POWER_NONE
- var/on = 0
- var/obj/effect/mist/mymist = null
- var/ismist = 0 //needs a var so we can make it linger~
- var/watertemp = "normal" //freezing, normal, or boiling
- var/mobpresent = 0 //true if there is a mob on the shower's loc, this is to ease process()
- var/is_washing = 0
-
-/obj/structure/machinery/shower/Initialize()
- . = ..()
- create_reagents(2)
-
-//add heat controls? when emagged, you can freeze to death in it?
-
-/obj/effect/mist
- name = "mist"
- icon = 'icons/obj/structures/props/watercloset.dmi'
- icon_state = "mist"
- layer = FLY_LAYER
- anchored = TRUE
- mouse_opacity = MOUSE_OPACITY_TRANSPARENT
-
-/obj/structure/machinery/shower/attack_hand(mob/M as mob)
- on = !on
- update_icon()
- if(on)
- start_processing()
- if (M.loc == loc)
- wash(M)
- check_heat(M)
- for (var/atom/movable/G in src.loc)
- G.clean_blood()
- else
- stop_processing()
-
-/obj/structure/machinery/shower/attackby(obj/item/I as obj, mob/user as mob)
- if(I.type == /obj/item/device/analyzer)
- to_chat(user, SPAN_NOTICE("The water temperature seems to be [watertemp]."))
- if(HAS_TRAIT(I, TRAIT_TOOL_WRENCH))
- to_chat(user, SPAN_NOTICE("You begin to adjust the temperature valve with \the [I]."))
- if(do_after(user, 50, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
- switch(watertemp)
- if("normal")
- watertemp = "freezing"
- if("freezing")
- watertemp = "boiling"
- if("boiling")
- watertemp = "normal"
- user.visible_message(SPAN_NOTICE("[user] adjusts the shower with \the [I]."), SPAN_NOTICE("You adjust the shower with \the [I]."))
- add_fingerprint(user)
-
-/obj/structure/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up
- overlays.Cut() //once it's been on for a while, in addition to handling the water overlay.
- QDEL_NULL(mymist)
-
- if(on)
- overlays += image('icons/obj/structures/props/watercloset.dmi', src, "water", MOB_LAYER + 1, dir)
- if(watertemp == "freezing")
- return
- if(!ismist)
- spawn(50)
- if(src && on)
- ismist = 1
- mymist = new /obj/effect/mist(loc)
- else
- ismist = 1
- mymist = new /obj/effect/mist(loc)
- else if(ismist)
- ismist = 1
- mymist = new /obj/effect/mist(loc)
- spawn(250)
- if(src && !on)
- QDEL_NULL(mymist)
- ismist = 0
-
-/obj/structure/machinery/shower/Crossed(atom/movable/O)
- ..()
- wash(O)
- if(ismob(O))
- mobpresent++
- check_heat(O)
-
-/obj/structure/machinery/shower/Uncrossed(atom/movable/O)
- if(ismob(O))
- mobpresent--
- ..()
-
-//Yes, showers are super powerful as far as washing goes.
-/obj/structure/machinery/shower/proc/wash(atom/movable/O as obj|mob)
- if(!on) return
-
-
- if(isliving(O))
- var/mob/living/L = O
- L.ExtinguishMob()
- L.fire_stacks = -20 //Douse ourselves with water to avoid fire more easily
- to_chat(L, SPAN_WARNING("You've been drenched in water!"))
- if(iscarbon(O))
- var/mob/living/carbon/M = O
- if(M.r_hand)
- M.r_hand.clean_blood()
- if(M.l_hand)
- M.l_hand.clean_blood()
- if(M.back)
- if(M.back.clean_blood())
- M.update_inv_back(0)
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- var/washgloves = 1
- var/washshoes = 1
- var/washmask = 1
- var/washears = 1
- var/washglasses = 1
-
- if(H.wear_suit)
- washgloves = !(H.wear_suit.flags_inv_hide & HIDEGLOVES)
- washshoes = !(H.wear_suit.flags_inv_hide & HIDESHOES)
-
- if(H.head)
- washmask = !(H.head.flags_inv_hide & HIDEMASK)
- washglasses = !(H.head.flags_inv_hide & HIDEEYES)
- washears = !(H.head.flags_inv_hide & HIDEEARS)
-
- if(H.wear_mask)
- if (washears)
- washears = !(H.wear_mask.flags_inv_hide & HIDEEARS)
- if (washglasses)
- washglasses = !(H.wear_mask.flags_inv_hide & HIDEEYES)
-
- if(H.head)
- if(H.head.clean_blood())
- H.update_inv_head()
- if(H.wear_suit)
- if(H.wear_suit.clean_blood())
- H.update_inv_wear_suit()
- else if(H.w_uniform)
- if(H.w_uniform.clean_blood())
- H.update_inv_w_uniform()
- if(H.gloves && washgloves)
- if(H.gloves.clean_blood())
- H.update_inv_gloves()
- if(H.shoes && washshoes)
- if(H.shoes.clean_blood())
- H.update_inv_shoes()
- if(H.wear_mask && washmask)
- if(H.wear_mask.clean_blood())
- H.update_inv_wear_mask()
- if(H.glasses && washglasses)
- if(H.glasses.clean_blood())
- H.update_inv_glasses()
- if((H.wear_l_ear || H.wear_r_ear) && washears)
- if((H.wear_l_ear && H.wear_l_ear.clean_blood()) ||(H.wear_r_ear && H.wear_r_ear.clean_blood()))
- H.update_inv_ears()
- if(H.belt)
- if(H.belt.clean_blood())
- H.update_inv_belt()
- H.clean_blood(washshoes)
- else
- if(M.wear_mask) //if the mob is not human, it cleans the mask without asking for bitflags
- if(M.wear_mask.clean_blood())
- M.update_inv_wear_mask()
- M.clean_blood()
- else
- O.clean_blood()
-
- if(isturf(loc))
- var/turf/tile = loc
- tile.clean_blood()
- for(var/obj/effect/E in tile)
- if(istype(E,/obj/effect/decal/cleanable) || istype(E,/obj/effect/overlay))
- qdel(E)
-
-/obj/structure/machinery/shower/process()
- if(!on) return
- wash_floor()
- if(!mobpresent) return
- for(var/mob/living/carbon/C in loc)
- check_heat(C)
-
-/obj/structure/machinery/shower/proc/wash_floor()
- if(!ismist && is_washing)
- return
- is_washing = 1
- var/turf/T = get_turf(src)
-// reagents.add_reagent("water", 2)
- T.clean(src)
- addtimer(VARSET_CALLBACK(src, is_washing, FALSE), 10 SECONDS)
-
-/obj/structure/machinery/shower/proc/check_heat(mob/M as mob)
- if(!on || watertemp == "normal") return
- if(iscarbon(M))
- var/mob/living/carbon/C = M
-
- if(watertemp == "freezing")
- C.bodytemperature = max(80, C.bodytemperature - 80)
- C.recalculate_move_delay = TRUE
- to_chat(C, SPAN_WARNING("The water is freezing!"))
- return
- if(watertemp == "boiling")
- C.bodytemperature = min(500, C.bodytemperature + 35)
- C.recalculate_move_delay = TRUE
- C.apply_damage(5, BURN)
- to_chat(C, SPAN_DANGER("The water is searing!"))
- return
-
-
-
-/obj/item/toy/bikehorn/rubberducky
- name = "rubber ducky"
- desc = "Rubber ducky you're so fine, you make bathtime lots of fuuun. Rubber ducky I'm awfully fooooond of yooooouuuu~" //thanks doohl
- icon = 'icons/obj/structures/props/watercloset.dmi'
- icon_state = "rubberducky"
- item_state = "rubberducky"
-
-
-
-/obj/structure/sink
- name = "sink"
- icon = 'icons/obj/structures/props/watercloset.dmi'
- icon_state = "sink_emptied_animation"
- desc = "A sink used for washing one's hands and face."
- anchored = TRUE
- var/busy = FALSE //Something's being washed at the moment
-
-/obj/structure/sink/Initialize()
- . = ..()
- if(prob(50))
- icon_state = "sink_emptied"
-
-
-
-/obj/structure/sink/proc/stop_flow() //sets sink animation to normal sink (without running water)
-
- if(prob(50))
- icon_state = "sink_emptied_animation"
- else
- icon_state = "sink_emptied"
- flick("sink_animation_empty", src)
-
-
-
-/obj/structure/sink/attack_hand(mob/user)
- if(isRemoteControlling(user))
- return
-
- if(!Adjacent(user))
- return
-
- if(busy)
- to_chat(user, SPAN_DANGER("Someone's already washing here."))
- return
-
- to_chat(usr, SPAN_NOTICE(" You start washing your hands."))
- flick("sink_animation_fill", src) //<- play the filling animation then automatically switch back to the loop
- icon_state = "sink_animation_fill_loop" //<- set it to the loop
- addtimer(CALLBACK(src, PROC_REF(stop_flow)), 6 SECONDS)
- playsound(loc, 'sound/effects/sinkrunning.ogg', 25, TRUE)
-
- busy = TRUE
- sleep(40)
- busy = FALSE
-
- if(!Adjacent(user)) return //Person has moved away from the sink
-
- user.clean_blood()
- if(ishuman(user))
- user:update_inv_gloves()
- for(var/mob/V in viewers(src, null))
- V.show_message(SPAN_NOTICE("[user] washes their hands using \the [src]."), SHOW_MESSAGE_VISIBLE)
-
-
-/obj/structure/sink/attackby(obj/item/O as obj, mob/user as mob)
- if(busy)
- to_chat(user, SPAN_DANGER("Someone's already washing here."))
- return
-
- var/obj/item/reagent_container/RG = O
- if (istype(RG) && RG.is_open_container())
- RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
- user.visible_message(SPAN_NOTICE("[user] fills \the [RG] using \the [src]."),SPAN_NOTICE("You fill \the [RG] using \the [src]."))
- return
-
- else if (istype(O, /obj/item/weapon/baton))
- var/obj/item/weapon/baton/B = O
- if(B.bcell)
- if(B.bcell.charge > 0 && B.status == 1)
- flick("baton_active", src)
- user.apply_effect(10, STUN)
- user.stuttering = 10
- user.apply_effect(10, WEAKEN)
- B.deductcharge(B.hitcost)
- user.visible_message( \
- SPAN_DANGER("[user] was stunned by \his wet [O]!"), \
- SPAN_DANGER("You were stunned by your wet [O]!"))
- return
-
- var/turf/location = user.loc
- if(!isturf(location)) return
-
- var/obj/item/I = O
- if(!I || !istype(I,/obj/item)) return
-
- to_chat(usr, SPAN_NOTICE(" You start washing \the [I]."))
-
- busy = TRUE
- sleep(40)
- busy = FALSE
-
- if(user.loc != location) return //User has moved
- if(!I) return //Item's been destroyed while washing
- if(user.get_active_hand() != I) return //Person has switched hands or the item in their hands
-
- O.clean_blood()
- user.visible_message( \
- SPAN_NOTICE("[user] washes \a [I] using \the [src]."), \
- SPAN_NOTICE("You wash \a [I] using \the [src]."))
-
-
-/obj/structure/sink/kitchen
- name = "kitchen sink"
- icon_state = "sink_alt"
-
-
-/obj/structure/sink/puddle //splishy splashy ^_^
- name = "puddle"
- icon_state = "puddle"
-
-/obj/structure/sink/puddle/attack_hand(mob/M as mob)
- icon_state = "puddle-splash"
- ..()
- icon_state = "puddle"
-
-/obj/structure/sink/puddle/attackby(obj/item/O as obj, mob/user as mob)
- icon_state = "puddle-splash"
- ..()
- icon_state = "puddle"
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 6ab70b8266f4..226045caaea6 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -599,6 +599,34 @@
unacidable = TRUE
health = 1000000 //Failsafe, shouldn't matter
+/obj/structure/window/framed/almayer/aicore
+ icon_state = "ai_rwindow0"
+ basestate = "ai_rwindow"
+ window_frame = /obj/structure/window_frame/almayer/aicore
+
+/obj/structure/window/framed/almayer/aicore/hull
+ name = "hull window"
+ desc = "An ultra-reinforced window designed to protect the AI Core. Made out of exotic materials to prevent hull breaches, nothing will get through here."
+ not_damageable = TRUE
+ not_deconstructable = TRUE
+ unslashable = TRUE
+ unacidable = TRUE
+ health = 1000000 //Failsafe, shouldn't matter
+
+/obj/structure/window/framed/almayer/aicore/white
+ icon_state = "w_ai_rwindow0"
+ basestate = "w_ai_rwindow"
+ window_frame = /obj/structure/window_frame/almayer/aicore/white
+
+/obj/structure/window/framed/almayer/aicore/white/hull
+ name = "hull window"
+ desc = "An ultra-reinforced window designed to protect the AI Core. Made out of exotic materials to prevent hull breaches, nothing will get through here."
+ not_damageable = TRUE
+ not_deconstructable = TRUE
+ unslashable = TRUE
+ unacidable = TRUE
+ health = 1000000 //Failsafe, shouldn't matter
+
/obj/structure/window/framed/colony
name = "window"
icon_state = "col_window0"
diff --git a/code/game/objects/structures/window_frame.dm b/code/game/objects/structures/window_frame.dm
index 2c165b424dad..460a11af1000 100644
--- a/code/game/objects/structures/window_frame.dm
+++ b/code/game/objects/structures/window_frame.dm
@@ -174,6 +174,16 @@
basestate = "white_window"
window_type = /obj/structure/window/framed/almayer/white
+/obj/structure/window_frame/almayer/aicore
+ icon_state = "ai_window0_frame"
+ basestate = "ai_window"
+ window_type = /obj/structure/window/framed/almayer/aicore
+
+/obj/structure/window_frame/almayer/aicore/white
+ icon_state = "w_ai_window0_frame"
+ basestate = "w_ai_window"
+ window_type = /obj/structure/window/framed/almayer/aicore/white
+
/obj/structure/window_frame/almayer/requisitions/attackby(obj/item/W, mob/living/user)
if(istype(W, sheet_type))
to_chat(user, SPAN_WARNING("You can't repair this window."))
diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm
index 893071c758ed..c4698e5722c5 100644
--- a/code/game/supplyshuttle.dm
+++ b/code/game/supplyshuttle.dm
@@ -1277,7 +1277,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new())
/datum/controller/supply/proc/black_market_investigation()
black_market_heat = -1
- SSticker.mode.get_specific_call("Inspection - Colonial Marshal Ledger Investigation Team", TRUE, TRUE)
+ SSticker.mode.get_specific_call(/datum/emergency_call/inspection_cmb/black_market, TRUE, TRUE) // "Inspection - Colonial Marshals Ledger Investigation Team"
log_game("Black Market Inspection auto-triggered.")
/obj/structure/machinery/computer/supplycomp/proc/is_buyable(datum/supply_packs/supply_pack)
@@ -1402,11 +1402,13 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new())
return
dat += "Platform position: "
- if (SSshuttle.vehicle_elevator.timeLeft())
+ if (SSshuttle.vehicle_elevator.mode != SHUTTLE_IDLE)
dat += "Moving"
else
if(is_mainship_level(SSshuttle.vehicle_elevator.z))
dat += "Raised"
+ if(!spent)
+ dat += " \[Lower \]"
else
dat += "Lowered"
dat += " "
@@ -1442,15 +1444,12 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new())
world.log << "## ERROR: Eek. The supply/elevator datum is missing somehow."
return
- if(!should_block_game_interaction(SSshuttle.vehicle_elevator))
- to_chat(usr, SPAN_WARNING("The elevator needs to be in the cargo bay dock to call a vehicle up. Ask someone to send it away."))
- return
-
if(isturf(loc) && ( in_range(src, usr) || isSilicon(usr) ) )
usr.set_interaction(src)
if(href_list["get_vehicle"])
- if(is_mainship_level(SSshuttle.vehicle_elevator.z))
+ if(is_mainship_level(SSshuttle.vehicle_elevator.z) || SSshuttle.vehicle_elevator.mode != SHUTTLE_IDLE)
+ to_chat(usr, SPAN_WARNING("The elevator needs to be in the cargo bay dock to call a vehicle up!"))
return
// dunno why the +1 is needed but the vehicles spawn off-center
var/turf/middle_turf = get_turf(SSshuttle.vehicle_elevator)
@@ -1458,9 +1457,11 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new())
var/obj/vehicle/multitile/ordered_vehicle
var/datum/vehicle_order/VO = locate(href_list["get_vehicle"])
+ if(!(VO in vehicles))
+ return
- if(!VO) return
- if(VO.has_vehicle_lock()) return
+ if(VO?.has_vehicle_lock())
+ return
spent = TRUE
ordered_vehicle = new VO.ordered_vehicle(middle_turf)
@@ -1470,5 +1471,11 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new())
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_VEHICLE_ORDERED, ordered_vehicle)
+ else if(href_list["lower_elevator"])
+ if(!is_mainship_level(SSshuttle.vehicle_elevator.z))
+ return
+
+ SSshuttle.vehicle_elevator.request(SSshuttle.getDock("adminlevel vehicle"))
+
add_fingerprint(usr)
updateUsrDialog()
diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm
index bf84bc04bf10..abc745dbdd45 100644
--- a/code/game/turfs/closed.dm
+++ b/code/game/turfs/closed.dm
@@ -15,6 +15,21 @@
icon_state = "black"
mouse_opacity = FALSE
+/// Cordon turf marking z-level boundaries and surrounding reservations
+/turf/closed/cordon
+ name = "world border"
+ icon = 'icons/turf/shuttle.dmi'
+ icon_state = "pclosed"
+ layer = ABOVE_TURF_LAYER
+ baseturfs = /turf/closed/cordon
+
+/// Used as placeholder turf when something went really wrong, as per /tg/ string lists handler
+/turf/closed/cordon/debug
+ name = "debug turf"
+ desc = "This turf shouldn't be here and probably result of incorrect turf replacement. Adminhelp about it or report it in an issue."
+ color = "#660088"
+ baseturfs = /turf/closed/cordon/debug
+
/turf/closed/mineral //mineral deposits
name = "Rock"
icon = 'icons/turf/walls/walls.dmi'
diff --git a/code/game/turfs/floor_types.dm b/code/game/turfs/floor_types.dm
index f957686fac22..8a8698d0c047 100644
--- a/code/game/turfs/floor_types.dm
+++ b/code/game/turfs/floor_types.dm
@@ -180,7 +180,22 @@
/turf/open/floor/plating/plating_catwalk/shiva
icon = 'icons/turf/floors/ice_colony/shiva_floor.dmi'
+/turf/open/floor/plating/plating_catwalk/aicore
+ icon = 'icons/turf/floors/aicore.dmi'
+ icon_state = "ai_plating_catwalk"
+/turf/open/floor/plating/plating_catwalk/aicore/update_icon()
+ . = ..()
+ if(covered)
+ overlays += image(icon, src, "ai_catwalk", CATWALK_LAYER)
+
+/turf/open/floor/plating/plating_catwalk/aicore/white
+ icon_state = "w_ai_plating_catwalk"
+
+/turf/open/floor/plating/plating_catwalk/aicore/white/update_icon()
+ . = ..()
+ if(covered)
+ overlays += image(icon, src, "w_ai_catwalk", CATWALK_LAYER)
/turf/open/floor/plating/ironsand
name = "Iron Sand"
@@ -210,21 +225,13 @@
plating_type = /turf/open/floor/tdome
hull_floor = TRUE
-//Cargo elevator
+/// Base type of the requisitions and vehicle bay elevator pits.
/turf/open/floor/almayer/empty
- name = "empty space"
- desc = "There seems to be an awful lot of machinery down below"
+ name = "\proper empty space"
+ desc = "There seems to be an awful lot of machinery down below..."
icon = 'icons/turf/floors/floors.dmi'
icon_state = "black"
-/turf/open/floor/almayer/empty/Initialize(mapload, ...)
- . = ..()
- GLOB.asrs_empty_space_tiles_list += src
-
-/turf/open/floor/almayer/empty/Destroy(force) // may as well
- . = ..()
- GLOB.asrs_empty_space_tiles_list -= src
-
/turf/open/floor/almayer/empty/is_weedable()
return NOT_WEEDABLE
@@ -239,9 +246,14 @@
/turf/open/floor/almayer/empty/Entered(atom/movable/AM)
..()
- if(!isobserver(AM))
+ if(!isobserver(AM) && !istype(AM, /obj/effect/elevator) && !istype(AM, /obj/docking_port))
addtimer(CALLBACK(src, PROC_REF(enter_depths), AM), 0.2 SECONDS)
+/// Returns a list of turfs to be used as a destination for anyone unfortunate enough to fall into the pit.
+/turf/open/floor/almayer/empty/proc/get_depths_turfs()
+ // Empty proc to be overridden.
+ return
+
/turf/open/floor/almayer/empty/proc/enter_depths(atom/movable/AM)
if(AM.throwing == 0 && istype(get_turf(AM), /turf/open/floor/almayer/empty))
AM.visible_message(SPAN_WARNING("[AM] falls into the depths!"), SPAN_WARNING("You fall into the depths!"))
@@ -252,14 +264,12 @@
for(var/atom/computer as anything in GLOB.supply_controller.bound_supply_computer_list)
computer.balloon_alert_to_viewers("you hear horrifying noises coming from the elevator!")
- var/area/area_shuttle = GLOB.supply_controller.shuttle?.get_location_area()
- if(!area_shuttle)
- return
- var/list/turflist = list()
- for(var/turf/turf in area_shuttle)
- turflist |= turf
+ var/list/depths_turfs = get_depths_turfs()
+ if(!length(depths_turfs))
+ // If this ever happens, something went wrong.
+ CRASH("get_depths_turfs() didn't return anything!")
- thrown_human.forceMove(pick(turflist))
+ thrown_human.forceMove(pick(depths_turfs))
var/timer = 0.5 SECONDS
for(var/index in 1 to 10)
@@ -268,9 +278,34 @@
return
else
- for(var/obj/effect/decal/cleanable/C in contents) //for the off chance of someone bleeding mid=flight
+ for(var/obj/effect/decal/cleanable/C in contents) //for the off chance of someone bleeding mid-flight
qdel(C)
+/// Requisitions pit.
+/turf/open/floor/almayer/empty/requisitions
+
+/turf/open/floor/almayer/empty/requisitions/Initialize(mapload, ...)
+ . = ..()
+ GLOB.asrs_empty_space_tiles_list += src
+
+/turf/open/floor/almayer/empty/requisitions/Destroy(force)
+ GLOB.asrs_empty_space_tiles_list -= src
+ return ..()
+
+/turf/open/floor/almayer/empty/requisitions/get_depths_turfs()
+ var/area/elevator_area = GLOB.supply_controller.shuttle?.get_location_area()
+
+ var/turf_list = list()
+ for(var/turf/turf in elevator_area)
+ turf_list |= turf
+ return turf_list
+
+/// Vehicle bay pit.
+/turf/open/floor/almayer/empty/vehicle_bay
+
+/turf/open/floor/almayer/empty/vehicle_bay/get_depths_turfs()
+ return SSshuttle.vehicle_elevator.return_turfs()
+
//Others
/turf/open/floor/almayer/uscm
icon_state = "logo_c"
@@ -283,6 +318,27 @@
allow_construction = FALSE
hull_floor = TRUE
+/turf/open/floor/almayer/aicore
+ icon = 'icons/turf/floors/aicore.dmi'
+ icon_state = "ai_floor1"
+
+/turf/open/floor/almayer/aicore/glowing
+ icon_state = "ai_floor2"
+ light_color = "#d69c46"
+ light_range = 2
+
+/turf/open/floor/almayer/aicore/glowing/Initialize(mapload, ...)
+ . = ..()
+ set_light_on(TRUE)
+
+/turf/open/floor/almayer/aicore/no_build
+ allow_construction = FALSE
+ hull_floor = TRUE
+
+/turf/open/floor/almayer/aicore/glowing/no_build
+ allow_construction = FALSE
+ hull_floor = TRUE
+
// RESEARCH STUFF
/turf/open/floor/almayer/research/containment/entrance
icon_state = "containment_entrance"
diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm
index e21dd142f931..8d9ded899a70 100644
--- a/code/game/turfs/open.dm
+++ b/code/game/turfs/open.dm
@@ -95,6 +95,10 @@
edge_overlay.SwapColor(rgb(255, 0, 255, 255), rgb(0, 0, 0, 0))
overlays += edge_overlay
+ var/area/my_area = loc
+ if(my_area.lighting_effect)
+ overlays += my_area.lighting_effect
+
/turf/open/proc/scorch(heat_level)
// All scorched icons should be in the dmi that their unscorched bases are
// "name_scorched#" where # is the scorchedness level 0 - 1 - 2 - 3
diff --git a/code/game/turfs/transit.dm b/code/game/turfs/transit.dm
index bae6718cfd59..dd6a8d920f6f 100644
--- a/code/game/turfs/transit.dm
+++ b/code/game/turfs/transit.dm
@@ -11,19 +11,117 @@
if(isobserver(crosser) || crosser.anchored)
return
- if(!(isitem(crosser) || isliving(crosser)))
+ if(!isitem(crosser) && !isliving(crosser))
return
- var/turf/open/floor/floor = old_loc
- if(istype(floor))
- var/fling_dir = get_dir(floor, crosser.loc)
-
- var/turf/near_turf = get_step(crosser.loc, get_step(crosser.loc, fling_dir))
- var/turf/projected = get_ranged_target_turf(near_turf, fling_dir, 50)
+ if(!istype(old_loc, /turf/open/space))
+ var/turf/projected = get_ranged_target_turf(crosser.loc, dir, 10)
INVOKE_ASYNC(crosser, TYPE_PROC_REF(/atom/movable, throw_atom), projected, 50, SPEED_FAST, null, TRUE)
- QDEL_IN(crosser, 0.5 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(handle_crosser), crosser), 0.5 SECONDS)
+
+/turf/open/space/transit/proc/handle_crosser(atom/movable/crosser)
+ if(QDELETED(crosser))
+ return
+ qdel(crosser)
+
+/turf/open/space/transit/dropship
+ var/shuttle_tag
+
+/turf/open/space/transit/dropship/handle_crosser(atom/movable/crosser)
+ if(QDELETED(crosser))
+ return
+ if(!shuttle_tag)
+ return ..()
+
+ var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag)
+ if(!istype(dropship) || dropship.mode != SHUTTLE_CALL)
+ return ..()
+
+ if(dropship.destination.id != DROPSHIP_LZ1 && dropship.destination.id != DROPSHIP_LZ2)
+ return ..() // we're not heading towards the LZs
+
+ // you just jumped out of a dropship heading towards the LZ, have fun living on the way down!
+ var/list/ground_z_levels = SSmapping.levels_by_trait(ZTRAIT_GROUND)
+ if(!length(ground_z_levels))
+ return ..()
+
+ var/list/area/potential_areas = shuffle(SSmapping.areas_in_z["[ground_z_levels[1]]"])
+
+ for(var/area/maybe_this_area in potential_areas)
+ if(CEILING_IS_PROTECTED(maybe_this_area.ceiling, CEILING_PROTECTION_TIER_1)) // prevents out of bounds too
+ continue
+ if(istype(maybe_this_area, /area/space)) // make sure its not space, just in case
+ continue
+
+ var/turf/open/possible_turf = null
+ var/list/area_turfs = get_area_turfs(maybe_this_area)
+ for(var/i in 1 to 10)
+ possible_turf = pick_n_take(area_turfs)
+ // we're looking for an open, non-dense, and non-space turf.
+ if(!istype(possible_turf) || is_blocked_turf(possible_turf) || istype(possible_turf, /turf/open/space))
+ continue
+
+ if(!istype(possible_turf) || is_blocked_turf(possible_turf) || istype(possible_turf, /turf/open/space))
+ continue // couldnt find one in 10 loops, check another area
+
+ // we found a good turf, lets drop em
+ INVOKE_ASYNC(src, PROC_REF(handle_drop), crosser, possible_turf, dropship.name)
+ return
+
+ return ..() // they couldn't be dropped, just delete them
+
+/turf/open/space/transit/dropship/proc/handle_drop(atom/movable/crosser, turf/target, dropship_name)
+ if(QDELETED(crosser))
+ return
+ ADD_TRAIT(crosser, TRAIT_IMMOBILIZED, TRAIT_SOURCE_DROPSHIP_INTERACTION)
+
+ crosser.pixel_z = 360
+ crosser.forceMove(target)
+ crosser.visible_message(SPAN_WARNING("[crosser] falls out of the sky."), SPAN_HIGHDANGER("As you fall out of the [dropship_name], you plummet towards the ground."))
+ animate(crosser, time = 6, pixel_z = 0, flags = ANIMATION_PARALLEL)
+
+ REMOVE_TRAIT(crosser, TRAIT_IMMOBILIZED, TRAIT_SOURCE_DROPSHIP_INTERACTION)
+ if(isitem(crosser))
+ var/obj/item/item = crosser
+ item.explosion_throw(200) // give it a bit of a kick
+ return
+
+ if(!isliving(crosser))
+ return // don't know how you got here, but you shouldnt be here.
+ var/mob/living/fallen_mob = crosser
+
+ playsound(target, "punch", rand(20, 70), TRUE)
+ playsound(target, "punch", rand(20, 70), TRUE)
+ playsound(target, "bone_break", rand(20, 70), TRUE)
+ playsound(target, "bone_break", rand(20, 70), TRUE)
+
+ fallen_mob.KnockDown(10) // 10 seconds
+ fallen_mob.Stun(3) // 3 seconds
+
+
+ if(ishuman(fallen_mob))
+ var/mob/living/carbon/human/human = fallen_mob
+ human.last_damage_data = create_cause_data("falling from [dropship_name]", human)
+ // I'd say falling from space is pretty much like getting hit by an explosion
+ human.take_overall_armored_damage(300, ARMOR_BOMB, limb_damage_chance = 100)
+ // but just in case, you will still take a ton of damage.
+ human.take_overall_damage(200, used_weapon = "falling", limb_damage_chance = 100)
+ if(human.stat != DEAD)
+ human.death(human.last_damage_data)
+ fallen_mob.status_flags |= PERMANENTLY_DEAD
+ return
+ // take a little bit more damage otherwise
+ fallen_mob.take_overall_damage(400, used_weapon = "falling", limb_damage_chance = 100)
+
+/turf/open/space/transit/dropship/alamo
+ shuttle_tag = DROPSHIP_ALAMO
+ dir = SOUTH
+
+/turf/open/space/transit/dropship/normandy
+ shuttle_tag = DROPSHIP_NORMANDY
+ dir = SOUTH
/turf/open/space/transit/south
dir = SOUTH
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index be58259e17ba..9b0f457cf074 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -24,7 +24,6 @@
*/
-
/turf
icon = 'icons/turf/floors/floors.dmi'
var/intact_tile = 1 //used by floors to distinguish floor with/without a floortile(e.g. plating).
@@ -47,7 +46,7 @@
var/changing_turf = FALSE
var/chemexploded = FALSE // Prevents explosion stacking
- var/flags_turf = NO_FLAGS
+ var/turf_flags = NO_FLAGS
/// Whether we've broken through the ceiling yet
var/ceiling_debrised = FALSE
@@ -57,6 +56,7 @@
///Lumcount added by sources other than lighting datum objects, such as the overlay lighting component.
var/dynamic_lumcount = 0
+
///List of light sources affecting this turf.
///Which directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources.
var/directional_opacity = NONE
@@ -101,11 +101,6 @@
if(opacity)
directional_opacity = ALL_CARDINALS
- //Get area light
- var/area/A = loc
- if(A?.lighting_effect)
- overlays += A.lighting_effect
-
return INITIALIZE_HINT_NORMAL
/turf/Destroy(force)
@@ -145,6 +140,22 @@
/turf/proc/update_icon() //Base parent. - Abby
return
+/// Call to move a turf from its current area to a new one
+/turf/proc/change_area(area/old_area, area/new_area)
+ //dont waste our time
+ if(old_area == new_area)
+ return
+
+ //move the turf
+ new_area.contents += src
+
+ //changes to make after turf has moved
+ on_change_area(old_area, new_area)
+
+/// Allows for reactions to an area change without inherently requiring change_area() be called (I hate maploading)
+/turf/proc/on_change_area(area/old_area, area/new_area)
+ transfer_area_lighting(old_area, new_area)
+
/turf/proc/add_cleanable_overlays()
for(var/cleanable_type in cleanables)
var/obj/effect/decal/cleanable/C = cleanables[cleanable_type]
@@ -435,6 +446,10 @@
W.levelupdate()
return W
+//If you modify this function, ensure it works correctly with lateloaded map templates.
+/turf/proc/AfterChange(flags, oldType) //called after a turf has been replaced in ChangeTurf()
+ return // Placeholder. This is mostly used by /tg/ code for atmos updates
+
// Take off the top layer turf and replace it with the next baseturf down
/turf/proc/ScrapeAway(amount=1, flags)
if(!amount)
@@ -767,6 +782,33 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
change_type = new_baseturfs
return ChangeTurf(change_type, null, flags)
+/// Places a turf on top - for map loading
+/turf/proc/load_on_top(turf/added_layer, flags)
+ var/area/our_area = get_area(src)
+ flags = our_area.PlaceOnTopReact(list(baseturfs), added_layer, flags)
+
+ if(flags & CHANGETURF_SKIP) // We haven't been initialized
+ if(flags_atom & INITIALIZED)
+ stack_trace("CHANGETURF_SKIP was used in a PlaceOnTop call for a turf that's initialized. This is a mistake. [src]([type])")
+ assemble_baseturfs()
+
+ var/turf/new_turf
+ if(!length(baseturfs))
+ baseturfs = list(baseturfs)
+
+ var/list/old_baseturfs = baseturfs.Copy()
+ if(!isclosedturf(src))
+ old_baseturfs += type
+
+ new_turf = ChangeTurf(added_layer, null, flags)
+ new_turf.assemble_baseturfs(initial(added_layer.baseturfs)) // The baseturfs list is created like roundstart
+ if(!length(new_turf.baseturfs))
+ new_turf.baseturfs = list(baseturfs)
+
+ // The old baseturfs are put underneath, and we sort out the unwanted ones
+ new_turf.baseturfs = baseturfs_string_list(old_baseturfs + (new_turf.baseturfs - GLOB.blacklisted_automated_baseturfs), new_turf)
+ return new_turf
+
/turf/proc/insert_self_into_baseturfs()
baseturfs += type
diff --git a/code/game/turfs/walls/wall_icon.dm b/code/game/turfs/walls/wall_icon.dm
index 2b414ca46af8..218d59305bdc 100644
--- a/code/game/turfs/walls/wall_icon.dm
+++ b/code/game/turfs/walls/wall_icon.dm
@@ -44,6 +44,10 @@
bullet_overlay = image('icons/effects/bulletholes.dmi', src, "bhole_[bullethole_state]_2")
overlays += bullet_overlay
+ var/area/my_area = loc
+ if(my_area.lighting_effect)
+ overlays += my_area.lighting_effect
+
#undef BULLETHOLE_STATES
#undef cur_increment
diff --git a/code/game/turfs/walls/wall_types.dm b/code/game/turfs/walls/wall_types.dm
index d546e7274331..259e386825ff 100644
--- a/code/game/turfs/walls/wall_types.dm
+++ b/code/game/turfs/walls/wall_types.dm
@@ -211,7 +211,39 @@
icon_state = "containment_window"
opacity = FALSE
+//AI Core
+/turf/closed/wall/almayer/aicore
+ walltype = WALL_AICORE
+ icon = 'icons/turf/walls/almayer_aicore.dmi'
+ icon_state = "aiwall"
+
+/turf/closed/wall/almayer/aicore/reinforced
+ name = "reinforced hull"
+ damage_cap = HEALTH_WALL_REINFORCED
+ icon_state = "reinforced"
+
+/turf/closed/wall/almayer/aicore/hull
+ name = "ultra reinforced hull"
+ desc = "An extremely reinforced metal wall used to isolate potentially dangerous areas"
+ hull = TRUE
+ icon_state = "hull"
+
+/turf/closed/wall/almayer/aicore/white
+ walltype = WALL_AICORE
+ icon = 'icons/turf/walls/almayer_aicore_white.dmi'
+ icon_state = "aiwall"
+
+/turf/closed/wall/almayer/aicore/white/reinforced
+ name = "reinforced hull"
+ damage_cap = HEALTH_WALL_REINFORCED
+ icon_state = "reinforced"
+
+/turf/closed/wall/almayer/aicore/white/hull
+ name = "ultra reinforced hull"
+ desc = "An extremely reinforced metal wall used to isolate potentially dangerous areas"
+ hull = TRUE
+ icon_state = "hull"
//Sulaco walls.
@@ -720,7 +752,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen)
var/hivenumber = XENO_HIVE_NORMAL
var/should_track_build = FALSE
var/datum/cause_data/construction_data
- flags_turf = TURF_ORGANIC
+ turf_flags = TURF_ORGANIC
/turf/closed/wall/resin/Initialize(mapload)
. = ..()
diff --git a/code/game/turfs/walls/walls.dm b/code/game/turfs/walls/walls.dm
index cb58ad2274a4..251b23ad9c57 100644
--- a/code/game/turfs/walls/walls.dm
+++ b/code/game/turfs/walls/walls.dm
@@ -173,7 +173,7 @@
if (acided_hole)
. += SPAN_WARNING("There's a large hole in the wall that could've been caused by some sort of acid.")
- if(flags_turf & TURF_ORGANIC)
+ if(turf_flags & TURF_ORGANIC)
return // Skip the part below. 'Organic' walls aren't deconstructable with tools.
switch(d_state)
diff --git a/code/game/verbs/records.dm b/code/game/verbs/records.dm
index 743a09d0ab6e..05506804790a 100644
--- a/code/game/verbs/records.dm
+++ b/code/game/verbs/records.dm
@@ -184,6 +184,7 @@
GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new)
+
/datum/medals_view_tgui/tgui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
@@ -194,7 +195,7 @@ GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new)
. = ..()
.["medals"] = list()
- for(var/datum/view_record/medal_view/medal as anything in DB_VIEW(/datum/view_record/medal_view, DB_COMP("player_id", DB_EQUALS, user.client.player_data.id)))
+ for(var/datum/view_record/medal_view/medal as anything in get_medals(user))
var/xeno_medal = FALSE
if(medal.medal_type in GLOB.xeno_medals)
xeno_medal = TRUE
@@ -212,6 +213,10 @@ GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new)
.["medals"] += list(current_medal)
+/datum/medals_view_tgui/proc/get_medals(mob/user)
+ return DB_VIEW(/datum/view_record/medal_view, DB_COMP("player_id", DB_EQUALS, user.client.player_data.id))
+
+
/datum/medals_view_tgui/ui_state(mob/user)
return GLOB.always_state
@@ -225,3 +230,23 @@ GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new)
set category = "OOC.Records"
GLOB.medals_view_tgui.tgui_interact(mob)
+
+GLOBAL_DATUM_INIT(medals_view_given_tgui, /datum/medals_view_tgui/given_medals, new)
+
+
+/datum/medals_view_tgui/given_medals/get_medals(mob/user)
+ return DB_VIEW(/datum/view_record/medal_view, DB_COMP("giver_player_id", DB_EQUALS, user.client.player_data.id))
+
+
+/datum/medals_view_tgui/given_medals/tgui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "MedalsViewer", "[user.ckey]'s Given Medals")
+ ui.open()
+
+
+/client/verb/view_given_medals()
+ set name = "View Medals Given to Others"
+ set category = "OOC.Records"
+
+ GLOB.medals_view_given_tgui.tgui_interact(mob)
diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm
index 5871fdc7a152..a73a3b96e5e4 100644
--- a/code/game/verbs/who.dm
+++ b/code/game/verbs/who.dm
@@ -17,6 +17,7 @@
FACTION_PMC = 0,
FACTION_CLF = 0,
FACTION_UPP = 0,
+ FACTION_TWE = 0,
FACTION_FREELANCER = 0,
FACTION_SURVIVOR = 0,
FACTION_WY_DEATHSQUAD = 0,
diff --git a/code/game/world.dm b/code/game/world.dm
index f68263412715..e55741ca71e5 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -87,10 +87,6 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt"))
GLOB.obfs_x = rand(-500, 500) //A number between -100 and 100
GLOB.obfs_y = rand(-500, 500) //A number between -100 and 100
- spawn(3000) //so we aren't adding to the round-start lag
- if(CONFIG_GET(flag/ToRban))
- ToRban_autoupdate()
-
// If the server's configured for local testing, get everything set up ASAP.
// Shamelessly stolen from the test manager's host_tests() proc
if(testing_locally)
@@ -129,7 +125,8 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt"))
GLOB.world_runtime_log = "[GLOB.log_directory]/runtime.log"
GLOB.round_stats = "[GLOB.log_directory]/round_stats.log"
GLOB.scheduler_stats = "[GLOB.log_directory]/round_scheduler_stats.log"
- GLOB.mutator_logs = "[GLOB.log_directory]/mutator_logs.log"
+ GLOB.mapping_log = "[GLOB.log_directory]/mapping.log"
+ GLOB.strain_logs = "[GLOB.log_directory]/strain_logs.log"
start_log(GLOB.tgui_log)
start_log(GLOB.world_href_log)
@@ -138,7 +135,8 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt"))
start_log(GLOB.world_runtime_log)
start_log(GLOB.round_stats)
start_log(GLOB.scheduler_stats)
- start_log(GLOB.mutator_logs)
+ start_log(GLOB.mapping_log)
+ start_log(GLOB.strain_logs)
if(fexists(GLOB.config_error_log))
fcopy(GLOB.config_error_log, "[GLOB.log_directory]/config_error.log")
@@ -321,9 +319,39 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt"))
/world/proc/on_tickrate_change()
SStimer.reset_buckets()
+/**
+ * Handles incresing the world's maxx var and intializing the new turfs and assigning them to the global area.
+ * If map_load_z_cutoff is passed in, it will only load turfs up to that z level, inclusive.
+ * This is because maploading will handle the turfs it loads itself.
+ */
+/world/proc/increase_max_x(new_maxx, map_load_z_cutoff = maxz)
+ if(new_maxx <= maxx)
+ return
+// var/old_max = world.maxx
+ maxx = new_maxx
+ if(!map_load_z_cutoff)
+ return
+// var/area/global_area = GLOB.areas_by_type[world.area] // We're guaranteed to be touching the global area, so we'll just do this
+// var/list/to_add = block(
+// locate(old_max + 1, 1, 1),
+// locate(maxx, maxy, map_load_z_cutoff))
+// global_area.contained_turfs += to_add
+
+/world/proc/increase_max_y(new_maxy, map_load_z_cutoff = maxz)
+ if(new_maxy <= maxy)
+ return
+// var/old_maxy = maxy
+ maxy = new_maxy
+ if(!map_load_z_cutoff)
+ return
+// var/area/global_area = GLOB.areas_by_type[world.area] // We're guarenteed to be touching the global area, so we'll just do this
+// var/list/to_add = block(
+// locate(1, old_maxy + 1, 1),
+// locate(maxx, maxy, map_load_z_cutoff))
+// global_area.contained_turfs += to_add
+
/world/proc/incrementMaxZ()
maxz++
- //SSmobs.MaxZChanged()
/** For initializing and starting byond-tracy when BYOND_TRACY is defined
* byond-tracy is a useful profiling tool that allows the user to view the CPU usage and execution time of procs as they run.
@@ -346,6 +374,7 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt"))
/world/proc/HandleTestRun()
// Wait for the game ticker to initialize
Master.sleep_offline_after_initializations = FALSE
+ SSticker.start_immediately = TRUE
UNTIL(SSticker.initialized)
//trigger things to run the whole process
diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm
index 94f40629fc6a..85a1028c2296 100644
--- a/code/modules/admin/IsBanned.dm
+++ b/code/modules/admin/IsBanned.dm
@@ -1,6 +1,6 @@
#ifndef OVERRIDE_BAN_SYSTEM
//Blocks an attempt to connect before even creating our client datum thing.
-/world/IsBanned(key,address,computer_id, type, real_bans_only=FALSE)
+/world/IsBanned(key,address,computer_id, type, real_bans_only=FALSE, is_telemetry = FALSE)
var/ckey = ckey(key)
// This is added siliently. Thanks to MSO for this fix. You will see it when/if we go OS
@@ -17,6 +17,7 @@
message_admins("Failed Login: [key] - Guests not allowed")
return list("reason"="guest", "desc"="\nReason: Guests not allowed. Please sign in with a byond account.")
+ // wait for database to be ready
WAIT_DB_READY
if(GLOB.admin_datums[ckey] && (GLOB.admin_datums[ckey].rights & R_MOD))
return ..()
@@ -26,19 +27,8 @@
var/datum/entity/player/P = get_player_from_key(ckey)
- //check if the IP address is a known TOR node
- if(CONFIG_GET(flag/ToRban) && ToRban_isbanned(address))
- log_access("Failed Login: [src] - Banned: ToR")
- message_admins("Failed Login: [src] - Banned: ToR")
- return list("reason"="Using ToR", "desc"="\nReason: The network you are using to connect has been banned.\nIf you believe this is a mistake, please request help at [CONFIG_GET(string/banappeals)]")
-
- // wait for database to be ready
-
- . = P.check_ban(computer_id, address)
- if(.)
- return .
- return ..() //default pager ban stuff
+ . = P.check_ban(computer_id, address, is_telemetry)
#endif
diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm
index 7dca354129ff..f4394738fb2d 100644
--- a/code/modules/admin/NewBan.dm
+++ b/code/modules/admin/NewBan.dm
@@ -180,15 +180,44 @@ GLOBAL_DATUM(Banlist, /savefile)
expiry = "Removal Pending"
else
expiry = "Permaban"
- var/unban_link = "(U) "
+ var/unban_link
+ if(ban.is_permabanned)
+ unban_link = "(UP) "
+ else
+ unban_link = "(UT) "
- dat += "[unban_link] Key: [ban.ckey] ComputerID: [ban.last_known_cid] IP: [ban.last_known_ip] [expiry] (By: [ban.admin]) (Reason: [ban.reason]) "
+ dat += "[unban_link] Key: [ban.ckey] ComputerID: [ban.last_known_cid] IP: [ban.last_known_ip] [expiry] (By: [ban.admin ? ban.admin : "AdminBot"]) (Reason: [ban.reason]) "
dat += ""
- var/dat_header = "Bans: (U) = Unban"
+ var/dat_header = "Bans: (UP) = Unban Perma (UT) = Unban Timed"
dat_header += " - Ban Listing [dat]"
show_browser(usr, dat_header, "Unban Panel", "unbanp", "size=875x400")
+/datum/admins/proc/stickypanel()
+ var/add_sticky = "Add Sticky Ban "
+ var/find_sticky = "Find Sticky Ban "
+
+ var/data = "Sticky Bans: [add_sticky] [find_sticky] "
+
+ var/list/datum/view_record/stickyban/stickies = DB_VIEW(/datum/view_record/stickyban,
+ DB_COMP("active", DB_EQUALS, TRUE)
+ )
+
+ for(var/datum/view_record/stickyban/current_sticky in stickies)
+ var/whitelist_link = "(WHITELIST) "
+ var/remove_sticky_link = "(REMOVE) "
+ var/add_to_sticky_link = "(ADD) "
+
+ var/impacted_ckey_link = "CKEYs "
+ var/impacted_ip_link = "IPs "
+ var/impacted_cid_link = "CIDs "
+
+ data += "[whitelist_link][remove_sticky_link][add_to_sticky_link] Identifier: [current_sticky.identifier] Reason: [current_sticky.reason] Message: [current_sticky.message] Admin: [current_sticky.admin] View: [impacted_ckey_link][impacted_ip_link][impacted_cid_link] "
+
+ data += "
"
+
+ show_browser(owner, data, "Stickyban Panel", "sticky", "size=875x400")
+
//////////////////////////////////// DEBUG ////////////////////////////////////
/proc/CreateBans()
@@ -251,3 +280,48 @@ GLOBAL_DATUM(Banlist, /savefile)
if(P.is_time_banned && alert(usr, "Ban already exists. Proceed?", "Confirmation", "Yes", "No") != "Yes")
return
P.add_timed_ban(reason, mins)
+
+/client/proc/cmd_admin_do_stickyban(identifier, reason, message, list/impacted_ckeys, list/impacted_cids, list/impacted_ips)
+ if(!identifier)
+ identifier = tgui_input_text(src, "Name of the primary CKEY you are adding a stickyban to.", "BuildABan")
+ if(!identifier)
+ return
+
+ if(!message)
+ message = tgui_input_text(src, "What message should be given to the impacted users?", "BuildABan", encode = FALSE)
+ if(!message)
+ return
+
+ if(!reason)
+ reason = tgui_input_text(src, "What's the reason for the ban? This is shown internally, and not displayed in public notes and ban messages. Include as much detail as necessary.", "BuildABan", multiline = TRUE, encode = FALSE)
+ if(!reason)
+ return
+
+ if(!length(impacted_ckeys))
+ impacted_ckeys = splittext(tgui_input_text(src, "Which CKEYs should be impacted by this ban? Include the primary ckey, separated by semicolons.", "BuildABan", "player1;player2;player3"), ";")
+
+ if(!length(impacted_cids))
+ impacted_cids = splittext(tgui_input_text(src, "Which CIDs should be impacted by this ban? Separate with semicolons.", "BuildABan", "12345678;87654321"), ";")
+
+ if(!length(impacted_ips))
+ impacted_ips = splittext(tgui_input_text(src, "Which IPs should be impacted by this ban? Separate with semicolons.", "BuildABan", "1.1.1.1;8.8.8.8"), ";")
+
+ var/datum/entity/stickyban/new_sticky = SSstickyban.add_stickyban(identifier, reason, message, player_data)
+
+ if(!new_sticky)
+ to_chat(src, SPAN_ADMIN("Failed to apply stickyban."))
+ return
+
+ for(var/ckey in impacted_ckeys)
+ SSstickyban.add_matched_ckey(new_sticky.id, ckey)
+
+ for(var/cid in impacted_cids)
+ SSstickyban.add_matched_cid(new_sticky.id, cid)
+
+ for(var/ip in impacted_ips)
+ SSstickyban.add_matched_ip(new_sticky.id, ip)
+
+ log_admin("STICKYBAN: Identifier: [identifier] Reason: [reason] Message: [message] CKEYs: [english_list(impacted_ckeys)] IPs: [english_list(impacted_ips)] CIDs: [english_list(impacted_cids)]")
+ message_admins("[key_name_admin(src)] has added a new stickyban with the identifier '[identifier]'.")
+ var/datum/tgs_chat_embed/field/reason_embed = new("Stickyban Reason", reason)
+ important_message_external("[src] has added a new stickyban with the identifier '[identifier]'.", "Stickyban Placed", list(reason_embed))
diff --git a/code/modules/admin/ToRban.dm b/code/modules/admin/ToRban.dm
deleted file mode 100644
index 549353facfb8..000000000000
--- a/code/modules/admin/ToRban.dm
+++ /dev/null
@@ -1,88 +0,0 @@
-//By Carnwennan
-//fetches an external list and processes it into a list of ip addresses.
-//It then stores the processed list into a savefile for later use
-#define TORFILE "data/ToR_ban.bdb"
-#define TOR_UPDATE_INTERVAL 216000 //~6 hours
-
-/proc/ToRban_isbanned(ip_address)
- var/savefile/F = new(TORFILE)
- if(F)
- if( ip_address in F.dir )
- return 1
- return 0
-
-/proc/ToRban_autoupdate()
- var/savefile/F = new(TORFILE)
- if(F)
- var/last_update
- F["last_update"] >> last_update
- if((last_update + TOR_UPDATE_INTERVAL) < world.realtime) //we haven't updated for a while
- ToRban_update()
- return
-
-/proc/ToRban_update()
- spawn(0)
- log_misc("Downloading updated ToR data...")
- var/http[] = world.Export("https://check.torproject.org/exit-addresses")
-
- var/list/rawlist = file2list(http["CONTENT"])
- if(rawlist.len)
- fdel(TORFILE)
- var/savefile/F = new(TORFILE)
- for( var/line in rawlist )
- if(!line) continue
- if( copytext(line,1,12) == "ExitAddress" )
- var/cleaned = copytext(line,13,length(line)-19)
- if(!cleaned) continue
- F[cleaned] << 1
- F["last_update"] << world.realtime
- log_misc("ToR data updated!")
- if(usr) to_chat(usr, "ToRban updated.")
- return
- log_misc("ToR data update aborted: no data.")
- return
-
-/client/proc/ToRban(task in list("update","toggle","show","remove","remove all","find"))
- set name = "ToR Ban Settings"
- set category = "Server"
- if(!admin_holder) return
- switch(task)
- if("update")
- ToRban_update()
- if("toggle")
- if(config)
- if(CONFIG_GET(flag/ToRban))
- CONFIG_SET(flag/ToRban, FALSE)
- message_admins("ToR banning disabled. ")
- else
- CONFIG_SET(flag/ToRban, TRUE)
- message_admins("ToR banning enabled. ")
- if("show")
- var/savefile/F = new(TORFILE)
- var/dat
- if( length(F.dir) )
- for( var/i=1, i<=length(F.dir), i++ )
- dat += "#[i] [F.dir[i]] "
- dat = ""
- else
- dat = "No addresses in list."
- src << browse(dat,"window=ToRban_show")
- if("remove")
- var/savefile/F = new(TORFILE)
- var/choice = tgui_input_list(src,"Please select an IP address to remove from the ToR banlist:","Remove ToR ban", F.dir)
- if(choice)
- F.dir.Remove(choice)
- to_chat(src, "Address removed ")
- if("remove all")
- to_chat(src, "[TORFILE] was [fdel(TORFILE)?"":"not "]removed. ")
- if("find")
- var/input = input(src,"Please input an IP address to search for:","Find ToR ban",null) as null|text
- if(input)
- if(ToRban_isbanned(input))
- to_chat(src, "Address is a known ToR address ")
- else
- to_chat(src, "Address is not a known ToR address ")
- return
-
-#undef TORFILE
-#undef TOR_UPDATE_INTERVAL
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 56002d139599..1463a09457ef 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -68,6 +68,7 @@ GLOBAL_LIST_INIT(admin_verbs_default, list(
/datum/admins/proc/alertall,
/datum/admins/proc/imaginary_friend,
/client/proc/toggle_admin_pings,
+ /client/proc/cmd_admin_open_ares,
/client/proc/cmd_admin_say, /*staff-only ooc chat*/
/client/proc/cmd_mod_say, /* alternate way of typing asay, no different than cmd_admin_say */
/client/proc/cmd_admin_tacmaps_panel,
@@ -96,8 +97,9 @@ GLOBAL_LIST_INIT(admin_verbs_admin, list(
))
GLOBAL_LIST_INIT(admin_verbs_ban, list(
- /client/proc/unban_panel
- // /client/proc/jobbans // Disabled temporarily due to 15-30 second lag spikes. Don't forget the comma in the line above when uncommenting this!
+ /client/proc/unban_panel,
+ /client/proc/stickyban_panel,
+ // /client/proc/jobbans // Disabled temporarily due to 15-30 second lag spikes.
))
GLOBAL_LIST_INIT(admin_verbs_sounds, list(
@@ -110,6 +112,7 @@ GLOBAL_LIST_INIT(admin_verbs_minor_event, list(
/client/proc/cmd_admin_change_custom_event,
/datum/admins/proc/admin_force_distress,
/datum/admins/proc/admin_force_ERT_shuttle,
+ /client/proc/enable_event_mob_verbs,
/client/proc/force_hijack,
/datum/admins/proc/force_predator_round, //Force spawns a predator round.
/client/proc/adjust_predator_round,
@@ -140,7 +143,6 @@ GLOBAL_LIST_INIT(admin_verbs_minor_event, list(
))
GLOBAL_LIST_INIT(admin_verbs_major_event, list(
- /client/proc/enable_event_mob_verbs,
/client/proc/cmd_admin_dress_all,
/client/proc/free_all_mobs_in_view,
/client/proc/drop_bomb,
@@ -154,6 +156,7 @@ GLOBAL_LIST_INIT(admin_verbs_major_event, list(
/client/proc/load_event_level,
/client/proc/cmd_fun_fire_ob,
/client/proc/map_template_upload,
+ /client/proc/force_load_lazy_template,
/client/proc/enable_podlauncher,
/client/proc/change_taskbar_icon,
/client/proc/change_weather,
@@ -237,12 +240,12 @@ GLOBAL_LIST_INIT(debug_verbs, list(
))
GLOBAL_LIST_INIT(admin_verbs_possess, list(
+ /client/proc/cmd_assume_direct_control,
/client/proc/possess,
/client/proc/release
))
GLOBAL_LIST_INIT(admin_verbs_permissions, list(
- /client/proc/ToRban,
/client/proc/whitelist_panel,
))
@@ -262,10 +265,7 @@ GLOBAL_LIST_INIT(admin_mob_event_verbs_hideable, list(
/client/proc/editappear,
/client/proc/cmd_admin_addhud,
/client/proc/cmd_admin_change_their_hivenumber,
- /client/proc/cmd_assume_direct_control,
/client/proc/free_mob_for_ghosts,
- /client/proc/possess,
- /client/proc/release,
/client/proc/cmd_admin_grantfullaccess,
/client/proc/cmd_admin_grantallskills,
/client/proc/admin_create_account
@@ -273,6 +273,7 @@ GLOBAL_LIST_INIT(admin_mob_event_verbs_hideable, list(
//verbs which can be hidden - needs work
GLOBAL_LIST_INIT(admin_verbs_hideable, list(
+ /client/proc/cmd_assume_direct_control,
/client/proc/release,
/client/proc/possess,
/client/proc/callproc_datum,
diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm
index 82f25a6ebe3e..3a3ce661e231 100644
--- a/code/modules/admin/holder2.dm
+++ b/code/modules/admin/holder2.dm
@@ -10,11 +10,6 @@ GLOBAL_PROTECT(href_token)
var/rights = 0
var/fakekey = null
- var/admincaster_screen = 0 //See newscaster.dm under machinery for a full description
- var/datum/feed_message/admincaster_feed_message = new /datum/feed_message //These two will act as admin_holders.
- var/datum/feed_channel/admincaster_feed_channel = new /datum/feed_channel
- var/admincaster_signature //What you'll sign the newsfeeds as
-
var/href_token
var/datum/marked_datum
@@ -31,7 +26,6 @@ GLOBAL_PROTECT(href_token)
error("Admin datum created without a ckey argument. Datum has been deleted")
qdel(src)
return
- admincaster_signature = "Weyland-Yutani Officer #[rand(0,9)][rand(0,9)][rand(0,9)]"
rank = initial_rank
rights = initial_rights
href_token = GenerateToken()
diff --git a/code/modules/admin/player_panel/actions/punish.dm b/code/modules/admin/player_panel/actions/punish.dm
index 576de30ae7ff..1b7d313b6121 100644
--- a/code/modules/admin/player_panel/actions/punish.dm
+++ b/code/modules/admin/player_panel/actions/punish.dm
@@ -45,6 +45,58 @@
return TRUE
+/datum/player_action/permanent_ban
+ action_tag = "permanent_ban"
+ name = "Permanent Ban"
+ permissions_required = R_BAN
+
+/datum/player_action/permanent_ban/act(client/user, mob/target, list/params)
+ var/reason = tgui_input_text(user, "What message should be given to the permabanned user?", "Permanent Ban", encode = FALSE)
+ if(!reason)
+ return
+
+ var/internal_reason = tgui_input_text(user, "What's the reason for the ban? This is shown internally, and not displayed in public notes and ban messages. Include as much detail as necessary.", "Permanent Ban", multiline = TRUE, encode = FALSE)
+ if(!internal_reason)
+ return
+
+ var/datum/entity/player/target_entity = target.client?.player_data
+ if(!target_entity)
+ target_entity = get_player_from_key(target.ckey || target.persistent_ckey)
+
+ if(!target_entity)
+ return
+
+ if(!target_entity.add_perma_ban(reason, internal_reason, user.player_data))
+ to_chat(user, SPAN_ADMIN("The user is already permabanned! If necessary, you can remove the permaban, and place a new one."))
+
+/datum/player_action/sticky_ban
+ action_tag = "sticky_ban"
+ name = "Sticky Ban"
+ permissions_required = R_BAN
+
+/datum/player_action/sticky_ban/act(client/user, mob/target, list/params)
+ var/datum/entity/player/player = get_player_from_key(target.ckey || target.persistent_ckey)
+ if(!player)
+ return
+
+ var/persistent_ip = target.client?.address || player.last_known_ip
+ var/persistent_cid = target.client?.computer_id || player.last_known_cid
+
+ var/message = tgui_input_text(user, "What message should be given to the impacted users?", "BuildABan", encode = FALSE)
+ if(!message)
+ return
+
+ var/reason = tgui_input_text(user, "What's the reason for the ban? This is shown internally, and not displayed in public notes and ban messages. Include as much detail as necessary.", "BuildABan", multiline = TRUE, encode = FALSE)
+ if(!reason)
+ return
+
+ user.cmd_admin_do_stickyban(target.ckey, reason, message, impacted_ckeys = list(target.ckey), impacted_cids = list(persistent_cid), impacted_ips = list(persistent_ip))
+ player.add_note("Stickybanned | [message]", FALSE, NOTE_ADMIN, TRUE)
+ player.add_note("Internal reason: [reason]", TRUE, NOTE_ADMIN)
+
+ if(target.client)
+ qdel(target.client)
+
/datum/player_action/mute
action_tag = "mob_mute"
name = "Mute"
@@ -67,6 +119,14 @@
user.admin_holder.player_notes_show(target.ckey)
return TRUE
+/datum/player_action/check_ckey
+ action_tag = "check_ckey"
+ name = "Check Ckey"
+
+
+/datum/player_action/check_ckey/act(client/user, mob/target, list/params)
+ user.admin_holder.check_ckey(target.ckey)
+ return TRUE
/datum/player_action/reset_xeno_name
action_tag = "reset_xeno_name"
diff --git a/code/modules/admin/player_panel/player_panel.dm b/code/modules/admin/player_panel/player_panel.dm
index 772e9d4e3f91..86922c525e32 100644
--- a/code/modules/admin/player_panel/player_panel.dm
+++ b/code/modules/admin/player_panel/player_panel.dm
@@ -493,6 +493,8 @@
.["client_ckey"] = targetClient.ckey
.["client_muted"] = targetClient.prefs.muted
+ .["client_age"] = targetClient.player_data.byond_account_age
+ .["first_join"] = targetClient.player_data.first_join_date
.["client_rank"] = targetClient.admin_holder ? targetClient.admin_holder.rank : "Player"
.["client_muted"] = targetClient.prefs.muted
diff --git a/code/modules/admin/stickyban.dm b/code/modules/admin/stickyban.dm
deleted file mode 100644
index 69793a599596..000000000000
--- a/code/modules/admin/stickyban.dm
+++ /dev/null
@@ -1,66 +0,0 @@
-// BLOCKING PROC, RUN ASYNC
-
-/proc/stickyban_internal(ckey, address, cid, reason, linked_stickyban, datum/entity/player/banning_admin)
-
- if(!ckey || !address || !cid)
- CRASH("Incorrect data passed to stickyban_internal ([ckey], [address], [cid])")
-
- var/datum/entity/player/P = get_player_from_key(ckey)
-
- if(!P)
- message_admins("Tried stickybanning ckey \"[ckey]\", player entity was unable to be found. Please try again later.")
- return
-
- var/datum/entity/player_sticky_ban/PSB = DB_ENTITY(/datum/entity/player_sticky_ban)
- PSB.player_id = P.id
- if(reason)
- PSB.reason = reason
- PSB.address = address
- PSB.computer_id = cid
- PSB.ckey = P.ckey
- PSB.date = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]"
-
- if(linked_stickyban)
- PSB.linked_stickyban = linked_stickyban
-
- if(!reason)
- reason = "No reason given."
-
- if(banning_admin)
- PSB.admin_id = banning_admin.id
- if(banning_admin.owning_client)
- message_admins("[banning_admin.owning_client.ckey] has stickybanned [ckey].")
-
- message_admins("[ckey] (IP: [address], CID: [cid]) has been stickybanned for: \"[reason]\".")
-
- if(P.owning_client)
- to_chat_forced(P.owning_client, SPAN_WARNING("You have been sticky banned by [banning_admin? banning_admin.ckey : "Host"].\nReason: [sanitize(reason)]. "))
- to_chat_forced(P.owning_client, SPAN_WARNING("This is a permanent ban"))
- QDEL_NULL(P.owning_client)
-
- PSB.save()
-
-/datum/entity/player/proc/process_stickyban(address, computer_id, source_id, reason, datum/entity/player/banning_admin, list/PSB)
- if(length(PSB) > 0) // sticky ban with identical data already exists, no need for another copy
- if(banning_admin)
- to_chat(banning_admin, SPAN_WARNING("Failed to add stickyban to [ckey]. Reason: Stickyban already exists."))
- return
-
- stickyban_internal(ckey, address, computer_id, reason, source_id, banning_admin)
-
-
-/datum/entity/player/proc/check_for_sticky_ban(address, computer_id)
- var/list/datum/view_record/stickyban_list_view/SBLW = DB_VIEW(/datum/view_record/stickyban_list_view,
- DB_OR(
- DB_COMP("ckey", DB_EQUALS, ckey),
- DB_COMP("address", DB_EQUALS, address),
- DB_COMP("computer_id", DB_EQUALS, computer_id)
- ))
-
- if(length(SBLW) == 0)
- return
-
- if(stickyban_whitelisted)
- return
-
- return SBLW
diff --git a/code/modules/admin/tabs/admin_tab.dm b/code/modules/admin/tabs/admin_tab.dm
index 8dce41ac8235..356762b5edd7 100644
--- a/code/modules/admin/tabs/admin_tab.dm
+++ b/code/modules/admin/tabs/admin_tab.dm
@@ -53,6 +53,12 @@
admin_holder.unbanpanel()
return
+/client/proc/stickyban_panel()
+ set name = "Stickyban Panel"
+ set category = "Admin.Panels"
+
+ admin_holder?.stickypanel()
+
/client/proc/player_panel_new()
set name = "Player Panel"
set category = "Admin.Panels"
diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm
index 5833428c7af6..801bdcc87e18 100644
--- a/code/modules/admin/tabs/event_tab.dm
+++ b/code/modules/admin/tabs/event_tab.dm
@@ -759,7 +759,7 @@
Power ship SMESs and APCs
Power ship SMESs
Power ALL SMESs and APCs everywhere
- Power all ship reactors
+ Repair and power all ship reactors
Events
Break all lights
diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm
index 825f7c3cdbf4..ecef2627ed3c 100644
--- a/code/modules/admin/topic/topic.dm
+++ b/code/modules/admin/topic/topic.dm
@@ -229,6 +229,200 @@
alert(usr, "This ban has already been lifted / does not exist.", "Error", "Ok")
unbanpanel()
+ else if(href_list["unban_perma"])
+ var/datum/entity/player/unban_player = get_player_from_key(href_list["unban_perma"])
+ if(!(tgui_alert(owner, "Do you want to unban [unban_player.ckey]? They are currently permabanned for: [unban_player.permaban_reason], since [unban_player.permaban_date].", "Unban Player", list("Yes", "No")) == "Yes"))
+ return
+
+ if(!unban_player.is_permabanned)
+ to_chat(owner, "The player is not currently permabanned.")
+
+ unban_player.is_permabanned = FALSE
+ unban_player.permaban_admin_id = null
+ unban_player.permaban_date = null
+ unban_player.permaban_reason = null
+
+ unban_player.save()
+
+ message_admins("[key_name_admin(owner)] has removed the permanent ban on [unban_player.ckey].")
+ important_message_external("[owner] has removed the permanent ban on [unban_player.ckey].", "Permaban Removed")
+
+ else if(href_list["sticky"])
+ if(href_list["view_all_ckeys"])
+ var/list/datum/view_record/stickyban_matched_ckey/all_ckeys = DB_VIEW(/datum/view_record/stickyban_matched_ckey,
+ DB_COMP("linked_stickyban", DB_EQUALS, href_list["sticky"])
+ )
+
+ var/list/keys = list()
+ var/list/whitelisted = list()
+ for(var/datum/view_record/stickyban_matched_ckey/match as anything in all_ckeys)
+ if(match.whitelisted)
+ whitelisted += match.ckey
+ else
+ keys += match.ckey
+
+ show_browser(owner, "Impacted: [english_list(keys)] Whitelisted: [english_list(whitelisted)]", "Stickyban Keys", "stickykeys")
+ return
+
+ if(href_list["view_all_cids"])
+ var/list/datum/view_record/stickyban_matched_cid/all_cids = DB_VIEW(/datum/view_record/stickyban_matched_cid,
+ DB_COMP("linked_stickyban", DB_EQUALS, href_list["sticky"])
+ )
+
+ var/list/cids = list()
+ for(var/datum/view_record/stickyban_matched_cid/match as anything in all_cids)
+ cids += match.cid
+
+ show_browser(owner, english_list(cids), "Stickyban CIDs", "stickycids")
+ return
+
+ if(href_list["view_all_ips"])
+ var/list/datum/view_record/stickyban_matched_ip/all_ips = DB_VIEW(/datum/view_record/stickyban_matched_ip,
+ DB_COMP("linked_stickyban", DB_EQUALS, href_list["sticky"])
+ )
+
+ var/list/ips = list()
+ for(var/datum/view_record/stickyban_matched_ip/match as anything in all_ips)
+ ips += match.ip
+
+ show_browser(owner, english_list(ips), "Stickyban IPs", "stickycips")
+ return
+
+ if(href_list["find_sticky"])
+ var/ckey = ckey(tgui_input_text(owner, "Which CKEY should we attempt to find stickybans for?", "FindABan"))
+ if(!ckey)
+ return
+
+ var/list/datum/view_record/stickyban/stickies = SSstickyban.check_for_sticky_ban(ckey)
+ if(!stickies)
+ to_chat(owner, SPAN_ADMIN("Could not locate any stickbans impacting [ckey]."))
+ return
+
+ var/list/impacting_stickies = list()
+
+ for(var/datum/view_record/stickyban/sticky as anything in stickies)
+ impacting_stickies += sticky.identifier
+
+ to_chat(owner, SPAN_ADMIN("Found the following stickybans for [ckey]: [english_list(impacting_stickies)]"))
+
+ if(!check_rights_for(owner, R_BAN))
+ return
+
+ if(href_list["new_sticky"])
+ owner.cmd_admin_do_stickyban()
+ return
+
+ var/datum/entity/stickyban/sticky = DB_ENTITY(/datum/entity/stickyban, href_list["sticky"])
+ if(!sticky)
+ return
+
+ sticky.sync()
+
+ if(href_list["whitelist_ckey"])
+ var/ckey_to_whitelist = ckey(tgui_input_text(owner, "What CKEY should be whitelisted? Editing stickyban: [sticky.identifier]"))
+ if(!ckey_to_whitelist)
+ return
+
+ SSstickyban.whitelist_ckey(sticky.id, ckey_to_whitelist)
+ message_admins("[key_name_admin(owner)] has whitelisted [ckey_to_whitelist] against stickyban '[sticky.identifier]'.")
+ important_message_external("[owner] has whitelisted [ckey_to_whitelist] against stickyban '[sticky.identifier]'.", "CKEY Whitelisted")
+
+ if(href_list["add"])
+ var/option = tgui_input_list(owner, "What do you want to add?", "AddABan", list("CID", "CKEY", "IP"))
+ if(!option)
+ return
+
+ var/to_add = tgui_input_text(owner, "Provide the [option] to add to the stickyban.", "AddABan")
+ if(!to_add)
+ return
+
+ switch(option)
+ if("CID")
+ SSstickyban.add_matched_cid(sticky.id, to_add)
+ if("CKEY")
+ SSstickyban.add_matched_ckey(sticky.id, to_add)
+ if("IP")
+ SSstickyban.add_matched_ip(sticky.id, to_add)
+
+ message_admins("[key_name_admin(owner)] has added a [option] ([to_add]) to stickyban '[sticky.identifier]'.")
+ important_message_external("[owner] has added a [option] ([to_add]) to stickyban '[sticky.identifier]'.", "[option] Added to Stickyban")
+
+ if(href_list["remove"])
+ var/option = tgui_input_list(owner, "What do you want to remove?", "DelABan", list("Entire Stickyban", "CID", "CKEY", "IP"))
+ switch(option)
+ if("Entire Stickyban")
+ if(!(tgui_alert(owner, "Are you sure you want to remove this stickyban? Identifier: [sticky.identifier] Reason: [sticky.reason]", "Confirm", list("Yes", "No")) == "Yes"))
+ return
+
+ sticky.active = FALSE
+ sticky.save()
+
+ message_admins("[key_name_admin(owner)] has deactivated stickyban '[sticky.identifier]'.")
+ important_message_external("[owner] has deactivated stickyban '[sticky.identifier]'.", "Stickyban Deactivated")
+
+ if("CID")
+ var/list/datum/view_record/stickyban_matched_cid/all_cids = DB_VIEW(/datum/view_record/stickyban_matched_cid,
+ DB_COMP("linked_stickyban", DB_EQUALS, sticky.id)
+ )
+
+ var/list/cid_to_record_id = list()
+ for(var/datum/view_record/stickyban_matched_cid/match in all_cids)
+ cid_to_record_id["[match.cid]"] = match.id
+
+ var/picked = tgui_input_list(owner, "Which CID to remove?", "DelABan", cid_to_record_id)
+ if(!picked)
+ return
+
+ var/selected = cid_to_record_id[picked]
+
+ var/datum/entity/stickyban_matched_cid/sticky_cid = DB_ENTITY(/datum/entity/stickyban_matched_cid, selected)
+ sticky_cid.delete()
+
+ message_admins("[key_name_admin(owner)] has removed a CID ([picked]) from stickyban '[sticky.identifier]'.")
+ important_message_external("[owner] has removed a CID ([picked]) from stickyban '[sticky.identifier]'.", "CID Removed from Stickyban")
+
+ if("CKEY")
+ var/list/datum/view_record/stickyban_matched_ckey/all_ckeys = DB_VIEW(/datum/view_record/stickyban_matched_ckey,
+ DB_COMP("linked_stickyban", DB_EQUALS, sticky.id)
+ )
+
+ var/list/ckey_to_record_id = list()
+ for(var/datum/view_record/stickyban_matched_ckey/match in all_ckeys)
+ ckey_to_record_id["[match.ckey]"] = match.id
+
+ var/picked = tgui_input_list(owner, "Which CKEY to remove?", "DelABan", ckey_to_record_id)
+ if(!picked)
+ return
+
+ var/selected = ckey_to_record_id[picked]
+
+ var/datum/entity/stickyban_matched_ckey/sticky_ckey = DB_ENTITY(/datum/entity/stickyban_matched_ckey, selected)
+ sticky_ckey.delete()
+
+ message_admins("[key_name_admin(owner)] has removed a CKEY ([picked]) from stickyban '[sticky.identifier]'.")
+ important_message_external("[owner] has removed a CKEY ([picked]) from stickyban '[sticky.identifier]'.", "CKEY Removed from Stickyban")
+
+ if("IP")
+ var/list/datum/view_record/stickyban_matched_ip/all_ips = DB_VIEW(/datum/view_record/stickyban_matched_ip,
+ DB_COMP("linked_stickyban", DB_EQUALS, sticky.id)
+ )
+
+ var/list/ip_to_record_id = list()
+ for(var/datum/view_record/stickyban_matched_ip/match in all_ips)
+ ip_to_record_id["[match.ip]"] = match.id
+
+ var/picked = tgui_input_list(owner, "Which IP to remove?", "DelABan", ip_to_record_id)
+ if(!picked)
+ return
+
+ var/selected = ip_to_record_id[picked]
+
+ var/datum/entity/stickyban_matched_ip/sticky_ip = DB_ENTITY(/datum/entity/stickyban_matched_ip, selected)
+ sticky_ip.delete()
+
+ message_admins("[key_name_admin(owner)] has removed an IP ([picked]) from stickyban [sticky.identifier].")
+ important_message_external("[owner] has removed an IP ([picked]) from stickyban '[sticky.identifier].", "IP Removed from Stickyban")
+
else if(href_list["warn"])
usr.client.warn(href_list["warn"])
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 5f10b8d24d22..ce02cdb59e20 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -469,6 +469,14 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
/datum/admin_help/proc/Close(key_name = key_name_admin(usr), silent = FALSE)
if(state != AHELP_ACTIVE)
return
+
+ if(marked_admin != usr.ckey)
+ if(marked_admin)
+ to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!"))
+ else
+ to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!"))
+ return
+
RemoveActive()
state = AHELP_CLOSED
GLOB.ahelp_tickets.ListInsert(src)
@@ -483,6 +491,14 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
/datum/admin_help/proc/Resolve(key_name = key_name_admin(usr), silent = FALSE)
if(state != AHELP_ACTIVE)
return
+
+ if(marked_admin != usr.ckey)
+ if(marked_admin)
+ to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!"))
+ else
+ to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!"))
+ return
+
RemoveActive()
state = AHELP_RESOLVED
GLOB.ahelp_tickets.ListInsert(src)
@@ -501,6 +517,10 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
if(state != AHELP_ACTIVE || !initial_message)
return
+ if(marked_admin && marked_admin != usr.ckey)
+ to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!"))
+ return
+
if(!initiator.current_mhelp)
initiator.current_mhelp = new(initiator)
@@ -525,7 +545,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
/datum/admin_help/proc/mark_ticket()
if(marked_admin)
- if(marked_admin == usr.key)
+ if(marked_admin == usr.ckey)
unmark_ticket()
return
to_chat(usr, SPAN_WARNING("This ticket has already been marked by [marked_admin]."))
@@ -543,7 +563,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
message_admins(msg)
log_admin_private(msg)
log_ahelp(id, "Marked", "Marked by [usr.key]", sender = usr.ckey)
- marked_admin = usr.key
+ marked_admin = usr.ckey
/datum/admin_help/proc/unmark_ticket()
var/key_name = key_name_admin(usr)
@@ -559,6 +579,13 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
if(state != AHELP_ACTIVE)
return
+ if(marked_admin != usr.ckey)
+ if(marked_admin)
+ to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!"))
+ else
+ to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!"))
+ return
+
if(initiator)
initiator.giveadminhelpverb()
@@ -582,6 +609,13 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
to_chat(usr, SPAN_WARNING("This ticket is already closed!"))
return
+ if(marked_admin != usr.ckey)
+ if(marked_admin)
+ to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!"))
+ else
+ to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!"))
+ return
+
var/chosen = tgui_input_list(usr, "Which auto response do you wish to send?", "AutoReply", GLOB.adminreplies)
var/datum/autoreply/admin/response = GLOB.adminreplies[chosen]
diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm
index e5fed9db2fc4..76525b2cae96 100644
--- a/code/modules/admin/verbs/adminpm.dm
+++ b/code/modules/admin/verbs/adminpm.dm
@@ -60,7 +60,7 @@
var/message_prompt = "Message:"
- if((AH?.opening_responders && length(AH.ticket_interactions) == 1 ) || (AH?.marked_admin && AH?.marked_admin != usr.key) && length(AH.ticket_interactions) == 2)
+ if((AH?.opening_responders && length(AH.ticket_interactions) == 1 ) || ((AH?.marked_admin && AH?.marked_admin != usr.ckey) && length(AH.ticket_interactions) == 2))
SEND_SOUND(src, sound('sound/machines/buzz-sigh.ogg', volume=30))
message_prompt += "\n\n**This ticket is already being responded to by: [length(AH.opening_responders) ? english_list(AH.opening_responders) : AH.marked_admin]**"
@@ -228,7 +228,8 @@
if(CLIENT_IS_STAFF(src)) //sender is an admin but recipient is not. Do BIG RED TEXT
var/already_logged = FALSE
if(!recipient.current_ticket)
- new /datum/admin_help(msg, recipient, TRUE)
+ var/datum/admin_help/new_ticket = new(msg, recipient, TRUE)
+ new_ticket.marked_admin = ckey
already_logged = TRUE
log_ahelp(recipient.current_ticket.id, "Ticket Opened", msg, recipient.ckey, src.ckey)
diff --git a/code/modules/admin/verbs/autoreplace.dm b/code/modules/admin/verbs/autoreplace.dm
index b2fe04cfb4a3..a896c751f5ed 100644
--- a/code/modules/admin/verbs/autoreplace.dm
+++ b/code/modules/admin/verbs/autoreplace.dm
@@ -32,7 +32,7 @@ GLOBAL_LIST_INIT_TYPED(admin_runtime_decorators, /datum/decorator/manual/admin_r
GLOB.admin_runtime_decorators.Add(SSdecorator.add_decorator(/datum/decorator/manual/admin_runtime, types, subtypes, field, value))
- log_and_message_admins("[src] activated new decorator id: [GLOB.admin_runtime_decorators.len] set for [hint_text] `[types]` for field `[field]` set value `[value]`")
+ message_admins("[src] activated new decorator id: [GLOB.admin_runtime_decorators.len] set for [hint_text] `[types]` for field `[field]` set value `[value]`")
/client/proc/deactivate_autoreplacer()
set category = "Admin.Events"
@@ -49,7 +49,7 @@ GLOBAL_LIST_INIT_TYPED(admin_runtime_decorators, /datum/decorator/manual/admin_r
GLOB.admin_runtime_decorators[num_value].enabled = FALSE
- log_and_message_admins("[src] deactivated decorator id: [num_value]")
+ message_admins("[src] deactivated decorator id: [num_value]")
/client/proc/rerun_decorators()
set category = "Admin.Events"
@@ -65,4 +65,4 @@ GLOBAL_LIST_INIT_TYPED(admin_runtime_decorators, /datum/decorator/manual/admin_r
SSdecorator.force_update()
- log_and_message_admins("[src] rerun all decorators.")
+ message_admins("[src] rerun all decorators.")
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 535a55ca47b3..60c2092d8dc3 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -115,8 +115,10 @@
var/height
if(istype(SSmapping.z_list[cur_z], /datum/space_level))
var/datum/space_level/cur_level = SSmapping.z_list[cur_z]
- width = cur_level.x_bounds - half_chunk_size + 2
- height = cur_level.y_bounds - half_chunk_size + 2
+ cur_x += cur_level.bounds[MAP_MINX] - 1
+ cur_y += cur_level.bounds[MAP_MINY] - 1
+ width = cur_level.bounds[MAP_MAXX] - cur_level.bounds[MAP_MINX] - half_chunk_size + 3
+ height = cur_level.bounds[MAP_MAXY] - cur_level.bounds[MAP_MINY] - half_chunk_size + 3
else
width = world.maxx - half_chunk_size + 2
height = world.maxy - half_chunk_size + 2
@@ -281,6 +283,8 @@
account_user.mind.store_memory(remembered_info)
account_user.mind.initial_account = generated_account
+ log_admin("[key_name(usr)] has created a new bank account for [key_name(account_user)].")
+
/client/proc/cmd_assume_direct_control(mob/M in GLOB.mob_list)
set name = "Control Mob"
set desc = "Assume control of the mob"
@@ -339,3 +343,20 @@
show_browser(usr, "[str] ", "Ticker Count", "tickercount")
+
+#ifdef TESTING
+GLOBAL_LIST_EMPTY(dirty_vars)
+
+/client/proc/see_dirty_varedits()
+ set category = "Debug.Mapping"
+ set name = "Dirty Varedits"
+
+ var/list/dat = list()
+ dat += "Abandon all hope ye who enter here "
+ for(var/thing in GLOB.dirty_vars)
+ dat += "[thing] "
+ CHECK_TICK
+ var/datum/browser/popup = new(usr, "dirty_vars", "Dirty Varedits", nwidth = 900, nheight = 750)
+ popup.set_content(dat.Join())
+ popup.open()
+#endif
diff --git a/code/modules/admin/verbs/load_event_level.dm b/code/modules/admin/verbs/load_event_level.dm
index 165506376b9b..72d004e03261 100644
--- a/code/modules/admin/verbs/load_event_level.dm
+++ b/code/modules/admin/verbs/load_event_level.dm
@@ -24,8 +24,6 @@
// Get dims & guesstimate center turf (in practice, current implem means min is always 1)
var/dim_x = boundaries[MAP_MAXX] - boundaries[MAP_MINX] + 1
var/dim_y = boundaries[MAP_MAXY] - boundaries[MAP_MINY] + 1
- var/center_x = boundaries[MAP_MINX] + round(dim_x / 2) // Technically off by 0.5 due to above +1. Whatever
- var/center_y = boundaries[MAP_MINY] + round(dim_y / 2)
var/prompt = alert(C, "Are you SURE you want to load this template as level ? This is SLOW and can freeze server for a bit. Dimensions are: [dim_x] x [dim_y]", "Template Confirm" ,"Yes","Nope!")
if(prompt != "Yes")
@@ -40,6 +38,9 @@
to_chat(C, "Failed to load the template to a Z-Level! Sorry!")
return
+ var/center_x = round(loaded.bounds[MAP_MAXX] / 2) // Technically off by 0.5 due to above +1. Whatever
+ var/center_y = round(loaded.bounds[MAP_MAXY] / 2)
+
// Now notify the staff of the load - this goes in addition to the generic template load game log
message_admins("Successfully loaded template as new Z-Level by ckey: [logckey], template name: [template.name]", center_x, center_y, loaded.z_value)
if(isobserver(C?.mob))
diff --git a/code/modules/admin/verbs/map_template_loadverb.dm b/code/modules/admin/verbs/map_template_loadverb.dm
index 59cffa7f5eae..aed4fd6b90d7 100644
--- a/code/modules/admin/verbs/map_template_loadverb.dm
+++ b/code/modules/admin/verbs/map_template_loadverb.dm
@@ -74,3 +74,30 @@
SSmapping.map_templates[M.name] = M
message_admins(SPAN_ADMINNOTICE("[key_name_admin(src)] has uploaded a map template '[map]' ([M.width]x[M.height])[report_link]."))
to_chat(src, SPAN_NOTICE("Map template '[map]' ready to place ([M.width]x[M.height])"), confidential = TRUE)
+
+/client/proc/force_load_lazy_template()
+ set name = "Map Template - Lazy Load/Jump"
+ set category = "Admin.Events"
+ if(!check_rights(R_EVENT))
+ return
+
+ var/choice = tgui_input_list(usr, "Key?", "Lazy Loader", GLOB.lazy_templates)
+ if(!choice)
+ return
+
+ var/already_loaded = LAZYACCESS(SSmapping.loaded_lazy_templates, choice)
+ var/force_load = FALSE
+ if(already_loaded && (tgui_alert(usr, "Template already loaded.", "", list("Jump", "Load Again")) == "Load Again"))
+ force_load = TRUE
+
+ var/datum/turf_reservation/reservation = SSmapping.lazy_load_template(choice, force = force_load)
+ if(!reservation)
+ to_chat(usr, SPAN_BOLDWARNING("Failed to load template!"))
+ return
+
+ if(!isobserver(usr))
+ admin_ghost()
+ usr.forceMove(reservation.bottom_left_turfs[1])
+
+ message_admins("[key_name_admin(usr)] has loaded lazy template '[choice]'")
+ to_chat(usr, SPAN_BOLD("Template loaded, you have been moved to the bottom left of the reservation."))
diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm
index e35974bc6276..0b27cf268a12 100644
--- a/code/modules/asset_cache/asset_list_items.dm
+++ b/code/modules/asset_cache/asset_list_items.dm
@@ -378,9 +378,16 @@
InsertAll("", icon_file)
for(var/obj/item/weapon/gun/current_gun as anything in subtypesof(/obj/item/weapon/gun))
- var/icon_state = initial(current_gun.base_gun_icon)
+ if(isnull(initial(current_gun.icon_state)))
+ continue
+ if(initial(current_gun.flags_gun_features) & GUN_UNUSUAL_DESIGN)
+ continue // These don't have a way to inspect weapon stats
+ var/obj/item/weapon/gun/temp_gun = new current_gun
+ var/icon_state = temp_gun.base_gun_icon // base_gun_icon is set in Initialize generally
+ qdel(temp_gun)
if(icon_state && isnull(sprites[icon_state]))
- stack_trace("[current_gun] does not have a valid lineart icon state, icon=[icon_file], icon_state=[json_encode(icon_state)](\ref[icon_state])")
+ // upgrade this to a stack_trace once all guns have a lineart and we want to lint against that
+ log_debug("[current_gun] does not have a valid lineart icon state, icon=[icon_file], icon_state=[json_encode(icon_state)]")
..()
diff --git a/code/modules/autowiki/pages/guns.dm b/code/modules/autowiki/pages/guns.dm
index ad675c51a409..7f63602d56f0 100644
--- a/code/modules/autowiki/pages/guns.dm
+++ b/code/modules/autowiki/pages/guns.dm
@@ -7,14 +7,18 @@
var/list/gun_to_ammo = list()
- for(var/obj/item/ammo_magazine/typepath as anything in subtypesof(/obj/item/ammo_magazine) - subtypesof(/obj/item/ammo_magazine/internal))
+ for(var/obj/item/ammo_magazine/typepath as anything in subtypesof(/obj/item/ammo_magazine) - typesof(/obj/item/ammo_magazine/internal))
+ if(isnull(initial(typepath.icon_state)))
+ continue // Skip mags with no icon_state (e.g. base types)
LAZYADD(gun_to_ammo[initial(typepath.gun_type)], typepath)
for(var/typepath in sort_list(subtypesof(/obj/item/weapon/gun), GLOBAL_PROC_REF(cmp_typepaths_asc)))
- var/obj/item/weapon/gun/generating_gun = new typepath()
+ var/obj/item/weapon/gun/generating_gun = typepath
+ if(isnull(initial(generating_gun.icon_state)))
+ continue // Skip guns with no icon_state (e.g. base types)
+ generating_gun = new typepath()
var/filename = SANITIZE_FILENAME(escape_value(format_text(generating_gun.name)))
-
var/list/gun_data = generating_gun.ui_data()
var/list/valid_mag_types = list()
@@ -70,6 +74,8 @@
var/list/attachments_by_slot = list()
for(var/obj/item/attachable/attachment_typepath as anything in generating_gun.attachable_allowed)
+ if(isnull(initial(attachment_typepath.icon_state)))
+ continue // Skip attachments with no icon_state (e.g. base types)
LAZYADD(attachments_by_slot[capitalize(initial(attachment_typepath.slot))], attachment_typepath)
var/attachments = ""
diff --git a/code/modules/clans/client.dm b/code/modules/clans/client.dm
index c4948b2a6923..3450b7553c51 100644
--- a/code/modules/clans/client.dm
+++ b/code/modules/clans/client.dm
@@ -234,7 +234,7 @@
return
- log_and_message_admins("[key_name_admin(src)] has set the name of [target_clan.name] to [input].")
+ message_admins("[key_name_admin(src)] has set the name of [target_clan.name] to [input].")
to_chat(src, SPAN_NOTICE("Set the name of [target_clan.name] to [input]."))
target_clan.name = trim(input)
@@ -247,7 +247,7 @@
if(!input || input == target_clan.description)
return
- log_and_message_admins("[key_name_admin(src)] has set the description of [target_clan.name].")
+ message_admins("[key_name_admin(src)] has set the description of [target_clan.name].")
to_chat(src, SPAN_NOTICE("Set the description of [target_clan.name]."))
target_clan.description = trim(input)
@@ -261,7 +261,7 @@
return
target_clan.color = color
- log_and_message_admins("[key_name_admin(src)] has set the color of [target_clan.name] to [color].")
+ message_admins("[key_name_admin(src)] has set the color of [target_clan.name] to [color].")
to_chat(src, SPAN_NOTICE("Set the name of [target_clan.name] to [color]."))
if(CLAN_ACTION_CLAN_SETHONOR)
if(!has_clan_permission(CLAN_PERMISSION_ADMIN_MANAGER))
@@ -272,7 +272,7 @@
if((!input && input != 0) || input == target_clan.honor)
return
- log_and_message_admins("[key_name_admin(src)] has set the honor of clan [target_clan.name] from [target_clan.honor] to [input].")
+ message_admins("[key_name_admin(src)] has set the honor of clan [target_clan.name] from [target_clan.honor] to [input].")
to_chat(src, SPAN_NOTICE("Set the honor of [target_clan.name] from [target_clan.honor] to [input]."))
target_clan.honor = input
@@ -286,7 +286,7 @@
to_chat(src, "You have decided not to delete [target_clan.name].")
return
- log_and_message_admins("[key_name_admin(src)] has deleted the clan [target_clan.name].")
+ message_admins("[key_name_admin(src)] has deleted the clan [target_clan.name].")
to_chat(src, SPAN_NOTICE("You have deleted [target_clan.name]."))
var/list/datum/view_record/clan_playerbase_view/CPV = DB_VIEW(/datum/view_record/clan_playerbase_view, DB_COMP("clan_id", DB_EQUALS, target_clan.id))
@@ -339,7 +339,7 @@
return
var/target_clan = target.clan_id
- log_and_message_admins("[key_name_admin(src)] has purged [player_name]'s clan profile.")
+ message_admins("[key_name_admin(src)] has purged [player_name]'s clan profile.")
to_chat(src, SPAN_NOTICE("You have purged [player_name]'s clan profile."))
target.delete()
@@ -379,20 +379,20 @@
target.clan_id = null
target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_YOUNG]
to_chat(src, SPAN_NOTICE("Removed [player_name] from their clan."))
- log_and_message_admins("[key_name_admin(src)] has removed [player_name] from their current clan.")
+ message_admins("[key_name_admin(src)] has removed [player_name] from their current clan.")
else if(input == "Remove from Ancient")
target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_YOUNG]
target.permissions = GLOB.clan_ranks[CLAN_RANK_YOUNG].permissions
to_chat(src, SPAN_NOTICE("Removed [player_name] from ancient."))
- log_and_message_admins("[key_name_admin(src)] has removed [player_name] from ancient.")
+ message_admins("[key_name_admin(src)] has removed [player_name] from ancient.")
else if(input == "Make Ancient" && is_clan_manager)
target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_ADMIN]
target.permissions = CLAN_PERMISSION_ADMIN_ANCIENT
to_chat(src, SPAN_NOTICE("Made [player_name] an ancient."))
- log_and_message_admins("[key_name_admin(src)] has made [player_name] an ancient.")
+ message_admins("[key_name_admin(src)] has made [player_name] an ancient.")
else
to_chat(src, SPAN_NOTICE("Moved [player_name] to [input]."))
- log_and_message_admins("[key_name_admin(src)] has moved [player_name] to clan [input].")
+ message_admins("[key_name_admin(src)] has moved [player_name] to clan [input].")
target.clan_id = clans[input]
@@ -455,7 +455,7 @@
target.clan_rank = GLOB.clan_ranks_ordered[chosen_rank.name]
target.permissions = chosen_rank.permissions
- log_and_message_admins("[key_name_admin(src)] has set the rank of [player_name] to [chosen_rank.name] for their clan.")
+ message_admins("[key_name_admin(src)] has set the rank of [player_name] to [chosen_rank.name] for their clan.")
to_chat(src, SPAN_NOTICE("Set [player_name]'s rank to [chosen_rank.name]"))
target.save()
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 44820444a955..5796d5ff505e 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -444,7 +444,7 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list(
view = GLOB.world_view_size
- SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CLIENT_LOGIN, src)
+ SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CLIENT_LOGGED_IN, src)
//////////////
//DISCONNECT//
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 221736b5c84f..113d585e44ef 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -245,7 +245,7 @@ GLOBAL_LIST_INIT(bgstate_options, list(
var/auto_observe = TRUE
/datum/preferences/New(client/C)
- key_bindings = deepCopyList(GLOB.hotkey_keybinding_list_by_key) // give them default keybinds and update their movement keys
+ key_bindings = deep_copy_list(GLOB.hotkey_keybinding_list_by_key) // give them default keybinds and update their movement keys
macros = new(C, src)
if(istype(C))
owner = C
diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm
index 0c1a7a31b5e8..c822bedd0f7b 100644
--- a/code/modules/client/preferences_gear.dm
+++ b/code/modules/client/preferences_gear.dm
@@ -515,6 +515,10 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name)
display_name = "Card, Uno Reverse - yellow"
path = /obj/item/toy/handcard/uno_reverse_yellow
+/datum/gear/toy/card/trading_card
+ display_name = "Card, random WeyYu Trading"
+ path = /obj/item/toy/trading_card
+
/datum/gear/toy/deck
display_name = "Deck of cards, regular"
path = /obj/item/toy/deck
@@ -523,6 +527,10 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name)
display_name = "Deck of cards, Uno"
path = /obj/item/toy/deck/uno
+/datum/gear/toy/trading_card
+ display_name = "Trading Card Packet"
+ path = /obj/item/storage/fancy/trading_card
+
/datum/gear/toy/d6
display_name = "Die, 6 sides"
path = /obj/item/toy/dice
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 2261ddf5ebfa..8f3d10c102ce 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -100,7 +100,7 @@
/proc/sanitize_keybindings(value)
var/list/base_bindings = sanitize_islist(value, list())
if(!length(base_bindings))
- base_bindings = deepCopyList(GLOB.hotkey_keybinding_list_by_key)
+ base_bindings = deep_copy_list(GLOB.hotkey_keybinding_list_by_key)
for(var/key in base_bindings)
base_bindings[key] = base_bindings[key] & GLOB.keybindings_by_name
if(!length(base_bindings[key]))
diff --git a/code/modules/client/tgui_macro.dm b/code/modules/client/tgui_macro.dm
index f245f1d657d4..cd621cebab84 100644
--- a/code/modules/client/tgui_macro.dm
+++ b/code/modules/client/tgui_macro.dm
@@ -101,6 +101,7 @@ GLOBAL_LIST_EMPTY(ui_data_keybindings)
prefs.save_preferences()
INVOKE_ASYNC(owner, /client/proc/set_macros)
return TRUE
+
if("clear_keybind")
var/list/kbinds = prefs.key_bindings
var/kb_name = params["keybinding"]
@@ -111,19 +112,21 @@ GLOBAL_LIST_EMPTY(ui_data_keybindings)
for(var/key in keys)
if(kbinds[key])
kbinds[key] -= kb_name
- kbinds["Unbound"] += kb_name
if(!length(kbinds[key]))
kbinds -= key
+ // Add the keybind name to the 'unbound' list if it's not already in there.
+ kbinds["Unbound"] |= kb_name
prefs.save_preferences()
INVOKE_ASYNC(owner, /client/proc/set_macros)
return TRUE
+
if("clear_all_keybinds")
var/choice = tgui_alert(owner, "Would you prefer 'hotkey' or 'classic' defaults?", "Setup keybindings", list("Hotkey", "Classic", "Cancel"))
if(choice == "Cancel")
return TRUE
prefs.hotkeys = (choice == "Hotkey")
- prefs.key_bindings = (prefs.hotkeys) ? deepCopyList(GLOB.hotkey_keybinding_list_by_key) : deepCopyList(GLOB.classic_keybinding_list_by_key)
+ prefs.key_bindings = (prefs.hotkeys) ? deep_copy_list(GLOB.hotkey_keybinding_list_by_key) : deep_copy_list(GLOB.classic_keybinding_list_by_key)
INVOKE_ASYNC(owner, /client/proc/set_macros)
prefs.save_preferences()
return TRUE
diff --git a/code/modules/clothing/head/head.dm b/code/modules/clothing/head/head.dm
index 9121485ee76a..86527457bfce 100644
--- a/code/modules/clothing/head/head.dm
+++ b/code/modules/clothing/head/head.dm
@@ -416,10 +416,8 @@
/obj/item/clothing/head/cmcap/reporter
name = "combat correspondent cap"
desc = "A faithful cap for any terrain war correspondents may find themselves in."
- icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi'
- icon_state = "wc_flagcap"
- item_state = "wc_flagcap"
- contained_sprite = TRUE
+ icon_state = "cc_flagcap"
+ item_state = "cc_flagcap"
flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
flags_marine_hat = HAT_GARB_OVERLAY
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index e8643e14a144..26c92f632ee2 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -380,7 +380,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
var/obj/item/storage/internal/headgear/pockets
var/storage_slots = 2 // keep in mind, one slot is reserved for garb items
- var/storage_slots_reserved_for_garb = 1
+ var/storage_slots_reserved_for_garb = 2
var/storage_max_w_class = SIZE_TINY // can hold tiny items only, EXCEPT for glasses & metal flask.
var/storage_max_storage_space = 4
@@ -476,10 +476,10 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
/obj/item/clothing/head/helmet/marine/attackby(obj/item/attacking_item, mob/user)
if(istype(attacking_item, /obj/item/ammo_magazine) && world.time > helmet_bash_cooldown && user)
var/obj/item/ammo_magazine/M = attacking_item
- var/ammo_level = "somewhat"
+ var/ammo_level = "more than half full."
playsound(user, 'sound/items/trayhit1.ogg', 15, FALSE)
- if(M.current_rounds > (M.max_rounds/2))
- ammo_level = "more than half full."
+ if(M.current_rounds == (M.max_rounds/2))
+ ammo_level = "half full."
if(M.current_rounds < (M.max_rounds/2))
ammo_level = "less than half full."
if(M.current_rounds < (M.max_rounds/6))
@@ -511,7 +511,17 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
new_action.give_to(user)
return
- if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER) && length(inserted_visors))
+ if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER))
+ // If there isn't anything to remove, return.
+ if(!length(inserted_visors))
+ // If the user is trying to remove a built-in visor, give them a more helpful failure message.
+ switch(length(built_in_visors))
+ if(1) // Messy plural handling
+ to_chat(user, SPAN_WARNING("The visor on [src] is built-in!"))
+ if(2 to INFINITY)
+ to_chat(user, SPAN_WARNING("The visors on [src] are built-in!"))
+ return
+
if(active_visor)
var/obj/item/device/helmet_visor/temp_visor_holder = active_visor
active_visor = null
@@ -677,7 +687,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
if(length(total_visors) > iterator)
var/obj/item/device/helmet_visor/next_visor = total_visors[iterator + 1]
- if(!isnull(GLOB.huds[next_visor.hud_type].hudusers[user]))
+ if(!isnull(GLOB.huds[next_visor.hud_type]?.hudusers[user]))
iterator++
skipped_hud = TRUE
continue
@@ -694,7 +704,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
for(var/obj/item/device/helmet_visor/new_visor in total_visors)
- if(!isnull(GLOB.huds[new_visor.hud_type].hudusers[user]))
+ if(!isnull(GLOB.huds[new_visor.hud_type]?.hudusers[user]))
continue
active_visor = new_visor
@@ -1403,10 +1413,8 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
/obj/item/clothing/head/helmet/marine/reporter
name = "press helmet"
desc = "A helmet designed to make it clear that the wearer is safety aware and not looking for a fight."
- icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi'
- icon_state = "wc_helm"
- item_state = "wc_helm"
- contained_sprite = TRUE
+ icon_state = "cc_helmet"
+ item_state = "cc_helmet"
flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
built_in_visors = list()
diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm
index 5467e9413695..a0e95f7f0f30 100644
--- a/code/modules/clothing/head/soft_caps.dm
+++ b/code/modules/clothing/head/soft_caps.dm
@@ -89,6 +89,18 @@
cap_color = "ferret"
black_market_value = 25
+/obj/item/clothing/head/soft/trucker
+ name = "\improper blue trucker hat"
+ desc = "It's a blue trucker hat."
+ icon_state = "truckercap_bluesoft"
+ cap_color = "truckercap_blue"
+
+/obj/item/clothing/head/soft/trucker/red
+ name = "\improper red trucker hat"
+ desc = "It's a red trucker hat."
+ icon_state = "truckercap_redsoft"
+ cap_color = "truckercap_red"
+
/obj/item/clothing/head/soft/sec
name = "security cap"
desc = "It's baseball hat in tasteful red color."
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 1fe48130157f..1a49dc7fe10f 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -72,7 +72,7 @@
/obj/item/clothing/shoes/sandal
desc = "A pair of rather plain, wooden sandals."
name = "sandals"
- icon_state = "wizard"
+ icon_state = "sandals"
flags_armor_protection = 0
/obj/item/clothing/shoes/sandal/marisa
diff --git a/code/modules/clothing/suits/marine_armor.dm b/code/modules/clothing/suits/marine_armor.dm
deleted file mode 100644
index 1a8de0a89223..000000000000
--- a/code/modules/clothing/suits/marine_armor.dm
+++ /dev/null
@@ -1,1894 +0,0 @@
-#define DEBUG_ARMOR_PROTECTION 0
-
-#if DEBUG_ARMOR_PROTECTION
-/mob/living/carbon/human/verb/check_overall_protection()
- set name = "Get Armor Value"
- set category = "Debug"
- set desc = "Shows the armor value of the bullet category."
-
- var/armor = 0
- var/counter = 0
- for(var/X in H.limbs)
- var/obj/limb/E = X
- armor = getarmor_organ(E, ARMOR_BULLET)
- to_chat(src, SPAN_DEBUG("[E.name] is protected with [armor] armor against bullets."))
- counter += armor
- to_chat(src, SPAN_DEBUG("The overall armor score is: [counter] ."))
-#endif
-
-//=======================================================================\\
-//=======================================================================\\
-
-#define ALPHA 1
-#define BRAVO 2
-#define CHARLIE 3
-#define DELTA 4
-#define ECHO 5
-#define CRYO 6
-#define SOF 7
-#define NOSQUAD 8
-
-// MARINE STORAGE ARMOR
-
-/obj/item/clothing/suit/storage/marine
- name = "\improper M3 pattern marine armor"
- desc = "A standard Colonial Marines M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
- icon = 'icons/obj/items/clothing/cm_suits.dmi'
- icon_state = "1"
- item_state = "marine_armor" //Make unique states for Officer & Intel armors.
- item_icons = list(
- WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi'
- )
- flags_atom = FPRINT|CONDUCT
- flags_inventory = BLOCKSHARPOBJ
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
- flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
- flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
- min_cold_protection_temperature = HELMET_MIN_COLD_PROT
- max_heat_protection_temperature = HELMET_MAX_HEAT_PROT
- blood_overlay_type = "armor"
- armor_melee = CLOTHING_ARMOR_MEDIUM
- armor_bullet = CLOTHING_ARMOR_MEDIUM
- armor_laser = CLOTHING_ARMOR_MEDIUMLOW
- armor_energy = CLOTHING_ARMOR_NONE
- armor_bomb = CLOTHING_ARMOR_MEDIUMLOW
- armor_bio = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUMLOW
- armor_internaldamage = CLOTHING_ARMOR_MEDIUM
- movement_compensation = SLOWDOWN_ARMOR_LIGHT
- storage_slots = 3
- siemens_coefficient = 0.7
- slowdown = SLOWDOWN_ARMOR_MEDIUM
- allowed = list(
- /obj/item/weapon/gun,
- /obj/item/prop/prop_gun,
- /obj/item/tank/emergency_oxygen,
- /obj/item/device/flashlight,
- /obj/item/storage/fancy/cigarettes,
- /obj/item/tool/lighter,
- /obj/item/storage/bible,
- /obj/item/attachable/bayonet,
- /obj/item/storage/backpack/general_belt,
- /obj/item/storage/large_holster/machete,
- /obj/item/storage/belt/gun/type47,
- /obj/item/storage/belt/gun/m4a3,
- /obj/item/storage/belt/gun/m44,
- /obj/item/storage/belt/gun/smartpistol,
- /obj/item/storage/belt/gun/flaregun,
- /obj/item/device/motiondetector,
- /obj/item/device/walkman,
- /obj/item/storage/belt/gun/m39,
- /obj/item/storage/belt/gun/xm51,
- )
- valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO)
-
- light_power = 3
- light_range = 4
- light_system = MOVABLE_LIGHT
-
- var/flashlight_cooldown = 0 //Cooldown for toggling the light
- var/locate_cooldown = 0 //Cooldown for SL locator
- var/armor_overlays[]
- actions_types = list(/datum/action/item_action/toggle)
- var/flags_marine_armor = ARMOR_SQUAD_OVERLAY|ARMOR_LAMP_OVERLAY
- var/specialty = "M3 pattern marine" //Same thing here. Give them a specialty so that they show up correctly in vendors. speciality does NOTHING if you have NO_NAME_OVERRIDE
- w_class = SIZE_HUGE
- uniform_restricted = list(/obj/item/clothing/under/marine)
- sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi')
- time_to_unequip = 20
- time_to_equip = 20
- pickup_sound = "armorequip"
- drop_sound = "armorequip"
- equip_sounds = list('sound/handling/putting_on_armor1.ogg')
- var/armor_variation = 0
- /// The dmi where the grayscale squad overlays are contained
- var/squad_overlay_icon = 'icons/mob/humans/onmob/suit_1.dmi'
-
- var/atom/movable/marine_light/light_holder
-
-/obj/item/clothing/suit/storage/marine/Initialize(mapload)
- . = ..()
- if(!(flags_atom & NO_NAME_OVERRIDE))
- name = "[specialty]"
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- name += " snow armor" //Leave marine out so that armors don't have to have "Marine" appended (see: generals).
- else
- name += " armor"
-
- if(!(flags_atom & NO_SNOW_TYPE))
- select_gamemode_skin(type)
- armor_overlays = list("lamp") //Just one for now, can add more later.
- if(armor_variation && mapload)
- set_armor_style("Random")
- update_icon()
- pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines.
- pockets.bypass_w_limit = list(
- /obj/item/ammo_magazine/rifle,
- /obj/item/ammo_magazine/smg,
- /obj/item/ammo_magazine/sniper,
- )
- pockets.max_storage_space = 8
-
- light_holder = new(src)
-
-/obj/item/clothing/suit/storage/marine/Destroy()
- QDEL_NULL(light_holder)
- return ..()
-
-/obj/item/clothing/suit/storage/marine/update_icon(mob/user)
- var/image/I
- armor_overlays["lamp"] = null
- if(flags_marine_armor & ARMOR_LAMP_OVERLAY)
- if(flags_marine_armor & ARMOR_LAMP_ON)
- I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-on")
- else
- I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-off")
- armor_overlays["lamp"] = I
- overlays += I
- else armor_overlays["lamp"] = null
- if(user) user.update_inv_wear_suit()
-
-
-/obj/item/clothing/suit/storage/marine/post_vendor_spawn_hook(mob/living/carbon/human/user) //used for randomizing/selecting a variant for armors.
- if(!armor_variation)
- return
-
- if(user?.client?.prefs)
- // Set the armor style to the user's preference.
- set_armor_style(user.client.prefs.preferred_armor)
- else
- // Or if that isn't possible, just pick a random one.
- set_armor_style("Random")
- update_icon(user)
-
-/obj/item/clothing/suit/storage/marine/attack_self(mob/user)
- ..()
-
- if(!isturf(user.loc))
- to_chat(user, SPAN_WARNING("You cannot turn the light [light_on ? "off" : "on"] while in [user.loc].")) //To prevent some lighting anomalies.
- return
-
- if(flashlight_cooldown > world.time)
- return
- if(!ishuman(user))
- return
-
- var/mob/living/carbon/human/H = user
- if(H.wear_suit != src)
- return
-
- turn_light(user, !light_on)
-
-/obj/item/clothing/suit/storage/marine/item_action_slot_check(mob/user, slot)
- if(!ishuman(user))
- return FALSE
- if(slot != WEAR_JACKET)
- return FALSE
- return TRUE //only give action button when armor is worn.
-
-/obj/item/clothing/suit/storage/marine/turn_light(mob/user, toggle_on)
- . = ..()
- if(. != CHECKS_PASSED)
- return
- set_light_range(initial(light_range))
- set_light_power(Floor(initial(light_power) * 0.5))
- set_light_on(toggle_on)
- flags_marine_armor ^= ARMOR_LAMP_ON
-
- light_holder.set_light_flags(LIGHT_ATTACHED)
- light_holder.set_light_range(initial(light_range))
- light_holder.set_light_power(initial(light_power))
- light_holder.set_light_on(toggle_on)
-
- if(!toggle_on)
- playsound(src, 'sound/handling/click_2.ogg', 50, 1)
-
- playsound(src, 'sound/handling/suitlight_on.ogg', 50, 1)
- update_icon(user)
-
- for(var/X in actions)
- var/datum/action/A = X
- A.update_button_icon()
-
-/obj/item/clothing/suit/storage/marine/mob_can_equip(mob/living/carbon/human/M, slot, disable_warning = 0)
- . = ..()
- if (.)
- if(issynth(M) && M.allow_gun_usage == FALSE && !(flags_marine_armor & SYNTH_ALLOWED))
- M.visible_message(SPAN_DANGER("Your programming prevents you from wearing this!"))
- return 0
-
-/**
- * Updates the armor's `icon_state` to the style represented by `new_style`.
- *
- * Arguments:
- * * new_style - The new armor style. May only be one of `GLOB.armor_style_list`'s keys, or `"Random"`.
- */
-/obj/item/clothing/suit/storage/marine/proc/set_armor_style(new_style)
- // Regex to match one or more digits.
- var/static/regex/digits = new("\\d+")
- // Integer for the new armor style's `icon_state`.
- var/new_look
-
- if(new_style == "Random")
- // The style icon states are all numbers between 1 and `armor_variation`, so this picks a random one.
- new_look = rand(1, armor_variation)
- else
- new_look = GLOB.armor_style_list[new_style]
-
- // Replace the digits in the current icon state with `new_look`. (E.g. "L6" -> "L2")
- icon_state = digits.Replace(icon_state, new_look)
-
-/obj/item/clothing/suit/storage/marine/medium/padded
- name = "M3 pattern padded marine armor"
- icon_state = "1"
- specialty = "M3 pattern padded marine"
-
-/obj/item/clothing/suit/storage/marine/medium/padless
- name = "M3 pattern padless marine armor"
- icon_state = "2"
- specialty = "M3 pattern padless marine"
-
-/obj/item/clothing/suit/storage/marine/medium/padless_lines
- name = "M3 pattern ridged marine armor"
- icon_state = "3"
- specialty = "M3 pattern ridged marine"
-
-/obj/item/clothing/suit/storage/marine/medium/carrier
- name = "M3 pattern carrier marine armor"
- icon_state = "4"
- specialty = "M3 pattern carrier marine"
-
-/obj/item/clothing/suit/storage/marine/medium/skull
- name = "M3 pattern skull marine armor"
- icon_state = "5"
- specialty = "M3 pattern skull marine"
-
-/obj/item/clothing/suit/storage/marine/medium/smooth
- name = "M3 pattern smooth marine armor"
- icon_state = "6"
- specialty = "M3 pattern smooth marine"
-
-/obj/item/clothing/suit/storage/marine/medium/rto
- icon_state = "io"
- armor_variation = 0
- name = "\improper M4 pattern marine armor"
- desc = "A well tinkered and crafted hybrid of Smart-Gunner mesh and M3 pattern plates. Robust, yet nimble, with room for all your pouches."
- armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
- armor_rad = CLOTHING_ARMOR_MEDIUM
- storage_slots = 4
- light_range = 5 //slightly higher
- specialty = "M4 pattern marine"
-
-/obj/item/clothing/suit/storage/marine/medium/rto/intel
- name = "\improper XM4 pattern intelligence officer armor"
- uniform_restricted = list(/obj/item/clothing/under/marine/officer, /obj/item/clothing/under/rank/qm_suit, /obj/item/clothing/under/marine/officer/intel)
- specialty = "XM4 pattern intel"
-
-/obj/item/clothing/suit/storage/marine/MP
- name = "\improper M2 pattern MP armor"
- desc = "A standard Colonial Marines M2 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
- icon_state = "mp_armor"
- armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bullet = CLOTHING_ARMOR_LOW
- armor_laser = CLOTHING_ARMOR_LOW
- armor_energy = CLOTHING_ARMOR_LOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_bio = CLOTHING_ARMOR_MEDIUMLOW
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW
- storage_slots = 2
- slowdown = SLOWDOWN_ARMOR_LIGHT
- allowed = list(
- /obj/item/weapon/gun,
- /obj/item/tank/emergency_oxygen,
- /obj/item/device/flashlight,
- /obj/item/ammo_magazine/,
- /obj/item/storage/fancy/cigarettes,
- /obj/item/tool/lighter,
- /obj/item/weapon/baton,
- /obj/item/handcuffs,
- /obj/item/explosive/grenade,
- /obj/item/device/binoculars,
- /obj/item/attachable/bayonet,
- /obj/item/storage/backpack/general_belt,
- /obj/item/device/hailer,
- /obj/item/storage/belt/gun,
- /obj/item/weapon/sword/ceremonial,
- /obj/item/device/motiondetector,
- /obj/item/device/walkman,
- )
- uniform_restricted = list(/obj/item/clothing/under/marine/mp)
- specialty = "M2 pattern MP"
- item_state_slots = list(WEAR_JACKET = "mp_armor")
- black_market_value = 20
-
-/obj/item/clothing/suit/storage/marine/MP/warden
- icon_state = "warden"
- name = "\improper M3 pattern warden MP armor"
- desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Wardens. Useful for letting your men know who is in charge."
- armor_bio = CLOTHING_ARMOR_MEDIUMLOW
- armor_rad = CLOTHING_ARMOR_MEDIUMLOW
- uniform_restricted = list(/obj/item/clothing/under/marine/warden)
- specialty = "M3 pattern warden MP"
- item_state_slots = list(WEAR_JACKET = "warden")
-
-/obj/item/clothing/suit/storage/marine/MP/WO
- icon_state = "warrant_officer"
- name = "\improper M3 pattern chief MP armor"
- desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Chief MPs. Useful for letting your men know who is in charge."
- uniform_restricted = list(/obj/item/clothing/under/marine/officer/warrant)
- specialty = "M3 pattern chief MP"
- item_state_slots = list(WEAR_JACKET = "warrant_officer")
- black_market_value = 30
-
-/obj/item/clothing/suit/storage/marine/MP/general
- name = "\improper M3 pattern general officer armor"
- desc = "A well-crafted suit of M3 Pattern Armor with a gold shine. It looks very expensive, but shockingly fairly easy to carry and wear."
- icon_state = "general"
- armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bio = CLOTHING_ARMOR_MEDIUM
- uniform_restricted = list(/obj/item/clothing/under/marine/officer/general)
- specialty = "M3 pattern general"
- item_state_slots = list(WEAR_JACKET = "general")
- w_class = SIZE_MEDIUM
-
-/obj/item/clothing/suit/storage/marine/MP/SO
- name = "\improper M3 pattern officer armor"
- desc = "A well-crafted suit of M3 Pattern Armor typically found in the hands of higher-ranking officers. Useful for letting your men know who is in charge when taking to the field."
- icon_state = "officer"
- storage_slots = 3
- flags_atom = null
- uniform_restricted = list(/obj/item/clothing/under/marine/officer, /obj/item/clothing/under/rank/qm_suit, /obj/item/clothing/under/rank/chief_medical_officer, /obj/item/clothing/under/marine/dress)
- specialty = "M2 pattern officer"
- item_state_slots = list(WEAR_JACKET = "officer")
-
-//Making a new object because we might want to edit armor values and such.
-//Or give it its own sprite. It's more for the future.
-/obj/item/clothing/suit/storage/marine/MP/CO
- name = "\improper M3 pattern commanding officer armor"
- desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge."
- icon_state = "co_officer"
- item_state = "co_officer"
- armor_bullet = CLOTHING_ARMOR_HIGH
- storage_slots = 3
- flags_atom = NO_SNOW_TYPE
- flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS
- uniform_restricted = list(/obj/item/clothing/under/marine, /obj/item/clothing/under/rank/qm_suit)
- specialty = "M3 pattern captain"
- item_state_slots = list(WEAR_JACKET = "co_officer")
- valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_PONCHO)
- black_market_value = 35
-
-
-/obj/item/clothing/suit/storage/marine/MP/CO/jacket
- name = "\improper M3 pattern commanding officer armored coat"
- desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge. This one has a coat over it for added warmth."
- icon_state = "bridge_coat_armored"
- item_state = "bridge_coat_armored"
- item_state_slots = list(WEAR_JACKET = "bridge_coat_armored")
- valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK)
-
-
-/obj/item/clothing/suit/storage/marine/smartgunner
- name = "\improper M56 combat harness"
- desc = "A heavy protective vest designed to be worn with the M56 Smartgun System. \nIt has specially designed straps and reinforcement to carry the Smartgun and accessories."
- icon_state = "8"
- item_state = "armor"
- armor_laser = CLOTHING_ARMOR_LOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUM
- storage_slots = 2
- slowdown = SLOWDOWN_ARMOR_LIGHT
- flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS
- allowed = list(
- /obj/item/tank/emergency_oxygen,
- /obj/item/device/flashlight,
- /obj/item/ammo_magazine,
- /obj/item/explosive/mine,
- /obj/item/attachable/bayonet,
- /obj/item/weapon/gun/smartgun,
- /obj/item/storage/backpack/general_belt,
- /obj/item/device/motiondetector,
- /obj/item/device/walkman,
- )
-
-/obj/item/clothing/suit/storage/marine/smartgunner/Initialize()
- . = ..()
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD] && name == "M56 combat harness")
- name = "M56 snow combat harness"
- else
- name = "M56 combat harness"
- //select_gamemode_skin(type)
-
-/obj/item/clothing/suit/storage/marine/smartgunner/mob_can_equip(mob/equipping_mob, slot, disable_warning = FALSE)
- . = ..()
-
- if(equipping_mob.back)
- to_chat(equipping_mob, SPAN_WARNING("You can't equip [src] while wearing a backpack."))
- return FALSE
-
-/obj/item/clothing/suit/storage/marine/smartgunner/equipped(mob/user, slot, silent)
- . = ..()
-
- if(slot == WEAR_JACKET)
- RegisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP, PROC_REF(check_equipping))
-
-/obj/item/clothing/suit/storage/marine/smartgunner/proc/check_equipping(mob/living/carbon/human/equipping_human, obj/item/equipping_item, slot)
- SIGNAL_HANDLER
-
- if(slot != WEAR_BACK)
- return
-
- . = COMPONENT_HUMAN_CANCEL_ATTEMPT_EQUIP
-
- if(equipping_item.flags_equip_slot == SLOT_BACK)
- to_chat(equipping_human, SPAN_WARNING("You can't equip [equipping_item] on your back while wearing [src]."))
- return
-
-/obj/item/clothing/suit/storage/marine/smartgunner/unequipped(mob/user, slot)
- . = ..()
-
- UnregisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP)
-
-/obj/item/clothing/suit/storage/marine/medium/leader
- name = "\improper B12 pattern marine armor"
- desc = "A lightweight suit of carbon fiber body armor built for quick movement. Designed in a lovely forest green. Use it to toggle the built-in flashlight."
- icon_state = "7"
- armor_variation = 0
- armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
- specialty = "B12 pattern marine"
- light_range = 5
-
-/obj/item/clothing/suit/storage/marine/tanker
- name = "\improper M3 pattern tanker armor"
- desc = "A modified and refashioned suit of M3 Pattern armor designed to be worn by the loader of a USCM vehicle crew. While the suit is a bit more encumbering to wear with the crewman uniform, it offers the loader a degree of protection that would otherwise not be enjoyed."
- icon_state = "tanker"
- uniform_restricted = list(/obj/item/clothing/under/marine/officer/tanker)
- specialty = "M3 pattern tanker"
- storage_slots = 2
-
-//===========================//PFC ARMOR CLASSES\\================================\\
-//=================================================================================\\
-
-/obj/item/clothing/suit/storage/marine/medium
- armor_variation = 6
- light_power = 4
-
-/obj/item/clothing/suit/storage/marine/medium/padded
- name = "M3 pattern padded marine armor"
- icon_state = "1"
- armor_variation = 0
- specialty = "M3 pattern padded marine"
-
-/obj/item/clothing/suit/storage/marine/medium/padless
- name = "M3 pattern padless marine armor"
- icon_state = "2"
- armor_variation = 0
- specialty = "M3 pattern padless marine"
-
-/obj/item/clothing/suit/storage/marine/medium/padless_lines
- name = "M3 pattern ridged marine armor"
- icon_state = "3"
- armor_variation = 0
- specialty = "M3 pattern ridged marine"
-
-/obj/item/clothing/suit/storage/marine/medium/carrier
- name = "M3 pattern carrier marine armor"
- icon_state = "4"
- armor_variation = 0
- specialty = "M3 pattern carrier marine"
-
-/obj/item/clothing/suit/storage/marine/medium/skull
- name = "M3 pattern skull marine armor"
- icon_state = "5"
- armor_variation = 0
- specialty = "M3 pattern skull marine"
-
-/obj/item/clothing/suit/storage/marine/medium/smooth
- name = "M3 pattern smooth marine armor"
- icon_state = "6"
- armor_variation = 0
- specialty = "M3 pattern smooth marine"
-
-/obj/item/clothing/suit/storage/marine/light
- name = "\improper M3-L pattern light armor"
- desc = "A lighter, cut down version of the standard M3 pattern armor. It sacrifices durability for more speed."
- specialty = "\improper M3-L pattern light"
- icon_state = "L1"
- armor_variation = 6
- slowdown = SLOWDOWN_ARMOR_LIGHT
- armor_melee = CLOTHING_ARMOR_MEDIUMLOW
- armor_bullet = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_bio = CLOTHING_ARMOR_MEDIUMLOW
- armor_rad = CLOTHING_ARMOR_MEDIUMHIGH
- armor_internaldamage = CLOTHING_ARMOR_LOW
- storage_slots = 2
-
-/obj/item/clothing/suit/storage/marine/light/padded
- icon_state = "L1"
- armor_variation = 0
-
-/obj/item/clothing/suit/storage/marine/light/padless
- icon_state = "L2"
- armor_variation = 0
-
-/obj/item/clothing/suit/storage/marine/light/padless_lines
- icon_state = "L3"
- armor_variation = 0
-
-/obj/item/clothing/suit/storage/marine/light/carrier
- icon_state = "L4"
- armor_variation = 0
-
-/obj/item/clothing/suit/storage/marine/light/skull
- icon_state = "L5"
- armor_variation = 0
-
-/obj/item/clothing/suit/storage/marine/light/smooth
- icon_state = "L6"
- armor_variation = 0
-
-/obj/item/clothing/suit/storage/marine/light/vest
- name = "\improper M3-VL pattern ballistics vest"
- desc = "Up until 2182 USCM non-combat personnel were issued non-standardized ballistics vests, though the lack of IMP compatibility and suit lamps proved time and time again inefficient. This modified M3-L shell is the result of a 6-year R&D program; It provides utility, protection, AND comfort to all USCM non-combat personnel."
- icon_state = "VL"
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
- flags_marine_armor = ARMOR_LAMP_OVERLAY //No squad colors when wearing this since it'd look funny.
- armor_melee = CLOTHING_ARMOR_MEDIUMLOW
- armor_bullet = CLOTHING_ARMOR_HIGH
- armor_energy = CLOTHING_ARMOR_LOW
- armor_bomb = CLOTHING_ARMOR_LOW
- armor_bio = CLOTHING_ARMOR_VERYLOW
- armor_rad = CLOTHING_ARMOR_NONE
- armor_internaldamage = CLOTHING_ARMOR_MEDIUM
- storage_slots = 1
- time_to_unequip = 0.5 SECONDS
- time_to_equip = 1 SECONDS
- siemens_coefficient = 0.7
- uniform_restricted = null
-
-/obj/item/clothing/suit/storage/marine/light/vest/dcc
- name = "\improper M3-VL pattern flak vest"
- desc = "A combination of the standard non-combat M3-VL ballistics vest and M70 flak jacket, this piece of armor has been distributed to dropship crew to keep them safe from threats external and internal..."
- icon_state = "VL_FLAK"
- storage_slots = 2
-
-/obj/item/clothing/suit/storage/marine/light/synvest
- name = "\improper M3A1 Synthetic Utility Vest"
- desc = "This variant of the ubiquitous M3 pattern ballistics vest has been extensively modified, providing no protection in exchange for maximum mobility and storage space. Synthetic programming compliant."
- icon_state = "VL_syn_camo"
- flags_atom = NO_NAME_OVERRIDE
- flags_marine_armor = ARMOR_LAMP_OVERLAY|SYNTH_ALLOWED //No squad colors + can be worn by synths.
- armor_melee = CLOTHING_ARMOR_NONE
- armor_bullet = CLOTHING_ARMOR_NONE
- armor_laser = CLOTHING_ARMOR_NONE
- armor_energy = CLOTHING_ARMOR_NONE
- armor_bomb = CLOTHING_ARMOR_NONE
- armor_bio = CLOTHING_ARMOR_NONE
- armor_rad = CLOTHING_ARMOR_NONE
- armor_internaldamage = CLOTHING_ARMOR_NONE
- storage_slots = 3
- slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
- time_to_unequip = 0.5 SECONDS
- time_to_equip = 1 SECONDS
- uniform_restricted = null
-
-/obj/item/clothing/suit/storage/marine/light/synvest/grey
- icon_state = "VL_syn"
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
-
-/obj/item/clothing/suit/storage/marine/light/synvest/jungle
- icon_state = "VL_syn_camo"
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
-
-/obj/item/clothing/suit/storage/marine/light/synvest/snow
- icon_state = "s_VL_syn_camo"
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
-
-/obj/item/clothing/suit/storage/marine/light/synvest/desert
- icon_state = "d_VL_syn_camo"
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
-
-/obj/item/clothing/suit/storage/marine/light/synvest/dgrey
- icon_state = "c_VL_syn_camo"
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
-
-/obj/item/clothing/suit/storage/marine/heavy
- name = "\improper M3-EOD pattern heavy armor"
- desc = "A heavier version of the standard M3 pattern armor, the armor is primarily designed to withstand ballistic, explosive, and internal damage, with the drawback of increased bulk and thus reduced movement speed, alongside little additional protection from standard blunt force impacts and biological threats."
- desc_lore = "This configuration of the iconic armor was developed during the Canton War in 2160 between the UPP and USCM - Designed in response to a need for higher protection for ComTechs assigned as EODs during the conflict, this is the pinnacle of protection for your average marine. The shoulders and kneepads have both been expanded upon heavily, covering up the arteries on each limb. A special spall liner was developed for this suit, with the same technology being used in the M70 Flak Jacket being developed at the same time."
- specialty = "\improper M3-EOD pattern"
- icon_state = "H1"
- armor_variation = 6
- armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bullet = CLOTHING_ARMOR_HIGHPLUS
- armor_bomb = CLOTHING_ARMOR_HIGHPLUS
- armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
- armor_rad = CLOTHING_ARMOR_MEDIUM
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
- storage_slots = 2
- slowdown = SLOWDOWN_ARMOR_LOWHEAVY
- movement_compensation = SLOWDOWN_ARMOR_MEDIUM
- light_power = 4
- light_range = 5
-
-/obj/item/clothing/suit/storage/marine/heavy/padded
- icon_state = "H1"
- armor_variation = 0
-
-/obj/item/clothing/suit/storage/marine/heavy/padless
- icon_state = "H2"
- armor_variation = 0
-
-/obj/item/clothing/suit/storage/marine/heavy/padless_lines
- icon_state = "H3"
- armor_variation = 0
-
-/obj/item/clothing/suit/storage/marine/heavy/carrier
- icon_state = "H4"
- armor_variation = 0
-
-/obj/item/clothing/suit/storage/marine/heavy/skull
- icon_state = "H5"
- armor_variation = 0
-
-/obj/item/clothing/suit/storage/marine/heavy/smooth
- icon_state = "H6"
- armor_variation = 0
-
-//===========================//SPECIALIST\\================================\\
-//=======================================================================\\
-
-/obj/item/clothing/suit/storage/marine/specialist
- name = "\improper B18 defensive armor"
- desc = "A heavy, rugged set of armor plates for when you really, really need to not die horribly. Slows you down though.\nComes with two tricord injectors in each arm guard."
- icon_state = "xarmor"
- armor_melee = CLOTHING_ARMOR_HIGH
- armor_bullet = CLOTHING_ARMOR_HIGH
- armor_bomb = CLOTHING_ARMOR_VERYHIGH
- armor_bio = CLOTHING_ARMOR_MEDIUMLOW
- armor_rad = CLOTHING_ARMOR_MEDIUMHIGH
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
- storage_slots = 2
- flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
- flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
- flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
- slowdown = SLOWDOWN_ARMOR_HEAVY
- specialty = "B18 defensive"
- unacidable = TRUE
- var/injections = 4
-
-/obj/item/clothing/suit/storage/marine/specialist/verb/inject()
- set name = "Create Injector"
- set category = "Object"
- set src in usr
-
- if(usr.is_mob_incapacitated())
- return 0
-
- if(!injections)
- to_chat(usr, "Your armor is all out of injectors.")
- return 0
-
- if(usr.get_active_hand())
- to_chat(usr, "Your active hand must be empty.")
- return 0
-
- to_chat(usr, "You feel a faint hiss and an injector drops into your hand.")
- var/obj/item/reagent_container/hypospray/autoinjector/skillless/O = new(usr)
- usr.put_in_active_hand(O)
- injections--
- playsound(src,'sound/machines/click.ogg', 15, 1)
- return
-
-/obj/item/clothing/suit/storage/marine/M3G
- name = "\improper M3-G4 grenadier armor"
- desc = "A custom set of M3 armor packed to the brim with padding, plating, and every form of ballistic protection under the sun. Used exclusively by USCM Grenadiers."
- icon_state = "grenadier"
- armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bomb = CLOTHING_ARMOR_VERYHIGH
- armor_bio = CLOTHING_ARMOR_MEDIUMLOW
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
- flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN
- flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
- flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
- flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
- slowdown = SLOWDOWN_ARMOR_HEAVY
- specialty = "M3-G4 grenadier"
- unacidable = TRUE
-
-/obj/item/clothing/suit/storage/marine/M3T
- name = "\improper M3-T light armor"
- desc = "A custom set of M3 armor designed for users of long-ranged explosive weaponry."
- icon_state = "demolitionist"
- armor_bomb = CLOTHING_ARMOR_HIGH
- slowdown = SLOWDOWN_ARMOR_LIGHT
- specialty = "M3-T light"
- flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE
- unacidable = TRUE
-
-/obj/item/clothing/suit/storage/marine/M3S
- name = "\improper M3-S light armor"
- desc = "A custom set of M3 armor designed for USCM Scouts."
- icon_state = "scout_armor"
- armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
- slowdown = SLOWDOWN_ARMOR_LIGHT
- specialty = "M3-S light"
- flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE
- unacidable = TRUE
-
-#define FIRE_SHIELD_CD 150
-
-/obj/item/clothing/suit/storage/marine/M35
- name = "\improper M35 pyrotechnician armor"
- desc = "A custom set of M35 armor designed for use by USCM Pyrotechnicians."
- icon_state = "pyro_armor"
- armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
- fire_intensity_resistance = BURN_LEVEL_TIER_1
- max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROT
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
- flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
- flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
- flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE
- specialty = "M35 pyrotechnician"
- actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/fire_shield)
- unacidable = TRUE
- var/fire_shield_on = FALSE
- var/can_activate = TRUE
-
-/obj/item/clothing/suit/storage/marine/M35/equipped(mob/user, slot)
- if(slot == WEAR_JACKET)
- RegisterSignal(user, COMSIG_LIVING_FLAMER_CROSSED, PROC_REF(flamer_fire_callback))
- ..()
-
-/obj/item/clothing/suit/storage/marine/M35/verb/fire_shield()
- set name = "Activate Fire Shield"
- set desc = "Activate your armor's FIREWALK protocol for a short duration."
- set category = "Pyro"
- set src in usr
- if(!usr || usr.is_mob_incapacitated(TRUE))
- return
- if(!ishuman(usr))
- return
- var/mob/living/carbon/human/H = usr
-
- if(H.wear_suit != src)
- to_chat(H, SPAN_WARNING("You must be wearing the M35 pyro armor to activate FIREWALK protocol!"))
- return
-
- if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_PYRO)
- to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]..."))
- return
-
- if(fire_shield_on)
- to_chat(H, SPAN_WARNING("You already have FIREWALK protocol activated!"))
- return
-
- if(!can_activate)
- to_chat(H, SPAN_WARNING("FIREWALK protocol was recently activated, wait before trying to activate it again."))
- return
-
- to_chat(H, SPAN_NOTICE("FIREWALK protocol has been activated. You will now be immune to fire for 6 seconds!"))
- RegisterSignal(H, COMSIG_LIVING_PREIGNITION, PROC_REF(fire_shield_is_on))
- RegisterSignal(H, list(
- COMSIG_LIVING_FLAMER_FLAMED,
- ), PROC_REF(flamer_fire_callback))
- fire_shield_on = TRUE
- can_activate = FALSE
- for(var/X in actions)
- var/datum/action/A = X
- A.update_button_icon()
- addtimer(CALLBACK(src, PROC_REF(end_fire_shield), H), 6 SECONDS)
-
- H.add_filter("firewalk_on", 1, list("type" = "outline", "color" = "#03fcc6", "size" = 1))
-
-/obj/item/clothing/suit/storage/marine/M35/proc/end_fire_shield(mob/living/carbon/human/user)
- if(!istype(user))
- return
- to_chat(user, SPAN_NOTICE("FIREWALK protocol has finished."))
- UnregisterSignal(user, list(
- COMSIG_LIVING_PREIGNITION,
- COMSIG_LIVING_FLAMER_FLAMED,
- ))
- fire_shield_on = FALSE
-
- user.remove_filter("firewalk_on")
-
- addtimer(CALLBACK(src, PROC_REF(enable_fire_shield), user), FIRE_SHIELD_CD)
-
-/obj/item/clothing/suit/storage/marine/M35/proc/enable_fire_shield(mob/living/carbon/human/user)
- if(!istype(user))
- return
- to_chat(user, SPAN_NOTICE("FIREWALK protocol can be activated again."))
- can_activate = TRUE
-
- for(var/X in actions)
- var/datum/action/A = X
- A.update_button_icon()
-
-/// This proc is solely so that IgniteMob() fails
-/obj/item/clothing/suit/storage/marine/M35/proc/fire_shield_is_on(mob/living/L)
- SIGNAL_HANDLER
-
- if(L.fire_reagent?.fire_penetrating)
- return
-
- return COMPONENT_CANCEL_IGNITION
-
-/obj/item/clothing/suit/storage/marine/M35/proc/flamer_fire_callback(mob/living/L, datum/reagent/R)
- SIGNAL_HANDLER
-
- if(R.fire_penetrating)
- return
-
- . = COMPONENT_NO_IGNITE
- if(fire_shield_on)
- . |= COMPONENT_NO_BURN
-
-/obj/item/clothing/suit/storage/marine/M35/dropped(mob/user)
- if (!istype(user))
- return
- UnregisterSignal(user, list(
- COMSIG_LIVING_PREIGNITION,
- COMSIG_LIVING_FLAMER_CROSSED,
- COMSIG_LIVING_FLAMER_FLAMED,
- ))
- ..()
-
-#undef FIRE_SHIELD_CD
-
-/datum/action/item_action/specialist/fire_shield
- ability_primacy = SPEC_PRIMARY_ACTION_2
-
-/datum/action/item_action/specialist/fire_shield/New(mob/living/user, obj/item/holder)
- ..()
- name = "Activate Fire Shield"
- button.name = name
- button.overlays.Cut()
- var/image/IMG = image('icons/obj/items/clothing/cm_suits.dmi', button, "pyro_armor")
- button.overlays += IMG
-
-/datum/action/item_action/specialist/fire_shield/action_cooldown_check()
- var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item
- if (!istype(armor))
- return FALSE
-
- return !armor.can_activate
-
-/datum/action/item_action/specialist/fire_shield/can_use_action()
- var/mob/living/carbon/human/H = owner
- if(istype(H) && !H.is_mob_incapacitated() && H.wear_suit == holder_item)
- return TRUE
-
-/datum/action/item_action/specialist/fire_shield/action_activate()
- var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item
- if (!istype(armor))
- return
-
- armor.fire_shield()
-
-#define FULL_CAMOUFLAGE_ALPHA 15
-
-/obj/item/clothing/suit/storage/marine/ghillie
- name = "\improper M45 pattern ghillie armor"
- desc = "A lightweight ghillie camouflage suit, used by USCM snipers on recon missions. Very lightweight, but doesn't protect much."
- icon_state = "ghillie_armor"
- armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
- slowdown = SLOWDOWN_ARMOR_LIGHT
- flags_marine_armor = ARMOR_LAMP_OVERLAY
- flags_item = MOB_LOCK_ON_EQUIP
- specialty = "M45 pattern ghillie"
- valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO)
- restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND)
-
- var/camo_active = FALSE
- var/hide_in_progress = FALSE
- var/full_camo_alpha = FULL_CAMOUFLAGE_ALPHA
- var/incremental_shooting_camo_penalty = 35
- var/current_camo = FULL_CAMOUFLAGE_ALPHA
- var/camouflage_break = 5 SECONDS
- var/camouflage_enter_delay = 4 SECONDS
- var/can_camo = TRUE
-
- actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/prepare_position)
-
-/obj/item/clothing/suit/storage/marine/ghillie/dropped(mob/user)
- if(ishuman(user) && !issynth(user))
- deactivate_camouflage(user, FALSE)
-
- . = ..()
-
-/obj/item/clothing/suit/storage/marine/ghillie/verb/camouflage()
- set name = "Prepare Position"
- set desc = "Use the ghillie suit and the nearby environment to become near invisible."
- set category = "Object"
- set src in usr
- if(!usr || usr.is_mob_incapacitated(TRUE))
- return
-
- if(!ishuman(usr) || hide_in_progress || !can_camo)
- return
- var/mob/living/carbon/human/H = usr
- if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SNIPER && !(GLOB.character_traits[/datum/character_trait/skills/spotter] in H.traits))
- to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]..."))
- return
- if(H.wear_suit != src)
- to_chat(H, SPAN_WARNING("You must be wearing the ghillie suit to activate it!"))
- return
-
- if(camo_active)
- deactivate_camouflage(H)
- return
-
- H.visible_message(SPAN_DANGER("[H] goes prone, and begins adjusting \his ghillie suit!"), SPAN_NOTICE("You go prone, and begins adjusting your ghillie suit."), max_distance = 4)
- hide_in_progress = TRUE
- H.unset_interaction() // If we're sticking to a machine gun or what not.
- if(!do_after(H, camouflage_enter_delay, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
- hide_in_progress = FALSE
- return
- hide_in_progress = FALSE
- RegisterSignal(H, list(
- COMSIG_MOB_FIRED_GUN,
- COMSIG_MOB_FIRED_GUN_ATTACHMENT)
- , PROC_REF(fade_in))
- RegisterSignal(H, list(
- COMSIG_MOB_DEATH,
- COMSIG_HUMAN_EXTINGUISH
- ), PROC_REF(deactivate_camouflage))
- camo_active = TRUE
- H.alpha = full_camo_alpha
- H.FF_hit_evade = 1000
- ADD_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT)
-
- RegisterSignal(H, COMSIG_MOB_MOVE_OR_LOOK, PROC_REF(handle_mob_move_or_look))
-
- var/datum/mob_hud/security/advanced/SA = GLOB.huds[MOB_HUD_SECURITY_ADVANCED]
- SA.remove_from_hud(H)
- var/datum/mob_hud/xeno_infection/XI = GLOB.huds[MOB_HUD_XENO_INFECTION]
- XI.remove_from_hud(H)
-
- anim(H.loc, H, 'icons/mob/mob.dmi', null, "cloak", null, H.dir)
-
-
-/obj/item/clothing/suit/storage/marine/ghillie/proc/deactivate_camouflage(mob/user)
- SIGNAL_HANDLER
- var/mob/living/carbon/human/H = user
- if(!istype(H))
- return FALSE
-
- if(!camo_active)
- return
-
- UnregisterSignal(H, list(
- COMSIG_MOB_FIRED_GUN,
- COMSIG_MOB_FIRED_GUN_ATTACHMENT,
- COMSIG_MOB_DEATH,
- COMSIG_HUMAN_EXTINGUISH,
- COMSIG_MOB_MOVE_OR_LOOK
- ))
-
- camo_active = FALSE
- animate(H, alpha = initial(H.alpha), flags = ANIMATION_END_NOW)
- H.FF_hit_evade = initial(H.FF_hit_evade)
- REMOVE_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT)
-
- var/datum/mob_hud/security/advanced/SA = GLOB.huds[MOB_HUD_SECURITY_ADVANCED]
- SA.add_to_hud(H)
- var/datum/mob_hud/xeno_infection/XI = GLOB.huds[MOB_HUD_XENO_INFECTION]
- XI.add_to_hud(H)
-
- H.visible_message(SPAN_DANGER("[H]'s camouflage fails!"), SPAN_WARNING("Your camouflage fails!"), max_distance = 4)
-
-/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_in(mob/user)
- SIGNAL_HANDLER
- var/mob/living/carbon/human/H = user
- if(camo_active)
- if(current_camo < full_camo_alpha)
- current_camo = full_camo_alpha
- current_camo = clamp(current_camo + incremental_shooting_camo_penalty, full_camo_alpha, 255)
- H.alpha = current_camo
- addtimer(CALLBACK(src, PROC_REF(fade_out_finish), H), camouflage_break, TIMER_OVERRIDE|TIMER_UNIQUE)
- animate(H, alpha = full_camo_alpha + 5, time = camouflage_break, easing = LINEAR_EASING, flags = ANIMATION_END_NOW)
-
-/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_out_finish(mob/living/carbon/human/H)
- if(camo_active && H.wear_suit == src)
- to_chat(H, SPAN_BOLDNOTICE("The smoke clears and your position is once again hidden completely!"))
- animate(H, alpha = full_camo_alpha)
- current_camo = full_camo_alpha
-
-/obj/item/clothing/suit/storage/marine/ghillie/proc/handle_mob_move_or_look(mob/living/mover, actually_moving, direction, specific_direction)
- SIGNAL_HANDLER
-
- if(camo_active && actually_moving)
- deactivate_camouflage(mover)
-
-/datum/action/item_action/specialist/prepare_position
- ability_primacy = SPEC_PRIMARY_ACTION_1
-
-/datum/action/item_action/specialist/prepare_position/New(mob/living/user, obj/item/holder)
- ..()
- name = "Prepare Position"
- button.name = name
- button.overlays.Cut()
- var/image/IMG = image('icons/mob/hud/actions.dmi', button, "prepare_position")
- button.overlays += IMG
-
-/datum/action/item_action/specialist/prepare_position/can_use_action()
- var/mob/living/carbon/human/H = owner
- if(istype(H) && !H.is_mob_incapacitated() && H.body_position == STANDING_UP && holder_item == H.wear_suit)
- return TRUE
-
-/datum/action/item_action/specialist/prepare_position/action_activate()
- var/obj/item/clothing/suit/storage/marine/ghillie/GS = holder_item
- GS.camouflage()
-
-#undef FULL_CAMOUFLAGE_ALPHA
-
-/obj/item/clothing/suit/storage/marine/ghillie/forecon
- name = "UDEP Thermal Poncho"
- desc = "UDEP or the Ultra Diffusive Environmental Poncho is a camouflaged rain-cover worn to protect against the elements and chemical spills. It's commonly treated with an infrared absorbing coating, making a marine almost invisible in the rain. Favoured by USCM specialists for it's comfort and practicality."
- icon_state = "mercenary_miner_armor"
- flags_atom = MOB_LOCK_ON_EQUIP|NO_SNOW_TYPE|NO_NAME_OVERRIDE
-
-/obj/item/clothing/suit/storage/marine/sof
- name = "\improper SOF Armor"
- desc = "A heavily customized suit of M3 armor. Used by Marine Raiders."
- icon_state = "marsoc"
- armor_melee = CLOTHING_ARMOR_HIGH
- armor_bullet = CLOTHING_ARMOR_HIGH
- armor_bomb = CLOTHING_ARMOR_VERYHIGH
- armor_bio = CLOTHING_ARMOR_MEDIUMLOW
- armor_rad = CLOTHING_ARMOR_MEDIUMHIGH
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
- slowdown = SLOWDOWN_ARMOR_LIGHT
- unacidable = TRUE
- flags_atom = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE|NO_SNOW_TYPE
- storage_slots = 4
-
-//=============================//pmcS\\==================================\\
-//=======================================================================\\
-
-/obj/item/clothing/suit/storage/marine/veteran
- flags_marine_armor = ARMOR_LAMP_OVERLAY
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE //Let's make these keep their name and icon.
-
-/obj/item/clothing/suit/storage/marine/veteran/pmc
- name = "\improper M4 pattern PMC armor"
- desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind."
- icon_state = "pmc_armor"
- armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUM
- storage_slots = 2
- slowdown = SLOWDOWN_ARMOR_LIGHT
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
- allowed = list(
- /obj/item/weapon/gun,
- /obj/item/tank/emergency_oxygen,
- /obj/item/device/flashlight,
- /obj/item/ammo_magazine/,
- /obj/item/weapon/baton,
- /obj/item/handcuffs,
- /obj/item/storage/fancy/cigarettes,
- /obj/item/tool/lighter,
- /obj/item/explosive/grenade,
- /obj/item/storage/bible,
- /obj/item/tool/crowbar,
- /obj/item/storage/large_holster/katana,
- /obj/item/storage/large_holster/machete,
- /obj/item/weapon/sword/machete,
- /obj/item/attachable/bayonet,
- /obj/item/device/motiondetector,
- /obj/item/tool/crew_monitor,
- /obj/item/device/walkman,
- )
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc)
- item_state_slots = list(WEAR_JACKET = "pmc_armor")
-
-/obj/item/clothing/suit/storage/marine/veteran/pmc/light
- name = "\improper M4 pattern light PMC armor"
- desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. Has some armor plating removed for extra mobility."
- icon_state = "pmc_sniper"
- armor_melee = CLOTHING_ARMOR_MEDIUMLOW
- armor_bullet = CLOTHING_ARMOR_MEDIUM
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_MEDIUMLOW
- armor_rad = CLOTHING_ARMOR_MEDIUM
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW
- slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
- item_state_slots = list(WEAR_JACKET = "pmc_sniper")
-
-/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate
- name = "\improper M1 pattern corporate security armor"
- desc = "A basic vest with a Weyland-Yutani badge on the right breast. This is commonly worn by low-level guards protecting Weyland-Yutani facilities."
- icon = 'icons/mob/humans/onmob/contained/wy_goons.dmi'
- icon_state = "armor"
- item_state = "armor"
- item_state_slots = null
- contained_sprite = TRUE
-
- flags_armor_protection = BODY_FLAG_CHEST
- flags_cold_protection = BODY_FLAG_CHEST
- flags_heat_protection = BODY_FLAG_CHEST
-
- slowdown = SLOWDOWN_ARMOR_NONE // only protects chest, but enables rapid movement
-
-/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate/lead
- desc = "A basic vest with a Weyland-Yutani badge on the right breast. This variant is worn by low-level guards that have elevated in rank due to 'good conduct in the field', also known as corporate bootlicking."
- icon_state = "lead_armor"
- item_state = "lead_armor"
-
-/obj/item/clothing/suit/storage/marine/veteran/pmc/leader
- name = "\improper M4 pattern PMC leader armor"
- desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. This particular suit looks like it belongs to a high-ranking officer."
- icon_state = "officer_armor"
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/leader)
- item_state_slots = list(WEAR_JACKET = "officer_armor")
-
-/obj/item/clothing/suit/storage/marine/veteran/pmc/sniper
- name = "\improper M4 pattern PMC sniper armor"
- icon_state = "pmc_sniper"
- armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUM
- armor_internaldamage = CLOTHING_ARMOR_MEDIUM
- flags_inv_hide = HIDELOWHAIR
- item_state_slots = list(WEAR_JACKET = "pmc_sniper")
-
-/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth
- name = "\improper M4 Synthetic PMC armor"
- desc = "A serious modification of the standard Armat Systems M3 armor. This variant was designed for PMC Support Units in the field, with every armor insert removed. It's designed with the idea of a high speed lifesaver in mind."
- time_to_unequip = 0.5 SECONDS
- time_to_equip = 1 SECONDS
- armor_melee = CLOTHING_ARMOR_NONE
- armor_bullet = CLOTHING_ARMOR_NONE
- armor_laser = CLOTHING_ARMOR_NONE
- armor_energy = CLOTHING_ARMOR_NONE
- armor_bomb = CLOTHING_ARMOR_NONE
- armor_bio = CLOTHING_ARMOR_NONE
- armor_rad = CLOTHING_ARMOR_NONE
- armor_internaldamage = CLOTHING_ARMOR_NONE
- storage_slots = 3
- slowdown = SLOWDOWN_ARMOR_SUPER_LIGHT
-
-/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth/Initialize()
- flags_atom |= NO_NAME_OVERRIDE
- flags_marine_armor |= SYNTH_ALLOWED
- return ..()
-
-/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc
- name = "\improper PMC gunner armor"
- desc = "A modification of the standard Armat Systems M3 armor. Hooked up with harnesses and straps allowing the user to carry an M56 Smartgun."
- icon_state = "heavy_armor"
- flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
- armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
- armor_laser = CLOTHING_ARMOR_MEDIUMLOW
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUM
- item_state_slots = list(WEAR_JACKET = "heavy_armor")
-
-/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc/terminator
- name = "\improper M5Xg exoskeleton gunner armor"
- desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk. This variant is designed to support a M56 Smartgun."
- icon_state = "commando_armor"
- slowdown = SLOWDOWN_ARMOR_MEDIUM
- movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY
- armor_melee = CLOTHING_ARMOR_HIGH
- armor_bullet = CLOTHING_ARMOR_ULTRAHIGH
- armor_laser = CLOTHING_ARMOR_MEDIUM
- armor_energy = CLOTHING_ARMOR_MEDIUM
- armor_bomb = CLOTHING_ARMOR_VERYHIGH
- armor_rad = CLOTHING_ARMOR_MEDIUMHIGH
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando)
- item_state_slots = list(WEAR_JACKET = "commando_armor")
- unacidable = TRUE
-
-/obj/item/clothing/suit/storage/marine/veteran/pmc/commando
- name = "\improper M5X exoskeleton armor"
- desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk."
- icon_state = "commando_armor"
- slowdown = SLOWDOWN_ARMOR_MEDIUM
- movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY
- armor_melee = CLOTHING_ARMOR_VERYHIGH
- armor_bullet = CLOTHING_ARMOR_ULTRAHIGH
- armor_energy = CLOTHING_ARMOR_MEDIUM
- armor_bomb = CLOTHING_ARMOR_VERYHIGH
- armor_rad = CLOTHING_ARMOR_MEDIUMHIGH
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
- flags_inventory = BLOCK_KNOCKDOWN
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando)
- item_state_slots = list(WEAR_JACKET = "commando_armor")
- unacidable = TRUE
-
-//===========================//DISTRESS\\================================\\
-//=======================================================================\\
-
-/obj/item/clothing/suit/storage/marine/veteran/bear
- name = "\improper H1 Iron Bears vest"
- desc = "A protective vest worn by Iron Bears mercenaries."
- icon_state = "bear_armor"
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUM
- storage_slots = 2
- slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/bear)
-
-/obj/item/clothing/suit/storage/marine/veteran/dutch
- name = "\improper D2 armored vest"
- desc = "A protective vest worn by some seriously experienced mercs."
- icon_state = "dutch_armor"
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS //Makes no sense but they need leg/arm armor too.
- armor_melee = CLOTHING_ARMOR_HIGH
- armor_bullet = CLOTHING_ARMOR_HIGHPLUS
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_HIGH
- armor_rad = CLOTHING_ARMOR_MEDIUM
- storage_slots = 2
- light_range = 7
- slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/dutch)
-
-/obj/item/clothing/suit/storage/marine/veteran/van_bandolier
- name = "safari jacket"
- desc = "A tailored hunting jacket, cunningly lined with segmented armor plates. Sometimes the game shoots back."
- icon_state = "van_bandolier"
- item_state = "van_bandolier_jacket"
- blood_overlay_type = "coat"
- flags_marine_armor = NO_FLAGS //No shoulder light.
- actions_types = list()
- slowdown = SLOWDOWN_ARMOR_LIGHT
- storage_slots = 2
- movement_compensation = SLOWDOWN_ARMOR_LIGHT
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/van_bandolier)
- allowed = list(
- /obj/item/weapon/gun,
- /obj/item/tank/emergency_oxygen,
- /obj/item/device/flashlight,
- /obj/item/storage/fancy/cigarettes,
- /obj/item/tool/lighter,
- /obj/item/storage/bible,
- /obj/item/attachable/bayonet,
- /obj/item/storage/backpack/general_belt,
- /obj/item/storage/large_holster/machete,
- /obj/item/storage/belt/gun/m4a3,
- /obj/item/storage/belt/gun/m44,
- /obj/item/storage/belt/gun/smartpistol,
- /obj/item/storage/belt/gun/flaregun,
- /obj/item/device/motiondetector,
- /obj/item/device/walkman,
- /obj/item/storage/belt/shotgun/van_bandolier,
- )
-
-//===========================//U.P.P\\================================\\
-//=====================================================================\\
-
-/obj/item/clothing/suit/storage/marine/faction
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
- flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
- flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
- min_cold_protection_temperature = HELMET_MIN_COLD_PROT
- max_heat_protection_temperature = HELMET_MAX_HEAT_PROT
- blood_overlay_type = "armor"
- armor_melee = CLOTHING_ARMOR_MEDIUM
- armor_bullet = CLOTHING_ARMOR_MEDIUM
- armor_laser = CLOTHING_ARMOR_MEDIUMLOW
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_bio = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUM
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
- slowdown = SLOWDOWN_ARMOR_MEDIUM
- movement_compensation = SLOWDOWN_ARMOR_LIGHT
-
-
-/obj/item/clothing/suit/storage/marine/faction/UPP
- name = "\improper UM5 personal armor"
- desc = "Standard body armor of the UPP military, the UM5 (Union Medium MK5) is a medium body armor, roughly on par with the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. Unlike the M3, however, the plate has a heavier neckplate. This has earned many UA members to refer to UPP soldiers as 'tin men'."
- icon_state = "upp_armor"
- armor_bullet = CLOTHING_ARMOR_HIGH
- armor_energy = CLOTHING_ARMOR_MEDIUM
- armor_bio = CLOTHING_ARMOR_MEDIUMLOW
- armor_rad = CLOTHING_ARMOR_MEDIUMLOW
- armor_internaldamage = CLOTHING_ARMOR_HIGH
- storage_slots = 1
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP, /obj/item/clothing/under/marine/veteran/UPP/medic, /obj/item/clothing/under/marine/veteran/UPP/engi)
-
-/obj/item/clothing/suit/storage/marine/faction/UPP/support
- name = "\improper UL6 personal armor"
- desc = "Standard body armor of the UPP military, the UL6 (Union Light MK6) is a light body armor, slightly weaker than the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. This set of personal armor lacks the iconic neck piece and some of the armor in favor of user mobility."
- storage_slots = 3
- icon_state = "upp_armor_support"
- slowdown = SLOWDOWN_ARMOR_LIGHT
- armor_melee = CLOTHING_ARMOR_HIGH
- armor_energy = CLOTHING_ARMOR_MEDIUM
- armor_bio = CLOTHING_ARMOR_MEDIUMLOW
- armor_rad = CLOTHING_ARMOR_MEDIUMLOW
- armor_internaldamage = CLOTHING_ARMOR_HIGH
-
-/obj/item/clothing/suit/storage/marine/faction/UPP/commando
- name = "\improper UM5CU personal armor"
- desc = "A modification of the UM5, designed for stealth operations."
- icon_state = "upp_armor_commando"
- storage_slots = 2
- slowdown = SLOWDOWN_ARMOR_LIGHT
-
-/obj/item/clothing/suit/storage/marine/faction/UPP/heavy
- name = "\improper UH7 heavy plated armor"
- desc = "An extremely heavy-duty set of body armor in service with the UPP military, the UH7 (Union Heavy MK7) is known for having powerful ballistic protection, alongside a noticeable neck guard, fortified in order to allow the wearer to endure the stresses of the bulky helmet."
- icon_state = "upp_armor_heavy"
- storage_slots = 3
- slowdown = SLOWDOWN_ARMOR_HEAVY
- flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN
- flags_armor_protection = BODY_FLAG_ALL_BUT_HEAD
- armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bullet = CLOTHING_ARMOR_HIGHPLUS
- armor_laser = CLOTHING_ARMOR_MEDIUMLOW
- armor_energy = CLOTHING_ARMOR_MEDIUM
- armor_bomb = CLOTHING_ARMOR_HIGH
- armor_bio = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUMLOW
- armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS
-
-/obj/item/clothing/suit/storage/marine/faction/UPP/heavy/Initialize()
- . = ..()
- pockets.bypass_w_limit = list(
- /obj/item/ammo_magazine/minigun,
- /obj/item/ammo_magazine/pkp,
- )
-
-/obj/item/clothing/suit/storage/marine/faction/UPP/officer
- name = "\improper UL4 officer jacket"
- desc = "A lightweight jacket, issued to officers of the UPP's military. Slightly protective from incoming damage, best off with proper armor however."
- icon_state = "upp_coat_officer"
- slowdown = SLOWDOWN_ARMOR_NONE
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS
- armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat
- armor_bullet = CLOTHING_ARMOR_LOW
- armor_energy = CLOTHING_ARMOR_LOW
- armor_bomb = CLOTHING_ARMOR_LOW
- armor_bio = CLOTHING_ARMOR_LOW
- armor_rad = CLOTHING_ARMOR_LOW
- armor_internaldamage = CLOTHING_ARMOR_LOW
- storage_slots = 3
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer)
-
-/obj/item/clothing/suit/storage/marine/faction/UPP/kapitan
- name = "\improper UL4 senior officer jacket"
- desc = "A lightweight jacket, issued to senior officers of the UPP's military. Made of high-quality materials, even going as far as having the ranks and insignia of the Kapitan and their Company emblazoned on the shoulders and front of the jacket. Slightly protective from incoming damage, best off with proper armor however."
- icon_state = "upp_coat_kapitan"
- slowdown = SLOWDOWN_ARMOR_NONE
- armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat
- armor_bullet = CLOTHING_ARMOR_LOW
- armor_energy = CLOTHING_ARMOR_LOW
- armor_bomb = CLOTHING_ARMOR_LOW
- armor_bio = CLOTHING_ARMOR_LOW
- armor_rad = CLOTHING_ARMOR_LOW
- armor_internaldamage = CLOTHING_ARMOR_LOW
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS
- storage_slots = 4
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer)
-
-/obj/item/clothing/suit/storage/marine/faction/UPP/mp
- name = "\improper UL4 camouflaged jacket"
- desc = "A lightweight jacket, issued to troops when they're not expected to engage in combat. Still studded to the brim with kevlar shards, though the synthread construction reduces its effectiveness."
- icon_state = "upp_coat_mp"
- slowdown = SLOWDOWN_ARMOR_NONE
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS
- armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat
- armor_bullet = CLOTHING_ARMOR_LOW
- armor_energy = CLOTHING_ARMOR_LOW
- armor_bomb = CLOTHING_ARMOR_LOW
- armor_bio = CLOTHING_ARMOR_LOW
- armor_rad = CLOTHING_ARMOR_LOW
- armor_internaldamage = CLOTHING_ARMOR_LOW
- storage_slots = 4
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP)
- valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL)
- restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND)
-
-/obj/item/clothing/suit/storage/marine/faction/UPP/jacket/ivan
- name = "\improper UH4 Camo Jacket"
- desc = "An experimental heavily armored variant of the UL4 given to only the most elite units... usually."
- slowdown = SLOWDOWN_ARMOR_MEDIUM
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS|BODY_FLAG_HANDS|BODY_FLAG_FEET
- armor_melee = CLOTHING_ARMOR_HIGH
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_HIGH
- armor_bio = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUM
- armor_internaldamage = CLOTHING_ARMOR_HIGH
- storage_slots = 2
-
-
-//===========================//FREELANCER\\================================\\
-//=====================================================================\\
-
-/obj/item/clothing/suit/storage/marine/faction/freelancer
- name = "freelancer cuirass"
- desc = "An armored protective chestplate scrapped together from various plates. It keeps up remarkably well, as the craftsmanship is solid, and the design mirrors such armors in the UPP and the USCM. The many skilled craftsmen in the freelancers ranks produce these vests at a rate about one a month."
- icon_state = "freelancer_armor"
- slowdown = SLOWDOWN_ARMOR_LIGHT
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS
- armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- storage_slots = 2
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/freelancer)
-
-//this one is for CLF
-/obj/item/clothing/suit/storage/militia
- name = "colonial militia hauberk"
- desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops."
- icon = 'icons/obj/items/clothing/cm_suits.dmi'
- icon_state = "rebel_armor"
- item_icons = list(
- WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi'
- )
- sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi')
- slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS
- movement_compensation = SLOWDOWN_ARMOR_MEDIUM
- armor_melee = CLOTHING_ARMOR_MEDIUM
- armor_bullet = CLOTHING_ARMOR_MEDIUMLOW
- armor_laser = CLOTHING_ARMOR_MEDIUMLOW
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_bio = CLOTHING_ARMOR_MEDIUMLOW
- armor_rad = CLOTHING_ARMOR_MEDIUM
- armor_internaldamage = CLOTHING_ARMOR_MEDIUM
- storage_slots = 2
- uniform_restricted = list(/obj/item/clothing/under/colonist)
- allowed = list(
- /obj/item/weapon/gun,
- /obj/item/tank/emergency_oxygen,
- /obj/item/device/flashlight,
- /obj/item/ammo_magazine,
- /obj/item/explosive/grenade,
- /obj/item/device/binoculars,
- /obj/item/attachable/bayonet,
- /obj/item/storage/backpack/general_belt,
- /obj/item/storage/large_holster/machete,
- /obj/item/weapon/baseballbat,
- /obj/item/weapon/baseballbat/metal,
- /obj/item/device/motiondetector,
- /obj/item/device/walkman,
- )
- flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS
- min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROT
- valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL)
-
-/obj/item/clothing/suit/storage/militia/Initialize()
- . = ..()
- pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines.
- pockets.bypass_w_limit = list(
- /obj/item/ammo_magazine/rifle,
- /obj/item/ammo_magazine/smg,
- /obj/item/ammo_magazine/sniper,
- )
- pockets.max_storage_space = 8
-
-/obj/item/clothing/suit/storage/militia/vest
- name = "colonial militia vest"
- desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant protects only the chest and abdomen."
- icon_state = "clf_2"
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
- flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
- slowdown = 0.2
- movement_compensation = SLOWDOWN_ARMOR_MEDIUM
-
-/obj/item/clothing/suit/storage/militia/brace
- name = "colonial militia brace"
- desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant has some of the chest pieces removed."
- icon_state = "clf_3"
- flags_armor_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
- flags_cold_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
- slowdown = 0.2
- movement_compensation = SLOWDOWN_ARMOR_MEDIUM
-
-/obj/item/clothing/suit/storage/militia/partial
- name = "colonial militia partial hauberk"
- desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This even lighter variant has some of the arm pieces removed."
- icon_state = "clf_4"
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS
- flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
- slowdown = 0.2
-
-/obj/item/clothing/suit/storage/militia/smartgun
- name = "colonial militia harness"
- desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This one has straps interweaved with the plates, that allow the user to fire a captured smartgun, if a bit uncomfortably."
- flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS
-
-/obj/item/clothing/suit/storage/CMB
- name = "\improper CMB jacket"
- desc = "A black jacket worn by Colonial Marshals. The back is enscribed with the powerful letters of 'MARSHAL' representing justice, authority, and protection in the outer rim. The laws of the Earth stretch beyond the Sol."
- icon_state = "CMB_jacket"
- blood_overlay_type = "coat"
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS
- flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS
- armor_melee = CLOTHING_ARMOR_MEDIUMLOW
- armor_bullet = CLOTHING_ARMOR_MEDIUMLOW
- armor_energy = CLOTHING_ARMOR_LOW
- armor_bomb = CLOTHING_ARMOR_LOW
- armor_bio = CLOTHING_ARMOR_LOW
- armor_internaldamage = CLOTHING_ARMOR_LOW
- allowed = list(
- /obj/item/weapon/gun,
- /obj/item/storage/fancy/cigarettes,
- /obj/item/tool/lighter,
- /obj/item/weapon/baton,
- /obj/item/handcuffs,
- /obj/item/device/binoculars,
- /obj/item/attachable/bayonet,
- /obj/item/device/flashlight,
- /obj/item/device/healthanalyzer,
- /obj/item/device/radio,
- /obj/item/tank/emergency_oxygen,
- /obj/item/tool/crowbar,
- /obj/item/tool/crew_monitor,
- /obj/item/tool/pen,
- /obj/item/storage/belt/gun/m4a3,
- /obj/item/storage/belt/gun/m44,
- /obj/item/storage/belt/gun/mateba,
- /obj/item/storage/belt/gun/smartpistol,
- /obj/item/storage/large_holster/machete,
- /obj/item/storage/large_holster/katana,
- /obj/item/device/motiondetector,
- /obj/item/device/walkman,
- )
- valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR)
- restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND)
-
-/obj/item/clothing/suit/storage/CMB/Initialize()
- . = ..()
- pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines.
- pockets.bypass_w_limit = list(
- /obj/item/ammo_magazine/rifle,
- /obj/item/ammo_magazine/smg,
- /obj/item/ammo_magazine/sniper,
- )
- pockets.max_storage_space = 8
-
-/obj/item/clothing/suit/storage/RO
- name = "quartermaster jacket"
- desc = "A green jacket worn by USCM personnel. The back has the flag of the United Americas on it."
- icon_state = "RO_jacket"
- blood_overlay_type = "coat"
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_ARMS
- valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL)
- restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND)
-
-//===========================//HELGHAST - MERCENARY\\================================\\
-//=====================================================================\\
-
-/obj/item/clothing/suit/storage/marine/veteran/mercenary
- name = "\improper K12 ceramic plated armor"
- desc = "A set of grey, heavy ceramic armor with dark blue highlights. It is the standard uniform of an unknown mercenary group working in the sector."
- icon_state = "mercenary_heavy_armor"
- flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN
- armor_melee = CLOTHING_ARMOR_VERYHIGH
- armor_bullet = CLOTHING_ARMOR_VERYHIGH
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_bio = CLOTHING_ARMOR_HIGHPLUS
- armor_rad = CLOTHING_ARMOR_MEDIUM
- armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS
- storage_slots = 2
- slowdown = SLOWDOWN_ARMOR_LIGHT
- allowed = list(
- /obj/item/weapon/gun,
- /obj/item/tank/emergency_oxygen,
- /obj/item/device/flashlight,
- /obj/item/ammo_magazine/,
- /obj/item/weapon/baton,
- /obj/item/handcuffs,
- /obj/item/storage/fancy/cigarettes,
- /obj/item/tool/lighter,
- /obj/item/explosive/grenade,
- /obj/item/storage/bible,
- /obj/item/weapon/sword/machete,
- /obj/item/attachable/bayonet,
- /obj/item/device/motiondetector,
- /obj/item/device/walkman,
- )
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary)
- item_state_slots = list(WEAR_JACKET = "mercenary_heavy_armor")
-
-/obj/item/clothing/suit/storage/marine/veteran/mercenary/heavy
- name = "\improper Modified K12 ceramic plated armor"
- desc = "A set of grey, heavy ceramic armor with dark blue highlights. It has been modified with extra ceramic plates placed in its storage pouch, and seems intended to support an extremely heavy weapon."
- armor_melee = CLOTHING_ARMOR_ULTRAHIGH
- armor_bullet = CLOTHING_ARMOR_ULTRAHIGHPLUS
- armor_bomb = CLOTHING_ARMOR_HIGHPLUS
- armor_bio = CLOTHING_ARMOR_HIGHPLUS
- armor_rad = CLOTHING_ARMOR_MEDIUM
- armor_internaldamage = CLOTHING_ARMOR_VERYHIGHPLUS
- storage_slots = 1
-
-/obj/item/clothing/suit/storage/marine/veteran/mercenary/miner
- name = "\improper Y8 armored miner vest"
- desc = "A set of beige, light armor built for protection while mining. It is a specialized uniform of an unknown mercenary group working in the sector."
- icon_state = "mercenary_miner_armor"
- storage_slots = 3
- allowed = list(
- /obj/item/weapon/gun,
- /obj/item/tank/emergency_oxygen,
- /obj/item/device/flashlight,
- /obj/item/ammo_magazine/,
- /obj/item/weapon/baton,
- /obj/item/handcuffs,
- /obj/item/storage/fancy/cigarettes,
- /obj/item/tool/lighter,
- /obj/item/explosive/grenade,
- /obj/item/storage/bible,
- /obj/item/weapon/sword/machete,
- /obj/item/attachable/bayonet,
- /obj/item/device/motiondetector,
- /obj/item/device/walkman,
- )
- uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary)
- item_state_slots = list(WEAR_JACKET = "mercenary_miner_armor")
-
-/obj/item/clothing/suit/storage/marine/veteran/mercenary/support
- name = "\improper Z7 armored vest"
- desc = "A set of blue armor with yellow highlights built for protection while building or carrying out medical treatment in highly dangerous environments. It is a specialized uniform of an unknown mercenary group working in the sector."
- icon_state = "mercenary_engineer_armor"
- item_state_slots = list(WEAR_JACKET = "mercenary_engineer_armor")
-
-/obj/item/clothing/suit/storage/marine/M3G/hefa
- name = "\improper HEFA Knight armor"
- desc = "A thick piece of armor adorning a HEFA. Usually seen on a HEFA knight."
- specialty = "HEFA Knight"
- icon_state = "hefadier"
- flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE
- flags_item = NO_CRYO_STORE
- flags_marine_armor = ARMOR_LAMP_OVERLAY
- armor_bullet = CLOTHING_ARMOR_VERYHIGH
- armor_melee = CLOTHING_ARMOR_VERYHIGH
- armor_bomb = CLOTHING_ARMOR_GIGAHIGH
-
-
-//=========================//PROVOST\\================================\\
-//=======================================================================\\
-
-/obj/item/clothing/suit/storage/marine/MP/provost
- name = "\improper M3 pattern Provost armor"
- desc = "A standard Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
- icon_state = "pvmedium"
- item_state_slots = list(WEAR_JACKET = "pvmedium")
- slowdown = SLOWDOWN_ARMOR_LIGHT
- armor_bullet = CLOTHING_ARMOR_MEDIUM
- armor_laser = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
- armor_internaldamage = CLOTHING_ARMOR_MEDIUM
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
- storage_slots = 3
-
-/obj/item/clothing/suit/storage/marine/MP/provost/tml
- name = "\improper M3 pattern Senior Provost armor"
- desc = "A more refined Provost M3 Pattern Chestplate for senior officers. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
- icon_state = "pvleader"
- item_state_slots = list(WEAR_JACKET = "pvleader")
-
-/obj/item/clothing/suit/storage/marine/MP/provost/marshal
- name = "\improper M5 pattern Provost Marshal armor"
- desc = "A custom fit luxury armor suit for Provost Marshals. Useful for letting your men know who is in charge when taking to the field."
- icon_state = "pvmarshal"
- item_state_slots = list(WEAR_JACKET = "pvmarshal")
- w_class = SIZE_MEDIUM
- storage_slots = 4
-
-/obj/item/clothing/suit/storage/marine/MP/provost/light
- name = "\improper M3 pattern Provost light armor"
- desc = "A lighter Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
- icon_state = "pvlight"
- item_state_slots = list(WEAR_JACKET = "pvlight")
- slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
-
-/obj/item/clothing/suit/storage/marine/MP/provost/light/flexi
- name = "\improper M3 pattern Provost flexi-armor"
- desc = "A flexible and easy to store M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
- w_class = SIZE_MEDIUM
- icon_state = "pvlight_2"
- item_state_slots = list(WEAR_JACKET = "pvlight_2")
- storage_slots = 2
-
-//================//UNITED AMERICAS ALLIED COMMAND\\=====================\\
-//=======================================================================\\
-
-/obj/item/clothing/suit/storage/marine/uaac/tis/sa
- name = "\improper M3 pattern UAAC-TIS Special Agent Armor"
- desc = "A modified luxury armor, originally meant for a USCM Provost Marshall, modified to use the colors and insignia of the TIS. The Three Eyes is technically able to requisition any equipment or personnel to fulfill its mission and often uses this privilege to outfit their agents with high-quality gear from other UA military forces."
- icon_state = "tis"
- item_state_slots = list(WEAR_JACKET = "tis")
- armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
- armor_laser = CLOTHING_ARMOR_LOW
- armor_energy = CLOTHING_ARMOR_LOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW
- storage_slots = 2
- slowdown = SLOWDOWN_ARMOR_LIGHT
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
- allowed = list(
- /obj/item/weapon/gun,
- /obj/item/tank/emergency_oxygen,
- /obj/item/device/flashlight,
- /obj/item/ammo_magazine/,
- /obj/item/storage/fancy/cigarettes,
- /obj/item/tool/lighter,
- /obj/item/weapon/baton,
- /obj/item/handcuffs,
- /obj/item/explosive/grenade,
- /obj/item/device/binoculars,
- /obj/item/attachable/bayonet,
- /obj/item/storage/backpack/general_belt,
- /obj/item/device/hailer,
- /obj/item/storage/belt/gun,
- /obj/item/weapon/sword/ceremonial,
- /obj/item/device/motiondetector,
- /obj/item/device/walkman,
- )
- uniform_restricted = list(/obj/item/clothing/under/uaac/tis)
-
-//================//UNITED AMERICAS RIOT CONTROL\\=====================\\
-//=======================================================================\\
-
-/obj/item/clothing/suit/storage/marine/veteran/ua_riot
- name = "\improper UA-M1 body armor"
- desc = "Based on the M-3 pattern employed by the USCM, the UA-M1 body armor is employed by UA security, riot control and union-busting teams. While robust against melee and bullet attacks, it critically lacks coverage of the legs and arms."
- icon_state = "ua_riot"
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
- flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
- flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
- armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
- armor_energy = CLOTHING_ARMOR_MEDIUM
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUM
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
- slowdown = SLOWDOWN_ARMOR_VERY_LIGHT // it's lighter
- uniform_restricted = list(/obj/item/clothing/under/marine/ua_riot)
- flags_atom = NO_SNOW_TYPE
-
-//==================War Correspondent==================\\
-
-/obj/item/clothing/suit/storage/marine/light/reporter
- name = "press body armor"
- desc = "Body armor used by war correspondents in battles and wars across the universe."
- icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi'
- icon_state = "wc_armor"
- flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
- contained_sprite = TRUE
-
-
-//=ROYAL MARINES=\\
-
-/obj/item/clothing/suit/storage/marine/veteran/royal_marine
- name = "kestrel armoured vest"
- desc = "A customizable personal armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines."
- icon_state = "rmc_light"
- item_state = "rmc_light"
- flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE
- allowed = list(
- /obj/item/weapon/gun,
- /obj/item/tank/emergency_oxygen,
- /obj/item/device/flashlight,
- /obj/item/ammo_magazine/,
- /obj/item/weapon/baton,
- /obj/item/handcuffs,
- /obj/item/storage/fancy/cigarettes,
- /obj/item/tool/lighter,
- /obj/item/explosive/grenade,
- /obj/item/storage/bible,
- /obj/item/weapon/sword/machete,
- /obj/item/attachable/bayonet,
- /obj/item/device/motiondetector,
- /obj/item/device/walkman,
- )
-
-/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light //RMC Rifleman Armor
- icon_state = "rmc_light"
- item_state = "rmc_light"
- armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
- armor_energy = CLOTHING_ARMOR_MEDIUMLOW
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUM
- slowdown = SLOWDOWN_ARMOR_LIGHT
-
-/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light/team_leader //RMC TL & LT Armor
- name = "kestrel armoured carry vest"
- icon_state = "rmc_light_padded"
- item_state = "rmc_light_padded"
- storage_slots = 7
-
-/obj/item/clothing/suit/storage/marine/veteran/royal_marine/smartgun //Smartgun Spec Armor
- name = "kestrel armoured smartgun harness"
- icon_state = "rmc_smartgun"
- item_state = "rmc_smartgun"
- flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS
-
-/obj/item/clothing/suit/storage/marine/veteran/royal_marine/pointman //Pointman Spec Armor
- name = "kestrel pointman armour"
- desc = "A heavier version of the armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines."
- icon_state = "rmc_pointman"
- item_state = "rmc_pointman"
- armor_melee = CLOTHING_ARMOR_HIGH
- armor_bullet = CLOTHING_ARMOR_HIGHPLUS
- armor_bomb = CLOTHING_ARMOR_HIGHPLUS
- armor_bio = CLOTHING_ARMOR_MEDIUM
- armor_rad = CLOTHING_ARMOR_MEDIUM
- armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
- storage_slots = 7
- slowdown = SLOWDOWN_ARMOR_LOWHEAVY
- movement_compensation = SLOWDOWN_ARMOR_MEDIUM
-
-/atom/movable/marine_light
- light_system = DIRECTIONAL_LIGHT
-
-//CBRN
-/obj/item/clothing/suit/storage/marine/cbrn
- name = "\improper M3-M armor"
- desc = "While lacking the appearance of the M3 pattern armor worn in regular service, this armor piece is still a derivative of it. It has been heavily modified to fit over the MOPP suit with additional padding and Venlar composite layers removed, so as not to restrict the wearer’s movement. However, with the reduction of composite layers, the personal protection offered is less than desired with complaints having been lodged since 2165."
- icon_state = "cbrn"
- item_state = "cbrn"
- slowdown = SLOWDOWN_ARMOR_HEAVY
- armor_melee = CLOTHING_ARMOR_MEDIUM
- armor_bullet = CLOTHING_ARMOR_MEDIUM
- armor_bomb = CLOTHING_ARMOR_MEDIUM
- armor_bio = CLOTHING_ARMOR_LOW
- armor_rad =CLOTHING_ARMOR_MEDIUMLOW
- armor_internaldamage = CLOTHING_ARMOR_LOW
- flags_marine_armor = NO_FLAGS
- flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE
- flags_inventory = BLOCKSHARPOBJ
- flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
- flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
- flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
- uniform_restricted = list(/obj/item/clothing/under/marine/cbrn)
-
-/obj/item/clothing/suit/storage/marine/cbrn/advanced
- slowdown = SLOWDOWN_ARMOR_LOWHEAVY
- armor_melee = CLOTHING_ARMOR_HIGH
- armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
- armor_bomb = CLOTHING_ARMOR_ULTRAHIGH
- armor_bio = CLOTHING_ARMOR_GIGAHIGHPLUS
- armor_rad = CLOTHING_ARMOR_GIGAHIGHPLUS
- armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS
diff --git a/code/modules/clothing/suits/marine_armor/_marine_armor.dm b/code/modules/clothing/suits/marine_armor/_marine_armor.dm
new file mode 100644
index 000000000000..fd926c4ffd50
--- /dev/null
+++ b/code/modules/clothing/suits/marine_armor/_marine_armor.dm
@@ -0,0 +1,668 @@
+#define DEBUG_ARMOR_PROTECTION 0
+
+#if DEBUG_ARMOR_PROTECTION
+/mob/living/carbon/human/verb/check_overall_protection()
+ set name = "Get Armor Value"
+ set category = "Debug"
+ set desc = "Shows the armor value of the bullet category."
+
+ var/armor = 0
+ var/counter = 0
+ for(var/X in H.limbs)
+ var/obj/limb/E = X
+ armor = getarmor_organ(E, ARMOR_BULLET)
+ to_chat(src, SPAN_DEBUG("[E.name] is protected with [armor] armor against bullets."))
+ counter += armor
+ to_chat(src, SPAN_DEBUG("The overall armor score is: [counter] ."))
+#endif
+
+//=======================================================================\\
+//=======================================================================\\
+
+#define ALPHA 1
+#define BRAVO 2
+#define CHARLIE 3
+#define DELTA 4
+#define ECHO 5
+#define CRYO 6
+#define SOF 7
+#define NOSQUAD 8
+
+// MARINE STORAGE ARMOR
+
+/obj/item/clothing/suit/storage/marine
+ name = "\improper M3 pattern marine armor"
+ desc = "A standard Colonial Marines M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
+ icon = 'icons/obj/items/clothing/cm_suits.dmi'
+ icon_state = "1"
+ item_state = "marine_armor" //Make unique states for Officer & Intel armors.
+ item_icons = list(
+ WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi'
+ )
+ flags_atom = FPRINT|CONDUCT
+ flags_inventory = BLOCKSHARPOBJ
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
+ flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
+ flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
+ min_cold_protection_temperature = HELMET_MIN_COLD_PROT
+ max_heat_protection_temperature = HELMET_MAX_HEAT_PROT
+ blood_overlay_type = "armor"
+ armor_melee = CLOTHING_ARMOR_MEDIUM
+ armor_bullet = CLOTHING_ARMOR_MEDIUM
+ armor_laser = CLOTHING_ARMOR_MEDIUMLOW
+ armor_energy = CLOTHING_ARMOR_NONE
+ armor_bomb = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bio = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUMLOW
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUM
+ movement_compensation = SLOWDOWN_ARMOR_LIGHT
+ storage_slots = 3
+ siemens_coefficient = 0.7
+ slowdown = SLOWDOWN_ARMOR_MEDIUM
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/prop/prop_gun,
+ /obj/item/tank/emergency_oxygen,
+ /obj/item/device/flashlight,
+ /obj/item/storage/fancy/cigarettes,
+ /obj/item/tool/lighter,
+ /obj/item/storage/bible,
+ /obj/item/attachable/bayonet,
+ /obj/item/storage/backpack/general_belt,
+ /obj/item/storage/large_holster/machete,
+ /obj/item/storage/belt/gun/type47,
+ /obj/item/storage/belt/gun/m4a3,
+ /obj/item/storage/belt/gun/m44,
+ /obj/item/storage/belt/gun/smartpistol,
+ /obj/item/storage/belt/gun/flaregun,
+ /obj/item/device/motiondetector,
+ /obj/item/device/walkman,
+ /obj/item/storage/belt/gun/m39,
+ /obj/item/storage/belt/gun/xm51,
+ )
+ valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO)
+
+ light_power = 3
+ light_range = 4
+ light_system = MOVABLE_LIGHT
+
+ var/flashlight_cooldown = 0 //Cooldown for toggling the light
+ var/locate_cooldown = 0 //Cooldown for SL locator
+ var/armor_overlays[]
+ actions_types = list(/datum/action/item_action/toggle)
+ var/flags_marine_armor = ARMOR_SQUAD_OVERLAY|ARMOR_LAMP_OVERLAY
+ var/specialty = "M3 pattern marine" //Same thing here. Give them a specialty so that they show up correctly in vendors. speciality does NOTHING if you have NO_NAME_OVERRIDE
+ w_class = SIZE_HUGE
+ uniform_restricted = list(/obj/item/clothing/under/marine)
+ sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi')
+ time_to_unequip = 20
+ time_to_equip = 20
+ pickup_sound = "armorequip"
+ drop_sound = "armorequip"
+ equip_sounds = list('sound/handling/putting_on_armor1.ogg')
+ var/armor_variation = 0
+ /// The dmi where the grayscale squad overlays are contained
+ var/squad_overlay_icon = 'icons/mob/humans/onmob/suit_1.dmi'
+
+ var/atom/movable/marine_light/light_holder
+
+/obj/item/clothing/suit/storage/marine/Initialize(mapload)
+ . = ..()
+ if(!(flags_atom & NO_NAME_OVERRIDE))
+ name = "[specialty]"
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ name += " snow armor" //Leave marine out so that armors don't have to have "Marine" appended (see: generals).
+ else
+ name += " armor"
+
+ if(!(flags_atom & NO_SNOW_TYPE))
+ select_gamemode_skin(type)
+ armor_overlays = list("lamp") //Just one for now, can add more later.
+ if(armor_variation && mapload)
+ set_armor_style("Random")
+ update_icon()
+ pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines.
+ pockets.bypass_w_limit = list(
+ /obj/item/ammo_magazine/rifle,
+ /obj/item/ammo_magazine/smg,
+ /obj/item/ammo_magazine/sniper,
+ )
+ pockets.max_storage_space = 8
+
+ light_holder = new(src)
+
+/obj/item/clothing/suit/storage/marine/Destroy()
+ QDEL_NULL(light_holder)
+ return ..()
+
+/obj/item/clothing/suit/storage/marine/update_icon(mob/user)
+ var/image/I
+ armor_overlays["lamp"] = null
+ if(flags_marine_armor & ARMOR_LAMP_OVERLAY)
+ if(flags_marine_armor & ARMOR_LAMP_ON)
+ I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-on")
+ else
+ I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-off")
+ armor_overlays["lamp"] = I
+ overlays += I
+ else armor_overlays["lamp"] = null
+ if(user) user.update_inv_wear_suit()
+
+
+/obj/item/clothing/suit/storage/marine/post_vendor_spawn_hook(mob/living/carbon/human/user) //used for randomizing/selecting a variant for armors.
+ if(!armor_variation)
+ return
+
+ if(user?.client?.prefs)
+ // Set the armor style to the user's preference.
+ set_armor_style(user.client.prefs.preferred_armor)
+ else
+ // Or if that isn't possible, just pick a random one.
+ set_armor_style("Random")
+ update_icon(user)
+
+/obj/item/clothing/suit/storage/marine/attack_self(mob/user)
+ ..()
+
+ if(!isturf(user.loc))
+ to_chat(user, SPAN_WARNING("You cannot turn the light [light_on ? "off" : "on"] while in [user.loc].")) //To prevent some lighting anomalies.
+ return
+
+ if(flashlight_cooldown > world.time)
+ return
+ if(!ishuman(user))
+ return
+
+ var/mob/living/carbon/human/H = user
+ if(H.wear_suit != src)
+ return
+
+ turn_light(user, !light_on)
+
+/obj/item/clothing/suit/storage/marine/item_action_slot_check(mob/user, slot)
+ if(!ishuman(user))
+ return FALSE
+ if(slot != WEAR_JACKET)
+ return FALSE
+ return TRUE //only give action button when armor is worn.
+
+/obj/item/clothing/suit/storage/marine/turn_light(mob/user, toggle_on)
+ . = ..()
+ if(. != CHECKS_PASSED)
+ return
+ set_light_range(initial(light_range))
+ set_light_power(Floor(initial(light_power) * 0.5))
+ set_light_on(toggle_on)
+ flags_marine_armor ^= ARMOR_LAMP_ON
+
+ light_holder.set_light_flags(LIGHT_ATTACHED)
+ light_holder.set_light_range(initial(light_range))
+ light_holder.set_light_power(initial(light_power))
+ light_holder.set_light_on(toggle_on)
+
+ if(!toggle_on)
+ playsound(src, 'sound/handling/click_2.ogg', 50, 1)
+
+ playsound(src, 'sound/handling/suitlight_on.ogg', 50, 1)
+ update_icon(user)
+
+ for(var/X in actions)
+ var/datum/action/A = X
+ A.update_button_icon()
+
+/obj/item/clothing/suit/storage/marine/mob_can_equip(mob/living/carbon/human/M, slot, disable_warning = 0)
+ . = ..()
+ if (.)
+ if(issynth(M) && M.allow_gun_usage == FALSE && !(flags_marine_armor & SYNTH_ALLOWED))
+ M.visible_message(SPAN_DANGER("Your programming prevents you from wearing this!"))
+ return 0
+
+/**
+ * Updates the armor's `icon_state` to the style represented by `new_style`.
+ *
+ * Arguments:
+ * * new_style - The new armor style. May only be one of `GLOB.armor_style_list`'s keys, or `"Random"`.
+ */
+/obj/item/clothing/suit/storage/marine/proc/set_armor_style(new_style)
+ // Regex to match one or more digits.
+ var/static/regex/digits = new("\\d+")
+ // Integer for the new armor style's `icon_state`.
+ var/new_look
+
+ if(new_style == "Random")
+ // The style icon states are all numbers between 1 and `armor_variation`, so this picks a random one.
+ new_look = rand(1, armor_variation)
+ else
+ new_look = GLOB.armor_style_list[new_style]
+
+ // Replace the digits in the current icon state with `new_look`. (E.g. "L6" -> "L2")
+ icon_state = digits.Replace(icon_state, new_look)
+
+/obj/item/clothing/suit/storage/marine/medium/rto
+ icon_state = "io"
+ armor_variation = 0
+ name = "\improper M4 pattern marine armor"
+ desc = "A well tinkered and crafted hybrid of Smart-Gunner mesh and M3 pattern plates. Robust, yet nimble, with room for all your pouches."
+ armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ storage_slots = 4
+ light_range = 5 //slightly higher
+ specialty = "M4 pattern marine"
+
+/obj/item/clothing/suit/storage/marine/MP
+ name = "\improper M2 pattern MP armor"
+ desc = "A standard Colonial Marines M2 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
+ icon_state = "mp_armor"
+ armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bullet = CLOTHING_ARMOR_LOW
+ armor_laser = CLOTHING_ARMOR_LOW
+ armor_energy = CLOTHING_ARMOR_LOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_bio = CLOTHING_ARMOR_MEDIUMLOW
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW
+ storage_slots = 2
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/tank/emergency_oxygen,
+ /obj/item/device/flashlight,
+ /obj/item/ammo_magazine/,
+ /obj/item/storage/fancy/cigarettes,
+ /obj/item/tool/lighter,
+ /obj/item/weapon/baton,
+ /obj/item/handcuffs,
+ /obj/item/explosive/grenade,
+ /obj/item/device/binoculars,
+ /obj/item/attachable/bayonet,
+ /obj/item/storage/backpack/general_belt,
+ /obj/item/device/hailer,
+ /obj/item/storage/belt/gun,
+ /obj/item/weapon/sword/ceremonial,
+ /obj/item/device/motiondetector,
+ /obj/item/device/walkman,
+ )
+ uniform_restricted = list(/obj/item/clothing/under/marine/mp)
+ specialty = "M2 pattern MP"
+ item_state_slots = list(WEAR_JACKET = "mp_armor")
+ black_market_value = 20
+
+/obj/item/clothing/suit/storage/marine/MP/warden
+ icon_state = "warden"
+ name = "\improper M3 pattern warden MP armor"
+ desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Wardens. Useful for letting your men know who is in charge."
+ armor_bio = CLOTHING_ARMOR_MEDIUMLOW
+ armor_rad = CLOTHING_ARMOR_MEDIUMLOW
+ uniform_restricted = list(/obj/item/clothing/under/marine/warden)
+ specialty = "M3 pattern warden MP"
+ item_state_slots = list(WEAR_JACKET = "warden")
+
+/obj/item/clothing/suit/storage/marine/MP/WO
+ icon_state = "warrant_officer"
+ name = "\improper M3 pattern chief MP armor"
+ desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Chief MPs. Useful for letting your men know who is in charge."
+ uniform_restricted = list(/obj/item/clothing/under/marine/officer/warrant)
+ specialty = "M3 pattern chief MP"
+ item_state_slots = list(WEAR_JACKET = "warrant_officer")
+ black_market_value = 30
+
+/obj/item/clothing/suit/storage/marine/MP/general
+ name = "\improper M3 pattern general officer armor"
+ desc = "A well-crafted suit of M3 Pattern Armor with a gold shine. It looks very expensive, but shockingly fairly easy to carry and wear."
+ icon_state = "general"
+ armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bio = CLOTHING_ARMOR_MEDIUM
+ uniform_restricted = list(/obj/item/clothing/under/marine/officer/general)
+ specialty = "M3 pattern general"
+ item_state_slots = list(WEAR_JACKET = "general")
+ w_class = SIZE_MEDIUM
+
+/obj/item/clothing/suit/storage/marine/MP/SO
+ name = "\improper M3 pattern officer armor"
+ desc = "A well-crafted suit of M3 Pattern Armor typically found in the hands of higher-ranking officers. Useful for letting your men know who is in charge when taking to the field."
+ icon_state = "officer"
+ storage_slots = 3
+ flags_atom = null
+ uniform_restricted = list(/obj/item/clothing/under/marine/officer, /obj/item/clothing/under/rank/qm_suit, /obj/item/clothing/under/rank/chief_medical_officer, /obj/item/clothing/under/marine/dress)
+ specialty = "M3 pattern officer"
+ item_state_slots = list(WEAR_JACKET = "officer")
+
+//Making a new object because we might want to edit armor values and such.
+//Or give it its own sprite. It's more for the future.
+/obj/item/clothing/suit/storage/marine/MP/CO
+ name = "\improper M3 pattern commanding officer armor"
+ desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge."
+ icon_state = "co_officer"
+ item_state = "co_officer"
+ armor_bullet = CLOTHING_ARMOR_HIGH
+ storage_slots = 3
+ flags_atom = NO_SNOW_TYPE
+ flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS
+ uniform_restricted = list(/obj/item/clothing/under/marine, /obj/item/clothing/under/rank/qm_suit)
+ specialty = "M3 pattern captain"
+ item_state_slots = list(WEAR_JACKET = "co_officer")
+ valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_PONCHO)
+ black_market_value = 35
+
+
+/obj/item/clothing/suit/storage/marine/MP/CO/jacket
+ name = "\improper M3 pattern commanding officer armored coat"
+ desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge. This one has a coat over it for added warmth."
+ icon_state = "bridge_coat_armored"
+ item_state = "bridge_coat_armored"
+ item_state_slots = list(WEAR_JACKET = "bridge_coat_armored")
+ valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK)
+
+/obj/item/clothing/suit/storage/marine/medium/leader
+ name = "\improper B12 pattern marine armor"
+ desc = "A lightweight suit of carbon fiber body armor built for quick movement. Designed in a lovely forest green. Use it to toggle the built-in flashlight."
+ icon_state = "7"
+ armor_variation = 0
+ armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
+ specialty = "B12 pattern marine"
+ light_range = 5
+
+/obj/item/clothing/suit/storage/marine/tanker
+ name = "\improper M3 pattern tanker armor"
+ desc = "A modified and refashioned suit of M3 Pattern armor designed to be worn by the loader of a USCM vehicle crew. While the suit is a bit more encumbering to wear with the crewman uniform, it offers the loader a degree of protection that would otherwise not be enjoyed."
+ icon_state = "tanker"
+ uniform_restricted = list(/obj/item/clothing/under/marine/officer/tanker)
+ specialty = "M3 pattern tanker"
+ storage_slots = 2
+
+//===========================//PFC ARMOR CLASSES\\================================\\
+//=================================================================================\\
+
+// M3 pattern marine armor
+/obj/item/clothing/suit/storage/marine/medium
+ armor_variation = 6
+ light_power = 4
+
+/obj/item/clothing/suit/storage/marine/medium/padded
+ name = "M3 pattern padded marine armor"
+ icon_state = "1"
+ armor_variation = 0
+ specialty = "M3 pattern padded marine"
+
+/obj/item/clothing/suit/storage/marine/medium/padless
+ name = "M3 pattern padless marine armor"
+ icon_state = "2"
+ armor_variation = 0
+ specialty = "M3 pattern padless marine"
+
+/obj/item/clothing/suit/storage/marine/medium/padless_lines
+ name = "M3 pattern ridged marine armor"
+ icon_state = "3"
+ armor_variation = 0
+ specialty = "M3 pattern ridged marine"
+
+/obj/item/clothing/suit/storage/marine/medium/carrier
+ name = "M3 pattern carrier marine armor"
+ icon_state = "4"
+ armor_variation = 0
+ specialty = "M3 pattern carrier marine"
+
+/obj/item/clothing/suit/storage/marine/medium/skull
+ name = "M3 pattern skull marine armor"
+ icon_state = "5"
+ armor_variation = 0
+ specialty = "M3 pattern skull marine"
+
+/obj/item/clothing/suit/storage/marine/medium/smooth
+ name = "M3 pattern smooth marine armor"
+ icon_state = "6"
+ armor_variation = 0
+ specialty = "M3 pattern smooth marine"
+
+// M3-L pattern light armor
+/obj/item/clothing/suit/storage/marine/light
+ name = "\improper M3-L pattern light armor"
+ desc = "A lighter, cut down version of the standard M3 pattern armor. It sacrifices durability for more speed."
+ specialty = "\improper M3-L pattern light"
+ icon_state = "L1"
+ armor_variation = 6
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ armor_melee = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bullet = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_bio = CLOTHING_ARMOR_MEDIUMLOW
+ armor_rad = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_internaldamage = CLOTHING_ARMOR_LOW
+ storage_slots = 2
+
+/obj/item/clothing/suit/storage/marine/light/padded
+ icon_state = "L1"
+ armor_variation = 0
+
+/obj/item/clothing/suit/storage/marine/light/padless
+ icon_state = "L2"
+ armor_variation = 0
+
+/obj/item/clothing/suit/storage/marine/light/padless_lines
+ icon_state = "L3"
+ armor_variation = 0
+
+/obj/item/clothing/suit/storage/marine/light/carrier
+ icon_state = "L4"
+ armor_variation = 0
+
+/obj/item/clothing/suit/storage/marine/light/skull
+ icon_state = "L5"
+ armor_variation = 0
+
+/obj/item/clothing/suit/storage/marine/light/smooth
+ icon_state = "L6"
+ armor_variation = 0
+
+/obj/item/clothing/suit/storage/marine/light/vest
+ name = "\improper M3-VL pattern ballistics vest"
+ desc = "Up until 2182 USCM non-combat personnel were issued non-standardized ballistics vests, though the lack of IMP compatibility and suit lamps proved time and time again inefficient. This modified M3-L shell is the result of a 6-year R&D program; It provides utility, protection, AND comfort to all USCM non-combat personnel."
+ icon_state = "VL"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+ flags_marine_armor = ARMOR_LAMP_OVERLAY //No squad colors when wearing this since it'd look funny.
+ armor_melee = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bullet = CLOTHING_ARMOR_HIGH
+ armor_energy = CLOTHING_ARMOR_LOW
+ armor_bomb = CLOTHING_ARMOR_LOW
+ armor_bio = CLOTHING_ARMOR_VERYLOW
+ armor_rad = CLOTHING_ARMOR_NONE
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUM
+ storage_slots = 1
+ time_to_unequip = 0.5 SECONDS
+ time_to_equip = 1 SECONDS
+ siemens_coefficient = 0.7
+ uniform_restricted = null
+
+/obj/item/clothing/suit/storage/marine/light/vest/dcc
+ name = "\improper M3-VL pattern flak vest"
+ desc = "A combination of the standard non-combat M3-VL ballistics vest and M70 flak jacket, this piece of armor has been distributed to dropship crew to keep them safe from threats external and internal..."
+ icon_state = "VL_FLAK"
+ storage_slots = 2
+
+/obj/item/clothing/suit/storage/marine/light/synvest
+ name = "\improper M3A1 Synthetic Utility Vest"
+ desc = "This variant of the ubiquitous M3 pattern ballistics vest has been extensively modified, providing no protection in exchange for maximum mobility and storage space. Synthetic programming compliant."
+ icon_state = "VL_syn_camo"
+ flags_atom = NO_NAME_OVERRIDE
+ flags_marine_armor = ARMOR_LAMP_OVERLAY|SYNTH_ALLOWED //No squad colors + can be worn by synths.
+ armor_melee = CLOTHING_ARMOR_NONE
+ armor_bullet = CLOTHING_ARMOR_NONE
+ armor_laser = CLOTHING_ARMOR_NONE
+ armor_energy = CLOTHING_ARMOR_NONE
+ armor_bomb = CLOTHING_ARMOR_NONE
+ armor_bio = CLOTHING_ARMOR_NONE
+ armor_rad = CLOTHING_ARMOR_NONE
+ armor_internaldamage = CLOTHING_ARMOR_NONE
+ storage_slots = 3
+ slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
+ time_to_unequip = 0.5 SECONDS
+ time_to_equip = 1 SECONDS
+ uniform_restricted = null
+
+/obj/item/clothing/suit/storage/marine/light/synvest/grey
+ icon_state = "VL_syn"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+
+/obj/item/clothing/suit/storage/marine/light/synvest/jungle
+ icon_state = "VL_syn_camo"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+
+/obj/item/clothing/suit/storage/marine/light/synvest/snow
+ icon_state = "s_VL_syn_camo"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+
+/obj/item/clothing/suit/storage/marine/light/synvest/desert
+ icon_state = "d_VL_syn_camo"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+
+/obj/item/clothing/suit/storage/marine/light/synvest/dgrey
+ icon_state = "c_VL_syn_camo"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+
+// M3-EOD pattern heavy armor
+/obj/item/clothing/suit/storage/marine/heavy
+ name = "\improper M3-EOD pattern heavy armor"
+ desc = "A heavier version of the standard M3 pattern armor, the armor is primarily designed to withstand ballistic, explosive, and internal damage, with the drawback of increased bulk and thus reduced movement speed, alongside little additional protection from standard blunt force impacts and biological threats."
+ desc_lore = "This configuration of the iconic armor was developed during the Canton War in 2160 between the UPP and USCM - Designed in response to a need for higher protection for ComTechs assigned as EODs during the conflict, this is the pinnacle of protection for your average marine. The shoulders and kneepads have both been expanded upon heavily, covering up the arteries on each limb. A special spall liner was developed for this suit, with the same technology being used in the M70 Flak Jacket being developed at the same time."
+ specialty = "\improper M3-EOD pattern"
+ icon_state = "H1"
+ armor_variation = 6
+ armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bullet = CLOTHING_ARMOR_HIGHPLUS
+ armor_bomb = CLOTHING_ARMOR_HIGHPLUS
+ armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
+ storage_slots = 2
+ slowdown = SLOWDOWN_ARMOR_LOWHEAVY
+ movement_compensation = SLOWDOWN_ARMOR_MEDIUM
+ light_power = 4
+ light_range = 5
+
+/obj/item/clothing/suit/storage/marine/heavy/padded
+ icon_state = "H1"
+ armor_variation = 0
+
+/obj/item/clothing/suit/storage/marine/heavy/padless
+ icon_state = "H2"
+ armor_variation = 0
+
+/obj/item/clothing/suit/storage/marine/heavy/padless_lines
+ icon_state = "H3"
+ armor_variation = 0
+
+/obj/item/clothing/suit/storage/marine/heavy/carrier
+ icon_state = "H4"
+ armor_variation = 0
+
+/obj/item/clothing/suit/storage/marine/heavy/skull
+ icon_state = "H5"
+ armor_variation = 0
+
+/obj/item/clothing/suit/storage/marine/heavy/smooth
+ icon_state = "H6"
+ armor_variation = 0
+
+//===========================//SPECIALIST\\================================\\
+//=======================================================================\\
+
+/obj/item/clothing/suit/storage/marine/specialist
+ name = "\improper B18 defensive armor"
+ desc = "A heavy, rugged set of armor plates for when you really, really need to not die horribly. Slows you down though.\nComes with two tricord injectors in each arm guard."
+ icon_state = "xarmor"
+ armor_melee = CLOTHING_ARMOR_HIGH
+ armor_bullet = CLOTHING_ARMOR_HIGH
+ armor_bomb = CLOTHING_ARMOR_VERYHIGH
+ armor_bio = CLOTHING_ARMOR_MEDIUMLOW
+ armor_rad = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
+ storage_slots = 2
+ flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
+ flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
+ flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
+ slowdown = SLOWDOWN_ARMOR_HEAVY
+ specialty = "B18 defensive"
+ unacidable = TRUE
+ var/injections = 4
+
+/obj/item/clothing/suit/storage/marine/specialist/verb/inject()
+ set name = "Create Injector"
+ set category = "Object"
+ set src in usr
+
+ if(usr.is_mob_incapacitated())
+ return 0
+
+ if(!injections)
+ to_chat(usr, "Your armor is all out of injectors.")
+ return 0
+
+ if(usr.get_active_hand())
+ to_chat(usr, "Your active hand must be empty.")
+ return 0
+
+ to_chat(usr, "You feel a faint hiss and an injector drops into your hand.")
+ var/obj/item/reagent_container/hypospray/autoinjector/skillless/O = new(usr)
+ usr.put_in_active_hand(O)
+ injections--
+ playsound(src,'sound/machines/click.ogg', 15, 1)
+ return
+
+/obj/item/clothing/suit/storage/marine/M3G
+ name = "\improper M3-G4 grenadier armor"
+ desc = "A custom set of M3 armor packed to the brim with padding, plating, and every form of ballistic protection under the sun. Used exclusively by USCM Grenadiers."
+ icon_state = "grenadier"
+ armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bomb = CLOTHING_ARMOR_VERYHIGH
+ armor_bio = CLOTHING_ARMOR_MEDIUMLOW
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
+ flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN
+ flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
+ flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
+ flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
+ slowdown = SLOWDOWN_ARMOR_HEAVY
+ specialty = "M3-G4 grenadier"
+ unacidable = TRUE
+
+/obj/item/clothing/suit/storage/marine/M3T
+ name = "\improper M3-T light armor"
+ desc = "A custom set of M3 armor designed for users of long-ranged explosive weaponry."
+ icon_state = "demolitionist"
+ armor_bomb = CLOTHING_ARMOR_HIGH
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ specialty = "M3-T light"
+ flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE
+ unacidable = TRUE
+
+/obj/item/clothing/suit/storage/marine/M3S
+ name = "\improper M3-S light armor"
+ desc = "A custom set of M3 armor designed for USCM Scouts."
+ icon_state = "scout_armor"
+ armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ specialty = "M3-S light"
+ flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE
+ unacidable = TRUE
+
+/obj/item/clothing/suit/storage/RO
+ name = "quartermaster jacket"
+ desc = "A green jacket worn by USCM personnel. The back has the flag of the United Americas on it."
+ icon_state = "RO_jacket"
+ blood_overlay_type = "coat"
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_ARMS
+ valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL)
+ restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND)
+
+//==================Combat Correspondent==================\\
+
+/obj/item/clothing/suit/storage/marine/light/reporter
+ name = "press body armor"
+ desc = "Body armor used by war correspondents in battles and wars across the universe."
+ icon_state = "cc_armor"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+
diff --git a/code/modules/clothing/suits/marine_armor/ert.dm b/code/modules/clothing/suits/marine_armor/ert.dm
new file mode 100644
index 000000000000..19009606db35
--- /dev/null
+++ b/code/modules/clothing/suits/marine_armor/ert.dm
@@ -0,0 +1,828 @@
+//=============================//Marine Raiders\\==================================\\
+//=======================================================================\\
+
+/obj/item/clothing/suit/storage/marine/sof
+ name = "\improper SOF Armor"
+ desc = "A heavily customized suit of M3 armor. Used by Marine Raiders."
+ icon_state = "marsoc"
+ armor_melee = CLOTHING_ARMOR_HIGH
+ armor_bullet = CLOTHING_ARMOR_HIGH
+ armor_bomb = CLOTHING_ARMOR_VERYHIGH
+ armor_bio = CLOTHING_ARMOR_MEDIUMLOW
+ armor_rad = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ unacidable = TRUE
+ flags_atom = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE|NO_SNOW_TYPE
+ storage_slots = 4
+
+
+//=============================//PMCs\\==================================\\
+//=======================================================================\\
+
+/obj/item/clothing/suit/storage/marine/veteran
+ flags_marine_armor = ARMOR_LAMP_OVERLAY
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE //Let's make these keep their name and icon.
+
+/obj/item/clothing/suit/storage/marine/veteran/pmc
+ name = "\improper M4 pattern PMC armor"
+ desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind."
+ icon_state = "pmc_armor"
+ armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ storage_slots = 2
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/tank/emergency_oxygen,
+ /obj/item/device/flashlight,
+ /obj/item/ammo_magazine/,
+ /obj/item/weapon/baton,
+ /obj/item/handcuffs,
+ /obj/item/storage/fancy/cigarettes,
+ /obj/item/tool/lighter,
+ /obj/item/explosive/grenade,
+ /obj/item/storage/bible,
+ /obj/item/tool/crowbar,
+ /obj/item/storage/large_holster/katana,
+ /obj/item/storage/large_holster/machete,
+ /obj/item/weapon/sword/machete,
+ /obj/item/attachable/bayonet,
+ /obj/item/device/motiondetector,
+ /obj/item/tool/crew_monitor,
+ /obj/item/device/walkman,
+ )
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc)
+ item_state_slots = list(WEAR_JACKET = "pmc_armor")
+
+/obj/item/clothing/suit/storage/marine/veteran/pmc/light
+ name = "\improper M4 pattern light PMC armor"
+ desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. Has some armor plating removed for extra mobility."
+ icon_state = "pmc_sniper"
+ armor_melee = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bullet = CLOTHING_ARMOR_MEDIUM
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUMLOW
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW
+ slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
+ item_state_slots = list(WEAR_JACKET = "pmc_sniper")
+
+/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate
+ name = "\improper M1 pattern corporate security armor"
+ desc = "A basic vest with a Weyland-Yutani badge on the right breast. This is commonly worn by low-level guards protecting Weyland-Yutani facilities."
+ icon = 'icons/mob/humans/onmob/contained/wy_goons.dmi'
+ icon_state = "armor"
+ item_state = "armor"
+ item_state_slots = null
+ contained_sprite = TRUE
+
+ flags_armor_protection = BODY_FLAG_CHEST
+ flags_cold_protection = BODY_FLAG_CHEST
+ flags_heat_protection = BODY_FLAG_CHEST
+
+ slowdown = SLOWDOWN_ARMOR_NONE // only protects chest, but enables rapid movement
+
+/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate/lead
+ desc = "A basic vest with a Weyland-Yutani badge on the right breast. This variant is worn by low-level guards that have elevated in rank due to 'good conduct in the field', also known as corporate bootlicking."
+ icon_state = "lead_armor"
+ item_state = "lead_armor"
+
+/obj/item/clothing/suit/storage/marine/veteran/pmc/leader
+ name = "\improper M4 pattern PMC leader armor"
+ desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. This particular suit looks like it belongs to a high-ranking officer."
+ icon_state = "officer_armor"
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/leader)
+ item_state_slots = list(WEAR_JACKET = "officer_armor")
+
+/obj/item/clothing/suit/storage/marine/veteran/pmc/sniper
+ name = "\improper M4 pattern PMC sniper armor"
+ icon_state = "pmc_sniper"
+ armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUM
+ flags_inv_hide = HIDELOWHAIR
+ item_state_slots = list(WEAR_JACKET = "pmc_sniper")
+
+/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth
+ name = "\improper M4 Synthetic PMC armor"
+ desc = "A serious modification of the standard Armat Systems M3 armor. This variant was designed for PMC Support Units in the field, with every armor insert removed. It's designed with the idea of a high speed lifesaver in mind."
+ time_to_unequip = 0.5 SECONDS
+ time_to_equip = 1 SECONDS
+ armor_melee = CLOTHING_ARMOR_NONE
+ armor_bullet = CLOTHING_ARMOR_NONE
+ armor_laser = CLOTHING_ARMOR_NONE
+ armor_energy = CLOTHING_ARMOR_NONE
+ armor_bomb = CLOTHING_ARMOR_NONE
+ armor_bio = CLOTHING_ARMOR_NONE
+ armor_rad = CLOTHING_ARMOR_NONE
+ armor_internaldamage = CLOTHING_ARMOR_NONE
+ storage_slots = 3
+ slowdown = SLOWDOWN_ARMOR_SUPER_LIGHT
+
+/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth/Initialize()
+ flags_atom |= NO_NAME_OVERRIDE
+ flags_marine_armor |= SYNTH_ALLOWED
+ return ..()
+
+/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc
+ name = "\improper PMC gunner armor"
+ desc = "A modification of the standard Armat Systems M3 armor. Hooked up with harnesses and straps allowing the user to carry an M56 Smartgun."
+ icon_state = "heavy_armor"
+ flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+ armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_laser = CLOTHING_ARMOR_MEDIUMLOW
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ item_state_slots = list(WEAR_JACKET = "heavy_armor")
+
+/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc/terminator
+ name = "\improper M5Xg exoskeleton gunner armor"
+ desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk. This variant is designed to support a M56 Smartgun."
+ icon_state = "commando_armor"
+ slowdown = SLOWDOWN_ARMOR_MEDIUM
+ movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY
+ armor_melee = CLOTHING_ARMOR_HIGH
+ armor_bullet = CLOTHING_ARMOR_ULTRAHIGH
+ armor_laser = CLOTHING_ARMOR_MEDIUM
+ armor_energy = CLOTHING_ARMOR_MEDIUM
+ armor_bomb = CLOTHING_ARMOR_VERYHIGH
+ armor_rad = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando)
+ item_state_slots = list(WEAR_JACKET = "commando_armor")
+ unacidable = TRUE
+
+/obj/item/clothing/suit/storage/marine/veteran/pmc/commando
+ name = "\improper M5X exoskeleton armor"
+ desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk."
+ icon_state = "commando_armor"
+ slowdown = SLOWDOWN_ARMOR_MEDIUM
+ movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY
+ armor_melee = CLOTHING_ARMOR_VERYHIGH
+ armor_bullet = CLOTHING_ARMOR_ULTRAHIGH
+ armor_energy = CLOTHING_ARMOR_MEDIUM
+ armor_bomb = CLOTHING_ARMOR_VERYHIGH
+ armor_rad = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
+ flags_inventory = BLOCK_KNOCKDOWN
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando)
+ item_state_slots = list(WEAR_JACKET = "commando_armor")
+ unacidable = TRUE
+
+
+//===========================//DISTRESS\\================================\\
+//=======================================================================\\
+
+/obj/item/clothing/suit/storage/marine/veteran/bear
+ name = "\improper H1 Iron Bears vest"
+ desc = "A protective vest worn by Iron Bears mercenaries."
+ icon_state = "bear_armor"
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ storage_slots = 2
+ slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/bear)
+
+/obj/item/clothing/suit/storage/marine/veteran/dutch
+ name = "\improper D2 armored vest"
+ desc = "A protective vest worn by some seriously experienced mercs."
+ icon_state = "dutch_armor"
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS //Makes no sense but they need leg/arm armor too.
+ armor_melee = CLOTHING_ARMOR_HIGH
+ armor_bullet = CLOTHING_ARMOR_HIGHPLUS
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_HIGH
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ storage_slots = 2
+ light_range = 7
+ slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/dutch)
+
+/obj/item/clothing/suit/storage/marine/veteran/van_bandolier
+ name = "safari jacket"
+ desc = "A tailored hunting jacket, cunningly lined with segmented armor plates. Sometimes the game shoots back."
+ icon_state = "van_bandolier"
+ item_state = "van_bandolier_jacket"
+ blood_overlay_type = "coat"
+ flags_marine_armor = NO_FLAGS //No shoulder light.
+ actions_types = list()
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ storage_slots = 2
+ movement_compensation = SLOWDOWN_ARMOR_LIGHT
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/van_bandolier)
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/tank/emergency_oxygen,
+ /obj/item/device/flashlight,
+ /obj/item/storage/fancy/cigarettes,
+ /obj/item/tool/lighter,
+ /obj/item/storage/bible,
+ /obj/item/attachable/bayonet,
+ /obj/item/storage/backpack/general_belt,
+ /obj/item/storage/large_holster/machete,
+ /obj/item/storage/belt/gun/m4a3,
+ /obj/item/storage/belt/gun/m44,
+ /obj/item/storage/belt/gun/smartpistol,
+ /obj/item/storage/belt/gun/flaregun,
+ /obj/item/device/motiondetector,
+ /obj/item/device/walkman,
+ /obj/item/storage/belt/shotgun/van_bandolier,
+ )
+
+//===========================//U.P.P\\================================\\
+//=====================================================================\\
+
+/obj/item/clothing/suit/storage/marine/faction
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
+ flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
+ flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
+ min_cold_protection_temperature = HELMET_MIN_COLD_PROT
+ max_heat_protection_temperature = HELMET_MAX_HEAT_PROT
+ blood_overlay_type = "armor"
+ armor_melee = CLOTHING_ARMOR_MEDIUM
+ armor_bullet = CLOTHING_ARMOR_MEDIUM
+ armor_laser = CLOTHING_ARMOR_MEDIUMLOW
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_bio = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
+ slowdown = SLOWDOWN_ARMOR_MEDIUM
+ movement_compensation = SLOWDOWN_ARMOR_LIGHT
+
+
+/obj/item/clothing/suit/storage/marine/faction/UPP
+ name = "\improper UM5 personal armor"
+ desc = "Standard body armor of the UPP military, the UM5 (Union Medium MK5) is a medium body armor, roughly on par with the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. Unlike the M3, however, the plate has a heavier neckplate. This has earned many UA members to refer to UPP soldiers as 'tin men'."
+ icon_state = "upp_armor"
+ armor_bullet = CLOTHING_ARMOR_HIGH
+ armor_energy = CLOTHING_ARMOR_MEDIUM
+ armor_bio = CLOTHING_ARMOR_MEDIUMLOW
+ armor_rad = CLOTHING_ARMOR_MEDIUMLOW
+ armor_internaldamage = CLOTHING_ARMOR_HIGH
+ storage_slots = 1
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP, /obj/item/clothing/under/marine/veteran/UPP/medic, /obj/item/clothing/under/marine/veteran/UPP/engi)
+
+/obj/item/clothing/suit/storage/marine/faction/UPP/support
+ name = "\improper UL6 personal armor"
+ desc = "Standard body armor of the UPP military, the UL6 (Union Light MK6) is a light body armor, slightly weaker than the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. This set of personal armor lacks the iconic neck piece and some of the armor in favor of user mobility."
+ storage_slots = 3
+ icon_state = "upp_armor_support"
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ armor_melee = CLOTHING_ARMOR_HIGH
+ armor_energy = CLOTHING_ARMOR_MEDIUM
+ armor_bio = CLOTHING_ARMOR_MEDIUMLOW
+ armor_rad = CLOTHING_ARMOR_MEDIUMLOW
+ armor_internaldamage = CLOTHING_ARMOR_HIGH
+
+/obj/item/clothing/suit/storage/marine/faction/UPP/commando
+ name = "\improper UM5CU personal armor"
+ desc = "A modification of the UM5, designed for stealth operations."
+ icon_state = "upp_armor_commando"
+ storage_slots = 2
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+
+/obj/item/clothing/suit/storage/marine/faction/UPP/heavy
+ name = "\improper UH7 heavy plated armor"
+ desc = "An extremely heavy-duty set of body armor in service with the UPP military, the UH7 (Union Heavy MK7) is known for having powerful ballistic protection, alongside a noticeable neck guard, fortified in order to allow the wearer to endure the stresses of the bulky helmet."
+ icon_state = "upp_armor_heavy"
+ storage_slots = 3
+ slowdown = SLOWDOWN_ARMOR_HEAVY
+ flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN
+ flags_armor_protection = BODY_FLAG_ALL_BUT_HEAD
+ armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bullet = CLOTHING_ARMOR_HIGHPLUS
+ armor_laser = CLOTHING_ARMOR_MEDIUMLOW
+ armor_energy = CLOTHING_ARMOR_MEDIUM
+ armor_bomb = CLOTHING_ARMOR_HIGH
+ armor_bio = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUMLOW
+ armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS
+
+/obj/item/clothing/suit/storage/marine/faction/UPP/heavy/Initialize()
+ . = ..()
+ pockets.bypass_w_limit = list(
+ /obj/item/ammo_magazine/minigun,
+ /obj/item/ammo_magazine/pkp,
+ )
+
+/obj/item/clothing/suit/storage/marine/faction/UPP/officer
+ name = "\improper UL4 officer jacket"
+ desc = "A lightweight jacket, issued to officers of the UPP's military. Slightly protective from incoming damage, best off with proper armor however."
+ icon_state = "upp_coat_officer"
+ slowdown = SLOWDOWN_ARMOR_NONE
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS
+ armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat
+ armor_bullet = CLOTHING_ARMOR_LOW
+ armor_energy = CLOTHING_ARMOR_LOW
+ armor_bomb = CLOTHING_ARMOR_LOW
+ armor_bio = CLOTHING_ARMOR_LOW
+ armor_rad = CLOTHING_ARMOR_LOW
+ armor_internaldamage = CLOTHING_ARMOR_LOW
+ storage_slots = 3
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer)
+
+/obj/item/clothing/suit/storage/marine/faction/UPP/kapitan
+ name = "\improper UL4 senior officer jacket"
+ desc = "A lightweight jacket, issued to senior officers of the UPP's military. Made of high-quality materials, even going as far as having the ranks and insignia of the Kapitan and their Company emblazoned on the shoulders and front of the jacket. Slightly protective from incoming damage, best off with proper armor however."
+ icon_state = "upp_coat_kapitan"
+ slowdown = SLOWDOWN_ARMOR_NONE
+ armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat
+ armor_bullet = CLOTHING_ARMOR_LOW
+ armor_energy = CLOTHING_ARMOR_LOW
+ armor_bomb = CLOTHING_ARMOR_LOW
+ armor_bio = CLOTHING_ARMOR_LOW
+ armor_rad = CLOTHING_ARMOR_LOW
+ armor_internaldamage = CLOTHING_ARMOR_LOW
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS
+ storage_slots = 4
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer)
+
+/obj/item/clothing/suit/storage/marine/faction/UPP/mp
+ name = "\improper UL4 camouflaged jacket"
+ desc = "A lightweight jacket, issued to troops when they're not expected to engage in combat. Still studded to the brim with kevlar shards, though the synthread construction reduces its effectiveness."
+ icon_state = "upp_coat_mp"
+ slowdown = SLOWDOWN_ARMOR_NONE
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS
+ armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat
+ armor_bullet = CLOTHING_ARMOR_LOW
+ armor_energy = CLOTHING_ARMOR_LOW
+ armor_bomb = CLOTHING_ARMOR_LOW
+ armor_bio = CLOTHING_ARMOR_LOW
+ armor_rad = CLOTHING_ARMOR_LOW
+ armor_internaldamage = CLOTHING_ARMOR_LOW
+ storage_slots = 4
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP)
+ valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL)
+ restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND)
+
+/obj/item/clothing/suit/storage/marine/faction/UPP/jacket/ivan
+ name = "\improper UH4 Camo Jacket"
+ desc = "An experimental heavily armored variant of the UL4 given to only the most elite units... usually."
+ slowdown = SLOWDOWN_ARMOR_MEDIUM
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS|BODY_FLAG_HANDS|BODY_FLAG_FEET
+ armor_melee = CLOTHING_ARMOR_HIGH
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_HIGH
+ armor_bio = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ armor_internaldamage = CLOTHING_ARMOR_HIGH
+ storage_slots = 2
+
+
+//===========================//FREELANCER\\================================\\
+//=====================================================================\\
+
+/obj/item/clothing/suit/storage/marine/faction/freelancer
+ name = "freelancer cuirass"
+ desc = "An armored protective chestplate scrapped together from various plates. It keeps up remarkably well, as the craftsmanship is solid, and the design mirrors such armors in the UPP and the USCM. The many skilled craftsmen in the freelancers ranks produce these vests at a rate about one a month."
+ icon_state = "freelancer_armor"
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS
+ armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ storage_slots = 2
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/freelancer)
+
+//this one is for CLF
+/obj/item/clothing/suit/storage/militia
+ name = "colonial militia hauberk"
+ desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops."
+ icon = 'icons/obj/items/clothing/cm_suits.dmi'
+ icon_state = "rebel_armor"
+ item_icons = list(
+ WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi'
+ )
+ sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi')
+ slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS
+ movement_compensation = SLOWDOWN_ARMOR_MEDIUM
+ armor_melee = CLOTHING_ARMOR_MEDIUM
+ armor_bullet = CLOTHING_ARMOR_MEDIUMLOW
+ armor_laser = CLOTHING_ARMOR_MEDIUMLOW
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_bio = CLOTHING_ARMOR_MEDIUMLOW
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUM
+ storage_slots = 2
+ uniform_restricted = list(/obj/item/clothing/under/colonist)
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/tank/emergency_oxygen,
+ /obj/item/device/flashlight,
+ /obj/item/ammo_magazine,
+ /obj/item/explosive/grenade,
+ /obj/item/device/binoculars,
+ /obj/item/attachable/bayonet,
+ /obj/item/storage/backpack/general_belt,
+ /obj/item/storage/large_holster/machete,
+ /obj/item/weapon/baseballbat,
+ /obj/item/weapon/baseballbat/metal,
+ /obj/item/device/motiondetector,
+ /obj/item/device/walkman,
+ )
+ flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS
+ min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROT
+ valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL)
+
+/obj/item/clothing/suit/storage/militia/Initialize()
+ . = ..()
+ pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines.
+ pockets.bypass_w_limit = list(
+ /obj/item/ammo_magazine/rifle,
+ /obj/item/ammo_magazine/smg,
+ /obj/item/ammo_magazine/sniper,
+ )
+ pockets.max_storage_space = 8
+
+/obj/item/clothing/suit/storage/militia/vest
+ name = "colonial militia vest"
+ desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant protects only the chest and abdomen."
+ icon_state = "clf_2"
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
+ flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
+ slowdown = 0.2
+ movement_compensation = SLOWDOWN_ARMOR_MEDIUM
+
+/obj/item/clothing/suit/storage/militia/brace
+ name = "colonial militia brace"
+ desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant has some of the chest pieces removed."
+ icon_state = "clf_3"
+ flags_armor_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
+ flags_cold_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
+ slowdown = 0.2
+ movement_compensation = SLOWDOWN_ARMOR_MEDIUM
+
+/obj/item/clothing/suit/storage/militia/partial
+ name = "colonial militia partial hauberk"
+ desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This even lighter variant has some of the arm pieces removed."
+ icon_state = "clf_4"
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS
+ flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS
+ slowdown = 0.2
+
+/obj/item/clothing/suit/storage/militia/smartgun
+ name = "colonial militia harness"
+ desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This one has straps interweaved with the plates, that allow the user to fire a captured smartgun, if a bit uncomfortably."
+ flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS
+
+/obj/item/clothing/suit/storage/CMB
+ name = "\improper CMB Deputy jacket"
+ desc = "A thick and stylish black leather jacket with a Marshal's Deputy badge pinned to it. The back is enscribed with the powerful letters of 'DEPUTY' representing justice, authority, and protection in the outer rim. The laws of the Earth stretch beyond the Sol."
+ icon_state = "CMB_jacket"
+ item_state = "CMB_jacket"
+ blood_overlay_type = "coat"
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS
+ flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS
+ armor_melee = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bullet = CLOTHING_ARMOR_MEDIUMLOW
+ armor_energy = CLOTHING_ARMOR_LOW
+ armor_bomb = CLOTHING_ARMOR_LOW
+ armor_bio = CLOTHING_ARMOR_LOW
+ armor_internaldamage = CLOTHING_ARMOR_LOW
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/storage/fancy/cigarettes,
+ /obj/item/tool/lighter,
+ /obj/item/weapon/baton,
+ /obj/item/handcuffs,
+ /obj/item/device/binoculars,
+ /obj/item/attachable/bayonet,
+ /obj/item/device/flashlight,
+ /obj/item/device/healthanalyzer,
+ /obj/item/device/radio,
+ /obj/item/tank/emergency_oxygen,
+ /obj/item/tool/crowbar,
+ /obj/item/tool/crew_monitor,
+ /obj/item/tool/pen,
+ /obj/item/storage/belt/gun/m4a3,
+ /obj/item/storage/belt/gun/m44,
+ /obj/item/storage/belt/gun/mateba,
+ /obj/item/storage/belt/gun/smartpistol,
+ /obj/item/storage/large_holster/machete,
+ /obj/item/storage/large_holster/katana,
+ /obj/item/device/motiondetector,
+ /obj/item/device/walkman,
+ )
+ valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR)
+ restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND)
+
+/obj/item/clothing/suit/storage/CMB/Initialize()
+ . = ..()
+ pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines.
+ pockets.bypass_w_limit = list(
+ /obj/item/ammo_magazine/rifle,
+ /obj/item/ammo_magazine/smg,
+ /obj/item/ammo_magazine/sniper,
+ )
+ pockets.max_storage_space = 8
+
+/obj/item/clothing/suit/storage/CMB/marshal
+ name = "\improper CMB Marshal jacket"
+ desc = "A thick and stylish black leather jacket with a Marshal's badge pinned to it. The back is enscribed with the powerful letters of 'MARSHAL' representing justice, authority, and protection in the outer rim. The laws of the Earth stretch beyond the Sol."
+ icon_state = "CMB_jacket_marshal"
+ item_state = "CMB_jacket_marshal"
+
+//===========================//HELGHAST - MERCENARY\\================================\\
+//=====================================================================\\
+
+/obj/item/clothing/suit/storage/marine/veteran/mercenary
+ name = "\improper K12 ceramic plated armor"
+ desc = "A set of grey, heavy ceramic armor with dark blue highlights. It is the standard uniform of an unknown mercenary group working in the sector."
+ icon_state = "mercenary_heavy_armor"
+ flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN
+ armor_melee = CLOTHING_ARMOR_VERYHIGH
+ armor_bullet = CLOTHING_ARMOR_VERYHIGH
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_bio = CLOTHING_ARMOR_HIGHPLUS
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS
+ storage_slots = 2
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/tank/emergency_oxygen,
+ /obj/item/device/flashlight,
+ /obj/item/ammo_magazine/,
+ /obj/item/weapon/baton,
+ /obj/item/handcuffs,
+ /obj/item/storage/fancy/cigarettes,
+ /obj/item/tool/lighter,
+ /obj/item/explosive/grenade,
+ /obj/item/storage/bible,
+ /obj/item/weapon/sword/machete,
+ /obj/item/attachable/bayonet,
+ /obj/item/device/motiondetector,
+ /obj/item/device/walkman,
+ )
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary)
+ item_state_slots = list(WEAR_JACKET = "mercenary_heavy_armor")
+
+/obj/item/clothing/suit/storage/marine/veteran/mercenary/heavy
+ name = "\improper Modified K12 ceramic plated armor"
+ desc = "A set of grey, heavy ceramic armor with dark blue highlights. It has been modified with extra ceramic plates placed in its storage pouch, and seems intended to support an extremely heavy weapon."
+ armor_melee = CLOTHING_ARMOR_ULTRAHIGH
+ armor_bullet = CLOTHING_ARMOR_ULTRAHIGHPLUS
+ armor_bomb = CLOTHING_ARMOR_HIGHPLUS
+ armor_bio = CLOTHING_ARMOR_HIGHPLUS
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ armor_internaldamage = CLOTHING_ARMOR_VERYHIGHPLUS
+ storage_slots = 1
+
+/obj/item/clothing/suit/storage/marine/veteran/mercenary/miner
+ name = "\improper Y8 armored miner vest"
+ desc = "A set of beige, light armor built for protection while mining. It is a specialized uniform of an unknown mercenary group working in the sector."
+ icon_state = "mercenary_miner_armor"
+ storage_slots = 3
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/tank/emergency_oxygen,
+ /obj/item/device/flashlight,
+ /obj/item/ammo_magazine/,
+ /obj/item/weapon/baton,
+ /obj/item/handcuffs,
+ /obj/item/storage/fancy/cigarettes,
+ /obj/item/tool/lighter,
+ /obj/item/explosive/grenade,
+ /obj/item/storage/bible,
+ /obj/item/weapon/sword/machete,
+ /obj/item/attachable/bayonet,
+ /obj/item/device/motiondetector,
+ /obj/item/device/walkman,
+ )
+ uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary)
+ item_state_slots = list(WEAR_JACKET = "mercenary_miner_armor")
+
+/obj/item/clothing/suit/storage/marine/veteran/mercenary/support
+ name = "\improper Z7 armored vest"
+ desc = "A set of blue armor with yellow highlights built for protection while building or carrying out medical treatment in highly dangerous environments. It is a specialized uniform of an unknown mercenary group working in the sector."
+ icon_state = "mercenary_engineer_armor"
+ item_state_slots = list(WEAR_JACKET = "mercenary_engineer_armor")
+
+/obj/item/clothing/suit/storage/marine/M3G/hefa
+ name = "\improper HEFA Knight armor"
+ desc = "A thick piece of armor adorning a HEFA. Usually seen on a HEFA knight."
+ specialty = "HEFA Knight"
+ icon_state = "hefadier"
+ flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE
+ flags_item = NO_CRYO_STORE
+ flags_marine_armor = ARMOR_LAMP_OVERLAY
+ armor_bullet = CLOTHING_ARMOR_VERYHIGH
+ armor_melee = CLOTHING_ARMOR_VERYHIGH
+ armor_bomb = CLOTHING_ARMOR_GIGAHIGH
+
+
+//=========================//PROVOST\\================================\\
+//=======================================================================\\
+
+/obj/item/clothing/suit/storage/marine/MP/provost
+ name = "\improper M3 pattern Provost armor"
+ desc = "A standard Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
+ icon_state = "pvmedium"
+ item_state_slots = list(WEAR_JACKET = "pvmedium")
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ armor_bullet = CLOTHING_ARMOR_MEDIUM
+ armor_laser = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUM
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+ storage_slots = 3
+
+/obj/item/clothing/suit/storage/marine/MP/provost/tml
+ name = "\improper M3 pattern Senior Provost armor"
+ desc = "A more refined Provost M3 Pattern Chestplate for senior officers. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
+ icon_state = "pvleader"
+ item_state_slots = list(WEAR_JACKET = "pvleader")
+
+/obj/item/clothing/suit/storage/marine/MP/provost/marshal
+ name = "\improper M5 pattern Provost Marshal armor"
+ desc = "A custom fit luxury armor suit for Provost Marshals. Useful for letting your men know who is in charge when taking to the field."
+ icon_state = "pvmarshal"
+ item_state_slots = list(WEAR_JACKET = "pvmarshal")
+ w_class = SIZE_MEDIUM
+ storage_slots = 4
+
+/obj/item/clothing/suit/storage/marine/MP/provost/light
+ name = "\improper M3 pattern Provost light armor"
+ desc = "A lighter Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
+ icon_state = "pvlight"
+ item_state_slots = list(WEAR_JACKET = "pvlight")
+ slowdown = SLOWDOWN_ARMOR_VERY_LIGHT
+
+/obj/item/clothing/suit/storage/marine/MP/provost/light/flexi
+ name = "\improper M3 pattern Provost flexi-armor"
+ desc = "A flexible and easy to store M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage."
+ w_class = SIZE_MEDIUM
+ icon_state = "pvlight_2"
+ item_state_slots = list(WEAR_JACKET = "pvlight_2")
+ storage_slots = 2
+
+//================//UNITED AMERICAS ALLIED COMMAND\\=====================\\
+//=======================================================================\\
+
+/obj/item/clothing/suit/storage/marine/uaac/tis/sa
+ name = "\improper M3 pattern UAAC-TIS Special Agent Armor"
+ desc = "A modified luxury armor, originally meant for a USCM Provost Marshall, modified to use the colors and insignia of the TIS. The Three Eyes is technically able to requisition any equipment or personnel to fulfill its mission and often uses this privilege to outfit their agents with high-quality gear from other UA military forces."
+ icon_state = "tis"
+ item_state_slots = list(WEAR_JACKET = "tis")
+ armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_laser = CLOTHING_ARMOR_LOW
+ armor_energy = CLOTHING_ARMOR_LOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW
+ storage_slots = 2
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/tank/emergency_oxygen,
+ /obj/item/device/flashlight,
+ /obj/item/ammo_magazine/,
+ /obj/item/storage/fancy/cigarettes,
+ /obj/item/tool/lighter,
+ /obj/item/weapon/baton,
+ /obj/item/handcuffs,
+ /obj/item/explosive/grenade,
+ /obj/item/device/binoculars,
+ /obj/item/attachable/bayonet,
+ /obj/item/storage/backpack/general_belt,
+ /obj/item/device/hailer,
+ /obj/item/storage/belt/gun,
+ /obj/item/weapon/sword/ceremonial,
+ /obj/item/device/motiondetector,
+ /obj/item/device/walkman,
+ )
+ uniform_restricted = list(/obj/item/clothing/under/uaac/tis)
+
+//================//UNITED AMERICAS RIOT CONTROL\\=====================\\
+//=======================================================================\\
+
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot
+ name = "\improper UA-M1 body armor"
+ desc = "Based on the M-3 pattern employed by the USCM, the UA-M1 body armor is employed by UA security, riot control and union-busting teams. While robust against melee and bullet attacks, it critically lacks coverage of the legs and arms."
+ icon_state = "ua_riot"
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
+ flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
+ flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
+ armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_energy = CLOTHING_ARMOR_MEDIUM
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
+ slowdown = SLOWDOWN_ARMOR_VERY_LIGHT // it's lighter
+ uniform_restricted = list(/obj/item/clothing/under/marine/ua_riot)
+ flags_atom = NO_SNOW_TYPE
+
+//================//=ROYAL MARINES=\\====================================\\
+//=======================================================================\\
+
+/obj/item/clothing/suit/storage/marine/veteran/royal_marine
+ name = "kestrel armoured vest"
+ desc = "A customizable personal armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines."
+ icon_state = "rmc_light"
+ item_state = "rmc_light"
+ flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/tank/emergency_oxygen,
+ /obj/item/device/flashlight,
+ /obj/item/ammo_magazine/,
+ /obj/item/weapon/baton,
+ /obj/item/handcuffs,
+ /obj/item/storage/fancy/cigarettes,
+ /obj/item/tool/lighter,
+ /obj/item/explosive/grenade,
+ /obj/item/storage/bible,
+ /obj/item/weapon/sword/machete,
+ /obj/item/attachable/bayonet,
+ /obj/item/device/motiondetector,
+ /obj/item/device/walkman,
+ )
+
+/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light //RMC Rifleman Armor
+ icon_state = "rmc_light"
+ item_state = "rmc_light"
+ armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_energy = CLOTHING_ARMOR_MEDIUMLOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+
+/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light/team_leader //RMC TL & LT Armor
+ name = "kestrel armoured carry vest"
+ icon_state = "rmc_light_padded"
+ item_state = "rmc_light_padded"
+ storage_slots = 7
+
+/obj/item/clothing/suit/storage/marine/veteran/royal_marine/smartgun //Smartgun Spec Armor
+ name = "kestrel armoured smartgun harness"
+ icon_state = "rmc_smartgun"
+ item_state = "rmc_smartgun"
+ flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS
+
+/obj/item/clothing/suit/storage/marine/veteran/royal_marine/pointman //Pointman Spec Armor
+ name = "kestrel pointman armour"
+ desc = "A heavier version of the armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines."
+ icon_state = "rmc_pointman"
+ item_state = "rmc_pointman"
+ armor_melee = CLOTHING_ARMOR_HIGH
+ armor_bullet = CLOTHING_ARMOR_HIGHPLUS
+ armor_bomb = CLOTHING_ARMOR_HIGHPLUS
+ armor_bio = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
+ storage_slots = 7
+ slowdown = SLOWDOWN_ARMOR_LOWHEAVY
+ movement_compensation = SLOWDOWN_ARMOR_MEDIUM
+
+/atom/movable/marine_light
+ light_system = DIRECTIONAL_LIGHT
+
+//CBRN
+/obj/item/clothing/suit/storage/marine/cbrn
+ name = "\improper M3-M armor"
+ desc = "While lacking the appearance of the M3 pattern armor worn in regular service, this armor piece is still a derivative of it. It has been heavily modified to fit over the MOPP suit with additional padding and Venlar composite layers removed, so as not to restrict the wearer’s movement. However, with the reduction of composite layers, the personal protection offered is less than desired with complaints having been lodged since 2165."
+ icon_state = "cbrn"
+ item_state = "cbrn"
+ slowdown = SLOWDOWN_ARMOR_HEAVY
+ armor_melee = CLOTHING_ARMOR_MEDIUM
+ armor_bullet = CLOTHING_ARMOR_MEDIUM
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_bio = CLOTHING_ARMOR_LOW
+ armor_rad =CLOTHING_ARMOR_MEDIUMLOW
+ armor_internaldamage = CLOTHING_ARMOR_LOW
+ flags_marine_armor = NO_FLAGS
+ flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE
+ flags_inventory = BLOCKSHARPOBJ
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
+ flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
+ flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN
+ uniform_restricted = list(/obj/item/clothing/under/marine/cbrn)
+
+/obj/item/clothing/suit/storage/marine/cbrn/advanced
+ slowdown = SLOWDOWN_ARMOR_LOWHEAVY
+ armor_melee = CLOTHING_ARMOR_HIGH
+ armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_bomb = CLOTHING_ARMOR_ULTRAHIGH
+ armor_bio = CLOTHING_ARMOR_GIGAHIGHPLUS
+ armor_rad = CLOTHING_ARMOR_GIGAHIGHPLUS
+ armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS
diff --git a/code/modules/clothing/suits/marine_armor/ghillie.dm b/code/modules/clothing/suits/marine_armor/ghillie.dm
new file mode 100644
index 000000000000..1f1b71227655
--- /dev/null
+++ b/code/modules/clothing/suits/marine_armor/ghillie.dm
@@ -0,0 +1,162 @@
+#define FULL_CAMOUFLAGE_ALPHA 15
+
+/obj/item/clothing/suit/storage/marine/ghillie
+ name = "\improper M45 pattern ghillie armor"
+ desc = "A lightweight ghillie camouflage suit, used by USCM snipers on recon missions. Very lightweight, but doesn't protect much."
+ icon_state = "ghillie_armor"
+ armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ flags_marine_armor = ARMOR_LAMP_OVERLAY
+ flags_item = MOB_LOCK_ON_EQUIP
+ specialty = "M45 pattern ghillie"
+ valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO)
+ restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND)
+
+ var/camo_active = FALSE
+ var/hide_in_progress = FALSE
+ var/full_camo_alpha = FULL_CAMOUFLAGE_ALPHA
+ var/incremental_shooting_camo_penalty = 35
+ var/current_camo = FULL_CAMOUFLAGE_ALPHA
+ var/camouflage_break = 5 SECONDS
+ var/camouflage_enter_delay = 4 SECONDS
+ var/can_camo = TRUE
+
+ actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/prepare_position)
+
+/obj/item/clothing/suit/storage/marine/ghillie/dropped(mob/user)
+ if(ishuman(user) && !issynth(user))
+ deactivate_camouflage(user, FALSE)
+
+ . = ..()
+
+/obj/item/clothing/suit/storage/marine/ghillie/verb/camouflage()
+ set name = "Prepare Position"
+ set desc = "Use the ghillie suit and the nearby environment to become near invisible."
+ set category = "Object"
+ set src in usr
+ if(!usr || usr.is_mob_incapacitated(TRUE))
+ return
+
+ if(!ishuman(usr) || hide_in_progress || !can_camo)
+ return
+ var/mob/living/carbon/human/H = usr
+ if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SNIPER && !(GLOB.character_traits[/datum/character_trait/skills/spotter] in H.traits))
+ to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]..."))
+ return
+ if(H.wear_suit != src)
+ to_chat(H, SPAN_WARNING("You must be wearing the ghillie suit to activate it!"))
+ return
+
+ if(camo_active)
+ deactivate_camouflage(H)
+ return
+
+ H.visible_message(SPAN_DANGER("[H] goes prone, and begins adjusting \his ghillie suit!"), SPAN_NOTICE("You go prone, and begins adjusting your ghillie suit."), max_distance = 4)
+ hide_in_progress = TRUE
+ H.unset_interaction() // If we're sticking to a machine gun or what not.
+ if(!do_after(H, camouflage_enter_delay, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
+ hide_in_progress = FALSE
+ return
+ hide_in_progress = FALSE
+ RegisterSignal(H, list(
+ COMSIG_MOB_FIRED_GUN,
+ COMSIG_MOB_FIRED_GUN_ATTACHMENT)
+ , PROC_REF(fade_in))
+ RegisterSignal(H, list(
+ COMSIG_MOB_DEATH,
+ COMSIG_HUMAN_EXTINGUISH
+ ), PROC_REF(deactivate_camouflage))
+ camo_active = TRUE
+ H.alpha = full_camo_alpha
+ H.FF_hit_evade = 1000
+ ADD_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT)
+
+ RegisterSignal(H, COMSIG_MOB_MOVE_OR_LOOK, PROC_REF(handle_mob_move_or_look))
+
+ var/datum/mob_hud/security/advanced/SA = GLOB.huds[MOB_HUD_SECURITY_ADVANCED]
+ SA.remove_from_hud(H)
+ var/datum/mob_hud/xeno_infection/XI = GLOB.huds[MOB_HUD_XENO_INFECTION]
+ XI.remove_from_hud(H)
+
+ anim(H.loc, H, 'icons/mob/mob.dmi', null, "cloak", null, H.dir)
+
+
+/obj/item/clothing/suit/storage/marine/ghillie/proc/deactivate_camouflage(mob/user)
+ SIGNAL_HANDLER
+ var/mob/living/carbon/human/H = user
+ if(!istype(H))
+ return FALSE
+
+ if(!camo_active)
+ return
+
+ UnregisterSignal(H, list(
+ COMSIG_MOB_FIRED_GUN,
+ COMSIG_MOB_FIRED_GUN_ATTACHMENT,
+ COMSIG_MOB_DEATH,
+ COMSIG_HUMAN_EXTINGUISH,
+ COMSIG_MOB_MOVE_OR_LOOK
+ ))
+
+ camo_active = FALSE
+ animate(H, alpha = initial(H.alpha), flags = ANIMATION_END_NOW)
+ H.FF_hit_evade = initial(H.FF_hit_evade)
+ REMOVE_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT)
+
+ var/datum/mob_hud/security/advanced/SA = GLOB.huds[MOB_HUD_SECURITY_ADVANCED]
+ SA.add_to_hud(H)
+ var/datum/mob_hud/xeno_infection/XI = GLOB.huds[MOB_HUD_XENO_INFECTION]
+ XI.add_to_hud(H)
+
+ H.visible_message(SPAN_DANGER("[H]'s camouflage fails!"), SPAN_WARNING("Your camouflage fails!"), max_distance = 4)
+
+/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_in(mob/user)
+ SIGNAL_HANDLER
+ var/mob/living/carbon/human/H = user
+ if(camo_active)
+ if(current_camo < full_camo_alpha)
+ current_camo = full_camo_alpha
+ current_camo = clamp(current_camo + incremental_shooting_camo_penalty, full_camo_alpha, 255)
+ H.alpha = current_camo
+ addtimer(CALLBACK(src, PROC_REF(fade_out_finish), H), camouflage_break, TIMER_OVERRIDE|TIMER_UNIQUE)
+ animate(H, alpha = full_camo_alpha + 5, time = camouflage_break, easing = LINEAR_EASING, flags = ANIMATION_END_NOW)
+
+/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_out_finish(mob/living/carbon/human/H)
+ if(camo_active && H.wear_suit == src)
+ to_chat(H, SPAN_BOLDNOTICE("The smoke clears and your position is once again hidden completely!"))
+ animate(H, alpha = full_camo_alpha)
+ current_camo = full_camo_alpha
+
+/obj/item/clothing/suit/storage/marine/ghillie/proc/handle_mob_move_or_look(mob/living/mover, actually_moving, direction, specific_direction)
+ SIGNAL_HANDLER
+
+ if(camo_active && actually_moving)
+ deactivate_camouflage(mover)
+
+/datum/action/item_action/specialist/prepare_position
+ ability_primacy = SPEC_PRIMARY_ACTION_1
+
+/datum/action/item_action/specialist/prepare_position/New(mob/living/user, obj/item/holder)
+ ..()
+ name = "Prepare Position"
+ button.name = name
+ button.overlays.Cut()
+ var/image/IMG = image('icons/mob/hud/actions.dmi', button, "prepare_position")
+ button.overlays += IMG
+
+/datum/action/item_action/specialist/prepare_position/can_use_action()
+ var/mob/living/carbon/human/H = owner
+ if(istype(H) && !H.is_mob_incapacitated() && H.body_position == STANDING_UP && holder_item == H.wear_suit)
+ return TRUE
+
+/datum/action/item_action/specialist/prepare_position/action_activate()
+ var/obj/item/clothing/suit/storage/marine/ghillie/GS = holder_item
+ GS.camouflage()
+
+#undef FULL_CAMOUFLAGE_ALPHA
+
+/obj/item/clothing/suit/storage/marine/ghillie/forecon
+ name = "UDEP Thermal Poncho"
+ desc = "UDEP or the Ultra Diffusive Environmental Poncho is a camouflaged rain-cover worn to protect against the elements and chemical spills. It's commonly treated with an infrared absorbing coating, making a marine almost invisible in the rain. Favoured by USCM specialists for it's comfort and practicality."
+ icon_state = "mercenary_miner_armor"
+ flags_atom = MOB_LOCK_ON_EQUIP|NO_SNOW_TYPE|NO_NAME_OVERRIDE
diff --git a/code/modules/clothing/suits/marine_armor/intel.dm b/code/modules/clothing/suits/marine_armor/intel.dm
new file mode 100644
index 000000000000..b3f0f93e004d
--- /dev/null
+++ b/code/modules/clothing/suits/marine_armor/intel.dm
@@ -0,0 +1,118 @@
+/obj/item/clothing/suit/storage/marine/medium/rto/intel
+ name = "\improper XM4 pattern intelligence officer armor"
+ uniform_restricted = list(/obj/item/clothing/under/marine/officer/intel)
+ specialty = "XM4 pattern intel"
+ desc = "Tougher than steel, quieter than whispers, the XM4 Intel Armor provides capable protection combined with an experimental integrated motion tracker. It took an R&D team a weekend to develop and costs more than the Chinook Station... probably. When worn, uniform accessories such as webbing cannot be attached due to the motion sensors occupying the clips."
+ desc_lore = "ARMAT Perfection. The XM4 Soldier Awareness System mixes M4-style hard armor and a distributed series of motion sensors clipped onto the breastplate. When connected to any HUD optic, it replicates the effects of an M314 Motion Detector unit, increasing user situational awareness. It is currently undergoing field trials by intelligence operatives."
+ storage_slots = 5
+ /// XM4 Integral Motion Detector Ability
+ actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/intel/toggle_motion_detector)
+ var/motion_detector = FALSE
+ var/obj/item/device/motiondetector/xm4/proximity
+ var/long_range_cooldown = 2
+ var/recycletime = 120
+
+/obj/item/clothing/suit/storage/marine/medium/rto/intel/Initialize(mapload, ...)
+ . = ..()
+ proximity = new(src)
+ update_icon()
+
+/datum/action/item_action/intel/action_activate()
+ if(!ishuman(owner))
+ return
+
+/datum/action/item_action/intel/update_button_icon()
+ return
+
+/datum/action/item_action/intel/toggle_motion_detector/New(Target, obj/item/holder)
+ . = ..()
+ name = "Toggle Motion Detector"
+ action_icon_state = "motion_detector"
+ button.name = name
+ button.overlays.Cut()
+ button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state)
+
+/datum/action/item_action/intel/toggle_motion_detector/action_activate()
+ . = ..()
+ var/obj/item/clothing/suit/storage/marine/medium/rto/intel/recon = holder_item
+ recon.toggle_motion_detector(owner)
+
+/datum/action/item_action/intel/toggle_motion_detector/proc/update_icon()
+ if(!holder_item)
+ return
+ var/obj/item/clothing/suit/storage/marine/medium/rto/intel/recon = holder_item
+ if(recon.motion_detector)
+ button.icon_state = "template_on"
+ else
+ button.icon_state = "template"
+
+/obj/item/clothing/suit/storage/marine/medium/rto/intel/process()
+ if(!motion_detector)
+ STOP_PROCESSING(SSobj, src)
+ if(motion_detector)
+ recycletime--
+ if(!recycletime)
+ recycletime = initial(recycletime)
+ proximity.refresh_blip_pool()
+ long_range_cooldown--
+ if(long_range_cooldown)
+ return
+ long_range_cooldown = initial(long_range_cooldown)
+ proximity.scan()
+
+/obj/item/clothing/suit/storage/marine/medium/rto/intel/proc/toggle_motion_detector(mob/user)
+ to_chat(user,SPAN_NOTICE("You [motion_detector? "disable " : "enable "] \the [src]'s motion detector."))
+ if(!motion_detector)
+ playsound(loc,'sound/items/detector_turn_on.ogg', 25, 1)
+ else
+ playsound(loc,'sound/items/detector_turn_off.ogg', 25, 1)
+ motion_detector = !motion_detector
+ var/datum/action/item_action/intel/toggle_motion_detector/TMD = locate(/datum/action/item_action/intel/toggle_motion_detector) in actions
+ TMD.update_icon()
+ motion_detector()
+
+/obj/item/clothing/suit/storage/marine/medium/rto/intel/proc/motion_detector()
+ if(motion_detector)
+ START_PROCESSING(SSobj, src)
+ else
+ STOP_PROCESSING(SSobj, src)
+
+/obj/item/clothing/suit/storage/marine/medium/rto/intel/mob_can_equip(mob/living/carbon/human/user, slot, disable_warning) //Thanks to Drathek for the help on this part!
+ if(!..())
+ return FALSE
+
+ // Only equip if uniform doesn't already have a utility accessory slot equipped
+ var/obj/item/clothing/under/uniform = user.w_uniform
+ var/accessory = locate(/obj/item/clothing/accessory/storage) in uniform.accessories
+ if(accessory)
+ to_chat(user, SPAN_WARNING("[src] can't be worn with [accessory]."))
+ return FALSE
+ // Only equip if user has expert intel skill level
+ if(!skillcheck(user, SKILL_INTEL, SKILL_INTEL_EXPERT))
+ to_chat(user, SPAN_WARNING("You don't seem to know how to use [src]..."))
+ return FALSE
+ return TRUE
+
+/obj/item/clothing/suit/storage/marine/medium/rto/intel/equipped(mob/user, slot, silent) //When XM4 is equipped this removes ACCESSORY_SLOT_UTILITY as a valid accessory for the uniform
+ . = ..()
+ if(slot == WEAR_JACKET)
+ var/mob/living/carbon/human/human = user
+ var/obj/item/clothing/under/uniform = human.w_uniform
+ if(uniform?.valid_accessory_slots)
+ uniform?.valid_accessory_slots -= ACCESSORY_SLOT_UTILITY
+
+/obj/item/clothing/suit/storage/marine/medium/rto/intel/unequipped(mob/user, slot) //When unequipped this adds the ACCESSORY_SLOT_UTILITY back as a valid accessory
+ . = ..()
+ if(slot == WEAR_JACKET)
+ var/mob/living/carbon/human/human = user
+ var/obj/item/clothing/under/uniform = human.w_uniform
+ if(uniform)
+ // Figure out if the uniform originally allowed ACCESSORY_SLOT_UTILITY
+ var/obj/item/clothing/under/temp_uniform = new uniform.type
+ if(temp_uniform.valid_accessory_slots)
+ for(var/allowed in temp_uniform.valid_accessory_slots)
+ if(allowed == ACCESSORY_SLOT_UTILITY)
+ // It was allowed previously, now add it back
+ uniform.valid_accessory_slots += ACCESSORY_SLOT_UTILITY
+ break
+ qdel(temp_uniform)
diff --git a/code/modules/clothing/suits/marine_armor/smartgunner.dm b/code/modules/clothing/suits/marine_armor/smartgunner.dm
new file mode 100644
index 000000000000..430942fbbef8
--- /dev/null
+++ b/code/modules/clothing/suits/marine_armor/smartgunner.dm
@@ -0,0 +1,60 @@
+/obj/item/clothing/suit/storage/marine/smartgunner
+ name = "\improper M56 combat harness"
+ desc = "A heavy protective vest designed to be worn with the M56 Smartgun System. \nIt has specially designed straps and reinforcement to carry the Smartgun and accessories."
+ icon_state = "8"
+ item_state = "armor"
+ armor_laser = CLOTHING_ARMOR_LOW
+ armor_bomb = CLOTHING_ARMOR_MEDIUM
+ armor_rad = CLOTHING_ARMOR_MEDIUM
+ storage_slots = 2
+ slowdown = SLOWDOWN_ARMOR_LIGHT
+ flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS
+ allowed = list(
+ /obj/item/tank/emergency_oxygen,
+ /obj/item/device/flashlight,
+ /obj/item/ammo_magazine,
+ /obj/item/explosive/mine,
+ /obj/item/attachable/bayonet,
+ /obj/item/weapon/gun/smartgun,
+ /obj/item/storage/backpack/general_belt,
+ /obj/item/device/motiondetector,
+ /obj/item/device/walkman,
+ )
+
+/obj/item/clothing/suit/storage/marine/smartgunner/Initialize()
+ . = ..()
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD] && name == "M56 combat harness")
+ name = "M56 snow combat harness"
+ else
+ name = "M56 combat harness"
+ //select_gamemode_skin(type)
+
+/obj/item/clothing/suit/storage/marine/smartgunner/mob_can_equip(mob/equipping_mob, slot, disable_warning = FALSE)
+ . = ..()
+
+ if(equipping_mob.back)
+ to_chat(equipping_mob, SPAN_WARNING("You can't equip [src] while wearing a backpack."))
+ return FALSE
+
+/obj/item/clothing/suit/storage/marine/smartgunner/equipped(mob/user, slot, silent)
+ . = ..()
+
+ if(slot == WEAR_JACKET)
+ RegisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP, PROC_REF(check_equipping))
+
+/obj/item/clothing/suit/storage/marine/smartgunner/proc/check_equipping(mob/living/carbon/human/equipping_human, obj/item/equipping_item, slot)
+ SIGNAL_HANDLER
+
+ if(slot != WEAR_BACK)
+ return
+
+ . = COMPONENT_HUMAN_CANCEL_ATTEMPT_EQUIP
+
+ if(equipping_item.flags_equip_slot == SLOT_BACK)
+ to_chat(equipping_human, SPAN_WARNING("You can't equip [equipping_item] on your back while wearing [src]."))
+ return
+
+/obj/item/clothing/suit/storage/marine/smartgunner/unequipped(mob/user, slot)
+ . = ..()
+
+ UnregisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP)
diff --git a/code/modules/clothing/suits/marine_armor/spec_fire.dm b/code/modules/clothing/suits/marine_armor/spec_fire.dm
new file mode 100644
index 000000000000..4d577cc98b15
--- /dev/null
+++ b/code/modules/clothing/suits/marine_armor/spec_fire.dm
@@ -0,0 +1,150 @@
+#define FIRE_SHIELD_CD 150
+
+/obj/item/clothing/suit/storage/marine/M35
+ name = "\improper M35 pyrotechnician armor"
+ desc = "A custom set of M35 armor designed for use by USCM Pyrotechnicians."
+ icon_state = "pyro_armor"
+ armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
+ armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH
+ fire_intensity_resistance = BURN_LEVEL_TIER_1
+ max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROT
+ flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
+ flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
+ flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET
+ flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE
+ specialty = "M35 pyrotechnician"
+ actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/fire_shield)
+ unacidable = TRUE
+ var/fire_shield_on = FALSE
+ var/can_activate = TRUE
+
+/obj/item/clothing/suit/storage/marine/M35/equipped(mob/user, slot)
+ if(slot == WEAR_JACKET)
+ RegisterSignal(user, COMSIG_LIVING_FLAMER_CROSSED, PROC_REF(flamer_fire_callback))
+ ..()
+
+/obj/item/clothing/suit/storage/marine/M35/verb/fire_shield()
+ set name = "Activate Fire Shield"
+ set desc = "Activate your armor's FIREWALK protocol for a short duration."
+ set category = "Pyro"
+ set src in usr
+ if(!usr || usr.is_mob_incapacitated(TRUE))
+ return
+ if(!ishuman(usr))
+ return
+ var/mob/living/carbon/human/H = usr
+
+ if(H.wear_suit != src)
+ to_chat(H, SPAN_WARNING("You must be wearing the M35 pyro armor to activate FIREWALK protocol!"))
+ return
+
+ if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_PYRO)
+ to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]..."))
+ return
+
+ if(fire_shield_on)
+ to_chat(H, SPAN_WARNING("You already have FIREWALK protocol activated!"))
+ return
+
+ if(!can_activate)
+ to_chat(H, SPAN_WARNING("FIREWALK protocol was recently activated, wait before trying to activate it again."))
+ return
+
+ to_chat(H, SPAN_NOTICE("FIREWALK protocol has been activated. You will now be immune to fire for 6 seconds!"))
+ RegisterSignal(H, COMSIG_LIVING_PREIGNITION, PROC_REF(fire_shield_is_on))
+ RegisterSignal(H, list(
+ COMSIG_LIVING_FLAMER_FLAMED,
+ ), PROC_REF(flamer_fire_callback))
+ fire_shield_on = TRUE
+ can_activate = FALSE
+ for(var/X in actions)
+ var/datum/action/A = X
+ A.update_button_icon()
+ addtimer(CALLBACK(src, PROC_REF(end_fire_shield), H), 6 SECONDS)
+
+ H.add_filter("firewalk_on", 1, list("type" = "outline", "color" = "#03fcc6", "size" = 1))
+
+/obj/item/clothing/suit/storage/marine/M35/proc/end_fire_shield(mob/living/carbon/human/user)
+ if(!istype(user))
+ return
+ to_chat(user, SPAN_NOTICE("FIREWALK protocol has finished."))
+ UnregisterSignal(user, list(
+ COMSIG_LIVING_PREIGNITION,
+ COMSIG_LIVING_FLAMER_FLAMED,
+ ))
+ fire_shield_on = FALSE
+
+ user.remove_filter("firewalk_on")
+
+ addtimer(CALLBACK(src, PROC_REF(enable_fire_shield), user), FIRE_SHIELD_CD)
+
+/obj/item/clothing/suit/storage/marine/M35/proc/enable_fire_shield(mob/living/carbon/human/user)
+ if(!istype(user))
+ return
+ to_chat(user, SPAN_NOTICE("FIREWALK protocol can be activated again."))
+ can_activate = TRUE
+
+ for(var/X in actions)
+ var/datum/action/A = X
+ A.update_button_icon()
+
+/// This proc is solely so that IgniteMob() fails
+/obj/item/clothing/suit/storage/marine/M35/proc/fire_shield_is_on(mob/living/L)
+ SIGNAL_HANDLER
+
+ if(L.fire_reagent?.fire_penetrating)
+ return
+
+ return COMPONENT_CANCEL_IGNITION
+
+/obj/item/clothing/suit/storage/marine/M35/proc/flamer_fire_callback(mob/living/L, datum/reagent/R)
+ SIGNAL_HANDLER
+
+ if(R.fire_penetrating)
+ return
+
+ . = COMPONENT_NO_IGNITE
+ if(fire_shield_on)
+ . |= COMPONENT_NO_BURN
+
+/obj/item/clothing/suit/storage/marine/M35/dropped(mob/user)
+ if (!istype(user))
+ return
+ UnregisterSignal(user, list(
+ COMSIG_LIVING_PREIGNITION,
+ COMSIG_LIVING_FLAMER_CROSSED,
+ COMSIG_LIVING_FLAMER_FLAMED,
+ ))
+ ..()
+
+#undef FIRE_SHIELD_CD
+
+/datum/action/item_action/specialist/fire_shield
+ ability_primacy = SPEC_PRIMARY_ACTION_2
+
+/datum/action/item_action/specialist/fire_shield/New(mob/living/user, obj/item/holder)
+ ..()
+ name = "Activate Fire Shield"
+ button.name = name
+ button.overlays.Cut()
+ var/image/IMG = image('icons/obj/items/clothing/cm_suits.dmi', button, "pyro_armor")
+ button.overlays += IMG
+
+/datum/action/item_action/specialist/fire_shield/action_cooldown_check()
+ var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item
+ if (!istype(armor))
+ return FALSE
+
+ return !armor.can_activate
+
+/datum/action/item_action/specialist/fire_shield/can_use_action()
+ var/mob/living/carbon/human/H = owner
+ if(istype(H) && !H.is_mob_incapacitated() && H.wear_suit == holder_item)
+ return TRUE
+
+/datum/action/item_action/specialist/fire_shield/action_activate()
+ var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item
+ if (!istype(armor))
+ return
+
+ armor.fire_shield()
diff --git a/code/modules/clothing/suits/marine_coat.dm b/code/modules/clothing/suits/marine_coat.dm
index 49569ec1295d..2dd93eb66aee 100644
--- a/code/modules/clothing/suits/marine_coat.dm
+++ b/code/modules/clothing/suits/marine_coat.dm
@@ -278,15 +278,29 @@
icon_state = "o_jacket"
item_state = "o_jacket"
-//==================War Correspondent==================\\
+//==================Combat Correspondent==================\\
/obj/item/clothing/suit/storage/jacket/marine/reporter
name = "combat correspondent jacket"
desc = "A jacket for the most fashionable war correspondents."
- icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi'
- icon_state = "wc_suit"
- item_state = "wc_suit"
- contained_sprite = TRUE
+ icon_state = "cc_brown"
+ item_state = "cc_brown"
+ flags_atom = NO_SNOW_TYPE
+ has_buttons = FALSE
+
+/obj/item/clothing/suit/storage/jacket/marine/reporter/green
+ icon_state = "cc_green"
+ item_state = "cc_green"
+
+
+/obj/item/clothing/suit/storage/jacket/marine/reporter/black
+ icon_state = "cc_black"
+ item_state = "cc_black"
+
+/obj/item/clothing/suit/storage/jacket/marine/reporter/blue
+ icon_state = "cc_blue"
+ item_state = "cc_blue"
+
//==================Corporate Liaison==================\\
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index b5859bb6f2d4..54148d4f7076 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -143,8 +143,8 @@
valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL)
/obj/item/clothing/suit/storage/apron/overalls
- name = "coveralls"
- desc = "A set of denim overalls."
+ name = "blue coveralls"
+ desc = "A pair of denim overalls. With a large pocket in the front these overalls are popular with workers of all kinds."
icon_state = "overalls"
item_state = "overalls"
flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS
@@ -167,6 +167,18 @@
)
valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL)
+/obj/item/clothing/suit/storage/apron/overalls/tan
+ name = "tan coveralls"
+ desc = "A pair of tan overalls. With a large pocket in the front these overalls are popular with workers of all kinds."
+ icon_state = "overalls_tan"
+ item_state = "overalls_tan"
+
+/obj/item/clothing/suit/storage/apron/overalls/red
+ name = "red coveralls"
+ desc = "A pair of reddish-brown overalls. With a large pocket in the front these overalls are popular with workers of all kinds."
+ icon_state = "overalls_red"
+ item_state = "overalls_red"
+
/obj/item/clothing/suit/syndicatefake
name = "red space suit replica"
icon_state = "syndicate"
diff --git a/code/modules/clothing/under/gimmick.dm b/code/modules/clothing/under/gimmick.dm
index d8e0a16fc7a2..793bc0593735 100644
--- a/code/modules/clothing/under/gimmick.dm
+++ b/code/modules/clothing/under/gimmick.dm
@@ -11,6 +11,10 @@
has_sensor = UNIFORM_NO_SENSORS
displays_id = 0
+ item_icons = list(
+ WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi',
+ )
+
//JASON
/obj/item/clothing/under/gimmick/jason
name = "dirty work attire"
diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm
index 2142312fe995..37f1cdd891c3 100644
--- a/code/modules/clothing/under/jobs/medsci.dm
+++ b/code/modules/clothing/under/jobs/medsci.dm
@@ -176,12 +176,12 @@
armor_internaldamage = CLOTHING_ARMOR_LOW
item_state_slots = list(WEAR_BODY = "medical")
-/obj/item/clothing/under/rank/medical/nurse
- name = "medical nurse scrubs"
- desc = "It's made of a special fiber that provides minor protection against biohazards. This one features an orange armband."
- icon_state = "scrubsnurse"
- item_state = "scrubsnurse"
- item_state_slots = list(WEAR_BODY = "scrubsnurse")
+/obj/item/clothing/under/rank/medical/lightblue
+ name = "medical scrubs"
+ desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in light blue."
+ icon_state = "scrubslightblue"
+ flags_jumpsuit = FALSE
+ item_state_slots = list(WEAR_BODY = "scrubslightblue")
/obj/item/clothing/under/rank/medical/blue
name = "medical scrubs"
@@ -204,6 +204,13 @@
flags_jumpsuit = FALSE
item_state_slots = list(WEAR_BODY = "scrubspurple")
+/obj/item/clothing/under/rank/medical/orange
+ name = "medical scrubs"
+ desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in prisoner orange."
+ icon_state = "scrubsorange"
+ flags_jumpsuit = FALSE
+ item_state_slots = list(WEAR_BODY = "scrubsorange")
+
/obj/item/clothing/under/rank/psych
desc = "A basic white jumpsuit. It has turquoise markings that denote the wearer as a psychiatrist."
name = "psychiatrist's jumpsuit"
diff --git a/code/modules/clothing/under/marine_uniform.dm b/code/modules/clothing/under/marine_uniform.dm
index d09b1984420e..4f0c06273d9e 100644
--- a/code/modules/clothing/under/marine_uniform.dm
+++ b/code/modules/clothing/under/marine_uniform.dm
@@ -692,6 +692,40 @@
has_sensor = UNIFORM_HAS_SENSORS
sensor_faction = FACTION_COLONIST
+/obj/item/clothing/under/colonist/workwear
+ name = "grey workwear"
+ desc = "A pair of black slacks and a short-sleeve grey workshirt. Standard uniform for Weyland Yutani employees working in colony operations and administration."
+ icon_state = "workwear_grey"
+ worn_state = "workwear_grey"
+
+/obj/item/clothing/under/colonist/workwear/khaki
+ name = "khaki workwear"
+ desc = "A pair of jeans paired with a khaki workshirt. A common pairing among blue-collar workers due to its drab look."
+ icon_state = "workwear_khaki"
+ worn_state = "workwear_khaki"
+ flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE
+
+/obj/item/clothing/under/colonist/workwear/pink
+ name = "pink workwear"
+ desc = "A pair of jeans paired with a pink workshirt. Pink? Your wife might not think so, but such outlandish attire deserves questioning by corporate security. What are you, some kind of free-thinking anarchist?"
+ icon_state = "workwear_pink"
+ worn_state = "workwear_pink"
+ flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE
+
+/obj/item/clothing/under/colonist/workwear/blue
+ name = "blue workwear"
+ desc = "A pair of brown canvas workpants paired with a dark blue workshirt. A common pairing among blue-collar workers."
+ icon_state = "workwear_blue"
+ worn_state = "workwear_blue"
+ flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE
+
+/obj/item/clothing/under/colonist/workwear/green
+ name = "green workwear"
+ desc = "A pair of brown canvas workpants paired with a green workshirt. An common pairing among blue-collar workers."
+ icon_state = "workwear_green"
+ worn_state = "workwear_green"
+ flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE
+
/obj/item/clothing/under/colonist/clf
name = "\improper Colonial Liberation Front uniform"
desc = "A stylish grey-green jumpsuit - standard issue for colonists. This version appears to have the symbol of the Colonial Liberation Front emblazoned in select areas."
@@ -735,6 +769,7 @@
displays_id = FALSE
has_sensor = UNIFORM_HAS_SENSORS
sensor_faction = FACTION_MARINE
+
/obj/item/clothing/under/tshirt/gray_blu
name = "gray T-shirt and jeans"
desc = "A comfortable gray T-shirt and blue jeans."
@@ -755,7 +790,7 @@
/obj/item/clothing/under/CM_uniform
name = "\improper Colonial Marshal uniform"
- desc = "A blue shirt and tan trousers - the official uniform for a Colonial Marshal."
+ desc = "A pair of off-white slacks and a blue button-down shirt with a dark brown tie; the standard uniform of the Colonial Marshals."
icon_state = "marshal"
worn_state = "marshal"
armor_melee = CLOTHING_ARMOR_LOW
@@ -766,7 +801,7 @@
armor_bio = CLOTHING_ARMOR_NONE
armor_rad = CLOTHING_ARMOR_NONE
armor_internaldamage = CLOTHING_ARMOR_LOW
-
+ flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE
/obj/item/clothing/under/liaison_suit
name = "liaison's tan suit"
@@ -847,11 +882,24 @@
/obj/item/clothing/under/marine/reporter
name = "combat correspondent uniform"
desc = "A relaxed and robust uniform fit for any potential reporting needs."
- icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi'
- icon_state = "wc_uniform"
- worn_state = "wc_uniform"
- contained_sprite = TRUE
- flags_atom = NO_NAME_OVERRIDE
+ icon_state = "cc_white"
+ worn_state = "cc_white"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+ item_icons = list(
+ WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi',
+ )
+
+/obj/item/clothing/under/marine/reporter/black
+ icon_state = "cc_black"
+ worn_state = "cc_black"
+
+/obj/item/clothing/under/marine/reporter/orange
+ icon_state = "cc_orange"
+ worn_state = "cc_orange"
+
+/obj/item/clothing/under/marine/reporter/red
+ icon_state = "cc_red"
+ worn_state = "cc_red"
/obj/item/clothing/under/twe_suit
name = "representative's fine suit"
@@ -988,7 +1036,7 @@
/obj/item/clothing/under/marine/cbrn //CBRN MOPP suit
name = "\improper M3 MOPP suit"
- desc = "M3 MOPP suits are specially designed and engineered to protect the wearer from unshielded exposure to any Chemical, Biological, Radiological, or Nuclear (CBRN) threats in the field. Despite somewhat resembling commonplace synthetic rubber HAZMAT suits, the Venlar composition provides a significantly more dense and durable baseline material, allowing for modifications without the loss of its air-tight nature. The wearer’s comfort has been significantly taken into consideration, with the suit providing sufficient freedom of movement for even delicate maneuvers and movements once it is donned. As the sealed environment retains many issues from the past, measures have been taken to significantly reduce the suit's passive heat absorption and increase internal absorbance through linings, as well as the capability to fully integrate with external cooling, air cycling, and other life support systems. Strips of M11 detector paper are included with each suit, designed to be slotted into the dominant arm of the wearer’s protective suit, the non-dominant wrist, and then back to the knee, providing at-a-glance warning signs across alternating sides of the body while working. The arm and knee markers are intended to be on the user's dominant The papers change color upon contact with harmful chemical agents, displaying a clear white initially and turning red when activated. The suit has a recommended lifespan of twenty-four hours once contact with a toxic environment is made, but depending on the severity this can be shortened to eight hours or less. Beyond that point, the accuracy of the detector papers deteriorates significantly, as does the protection of the suit itself."
+ desc = "M3 MOPP suits are specially designed and engineered to protect the wearer from unshielded exposure to any Chemical, Biological, Radiological, or Nuclear (CBRN) threats in the field. The suit has a recommended lifespan of twenty-four hours once contact with a toxic environment is made, but depending on the severity this can be shortened to eight hours or less."
desc_lore = "Since the outbreak of the New Earth Plague in 2157 and the subsequent Interstellar Commerce Commission (ICC) sanctioned decontamination of the colony and its 40 million inhabitants, the abandoned colony has been left under a strict quarantine blockade to prevent any potential scavengers from spreading what’s left of the highly-durable airborne flesh-eating bacteria. Following those events, the three major superpowers have been investing heavily in the development and procurement of CBRN equipment, in no small part due to the extensive damage that the plague and other similar bioweapons could do. The \"Marine 70\" upgrade package and the launch of the M3 pattern armor series saw the first M3-M prototypes approved for CBRN usage."
flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE
icon_state = "cbrn"
diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm
index 0743756a6878..4fe8cc193ce6 100644
--- a/code/modules/clothing/under/ties.dm
+++ b/code/modules/clothing/under/ties.dm
@@ -154,18 +154,18 @@
/obj/item/clothing/accessory/medal/on_attached(obj/item/clothing/S, mob/living/user, silent)
. = ..()
if(.)
- RegisterSignal(S, COMSIG_ITEM_PICKUP, PROC_REF(remove_medal))
+ RegisterSignal(S, COMSIG_ITEM_EQUIPPED, PROC_REF(remove_medal))
-/obj/item/clothing/accessory/medal/proc/remove_medal(obj/item/clothing/C, mob/user)
+/obj/item/clothing/accessory/medal/proc/remove_medal(obj/item/clothing/C, mob/user, slot)
SIGNAL_HANDLER
- if(user.real_name != recipient_name)
+ if(user.real_name != recipient_name && (slot == WEAR_BODY || slot == WEAR_JACKET))
C.remove_accessory(user, src)
user.drop_held_item(src)
/obj/item/clothing/accessory/medal/on_removed(mob/living/user, obj/item/clothing/C)
. = ..()
if(.)
- UnregisterSignal(C, COMSIG_ITEM_PICKUP)
+ UnregisterSignal(C, COMSIG_ITEM_EQUIPPED)
/obj/item/clothing/accessory/medal/attack(mob/living/carbon/human/H, mob/living/carbon/human/user)
if(!(istype(H) && istype(user)))
@@ -358,6 +358,11 @@
desc = "An armband, worn by the crew to display which department they're assigned to. This one is white and green."
icon_state = "medgreen"
+/obj/item/clothing/accessory/armband/nurse
+ name = "nurse armband"
+ desc = "An armband, worn by the rookie nurses to display they are still not doctors. This one is dark red."
+ icon_state = "nurse"
+
//patches
/obj/item/clothing/accessory/patch
name = "USCM patch"
@@ -746,7 +751,7 @@
w_class = SIZE_LARGE //Allow storage containers that's medium or below
storage_slots = null
max_w_class = SIZE_MEDIUM
- max_storage_space = 6 //weight system like backpacks, hold enough for 2 medium (normal) size items, or 3 small items, or 6 tiny items
+ max_storage_space = 8 //weight system like backpacks, hold enough for 2 medium (normal) size items, or 4 small items, or 8 tiny items
cant_hold = list( //Prevent inventory powergame
/obj/item/storage/firstaid,
/obj/item/storage/bible,
diff --git a/code/modules/cm_aliens/XenoStructures.dm b/code/modules/cm_aliens/XenoStructures.dm
index 1f27df25fc52..c014fbf9c211 100644
--- a/code/modules/cm_aliens/XenoStructures.dm
+++ b/code/modules/cm_aliens/XenoStructures.dm
@@ -94,7 +94,12 @@
else
playsound(loc, "alien_resin_break", 25)
- health -= (M.melee_damage_upper + 50) //Beef up the damage a bit
+ var/damage_to_structure = M.melee_damage_upper + XENO_DAMAGE_TIER_7
+ // Builders can destroy beefy things in maximum 5 hits
+ if(isxeno_builder(M))
+ health -= max(initial(health) * 0.2, damage_to_structure)
+ else
+ health -= damage_to_structure
healthcheck()
return XENO_ATTACK_ACTION
@@ -573,6 +578,9 @@
if(current_mob.stat == DEAD)
return FALSE
+ if(HAS_TRAIT(current_mob, TRAIT_NESTED))
+ return FALSE
+
var/turf/current_turf
var/turf/last_turf = loc
var/atom/temp_atom = new acid_type()
diff --git a/code/modules/cm_aliens/structures/fruit.dm b/code/modules/cm_aliens/structures/fruit.dm
index 384da5da39a7..02fdb2da415b 100644
--- a/code/modules/cm_aliens/structures/fruit.dm
+++ b/code/modules/cm_aliens/structures/fruit.dm
@@ -93,22 +93,6 @@
qdel(src)
. = ..()
-/obj/effect/alien/resin/fruit/proc/delete_fruit()
- //Notify and update the xeno count
- if(!QDELETED(bound_xeno))
- if(!picked)
- to_chat(bound_xeno, SPAN_XENOHIGHDANGER("We sense one of our fruit has been destroyed."))
- bound_xeno.current_fruits.Remove(src)
- var/datum/action/xeno_action/onclick/plant_resin_fruit/prf = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/onclick/plant_resin_fruit)
- prf.update_button_icon()
-
- if(picked) // No need to update the number, since the fruit still exists (just as a different item)
- return
- var/number_of_fruit = length(bound_xeno.current_fruits)
- prf.button.set_maptext(SMALL_FONTS_COLOR(7, number_of_fruit, "#e69d00"), 19, 2)
- prf.update_button_icon()
- bound_xeno = null
-
/obj/effect/alien/resin/fruit/proc/reduce_timer(maturity_increase)
if (mature || timer_id == TIMER_ID_NULL)
return
@@ -193,7 +177,19 @@
return FALSE
/obj/effect/alien/resin/fruit/Destroy()
- delete_fruit()
+ //Notify and update the xeno count
+ if(!QDELETED(bound_xeno))
+ if(!picked)
+ to_chat(bound_xeno, SPAN_XENOHIGHDANGER("We sense one of our fruit has been destroyed."))
+ bound_xeno.current_fruits.Remove(src)
+
+ var/number_of_fruit = length(bound_xeno.current_fruits)
+ var/datum/action/xeno_action/onclick/plant_resin_fruit/plant_action = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/onclick/plant_resin_fruit)
+ plant_action.button.set_maptext(SMALL_FONTS_COLOR(7, number_of_fruit, "#e69d00"), 19, 2)
+ plant_action.update_button_icon()
+
+ bound_xeno = null
+
return ..()
//Greater
@@ -281,9 +277,9 @@
..()
START_PROCESSING(SSobj, src)
-/obj/effect/alien/resin/fruit/spore/delete_fruit()
+/obj/effect/alien/resin/fruit/spore/Destroy()
STOP_PROCESSING(SSobj, src)
- ..()
+ return ..()
/obj/effect/alien/resin/fruit/spore/process()
if(mature)
diff --git a/code/modules/cm_aliens/structures/trap.dm b/code/modules/cm_aliens/structures/trap.dm
index e4b021e98f46..297dd5ff2e0f 100644
--- a/code/modules/cm_aliens/structures/trap.dm
+++ b/code/modules/cm_aliens/structures/trap.dm
@@ -4,7 +4,7 @@
/obj/effect/alien/resin/trap
desc = "It looks like a hiding hole."
- name = "resin hole"
+ name = "resin trap"
icon_state = "trap0"
density = FALSE
opacity = FALSE
@@ -12,7 +12,7 @@
health = 5
layer = RESIN_STRUCTURE_LAYER
var/list/tripwires = list()
- var/hivenumber = XENO_HIVE_NORMAL //Hivenumber of the xeno that planted it OR the last Facehugger that was placed (essentially taking over the hole)
+ var/hivenumber = XENO_HIVE_NORMAL //Hivenumber of the xeno that planted it OR the last Facehugger that was placed (essentially taking over the trap)
var/trap_type = RESIN_TRAP_EMPTY
var/armed = 0
var/created_by // ckey
@@ -247,7 +247,7 @@
to_chat(B, SPAN_XENOWARNING("You must produce more plasma before doing this."))
return XENO_NO_DELAY_ACTION
- to_chat(X, SPAN_XENONOTICE("You begin charging the resin hole with acid gas."))
+ to_chat(X, SPAN_XENONOTICE("You begin charging the resin trap with acid gas."))
xeno_attack_delay(X)
if(!do_after(B, 30, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE, src))
return XENO_NO_DELAY_ACTION
@@ -268,8 +268,8 @@
playsound(loc, 'sound/effects/refill.ogg', 25, 1)
set_state(RESIN_TRAP_GAS)
cause_data = create_cause_data("resin gas trap", B)
- B.visible_message(SPAN_XENOWARNING("\The [B] pressurises the resin hole with acid gas!"), \
- SPAN_XENOWARNING("You pressurise the resin hole with acid gas!"), null, 5)
+ B.visible_message(SPAN_XENOWARNING("\The [B] pressurises the resin trap with acid gas!"), \
+ SPAN_XENOWARNING("You pressurise the resin trap with acid gas!"), null, 5)
else
//Non-boiler acid types
var/acid_cost = 70
@@ -282,7 +282,7 @@
to_chat(X, SPAN_XENOWARNING("You must produce more plasma before doing this."))
return XENO_NO_DELAY_ACTION
- to_chat(X, SPAN_XENONOTICE("You begin charging the resin hole with acid."))
+ to_chat(X, SPAN_XENONOTICE("You begin charging the resin trap with acid."))
xeno_attack_delay(X)
if(!do_after(X, 3 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE, src))
return XENO_NO_DELAY_ACTION
@@ -300,8 +300,8 @@
else
set_state(RESIN_TRAP_ACID1 + X.acid_level - 1)
- X.visible_message(SPAN_XENOWARNING("\The [X] pressurises the resin hole with acid!"), \
- SPAN_XENOWARNING("You pressurise the resin hole with acid!"), null, 5)
+ X.visible_message(SPAN_XENOWARNING("\The [X] pressurises the resin trap with acid!"), \
+ SPAN_XENOWARNING("You pressurise the resin trap with acid!"), null, 5)
return XENO_NO_DELAY_ACTION
@@ -310,15 +310,15 @@
for(var/turf/T in orange(1,loc))
if(T.density)
continue
- var/obj/effect/hole_tripwire/HT = new /obj/effect/hole_tripwire(T)
- HT.linked_trap = src
- tripwires += HT
+ var/obj/effect/trap_tripwire/new_tripwire = new /obj/effect/trap_tripwire(T)
+ new_tripwire.linked_trap = src
+ tripwires += new_tripwire
/obj/effect/alien/resin/trap/attackby(obj/item/W, mob/user)
if(!(istype(W, /obj/item/clothing/mask/facehugger) && isxeno(user)))
return ..()
if(trap_type != RESIN_TRAP_EMPTY)
- to_chat(user, SPAN_XENOWARNING("You can't put a hugger in this hole!"))
+ to_chat(user, SPAN_XENOWARNING("You can't put a hugger in this trap!"))
return
var/obj/item/clothing/mask/facehugger/FH = W
if(FH.stat == DEAD)
@@ -329,7 +329,7 @@
return
if (X.hivenumber != hivenumber)
- to_chat(user, SPAN_XENOWARNING("This resin hole doesn't belong to your hive!"))
+ to_chat(user, SPAN_XENOWARNING("This resin trap doesn't belong to your hive!"))
return
if (FH.hivenumber != hivenumber)
@@ -343,31 +343,34 @@
to_chat(user, SPAN_XENONOTICE("You place a facehugger in [src]."))
qdel(FH)
+/obj/effect/alien/resin/trap/healthcheck()
+ if(trap_type != RESIN_TRAP_EMPTY && loc)
+ trigger_trap()
+ ..()
+
/obj/effect/alien/resin/trap/Crossed(atom/A)
if(ismob(A) || isVehicleMultitile(A))
HasProximity(A)
/obj/effect/alien/resin/trap/Destroy()
- if(trap_type != RESIN_TRAP_EMPTY && loc)
- trigger_trap()
QDEL_NULL_LIST(tripwires)
. = ..()
-/obj/effect/hole_tripwire
- name = "hole tripwire"
+/obj/effect/trap_tripwire
+ name = "trap tripwire"
anchored = TRUE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
invisibility = 101
unacidable = TRUE //You never know
var/obj/effect/alien/resin/trap/linked_trap
-/obj/effect/hole_tripwire/Destroy()
+/obj/effect/trap_tripwire/Destroy()
if(linked_trap)
linked_trap.tripwires -= src
linked_trap = null
. = ..()
-/obj/effect/hole_tripwire/Crossed(atom/A)
+/obj/effect/trap_tripwire/Crossed(atom/A)
if(!linked_trap)
qdel(src)
return
diff --git a/code/modules/cm_aliens/weeds.dm b/code/modules/cm_aliens/weeds.dm
index 5298e7ab02f1..d614d87bf9b9 100644
--- a/code/modules/cm_aliens/weeds.dm
+++ b/code/modules/cm_aliens/weeds.dm
@@ -123,7 +123,7 @@
update_icon()
/obj/effect/alien/weeds/node/weak
- name = "weak resin node"
+ name = "weak weed node"
health = WEED_HEALTH_STANDARD
alpha = 127
@@ -469,7 +469,7 @@
/obj/effect/alien/weeds/node
- name = "resin node"
+ name = "weed node"
desc = "A weird, pulsating node."
icon_state = "weednode"
// Weed nodes start out with normal weed health and become stronger once they've stopped spreading
diff --git a/code/modules/cm_marines/Donator_Items.dm b/code/modules/cm_marines/Donator_Items.dm
index ffea48b71c84..ac3d8e03852e 100644
--- a/code/modules/cm_marines/Donator_Items.dm
+++ b/code/modules/cm_marines/Donator_Items.dm
@@ -972,8 +972,11 @@
icon_state = null
item_state = null
min_cold_protection_temperature = ICE_PLANET_MIN_COLD_PROT
- //DON'T GRAB STUFF BETWEEN THIS LINE
- //AND THIS LINE
+
+ item_icons = list(
+ WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi',
+ )
+
//END UNIFORM TEMPLATE
/obj/item/clothing/under/marine/fluff/marinemedic //UNUSED
@@ -1310,8 +1313,8 @@
/obj/item/clothing/shoes/marine/fluff/vintage //CKEY=vintagepalmer
name = "Vintage Sandals"
desc = "Vintage Sandals, suitable for only the highest class of hipster. DONOR ITEM"
- icon_state = "wizard"
- item_state = "wizard"
+ icon_state = "sandals"
+ item_state = "sandals"
/obj/item/clothing/shoes/marine/fluff/feodrich //CKEY=feodrich (UNIQUE)
name = "Doom Shoes"
diff --git a/code/modules/cm_marines/dropship_ammo.dm b/code/modules/cm_marines/dropship_ammo.dm
index 19086b36c957..93768e218375 100644
--- a/code/modules/cm_marines/dropship_ammo.dm
+++ b/code/modules/cm_marines/dropship_ammo.dm
@@ -427,7 +427,7 @@
max_ammo_count = 1
ammo_name = "area denial sentry"
travelling_time = 0 // handled by droppod
- point_cost = 800
+ point_cost = 800 //handled by printer
accuracy_range = 0 // pinpoint
max_inaccuracy = 0
/// Special structures it needs to break with drop pod
diff --git a/code/modules/cm_marines/dropship_equipment.dm b/code/modules/cm_marines/dropship_equipment.dm
index 785283541eb8..bd40076ea500 100644
--- a/code/modules/cm_marines/dropship_equipment.dm
+++ b/code/modules/cm_marines/dropship_equipment.dm
@@ -21,6 +21,7 @@
var/skill_required = SKILL_PILOT_TRAINED
var/combat_equipment = TRUE
+
/obj/structure/dropship_equipment/Destroy()
QDEL_NULL(ammo_equipped)
if(linked_shuttle)
@@ -35,6 +36,7 @@
linked_console = null
. = ..()
+
/obj/structure/dropship_equipment/attack_alien(mob/living/carbon/xenomorph/current_xenomorph)
if(unslashable)
return XENO_NO_DELAY_ACTION
@@ -1144,9 +1146,11 @@
var/list/possible_fultons = get_targets()
- var/obj/item/stack/fulton/fult = possible_fultons[fulton_choice]
if(!fulton_choice)
return
+ // Strip any \proper or \improper in order to match the entry in possible_fultons.
+ fulton_choice = strip_improper(fulton_choice)
+ var/obj/item/stack/fulton/fult = possible_fultons[fulton_choice]
if(!ship_base) //system was uninstalled midway
return
diff --git a/code/modules/cm_marines/equipment/guncases.dm b/code/modules/cm_marines/equipment/guncases.dm
index 0cf097cb9b4c..22999e97fda2 100644
--- a/code/modules/cm_marines/equipment/guncases.dm
+++ b/code/modules/cm_marines/equipment/guncases.dm
@@ -348,6 +348,30 @@
new /obj/item/device/vulture_spotter_scope/skillless(src, WEAKREF(rifle))
new /obj/item/tool/screwdriver(src) // Spotter scope needs a screwdriver to disassemble
+/obj/item/storage/box/guncase/vulture/holo_target
+ name = "\improper M707 holo-targetting anti-materiel rifle case"
+ desc = "A gun case containing the M707 \"Vulture\" anti-materiel rifle and its requisite spotting tools. This variant is pre-loaded with IFF-CAPABLE holo-targeting rounds."
+
+/obj/item/storage/box/guncase/vulture/holo_target/fill_preset_inventory()
+ var/obj/item/weapon/gun/boltaction/vulture/holo_target/rifle = new(src)
+ new /obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target(src)
+ new /obj/item/device/vulture_spotter_tripod(src)
+ new /obj/item/device/vulture_spotter_scope(src, WEAKREF(rifle))
+ new /obj/item/tool/screwdriver(src)
+ new /obj/item/pamphlet/trait/vulture(src)
+ new /obj/item/pamphlet/trait/vulture(src)
+
+/obj/item/storage/box/guncase/vulture/holo_target/skillless
+ storage_slots = 5
+
+/obj/item/storage/box/guncase/vulture/holo_target/skillless/fill_preset_inventory()
+ var/obj/item/weapon/gun/boltaction/vulture/holo_target/skillless/rifle = new(src)
+ new /obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target(src)
+ new /obj/item/device/vulture_spotter_tripod(src)
+ new /obj/item/device/vulture_spotter_scope/skillless(src, WEAKREF(rifle))
+ new /obj/item/tool/screwdriver(src)
+
+
/obj/item/storage/box/guncase/xm51
name = "\improper XM51 breaching scattergun case"
desc = "A gun case containing the XM51 Breaching Scattergun. Comes with two spare magazines, two spare shell boxes, an optional stock and a belt to holster the weapon."
diff --git a/code/modules/cm_marines/vehicle_part_fabricator.dm b/code/modules/cm_marines/vehicle_part_fabricator.dm
index 0095ff54a2ab..fd9b0faafa61 100644
--- a/code/modules/cm_marines/vehicle_part_fabricator.dm
+++ b/code/modules/cm_marines/vehicle_part_fabricator.dm
@@ -10,8 +10,8 @@
icon_state = "drone_fab_idle"
var/busy = FALSE
var/generate_points = TRUE
- var/valid_parts = null
- var/valid_ammo = null
+ var/omnisentry_price_scale = 100
+ var/omnisentry_price = 300
/obj/structure/machinery/part_fabricator/New()
..()
@@ -28,7 +28,8 @@
/obj/structure/machinery/part_fabricator/dropship/ui_data(mob/user)
return list(
- "points" = get_point_store()
+ "points" = get_point_store(),
+ "omnisentrygun_price" = omnisentry_price
)
/obj/structure/machinery/part_fabricator/power_change()
@@ -53,11 +54,15 @@
/obj/structure/machinery/part_fabricator/proc/build_part(part_type, cost, mob/user)
set waitfor = 0
if(stat & NOPOWER) return
+ if(ispath(part_type,/obj/structure/ship_ammo/sentry))
+ cost = omnisentry_price
if(get_point_store() < cost)
to_chat(user, SPAN_WARNING("You don't have enough points to build that."))
return
visible_message(SPAN_NOTICE("[src] starts printing something."))
spend_point_store(cost)
+ if(ispath(part_type,/obj/structure/ship_ammo/sentry))
+ omnisentry_price += omnisentry_price_scale
icon_state = "drone_fab_active"
busy = TRUE
addtimer(CALLBACK(src, PROC_REF(do_build_part), part_type), 10 SECONDS)
@@ -68,7 +73,7 @@
new part_type(get_step(src, SOUTHEAST))
icon_state = "drone_fab_idle"
-/obj/structure/machinery/part_fabricator/ui_act(action, params)
+/obj/structure/machinery/part_fabricator/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -77,27 +82,33 @@
to_chat(usr, SPAN_WARNING("The [name] is busy. Please wait for completion of previous operation."))
return
- if(action == "produce")
- var/produce = text2path(params["path"])
- var/cost = text2num(params["cost"])
- var/exploiting = TRUE
-
- if (valid_parts && ispath(produce, valid_parts))
- exploiting = FALSE
- else if (valid_ammo && ispath(produce, valid_ammo))
- exploiting = FALSE
+ var/mob/user = ui.user
- if (cost < 0)
- exploiting = TRUE
+ if(action == "produce")
+ var/cost = 0
+ var/is_ammo = params["is_ammo"]
+ var/index = params["index"]
+
+ if(is_ammo == 0)
+ var/obj/structure/dropship_equipment/produce = (typesof(/obj/structure/dropship_equipment))[index]
+ if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && produce.combat_equipment)
+ log_admin("Bad topic: [user] may be trying to HREF exploit [src] to bypass no combat cas")
+ return
+ cost = initial(produce.point_cost)
+ build_part(produce, cost, user)
+ return
- if (exploiting)
- log_admin("Bad topic: [usr] may be trying to HREF exploit [src] with [produce], [cost]")
+ else
+ var/obj/structure/ship_ammo/produce = (typesof(/obj/structure/ship_ammo))[index]
+ if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && produce.combat_equipment)
+ log_admin("Bad topic: [user] may be trying to HREF exploit [src] to bypass no combat cas")
+ return
+ cost = initial(produce.point_cost)
+ build_part(produce, cost, user)
return
- build_part(produce, cost, usr)
- return
else
- log_admin("Bad topic: [usr] may be trying to HREF exploit [src]")
+ log_admin("Bad topic: [user] may be trying to HREF exploit [src]")
return
/obj/structure/machinery/part_fabricator/attack_hand(mob/user)
@@ -116,12 +127,11 @@
name = "dropship part fabricator"
desc = "A large automated 3D printer for producing dropship parts. You can recycle parts or ammo in it, and get 80% of your points back, by clicking it while holding them in a powerloader claw."
req_access = list(ACCESS_MARINE_DROPSHIP)
- valid_parts = /obj/structure/dropship_equipment
- valid_ammo = /obj/structure/ship_ammo
unslashable = TRUE
unacidable = TRUE
+
/obj/structure/machinery/part_fabricator/dropship/get_point_store()
return GLOB.supply_controller.dropship_points
@@ -134,86 +144,100 @@
/obj/structure/machinery/part_fabricator/dropship/ui_static_data(mob/user)
var/list/static_data = list()
static_data["Equipment"] = list()
+ var/is_ammo = 0
+ var/index = 1
for(var/build_type in typesof(/obj/structure/dropship_equipment))
- var/obj/structure/dropship_equipment/DE = build_type
- if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && initial(DE.combat_equipment))
+ var/obj/structure/dropship_equipment/dropship_equipment_data = build_type
+ if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && dropship_equipment_data.combat_equipment)
+ index += 1
continue
- var/build_name = initial(DE.name)
- var/build_description = initial(DE.desc)
- var/build_cost = initial(DE.point_cost)
+ var/build_name = initial(dropship_equipment_data.name)
+ var/build_description = initial(dropship_equipment_data.desc)
+ var/build_cost = initial(dropship_equipment_data.point_cost)
if(build_cost)
static_data["Equipment"] += list(list(
"name" = capitalize_first_letters(build_name),
"desc" = build_description,
- "path" = build_type,
- "cost" = build_cost
+ "cost" = build_cost,
+ "index" = index,
+ "is_ammo" = is_ammo
))
+ index += 1
static_data["Ammo"] = list()
+ is_ammo = 1
+ index = 1
for(var/build_type in typesof(/obj/structure/ship_ammo))
- var/obj/structure/ship_ammo/SA = build_type
- if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && initial(SA.combat_equipment))
+ var/obj/structure/ship_ammo/ship_ammo_data = build_type
+ if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && ship_ammo_data.combat_equipment)
+ index = index + 1
continue
- var/build_name = initial(SA.name)
- var/build_description = initial(SA.desc)
- var/build_cost = initial(SA.point_cost)
+ var/build_name = initial(ship_ammo_data.name)
+ var/build_description = initial(ship_ammo_data.desc)
+ var/build_cost = initial(ship_ammo_data.point_cost)
if(build_cost)
static_data["Ammo"] += list(list(
"name" = capitalize_first_letters(build_name),
"desc" = build_description,
- "path" = build_type,
- "cost" = build_cost
+ "cost" = build_cost,
+ "index" = index,
+ "is_ammo" = is_ammo
))
+ index += 1
return static_data
/obj/structure/machinery/part_fabricator/dropship/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/powerloader_clamp))
- var/obj/item/powerloader_clamp/PC = I
- recycle_equipment(PC, user)
+ var/obj/item/powerloader_clamp/powerloader_clamp_used = I
+ recycle_equipment(powerloader_clamp_used, user)
return
return ..()
-/obj/structure/machinery/part_fabricator/dropship/proc/recycle_equipment(obj/item/powerloader_clamp/PC, mob/living/user)
- if(!PC.loaded)
- to_chat(user, SPAN_WARNING("There is nothing loaded in \the [PC]."))
+/obj/structure/machinery/part_fabricator/dropship/proc/recycle_equipment(obj/item/powerloader_clamp/powerloader_clamp_used, mob/living/user)
+ if(!powerloader_clamp_used.loaded)
+ to_chat(user, SPAN_WARNING("There is nothing loaded in \the [powerloader_clamp_used]."))
return
var/recycle_points
- if(istype(PC.loaded, /obj/structure/dropship_equipment))
- var/obj/structure/dropship_equipment/SE = PC.loaded
- recycle_points = SE.point_cost
- else if(istype(PC.loaded, /obj/structure/ship_ammo))
- var/obj/structure/ship_ammo/SE = PC.loaded
- if(!SE.ammo_count)
- to_chat(user, SPAN_WARNING("\The [SE] is empty!"))
+ if(istype(powerloader_clamp_used.loaded, /obj/structure/dropship_equipment))
+ var/obj/structure/dropship_equipment/sold_eqipment = powerloader_clamp_used.loaded
+ recycle_points = sold_eqipment.point_cost
+ else if(istype(powerloader_clamp_used.loaded, /obj/structure/ship_ammo))
+ var/obj/structure/ship_ammo/sold_eqipment = powerloader_clamp_used.loaded
+ if(!sold_eqipment.ammo_count)
+ to_chat(user, SPAN_WARNING("\The [sold_eqipment] is empty!"))
return
- if(SE.ammo_count != SE.max_ammo_count)
- recycle_points = (SE.point_cost * (SE.ammo_count / SE.max_ammo_count))
- to_chat(user, SPAN_WARNING("\The [SE] is not fully loaded, and less points will be able to be refunded."))
+ if(sold_eqipment.ammo_count != sold_eqipment.max_ammo_count)
+ recycle_points = (sold_eqipment.point_cost * (sold_eqipment.ammo_count / sold_eqipment.max_ammo_count))
+ to_chat(user, SPAN_WARNING("\The [sold_eqipment] is not fully loaded, and less points will be able to be refunded."))
else
- recycle_points = SE.point_cost
+ recycle_points = sold_eqipment.point_cost
+ if(istype(powerloader_clamp_used.loaded, /obj/structure/ship_ammo/sentry))
+ recycle_points = omnisentry_price - omnisentry_price_scale
if(!recycle_points)
- to_chat(user, SPAN_WARNING("\The [PC.loaded] can't be recycled!"))
+ to_chat(user, SPAN_WARNING("\The [powerloader_clamp_used.loaded] can't be recycled!"))
return
- var/thing_to_recycle = PC.loaded
- to_chat(user, SPAN_WARNING("You start recycling \the [PC.loaded]!"))
+ var/thing_to_recycle = powerloader_clamp_used.loaded
+ to_chat(user, SPAN_WARNING("You start recycling \the [powerloader_clamp_used.loaded]!"))
playsound(loc, 'sound/machines/hydraulics_1.ogg', 40, 1)
- if(!user || !do_after(user, (7 SECONDS) * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE, PC.loaded, INTERRUPT_ALL))
+ if(!user || !do_after(user, (7 SECONDS) * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE, powerloader_clamp_used.loaded, INTERRUPT_ALL))
to_chat(user, SPAN_NOTICE("You stop recycling \the [thing_to_recycle]."))
return
- for(var/obj/thing as anything in PC.loaded)
+ if(istype(powerloader_clamp_used.loaded, /obj/structure/ship_ammo/sentry))
+ omnisentry_price -= omnisentry_price_scale
+ for(var/obj/thing as anything in powerloader_clamp_used.loaded)
thing.forceMove(loc) // no sentries popping out when we qdel please
qdel(thing)
- qdel(PC.loaded)
- PC.loaded = null
+ qdel(powerloader_clamp_used.loaded)
+ powerloader_clamp_used.loaded = null
to_chat(user, SPAN_NOTICE("You recycle \the [thing_to_recycle] into [src], and get back [round(recycle_points * 0.8)] points."))
msg_admin_niche("[key_name(user)] recycled a [thing_to_recycle] into \the [src] for [round(recycle_points * 0.8)] points.")
add_to_point_store(round(recycle_points * 0.8))
playsound(loc, 'sound/machines/fax.ogg', 40, 1)
- PC.update_icon()
+ powerloader_clamp_used.update_icon()
// WARNING: IF YOU DECIDE TO READD THIS, GIVE THE HARDPOINTS POINT COSTS
@@ -223,8 +247,6 @@
desc = "A large automated 3D printer for producing vehicle parts."
req_access = list(ACCESS_MARINE_CREWMAN)
generate_points = FALSE
- valid_parts = /obj/item/hardpoint
- valid_ammo = /obj/item/ammo_magazine/hardpoint
unacidable = TRUE
indestructible = TRUE
@@ -242,9 +264,9 @@
var/list/static_data = list()
static_data["Equipment"] = list()
for(var/build_type in typesof(/obj/item/hardpoint))
- var/obj/item/hardpoint/TE = build_type
- var/build_name = initial(TE.name)
- var/build_description = initial(TE.desc)
+ var/obj/item/hardpoint/hardpoint_data = build_type
+ var/build_name = initial(hardpoint_data.name)
+ var/build_description = initial(hardpoint_data.desc)
var/build_cost = 0
if(build_cost)
static_data["Equipment"] += list(list(
@@ -256,9 +278,9 @@
static_data["Ammo"] = list()
for(var/build_type in typesof(/obj/item/ammo_magazine/hardpoint))
- var/obj/item/ammo_magazine/hardpoint/TA = build_type
- var/build_name = initial(TA.name)
- var/build_description = initial(TA.desc)
+ var/obj/item/ammo_magazine/hardpoint/ammo_data = build_type
+ var/build_name = initial(ammo_data.name)
+ var/build_description = initial(ammo_data.desc)
var/build_cost = 0
if(build_cost)
static_data["Ammo"] += list(list(
diff --git a/code/modules/cm_preds/yaut_weapons.dm b/code/modules/cm_preds/yaut_weapons.dm
index 9cb8a8bef3fc..34233f2ee9cd 100644
--- a/code/modules/cm_preds/yaut_weapons.dm
+++ b/code/modules/cm_preds/yaut_weapons.dm
@@ -938,7 +938,7 @@
/obj/item/weapon/gun/energy/yautja/plasmarifle/set_gun_config_values()
..()
- set_fire_delay(FIRE_DELAY_TIER_6*2)
+ set_fire_delay(FIRE_DELAY_TIER_4*2)
accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_10
accuracy_mult_unwielded = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_10
scatter = SCATTER_AMOUNT_TIER_6
diff --git a/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm b/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm
index 16f0f26576a3..acee904af305 100644
--- a/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm
+++ b/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm
@@ -21,4 +21,4 @@
/datum/tech/cryomarine/on_unlock()
. = ..()
- SSticker.mode.get_specific_call("Marine Cryo Reinforcement (Spec)", TRUE, FALSE)
+ SSticker.mode.get_specific_call(/datum/emergency_call/cryo_spec, TRUE, FALSE) // "Marine Cryo Reinforcement (Spec)"
diff --git a/code/modules/cm_tech/techs/marine/tier3/cryorine.dm b/code/modules/cm_tech/techs/marine/tier3/cryorine.dm
index 49b4eea8f525..404fbd07c2ae 100644
--- a/code/modules/cm_tech/techs/marine/tier3/cryorine.dm
+++ b/code/modules/cm_tech/techs/marine/tier3/cryorine.dm
@@ -23,4 +23,4 @@
/datum/tech/repeatable/cryomarine/on_unlock()
. = ..()
- SSticker.mode.get_specific_call("Marine Cryo Reinforcements (Tech)", TRUE, FALSE)
+ SSticker.mode.get_specific_call(/datum/emergency_call/cryo_squad/tech, TRUE, FALSE) // "Marine Cryo Reinforcements (Tech)"
diff --git a/code/modules/defenses/bell_tower.dm b/code/modules/defenses/bell_tower.dm
index 6939557342f0..b4741734e0f4 100644
--- a/code/modules/defenses/bell_tower.dm
+++ b/code/modules/defenses/bell_tower.dm
@@ -18,11 +18,11 @@
can_be_near_defense = TRUE
choice_categories = list(
- SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN),
+ SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN),
)
selected_categories = list(
- SENTRY_CATEGORY_IFF = FACTION_USCM,
+ SENTRY_CATEGORY_IFF = FACTION_MARINE,
)
diff --git a/code/modules/defenses/defenses.dm b/code/modules/defenses/defenses.dm
index fefd3c640c65..aedbad2d46e9 100644
--- a/code/modules/defenses/defenses.dm
+++ b/code/modules/defenses/defenses.dm
@@ -134,7 +134,7 @@
*/
/obj/structure/machinery/defenses/proc/handle_iff(selection)
switch(selection)
- if(FACTION_USCM)
+ if(FACTION_MARINE)
faction_group = FACTION_LIST_MARINE
if(FACTION_WEYLAND)
faction_group = FACTION_LIST_MARINE_WY
diff --git a/code/modules/defenses/planted_flag.dm b/code/modules/defenses/planted_flag.dm
index fac725047fa9..12bcab9b0475 100644
--- a/code/modules/defenses/planted_flag.dm
+++ b/code/modules/defenses/planted_flag.dm
@@ -16,11 +16,11 @@
can_be_near_defense = TRUE
choice_categories = list(
- SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN),
+ SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN),
)
selected_categories = list(
- SENTRY_CATEGORY_IFF = FACTION_USCM,
+ SENTRY_CATEGORY_IFF = FACTION_MARINE,
)
diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm
index bfb44a38a6a5..a02e4e7808c9 100644
--- a/code/modules/defenses/sentry.dm
+++ b/code/modules/defenses/sentry.dm
@@ -45,12 +45,12 @@
/// action list is configurable for all subtypes, this is just an example
choice_categories = list(
// SENTRY_CATEGORY_ROF = list(ROF_SINGLE, ROF_BURST, ROF_FULL_AUTO),
- SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN),
+ SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN),
)
selected_categories = list(
// SENTRY_CATEGORY_ROF = ROF_SINGLE,
- SENTRY_CATEGORY_IFF = FACTION_USCM,
+ SENTRY_CATEGORY_IFF = FACTION_MARINE,
)
/obj/structure/machinery/defenses/sentry/Initialize()
@@ -478,7 +478,7 @@
/obj/structure/machinery/defenses/sentry/premade/Initialize()
. = ..()
if(selected_categories[SENTRY_CATEGORY_IFF])
- selected_categories[SENTRY_CATEGORY_IFF] = FACTION_USCM
+ selected_categories[SENTRY_CATEGORY_IFF] = FACTION_MARINE
/obj/structure/machinery/defenses/sentry/premade/get_examine_text(mob/user)
. = ..()
@@ -562,11 +562,11 @@
handheld_type = /obj/item/defenses/handheld/sentry/dmr
choice_categories = list(
- SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN),
+ SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN),
)
selected_categories = list(
- SENTRY_CATEGORY_IFF = FACTION_USCM,
+ SENTRY_CATEGORY_IFF = FACTION_MARINE,
)
diff --git a/code/modules/defenses/sentry_flamer.dm b/code/modules/defenses/sentry_flamer.dm
index 9ae794e3c811..f884b4ec5d14 100644
--- a/code/modules/defenses/sentry_flamer.dm
+++ b/code/modules/defenses/sentry_flamer.dm
@@ -11,12 +11,12 @@
choice_categories = list(
// SENTRY_CATEGORY_ROF = list(ROF_SINGLE, ROF_FULL_AUTO),
- SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN),
+ SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN),
)
selected_categories = list(
SENTRY_CATEGORY_ROF = ROF_SINGLE,
- SENTRY_CATEGORY_IFF = FACTION_USCM,
+ SENTRY_CATEGORY_IFF = FACTION_MARINE,
)
/obj/structure/machinery/defenses/sentry/flamer/handle_rof(level)
diff --git a/code/modules/defenses/tesla_coil.dm b/code/modules/defenses/tesla_coil.dm
index 4c0888e28f6d..cb0646b29775 100644
--- a/code/modules/defenses/tesla_coil.dm
+++ b/code/modules/defenses/tesla_coil.dm
@@ -20,11 +20,11 @@
has_camera = FALSE
choice_categories = list(
- SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN),
+ SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN),
)
selected_categories = list(
- SENTRY_CATEGORY_IFF = FACTION_USCM,
+ SENTRY_CATEGORY_IFF = FACTION_MARINE,
)
diff --git a/code/modules/desert_dam/motion_sensor/sensortower.dm b/code/modules/desert_dam/motion_sensor/sensortower.dm
index 50aeede45f66..a3f33d4da078 100644
--- a/code/modules/desert_dam/motion_sensor/sensortower.dm
+++ b/code/modules/desert_dam/motion_sensor/sensortower.dm
@@ -65,7 +65,7 @@
/obj/structure/machinery/sensortower/proc/add_xenos_to_minimap()
for(var/mob/living/carbon/xenomorph/current_xeno as anything in GLOB.living_xeno_list)
if(WEAKREF(current_xeno) in minimap_added)
- return
+ continue
SSminimaps.remove_marker(current_xeno)
current_xeno.add_minimap_marker(MINIMAP_FLAG_USCM|get_minimap_flag_for_faction(current_xeno.hivenumber))
diff --git a/code/modules/dropships/attach_points/attach_point.dm b/code/modules/dropships/attach_points/attach_point.dm
index 7230e67e0af1..6fef4d58e785 100644
--- a/code/modules/dropships/attach_points/attach_point.dm
+++ b/code/modules/dropships/attach_points/attach_point.dm
@@ -27,44 +27,45 @@
/obj/effect/attach_point/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/powerloader_clamp))
- var/obj/item/powerloader_clamp/PC = I
- install_equipment(PC, user)
+ var/obj/item/powerloader_clamp/clamp = I
+ install_equipment(clamp, user)
return TRUE
return ..()
/// Called when a real user with a powerloader attempts to install an equipment on the attach point
-/obj/effect/attach_point/proc/install_equipment(obj/item/powerloader_clamp/PC, mob/living/user)
- if(!istype(PC.loaded, /obj/structure/dropship_equipment))
+/obj/effect/attach_point/proc/install_equipment(obj/item/powerloader_clamp/clamp, mob/living/user)
+ if(!istype(clamp.loaded, /obj/structure/dropship_equipment))
+ return
+ var/obj/structure/dropship_equipment/ds_equipment = clamp.loaded
+ if(!(base_category in ds_equipment.equip_categories))
+ to_chat(user, SPAN_WARNING("[ds_equipment] doesn't fit on [src]."))
return
- var/obj/structure/dropship_equipment/SE = PC.loaded
- if(!(base_category in SE.equip_categories))
- to_chat(user, SPAN_WARNING("[SE] doesn't fit on [src]."))
- return TRUE
if(installed_equipment)
- return TRUE
- playsound(loc, 'sound/machines/hydraulics_1.ogg', 40, 1)
+ return
+ playsound(loc, 'sound/machines/hydraulics_1.ogg', 40, TRUE)
var/point_loc = loc
if(!user || !do_after(user, (7 SECONDS) * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
- return TRUE
+ return
if(loc != point_loc)//dropship flew away
- return TRUE
- if(installed_equipment || PC.loaded != SE)
- return TRUE
- to_chat(user, SPAN_NOTICE("You install [SE] on [src]."))
- SE.forceMove(loc)
- PC.loaded = null
- playsound(loc, 'sound/machines/hydraulics_2.ogg', 40, 1)
- PC.update_icon()
- installed_equipment = SE
- SE.ship_base = src
+ return
+ if(installed_equipment || clamp.loaded != ds_equipment)
+ return
+ to_chat(user, SPAN_NOTICE("You install [ds_equipment] on [src]."))
+ ds_equipment.forceMove(loc)
+ clamp.loaded = null
+ playsound(loc, 'sound/machines/hydraulics_2.ogg', 40, TRUE)
+ clamp.update_icon()
+ installed_equipment = ds_equipment
+ ds_equipment.ship_base = src
+ ds_equipment.plane = plane
for(var/obj/docking_port/mobile/marine_dropship/shuttle in SSshuttle.mobile)
if(shuttle.id == ship_tag)
- SE.linked_shuttle = shuttle
- SEND_SIGNAL(shuttle, COMSIG_DROPSHIP_ADD_EQUIPMENT, SE)
+ ds_equipment.linked_shuttle = shuttle
+ SEND_SIGNAL(shuttle, COMSIG_DROPSHIP_ADD_EQUIPMENT, ds_equipment)
break
- SE.update_equipment()
+ ds_equipment.update_equipment()
/// Weapon specific attachment point
/obj/effect/attach_point/weapon
diff --git a/code/modules/economy/economy_misc.dm b/code/modules/economy/economy_misc.dm
index a5f061e1a727..6e22fd12d58a 100644
--- a/code/modules/economy/economy_misc.dm
+++ b/code/modules/economy/economy_misc.dm
@@ -75,27 +75,6 @@ GLOBAL_VAR_INIT(economy_init, FALSE)
if(GLOB.economy_init)
return 2
- var/datum/feed_channel/newChannel = new /datum/feed_channel
- newChannel.channel_name = "Public Station Announcements"
- newChannel.author = "Automated Announcement Listing"
- newChannel.locked = 1
- newChannel.is_admin_channel = 1
- GLOB.news_network.network_channels += newChannel
-
- newChannel = new /datum/feed_channel
- newChannel.channel_name = "Nyx Daily"
- newChannel.author = "CentComm Minister of Information"
- newChannel.locked = 1
- newChannel.is_admin_channel = 1
- GLOB.news_network.network_channels += newChannel
-
- newChannel = new /datum/feed_channel
- newChannel.channel_name = "The Gibson Gazette"
- newChannel.author = "Editor Mike Hammers"
- newChannel.locked = 1
- newChannel.is_admin_channel = 1
- GLOB.news_network.network_channels += newChannel
-
for(var/loc_type in typesof(/datum/trade_destination) - /datum/trade_destination)
var/datum/trade_destination/D = new loc_type
GLOB.weighted_randomevent_locations[D] = D.viable_random_events.len
diff --git a/code/modules/escape_menu/escape_menu.dm b/code/modules/escape_menu/escape_menu.dm
index c31234678b62..b61bbd5b3f36 100644
--- a/code/modules/escape_menu/escape_menu.dm
+++ b/code/modules/escape_menu/escape_menu.dm
@@ -49,7 +49,7 @@ GLOBAL_LIST_EMPTY(escape_menus)
show_page()
RegisterSignal(client, COMSIG_PARENT_QDELETING, PROC_REF(on_client_qdel))
- RegisterSignal(client, COMSIG_CLIENT_MOB_LOGIN, PROC_REF(on_client_mob_login))
+ RegisterSignal(client, COMSIG_CLIENT_MOB_LOGGED_IN, PROC_REF(on_client_mob_login))
if (!isnull(ckey))
GLOB.escape_menus[ckey] = src
diff --git a/code/modules/gear_presets/_select_equipment.dm b/code/modules/gear_presets/_select_equipment.dm
index 5a5ecea2d03d..5311a7a79a3b 100644
--- a/code/modules/gear_presets/_select_equipment.dm
+++ b/code/modules/gear_presets/_select_equipment.dm
@@ -149,9 +149,9 @@
load_skills(new_human, mob_client) //skills are set before equipment because of skill restrictions on certain clothes.
load_languages(new_human, mob_client)
load_age(new_human, mob_client)
+ load_id(new_human, mob_client)
if(show_job_gear)
load_gear(new_human, mob_client)
- load_id(new_human, mob_client)
load_status(new_human, mob_client)
load_vanity(new_human, mob_client)
load_traits(new_human, mob_client)
@@ -201,7 +201,7 @@
qdel(R)
if(flags & EQUIPMENT_PRESET_MARINE)
- var/playtime = get_job_playtime(new_human.client, assignment)
+ var/playtime = get_job_playtime(new_human.client, rank)
var/medal_type
switch(playtime)
@@ -220,7 +220,7 @@
if(medal_type)
var/obj/item/clothing/accessory/medal/medal = new medal_type()
medal.recipient_name = new_human.real_name
- medal.recipient_rank = current_rank
+ medal.recipient_rank = assignment
if(new_human.wear_suit && new_human.wear_suit.can_attach_accessory(medal))
new_human.wear_suit.attach_accessory(new_human, medal, TRUE)
diff --git a/code/modules/gear_presets/clf.dm b/code/modules/gear_presets/clf.dm
index 7748f4e0c558..9c05ff8fa5fc 100644
--- a/code/modules/gear_presets/clf.dm
+++ b/code/modules/gear_presets/clf.dm
@@ -745,36 +745,43 @@
/datum/equipment_preset/clf/synth/load_race(mob/living/carbon/human/new_human)
new_human.set_species(SYNTH_COLONY_GEN_ONE)
-/datum/equipment_preset/clf/synth/load_gear(mob/living/carbon/human/new_human)
- load_name(new_human)
- var/obj/item/clothing/under/colonist/clf/CLF = new()
- var/obj/item/clothing/accessory/storage/webbing/W = new()
- CLF.attach_accessory(new_human, W)
- new_human.equip_to_slot_or_del(CLF, WEAR_BODY)
+/datum/equipment_preset/clf/synth/load_skills(mob/living/carbon/human/new_human)
+ . = ..()
+ new_human.allow_gun_usage = FALSE
+/datum/equipment_preset/clf/synth/load_gear(mob/living/carbon/human/new_human)
+ //back
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/ert, WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat, WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/militia, WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/full/with_suture_and_graft, WEAR_WAIST)
- new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BELT)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK)
-
- spawn_weapon(/obj/item/weapon/gun/rifle/mar40/carbine, /obj/item/ammo_magazine/rifle/mar40/extended, new_human, 0, 10)
-
new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp, WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF/command(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/synth, WEAR_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE)
+ //face
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF/command(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp, WEAR_FACE)
if(new_human.disabilities & NEARSIGHTED)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES)
else
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES)
+ //head
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/jan, WEAR_HEAD)
+ //body
+ var/obj/item/clothing/under/colonist/clf/CLF = new()
+ var/obj/item/clothing/accessory/storage/webbing/webbing = new()
+ CLF.attach_accessory(new_human, webbing)
+ new_human.equip_to_slot_or_del(CLF, WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/militia, WEAR_JACKET)
+ //waist
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/full/with_suture_and_graft, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BELT)
+ //limbs
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat, WEAR_FEET)
+ //pockets
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/synth, WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE)
/datum/equipment_preset/clf/synth/get_antag_clothing_equipment()
return list(
diff --git a/code/modules/gear_presets/cmb.dm b/code/modules/gear_presets/cmb.dm
index 9de9d11607c2..7bf6cbb8325d 100644
--- a/code/modules/gear_presets/cmb.dm
+++ b/code/modules/gear_presets/cmb.dm
@@ -51,7 +51,7 @@
var/obj/item/clothing/under/uniform = new_human.w_uniform
if(istype(uniform))
uniform.has_sensor = UNIFORM_HAS_SENSORS
- uniform.sensor_faction = FACTION_USCM
+ uniform.sensor_faction = FACTION_MARINE
return ..()
//*****************************************************************************************************/
@@ -162,7 +162,7 @@
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge/cord, WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar, WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB/marshal, WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb/m3717, WEAR_J_STORE)
@@ -242,7 +242,6 @@
new_human.set_species(SYNTH_COLONY)
/datum/equipment_preset/cmb/synth/load_gear(mob/living/carbon/human/new_human)
- load_name(new_human)
//backpack
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/security, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_BACK)
diff --git a/code/modules/gear_presets/contractor.dm b/code/modules/gear_presets/contractor.dm
index bbea2a74339f..3f0cdecb9ac2 100644
--- a/code/modules/gear_presets/contractor.dm
+++ b/code/modules/gear_presets/contractor.dm
@@ -289,10 +289,10 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_BACK) //Line in vest.
new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/box/packet/smoke, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40, WEAR_IN_BACK)
//*****************************************************************************************************/
@@ -395,7 +395,6 @@
new_human.set_species(SYNTH_GEN_THREE)
/datum/equipment_preset/contractor/duty/synth/load_gear(mob/living/carbon/human/new_human)
- load_name(new_human)
//back
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/black, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK) //1
@@ -782,7 +781,6 @@
new_human.set_species(SYNTH_GEN_THREE)
/datum/equipment_preset/contractor/covert/synth/load_gear(mob/living/carbon/human/new_human)
- load_name(new_human)
//back
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/black, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK) //1
diff --git a/code/modules/gear_presets/corpses.dm b/code/modules/gear_presets/corpses.dm
index cfec62a3c65b..cbe8bc0abce4 100644
--- a/code/modules/gear_presets/corpses.dm
+++ b/code/modules/gear_presets/corpses.dm
@@ -988,7 +988,7 @@
paygrade = PAY_SHORT_ME5
idtype = /obj/item/card/id/dogtag
role_comm_title = "FORECON"
- faction_group = list(FACTION_USCM, FACTION_SURVIVOR)
+ faction_group = list(FACTION_MARINE, FACTION_SURVIVOR)
access = list(
ACCESS_CIVILIAN_PUBLIC,
ACCESS_CIVILIAN_ENGINEERING,
diff --git a/code/modules/gear_presets/other.dm b/code/modules/gear_presets/other.dm
index cc9fcf269a4d..99b8bf634eed 100644
--- a/code/modules/gear_presets/other.dm
+++ b/code/modules/gear_presets/other.dm
@@ -861,7 +861,6 @@
var/datum/preferences/A = new
A.randomize_appearance(new_human)
-
/datum/equipment_preset/other/professor_dummy/load_race(mob/living/carbon/human/new_human)
. = ..()
//Can't hug the dummy! Otherwise it's basically human...
@@ -870,7 +869,7 @@
/datum/equipment_preset/other/professor_dummy/load_gear(mob/living/carbon/human/new_human)
var/obj/item/device/professor_dummy_tablet/tablet = new /obj/item/device/professor_dummy_tablet(new_human)
- tablet.link_mob(new_human)
+ tablet.link_dummy(new_human)
new_human.equip_to_slot_or_del(tablet, WEAR_R_HAND)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical, WEAR_BODY)
diff --git a/code/modules/gear_presets/royal_marines.dm b/code/modules/gear_presets/royal_marines.dm
index b916a52c4b6f..aa33eac97733 100644
--- a/code/modules/gear_presets/royal_marines.dm
+++ b/code/modules/gear_presets/royal_marines.dm
@@ -1,7 +1,7 @@
/datum/equipment_preset/twe
name = "Three World Empire"
faction = FACTION_TWE
- faction_group = list(FACTION_TWE, FACTION_USCM)
+ faction_group = list(FACTION_TWE, FACTION_MARINE)
languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
/datum/equipment_preset/twe/royal_marine/load_name(mob/living/carbon/human/new_human, randomise)
diff --git a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm
index 34cbc8e0ab9c..c4e08af9dcfa 100644
--- a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm
+++ b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm
@@ -5,7 +5,7 @@
idtype = /obj/item/card/id/dogtag
role_comm_title = "FORECON"
rank = JOB_SURVIVOR
- faction_group = list(FACTION_USCM, FACTION_SURVIVOR)
+ faction_group = list(FACTION_MARINE, FACTION_SURVIVOR)
flags = EQUIPMENT_PRESET_START_OF_ROUND
access = list(
ACCESS_CIVILIAN_PUBLIC,
diff --git a/code/modules/gear_presets/survivors/lv_624/corporate_dome_insert_lv624.dm b/code/modules/gear_presets/survivors/lv_624/corporate_dome_insert_lv624.dm
new file mode 100644
index 000000000000..2c8ec04594ad
--- /dev/null
+++ b/code/modules/gear_presets/survivors/lv_624/corporate_dome_insert_lv624.dm
@@ -0,0 +1,51 @@
+// /obj/effect/landmark/survivor_spawner/lv624_corporate_dome/cl
+// corporatedomehold.dmm
+
+/datum/equipment_preset/survivor/wy/executive
+ name = "Survivor - LV-624 Paranoid Corporate Liaison"
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ paygrade = PAY_SHORT_WYC5
+ skills = /datum/skills/civilian/survivor/manager
+ assignment = "LV-624 Corporate Liaison"
+ idtype = /obj/item/card/id/silver/clearance_badge/cl
+ faction_group = list(FACTION_WY, FACTION_SURVIVOR)
+ access = list(
+ ACCESS_WY_GENERAL,
+ ACCESS_WY_COLONIAL,
+ ACCESS_WY_MEDICAL,
+ ACCESS_WY_SECURITY,
+ ACCESS_WY_RESEARCH,
+ ACCESS_WY_ARMORY,
+ ACCESS_CIVILIAN_PUBLIC,
+ ACCESS_CIVILIAN_RESEARCH,
+ ACCESS_CIVILIAN_ENGINEERING,
+ ACCESS_CIVILIAN_LOGISTICS,
+ ACCESS_CIVILIAN_BRIG,
+ ACCESS_CIVILIAN_MEDBAY,
+ ACCESS_CIVILIAN_COMMAND,
+ )
+ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_RUSSIAN)
+
+ survivor_variant = CORPORATE_SURVIVOR
+
+/datum/equipment_preset/survivor/wy/executive/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/field(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD)
+ if(new_human.disabilities & NEARSIGHTED)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/prescription(new_human), WEAR_EYES)
+ else
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp78(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/secure/briefcase(new_human), WEAR_L_HAND)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/med_small_stack(new_human), WEAR_IN_BACK)
+ add_random_cl_survivor_loot(new_human)
+ add_random_cl_survivor_loot(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full(new_human), WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE)
diff --git a/code/modules/gear_presets/survivors/shivas_snowball/panic_room_insert_shivas.dm b/code/modules/gear_presets/survivors/shivas_snowball/panic_room_insert_shivas.dm
new file mode 100644
index 000000000000..9f1e2c705efb
--- /dev/null
+++ b/code/modules/gear_presets/survivors/shivas_snowball/panic_room_insert_shivas.dm
@@ -0,0 +1,43 @@
+// /obj/effect/landmark/survivor_spawner/shivas_assistant_manager
+// panic_room_insert_shivas.dmm
+
+/datum/equipment_preset/survivor/wy/asstmanager
+ name = "Survivor - Corporate Assistant Manager"
+ flags = EQUIPMENT_PRESET_EXTRA
+ paygrade = PAY_SHORT_WYC7
+ skills = /datum/skills/civilian/survivor/manager
+ assignment = "Assistant Operations Manager"
+ idtype = /obj/item/card/id/silver/clearance_badge/manager
+ faction_group = list(FACTION_WY, FACTION_SURVIVOR)
+ access = list(
+ ACCESS_WY_GENERAL,
+ ACCESS_WY_COLONIAL,
+ ACCESS_WY_MEDICAL,
+ ACCESS_WY_SECURITY,
+ ACCESS_WY_RESEARCH,
+ ACCESS_WY_ARMORY,
+ ACCESS_CIVILIAN_PUBLIC,
+ ACCESS_CIVILIAN_RESEARCH,
+ ACCESS_CIVILIAN_ENGINEERING,
+ ACCESS_CIVILIAN_LOGISTICS,
+ ACCESS_CIVILIAN_BRIG,
+ ACCESS_CIVILIAN_MEDBAY,
+ ACCESS_CIVILIAN_COMMAND,
+ )
+ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
+
+ survivor_variant = CORPORATE_SURVIVOR
+
+/datum/equipment_preset/survivor/wy/asstmanager/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/manager(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/grant, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/navy(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife, WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE)
+ add_survivor_weapon_civilian(new_human)
+ ..()
diff --git a/code/modules/gear_presets/survivors/solaris/preset_solaris.dm b/code/modules/gear_presets/survivors/solaris/preset_solaris.dm
index 91dd05ef8154..2d0f634a6948 100644
--- a/code/modules/gear_presets/survivors/solaris/preset_solaris.dm
+++ b/code/modules/gear_presets/survivors/solaris/preset_solaris.dm
@@ -6,7 +6,7 @@
/datum/equipment_preset/survivor/trucker/solaris/load_gear(mob/living/carbon/human/new_human)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/worker_overalls(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/red(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/trucker/red(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big(new_human), WEAR_EYES)
..()
diff --git a/code/modules/gear_presets/survivors/survivors.dm b/code/modules/gear_presets/survivors/survivors.dm
index 9240d1782912..0cecaccce43d 100644
--- a/code/modules/gear_presets/survivors/survivors.dm
+++ b/code/modules/gear_presets/survivors/survivors.dm
@@ -301,6 +301,7 @@ Everything bellow is a parent used as a base for one or multiple maps.
skills = /datum/skills/civilian/survivor
flags = EQUIPMENT_PRESET_START_OF_ROUND
paygrade = PAY_SHORT_WYC2
+ faction_group = FACTION_LIST_SURVIVOR_WY
idtype = /obj/item/card/id/silver/clearance_badge/cl
access = list(
ACCESS_CIVILIAN_PUBLIC,
@@ -381,7 +382,7 @@ Everything bellow is a parent used as a base for one or multiple maps.
access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_LOGISTICS,ACCESS_WY_FLIGHT)
/datum/equipment_preset/survivor/flight_control_operator/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/lawyer/bluesuit(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear/khaki(new_human), WEAR_BODY)
if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
add_ice_colony_survivor_equipment(new_human)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/windbreaker/windbreaker_brown(new_human), WEAR_JACKET)
@@ -425,10 +426,11 @@ Everything bellow is a parent used as a base for one or multiple maps.
name = "Survivor - Interstellar Commerce Commission Liaison"
assignment = "Interstellar Commerce Commission Corporate Liaison"
skills = /datum/skills/civilian/survivor
- idtype = /obj/item/card/id/silver/cl
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
paygrade = PAY_SHORT_ICCL
+ faction_group = FACTION_LIST_SURVIVOR_WY
+ idtype = /obj/item/card/id/silver/cl
role_comm_title = "ICC Rep."
- flags = EQUIPMENT_PRESET_START_OF_ROUND
survivor_variant = CORPORATE_SURVIVOR
diff --git a/code/modules/gear_presets/survivors/trijent/preset_trijent.dm b/code/modules/gear_presets/survivors/trijent/preset_trijent.dm
index f62010539d77..405496d8f496 100644
--- a/code/modules/gear_presets/survivors/trijent/preset_trijent.dm
+++ b/code/modules/gear_presets/survivors/trijent/preset_trijent.dm
@@ -64,7 +64,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/trucker(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank(new_human), WEAR_IN_BACK)
..()
diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm
index 0b3b4d4ecfb5..e73db8431f32 100644
--- a/code/modules/gear_presets/upp.dm
+++ b/code/modules/gear_presets/upp.dm
@@ -2590,7 +2590,7 @@
//*****************************************************************************************************/
/datum/equipment_preset/upp/synth
- name = "UPP Combat Synthetic"
+ name = "UPP Synthetic"
flags = EQUIPMENT_PRESET_EXTRA
languages = ALL_SYNTH_LANGUAGES_UPP
@@ -2599,7 +2599,7 @@
assignment = JOB_UPP_COMBAT_SYNTH
rank = JOB_UPP_COMBAT_SYNTH
paygrade = PAY_SHORT_SYN
- idtype = /obj/item/card/id/gold
+ idtype = /obj/item/card/id/dogtag
/datum/equipment_preset/upp/synth/load_name(mob/living/carbon/human/new_human, randomise)
new_human.gender = pick(50;MALE,50;FEMALE)
@@ -2637,8 +2637,11 @@
/datum/equipment_preset/upp/synth/load_race(mob/living/carbon/human/new_human)
new_human.set_species(SYNTH_GEN_THREE)
+/datum/equipment_preset/upp/synth/load_skills(mob/living/carbon/human/new_human)
+ . = ..()
+ new_human.allow_gun_usage = FALSE
+
/datum/equipment_preset/upp/synth/load_gear(mob/living/carbon/human/new_human)
- load_name(new_human)
//back
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/compact, WEAR_IN_BACK) //1
@@ -2658,22 +2661,18 @@
new_human.equip_to_slot_or_del(new hat, WEAR_HEAD)
//body
var/obj/item/clothing/under/marine/veteran/UPP/medic/UPP = new()
- var/obj/item/clothing/accessory/storage/tool_webbing/equipped/W = new()
- UPP.attach_accessory(new_human, W)
+ var/obj/item/clothing/accessory/storage/tool_webbing/equipped/webbing = new()
+ UPP.attach_accessory(new_human, webbing)
new_human.equip_to_slot_or_del(UPP, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/support, WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/bottle/tricordrazine, WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/bizon/upp, WEAR_J_STORE)
//waist
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/full, WEAR_WAIST)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
- //póckets
- var/obj/item/storage/pouch/magazine/large/ppouch = new()
- new_human.equip_to_slot_or_del(ppouch, WEAR_R_STORE)
- for(var/i = 1 to ppouch.storage_slots)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/bizon, WEAR_IN_R_STORE)
+ //pockets
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical/full/pills, WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical, WEAR_L_STORE)
new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/surgical_line, WEAR_IN_L_STORE)
new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_L_STORE)
diff --git a/code/modules/gear_presets/uscm.dm b/code/modules/gear_presets/uscm.dm
index 8f5243edf84d..5402a5ed7305 100644
--- a/code/modules/gear_presets/uscm.dm
+++ b/code/modules/gear_presets/uscm.dm
@@ -251,8 +251,6 @@
/datum/equipment_preset/uscm/intel/full/load_gear(mob/living/carbon/human/new_human)
var/obj/item/clothing/under/marine/officer/intel/U = new(new_human)
- var/obj/item/clothing/accessory/storage/webbing/W = new()
- U.attach_accessory(new_human, W)
new_human.equip_to_slot_or_del(U, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/intel(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
diff --git a/code/modules/gear_presets/uscm_medical.dm b/code/modules/gear_presets/uscm_medical.dm
index 7923e3a33ece..8fbfd72c5276 100644
--- a/code/modules/gear_presets/uscm_medical.dm
+++ b/code/modules/gear_presets/uscm_medical.dm
@@ -107,7 +107,8 @@
back_item = /obj/item/storage/backpack/marine
new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/nurse(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/lightblue(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/nurse(new_human), WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET)
diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm
index 578df21b67df..3651b83cc209 100644
--- a/code/modules/gear_presets/uscm_ship.dm
+++ b/code/modules/gear_presets/uscm_ship.dm
@@ -26,6 +26,7 @@
/datum/equipment_preset/uscm_ship/liaison
name = "USCM Corporate Liaison (CL)"
+ faction_group = FACTION_LIST_MARINE_WY
flags = EQUIPMENT_PRESET_START_OF_ROUND
idtype = /obj/item/card/id/silver/cl
@@ -128,18 +129,17 @@
minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN
/datum/equipment_preset/uscm_ship/reporter/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/satchel
-
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/reporter(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/reporter(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/reporter(new_human), WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/camera(new_human), WEAR_L_HAND)
- new_human.equip_to_slot_or_del(new /obj/item/device/camera_film(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/binoculars(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/notepad(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/device/camera(new_human), WEAR_WAIST)
+
+/datum/equipment_preset/uscm_ship/reporter/load_preset(mob/living/carbon/human/new_human, randomise, count_participant, client/mob_client, show_job_gear)
+ . = ..()
+ new_human.marine_buyable_categories[CIVILIAN_CAN_BUY_BACKPACK] = 1
+ new_human.marine_buyable_categories[CIVILIAN_CAN_BUY_UTILITY] = 1
/datum/equipment_preset/uscm_ship/reporter_uscm
name = "Combat Correspondent"
@@ -178,10 +178,6 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/device/camera(new_human), WEAR_L_HAND)
- new_human.equip_to_slot_or_del(new /obj/item/device/camera_film(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/binoculars(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/notepad(new_human), WEAR_IN_BACK)
//*****************************************************************************************************/
@@ -252,17 +248,9 @@
if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1))
back_item = /obj/item/storage/backpack/marine/tech
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mt(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/engi(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/welding(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/device/demo_scanner(new_human), WEAR_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/bag/trash(new_human), WEAR_L_HAND)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, (new_human), WEAR_R_HAND)
/datum/equipment_preset/uscm_ship/maint/load_rank(mob/living/carbon/human/new_human)
if(new_human.client)
diff --git a/code/modules/gear_presets/wy.dm b/code/modules/gear_presets/wy.dm
index ac8aefb6238d..d492f9573b57 100644
--- a/code/modules/gear_presets/wy.dm
+++ b/code/modules/gear_presets/wy.dm
@@ -20,7 +20,7 @@
/datum/equipment_preset/wy/load_gear(mob/living/carbon/human/new_human)
new_human.equip_to_slot_or_del(new headset_type(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/ivy(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
. = ..()
@@ -63,6 +63,20 @@
rank = JOB_EXECUTIVE_SPECIALIST
paygrade = PAY_SHORT_WYC5
+/datum/equipment_preset/wy/exec_spec/lawyer
+ name = "Corporate - E - Lawyer"
+
+/datum/equipment_preset/wy/exec_spec/lawyer/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/blue(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/corporate/blue(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/pen/clicky(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clipboard(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/notepad/blue(new_human), WEAR_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_L_STORE)
+
+ ..()
+
/datum/equipment_preset/wy/exec_supervisor
name = "Corporate - F - Executive Supervisor"
flags = EQUIPMENT_PRESET_EXTRA
@@ -70,6 +84,21 @@
rank = JOB_EXECUTIVE_SUPERVISOR
paygrade = PAY_SHORT_WYC6
+/datum/equipment_preset/wy/exec_supervisor/lawyer
+ name = "Corporate - F - Lawyer"
+
+/datum/equipment_preset/wy/exec_supervisor/lawyer/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/secure/briefcase(new_human), WEAR_R_HAND)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/black(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/corporate/black(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/pen/clicky(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clipboard(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/spacecash/c1000/counterfeit(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/notepad/black(new_human), WEAR_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_L_STORE)
+ ..()
+
/datum/equipment_preset/wy/manager
skills = /datum/skills/civilian/manager
idtype = /obj/item/card/id/silver/clearance_badge/manager
diff --git a/code/modules/gear_presets/wy_goons.dm b/code/modules/gear_presets/wy_goons.dm
index 54b436c20854..a8f3a443311e 100644
--- a/code/modules/gear_presets/wy_goons.dm
+++ b/code/modules/gear_presets/wy_goons.dm
@@ -135,6 +135,7 @@
/datum/equipment_preset/goon/researcher/load_gear(mob/living/carbon/human/new_human)
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science, WEAR_EYES)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat, WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/corporate, WEAR_FEET)
diff --git a/code/modules/hydroponics/hydro_tools.dm b/code/modules/hydroponics/hydro_tools.dm
index eb0d54ce91bb..3603448a4f4f 100644
--- a/code/modules/hydroponics/hydro_tools.dm
+++ b/code/modules/hydroponics/hydro_tools.dm
@@ -157,7 +157,7 @@
name = "fertilizer bottle"
desc = "A small glass bottle. Can hold up to 10 units."
icon = 'icons/obj/items/chemistry.dmi'
- icon_state = "bottle16"
+ icon_state = "fertilizer"
flags_atom = FPRINT| OPENCONTAINER
possible_transfer_amounts = null
w_class = SIZE_SMALL
@@ -179,15 +179,12 @@
/obj/item/reagent_container/glass/fertilizer/ez
name = "bottle of E-Z-Nutrient"
- icon_state = "bottle16"
fertilizer = "eznutrient"
/obj/item/reagent_container/glass/fertilizer/l4z
name = "bottle of Left 4 Zed"
- icon_state = "bottle18"
fertilizer = "left4zed"
/obj/item/reagent_container/glass/fertilizer/rh
name = "bottle of Robust Harvest"
- icon_state = "bottle15"
fertilizer = "robustharvest"
diff --git a/code/modules/lighting/lighting_static/static_lighting_turf.dm b/code/modules/lighting/lighting_static/static_lighting_turf.dm
index 2fe918fa88bb..ec91e17e4fca 100644
--- a/code/modules/lighting/lighting_static/static_lighting_turf.dm
+++ b/code/modules/lighting/lighting_static/static_lighting_turf.dm
@@ -31,7 +31,8 @@
return !(luminosity || dynamic_lumcount)
-/turf/proc/change_area(area/old_area, area/new_area)
+///Transfer the lighting of one area to another
+/turf/proc/transfer_area_lighting(area/old_area, area/new_area)
if(SSlighting.initialized)
if (new_area.static_lighting != old_area.static_lighting)
if (new_area.static_lighting)
@@ -44,6 +45,8 @@
if(new_area.lighting_effect)
overlays += new_area.lighting_effect
+
+
/turf/proc/static_generate_missing_corners()
if (!lighting_corner_NE)
lighting_corner_NE = new/datum/static_lighting_corner(src, NORTH|EAST)
diff --git a/code/modules/logging/global_logs.dm b/code/modules/logging/global_logs.dm
index ff384fe537c0..3fbcb70a1a8d 100644
--- a/code/modules/logging/global_logs.dm
+++ b/code/modules/logging/global_logs.dm
@@ -25,8 +25,11 @@ GLOBAL_PROTECT(world_runtime_log)
GLOBAL_VAR(scheduler_stats)
GLOBAL_PROTECT(scheduler_stats)
-GLOBAL_VAR(mutator_logs)
-GLOBAL_PROTECT(mutator_logs)
+GLOBAL_VAR(strain_logs)
+GLOBAL_PROTECT(strain_logs)
+
+GLOBAL_VAR(mapping_log)
+GLOBAL_PROTECT(mapping_log)
GLOBAL_VAR(round_stats)
GLOBAL_PROTECT(round_stats)
diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm
index 35f7d30a9732..50a343635de9 100644
--- a/code/modules/mapping/map_template.dm
+++ b/code/modules/mapping/map_template.dm
@@ -7,6 +7,20 @@
var/datum/parsed_map/cached_map
var/keep_cached_map = FALSE
+ ///Default area associated with the map template
+ var/default_area
+
+ ///if true, turfs loaded from this template are placed on top of the turfs already there, defaults to TRUE
+ var/should_place_on_top = TRUE
+
+ ///if true, creates a list of all atoms created by this template loading, defaults to FALSE
+ var/returns_created_atoms = FALSE
+
+ ///the list of atoms created by this template being loaded, only populated if returns_created_atoms is TRUE
+ var/list/created_atoms = list()
+ //make sure this list is accounted for/cleared if you request it from ssatoms!
+
+
/datum/map_template/New(path = null, rename = null, cache = FALSE)
if(path)
mappath = path
@@ -25,71 +39,129 @@
cached_map = parsed
return bounds
-/datum/parsed_map/proc/initTemplateBounds()
- var/list/obj/structure/cable/cables = list()
- var/list/atom/atoms = list()
- var/list/area/areas = list()
+/datum/map_template/proc/initTemplateBounds(list/bounds)
+ if (!bounds) //something went wrong
+ stack_trace("[name] template failed to initialize correctly!")
+ return
- var/list/turfs = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]),
- locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))
- for(var/L in turfs)
- var/turf/B = L
- atoms += B
- areas |= B.loc
- for(var/A in B)
- atoms += A
- if(istype(A, /obj/structure/cable))
- cables += A
- continue
+ var/list/atom/movable/movables = list()
+ var/list/obj/docking_port/stationary/ports = list()
+ var/list/area/areas = list()
+ var/list/turfs = block(
+ locate(
+ bounds[MAP_MINX],
+ bounds[MAP_MINY],
+ bounds[MAP_MINZ]
+ ),
+ locate(
+ bounds[MAP_MAXX],
+ bounds[MAP_MAXY],
+ bounds[MAP_MAXZ]
+ )
+ )
+ for(var/turf/current_turf as anything in turfs)
+ var/area/current_turfs_area = current_turf.loc
+ areas |= current_turfs_area
+ if(!SSatoms.initialized)
+ continue
+
+ for(var/movable_in_turf in current_turf)
+ if(istype(movable_in_turf, /obj/docking_port/mobile))
+ continue // mobile docking ports need to be initialized after their template has finished loading, to ensure that their bounds are setup
+ movables += movable_in_turf
+ if(istype(movable_in_turf, /obj/docking_port/stationary))
+ ports += movable_in_turf
+
+ // Not sure if there is some importance here to make sure the area is in z
+ // first or not. Its defined In Initialize yet its run first in templates
+ // BEFORE so... hummm
SSmapping.reg_in_areas_in_z(areas)
- SSatoms.InitializeAtoms(atoms)
- //SSmachines.setup_template_powernets(cables) // mapping TODO:
-
-/datum/map_template/proc/load_new_z()
- var/x = round((world.maxx - width)/2)
- var/y = round((world.maxy - height)/2)
+ if(!SSatoms.initialized)
+ return
- var/datum/space_level/level = SSmapping.add_new_zlevel(name, list(ZTRAIT_AWAY = TRUE))
- var/datum/parsed_map/parsed = load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE)
+ SSatoms.InitializeAtoms(areas + turfs + movables, returns_created_atoms ? created_atoms : null)
+
+ for(var/turf/unlit as anything in turfs)
+ var/area/loc_area = unlit.loc
+ if(!loc_area.static_lighting)
+ continue
+ unlit.static_lighting_build_overlay()
+
+/datum/map_template/proc/load_new_z(secret = FALSE)
+ var/x = round((world.maxx - width) * 0.5) + 1
+ var/y = round((world.maxy - height) * 0.5) + 1
+
+ var/datum/space_level/level = SSmapping.add_new_zlevel(name, list(), contain_turfs = FALSE)
+ var/datum/parsed_map/parsed = load_map(
+ file(mappath),
+ x,
+ y,
+ level.z_value,
+ no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS),
+ place_on_top = should_place_on_top,
+ new_z = TRUE,
+ )
var/list/bounds = parsed.bounds
if(!bounds)
return FALSE
repopulate_sorted_areas()
-
//initialize things that are normally initialized after map load
- parsed.initTemplateBounds()
- log_game("Z-level [name] loaded at at [x],[y],[world.maxz]")
+ initTemplateBounds(bounds)
+ log_game("Z-level [name] loaded at [x],[y],[world.maxz]")
return level
-/datum/map_template/proc/load(turf/T, centered, delete)
+/datum/map_template/proc/load(turf/T, centered = FALSE, delete = FALSE)
if(centered)
T = locate(T.x - round(width/2) , T.y - round(height/2) , T.z)
if(!T)
return
- if(T.x + width > world.maxx)
+ if((T.x+width) - 1 > world.maxx)
return
- if(T.y + height > world.maxy)
+ if((T.y+height) - 1 > world.maxy)
return
// Accept cached maps, but don't save them automatically - we don't want
// ruins clogging up memory for the whole round.
var/datum/parsed_map/parsed = cached_map || new(file(mappath))
cached_map = keep_cached_map ? parsed : null
- if(!parsed.load(T.x, T.y, T.z, cropMap = TRUE, no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop = TRUE, delete = delete))
+
+ var/list/turf_blacklist = list()
+ update_blacklist(T, turf_blacklist)
+
+ UNSETEMPTY(turf_blacklist)
+ parsed.turf_blacklist = turf_blacklist
+ if(!parsed.load(
+ T.x,
+ T.y,
+ T.z,
+ crop_map = TRUE,
+ no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS),
+ place_on_top = should_place_on_top,
+ delete = delete
+ ))
return
+
var/list/bounds = parsed.bounds
if(!bounds)
return
+ repopulate_sorted_areas()
+
//initialize things that are normally initialized after map load
- parsed.initTemplateBounds()
+ initTemplateBounds(bounds)
- log_game("[name] loaded at at [T.x],[T.y],[T.z]")
+ log_game("[name] loaded at [T.x],[T.y],[T.z]")
return bounds
+/datum/map_template/proc/post_load()
+ return
+
+/datum/map_template/proc/update_blacklist(turf/T, list/input_blacklist)
+ return
+
/datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE)
var/turf/placement = T
if(centered)
diff --git a/code/modules/mapping/preloader.dm b/code/modules/mapping/preloader.dm
index e8eee898a711..bd89d0e030a2 100644
--- a/code/modules/mapping/preloader.dm
+++ b/code/modules/mapping/preloader.dm
@@ -1,33 +1,42 @@
// global datum that will preload variables on atoms instanciation
GLOBAL_VAR_INIT(use_preloader, FALSE)
-GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new)
+GLOBAL_LIST_INIT(_preloader_attributes, null)
+GLOBAL_LIST_INIT(_preloader_path, null)
/// Preloader datum
/datum/map_preloader
- parent_type = /datum
var/list/attributes
var/target_path
-/datum/map_preloader/proc/setup(list/the_attributes, path)
+/world/proc/preloader_setup(list/the_attributes, path)
if(the_attributes.len)
GLOB.use_preloader = TRUE
- attributes = the_attributes
- target_path = path
+ GLOB._preloader_attributes = the_attributes
+ GLOB._preloader_path = path
-/datum/map_preloader/proc/load(atom/what)
+/world/proc/preloader_load(atom/what)
GLOB.use_preloader = FALSE
+ var/list/attributes = GLOB._preloader_attributes
for(var/attribute in attributes)
var/value = attributes[attribute]
if(islist(value))
- value = deepCopyList(value)
+ value = deep_copy_list(value)
+ #ifdef TESTING
+ if(what.vars[attribute] == value)
+ var/message = "[what.type] at [AREACOORD(what)] - VAR: [attribute] = [isnull(value) ? "null" : (isnum(value) ? value : "\"[value]\"")] "
+ log_mapping("DIRTY VAR: [message]")
+ GLOB.dirty_vars += message
+ #endif
what.vars[attribute] = value
-/// Area passthrough: do not instanciate a new area, reuse the current one
+/// Template noop (no operation) is used to skip a turf or area when the template is loaded this allows for template transparency
+/// ex. if a ship has gaps in it's design, you would use template_noop to fill these in so that when the ship moves z-level, any
+/// tiles these gaps land on will not be deleted and replaced with the ships (empty) tiles
/area/template_noop
name = "Area Passthrough"
icon_state = "noop"
-/// Turf passthrough: do not instanciate a new turf, reuse the current one
+/// See above explanation
/turf/template_noop
name = "Turf Passthrough"
icon_state = "noop"
diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm
index 969dc6a795f8..424ab22ae4ac 100644
--- a/code/modules/mapping/reader.dm
+++ b/code/modules/mapping/reader.dm
@@ -1,7 +1,67 @@
///////////////////////////////////////////////////////////////
//SS13 Optimized Map loader
//////////////////////////////////////////////////////////////
-#define SPACE_KEY "space"
+// We support two different map formats
+// It is kinda possible to process them together, but if we split them up
+// I can make optimization decisions more easily
+/**
+ * DMM SPEC:
+ * DMM is split into two parts. First we have strings of text linked to lists of paths and their modifications (I will call this the cache)
+ * We call these strings "keys" and the things they point to members. Keys have a static length
+ *
+ * The second part is a list of locations matched to a string of keys. (I'll be calling this the grid)
+ * These are used to lookup the cache we built earlier.
+ * We store location lists as grid_sets. the lines represent different things depending on the spec
+ *
+ * In standard DMM (which you can treat as the base case, since it also covers weird modifications) each line
+ * represents an x file, and there's typically only one grid set per z level.
+ * The meme is you can look at a DMM formatted map and literally see what it should roughly look like
+ * This differs in TGM, and we can pull some performance from this
+ *
+ * Any restrictions here also apply to TGM
+ *
+ * /tg/ Restrictions:
+ * Paths have a specified order. First atoms in the order in which they should be loaded, then a single turf, then the area of the cell
+ * DMM technically supports turf stacking, but this is deprecated for all formats
+
+ */
+#define MAP_DMM "dmm"
+/**
+ * TGM SPEC:
+ * TGM is a derevation of DMM, with restrictions placed on it
+ * to make it easier to parse and to reduce merge conflicts/ease their resolution
+ *
+ * Requirements:
+ * Each "statement" in a key's details ends with a new line, and wrapped in (...)
+ * All paths end with either a comma or occasionally a {, then a new line
+ * Excepting the area, who is listed last and ends with a ) to mark the end of the key
+ *
+ * {} denotes a list of variable edits applied to the path that came before the first {
+ * the final } is followed by a comma, and then a new line
+ * Variable edits have the form \tname = value;\n
+ * Except the last edit, which has no final ;, and just ends in a newline
+ * No extra padding is permitted
+ * Many values are supported. See parse_constant()
+ * Strings must be wrapped in "...", files in '...', and lists in list(...)
+ * Files are kinda susy, and may not actually work. buyer beware
+ * Lists support assoc values as expected
+ * These constants can be further embedded into lists
+ *
+ * There can be no padding in front of, or behind a path
+ *
+ * Therefore:
+ * "key" = (
+ * /path,
+ * /other/path{
+ * var = list("name" = 'filepath');
+ * other_var = /path
+ * },
+ * /turf,
+ * /area)
+ *
+ */
+#define MAP_TGM "tgm"
+#define MAP_UNKNOWN "unknown"
/datum/grid_set
var/xcrd
@@ -11,9 +71,20 @@
/datum/parsed_map
var/original_path
+ var/map_format
+ /// The length of a key in this file. This is promised by the standard to be static
var/key_len = 0
+ /// The length of a line in this file. Not promised by dmm but standard dmm uses it, so we can trust it
+ var/line_len = 0
+ /// If we've expanded world.maxx
+ var/expanded_y = FALSE
+ /// If we've expanded world.maxy
+ var/expanded_x = FALSE
var/list/grid_models = list()
var/list/gridSets = list()
+ /// List of area types we've loaded AS A PART OF THIS MAP
+ /// We do this to allow non unique areas, so we'll only load one per map
+ var/list/area/loaded_areas = list()
var/list/modelCache
@@ -22,33 +93,97 @@
/// Offset bounds. Same as parsed_bounds until load().
var/list/bounds
+ ///any turf in this list is skipped inside of build_coordinate. Lazy assoc list
+ var/list/turf_blacklist
+
// raw strings used to represent regexes more accurately
// '' used to avoid confusing syntax highlighting
- var/static/regex/dmmRegex = new(@'"([a-zA-Z]+)" = \(((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}', "g")
- var/static/regex/trimQuotesRegex = new(@'^[\s\n]+"?|"?[\s\n]+$|^"|"$', "g")
- var/static/regex/trimRegex = new(@'^[\s\n]+|[\s\n]+$', "g")
+ var/static/regex/dmm_regex = new(@'"([a-zA-Z]+)" = (?:\(\n|\()((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}', "g")
+ /// Matches key formats in TMG (IE: newline after the \()
+ var/static/regex/matches_tgm = new(@'^"[A-z]*"[\s]*=[\s]*\([\s]*\n', "m")
+ /// Pulls out key value pairs for TGM
+ var/static/regex/var_edits_tgm = new(@'^\t([A-z]*) = (.*?);?$')
+ /// Pulls out model paths for DMM
+ var/static/regex/model_path = new(@'(\/[^\{]*?(?:\{.*?\})?)(?:,|$)', "g")
+
+ /// If we are currently loading this map
+ var/loading = FALSE
#ifdef TESTING
var/turfsSkipped = 0
#endif
-/// Shortcut function to parse a map and apply it to the world.
-///
-/// - `dmm_file`: A .dmm file to load (Required).
-/// - `x_offset`, `y_offset`, `z_offset`: Positions representign where to load the map (Optional).
-/// - `cropMap`: When true, the map will be cropped to fit the existing world dimensions (Optional).
-/// - `measureOnly`: When true, no changes will be made to the world (Optional).
-/// - `no_changeturf`: When true, [turf/AfterChange] won't be called on loaded turfs
-/// - `x_lower`, `x_upper`, `y_lower`, `y_upper`: Coordinates (relative to the map) to crop to (Optional).
-/// - `placeOnTop`: Whether to use [turf/PlaceOnTop] rather than [turf/ChangeTurf] (Optional).
-/proc/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, x_lower = -INFINITY as num, x_upper = INFINITY as num, y_lower = -INFINITY as num, y_upper = INFINITY as num, placeOnTop = FALSE as num)
- var/datum/parsed_map/parsed = new(dmm_file, x_lower, x_upper, y_lower, y_upper, measureOnly)
- if(parsed.bounds && !measureOnly)
- parsed.load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop)
- return parsed
+/datum/parsed_map/proc/copy()
+ // Avoids duped work just in case
+ build_cache()
+ var/datum/parsed_map/newfriend = new()
+ newfriend.original_path = original_path
+ newfriend.map_format = map_format
+ newfriend.key_len = key_len
+ newfriend.line_len = line_len
+ newfriend.grid_models = grid_models.Copy()
+ newfriend.gridSets = gridSets.Copy()
+ newfriend.modelCache = modelCache.Copy()
+ newfriend.parsed_bounds = parsed_bounds.Copy()
+ // Copy parsed bounds to reset to initial values
+ newfriend.bounds = parsed_bounds.Copy()
+ newfriend.turf_blacklist = turf_blacklist?.Copy()
+ return newfriend
+
+//text trimming (both directions) helper macro
+#define TRIM_TEXT(text) (trim_reduced(text))
+
+/**
+ * Helper and recommened way to load a map file
+ * - dmm_file: The path to the map file
+ * - x_offset: The x offset to load the map at
+ * - y_offset: The y offset to load the map at
+ * - z_offset: The z offset to load the map at
+ * - crop_map: If true, the map will be cropped to the world bounds
+ * - measure_only: If true, the map will not be loaded, but the bounds will be calculated
+ * - no_changeturf: If true, the map will not call /turf/AfterChange
+ * - x_lower: The minimum x coordinate to load
+ * - x_upper: The maximum x coordinate to load
+ * - y_lower: The minimum y coordinate to load
+ * - y_upper: The maximum y coordinate to load
+ * - z_lower: The minimum z coordinate to load
+ * - z_upper: The maximum z coordinate to load
+ * - place_on_top: Whether to use /turf/proc/PlaceOnTop rather than /turf/proc/ChangeTurf
+ * - new_z: If true, a new z level will be created for the map
+ * - delete: CM/TGMC addition, if we need to manually clear turf contents before spawning stuff
+ */
+/proc/load_map(
+ dmm_file,
+ x_offset = 0,
+ y_offset = 0,
+ z_offset = 0,
+ crop_map = FALSE,
+ measure_only = FALSE,
+ no_changeturf = FALSE,
+ x_lower = -INFINITY,
+ x_upper = INFINITY,
+ y_lower = -INFINITY,
+ y_upper = INFINITY,
+ z_lower = -INFINITY,
+ z_upper = INFINITY,
+ place_on_top = FALSE,
+ new_z = FALSE,
+ delete = FALSE,
+)
+ if(!(dmm_file in GLOB.cached_maps))
+ GLOB.cached_maps[dmm_file] = new /datum/parsed_map(dmm_file)
+
+ var/datum/parsed_map/parsed_map = GLOB.cached_maps[dmm_file]
+ parsed_map = parsed_map.copy()
+ if(!measure_only && !isnull(parsed_map.bounds))
+ parsed_map.load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete)
+ return parsed_map
/// Parse a map, possibly cropping it.
-/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, measureOnly=FALSE)
+/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, z_lower = -INFINITY, z_upper=INFINITY, measureOnly=FALSE)
+ // This proc sleeps for like 6 seconds. why?
+ // Is it file accesses? if so, can those be done ahead of time, async to save on time here? I wonder.
+ // Love ya :)
if(isfile(tfile))
original_path = "[tfile]"
tfile = file2text(tfile)
@@ -56,16 +191,30 @@
// create a new datum without loading a map
return
- bounds = parsed_bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF)
- var/stored_index = 1
+ src.bounds = parsed_bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF)
+
+ if(findtext(tfile, matches_tgm))
+ map_format = MAP_TGM
+ else
+ map_format = MAP_DMM // Fallback
+
+ // lists are structs don't you know :)
+ var/list/bounds = src.bounds
+ var/list/grid_models = src.grid_models
+ var/key_len = src.key_len
+ var/line_len = src.line_len
+ var/stored_index = 1
+ var/list/regexOutput
//multiz lool
- while(dmmRegex.Find(tfile, stored_index))
- stored_index = dmmRegex.next
+ while(dmm_regex.Find(tfile, stored_index))
+ stored_index = dmm_regex.next
+ // Datum var lookup is expensive, this isn't
+ regexOutput = dmm_regex.group
// "aa" = (/type{vars=blah})
- if(dmmRegex.group[1]) // Model
- var/key = dmmRegex.group[1]
+ if(regexOutput[1]) // Model
+ var/key = regexOutput[1]
if(grid_models[key]) // Duplicate model keys are ignored in DMMs
continue
if(key_len != length(key))
@@ -74,328 +223,776 @@
else
CRASH("Inconsistent key length in DMM")
if(!measureOnly)
- grid_models[key] = dmmRegex.group[2]
+ grid_models[key] = regexOutput[2]
// (1,1,1) = {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}
- else if(dmmRegex.group[3]) // Coords
+ else if(regexOutput[3]) // Coords
if(!key_len)
CRASH("Coords before model definition in DMM")
- var/curr_x = text2num(dmmRegex.group[3])
-
+ var/curr_x = text2num(regexOutput[3])
if(curr_x < x_lower || curr_x > x_upper)
continue
+ var/curr_y = text2num(regexOutput[4])
+ if(curr_y < y_lower || curr_y > y_upper)
+ continue
+
+ var/curr_z = text2num(regexOutput[5])
+ if(curr_z < z_lower || curr_z > z_upper)
+ continue
+
var/datum/grid_set/gridSet = new
gridSet.xcrd = curr_x
- //position of the currently processed square
- gridSet.ycrd = text2num(dmmRegex.group[4])
- gridSet.zcrd = text2num(dmmRegex.group[5])
+ gridSet.ycrd = curr_y
+ gridSet.zcrd = curr_z
- bounds[MAP_MINX] = min(bounds[MAP_MINX], clamp(gridSet.xcrd, x_lower, x_upper))
- bounds[MAP_MINZ] = min(bounds[MAP_MINZ], gridSet.zcrd)
- bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], gridSet.zcrd)
+ bounds[MAP_MINX] = min(bounds[MAP_MINX], curr_x)
+ bounds[MAP_MINZ] = min(bounds[MAP_MINZ], curr_y)
+ bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], curr_z)
- var/list/gridLines = splittext(dmmRegex.group[6], "\n")
+ var/list/gridLines = splittext(regexOutput[6], "\n")
gridSet.gridLines = gridLines
var/leadingBlanks = 0
- while(leadingBlanks < gridLines.len && gridLines[++leadingBlanks] == "")
+ while(leadingBlanks < length(gridLines) && gridLines[++leadingBlanks] == "")
if(leadingBlanks > 1)
gridLines.Cut(1, leadingBlanks) // Remove all leading blank lines.
- if(!gridLines.len) // Skip it if only blank lines exist.
+ if(!length(gridLines)) // Skip it if only blank lines exist.
continue
gridSets += gridSet
- if(gridLines.len && gridLines[gridLines.len] == "")
- gridLines.Cut(gridLines.len) // Remove only one blank line at the end.
+ if(gridLines[length(gridLines)] == "")
+ gridLines.Cut(length(gridLines)) // Remove only one blank line at the end.
+
+ bounds[MAP_MINY] = min(bounds[MAP_MINY], gridSet.ycrd)
+ gridSet.ycrd += length(gridLines) - 1 // Start at the top and work down
+ bounds[MAP_MAXY] = max(bounds[MAP_MAXY], gridSet.ycrd)
- bounds[MAP_MINY] = min(bounds[MAP_MINY], clamp(gridSet.ycrd, y_lower, y_upper))
- gridSet.ycrd += gridLines.len - 1 // Start at the top and work down
- bounds[MAP_MAXY] = max(bounds[MAP_MAXY], clamp(gridSet.ycrd, y_lower, y_upper))
+ if(!line_len)
+ line_len = length(gridLines[1])
- var/maxx = gridSet.xcrd
- if(gridLines.len) //Not an empty map
- maxx = max(maxx, gridSet.xcrd + length(gridLines[1]) / key_len - 1)
+ var/maxx = curr_x
+ if(length(gridLines)) //Not an empty map
+ maxx = max(maxx, curr_x + line_len / key_len - 1)
- bounds[MAP_MAXX] = clamp(max(bounds[MAP_MAXX], maxx), x_lower, x_upper)
+ bounds[MAP_MAXX] = max(bounds[MAP_MAXX], maxx)
CHECK_TICK
// Indicate failure to parse any coordinates by nulling bounds
if(bounds[1] == 1.#INF)
- bounds = null
- parsed_bounds = bounds
+ src.bounds = null
+ else
+ // Clamp all our mins and maxes down to the proscribed limits
+ bounds[MAP_MINX] = clamp(bounds[MAP_MINX], x_lower, x_upper)
+ bounds[MAP_MAXX] = clamp(bounds[MAP_MAXX], x_lower, x_upper)
+ bounds[MAP_MINY] = clamp(bounds[MAP_MINY], y_lower, y_upper)
+ bounds[MAP_MAXY] = clamp(bounds[MAP_MAXY], y_lower, y_upper)
+ bounds[MAP_MINZ] = clamp(bounds[MAP_MINZ], z_lower, z_upper)
+ bounds[MAP_MAXZ] = clamp(bounds[MAP_MAXZ], z_lower, z_upper)
+
+ parsed_bounds = src.bounds
+ src.key_len = key_len
+ src.line_len = line_len
+
+/// Iterates over all grid sets and returns ones with z values within the given bounds. Inclusive
+/datum/parsed_map/proc/filter_grid_sets_based_on_z_bounds(lower_z, upper_z)
+ var/list/filtered_sets = list()
+ for(var/datum/grid_set/grid_set as anything in gridSets)
+ if(grid_set.zcrd < lower_z)
+ continue
+ if(grid_set.zcrd > upper_z)
+ continue
+ filtered_sets += grid_set
+ return filtered_sets
-/// Load the parsed map into the world. See [/proc/load_map] for arguments.
-/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, delete)
+/// Load the parsed map into the world. You probably want [/proc/load_map]. Keep the signature the same.
+/datum/parsed_map/proc/load(x_offset = 0, y_offset = 0, z_offset = 0, crop_map = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, z_lower = -INFINITY, z_upper = INFINITY, place_on_top = FALSE, new_z = FALSE, delete = FALSE)
//How I wish for RAII
Master.StartLoadingMap()
- . = _load_impl(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, delete)
+ . = _load_impl(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete)
Master.StopLoadingMap()
+#define MAPLOADING_CHECK_TICK \
+ if(TICK_CHECK) { \
+ if(loading) { \
+ SSatoms.map_loader_stop(REF(src)); \
+ stoplag(); \
+ SSatoms.map_loader_begin(REF(src)); \
+ } else { \
+ stoplag(); \
+ } \
+ }
+
// Do not call except via load() above.
-/datum/parsed_map/proc/_load_impl(x_offset = 1, y_offset = 1, z_offset = world.maxz + 1, cropMap = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE, delete = FALSE)
- var/list/areaCache = list()
+/datum/parsed_map/proc/_load_impl(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete)
+ PRIVATE_PROC(TRUE)
+ // Tell ss atoms that we're doing maploading
+ // We'll have to account for this in the following tick_checks so it doesn't overflow
+ loading = TRUE
+ SSatoms.map_loader_begin(REF(src))
+
+ // Loading used to be done in this proc
+ // We make the assumption that if the inner procs runtime, we WANT to do cleanup on them, but we should stil tell our parents we failed
+ // Since well, we did
+ var/sucessful = FALSE
+ switch(map_format)
+ if(MAP_TGM)
+ sucessful = _tgm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete)
+ else
+ sucessful = _dmm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete)
+
+ // And we are done lads, call it off
+ SSatoms.map_loader_stop(REF(src))
+ loading = FALSE
+
+ // CM: Disabled due to not using contained_turfs and SSarea_contents
+// if(new_z)
+// for(var/z_index in bounds[MAP_MINZ] to bounds[MAP_MAXZ])
+// SSmapping.build_area_turfs(z_index)
+
+ if(!no_changeturf)
+ var/list/turfs = block(
+ locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]),
+ locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))
+ for(var/turf/T as anything in turfs)
+ //we do this after we load everything in. if we don't, we'll have weird atmos bugs regarding atmos adjacent turfs
+ T.AfterChange(CHANGETURF_IGNORE_AIR)
+
+ if(expanded_x || expanded_y)
+ SEND_GLOBAL_SIGNAL(COMSIG_GLOB_EXPANDED_WORLD_BOUNDS, expanded_x, expanded_y)
+
+ #ifdef TESTING
+ if(turfsSkipped)
+ testing("Skipped loading [turfsSkipped] default turfs")
+ #endif
+
+ return sucessful
+
+// Wanna clear something up about maps, talking in 255x255 here
+// In the tgm format, each gridset contains 255 lines, each line representing one tile, with 255 total gridsets
+// In the dmm format, each gridset contains 255 lines, each line representing one row of tiles, containing 255 * line length characters, with one gridset per z
+// You can think of dmm as storing maps in rows, whereas tgm stores them in columns
+/datum/parsed_map/proc/_tgm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete)
+ // setup
var/list/modelCache = build_cache(no_changeturf)
var/space_key = modelCache[SPACE_KEY]
var/list/bounds
src.bounds = bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF)
- for(var/I in gridSets)
- var/datum/grid_set/gset = I
- var/ycrd = gset.ycrd + y_offset - 1
- var/zcrd = gset.zcrd + z_offset - 1
- if(!cropMap && ycrd > world.maxy)
- world.maxy = ycrd // Expand Y here. X is expanded in the loop below
+ // Building y coordinate ranges
+ var/y_relative_to_absolute = y_offset - 1
+ var/x_relative_to_absolute = x_offset - 1
+
+ // Ok so like. something important
+ // We talk in "relative" coords here, so the coordinate system of the map datum
+ // This is so we can do offsets, but it is NOT the same as positions in game
+ // That's why there's some uses of - y_relative_to_absolute here, to turn absolute positions into relative ones
+ // TGM maps process in columns, so the starting y will always be the max size
+ // We know y starts at 1
+ var/datum/grid_set/first_column = gridSets[1]
+ var/relative_y = first_column.ycrd
+ var/highest_y = relative_y + y_relative_to_absolute
+
+ if(!crop_map && highest_y > world.maxy)
+ if(new_z)
+ // Need to avoid improperly loaded area/turf_contents
+ world.increase_max_y(highest_y, map_load_z_cutoff = z_offset - 1)
+ else
+ world.increase_max_y(highest_y)
+ expanded_y = TRUE
+
+ // Skip Y coords that are above the smallest of the three params
+ // So maxy and y_upper get to act as thresholds, and relative_y can play
+ var/y_skip_above = min(world.maxy - y_relative_to_absolute, y_upper, relative_y)
+ // How many lines to skip because they'd be above the y cuttoff line
+ var/y_starting_skip = relative_y - y_skip_above
+ highest_y -= y_starting_skip
+
+ // Y is the LOWEST it will ever be here, so we can easily set a threshold for how low to go
+ var/line_count = length(first_column.gridLines)
+ var/lowest_y = relative_y - (line_count - 1) // -1 because we decrement at the end of the loop, not the start
+ var/y_ending_skip = max(max(y_lower, 1 - y_relative_to_absolute) - lowest_y, 0)
+
+ // X setup
+ var/x_delta_with = x_upper
+ if(crop_map)
+ // Take our smaller crop threshold yes?
+ x_delta_with = min(x_delta_with, world.maxx)
+
+ // We're gonna skip all the entries above the upper x, or maxx if cropMap is set
+ // The last column is guarenteed to have the highest x value we;ll encounter
+ // Even if z scales, this still works
+ var/datum/grid_set/last_column = gridSets[length(gridSets)]
+ var/final_x = last_column.xcrd + x_relative_to_absolute
+
+ if(final_x > x_delta_with)
+ // If our relative x is greater then X upper, well then we've gotta limit our expansion
+ var/delta = max(final_x - x_delta_with, 0)
+ final_x -= delta
+ if(final_x > world.maxx && !crop_map)
+ if(new_z)
+ // Need to avoid improperly loaded area/turf_contents
+ world.increase_max_x(final_x, map_load_z_cutoff = z_offset - 1)
+ else
+ world.increase_max_x(final_x)
+ expanded_x = TRUE
+
+ var/lowest_x = max(x_lower, 1 - x_relative_to_absolute)
+
+ // Amount we offset the grid zcrd to get the true zcrd
+ var/grid_z_offset = z_offset - 1
+ var/z_upper_set = z_upper < INFINITY
+ var/z_lower_set = z_lower > -INFINITY
+
+ // We make the assumption that the last block of turfs will have the highest embedded z in it
+ // true max zcrd
+ var/map_bounds_z_max = last_column.zcrd
+ var/z_upper_parsed = map_bounds_z_max + z_offset - 1
+ if(z_upper_set)
+ z_upper_parsed -= map_bounds_z_max - z_upper
+ if(z_lower_set)
+ var/offset_amount = z_lower - 1
+ z_upper_parsed -= offset_amount
+ grid_z_offset -= offset_amount
+
+ var/list/target_grid_sets = gridSets
+ if(z_lower_set || z_upper_set) // bounds are set, filter out gridsets for z levels we don't want
+ target_grid_sets = filter_grid_sets_based_on_z_bounds(z_lower, z_upper)
+
+ var/z_threshold = world.maxz
+ if(z_upper_parsed > z_threshold && crop_map)
+ for(var/i in z_threshold + 1 to z_upper_parsed) //create a new z_level if needed
+ world.incrementMaxZ()
+ if(!no_changeturf)
+ WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called")
+
+ for(var/datum/grid_set/gset as anything in target_grid_sets)
+ var/true_xcrd = gset.xcrd + x_relative_to_absolute
+
+ // any cutoff of x means we just shouldn't iterate this gridset
+ if(final_x < true_xcrd || lowest_x > gset.xcrd)
+ continue
+
+ var/zcrd = gset.zcrd + grid_z_offset
+ // If we're using changeturf, we disable it if we load into a z level we JUST created
+ var/no_afterchange = no_changeturf || zcrd > z_threshold
+
+ // We're gonna track the first and last pairs of coords we find
+ // Since x is always incremented in steps of 1, we only need to deal in y
+ // The first x is guarenteed to be the lowest, the first y the highest, and vis versa
+ // This is faster then doing mins and maxes inside the hot loop below
+ var/first_found = FALSE
+ var/first_y = 0
+ var/last_y = 0
+
+ var/ycrd = highest_y
+ // Everything following this line is VERY hot.
+ for(var/i in 1 + y_starting_skip to line_count - y_ending_skip)
+ if(gset.gridLines[i] == space_key && no_afterchange)
+ #ifdef TESTING
+ ++turfsSkipped
+ #endif
+ ycrd--
+ MAPLOADING_CHECK_TICK
+ continue
+
+ var/list/cache = modelCache[gset.gridLines[i]]
+ if(!cache)
+ SSatoms.map_loader_stop(REF(src))
+ CRASH("Undefined model key in DMM: [gset.gridLines[i]]")
+ build_coordinate(cache, locate(true_xcrd, ycrd, zcrd), no_afterchange, place_on_top, new_z, delete)
+
+ // only bother with bounds that actually exist
+ if(!first_found)
+ first_found = TRUE
+ first_y = ycrd
+ last_y = ycrd
+ ycrd--
+ MAPLOADING_CHECK_TICK
+
+ // The x coord never changes, so not tracking first x is safe
+ // If no ycrd is found, we assume this row is totally empty and just continue on
+ if(first_found)
+ bounds[MAP_MINX] = min(bounds[MAP_MINX], true_xcrd)
+ bounds[MAP_MINY] = min(bounds[MAP_MINY], last_y)
+ bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd)
+ bounds[MAP_MAXX] = max(bounds[MAP_MAXX], true_xcrd)
+ bounds[MAP_MAXY] = max(bounds[MAP_MAXY], first_y)
+ bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd)
+ return TRUE
+
+/// Stanrdard loading, not used in production
+/// Doesn't take advantage of any tgm optimizations, which makes it slower but also more general
+/// Use this if for some reason your map format is messy
+/datum/parsed_map/proc/_dmm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete)
+ // setup
+ var/list/modelCache = build_cache(no_changeturf)
+ var/space_key = modelCache[SPACE_KEY]
+ var/list/bounds
+ var/key_len = src.key_len
+ src.bounds = bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF)
+
+ var/y_relative_to_absolute = y_offset - 1
+ var/x_relative_to_absolute = x_offset - 1
+ var/line_len = src.line_len
+
+ // Amount we offset the grid zcrd to get the true zcrd
+ var/grid_z_offset = z_offset - 1
+ var/z_upper_set = z_upper < INFINITY
+ var/z_lower_set = z_lower > -INFINITY
+
+ // we now need to find the maximum z, fun!
+ var/map_bounds_z_max = 1
+ for(var/datum/grid_set/grid_set as anything in gridSets)
+ map_bounds_z_max = max(map_bounds_z_max, grid_set.zcrd)
+
+ var/z_upper_parsed = map_bounds_z_max + z_offset - 1
+ if(z_upper_set)
+ z_upper_parsed -= map_bounds_z_max - z_upper
+ if(z_lower_set)
+ var/offset_amount = z_lower - 1
+ z_upper_parsed -= offset_amount
+ grid_z_offset -= offset_amount
+
+ var/list/target_grid_sets = gridSets
+ if(z_lower_set || z_upper_set) // bounds are set, filter out gridsets for z levels we don't want
+ target_grid_sets = filter_grid_sets_based_on_z_bounds(z_lower, z_upper)
+
+ for(var/datum/grid_set/gset as anything in target_grid_sets)
+ var/relative_x = gset.xcrd
+ var/relative_y = gset.ycrd
+ var/true_xcrd = relative_x + x_relative_to_absolute
+ var/ycrd = relative_y + y_relative_to_absolute
+ var/zcrd = gset.zcrd + grid_z_offset
+ if(!crop_map && ycrd > world.maxy)
+ if(new_z)
+ // Need to avoid improperly loaded area/turf_contents
+ world.increase_max_y(ycrd, map_load_z_cutoff = z_offset - 1)
+ else
+ world.increase_max_y(ycrd)
+ expanded_y = TRUE
var/zexpansion = zcrd > world.maxz
+ var/no_afterchange = no_changeturf
if(zexpansion)
- if(cropMap)
+ if(crop_map)
continue
else
while (zcrd > world.maxz) //create a new z_level if needed
world.incrementMaxZ()
if(!no_changeturf)
WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called")
-
- for(var/line in gset.gridLines)
- if((ycrd - y_offset + 1) < y_lower || (ycrd - y_offset + 1) > y_upper) //Reverse operation and check if it is out of bounds of cropping.
- --ycrd
- continue
- if(ycrd <= world.maxy && ycrd >= 1)
- var/xcrd = gset.xcrd + x_offset - 1
- for(var/tpos = 1 to length(line) - key_len + 1 step key_len)
- if((xcrd - x_offset + 1) < x_lower || (xcrd - x_offset + 1) > x_upper) //Same as above.
- ++xcrd
- continue //X cropping.
- if(xcrd > world.maxx)
- if(cropMap)
- break
- else
- world.maxx = xcrd
-
- if(xcrd >= 1)
- var/model_key = copytext(line, tpos, tpos + key_len)
- var/no_afterchange = no_changeturf || zexpansion
- if(!no_afterchange || (model_key != space_key))
- var/list/cache = modelCache[model_key]
- if(!cache)
- CRASH("Undefined model key in DMM: [model_key]")
- build_coordinate(areaCache, cache, locate(xcrd, ycrd, zcrd), no_afterchange, placeOnTop, delete)
-
- // only bother with bounds that actually exist
- bounds[MAP_MINX] = min(bounds[MAP_MINX], xcrd)
- bounds[MAP_MINY] = min(bounds[MAP_MINY], ycrd)
- bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd)
- bounds[MAP_MAXX] = max(bounds[MAP_MAXX], xcrd)
- bounds[MAP_MAXY] = max(bounds[MAP_MAXY], ycrd)
- bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd)
- #ifdef TESTING
- else
- ++turfsSkipped
- #endif
- CHECK_TICK
+ no_afterchange = TRUE
+ // Ok so like. something important
+ // We talk in "relative" coords here, so the coordinate system of the map datum
+ // This is so we can do offsets, but it is NOT the same as positions in game
+ // That's why there's some uses of - y_relative_to_absolute here, to turn absolute positions into relative ones
+
+ // Skip Y coords that are above the smallest of the three params
+ // So maxy and y_upper get to act as thresholds, and relative_y can play
+ var/y_skip_above = min(world.maxy - y_relative_to_absolute, y_upper, relative_y)
+ // How many lines to skip because they'd be above the y cuttoff line
+ var/y_starting_skip = relative_y - y_skip_above
+ ycrd += y_starting_skip
+
+ // Y is the LOWEST it will ever be here, so we can easily set a threshold for how low to go
+ var/line_count = length(gset.gridLines)
+ var/lowest_y = relative_y - (line_count - 1) // -1 because we decrement at the end of the loop, not the start
+ var/y_ending_skip = max(max(y_lower, 1 - y_relative_to_absolute) - lowest_y, 0)
+
+ // Now we're gonna precompute the x thresholds
+ // We skip all the entries below the lower x, or 1
+ var/starting_x_delta = max(max(x_lower, 1 - x_relative_to_absolute) - relative_x, 0)
+ // The x loop counts by key length, so we gotta multiply here
+ var/x_starting_skip = starting_x_delta * key_len
+ true_xcrd += starting_x_delta
+
+ // We're gonna skip all the entries above the upper x, or maxx if cropMap is set
+ var/x_target = line_len - key_len + 1
+ var/x_step_count = ROUND_UP(x_target / key_len)
+ var/final_x = relative_x + (x_step_count - 1)
+ var/x_delta_with = x_upper
+ if(crop_map)
+ // Take our smaller crop threshold yes?
+ x_delta_with = min(x_delta_with, world.maxx)
+ if(final_x > x_delta_with)
+ // If our relative x is greater then X upper, well then we've gotta limit our expansion
+ var/delta = max(final_x - x_delta_with, 0)
+ x_step_count -= delta
+ final_x -= delta
+ x_target = x_step_count * key_len
+ if(final_x > world.maxx && !crop_map)
+ if(new_z)
+ // Need to avoid improperly loaded area/turf_contents
+ world.increase_max_x(final_x, map_load_z_cutoff = z_offset - 1)
+ else
+ world.increase_max_x(final_x)
+ expanded_x = TRUE
+
+ // We're gonna track the first and last pairs of coords we find
+ // The first x is guarenteed to be the lowest, the first y the highest, and vis versa
+ // This is faster then doing mins and maxes inside the hot loop below
+ var/first_found = FALSE
+ var/first_x = 0
+ var/first_y = 0
+ var/last_x = 0
+ var/last_y = 0
+
+ // Everything following this line is VERY hot. How hot depends on the map format
+ // (Yes this does mean dmm is technically faster to parse. shut up)
+ for(var/i in 1 + y_starting_skip to line_count - y_ending_skip)
+ var/line = gset.gridLines[i]
+
+ var/xcrd = true_xcrd
+ for(var/tpos in 1 + x_starting_skip to x_target step key_len)
+ var/model_key = copytext(line, tpos, tpos + key_len)
+ if(model_key == space_key && no_afterchange)
+ #ifdef TESTING
+ ++turfsSkipped
+ #endif
+ MAPLOADING_CHECK_TICK
++xcrd
- --ycrd
-
- CHECK_TICK
+ continue
+ var/list/cache = modelCache[model_key]
+ if(!cache)
+ SSatoms.map_loader_stop(REF(src))
+ CRASH("Undefined model key in DMM: [model_key]")
+ build_coordinate(cache, locate(xcrd, ycrd, zcrd), no_afterchange, place_on_top, new_z, delete)
+
+ // only bother with bounds that actually exist
+ if(!first_found)
+ first_found = TRUE
+ first_x = xcrd
+ first_y = ycrd
+ last_x = xcrd
+ last_y = ycrd
+ MAPLOADING_CHECK_TICK
+ ++xcrd
+ ycrd--
+ MAPLOADING_CHECK_TICK
+ bounds[MAP_MINX] = min(bounds[MAP_MINX], first_x)
+ bounds[MAP_MINY] = min(bounds[MAP_MINY], last_y)
+ bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd)
+ bounds[MAP_MAXX] = max(bounds[MAP_MAXX], last_x)
+ bounds[MAP_MAXY] = max(bounds[MAP_MAXY], first_y)
+ bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd)
- //if(!no_changeturf)// mapping TODO:
- // for(var/t in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])))
- // var/turf/T = t
- // //we do this after we load everything in. if we don't; we'll have weird atmos bugs regarding atmos adjacent turfs
- // T.AfterChange(CHANGETURF_IGNORE_AIR)
+ return TRUE
- #ifdef TESTING
- if(turfsSkipped)
- testing("Skipped loading [turfsSkipped] default turfs")
- #endif
+GLOBAL_LIST_EMPTY(map_model_default)
- return TRUE
+/datum/parsed_map/proc/build_cache(no_changeturf, bad_paths)
+ if(map_format == MAP_TGM)
+ return tgm_build_cache(no_changeturf, bad_paths)
+ return dmm_build_cache(no_changeturf, bad_paths)
-/datum/parsed_map/proc/build_cache(no_changeturf, bad_paths=null)
+/datum/parsed_map/proc/tgm_build_cache(no_changeturf, bad_paths=null)
if(modelCache && !bad_paths)
return modelCache
. = modelCache = list()
var/list/grid_models = src.grid_models
+ var/set_space = FALSE
+ // Use where a list is needed, but where it will not be modified
+ // Used here to remove the cost of needing to make a new list for each fields entry when it's set manually later
+ var/static/list/default_list = GLOB.map_model_default // It's stupid, but it saves += list(list)
+ var/static/list/wrapped_default_list = list(default_list) // It's stupid, but it saves += list(list)
+ var/static/regex/var_edits = var_edits_tgm
+
+ var/path_to_init = ""
+ // Reference to the attributes list we're currently filling, if any
+ var/list/current_attributes
+ // If we are currently editing a path or not
+ var/editing = FALSE
for(var/model_key in grid_models)
- var/model = grid_models[model_key]
- var/list/members = list() //will contain all members (paths) in model (in our example : /turf/unsimulated/wall and /area/mine/explored)
- var/list/members_attributes = list() //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list())
+ // We're going to split models by newline
+ // This guarentees that each entry will be of interest to us
+ // Then we'll process them step by step
+ // Hopefully this reduces the cost from read_list that we'd otherwise have
+ var/list/lines = splittext(grid_models[model_key], "\n")
+ // Builds list of path/edits for later
+ // Of note: we cannot preallocate them to save time in list expansion later
+ // But fortunately lists allocate at least 8 entries normally anyway, and
+ // We are unlikely to have more then that many members
+ //will contain all members (paths) in model (in our example : /turf/unsimulated/wall)
+ var/list/members = list()
+ //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list())
+ var/list/members_attributes = list()
/////////////////////////////////////////////////////////
//Constructing members and corresponding variables lists
////////////////////////////////////////////////////////
+ // string representation of the path to init
+ for(var/line in lines)
+ // We do this here to avoid needing to check at each return statement
+ // No harm in it anyway
+ MAPLOADING_CHECK_TICK
+
+ switch(line[length(line)])
+ if(";") // Var edit, we'll apply it
+ // Var edits look like \tname = value;
+ // I'm gonna try capturing them with regex, since it ought to be the fastest here
+ // Should hand back key = value
+ var_edits.Find(line)
+ var/value = parse_constant(var_edits.group[2])
+ if(istext(value))
+ value = apply_text_macros(value)
+ current_attributes[var_edits.group[1]] = value
+ continue // Keep on keeping on brother
+ if("{") // Start of an edit, and so also the start of a path
+ editing = TRUE
+ current_attributes = list() // Init the list we'll be filling
+ members_attributes += list(current_attributes)
+ path_to_init = copytext(line, 1, -1)
+ if(",") // Either the end of a path, or the end of an edit
+ if(editing) // it was the end of a path
+ editing = FALSE
+ continue
+ members_attributes += wrapped_default_list // We know this is a path, and we also know it has no vv's. so we'll just set this to the default list
+ // Drop the last char mind
+ path_to_init = copytext(line, 1, -1)
+ if("}") // Gotta be the end of an area edit, let's check to be sure
+ if(editing) // it was the end of an area edit (shouldn't do those anyhow)
+ editing = FALSE
+ continue
+ stack_trace("ended a line on JUST a }, with no ongoing edit. What? Area shit?")
+ else // If we're editing, this is a var edit entry. the last one in a stack, cause god hates me. Otherwise, it's an area
+ if(editing) // I want inline I want inline I want inline
+ // Var edits look like \tname = value;
+ // I'm gonna try capturing them with regex, since it ought to be the fastest here
+ // Should hand back key = value
+ var_edits.Find(line)
+ var/value = parse_constant(var_edits.group[2])
+ if(istext(value))
+ value = apply_text_macros(value)
+ current_attributes[var_edits.group[1]] = value
+ continue // Keep on keeping on brother
- var/index = 1
- var/old_position = 1
- var/dpos
+ members_attributes += wrapped_default_list // We know this is a path, and we also know it has no vv's. so we'll just set this to the default list
+ path_to_init = line
- while(dpos != 0)
- //finding next member (e.g /turf/unsimulated/wall{icon_state = "rock"} or /area/mine/explored)
- dpos = find_next_delimiter_position(model, old_position, ",", "{", "}") //find next delimiter (comma here) that's not within {...}
- var/full_def = trim_text(copytext(model, old_position, dpos)) //full definition, e.g : /obj/foo/bar{variables=derp}
- var/variables_start = findtext(full_def, "{")
- var/path_text = trim_text(copytext(full_def, 1, variables_start))
+ // Alright, if we've gotten to this point, our string is a path
+ // Oh and we don't trim it, because we require no padding for these
+ // Saves like 1.5 deciseconds
+ var/atom_def = text2path(path_to_init) //path definition, e.g /obj/foo/bar
+
+ if(!ispath(atom_def, /atom)) // Skip the item if the path does not exist. Fix your crap, mappers!
+ if(bad_paths)
+ // Rare case, avoid the var to save time most of the time
+ LAZYOR(bad_paths[copytext(line, 1, -1)], model_key)
+ continue
+ // Index is already incremented either way, just gotta set the path and all
+ members += atom_def
+
+ //check and see if we can just skip this turf
+ //So you don't have to understand this horrid statement, we can do this if
+ // 1. the space_key isn't set yet
+ // 2. no_changeturf is set
+ // 3. there are exactly 2 members
+ // 4. with no attributes
+ // 5. and the members are world.turf and world.area
+ // Basically, if we find an entry like this: "XXX" = (/turf/default, /area/default)
+ // We can skip calling this proc every time we see XXX
+ if(!set_space \
+ && no_changeturf \
+ && members_attributes.len == 2 \
+ && members.len == 2 \
+ && members_attributes[1] == default_list \
+ && members_attributes[2] == default_list \
+ && members[2] == world.area \
+ && members[1] == world.turf
+ )
+ set_space = TRUE
+ .[SPACE_KEY] = model_key
+ continue
+
+ .[model_key] = list(members, members_attributes)
+ return .
+
+/// Builds key caches for general formats
+/// Slower then the proc above, tho it could still be optimized slightly. it's just not a priority
+/// Since we don't run DMM maps, ever.
+/datum/parsed_map/proc/dmm_build_cache(no_changeturf, bad_paths=null)
+ if(modelCache && !bad_paths)
+ return modelCache
+ . = modelCache = list()
+ var/list/grid_models = src.grid_models
+ var/set_space = FALSE
+ // Use where a list is needed, but where it will not be modified
+ // Used here to remove the cost of needing to make a new list for each fields entry when it's set manually later
+ var/static/list/default_list = list(GLOB.map_model_default)
+ for(var/model_key in grid_models)
+ //will contain all members (paths) in model (in our example : /turf/unsimulated/wall)
+ var/list/members = list()
+ //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list())
+ var/list/members_attributes = list()
+
+ var/model = grid_models[model_key]
+ /////////////////////////////////////////////////////////
+ //Constructing members and corresponding variables lists
+ ////////////////////////////////////////////////////////
+
+ var/model_index = 1
+ while(model_path.Find(model, model_index))
+ var/variables_start = 0
+ var/member_string = model_path.group[1]
+ model_index = model_path.next
+ //findtext is a bit expensive, lets only do this if the last char of our string is a } (IE: we know we have vars)
+ //this saves about 25 miliseconds on my machine. Not a major optimization
+ if(member_string[length(member_string)] == "}")
+ variables_start = findtext(member_string, "{")
+
+ var/path_text = TRIM_TEXT(copytext(member_string, 1, variables_start))
var/atom_def = text2path(path_text) //path definition, e.g /obj/foo/bar
- if(dpos)
- old_position = dpos + length(model[dpos])
if(!ispath(atom_def, /atom)) // Skip the item if the path does not exist. Fix your crap, mappers!
if(bad_paths)
LAZYOR(bad_paths[path_text], model_key)
continue
- members.Add(atom_def)
+ members += atom_def
//transform the variables in text format into a list (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7))
- var/list/fields = list()
-
+ // OF NOTE: this could be made faster by replacing readlist with a progressive regex
+ // I'm just too much of a bum to do it rn, especially since we mandate tgm format for any maps in repo
+ var/list/fields = default_list
if(variables_start)//if there's any variable
- full_def = copytext(full_def, variables_start + length(full_def[variables_start]), -length(copytext_char(full_def, -1))) //removing the last '}'
- fields = readlist(full_def, ";")
- if(fields.len)
- if(!trim(fields[fields.len]))
- --fields.len
- for(var/I in fields)
- var/value = fields[I]
- if(istext(value))
- fields[I] = apply_text_macros(value)
+ member_string = copytext(member_string, variables_start + length(member_string[variables_start]), -length(copytext_char(member_string, -1))) //removing the last '}'
+ fields = list(readlist(member_string, ";"))
+ for(var/I in fields)
+ var/value = fields[I]
+ if(istext(value))
+ fields[I] = apply_text_macros(value)
//then fill the members_attributes list with the corresponding variables
- members_attributes.len++
- members_attributes[index++] = fields
-
- CHECK_TICK
+ members_attributes += fields
+ MAPLOADING_CHECK_TICK
//check and see if we can just skip this turf
//So you don't have to understand this horrid statement, we can do this if
- // 1. no_changeturf is set
- // 2. the space_key isn't set yet
+ // 1. the space_key isn't set yet
+ // 2. no_changeturf is set
// 3. there are exactly 2 members
// 4. with no attributes
// 5. and the members are world.turf and world.area
// Basically, if we find an entry like this: "XXX" = (/turf/default, /area/default)
// We can skip calling this proc every time we see XXX
- if(no_changeturf \
- && !(.[SPACE_KEY]) \
+ if(!set_space \
+ && no_changeturf \
&& members.len == 2 \
&& members_attributes.len == 2 \
&& length(members_attributes[1]) == 0 \
&& length(members_attributes[2]) == 0 \
&& (world.area in members) \
&& (world.turf in members))
-
+ set_space = TRUE
.[SPACE_KEY] = model_key
continue
-
.[model_key] = list(members, members_attributes)
+ return .
-/datum/parsed_map/proc/build_coordinate(list/areaCache, list/model, turf/crds, no_changeturf as num, placeOnTop as num, delete)
+/datum/parsed_map/proc/build_coordinate(list/model, turf/crds, no_changeturf as num, placeOnTop as num, new_z, delete)
+ // If we don't have a turf, nothing we will do next will actually acomplish anything, so just go back
+ // Note, this would actually drop area vvs in the tile, but like, why tho
+ if(!crds)
+ return
var/index
var/list/members = model[1]
var/list/members_attributes = model[2]
+ // We use static lists here because it's cheaper then passing them around
+ var/static/list/default_list = GLOB.map_model_default
////////////////
//Instanciation
////////////////
+ if(turf_blacklist?[crds])
+ return
+
//The next part of the code assumes there's ALWAYS an /area AND a /turf on a given tile
//first instance the /area and remove it from the members list
index = members.len
+ var/area/old_area
if(members[index] != /area/template_noop)
- var/atype = members[index]
- GLOB._preloader.setup(members_attributes[index], atype)//preloader for assigning set variables on atom creation
- var/atom/instance = areaCache[atype]
- if(!instance)
- instance = GLOB.areas_by_type[atype]
- if(!instance)
- instance = new atype(null)
- areaCache[atype] = instance
- if(crds)
- instance.contents.Add(crds)
-
- if(GLOB.use_preloader && instance)
- GLOB._preloader.load(instance)
-
- //then instance the /turf and, if multiple tiles are presents, simulates the DMM underlays piling effect
-
- var/first_turf_index = 1
- while(!ispath(members[first_turf_index], /turf)) //find first /turf object in members
- first_turf_index++
-
- //turn off base new Initialization until the whole thing is loaded
- SSatoms.map_loader_begin()
- //instanciate the first /turf
- var/turf/T
- if(members[first_turf_index] != /turf/template_noop)
- T = instance_atom(members[first_turf_index], members_attributes[first_turf_index], crds,no_changeturf, placeOnTop, delete)
-
- if(T)
- //if others /turf are presents, simulates the underlays piling effect
- index = first_turf_index + 1
- while(index <= members.len - 1) // Last item is an /area
- var/underlay = T.appearance
- T = instance_atom(members[index], members_attributes[index], crds,no_changeturf, placeOnTop, delete)//instance new turf
- T.underlays += underlay
- index++
+ if(members_attributes[index] != default_list)
+ world.preloader_setup(members_attributes[index], members[index])//preloader for assigning set variables on atom creation
+ var/area/area_instance = loaded_areas[members[index]]
+ if(!area_instance)
+ var/area_type = members[index]
+ // If this parsed map doesn't have that area already, we check the global cache
+ area_instance = GLOB.areas_by_type[area_type]
+ // If the global list DOESN'T have this area it's either not a unique area, or it just hasn't been created yet
+ if (!area_instance)
+ area_instance = new area_type(null)
+ if(!area_instance)
+ CRASH("[area_type] failed to be new'd, what'd you do?")
+ loaded_areas[area_type] = area_instance
+
+ if(!new_z)
+ old_area = crds.loc
+// old_area.turfs_to_uncontain += crds
+// area_instance.contained_turfs.Add(crds)
+ area_instance.contents.Add(crds)
+
+ if(GLOB.use_preloader)
+ world.preloader_load(area_instance)
+
+ // Index right before /area is /turf
+ index--
+ var/atom/instance
+ //then instance the /turf
+ //NOTE: this used to place any turfs before the last "underneath" it using .appearance and underlays
+ //We don't actually use this, and all it did was cost cpu, so we don't do this anymore
+ if(members[index] != /turf/template_noop)
+ if(members_attributes[index] != default_list)
+ world.preloader_setup(members_attributes[index], members[index])
+
+ // CM/TGMC addition: delete map contents before inserting if delete truthy
+ if(delete)
+ for(var/atom/turf_atom as anything in crds.GetAllTurfStrictContents())
+ if(isobserver(turf_atom))
+ continue
+ qdel(turf_atom, force = TRUE)
+
+ // Note: we make the assertion that the last path WILL be a turf. if it isn't, this will fail.
+ if(placeOnTop)
+ instance = crds.load_on_top(members[index], CHANGETURF_DEFER_CHANGE | (no_changeturf ? CHANGETURF_SKIP : NONE))
+ else if(no_changeturf)
+ instance = create_atom(members[index], crds)//first preloader pass
+ else
+ instance = crds.ChangeTurf(members[index], null, CHANGETURF_DEFER_CHANGE)
+
+ if(GLOB.use_preloader && instance)//second preloader pass, for those atoms that don't ..() in New()
+ world.preloader_load(instance)
+ // If this isn't template work, we didn't change our turf and we changed area, then we've gotta handle area lighting transfer
+ else if(!no_changeturf && old_area)
+ // Don't do contain/uncontain stuff, this happens a few lines up when the area actally changes
+ crds.on_change_area(old_area, crds.loc)
+ MAPLOADING_CHECK_TICK
//finally instance all remainings objects/mobs
- for(index in 1 to first_turf_index-1)
- instance_atom(members[index], members_attributes[index], crds, no_changeturf, placeOnTop, delete)
- //Restore initialization to the previous value
- SSatoms.map_loader_stop()
+ for(var/atom_index in 1 to index-1)
+ if(members_attributes[atom_index] != default_list)
+ world.preloader_setup(members_attributes[atom_index], members[atom_index])
+
+ // We make the assertion that only /atom s will be in this portion of the code. if that isn't true, this will fail
+ instance = create_atom(members[atom_index], crds)//first preloader pass
+
+ if(GLOB.use_preloader && instance)//second preloader pass, for those atoms that don't ..() in New()
+ world.preloader_load(instance)
+ MAPLOADING_CHECK_TICK
////////////////
//Helpers procs
////////////////
-//Instance an atom at (x,y,z) and gives it the variables in attributes
-/datum/parsed_map/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, placeOnTop, delete)
- GLOB._preloader.setup(attributes, path)
-
- if(crds)
- if(ispath(path, /turf))
- if(delete)
- for(var/atom/A as anything in crds.GetAllTurfStrictContents())
- if(isobserver(A))
- continue
- qdel(A, force=TRUE)
-
- if(placeOnTop)
- . = crds.PlaceOnTop(null, path, CHANGETURF_DEFER_CHANGE | (no_changeturf ? CHANGETURF_SKIP : NONE))
- else if(!no_changeturf)
- . = crds.ChangeTurf(path, null, CHANGETURF_DEFER_CHANGE)
- else
- . = create_atom(path, crds)//first preloader pass
- else
- . = create_atom(path, crds)//first preloader pass
-
- if(GLOB.use_preloader && .)//second preloader pass, for those atoms that don't ..() in New()
- GLOB._preloader.load(.)
-
- //custom CHECK_TICK here because we don't want things created while we're sleeping to not initialize
- if(TICK_CHECK)
- SSatoms.map_loader_stop()
- stoplag()
- SSatoms.map_loader_begin()
-
/datum/parsed_map/proc/create_atom(path, crds)
set waitfor = FALSE
. = new path (crds)
-//text trimming (both directions) helper proc
-//optionally removes quotes before and after the text (for variable name)
-/datum/parsed_map/proc/trim_text(what as text,trim_quotes=0)
- if(trim_quotes)
- return trimQuotesRegex.Replace(what, "")
- else
- return trimRegex.Replace(what, "")
-
-
//find the position of the next delimiter,skipping whatever is comprised between opening_escape and closing_escape
//returns 0 if reached the last delimiter
/datum/parsed_map/proc/find_next_delimiter_position(text as text,initial_position as num, delimiter=",",opening_escape="\"",closing_escape="\"")
@@ -410,7 +1007,6 @@
return next_delimiter
-
//build a list from variables in text form (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7))
//return the filled list
/datum/parsed_map/proc/readlist(text as text, delimiter=",")
@@ -418,28 +1014,29 @@
if (!text)
return
+ // If we're using a semi colon, we can do this as splittext rather then constant calls to find_next_delimiter_position
+ // This does make the code a bit harder to read, but saves a good bit of time so suck it up
var/position
var/old_position = 1
-
while(position != 0)
// find next delimiter that is not within "..."
position = find_next_delimiter_position(text,old_position,delimiter)
// check if this is a simple variable (as in list(var1, var2)) or an associative one (as in list(var1="foo",var2=7))
var/equal_position = findtext(text,"=",old_position, position)
-
- var/trim_left = trim_text(copytext(text,old_position,(equal_position ? equal_position : position)))
- var/left_constant = delimiter == ";" ? trim_left : parse_constant(trim_left)
+ var/trim_left = TRIM_TEXT(copytext(text,old_position,(equal_position ? equal_position : position)))
+ var/left_constant = parse_constant(trim_left)
if(position)
old_position = position + length(text[position])
+ if(!left_constant) // damn newlines man. Exists to provide behavior consistency with the above loop. not a major cost becuase this path is cold
+ continue
if(equal_position && !isnum(left_constant))
// Associative var, so do the association.
// Note that numbers cannot be keys - the RHS is dropped if so.
- var/trim_right = trim_text(copytext(text, equal_position + length(text[equal_position]), position))
+ var/trim_right = TRIM_TEXT(copytext(text, equal_position + length(text[equal_position]), position))
var/right_constant = parse_constant(trim_right)
.[left_constant] = right_constant
-
else // simple var
. += list(left_constant)
@@ -451,7 +1048,10 @@
// string
if(text[1] == "\"")
- return copytext(text, length(text[1]) + 1, findtext(text, "\"", length(text[1]) + 1))
+ // insert implied locate \" and length("\"") here
+ // It's a minimal timesave but it is a timesave
+ // Safe becuase we're guarenteed trimmed constants
+ return copytext(text, 2, -1)
// list
if(copytext(text, 1, 6) == "list(")//6 == length("list(") + 1
@@ -479,4 +1079,17 @@
/datum/parsed_map/Destroy()
..()
+ SSatoms.map_loader_stop(REF(src)) // Just in case, I don't want to double up here
+ if(turf_blacklist)
+ turf_blacklist.Cut()
+ parsed_bounds.Cut()
+ bounds.Cut()
+ grid_models.Cut()
+ gridSets.Cut()
return QDEL_HINT_HARDDEL_NOW
+
+#undef MAP_DMM
+#undef MAP_TGM
+#undef MAP_UNKNOWN
+#undef TRIM_TEXT
+#undef MAPLOADING_CHECK_TICK
diff --git a/code/modules/mapping/space_management/space_level.dm b/code/modules/mapping/space_management/space_level.dm
index 861258aa20a2..48303b5e39ae 100644
--- a/code/modules/mapping/space_management/space_level.dm
+++ b/code/modules/mapping/space_management/space_level.dm
@@ -4,13 +4,20 @@
var/list/traits
var/z_value = 1 //actual z placement
var/linkage = SELFLOOPING
- var/x_bounds
- var/y_bounds
+ /// Bounds at time of loading the map
+ var/bounds
/datum/space_level/New(new_z, new_name, list/new_traits = list())
z_value = new_z
name = new_name
traits = new_traits
+
+ if (islist(new_traits))
+ for (var/trait in new_traits)
+ SSmapping.z_trait_levels[trait] += list(new_z)
+ else // in case a single trait is passed in
+ SSmapping.z_trait_levels[new_traits] += list(new_z)
//set_linkage(new_traits[ZTRAIT_LINKAGE])
- x_bounds = world.maxx
- y_bounds = world.maxy
+
+ //Lazy Init value, will be hopefully changed by SSmapping
+ bounds = list(1, 1, z_value, world.maxx, world.maxy, z_value)
diff --git a/code/modules/mapping/space_management/space_reservation.dm b/code/modules/mapping/space_management/space_reservation.dm
index adaff04000ff..3c47ac3b5c2a 100644
--- a/code/modules/mapping/space_management/space_reservation.dm
+++ b/code/modules/mapping/space_management/space_reservation.dm
@@ -1,81 +1,240 @@
+/// Cordon area surrounding turf reservations
+/area/misc/cordon
+ name = "CORDON"
+ icon_state = "cordon"
+ static_lighting = FALSE
+ base_lighting_alpha = 255
+ requires_power = FALSE
+
+#define CORDON_TURF_TYPE /turf/closed/cordon
//Yes, they can only be rectangular.
//Yes, I'm sorry.
/datum/turf_reservation
+ /// All turfs that we've reserved
var/list/reserved_turfs = list()
+
+ /// Turfs around the reservation for cordoning
+ var/list/cordon_turfs = list()
+
+ /// Area of turfs next to the cordon to fill with pre_cordon_area's
+ var/list/pre_cordon_turfs = list()
+
+ /// The width of the reservation
var/width = 0
+
+ /// The height of the reservation
var/height = 0
- var/bottom_left_coords[3]
- var/top_right_coords[3]
- var/wipe_reservation_on_release = TRUE
+
+ /// The z stack size of the reservation. Note that reservations are ALWAYS reserved from the bottom up
+ var/z_size = 0
+
+ /// List of the bottom left turfs. Indexed by what their z index for this reservation is
+ var/list/bottom_left_turfs = list()
+
+ /// List of the top right turfs. Indexed by what their z index for this reservation is
+ var/list/top_right_turfs = list()
+
+ /// The turf type the reservation is initially made with
var/turf_type = /turf/open/space
+ ///Distance away from the cordon where we can put a "sort-cordon" and run some extra code (see make_repel). 0 makes nothing happen
+ var/pre_cordon_distance = 0
+
/datum/turf_reservation/transit
turf_type = /turf/open/space/transit
+ pre_cordon_distance = 7
/datum/turf_reservation/interior
turf_type = /turf/open/void/vehicle
/datum/turf_reservation/proc/Release()
- var/v = reserved_turfs.Copy()
- for(var/i in reserved_turfs)
- var/turf/T = i
- T.flags_atom |= UNUSED_RESERVATION_TURF
- reserved_turfs -= i
- SSmapping.used_turfs -= i
- SSmapping.reserve_turfs(v)
+ bottom_left_turfs.Cut()
+ top_right_turfs.Cut()
+
+ var/list/reserved_copy = reserved_turfs.Copy()
+ SSmapping.used_turfs -= reserved_turfs
+ reserved_turfs = list()
+
+ var/list/cordon_copy = cordon_turfs.Copy()
+ SSmapping.used_turfs -= cordon_turfs
+ cordon_turfs = list()
-/datum/turf_reservation/proc/Reserve(width, height, zlevel)
+ var/release_turfs = reserved_copy + cordon_copy
+
+ for(var/turf/reserved_turf as anything in release_turfs)
+ SEND_SIGNAL(reserved_turf, COMSIG_TURF_RESERVATION_RELEASED, src)
+
+ // Makes the linter happy, even tho we don't await this
+ INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping, reserve_turfs), release_turfs)
+
+/// Attempts to calaculate and store a list of turfs around the reservation for cordoning. Returns whether a valid cordon was calculated
+/datum/turf_reservation/proc/calculate_cordon_turfs(turf/bottom_left, turf/top_right)
+ if(bottom_left.x < 2 || bottom_left.y < 2 || top_right.x > (world.maxx - 2) || top_right.y > (world.maxy - 2))
+ return FALSE // no space for a cordon here
+
+ var/list/possible_turfs = CORNER_OUTLINE(bottom_left, width, height)
+ // if they're our cordon turfs, accept them
+ possible_turfs -= cordon_turfs
+ for(var/turf/cordon_turf as anything in possible_turfs)
+ if(!(cordon_turf.turf_flags & UNUSED_RESERVATION_TURF))
+ return FALSE
+ cordon_turfs |= possible_turfs
+
+ if(pre_cordon_distance)
+ var/turf/offset_turf = locate(bottom_left.x + pre_cordon_distance, bottom_left.y + pre_cordon_distance, bottom_left.z)
+ var/list/to_add = CORNER_OUTLINE(offset_turf, width - pre_cordon_distance * 2, height - pre_cordon_distance * 2) //we step-by-stop move inwards from the outer cordon
+ for(var/turf/turf_being_added as anything in to_add)
+ pre_cordon_turfs |= turf_being_added //add one by one so we can filter out duplicates
+
+ return TRUE
+
+/// Actually generates the cordon around the reservation, and marking the cordon turfs as reserved
+/datum/turf_reservation/proc/generate_cordon()
+ for(var/turf/cordon_turf as anything in cordon_turfs)
+ var/area/misc/cordon/cordon_area = GLOB.areas_by_type[/area/misc/cordon] || new
+ //var/area/old_area = cordon_turf.loc
+ //old_area.turfs_to_uncontain += cordon_turf
+ //cordon_area.contained_turfs += cordon_turf
+ cordon_area.contents += cordon_turf
+ // Its no longer unused, but its also not "used"
+ cordon_turf.turf_flags &= ~UNUSED_RESERVATION_TURF
+ cordon_turf.ChangeTurf(CORDON_TURF_TYPE, CORDON_TURF_TYPE)
+ SSmapping.unused_turfs["[cordon_turf.z]"] -= cordon_turf
+ // still gets linked to us though
+ SSmapping.used_turfs[cordon_turf] = src
+
+ //swap the area with the pre-cordoning area
+
+/// Internal proc which handles reserving the area for the reservation.
+/datum/turf_reservation/proc/_reserve_area(width, height, zlevel)
+ src.width = width
+ src.height = height
if(width > world.maxx || height > world.maxy || width < 1 || height < 1)
- log_debug("turf reservation had invalid dimensions")
return FALSE
var/list/avail = SSmapping.unused_turfs["[zlevel]"]
- var/turf/bottom_left
- var/turf/top_right
+ var/turf/BL
+ var/turf/TR
var/list/turf/final = list()
var/passing = FALSE
for(var/i in avail)
CHECK_TICK
- bottom_left = i
- if(!(bottom_left.flags_atom & UNUSED_RESERVATION_TURF))
+ BL = i
+ if(!(BL.turf_flags & UNUSED_RESERVATION_TURF))
continue
- if(bottom_left.x + width > world.maxx || bottom_left.y + height > world.maxy)
+ if(BL.x + width > world.maxx || BL.y + height > world.maxy)
continue
- top_right = locate(bottom_left.x + width - 1, bottom_left.y + height - 1, bottom_left.z)
- if(!(top_right.flags_atom & UNUSED_RESERVATION_TURF))
+ TR = locate(BL.x + width - 1, BL.y + height - 1, BL.z)
+ if(!(TR.turf_flags & UNUSED_RESERVATION_TURF))
continue
- final = block(bottom_left, top_right)
+ final = block(BL, TR)
if(!final)
continue
passing = TRUE
- for(var/turf/checking as anything in final)
- if(!(checking.flags_atom & UNUSED_RESERVATION_TURF))
+ for(var/I in final)
+ var/turf/checking = I
+ if(!(checking.turf_flags & UNUSED_RESERVATION_TURF))
passing = FALSE
break
+ if(passing) // found a potentially valid area, now try to calculate its cordon
+ passing = calculate_cordon_turfs(BL, TR)
if(!passing)
continue
break
- if(!passing || !istype(bottom_left) || !istype(top_right))
- log_debug("failed to pass reservation tests, [passing], [istype(bottom_left)], [istype(top_right)]")
+ if(!passing || !istype(BL) || !istype(TR))
return FALSE
- bottom_left_coords = list(bottom_left.x, bottom_left.y, bottom_left.z)
- top_right_coords = list(top_right.x, top_right.y, top_right.z)
- var/weakref = WEAKREF(src)
for(var/i in final)
var/turf/T = i
reserved_turfs |= T
SSmapping.unused_turfs["[T.z]"] -= T
- SSmapping.used_turfs[T] = weakref
- T = T.ChangeTurf(turf_type, turf_type)
- T.flags_atom &= ~UNUSED_RESERVATION_TURF
- src.width = width
- src.height = height
+ SSmapping.used_turfs[T] = src
+ T.turf_flags = (T.turf_flags | RESERVATION_TURF) & ~UNUSED_RESERVATION_TURF
+ T.ChangeTurf(turf_type, turf_type)
+
+ bottom_left_turfs += BL
+ top_right_turfs += TR
+ return TRUE
+
+/datum/turf_reservation/proc/reserve(width, height, z_size, z_reservation)
+ src.z_size = z_size
+ var/failed_reservation = FALSE
+ for(var/_ in 1 to z_size)
+ if(!_reserve_area(width, height, z_reservation))
+ failed_reservation = TRUE
+ break
+
+ if(failed_reservation)
+ Release()
+ return FALSE
+
+ generate_cordon()
return TRUE
+/// Calculates the effective bounds information for the given turf. Returns a list of the information, or null if not applicable.
+/datum/turf_reservation/proc/calculate_turf_bounds_information(turf/target)
+ for(var/z_idx in 1 to z_size)
+ var/turf/bottom_left = bottom_left_turfs[z_idx]
+ var/turf/top_right = top_right_turfs[z_idx]
+ var/bl_x = bottom_left.x
+ var/bl_y = bottom_left.y
+ var/tr_x = top_right.x
+ var/tr_y = top_right.y
+
+ if(target.x < bl_x)
+ continue
+
+ if(target.y < bl_y)
+ continue
+
+ if(target.x > tr_x)
+ continue
+
+ if(target.y > tr_y)
+ continue
+
+ var/list/return_information = list()
+ return_information["z_idx"] = z_idx
+ return_information["offset_x"] = target.x - bl_x
+ return_information["offset_y"] = target.y - bl_y
+ return return_information
+ return null
+
+/// Gets the turf below the given target. Returns null if there is no turf below the target
+/datum/turf_reservation/proc/get_turf_below(turf/target)
+ var/list/bounds_info = calculate_turf_bounds_information(target)
+ if(isnull(bounds_info))
+ return null
+
+ var/z_idx = bounds_info["z_idx"]
+ // check what z level, if its the max, then there is no turf below
+ if(z_idx == z_size)
+ return null
+
+ var/offset_x = bounds_info["offset_x"]
+ var/offset_y = bounds_info["offset_y"]
+ var/turf/bottom_left = bottom_left_turfs[z_idx + 1]
+ return locate(bottom_left.x + offset_x, bottom_left.y + offset_y, bottom_left.z)
+
+/// Gets the turf above the given target. Returns null if there is no turf above the target
+/datum/turf_reservation/proc/get_turf_above(turf/target)
+ var/list/bounds_info = calculate_turf_bounds_information(target)
+ if(isnull(bounds_info))
+ return null
+
+ var/z_idx = bounds_info["z_idx"]
+ // check what z level, if its the min, then there is no turf above
+ if(z_idx == 1)
+ return null
+
+ var/offset_x = bounds_info["offset_x"]
+ var/offset_y = bounds_info["offset_y"]
+ var/turf/bottom_left = bottom_left_turfs[z_idx - 1]
+ return locate(bottom_left.x + offset_x, bottom_left.y + offset_y, bottom_left.z)
+
/datum/turf_reservation/New()
LAZYADD(SSmapping.turf_reservations, src)
/datum/turf_reservation/Destroy()
- INVOKE_ASYNC(src, PROC_REF(Release))
+ Release()
LAZYREMOVE(SSmapping.turf_reservations, src)
return ..()
diff --git a/code/modules/mapping/space_management/zlevel_manager.dm b/code/modules/mapping/space_management/zlevel_manager.dm
index 9311719ea7d8..2b96065929f8 100644
--- a/code/modules/mapping/space_management/zlevel_manager.dm
+++ b/code/modules/mapping/space_management/zlevel_manager.dm
@@ -14,16 +14,22 @@
for (var/I in 1 to default_map_traits.len)
var/list/features = default_map_traits[I]
var/datum/space_level/S = new(I, features[DL_NAME], features[DL_TRAITS])
- z_list += S
+ manage_z_level(S, filled_with_space = FALSE)
+ //generate_z_level_linkages() // Default Zs don't use add_new_zlevel() so they don't automatically generate z-linkages.
-/datum/controller/subsystem/mapping/proc/add_new_zlevel(name, traits = list(), z_type = /datum/space_level)
+/datum/controller/subsystem/mapping/proc/add_new_zlevel(name, traits = list(), z_type = /datum/space_level, contain_turfs = TRUE)
+ UNTIL(!adding_new_zlevel)
+ adding_new_zlevel = TRUE
var/new_z = z_list.len + 1
if (world.maxz < new_z)
world.incrementMaxZ()
CHECK_TICK
// TODO: sleep here if the Z level needs to be cleared
var/datum/space_level/S = new z_type(new_z, name, traits)
- z_list += S
+ manage_z_level(S, filled_with_space = TRUE, contain_turfs = contain_turfs)
+ //generate_linkages_for_z_level(new_z)
+ //calculate_z_level_gravity(new_z)
+ adding_new_zlevel = FALSE
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NEW_Z, S)
return S
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index cb16480fcfaa..3a27af37f669 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -188,37 +188,38 @@
clean_observe_target()
/// When the observer target gets a screen, our observer gets a screen minus some game screens we don't want the observer to touch
-/mob/dead/observer/proc/observe_target_screen_add(observe_target_mob_client, add_to_screen)
+/mob/dead/observer/proc/observe_target_screen_add(observe_target_mob_client, screen_add)
SIGNAL_HANDLER
- if(!client)
- return
-
- if(istype(add_to_screen, /atom/movable/screen/action_button))
- return
+ var/static/list/excluded_types = typecacheof(list(
+ /atom/movable/screen/fullscreen,
+ /atom/movable/screen/click_catcher,
+ /atom/movable/screen/escape_menu,
+ /atom/movable/screen/buildmode,
+ /obj/effect/detector_blip,
+ ))
- if(istype(add_to_screen, /atom/movable/screen/fullscreen))
+ if(!client)
return
- if(istype(add_to_screen, /atom/movable/screen/click_catcher))
- return
+ // `screen_add` can sometimes be a list, so it's safest to just handle everything as one.
+ var/list/stuff_to_add = (islist(screen_add) ? screen_add : list(screen_add))
- if(istype(add_to_screen, /atom/movable/screen/escape_menu))
- return
-
- if(istype(add_to_screen, /obj/effect/detector_blip))
- return
+ for(var/item in stuff_to_add)
+ // Ignore anything that's in `excluded_types`.
+ if(is_type_in_typecache(item, excluded_types))
+ continue
- client.add_to_screen(add_to_screen)
+ client.add_to_screen(screen_add)
/// When the observer target loses a screen, our observer loses it as well
-/mob/dead/observer/proc/observe_target_screen_remove(observe_target_mob_client, remove_from_screen)
+/mob/dead/observer/proc/observe_target_screen_remove(observe_target_mob_client, screen_remove)
SIGNAL_HANDLER
if(!client)
return
- client.remove_from_screen(remove_from_screen)
+ client.remove_from_screen(screen_remove)
/// When the observe target ghosts our observer disconnect from their screen updates
/mob/dead/observer/proc/observe_target_ghosting(mob/observer_target_mob)
@@ -235,8 +236,9 @@
if(observe_target_client != new_client)
observe_target_client = new_client
- RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add))
- RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove))
+ // Override the signal from any previous targets.
+ RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add), TRUE)
+ RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove), TRUE)
/// When the observe target logs in our observer connect to the new client
/mob/dead/observer/proc/observe_target_login(mob/living/new_character)
@@ -245,8 +247,9 @@
if(observe_target_client != new_character.client)
observe_target_client = new_character.client
- RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add))
- RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove))
+ // Override the signal from any previous targets.
+ RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add), TRUE)
+ RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove), TRUE)
///makes the ghost see the target hud and sets the eye at the target.
/mob/dead/observer/proc/do_observe(atom/movable/target)
@@ -256,48 +259,26 @@
ManualFollow(target)
reset_perspective()
- if(!ishuman(target) || !client.prefs?.auto_observe)
+ if(!iscarbon(target) || !client.prefs?.auto_observe)
return
- var/mob/living/carbon/human/human_target = target
-
- client.eye = human_target
- observe_target_mob = human_target
- RegisterSignal(observe_target_mob, COMSIG_PARENT_QDELETING, PROC_REF(clean_observe_target))
- RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(observer_move_react))
-
- if(!human_target.hud_used)
+ var/mob/living/carbon/carbon_target = target
+ if(!carbon_target.hud_used)
return
client.clear_screen()
- LAZYINITLIST(human_target.observers)
- human_target.observers |= src
- human_target.hud_used.show_hud(human_target.hud_used.hud_version, src)
-
- var/list/target_contents = human_target.get_contents()
-
- //Handles any currently open storage containers the target is looking in when we observe
- for(var/obj/item/storage/checked_storage in target_contents)
- if(!(human_target in checked_storage.content_watchers))
- continue
-
- client.add_to_screen(checked_storage.closer)
- client.add_to_screen(checked_storage.contents)
-
- if(checked_storage.storage_slots)
- client.add_to_screen(checked_storage.boxes)
- else
- client.add_to_screen(checked_storage.storage_start)
- client.add_to_screen(checked_storage.storage_continue)
- client.add_to_screen(checked_storage.storage_end)
+ client.eye = carbon_target
+ observe_target_mob = carbon_target
- break
+ carbon_target.auto_observed(src)
+ RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(observer_move_react))
+ RegisterSignal(observe_target_mob, COMSIG_PARENT_QDELETING, PROC_REF(clean_observe_target))
RegisterSignal(observe_target_mob, COMSIG_MOB_GHOSTIZE, PROC_REF(observe_target_ghosting))
RegisterSignal(observe_target_mob, COMSIG_MOB_NEW_MIND, PROC_REF(observe_target_new_mind))
RegisterSignal(observe_target_mob, COMSIG_MOB_LOGIN, PROC_REF(observe_target_login))
- if(human_target.client)
- observe_target_client = human_target.client
+ if(observe_target_mob.client)
+ observe_target_client = observe_target_mob.client
RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add))
RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove))
@@ -316,7 +297,10 @@
hud_used.show_hud(hud_used.hud_version)
/mob/dead/observer/Login()
- ..()
+ ..() // This calls signals which might have resulted in our client getting deleted
+
+ if(!client)
+ return
if(client.check_whitelist_status(WHITELIST_PREDATOR))
RegisterSignal(SSdcs, COMSIG_GLOB_PREDATOR_ROUND_TOGGLED, PROC_REF(toggle_predator_action))
diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm
index f1b600179450..fa7c7ec3176e 100644
--- a/code/modules/mob/emote.dm
+++ b/code/modules/mob/emote.dm
@@ -14,13 +14,15 @@
to_chat(src, SPAN_NOTICE("'[act]' emote does not exist. Say *help for a list."))
return FALSE
var/silenced = FALSE
- for(var/datum/emote/P in key_emotes)
- if(!P.check_cooldown(src, intentional))
+ for(var/datum/emote/current_emote in key_emotes)
+ if(!current_emote.check_cooldown(src, intentional))
silenced = TRUE
continue
- if(P.run_emote(src, param, m_type, intentional))
- SEND_SIGNAL(src, COMSIG_MOB_EMOTE, P, act, m_type, message, intentional)
- SEND_SIGNAL(src, COMSIG_MOB_EMOTED(P.key))
+ if(SEND_SIGNAL(src, COMSIG_MOB_TRY_EMOTE, current_emote, act, m_type, param, intentional) & COMPONENT_OVERRIDE_EMOTE)
+ silenced = TRUE
+ continue
+ if(current_emote.run_emote(src, param, m_type, intentional))
+ SEND_SIGNAL(src, COMSIG_MOB_EMOTE, current_emote, act, m_type, message, intentional)
return TRUE
if(intentional && !silenced && !force_silence)
to_chat(src, SPAN_NOTICE("Unusable emote '[act]'. Say *help for a list."))
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index a5ef1231a140..08daa5348022 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -416,6 +416,29 @@
"}
show_browser(user, dat, name, "mob[name]")
+/**
+ * Called by [/mob/dead/observer/proc/do_observe] when a carbon mob is observed by a ghost with [/datum/preferences/var/auto_observe] enabled.
+ *
+ * Any HUD changes past this point are handled by [/mob/dead/observer/proc/observe_target_screen_add]
+ * and [/mob/dead/observer/proc/observe_target_screen_remove].
+ *
+ * Override on subtype mobs if they have any extra HUD elements/behaviour.
+ */
+/mob/living/carbon/proc/auto_observed(mob/dead/observer/observer)
+ SHOULD_CALL_PARENT(TRUE)
+
+ LAZYINITLIST(observers)
+ observers |= observer
+ hud_used.show_hud(hud_used.hud_version, observer)
+
+ // Add the player's action buttons (not the actions themselves) to the observer's screen.
+ for(var/datum/action/action as anything in actions)
+ // Skip any hidden ones (of course).
+ if(action.hidden || action.player_hidden)
+ continue
+
+ observer.client.add_to_screen(action.button)
+
//generates realistic-ish pulse output based on preset levels
/mob/living/carbon/proc/get_pulse(method) //method 0 is for hands, 1 is for machines, more accurate
var/temp = 0 //see setup.dm:694
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index da17bf8a15f0..563d0f4107e9 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -541,7 +541,7 @@
if(med_hud.hudusers[passed_human])
return TRUE
if("squadleader")
- var/datum/mob_hud/faction_hud = GLOB.huds[MOB_HUD_FACTION_USCM]
+ var/datum/mob_hud/faction_hud = GLOB.huds[MOB_HUD_FACTION_MARINE]
if(passed_human.mind && passed_human.assigned_squad && passed_human.assigned_squad.squad_leader == passed_human && faction_hud.hudusers[passed_mob])
return TRUE
else
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 4c62361ec52e..3ebd199b08d9 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -311,6 +311,29 @@
"}
show_browser(user, dat, name, "mob[name]")
+/**
+ * Handles any storage containers that the human is looking inside when auto-observed.
+ */
+/mob/living/carbon/human/auto_observed(mob/dead/observer/observer)
+ . = ..()
+
+ // If `src` doesn't have an inventory open.
+ if(!s_active)
+ return
+
+ // Add the storage interface to `observer`'s screen.
+ observer.client.add_to_screen(s_active.closer)
+ observer.client.add_to_screen(s_active.contents)
+
+ // If the storage has a set number of item slots.
+ if(s_active.storage_slots)
+ observer.client.add_to_screen(s_active.boxes)
+ // If the storage instead has a maximum combined item 'weight'.
+ else
+ observer.client.add_to_screen(s_active.storage_start)
+ observer.client.add_to_screen(s_active.storage_continue)
+ observer.client.add_to_screen(s_active.storage_end)
+
// called when something steps onto a human
// this handles mulebots and vehicles
/mob/living/carbon/human/Crossed(atom/movable/AM)
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index 5cb439721ce6..1d56b7db2728 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -88,7 +88,7 @@
attack = attacking_mob.species.secondary_unarmed
return
- last_damage_data = create_cause_data("fisticuffs", src)
+ last_damage_data = create_cause_data("fisticuffs", attacking_mob)
attacking_mob.attack_log += text("\[[time_stamp()]\] [pick(attack.attack_verb)]ed [key_name(src)] ")
attack_log += text("\[[time_stamp()]\] Has been [pick(attack.attack_verb)]ed by [key_name(attacking_mob)] ")
msg_admin_attack("[key_name(attacking_mob)] [pick(attack.attack_verb)]ed [key_name(src)] in [get_area(src)] ([src.loc.x],[src.loc.y],[src.loc.z]).", src.loc.x, src.loc.y, src.loc.z)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 942c20482230..2a03b4f0abff 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -311,18 +311,18 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t
if(update) UpdateDamageIcon()
// damage MANY limbs, in random order
-/mob/living/carbon/human/take_overall_damage(brute, burn, sharp = 0, edge = 0, used_weapon = null)
+/mob/living/carbon/human/take_overall_damage(brute, burn, used_weapon = null, limb_damage_chance = 80)
if(status_flags & GODMODE)
return //godmode
- var/list/obj/limb/parts = get_damageable_limbs(80)
+ var/list/obj/limb/parts = get_damageable_limbs(limb_damage_chance)
var/amount_of_parts = length(parts)
for(var/obj/limb/L as anything in parts)
- L.take_damage(brute / amount_of_parts, burn / amount_of_parts, sharp, edge, used_weapon)
+ L.take_damage(brute / amount_of_parts, burn / amount_of_parts, sharp = FALSE, edge = FALSE, used_weapon = used_weapon)
updatehealth()
UpdateDamageIcon()
-// damage MANY LIMBS, in random order
-/mob/living/carbon/human/proc/take_overall_armored_damage(damage, armour_type = ARMOR_MELEE, damage_type = BRUTE, limb_damage_chance = 80, penetration = 0, armour_break_pr_pen = 0, armour_break_flat = 0)
+// damage MANY LIMBS, in random order, but consider armor
+/mob/living/carbon/human/proc/take_overall_armored_damage(damage, armour_type = ARMOR_MELEE, damage_type = BRUTE, limb_damage_chance = 80, penetration = 0)
if(status_flags & GODMODE)
return //godmode
var/list/obj/limb/parts = get_damageable_limbs(limb_damage_chance)
@@ -330,6 +330,8 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t
var/armour_config = GLOB.marine_ranged
if(armour_type == ARMOR_MELEE)
armour_config = GLOB.marine_melee
+ if(armour_type == ARMOR_BOMB)
+ armour_config = GLOB.marine_explosive
for(var/obj/limb/L as anything in parts)
var/armor = getarmor(L, armour_type)
var/modified_damage = armor_damage_reduction(armour_config, damage, armor, penetration, 0, 0)
diff --git a/code/modules/mob/living/carbon/human/human_dummy.dm b/code/modules/mob/living/carbon/human/human_dummy.dm
index 1f90c618fd38..b6fb109cd038 100644
--- a/code/modules/mob/living/carbon/human/human_dummy.dm
+++ b/code/modules/mob/living/carbon/human/human_dummy.dm
@@ -74,7 +74,6 @@ GLOBAL_LIST_EMPTY(dummy_mob_list)
/mob/living/carbon/human/dummy/add_to_all_mob_huds()
return
-
/mob/living/carbon/human/dummy/tutorial // Effectively an even more disabled dummy
/mob/living/carbon/human/dummy/tutorial/Initialize(mapload)
@@ -82,3 +81,18 @@ GLOBAL_LIST_EMPTY(dummy_mob_list)
status_flags = GODMODE
ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_SOURCE_TUTORIAL)
anchored = TRUE
+
+// Professor Dummy, used by CMOs and SEAs to teach new nurses/doctors
+/mob/living/carbon/human/dummy/professor_dummy/Initialize(mapload)
+ . = ..()
+ RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_LANDED, PROC_REF(destroy_upon_hijack))
+
+/mob/living/carbon/human/dummy/professor_dummy/proc/destroy_upon_hijack()
+ SIGNAL_HANDLER
+
+ visible_message(SPAN_WARNING("The [src] suddenly disintegrates!"))
+ dust(create_cause_data("hijack autodelete"))
+
+/mob/living/carbon/human/dummy/professor_dummy/Destroy()
+ UnregisterSignal(src, COMSIG_GLOB_HIJACK_LANDED)
+ return ..()
diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm
index 08ddd11da5b3..c38ddbcd552c 100644
--- a/code/modules/mob/living/carbon/human/human_helpers.dm
+++ b/code/modules/mob/living/carbon/human/human_helpers.dm
@@ -247,6 +247,13 @@
var/datum/action/item_action/smartgun/toggle_motion_detector/TMD = locate(/datum/action/item_action/smartgun/toggle_motion_detector) in sg.actions
TMD.update_icon()
sg.motion_detector()
+ if(istype(i, /obj/item/clothing/suit/storage/marine/medium/rto/intel))
+ var/obj/item/clothing/suit/storage/marine/medium/rto/intel/xm4 = i
+ if(xm4.motion_detector)
+ xm4.motion_detector = FALSE
+ var/datum/action/item_action/intel/toggle_motion_detector/TMD = locate(/datum/action/item_action/intel/toggle_motion_detector) in xm4.actions
+ TMD.update_icon()
+ xm4.motion_detector()
/mob/living/carbon/human/proc/disable_headsets()
//Disable all radios to reduce radio spam for dead people
diff --git a/code/modules/mob/living/carbon/human/species/zombie.dm b/code/modules/mob/living/carbon/human/species/zombie.dm
index f5db0c1b8728..4e8a0b5e98e2 100644
--- a/code/modules/mob/living/carbon/human/species/zombie.dm
+++ b/code/modules/mob/living/carbon/human/species/zombie.dm
@@ -62,7 +62,7 @@
var/datum/disease/black_goo/zombie_infection = locate() in zombie.viruses
if(!zombie_infection)
zombie_infection = zombie.AddDisease(new /datum/disease/black_goo())
- zombie_infection.stage = 3
+ zombie_infection.stage = 4
var/datum/mob_hud/Hu = GLOB.huds[MOB_HUD_MEDICAL_OBSERVER]
Hu.add_hud_to(zombie, zombie)
diff --git a/code/modules/mob/living/carbon/xenomorph/Evolution.dm b/code/modules/mob/living/carbon/xenomorph/Evolution.dm
index d6f963747e33..b6576b764b51 100644
--- a/code/modules/mob/living/carbon/xenomorph/Evolution.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Evolution.dm
@@ -211,7 +211,10 @@
return FALSE
if(lock_evolve)
- to_chat(src, SPAN_WARNING("You are banished and cannot reach the hivemind."))
+ if(banished)
+ to_chat(src, SPAN_WARNING("We are banished and cannot reach the hivemind."))
+ else
+ to_chat(src, SPAN_WARNING("We can't evolve."))
return FALSE
if(jobban_isbanned(src, JOB_XENOMORPH))//~who so genius to do this is?
@@ -269,7 +272,10 @@
return
if(lock_evolve)
- to_chat(src, SPAN_WARNING("We are banished and cannot reach the hivemind."))
+ if(banished)
+ to_chat(src, SPAN_WARNING("We are banished and cannot reach the hivemind."))
+ else
+ to_chat(src, SPAN_WARNING("We can't deevolve."))
return FALSE
diff --git a/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm b/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm
deleted file mode 100644
index fc5532955ff9..000000000000
--- a/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm
+++ /dev/null
@@ -1,264 +0,0 @@
-#define MUTATOR_GAIN_PER_QUEEN_LEVEL 6
-#define MUTATOR_GAIN_PER_XENO_LEVEL 3
-
-//A class that holds mutators for a given Xeno hive
-//Each time a Queen matures, the hive gets more points
-//Each time a Queen dies, the mutators are reset
-
-//The class contains a lot of variables that are applied to various xenos' stats and actions
-/datum/mutator_set
- var/remaining_points = 1 //How many points the xeno / hive still has to spend on mutators
- var/list/purchased_mutators = list() //List of purchased mutators
- var/user_level = 0 //Level of the Queen for Hive or the individual xeno. Starting at -1 so at tier 0 you'd get some mutators to play with
-
- var/tackle_strength_bonus = 0
-
-//Functions to be overloaded to call for when something gets updated on the xenos
-/datum/mutator_set/proc/recalculate_everything(description)
-/datum/mutator_set/proc/recalculate_stats(description)
-/datum/mutator_set/proc/recalculate_actions(description)
-/datum/mutator_set/proc/recalculate_pheromones(description)
-/datum/mutator_set/proc/give_feedback(description)
-
-
-/datum/mutator_set/proc/purchase_mutator(name)
- return FALSE
-
-/datum/mutator_set/proc/list_and_purchase_mutators()
- var/list/mutators_for_purchase = available_mutators()
- var/mob/living/carbon/xenomorph/Xeno = usr
- if(mutators_for_purchase.len == 0)
- to_chat(usr, "There are no available strains.")
- var/pick = tgui_input_list(usr, "Which strain would you like to purchase?", "Purchase strain", mutators_for_purchase, theme="hive_status")
- if(!pick)
- return FALSE
- if(alert(usr, "[GLOB.xeno_mutator_list[pick].description]\n\nConfirm mutation?", "Strain purchase", "Yes", "No") != "Yes") return
- if(!Xeno.strain_checks())
- return
- if(GLOB.xeno_mutator_list[pick].apply_mutator(src))
- to_chat(usr, "Mutation complete!")
- return TRUE
- else
- to_chat(usr, "Mutation failed!")
- return FALSE
-
-/datum/mutator_set/proc/can_purchase_mutator(mutator_name)
- var/datum/xeno_mutator/XM = GLOB.xeno_mutator_list[mutator_name]
- if(user_level < XM.required_level)
- return FALSE //xeno doesn't meet the level requirements
- if(remaining_points < XM.cost)
- return FALSE //mutator is too expensive
- if(XM.unique)
- if(XM.name in purchased_mutators)
- return FALSE //unique mutator already purchased
- if(XM.keystone)
- for(var/name in purchased_mutators)
- if(GLOB.xeno_mutator_list[name].keystone)
- return FALSE //We already have a keystone mutator
- if(XM.flaw)
- for(var/name in purchased_mutators)
- if(GLOB.xeno_mutator_list[name].flaw)
- return FALSE //We already have a flaw mutator
- return TRUE
-
-//Lists mutators available for purchase
-/datum/mutator_set/proc/available_mutators()
- var/list/can_purchase = list()
-
- for(var/str in GLOB.xeno_mutator_list)
- if (can_purchase_mutator(str))
- can_purchase += str //can purchase!
-
- return can_purchase
-
-//Mutators applying to the Hive as a whole
-/datum/mutator_set/hive_mutators
- var/datum/hive_status/hive //Which hive do these mutators apply to. Need this to affect variables there
- var/leader_count_boost = 0
- var/maturation_multiplier = 1
- var/tier_slot_multiplier = 1
- var/larva_gestation_multiplier = 1
- var/bonus_larva_spawn_chance = 0
-
-/datum/mutator_set/hive_mutators/list_and_purchase_mutators()
- if(!hive || !hive.living_xeno_queen)
- return //somehow Queen is not set but this function was called...
- if(hive.living_xeno_queen.is_dead())
- return //Dead xenos can't mutate!
- if(hive.living_xeno_queen.hardcore)
- to_chat(usr, SPAN_WARNING("No time for that, must KILL!"))
- return
- if(!hive.living_xeno_queen.ovipositor)
- to_chat(usr, "You must be in Ovipositor to purchase Hive Mutators.")
- return
- . = ..()
- if (. == TRUE && purchased_mutators.len)
- var/m = purchased_mutators[purchased_mutators.len]
- log_mutator("[hive.living_xeno_queen.name] purchased Hive Mutator '[m]'")
-
-/datum/mutator_set/hive_mutators/can_purchase_mutator(mutator_name)
- if (..() == FALSE)
- return FALSE //Can't buy it regardless
- var/datum/xeno_mutator/XM = GLOB.xeno_mutator_list[mutator_name]
- if(XM.individual_only)
- return FALSE //We can't buy individual mutators on a Hive level
- return TRUE
-
-//Called when the Queen dies
-// This isn't currently used, but if anyone wants to, expect it to be broken because
-// I haven't made any effort to integrate it into the new system (Fourkhan, 5/11/19)
-/datum/mutator_set/hive_mutators/proc/reset_mutators()
- if(purchased_mutators.len == 0)
- //No mutators purchased, nothing to reset!
- return
-
- var/depowered = FALSE
- for(var/name in purchased_mutators)
- if(!GLOB.xeno_mutator_list[name].death_persistent)
- purchased_mutators -= name
- depowered = TRUE
-
- if(!depowered)
- return //We haven't lost anything
-
- tackle_strength_bonus = 0
-
- leader_count_boost = 0
- maturation_multiplier = 1
- tier_slot_multiplier = 1
- larva_gestation_multiplier = 1
- bonus_larva_spawn_chance = 0
-
- for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list)
- if(X.hivenumber == hive.hivenumber)
- X.recalculate_everything()
- to_chat(X, SPAN_XENOANNOUNCE("Queen's influence wanes. You feel weak!"))
- playsound(X.loc, "alien_help", 25)
- X.xeno_jitter(15)
-
-/datum/mutator_set/hive_mutators/recalculate_everything(description)
- for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list)
- if(X.hivenumber == hive.hivenumber)
- X.recalculate_everything()
- to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]"))
- X.xeno_jitter(15)
-/datum/mutator_set/hive_mutators/recalculate_stats(description)
- for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list)
- if(X.hivenumber == hive.hivenumber)
- X.recalculate_stats()
- to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]"))
- X.xeno_jitter(15)
-/datum/mutator_set/hive_mutators/recalculate_actions(description)
- for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list)
- if(X.hivenumber == hive.hivenumber)
- X.recalculate_actions()
- to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]"))
- X.xeno_jitter(15)
-/datum/mutator_set/hive_mutators/recalculate_pheromones(description)
- for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list)
- if(X.hivenumber == hive.hivenumber)
- X.recalculate_pheromones()
- to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]"))
- X.xeno_jitter(15)
-/datum/mutator_set/hive_mutators/proc/recalculate_maturation(description)
- for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list)
- if(X.hivenumber == hive.hivenumber)
- X.recalculate_maturation()
- to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]"))
- X.xeno_jitter(15)
-/datum/mutator_set/hive_mutators/proc/recalculate_hive(description)
- hive.recalculate_hive()
- give_feedback(description)
-/datum/mutator_set/hive_mutators/give_feedback(description)
- for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list)
- if(X.hivenumber == hive.hivenumber)
- to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]"))
- X.xeno_jitter(15)
-
-//Mutators applying to an individual xeno
-/datum/mutator_set/individual_mutators
- var/mob/living/carbon/xenomorph/xeno
- var/pull_multiplier = 1
- var/egg_laying_multiplier = 1
- var/need_weeds = TRUE
- //Strains Below
- remaining_points = 6
-
-
-/datum/mutator_set/individual_mutators/Destroy()
- if(xeno)
- xeno.mutators = null
- xeno = null
- . = ..()
-
-/datum/mutator_set/individual_mutators/list_and_purchase_mutators()
- . = ..()
- if (. == TRUE && purchased_mutators.len)
- var/m = purchased_mutators[purchased_mutators.len]
- log_mutator("[xeno.name] purchased Mutator '[m]'")
-
-/datum/mutator_set/individual_mutators/can_purchase_mutator(mutator_name)
- if (..() == FALSE)
- return FALSE //Can't buy it regardless
- var/datum/xeno_mutator/XM = GLOB.xeno_mutator_list[mutator_name]
- if(XM.hive_only)
- return FALSE //We can't buy Hive mutators on an individual level
- if(XM.caste_whitelist && (XM.caste_whitelist.len > 0) && !(xeno.caste_type in XM.caste_whitelist))
- return FALSE //We are not on the whitelist
- return TRUE
-
-/datum/mutator_set/individual_mutators/recalculate_actions(description, flavor_description = null)
- xeno.recalculate_actions()
- to_chat(xeno, SPAN_XENOANNOUNCE("[description]"))
- if (flavor_description != null)
- to_chat(xeno, SPAN_XENOLEADER("[flavor_description]"))
- xeno.xeno_jitter(15)
-
-
-/mob/living/carbon/xenomorph/queen/verb/purchase_hive_mutators()
- set name = "Purchase Hive Mutators"
- set desc = "Purchase Mutators affecting the entire Hive."
- set category = "Alien"
- if(hardcore)
- to_chat(usr, SPAN_WARNING("No time for that, must KILL!"))
- return
- if(!src.hive || !src.hive.mutators)
- return //For some reason we don't have mutators
- src.hive.mutators.list_and_purchase_mutators()
-
-/mob/living/carbon/xenomorph/verb/purchase_strains()
- set name = "Purchase Strains"
- set desc = "Purchase Strains for yourself."
- set category = "Alien"
-
- if(!strain_checks())
- return
- if(!src.mutators)
- return //For some reason we don't have mutators
- src.mutators.list_and_purchase_mutators()
-
-/mob/living/carbon/xenomorph/proc/strain_checks()
- if(!check_state(TRUE))
- return FALSE
-
- if(is_ventcrawling)
- to_chat(src, SPAN_WARNING("This place is too constraining to take a strain."))
- return FALSE
-
- if(!isturf(loc))
- to_chat(src, SPAN_WARNING("We can't take a strain here."))
- return FALSE
-
- if(handcuffed || legcuffed)
- to_chat(src, SPAN_WARNING("The restraints are too restricting to allow us to take a strain."))
- return FALSE
-
- if(health < maxHealth)
- to_chat(src, SPAN_WARNING("We must be at full health to take a strain."))
- return FALSE
-
- if(agility || fortify || crest_defense || stealth)
- to_chat(src, SPAN_WARNING("We cannot take a strain while in this stance."))
- return FALSE
-
- return TRUE
diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
index fc25c80e795f..69ab18431237 100644
--- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
@@ -130,10 +130,8 @@
var/weed_level = WEED_LEVEL_STANDARD
var/acid_level = 0
- // Mutator-related and other important vars
- var/mutation_icon_state = null
- var/mutation_type = null
- var/datum/mutator_set/individual_mutators/mutators = new
+ /// The xeno's strain, if they've taken one.
+ var/datum/xeno_strain/strain = null
// Hive-related vars
var/datum/hive_status/hive
@@ -389,8 +387,6 @@
for(var/trait in hive.hive_inherant_traits)
ADD_TRAIT(src, trait, TRAIT_SOURCE_HIVE)
- mutators.xeno = src
-
//Set caste stuff
if(caste_type && GLOB.xeno_datum_list[caste_type])
caste = GLOB.xeno_datum_list[caste_type]
@@ -661,8 +657,8 @@
. += "It appears to belong to [hive?.name ? "the [hive.name]" : "a different hive"]."
if(isxeno(user) || isobserver(user))
- if(mutation_type != "Normal")
- . += "It has specialized into a [mutation_type]."
+ if(strain)
+ . += "It has specialized into a [strain.name]."
if(iff_tag)
. += SPAN_NOTICE("It has an IFF tag sticking out of its carapace.")
@@ -693,7 +689,7 @@
selected_ability = null
queued_action = null
- QDEL_NULL(mutators)
+ QDEL_NULL(strain)
QDEL_NULL(behavior_delegate)
built_structures = null
@@ -709,18 +705,11 @@
if(hardcore)
attack_log?.Cut() // Completely clear out attack_log to limit mem usage if we fail to delete
- . = ..()
-
- // Everything below fits the "we have to clear by principle it but i dont wanna break stuff" bill
- mutators = null
-
-
+ return ..()
/mob/living/carbon/xenomorph/slip(slip_source_name, stun_level, weaken_level, run_only, override_noslip, slide_steps)
return FALSE
-
-
/mob/living/carbon/xenomorph/start_pulling(atom/movable/AM, lunge, no_msg)
if(SEND_SIGNAL(AM, COMSIG_MOVABLE_XENO_START_PULLING, src) & COMPONENT_ALLOW_PULL)
return do_pull(AM, lunge, no_msg)
@@ -777,6 +766,11 @@
var/datum/mob_hud/MH = GLOB.huds[MOB_HUD_XENO_INFECTION]
MH.add_hud_to(src, src)
+// Transfer any observing players over to the xeno's new body (`target`) on evolve/de-evolve.
+/mob/living/carbon/xenomorph/transfer_observers_to(atom/target)
+ for(var/mob/dead/observer/observer as anything in observers)
+ observer.clean_observe_target()
+ observer.do_observe(target)
/mob/living/carbon/xenomorph/check_improved_pointing()
//xeno leaders get a big arrow and less cooldown
@@ -823,10 +817,10 @@
//*********************************************************//
-//********************Mutator functions********************//
+// ******************** Strain Procs **********************//
//*********************************************************//
-//Call this function when major changes happen - evolutions, upgrades, mutators getting removed
+//Call this proc when major changes happen - evolutions, upgrades, mutators getting removed
/mob/living/carbon/xenomorph/proc/recalculate_everything()
recalculate_stats()
recalculate_actions()
@@ -850,8 +844,8 @@
tackle_min = caste.tackle_min
tackle_max = caste.tackle_max
tackle_chance = caste.tackle_chance + tackle_chance_modifier
- tacklestrength_min = caste.tacklestrength_min + mutators.tackle_strength_bonus + hive.mutators.tackle_strength_bonus
- tacklestrength_max = caste.tacklestrength_max + mutators.tackle_strength_bonus + hive.mutators.tackle_strength_bonus
+ tacklestrength_min = caste.tacklestrength_min
+ tacklestrength_max = caste.tacklestrength_max
/mob/living/carbon/xenomorph/proc/recalculate_health()
var/new_max_health = nocrit ? health_modifier + maxHealth : health_modifier + caste.max_health
@@ -907,18 +901,8 @@
/mob/living/carbon/xenomorph/proc/recalculate_actions()
recalculate_acid()
recalculate_weeds()
- pull_multiplier = mutators.pull_multiplier
- if(isrunner(src))
- //Xeno runners need a small nerf to dragging speed mutator
- pull_multiplier = 1 - (1 - mutators.pull_multiplier) * 0.85
- if(is_zoomed)
- zoom_out()
- if(iscarrier(src))
- var/mob/living/carbon/xenomorph/carrier/carrier = src
- carrier.huggers_max = caste.huggers_max
- carrier.eggs_max = caste.eggs_max
- need_weeds = mutators.need_weeds
-
+ // Modified on subtypes
+ pull_multiplier = initial(pull_multiplier)
/mob/living/carbon/xenomorph/proc/recalculate_acid()
if(caste)
@@ -1043,7 +1027,7 @@
handle_ghost_message()
/mob/living/carbon/xenomorph/proc/handle_ghost_message()
- notify_ghosts("[src] ([mutation_type] [caste_type]) has ghosted and their body is up for grabs!", source = src)
+ notify_ghosts("[src] ([get_strain_name()] [caste_type]) has ghosted and their body is up for grabs!", source = src)
/mob/living/carbon/xenomorph/larva/handle_ghost_message()
if(locate(/obj/effect/alien/resin/special/pylon/core) in range(2, get_turf(src)))
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm
index 68312b77936d..41459353ec1e 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm
@@ -310,6 +310,9 @@
to_chat(src, SPAN_NOTICE("We start focusing our plasma towards [target]."))
to_chat(target, SPAN_NOTICE("We feel that [src] starts transferring some of their plasma to us."))
+ face_atom(target)
+ target.flick_heal_overlay(transfer_delay, COLOR_CYAN)
+
if(!do_after(src, transfer_delay, INTERRUPT_ALL, BUSY_ICON_FRIENDLY))
return
@@ -320,6 +323,7 @@
amount = plasma_stored //Just use all of it
use_plasma(amount)
target.gain_plasma(amount)
+ target.xeno_jitter(1 SECONDS)
to_chat(target, SPAN_XENOWARNING("[src] has transfered [amount] plasma to us. We now have [target.plasma_stored]."))
to_chat(src, SPAN_XENOWARNING("We have transferred [amount] plasma to [target]. We now have [plasma_stored]."))
playsound(src, "alien_drool", 25)
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm
index 152115cd7c8b..f854272365d0 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm
@@ -156,7 +156,7 @@
addtimer(CALLBACK(src, PROC_REF(process_tunnel), T), 1 SECONDS)
/mob/living/carbon/xenomorph/proc/do_tunnel(turf/T)
- to_chat(src, SPAN_NOTICE("We tunnel to your destination."))
+ to_chat(src, SPAN_NOTICE("We tunnel to the destination."))
anchored = FALSE
forceMove(T)
burrow_off()
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm
index 4ac166c58c69..e1af5e36a40f 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm
@@ -37,7 +37,7 @@
RegisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE, PROC_REF(check_directional_armor))
var/mob/living/carbon/xenomorph/xeno_owner = owner
- if(!istype(xeno_owner) || xeno_owner.mutation_type != CRUSHER_NORMAL)
+ if(!istype(xeno_owner))
return
var/datum/behavior_delegate/crusher_base/crusher_delegate = xeno_owner.behavior_delegate
@@ -51,7 +51,7 @@
..()
UnregisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE)
var/mob/living/carbon/xenomorph/xeno_owner = owner
- if(!istype(xeno_owner) || xeno_owner.mutation_type != CRUSHER_NORMAL)
+ if(!istype(xeno_owner))
return
var/datum/behavior_delegate/crusher_base/crusher_delegate = xeno_owner.behavior_delegate
@@ -62,7 +62,7 @@
/datum/action/xeno_action/activable/pounce/crusher_charge/proc/undo_charging_icon()
var/mob/living/carbon/xenomorph/xeno_owner = owner
- if(!istype(xeno_owner) || xeno_owner.mutation_type != CRUSHER_NORMAL)
+ if(!istype(xeno_owner))
return
var/datum/behavior_delegate/crusher_base/crusher_delegate = xeno_owner.behavior_delegate
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm
index 22d5f4b57aa2..d28a4bb67978 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm
@@ -20,6 +20,13 @@
ability_primacy = XENO_PRIMARY_ACTION_2
xeno_cooldown = 4 SECONDS
+ var/base_damage = 30
+ var/usable_while_fortified = FALSE
+
+/datum/action/xeno_action/activable/headbutt/steel_crest
+ base_damage = 37.5
+ usable_while_fortified = TRUE
+
/datum/action/xeno_action/onclick/tail_sweep
name = "Tail Sweep"
action_icon_state = "tail_sweep"
@@ -41,8 +48,9 @@
/// Extra armor when fortified and facing bullets.
var/frontal_armor = 5
- /// Extra armor when steelcrest, fortified, and facing bullets.
- var/steelcrest_frontal_armor = 15
+
+/datum/action/xeno_action/activable/fortify/steel_crest
+ frontal_armor = 15
/datum/action/xeno_action/activable/tail_stab/slam
name = "Tail Slam"
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm
index bd01376c9f9d..98c0c19f68f7 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm
@@ -40,7 +40,7 @@
// Defender Headbutt
/datum/action/xeno_action/activable/headbutt/use_ability(atom/target_atom)
var/mob/living/carbon/xenomorph/fendy = owner
- if (!istype(fendy))
+ if(!istype(fendy))
return
if(!isxeno_human(target_atom) || fendy.can_not_harm(target_atom))
@@ -49,13 +49,13 @@
if(!fendy.check_state())
return
- if (!action_cooldown_check())
+ if(!action_cooldown_check())
return
if(!check_and_use_plasma_owner())
return
- if(fendy.fortify && !(fendy.mutation_type == DEFENDER_STEELCREST))
+ if(fendy.fortify && !usable_while_fortified)
to_chat(fendy, SPAN_XENOWARNING("We cannot use headbutt while fortified."))
return
@@ -81,11 +81,10 @@
fendy.visible_message(SPAN_XENOWARNING("[fendy] rams [carbone] with its armored crest!"), \
SPAN_XENOWARNING("We ram [carbone] with our armored crest!"))
- if(carbone.stat != DEAD && (!(carbone.status_flags & XENO_HOST) || !HAS_TRAIT(carbone, TRAIT_NESTED)) )
- var/h_damage = 30 - (fendy.crest_defense * 10)
- if(fendy.mutation_type == DEFENDER_STEELCREST)
- h_damage += 7.5
- carbone.apply_armoured_damage(get_xeno_damage_slash(carbone, h_damage), ARMOR_MELEE, BRUTE, "chest", 5)
+ if(carbone.stat != DEAD && (!(carbone.status_flags & XENO_HOST) || !HAS_TRAIT(carbone, TRAIT_NESTED)))
+ // -10 damage if their crest is down.
+ var/damage = base_damage - (fendy.crest_defense * 10)
+ carbone.apply_armoured_damage(get_xeno_damage_slash(carbone, damage), ARMOR_MELEE, BRUTE, "chest", 5)
var/facing = get_dir(fendy, carbone)
var/headbutt_distance = 1 + (fendy.crest_defense * 2) + (fendy.fortify * 2)
@@ -157,10 +156,6 @@
if (!istype(xeno))
return
- if(xeno.crest_defense && xeno.mutation_type == DEFENDER_STEELCREST)
- to_chat(src, SPAN_XENOWARNING("We cannot fortify while our crest is already down!"))
- return
-
if(xeno.crest_defense)
to_chat(src, SPAN_XENOWARNING("We cannot use fortify with our crest lowered."))
return
@@ -174,11 +169,13 @@
playsound(get_turf(xeno), 'sound/effects/stonedoor_openclose.ogg', 30, 1)
if(!xeno.fortify)
- RegisterSignal(owner, COMSIG_MOB_DEATH, PROC_REF(death_check))
+ RegisterSignal(owner, COMSIG_XENO_ENTER_CRIT, PROC_REF(unconscious_check))
+ RegisterSignal(owner, COMSIG_MOB_DEATH, PROC_REF(unconscious_check))
fortify_switch(xeno, TRUE)
if(xeno.selected_ability != src)
button.icon_state = "template_active"
else
+ UnregisterSignal(owner, COMSIG_XENO_ENTER_CRIT)
UnregisterSignal(owner, COMSIG_MOB_DEATH)
fortify_switch(xeno, FALSE)
if(xeno.selected_ability != src)
@@ -199,59 +196,67 @@
if(xeno.fortify)
button.icon_state = "template_active"
-/datum/action/xeno_action/activable/fortify/proc/fortify_switch(mob/living/carbon/xenomorph/X, fortify_state)
- if(X.fortify == fortify_state)
+/datum/action/xeno_action/activable/fortify/proc/fortify_switch(mob/living/carbon/xenomorph/xeno, fortify_state)
+ if(xeno.fortify == fortify_state)
return
if(fortify_state)
- to_chat(X, SPAN_XENOWARNING("We tuck ourself into a defensive stance."))
- if(X.mutation_type == DEFENDER_STEELCREST)
- X.armor_deflection_buff += 10
- X.armor_explosive_buff += 60
- X.ability_speed_modifier += 3
- X.damage_modifier -= XENO_DAMAGE_MOD_SMALL
- else
- X.armor_deflection_buff += 30
- X.armor_explosive_buff += 60
- ADD_TRAIT(X, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify"))
- X.anchored = TRUE
- X.small_explosives_stun = FALSE
+ to_chat(xeno, SPAN_XENOWARNING("We tuck ourself into a defensive stance."))
RegisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE, PROC_REF(check_directional_armor))
- X.mob_size = MOB_SIZE_IMMOBILE //knockback immune
- X.mob_flags &= ~SQUEEZE_UNDER_VEHICLES
- X.update_icons()
- X.fortify = TRUE
+ xeno.mob_size = MOB_SIZE_IMMOBILE //knockback immune
+ xeno.mob_flags &= ~SQUEEZE_UNDER_VEHICLES
+ xeno.fortify = TRUE
else
- to_chat(X, SPAN_XENOWARNING("We resume our normal stance."))
- REMOVE_TRAIT(X, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify"))
- X.anchored = FALSE
- if(X.mutation_type == DEFENDER_STEELCREST)
- X.armor_deflection_buff -= 10
- X.armor_explosive_buff -= 60
- X.ability_speed_modifier -= 3
- X.damage_modifier += XENO_DAMAGE_MOD_SMALL
- else
- X.armor_deflection_buff -= 30
- X.armor_explosive_buff -= 60
- X.small_explosives_stun = TRUE
+ to_chat(xeno, SPAN_XENOWARNING("We resume our normal stance."))
+ REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify"))
+ xeno.anchored = FALSE
UnregisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE)
- X.mob_size = MOB_SIZE_XENO //no longer knockback immune
- X.mob_flags |= SQUEEZE_UNDER_VEHICLES
- X.update_icons()
- X.fortify = FALSE
+ xeno.mob_size = MOB_SIZE_XENO //no longer knockback immune
+ xeno.mob_flags |= SQUEEZE_UNDER_VEHICLES
+ xeno.fortify = FALSE
+
+ apply_modifiers(xeno, fortify_state)
+ xeno.update_icons()
+
+/datum/action/xeno_action/activable/fortify/proc/apply_modifiers(mob/living/carbon/xenomorph/xeno, fortify_state)
+ if(fortify_state)
+ xeno.armor_deflection_buff += 30
+ xeno.armor_explosive_buff += 60
+ ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify"))
+ xeno.anchored = TRUE
+ xeno.small_explosives_stun = FALSE
+ else
+ xeno.armor_deflection_buff -= 30
+ xeno.armor_explosive_buff -= 60
+ xeno.small_explosives_stun = TRUE
+
+// Steel crest override
+/datum/action/xeno_action/activable/fortify/steel_crest/apply_modifiers(mob/living/carbon/xenomorph/xeno, fortify_state)
+ if(fortify_state)
+ xeno.armor_deflection_buff += 10
+ xeno.armor_explosive_buff += 60
+ xeno.ability_speed_modifier += 3
+ xeno.damage_modifier -= XENO_DAMAGE_MOD_SMALL
+ else
+ xeno.armor_deflection_buff -= 10
+ xeno.armor_explosive_buff -= 60
+ xeno.ability_speed_modifier -= 3
+ xeno.damage_modifier += XENO_DAMAGE_MOD_SMALL
/datum/action/xeno_action/activable/fortify/proc/check_directional_armor(mob/living/carbon/xenomorph/defendy, list/damagedata)
SIGNAL_HANDLER
var/projectile_direction = damagedata["direction"]
+ // If the defender is facing the projectile.
if(defendy.dir & REVERSE_DIR(projectile_direction))
- if(defendy.mutation_type == DEFENDER_STEELCREST)
- damagedata["armor"] += steelcrest_frontal_armor
- else
- damagedata["armor"] += frontal_armor
+ damagedata["armor"] += frontal_armor
-/datum/action/xeno_action/activable/fortify/proc/death_check()
+/datum/action/xeno_action/activable/fortify/proc/unconscious_check()
SIGNAL_HANDLER
+ if(QDELETED(owner))
+ return
+
+ UnregisterSignal(owner, COMSIG_XENO_ENTER_CRIT)
UnregisterSignal(owner, COMSIG_MOB_DEATH)
fortify_switch(owner, FALSE)
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm
index 460a561fa801..0e897335cf10 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm
@@ -497,6 +497,7 @@
ability_name = "view tacmap"
var/mob/living/carbon/xenomorph/queen/tracked_queen
+ var/hivenumber
/datum/action/xeno_action/onclick/tacmap/Destroy()
tracked_queen = null
@@ -505,6 +506,7 @@
/datum/action/xeno_action/onclick/tacmap/give_to(mob/living/carbon/xenomorph/xeno)
. = ..()
+ hivenumber = xeno.hive.hivenumber
RegisterSignal(xeno.hive, COMSIG_HIVE_NEW_QUEEN, PROC_REF(handle_new_queen))
if(!xeno.hive.living_xeno_queen)
@@ -516,6 +518,10 @@
handle_new_queen(new_queen = xeno.hive.living_xeno_queen)
+/datum/action/xeno_action/onclick/tacmap/remove_from(mob/living/carbon/xenomorph/xeno)
+ . = ..()
+ UnregisterSignal(GLOB.hive_datum[hivenumber], COMSIG_HIVE_NEW_QUEEN)
+
/// handles the addition of a new queen, hiding if appropriate
/datum/action/xeno_action/onclick/tacmap/proc/handle_new_queen(datum/hive_status/hive, mob/living/carbon/xenomorph/queen/new_queen)
SIGNAL_HANDLER
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm
index 3c6b39f146be..0f72bf4d81c7 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm
@@ -1,6 +1,6 @@
/datum/action/xeno_action/onclick/plant_weeds/lesser/use_ability(atom/A)
if(!(locate(/obj/effect/alien/weeds/node) in orange(4, owner)))
- to_chat(owner, SPAN_XENONOTICE("We can only plant resin nodes near other resin nodes!"))
+ to_chat(owner, SPAN_XENONOTICE("We can only plant weed nodes near other weed nodes!"))
return
. = ..()
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm
index fd525701b12d..8a829d8d6bc0 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm
@@ -6,46 +6,11 @@
plasma_cost = 20
// Config options
- distance = 6
knockdown = FALSE
knockdown_duration = 2.5
- freeze_self = TRUE
freeze_time = 15
can_be_shield_blocked = TRUE
-/datum/action/xeno_action/activable/pounce/lurker/additional_effects_always()
- var/mob/living/carbon/xenomorph/xeno = owner
- if (!istype(xeno))
- return
- if (xeno.mutation_type == LURKER_NORMAL)
- var/found = FALSE
- for (var/mob/living/carbon/human/human in get_turf(xeno))
- if(human.stat == DEAD)
- continue
- found = TRUE
- break
-
- if (found)
- var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invis = get_xeno_action_by_type(xeno, /datum/action/xeno_action/onclick/lurker_invisibility)
- if (istype(lurker_invis))
- lurker_invis.invisibility_off()
-
-/datum/action/xeno_action/activable/pounce/lurker/additional_effects(mob/living/living_mob)
- var/mob/living/carbon/xenomorph/xeno = owner
- if (!istype(xeno))
- return
-
- if (xeno.mutation_type == LURKER_NORMAL)
- RegisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF, PROC_REF(remove_freeze), TRUE) // Suppresses runtime ever we pounce again before slashing
-
-/datum/action/xeno_action/activable/pounce/lurker/proc/remove_freeze(mob/living/carbon/xenomorph/xeno)
- SIGNAL_HANDLER
-
- var/datum/behavior_delegate/lurker_base/behaviour_del = xeno.behavior_delegate
- if (istype(behaviour_del))
- UnregisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF)
- end_pounce_freeze()
-
/datum/action/xeno_action/onclick/lurker_invisibility
name = "Turn Invisible"
action_icon_state = "lurker_invisibility"
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm
index 24aa94727ca9..0d1bcc99281a 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm
@@ -1,3 +1,34 @@
+/datum/action/xeno_action/activable/pounce/lurker/additional_effects_always()
+ var/mob/living/carbon/xenomorph/xeno = owner
+ if(!istype(xeno))
+ return
+
+ var/found = FALSE
+ for(var/mob/living/carbon/human/human in get_turf(xeno))
+ if(human.stat == DEAD)
+ continue
+ found = TRUE
+ break
+
+ if(found)
+ var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invis = get_xeno_action_by_type(xeno, /datum/action/xeno_action/onclick/lurker_invisibility)
+ lurker_invis.invisibility_off()
+
+/datum/action/xeno_action/activable/pounce/lurker/additional_effects(mob/living/living_mob)
+ var/mob/living/carbon/xenomorph/xeno = owner
+ if(!istype(xeno))
+ return
+
+ RegisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF, PROC_REF(remove_freeze), TRUE) // Suppresses runtime ever we pounce again before slashing
+
+/datum/action/xeno_action/activable/pounce/lurker/proc/remove_freeze(mob/living/carbon/xenomorph/xeno)
+ SIGNAL_HANDLER
+
+ var/datum/behavior_delegate/lurker_base/behaviour_del = xeno.behavior_delegate
+ if(istype(behaviour_del))
+ UnregisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF)
+ end_pounce_freeze()
+
/datum/action/xeno_action/onclick/lurker_invisibility/use_ability(atom/targeted_atom)
var/mob/living/carbon/xenomorph/xeno = owner
@@ -16,9 +47,8 @@
xeno.speed_modifier -= speed_buff
xeno.recalculate_speed()
- if (xeno.mutation_type == LURKER_NORMAL)
- var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate
- behavior.on_invisibility()
+ var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate
+ behavior.on_invisibility()
// if we go off early, this also works fine.
invis_timer_id = addtimer(CALLBACK(src, PROC_REF(invisibility_off)), duration, TIMER_STOPPABLE)
@@ -45,10 +75,9 @@
xeno.speed_modifier += speed_buff
xeno.recalculate_speed()
- if (xeno.mutation_type == LURKER_NORMAL)
- var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate
- if (istype(behavior))
- behavior.on_invisibility_off()
+ var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate
+ if (istype(behavior))
+ behavior.on_invisibility_off()
/datum/action/xeno_action/onclick/lurker_invisibility/ability_cooldown_over()
to_chat(owner, SPAN_XENOHIGHDANGER("We are ready to use our invisibility again!"))
@@ -66,9 +95,6 @@
if (!check_and_use_plasma_owner())
return
- if (xeno.mutation_type != LURKER_NORMAL)
- return
-
var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate
if (istype(behavior))
behavior.next_slash_buffed = TRUE
@@ -189,7 +215,7 @@
if(distance > 2)
return
- var/list/turf/path = get_line(xeno, hit_target, include_start_atom = FALSE)
+ var/list/turf/path = get_line(xeno, targeted_atom, include_start_atom = FALSE)
for(var/turf/path_turf as anything in path)
if(path_turf.density)
to_chat(xeno, SPAN_WARNING("There's something blocking us from striking!"))
@@ -211,8 +237,20 @@
if(current_structure.density && !current_structure.throwpass)
to_chat(xeno, SPAN_WARNING("There's something blocking us from striking!"))
return
-
- if(!isxeno_human(hit_target) || xeno.can_not_harm(hit_target) || hit_target.stat == DEAD)
+ // find a target in the target turf
+ if(!iscarbon(targeted_atom) || hit_target.stat == DEAD)
+ for(var/mob/living/carbon/carbonara in get_turf(targeted_atom))
+ hit_target = carbonara
+ if(!xeno.can_not_harm(hit_target) && hit_target.stat != DEAD)
+ break
+
+ if(iscarbon(hit_target) && !xeno.can_not_harm(hit_target) && hit_target.stat != DEAD)
+ if(targeted_atom == hit_target) //reward for a direct hit
+ to_chat(xeno, SPAN_XENOHIGHDANGER("We directly slam [hit_target] with our tail, throwing it back after impaling it on our tail!"))
+ hit_target.apply_armoured_damage(15, ARMOR_MELEE, BRUTE, "chest")
+ else
+ to_chat(xeno, SPAN_XENODANGER("We attack [hit_target] with our tail, throwing it back after stabbing it with our tail!"))
+ else
xeno.visible_message(SPAN_XENOWARNING("\The [xeno] swipes their tail through the air!"), SPAN_XENOWARNING("We swipe our tail through the air!"))
apply_cooldown(cooldown_modifier = 0.2)
playsound(xeno, 'sound/effects/alien_tail_swipe1.ogg', 50, TRUE)
@@ -221,11 +259,8 @@
// FX
var/stab_direction
- to_chat(xeno, SPAN_XENOHIGHDANGER("We directly slam [hit_target] with our tail, throwing it back after impaling it on our tail!"))
+ stab_direction = turn(get_dir(xeno, targeted_atom), 180)
playsound(hit_target,'sound/weapons/alien_tail_attack.ogg', 50, TRUE)
-
- stab_direction = turn(get_dir(xeno, hit_target), 180)
-
if(hit_target.mob_size < MOB_SIZE_BIG)
step_away(hit_target, xeno)
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm
index c2fbd6b9d8c4..199df345fb62 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm
@@ -129,7 +129,7 @@
// Config
var/max_distance = 7
- var/windup = 7 DECISECONDS
+ var/windup = 8 DECISECONDS
/datum/action/xeno_action/activable/oppressor_punch
name = "Dislocate"
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm
index 5c7ea03ee7b2..647bf7936195 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm
@@ -70,10 +70,9 @@
playsound(current_mob, 'sound/weapons/alien_tail_attack.ogg', 30, TRUE)
if (target_mobs.len >= shield_regen_threshold)
- if (source_xeno.mutation_type == PRAETORIAN_VANGUARD)
- var/datum/behavior_delegate/praetorian_vanguard/BD = source_xeno.behavior_delegate
- if (istype(BD))
- BD.regen_shield()
+ var/datum/behavior_delegate/praetorian_vanguard/behavior = source_xeno.behavior_delegate
+ if (istype(behavior))
+ behavior.regen_shield()
apply_cooldown()
return ..()
@@ -135,10 +134,9 @@
playsound(get_turf(H), "alien_claw_flesh", 30, 1)
if (target_mobs.len >= shield_regen_threshold)
- if (X.mutation_type == PRAETORIAN_VANGUARD)
- var/datum/behavior_delegate/praetorian_vanguard/BD = X.behavior_delegate
- if (istype(BD))
- BD.regen_shield()
+ var/datum/behavior_delegate/praetorian_vanguard/behavior = X.behavior_delegate
+ if (istype(behavior))
+ behavior.regen_shield()
/datum/action/xeno_action/activable/cleave/use_ability(atom/target_atom)
var/mob/living/carbon/xenomorph/vanguard_user = owner
@@ -545,16 +543,12 @@
if (!check_and_use_plasma_owner())
return
- var/buffed = FALSE
apply_cooldown()
- if (dancer_user.mutation_type == PRAETORIAN_DANCER)
- var/found = FALSE
- for (var/datum/effects/dancer_tag/dancer_tag_effect in target_carbon.effects_list)
- found = TRUE
- qdel(dancer_tag_effect)
- break
-
- buffed = found
+ var/buffed = FALSE
+ for (var/datum/effects/dancer_tag/dancer_tag_effect in target_carbon.effects_list)
+ buffed = TRUE
+ qdel(dancer_tag_effect)
+ break
if(ishuman(target_carbon))
var/mob/living/carbon/human/Hu = target_carbon
@@ -601,9 +595,6 @@
if (!check_and_use_plasma_owner())
return
- if (xeno.mutation_type != PRAETORIAN_DANCER)
- return
-
var/datum/behavior_delegate/praetorian_dancer/behavior = xeno.behavior_delegate
if (!istype(behavior))
return
@@ -626,9 +617,6 @@
if (!istype(xeno))
return
- if (xeno.mutation_type != PRAETORIAN_DANCER)
- return
-
var/datum/behavior_delegate/praetorian_dancer/behavior = xeno.behavior_delegate
if (!istype(behavior))
return
@@ -806,17 +794,16 @@
var/bonus_shield = 0
- if (X.mutation_type == PRAETORIAN_WARDEN)
- var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate
- if (!istype(BD))
- return
+ var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate
+ if (!istype(behavior))
+ return
- if (!BD.use_internal_hp_ability(shield_cost))
- return
+ if (!behavior.use_internal_hp_ability(shield_cost))
+ return
- bonus_shield = BD.internal_hitpoints*0.5
- if (!BD.use_internal_hp_ability(bonus_shield))
- bonus_shield = 0
+ bonus_shield = behavior.internal_hitpoints*0.5
+ if (!behavior.use_internal_hp_ability(bonus_shield))
+ bonus_shield = 0
var/total_shield_amount = shield_amount + bonus_shield
@@ -841,7 +828,7 @@
if (!X.Adjacent(A))
to_chat(X, SPAN_XENODANGER("We must be within touching distance of [targetXeno]!"))
return
- if (targetXeno.mutation_type == PRAETORIAN_WARDEN)
+ if(istype(targetXeno.strain, /datum/xeno_strain/warden))
to_chat(X, SPAN_XENODANGER("We cannot heal a sister of the same strain!"))
return
if (SEND_SIGNAL(targetXeno, COMSIG_XENO_PRE_HEAL) & COMPONENT_CANCEL_XENO_HEAL)
@@ -849,18 +836,16 @@
return
var/bonus_heal = 0
+ var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate
+ if (!istype(behavior))
+ return
- if (X.mutation_type == PRAETORIAN_WARDEN)
- var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate
- if (!istype(BD))
- return
-
- if (!BD.use_internal_hp_ability(heal_cost))
- return
+ if (!behavior.use_internal_hp_ability(heal_cost))
+ return
- bonus_heal = BD.internal_hitpoints*0.5
- if (!BD.use_internal_hp_ability(bonus_heal))
- bonus_heal = 0
+ bonus_heal = behavior.internal_hitpoints*0.5
+ if (!behavior.use_internal_hp_ability(bonus_heal))
+ bonus_heal = 0
to_chat(X, SPAN_XENODANGER("We heal [targetXeno]!"))
to_chat(targetXeno, SPAN_XENOHIGHDANGER("We are healed by [X]!"))
@@ -868,6 +853,7 @@
targetXeno.visible_message(SPAN_BOLDNOTICE("[X] places its claws on [targetXeno], and its wounds are quickly sealed!")) //marines probably should know if a xeno gets healed
X.gain_health(heal_amount*0.5 + bonus_heal*0.5)
X.flick_heal_overlay(3 SECONDS, "#00B800")
+ behavior.transferred_healing += heal_amount
use_plasma = TRUE //it's already hard enough to gauge health without hp showing on the mob
targetXeno.flick_heal_overlay(3 SECONDS, "#00B800")//so the visible_message and recovery overlay will warn marines and possibly predators that the xenomorph has been healed!
@@ -876,13 +862,12 @@
to_chat(X, SPAN_XENOHIGHDANGER("We cannot rejuvenate targets through overwatch!"))
return
- if (X.mutation_type == PRAETORIAN_WARDEN)
- var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate
- if (!istype(BD))
- return
+ var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate
+ if (!istype(behavior))
+ return
- if (!BD.use_internal_hp_ability(debuff_cost))
- return
+ if (!behavior.use_internal_hp_ability(debuff_cost))
+ return
to_chat(X, SPAN_XENODANGER("We rejuvenate [targetXeno]!"))
to_chat(targetXeno, SPAN_XENOHIGHDANGER("We are rejuvenated by [X]!"))
@@ -907,8 +892,8 @@
if(!istype(X))
return
- var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate
- if(!istype(BD))
+ var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate
+ if(!istype(behavior))
return
if(X.observed_xeno != null)
@@ -923,16 +908,16 @@
to_chat(X, SPAN_XENODANGER("We cannot retrieve ourself!"))
return
- if(X.anchored)
- to_chat(X, SPAN_XENODANGER("That sister cannot move!"))
- return
-
if(!(A in view(7, X)))
to_chat(X, SPAN_XENODANGER("That sister is too far away!"))
return
var/mob/living/carbon/xenomorph/targetXeno = A
+ if(targetXeno.anchored)
+ to_chat(X, SPAN_XENODANGER("That sister cannot move!"))
+ return
+
if(!(targetXeno.resting || targetXeno.stat == UNCONSCIOUS))
if(targetXeno.mob_size > MOB_SIZE_BIG)
to_chat(X, SPAN_WARNING("[targetXeno] is too big to retrieve while standing up!"))
@@ -951,7 +936,7 @@
if(!check_plasma_owner())
return
- if(!BD.use_internal_hp_ability(retrieve_cost))
+ if(!behavior.use_internal_hp_ability(retrieve_cost))
return
if(!check_and_use_plasma_owner())
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm
index aa98f063b8d5..b1358e30c26b 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm
@@ -1,14 +1,22 @@
-/datum/action/xeno_action/activable/pounce/predalien
- name = "Leap"
+
+/datum/action/xeno_action/onclick/feralrush
+ name = "Feral Rush"
+ action_icon_state = "charge_spit"
+ ability_name = "toughen up"
+ macro_path = /datum/action/xeno_action/verb/verb_feralrush
ability_primacy = XENO_PRIMARY_ACTION_1
+ action_type = XENO_ACTION_ACTIVATE
+ xeno_cooldown = 12 SECONDS
+
+ // Config
+ var/speed_duration = 3 SECONDS
+ var/armor_duration = 6 SECONDS
+ var/speed_buff_amount = 0.8 // Go from shit slow to kindafast
+ var/armor_buff_amount = 10 // hopefully-minor buff so they can close the distance
- knockdown = FALSE
+ var/speed_buff = FALSE
+ var/armor_buff = FALSE
- distance = 5
- knockdown = FALSE // Should we knock down the target?
- slash = FALSE // Do we slash upon reception?
- freeze_self = FALSE // Should we freeze ourselves after the lunge?
- should_destroy_objects = TRUE // Only used for ravager charge
/datum/action/xeno_action/onclick/predalien_roar
name = "Roar"
@@ -16,37 +24,53 @@
ability_name = "roar"
action_type = XENO_ACTION_CLICK
ability_primacy = XENO_PRIMARY_ACTION_2
+ macro_path = /datum/action/xeno_action/verb/verb_predalien_roar
xeno_cooldown = 25 SECONDS
- plasma_cost = 50
-
var/predalien_roar = list("sound/voice/predalien_roar.ogg")
var/bonus_damage_scale = 2.5
var/bonus_speed_scale = 0.05
-/datum/action/xeno_action/onclick/smash
- name = "Smash"
- action_icon_state = "stomp"
- ability_name = "smash"
+/datum/action/xeno_action/activable/feral_smash
+ name = "Feral Smash"
+ ability_name = "Feral Smash"
+ action_icon_state = "lunge"
action_type = XENO_ACTION_CLICK
+ macro_path = /datum/action/xeno_action/verb/feral_smash
ability_primacy = XENO_PRIMARY_ACTION_3
xeno_cooldown = 20 SECONDS
- plasma_cost = 80
-
- var/freeze_duration = 1.5 SECONDS
- var/activation_delay = 1 SECONDS
- var/smash_sounds = list('sound/effects/alien_footstep_charge1.ogg', 'sound/effects/alien_footstep_charge2.ogg', 'sound/effects/alien_footstep_charge3.ogg')
+ // Configurables
+ var/grab_range = 4
+ var/click_miss_cooldown = 15
+ var/twitch_message_cooldown = 0 //apparently this is necessary for a tiny code that makes the lunge message on cooldown not be spammable, doesn't need to be big so 5 will do.
+ var/smash_damage = 20
+ var/smash_scale = 10
+ var/stun_duration = 2 SECONDS
-/datum/action/xeno_action/activable/devastate
- name = "Devastate"
- action_icon_state = "gut"
- ability_name = "devastate"
+/datum/action/xeno_action/activable/feralfrenzy
+ name = "Feral Frenzy"
+ action_icon_state = "rav_eviscerate"
+ ability_name = "Feral Frenzy"
action_type = XENO_ACTION_CLICK
ability_primacy = XENO_PRIMARY_ACTION_4
- xeno_cooldown = 20 SECONDS
- plasma_cost = 110
-
- var/activation_delay = 1 SECONDS
+ macro_path = /datum/action/xeno_action/verb/verb_feralfrenzy
+ xeno_cooldown = 15 SECONDS
+ //AOE
+ var/activation_delay_aoe = 1 SECONDS
+ var/base_damage_aoe = 15
+ var/damage_scale_aoe = 10
+ //SINGLE TARGET
+ var/activation_delay = 0.5 SECONDS
var/base_damage = 25
- var/damage_scale = 10 // How much it scales by every kill
+ var/damage_scale = 10
+ var/targeting = SINGLETARGETGUT
+ /// The orange used for a AOETARGETGUT
+ var/range = 2
+
+/datum/action/xeno_action/onclick/toggle_gut_targeting
+ name = "Toggle Gutting Type"
+ action_icon_state = "gut" // starting targetting is SINGLETARGETGUT
+ macro_path = /datum/action/xeno_action/verb/verb_toggle_gut_targeting
+ action_type = XENO_ACTION_ACTIVATE
+ ability_primacy = XENO_PRIMARY_ACTION_5
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_macros.dm b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_macros.dm
new file mode 100644
index 000000000000..450a0ac67745
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_macros.dm
@@ -0,0 +1,35 @@
+/datum/action/xeno_action/verb/verb_feralfrenzy()
+ set category = "Alien"
+ set name = "Feral Frenzy"
+ set hidden = TRUE
+ var/action_name = "Feral Frenzy"
+ handle_xeno_macro(src, action_name)
+
+/datum/action/xeno_action/verb/verb_toggle_gut_targeting()
+ set category = "Alien"
+ set name = "Toggle Gutting Type"
+ set hidden = TRUE
+ var/action_name = "Toggle Gutting Type"
+ handle_xeno_macro(src, action_name)
+
+
+/datum/action/xeno_action/verb/verb_feralrush()
+ set category = "Alien"
+ set name = "Feral Rush"
+ set hidden = TRUE
+ var/action_name = "Feral Rush"
+ handle_xeno_macro(src, action_name)
+
+/datum/action/xeno_action/verb/verb_predalien_roar()
+ set category = "Alien"
+ set name = "Predalien Roar"
+ set hidden = TRUE
+ var/action_name = "Roar"
+ handle_xeno_macro(src, action_name)
+
+/datum/action/xeno_action/verb/feral_smash()
+ set category = "Alien"
+ set name = "Feral Smash"
+ set hidden = TRUE
+ var/action_name = "Feral Smash"
+ handle_xeno_macro(src, action_name)
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm
index cdf0d3840084..6e6fef86a2f4 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm
@@ -1,13 +1,10 @@
-/datum/action/xeno_action/activable/pounce/predalien/pre_pounce_effects()
- playsound(owner, 'sound/voice/predalien_pounce.ogg', 75, 0, status = 0)
-
/datum/action/xeno_action/onclick/predalien_roar/use_ability(atom/target)
var/mob/living/carbon/xenomorph/xeno = owner
- if (!action_cooldown_check())
+ if(!action_cooldown_check())
return
- if (!xeno.check_state())
+ if(!xeno.check_state())
return
if(!check_and_use_plasma_owner())
@@ -34,124 +31,258 @@
continue
new /datum/effects/xeno_buff(carbon, xeno, ttl = (0.25 SECONDS * behavior.kills + 3 SECONDS), bonus_damage = bonus_damage_scale * behavior.kills, bonus_speed = (bonus_speed_scale * behavior.kills))
-
- for(var/mob/M in view(xeno))
- if(M && M.client)
- shake_camera(M, 10, 1)
-
apply_cooldown()
return ..()
-/datum/action/xeno_action/onclick/smash/use_ability(atom/target)
+/datum/action/xeno_action/activable/feralfrenzy/use_ability(atom/target)
var/mob/living/carbon/xenomorph/xeno = owner
-
- if (!action_cooldown_check())
+ if(!action_cooldown_check() || xeno.action_busy)
+ return
+ if(!xeno.check_state())
return
- if (!xeno.check_state())
+ var/datum/behavior_delegate/predalien_base/predalienbehavior = xeno.behavior_delegate
+ if(!istype(predalienbehavior))
return
+ if(targeting == AOETARGETGUT)
+ xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] begins digging in for a massive strike!"), SPAN_XENOHIGHDANGER("We begin digging in for a massive strike!"))
+ ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Eviscerate"))
+ xeno.anchored = TRUE
+ if (do_after(xeno, (activation_delay_aoe), INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE))
+ xeno.emote("roar")
+ xeno.spin_circle()
+
+ for (var/mob/living/carbon/carbon in orange(xeno, range))
+ if(!isliving(carbon) || xeno.can_not_harm(carbon))
+ continue
+
+ if (carbon.stat == DEAD)
+ continue
+
+ if(!check_clear_path_to_target(xeno, carbon))
+ continue
+
+ xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] rips open the guts of [carbon]!"), SPAN_XENOHIGHDANGER("We rip open the guts of [carbon]!"))
+ carbon.spawn_gibs()
+ xeno.animation_attack_on(carbon)
+ xeno.spin_circle()
+ xeno.flick_attack_overlay(carbon, "tail")
+ playsound(get_turf(carbon), 'sound/effects/gibbed.ogg', 30, 1)
+ carbon.apply_effect(get_xeno_stun_duration(carbon, 0.5), WEAKEN)
+ playsound(get_turf(carbon), "alien_claw_flesh", 30, 1)
+ carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, base_damage_aoe + damage_scale_aoe * predalienbehavior.kills), ARMOR_MELEE, BRUTE, "chest", 20)
+ playsound(owner, 'sound/voice/predalien_death.ogg', 75, 0, status = 0)
+ REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Eviscerate"))
+ xeno.anchored = FALSE
+ apply_cooldown()
+ return ..()
- var/datum/behavior_delegate/predalien_base/behavior = xeno.behavior_delegate
- if(!istype(behavior))
+ //single target checks
+ if(xeno.can_not_harm(target))
+ to_chat(xeno, SPAN_XENOWARNING("We must target a hostile!"))
return
- if(!check_plasma_owner())
+ if(!isliving(target))
return
- if(!do_after(xeno, activation_delay, INTERRUPT_ALL, BUSY_ICON_GENERIC))
- to_chat(xeno, "Keep still whilst trying to smash into the ground")
+ if(get_dist_sqrd(target, xeno) > 2)
+ to_chat(xeno, SPAN_XENOWARNING("[target] is too far away!"))
+ return
- var/real_cooldown = xeno_cooldown
+ var/mob/living/carbon/carbon = target
- xeno_cooldown = 3 SECONDS
+ if(carbon.stat == DEAD)
+ to_chat(xeno, SPAN_XENOWARNING("[carbon] is dead, why would we want to touch them?"))
+ return
+ if(targeting == SINGLETARGETGUT) // single target
+ ADD_TRAIT(carbon, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate"))
apply_cooldown()
- xeno_cooldown = real_cooldown
+
+ ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate"))
+ xeno.anchored = TRUE
+
+ if(do_after(xeno, activation_delay, INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE))
+ xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] rips open the guts of [carbon]!"), SPAN_XENOHIGHDANGER("We rapidly slice into [carbon]!"))
+ carbon.spawn_gibs()
+ playsound(get_turf(carbon), 'sound/effects/gibbed.ogg', 50, 1)
+ carbon.apply_effect(get_xeno_stun_duration(carbon, 0.5), WEAKEN)
+ carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, base_damage + damage_scale * predalienbehavior.kills), ARMOR_MELEE, BRUTE, "chest", 20)
+
+ xeno.animation_attack_on(carbon)
+ xeno.spin_circle()
+ xeno.flick_attack_overlay(carbon, "tail")
+
+ playsound(owner, 'sound/voice/predalien_growl.ogg', 50, 0, status = 0)
+
+ REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate"))
+ xeno.anchored = FALSE
+ unroot_human(carbon, TRAIT_SOURCE_ABILITY("Devastate"))
+
+ return ..()
+
+
+/datum/action/xeno_action/onclick/feralrush/use_ability(atom/A)
+ var/mob/living/carbon/xenomorph/predatoralien = owner
+
+ if(!action_cooldown_check())
+ return
+
+ if(!istype(predatoralien) || !predatoralien.check_state())
+ return
+
+ if(armor_buff && speed_buff)
+ to_chat(predatoralien, SPAN_XENOHIGHDANGER("We cannot stack this!"))
return
if(!check_and_use_plasma_owner())
return
- playsound(xeno.loc, pick(smash_sounds), 50, 0, status = 0)
- xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] smashes into the ground!"))
- xeno.create_stomp()
+ addtimer(CALLBACK(src, PROC_REF(remove_rush_effects)), speed_duration)
+ addtimer(CALLBACK(src, PROC_REF(remove_armor_effects)), armor_duration) // calculate armor and speed differently, so it's a bit more armored while trying to get out
+ predatoralien.add_filter("predalien_toughen", 1, list("type" = "outline", "color" = "#421313", "size" = 1))
+ to_chat(predatoralien, SPAN_XENOWARNING("We feel our muscles tense as our speed and armor increase!"))
+ speed_buff = TRUE
+ armor_buff = TRUE
+ predatoralien.speed_modifier -= speed_buff_amount
+ predatoralien.armor_modifier += armor_buff_amount
+ predatoralien.recalculate_speed()
+ predatoralien.recalculate_armor()
+ playsound(predatoralien, 'sound/voice/predalien_growl.ogg', 75, 0, status = 0)
+ apply_cooldown()
- for(var/mob/living/carbon/carbon in oview(round(behavior.kills * 0.5 + 2), xeno))
- if(!xeno.can_not_harm(carbon) && carbon.stat != DEAD)
- ADD_TRAIT(carbon, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Smash"))
- if (ishuman(carbon))
- var/mob/living/carbon/human/human = carbon
- human.update_xeno_hostile_hud()
+/datum/action/xeno_action/onclick/feralrush/proc/remove_rush_effects()
+ SIGNAL_HANDLER
+ var/mob/living/carbon/xenomorph/predatoralien = owner
+ if(speed_buff == TRUE)
+ to_chat(predatoralien, SPAN_XENOWARNING("Our muscles relax as we feel our speed wane."))
+ predatoralien.remove_filter("predalien_toughen")
+ predatoralien.speed_modifier += speed_buff_amount
+ predatoralien.recalculate_speed()
+ speed_buff = FALSE
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(unroot_human), carbon, TRAIT_SOURCE_ABILITY("Smash")), get_xeno_stun_duration(carbon, freeze_duration))
+/datum/action/xeno_action/onclick/feralrush/proc/remove_armor_effects()
+ SIGNAL_HANDLER
+ var/mob/living/carbon/xenomorph/predatoralien = owner
+ if(armor_buff)
+ to_chat(predatoralien, SPAN_XENOWARNING("We are no longer armored."))
+ predatoralien.armor_modifier -= armor_buff_amount
+ predatoralien.recalculate_armor()
+ armor_buff = FALSE
- for(var/mob/M in view(xeno))
- if(M && M.client)
- shake_camera(M, 0.2 SECONDS, 1)
- apply_cooldown()
- return ..()
+/datum/action/xeno_action/onclick/toggle_gut_targeting/use_ability(atom/A)
-/datum/action/xeno_action/activable/devastate/use_ability(atom/target)
var/mob/living/carbon/xenomorph/xeno = owner
+ var/action_icon_result
- if (!action_cooldown_check())
+ if(!xeno.check_state())
return
- if (!xeno.check_state())
+ var/datum/action/xeno_action/activable/feralfrenzy/guttype = get_xeno_action_by_type(xeno, /datum/action/xeno_action/activable/feralfrenzy)
+ if(!guttype)
return
- if (!isxeno_human(target) || xeno.can_not_harm(target))
- to_chat(xeno, SPAN_XENOWARNING("We must target a hostile!"))
- return
+ if(guttype.targeting == SINGLETARGETGUT)
+ action_icon_result = "rav_scissor_cut"
+ guttype.targeting = AOETARGETGUT
+ to_chat(xeno, SPAN_XENOWARNING("We will now attack everyone around us during a Feral Frenzy."))
+ else
+ action_icon_result = "gut"
+ guttype.targeting = SINGLETARGETGUT
+ to_chat(xeno, SPAN_XENOWARNING("We will now focus our Feral Frenzy on one person!"))
+
+ button.overlays.Cut()
+ button.overlays += image('icons/mob/hud/actions_xeno.dmi', button, action_icon_result)
+ return ..()
- if (get_dist_sqrd(target, xeno) > 2)
- to_chat(xeno, SPAN_XENOWARNING("[target] is too far away!"))
- return
+/datum/action/xeno_action/activable/feral_smash/use_ability(atom/affected_atom)
+ var/mob/living/carbon/xenomorph/predalien_smash = owner
+ var/datum/behavior_delegate/predalien_base/predalienbehavior = predalien_smash.behavior_delegate
- var/mob/living/carbon/carbon = target
+ if(!action_cooldown_check())
+ if(twitch_message_cooldown < world.time )
+ predalien_smash.visible_message(SPAN_XENOWARNING("[predalien_smash]'s muscles twitch."), SPAN_XENOWARNING("Our claws twitch as we try to grab onto the target but lack the strength. Wait a moment to try again."))
+ twitch_message_cooldown = world.time + 5 SECONDS
+ return //this gives a little feedback on why your lunge didn't hit other than the lunge button going grey. Plus, it might spook marines that almost got lunged if they know why the message appeared, and extra spookiness is always good.
- if (carbon.stat == DEAD)
- to_chat(xeno, SPAN_XENOWARNING("[carbon] is dead, why would we want to touch them?"))
+ if(!affected_atom)
return
- var/datum/behavior_delegate/predalien_base/behavior = xeno.behavior_delegate
- if(!istype(behavior))
+ if(!isturf(predalien_smash.loc))
+ to_chat(predalien_smash, SPAN_XENOWARNING("We can't lunge from here!"))
return
- if (!check_and_use_plasma_owner())
+ if(!predalien_smash.check_state() || predalien_smash.agility)
return
- ADD_TRAIT(carbon, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate"))
-
- if (ishuman(carbon))
- var/mob/living/carbon/human/human = carbon
- human.update_xeno_hostile_hud()
-
- apply_cooldown()
-
- ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate"))
- xeno.anchored = TRUE
+ if(predalien_smash.can_not_harm(affected_atom) || !ismob(affected_atom))
+ apply_cooldown_override(click_miss_cooldown)
+ return
- if (do_after(xeno, activation_delay, INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE))
- xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] rips open the guts of [carbon]!"), SPAN_XENOHIGHDANGER("We rip open the guts of [carbon]!"))
- carbon.spawn_gibs()
- playsound(get_turf(carbon), 'sound/effects/gibbed.ogg', 75, 1)
- carbon.apply_effect(get_xeno_stun_duration(carbon, 0.5), WEAKEN)
- carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, base_damage + damage_scale * behavior.kills), ARMOR_MELEE, BRUTE, "chest", 20)
- xeno.animation_attack_on(carbon)
- xeno.spin_circle()
- xeno.flick_attack_overlay(carbon, "tail")
+ var/mob/living/carbon/carbon = affected_atom
+ if(carbon.stat == DEAD)
+ return
- playsound(owner, 'sound/voice/predalien_growl.ogg', 75, 0, status = 0)
+ if(!isliving(affected_atom))
+ return
- REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate"))
- xeno.anchored = FALSE
- unroot_human(carbon, TRAIT_SOURCE_ABILITY("Devastate"))
+ if(!check_and_use_plasma_owner())
+ return
- xeno.visible_message(SPAN_XENODANGER("[xeno] rapidly slices into [carbon]!"))
+ apply_cooldown()
+ predalien_smash.throw_atom(get_step_towards(affected_atom, predalien_smash), grab_range, SPEED_FAST, predalien_smash)
+
+ if(predalien_smash.Adjacent(carbon) && predalien_smash.start_pulling(carbon, TRUE))
+ playsound(carbon.pulledby, 'sound/voice/predalien_growl.ogg', 75, 0, status = 0) // bang and roar for dramatic effect
+ playsound(carbon, 'sound/effects/bang.ogg', 25, 0)
+ animate(carbon, pixel_y = carbon.pixel_y + 32, time = 4, easing = SINE_EASING)
+ sleep(4)
+ playsound(carbon, 'sound/effects/bang.ogg', 25, 0)
+ playsound(carbon,"slam", 50, 1)
+ animate(carbon, pixel_y = 0, time = 4, easing = BOUNCE_EASING) //animates the smash
+ carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, smash_damage + smash_scale * predalienbehavior.kills), ARMOR_MELEE, BRUTE, "chest", 20)
+ else
+ predalien_smash.visible_message(SPAN_XENOWARNING("[predalien_smash]'s claws twitch."), SPAN_XENOWARNING("We couldn't grab our target. Wait a moment to try again."))
+
+ return TRUE
+
+/mob/living/carbon/xenomorph/predalien/stop_pulling()
+ if(isliving(pulling) && smashing)
+ smashing = FALSE // To avoid extreme cases of stopping a lunge then quickly pulling and stopping to pull someone else
+ var/mob/living/smashed = pulling
+ smashed.set_effect(0, STUN)
+ smashed.set_effect(0, WEAKEN)
return ..()
+
+/mob/living/carbon/xenomorph/predalien/start_pulling(atom/movable/movable_atom, feral_smash)
+ if(!check_state())
+ return FALSE
+
+ if(!isliving(movable_atom))
+ return FALSE
+ var/mob/living/living_mob = movable_atom
+ var/should_neckgrab = !(src.can_not_harm(living_mob)) && feral_smash
+
+
+ . = ..(living_mob, feral_smash, should_neckgrab)
+
+ if(.) //successful pull
+ if(isxeno(living_mob))
+ var/mob/living/carbon/xenomorph/xeno = living_mob
+ if(xeno.tier >= 2) // Tier 2 castes or higher immune to warrior grab stuns
+ return
+
+ if(should_neckgrab && living_mob.mob_size < MOB_SIZE_BIG)
+ visible_message(SPAN_XENOWARNING("[src] grabs [living_mob] by the back of their leg and slams them onto the ground!"), \
+ SPAN_XENOWARNING("We grab [living_mob] by the back of their leg and slam them onto the ground!")) // more flair
+ smashing = TRUE
+ living_mob.drop_held_items()
+ var/duration = get_xeno_stun_duration(living_mob, 1)
+ living_mob.KnockDown(duration)
+ living_mob.Stun(duration)
+ addtimer(VARSET_CALLBACK(src, smashing, FALSE), duration)
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm
index d245449fa2cf..ebcd29ded29d 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm
@@ -38,7 +38,7 @@
var/node_plant_cooldown = 7 SECONDS
var/node_plant_plasma_cost = 300
- var/turf_build_cooldown = 7 SECONDS
+ var/turf_build_cooldown = 10 SECONDS
/datum/action/xeno_action/onclick/manage_hive
name = "Manage The Hive"
@@ -62,6 +62,10 @@
. = ..()
SSticker.OnRoundstart(CALLBACK(src, PROC_REF(apply_queen_build_boost)))
+// queenos don't need weeds under them to build on ovi
+/datum/action/xeno_action/activable/secrete_resin/remote/queen/can_remote_build()
+ return TRUE
+
/datum/action/xeno_action/activable/secrete_resin/remote/queen/proc/apply_queen_build_boost()
var/boost_duration = 30 MINUTES
// In the event secrete_resin is given after round start
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm
index 3744fb7823e8..53ad3b377aec 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm
@@ -29,7 +29,7 @@
xeno_cooldown = 18 SECONDS
// Config values (mutable)
- var/empower_range = 3
+ var/empower_range = 4
var/max_targets = 6
var/main_empower_base_shield = 0
var/initial_activation_shield = 50
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm
index daad0362e91e..8fe101a08dfa 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm
@@ -6,9 +6,6 @@
if(!xeno.check_state())
return
- if(xeno.mutation_type != RAVAGER_NORMAL)
- return
-
if(!action_cooldown_check())
return
@@ -122,8 +119,6 @@
var/mob/living/carbon/human/human = living
var/mob/living/carbon/xenomorph/xeno = owner
- if(xeno.mutation_type != RAVAGER_NORMAL)
- return
var/datum/behavior_delegate/ravager_base/behavior = xeno.behavior_delegate
if(behavior.empower_targets < behavior.super_empower_threshold)
return
@@ -146,8 +141,6 @@
// Determine whether or not we should daze here
var/should_sslow = FALSE
- if(ravager_user.mutation_type != RAVAGER_NORMAL)
- return
var/datum/behavior_delegate/ravager_base/ravager_delegate = ravager_user.behavior_delegate
if(ravager_delegate.empower_targets >= ravager_delegate.super_empower_threshold)
should_sslow = TRUE
@@ -302,17 +295,14 @@
if (carbon.stat == DEAD)
return
- // All strain-specific behavior
- if (xeno.mutation_type == RAVAGER_BERSERKER)
- var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate
-
- if (behavior.rage >= 2)
- behavior.decrement_rage()
- heal_amount += additional_healing_enraged
- else
- to_chat(xeno, SPAN_XENOWARNING("Our rejuvenation was weaker without rage!"))
- debilitate = FALSE
- fling_distance--
+ var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate
+ if (behavior.rage >= 2)
+ behavior.decrement_rage()
+ heal_amount += additional_healing_enraged
+ else
+ to_chat(xeno, SPAN_XENOWARNING("Our rejuvenation was weaker without rage!"))
+ debilitate = FALSE
+ fling_distance--
// Damage
var/obj/limb/head/head = carbon.get_limb("head")
@@ -361,17 +351,16 @@
var/max_lifesteal = 250
var/lifesteal_range = 1
- if (xeno.mutation_type == RAVAGER_BERSERKER)
- var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate
- if (behavior.rage == 0)
- to_chat(xeno, SPAN_XENODANGER("We cannot eviscerate when we have 0 rage!"))
- return
- damage = damage_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)]
- range = range_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)]
- windup_reduction = windup_reduction_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)]
- behavior.decrement_rage(behavior.rage)
+ var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate
+ if (behavior.rage == 0)
+ to_chat(xeno, SPAN_XENODANGER("We cannot eviscerate when we have 0 rage!"))
+ return
+ damage = damage_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)]
+ range = range_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)]
+ windup_reduction = windup_reduction_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)]
+ behavior.decrement_rage(behavior.rage)
- apply_cooldown()
+ apply_cooldown()
if (range > 1)
xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] begins digging in for a massive strike!"), SPAN_XENOHIGHDANGER("We begin digging in for a massive strike!"))
@@ -439,12 +428,11 @@
if (!xeno.check_state())
return
- if (xeno.mutation_type == RAVAGER_HEDGEHOG)
- var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
- if (!behavior.check_shards(shard_cost))
- to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!"))
- return
- behavior.use_shards(shard_cost)
+ var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
+ if (!behavior.check_shards(shard_cost))
+ to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!"))
+ return
+ behavior.use_shards(shard_cost)
xeno.visible_message(SPAN_XENODANGER("[xeno] ruffles its bone-shard quills, forming a defensive shell!"), SPAN_XENODANGER("We ruffle our bone-shard quills, forming a defensive shell!"))
@@ -468,10 +456,8 @@
return FALSE
else if (cooldown_timer_id == TIMER_ID_NULL)
var/mob/living/carbon/xenomorph/xeno = owner
- if (xeno.mutation_type == RAVAGER_HEDGEHOG)
- var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
- return behavior.check_shards(shard_cost)
- return TRUE
+ var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
+ return behavior.check_shards(shard_cost)
return FALSE
/datum/action/xeno_action/onclick/spike_shield/proc/remove_shield()
@@ -502,12 +488,11 @@
if(!affected_atom || affected_atom.layer >= FLY_LAYER || !isturf(xeno.loc) || !xeno.check_state())
return
- if (xeno.mutation_type == RAVAGER_HEDGEHOG)
- var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
- if (!behavior.check_shards(shard_cost))
- to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!"))
- return
- behavior.use_shards(shard_cost)
+ var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
+ if (!behavior.check_shards(shard_cost))
+ to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!"))
+ return
+ behavior.use_shards(shard_cost)
xeno.visible_message(SPAN_XENOWARNING("[xeno] fires their spikes at [affected_atom]!"), SPAN_XENOWARNING("We fire our spikes at [affected_atom]!"))
@@ -531,11 +516,8 @@
var/mob/living/carbon/xenomorph/xeno = owner
if(!istype(xeno))
return FALSE
- if (xeno.mutation_type == RAVAGER_HEDGEHOG)
- var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
- return behavior.check_shards(shard_cost)
-
- return TRUE
+ var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
+ return behavior.check_shards(shard_cost)
else
return FALSE
@@ -548,13 +530,12 @@
if (!xeno.check_state())
return
- if (xeno.mutation_type == RAVAGER_HEDGEHOG)
- var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
- if (!behavior.check_shards(shard_cost))
- to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!"))
- return
- behavior.use_shards(shard_cost)
- behavior.lock_shards()
+ var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
+ if (!behavior.check_shards(shard_cost))
+ to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!"))
+ return
+ behavior.use_shards(shard_cost)
+ behavior.lock_shards()
xeno.visible_message(SPAN_XENOWARNING("[xeno] sheds their spikes, firing them in all directions!"), SPAN_XENOWARNING("We shed our spikes, firing them in all directions!!"))
xeno.spin_circle()
@@ -567,10 +548,7 @@
/datum/action/xeno_action/onclick/spike_shed/action_cooldown_check()
if (cooldown_timer_id == TIMER_ID_NULL)
var/mob/living/carbon/xenomorph/xeno = owner
- if (xeno.mutation_type == RAVAGER_HEDGEHOG)
- var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
- return behavior.check_shards(shard_cost)
-
- return TRUE
+ var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate
+ return behavior.check_shards(shard_cost)
else
return FALSE
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm
index b907a382dda1..f5e090bc7e4b 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm
@@ -45,7 +45,7 @@
return ..()
/mob/living/carbon/xenomorph/runner/corrosive_acid(atom/affected_atom, acid_type, plasma_cost)
- if (mutation_type != RUNNER_ACIDER)
+ if(!istype(strain, /datum/xeno_strain/acider))
return ..()
if(!affected_atom.Adjacent(src))
if(istype(affected_atom,/obj/item/explosive/plastic))
@@ -159,9 +159,6 @@
if(!action_cooldown_check())
return
- if(xeno.mutation_type != RUNNER_ACIDER)
- return
-
var/datum/behavior_delegate/runner_acider/behavior_delegate = xeno.behavior_delegate
if(!istype(behavior_delegate))
return
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm
index 1ddec771d075..1ed8863c231a 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm
@@ -35,9 +35,6 @@
if(!xeno.check_state())
return
- if(xeno.mutation_type != SENTINEL_NORMAL)
- return
-
if(!action_cooldown_check())
to_chat(src, SPAN_WARNING("We must wait for your spit glands to refill."))
return
@@ -77,9 +74,6 @@
if (!check_and_use_plasma_owner())
return
- if (xeno.mutation_type != SENTINEL_NORMAL)
- return
-
var/datum/behavior_delegate/sentinel_base/behavior = xeno.behavior_delegate
if (istype(behavior))
behavior.next_slash_buffed = TRUE
diff --git a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm
index 2aefff19c684..56f908389966 100644
--- a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm
+++ b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm
@@ -288,6 +288,7 @@
/mob/living/attack_larva(mob/living/carbon/xenomorph/larva/M)
M.visible_message(SPAN_DANGER("[M] nudges its head against [src]."), \
SPAN_DANGER("We nudge our head against [src]."), null, 5, CHAT_TYPE_XENO_FLUFF)
+ M.animation_attack_on(src)
/mob/living/proc/is_xeno_grabbable()
if(stat == DEAD)
@@ -911,7 +912,7 @@
return XENO_ATTACK_ACTION
/obj/structure/girder/attack_alien(mob/living/carbon/xenomorph/M)
- if((M.caste && M.caste.tier < 2 && !isqueen(M)) || unacidable)
+ if((M.caste && M.caste.tier < 2 && M.claw_type < CLAW_TYPE_VERY_SHARP) || unacidable)
to_chat(M, SPAN_WARNING("Our claws aren't sharp enough to damage [src]."))
return XENO_NO_DELAY_ACTION
M.animation_attack_on(src)
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm b/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm
index 074af92d69fa..f7e906a82b28 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm
@@ -13,6 +13,7 @@
evasion = XENO_EVASION_NONE
speed = XENO_SPEED_TIER_3
+ available_strains = list(/datum/xeno_strain/trapper)
behavior_delegate_type = /datum/behavior_delegate/boiler_base
evolution_allowed = FALSE
@@ -50,7 +51,6 @@
tier = 3
gib_chance = 100
drag_delay = 6 //pulling a big dead xeno is hard
- mutation_type = BOILER_NORMAL
spit_delay = 30 SECONDS
tileoffset = 3
viewsize = 7
@@ -98,4 +98,3 @@
// No special behavior for boilers
/datum/behavior_delegate/boiler_base
name = "Base Boiler Behavior Delegate"
-
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm b/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm
index 886ffcfe1ef2..bec41a87521e 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm
@@ -74,8 +74,6 @@
/mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher,
)
- mutation_type = BURROWER_NORMAL
-
icon_xeno = 'icons/mob/xenos/burrower.dmi'
icon_xenonid = 'icons/mob/xenonids/burrower.dmi'
@@ -109,11 +107,3 @@
/datum/behavior_delegate/burrower_base
name = "Base Burrower Behavior Delegate"
-
-/datum/behavior_delegate/burrower_base/on_update_icons()
- if(bound_xeno.stat == DEAD)
- return
-
- if(HAS_TRAIT(bound_xeno, TRAIT_ABILITY_BURROWED))
- bound_xeno.icon_state = "[bound_xeno.mutation_icon_state] Burrower Burrowed"
- return TRUE
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm b/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm
index 2e106743514a..d290b917e945 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm
@@ -14,6 +14,9 @@
evasion = XENO_EVASION_NONE
speed = XENO_SPEED_TIER_4
+ available_strains = list(/datum/xeno_strain/eggsac)
+ behavior_delegate_type = /datum/behavior_delegate/carrier_base
+
evolution_allowed = FALSE
deevolves_to = list(XENO_CASTE_DRONE)
throwspeed = SPEED_AVERAGE
@@ -75,7 +78,6 @@
/mob/living/carbon/xenomorph/proc/rename_tunnel,
/mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher,
)
- mutation_type = CARRIER_NORMAL
icon_xenonid = 'icons/mob/xenonids/carrier.dmi'
@@ -95,18 +97,9 @@
var/eggs_max = 0
var/laid_egg = 0
-/mob/living/carbon/xenomorph/carrier/update_icons()
- . = ..()
- if (mutation_type == CARRIER_NORMAL)
- update_hugger_overlays()
- if (mutation_type == CARRIER_EGGSAC)
- update_eggsac_overlays()
-
/mob/living/carbon/xenomorph/carrier/proc/update_hugger_overlays()
if(!hugger_overlays_icon)
return
- if(mutation_type != CARRIER_NORMAL)
- return
overlays -= hugger_overlays_icon
hugger_overlays_icon.overlays.Cut()
@@ -146,8 +139,6 @@
/mob/living/carbon/xenomorph/carrier/proc/update_eggsac_overlays()
if(!eggsac_overlays_icon)
return
- if(mutation_type != CARRIER_EGGSAC)
- return
overlays -= eggsac_overlays_icon
eggsac_overlays_icon.overlays.Cut()
@@ -184,9 +175,6 @@
. = ..(cause, gibbed)
if(.)
var/chance = 75 //75% to drop an egg or hugger.
- if(mutation_type == CARRIER_EGGSAC)
- visible_message(SPAN_XENOWARNING("[src] throes as its eggsac bursts into a mess of acid!"))
- playsound(src.loc, 'sound/effects/alien_egg_burst.ogg', 25, 1)
if(huggers_cur)
//Hugger explosion, like an egg morpher
@@ -207,6 +195,11 @@
if(eggs_dropped) //Checks whether or not to announce egg drop.
xeno_message(SPAN_XENOANNOUNCE("[src] has dropped some precious eggs!"), 2, hive.hivenumber)
+/mob/living/carbon/xenomorph/carrier/recalculate_actions()
+ . = ..()
+ huggers_max = caste.huggers_max
+ eggs_max = caste.eggs_max
+
/mob/living/carbon/xenomorph/carrier/get_status_tab_items()
. = ..()
if(huggers_max > 0)
@@ -397,3 +390,10 @@
return
GLOB.hive_datum[hivenumber].spawn_as_hugger(user, src)
huggers_cur--
+
+/datum/behavior_delegate/carrier_base
+ name = "Base Carrier Behavior Delegate"
+
+/datum/behavior_delegate/carrier_base/on_update_icons()
+ var/mob/living/carbon/xenomorph/carrier/bound_carrier = bound_xeno
+ bound_carrier.update_hugger_overlays()
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm b/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm
index d2c0b0e40e59..38b1e5816ffe 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm
@@ -14,6 +14,7 @@
speed = XENO_SPEED_TIER_2
heal_standing = 0.66
+ available_strains = list(/datum/xeno_strain/charger)
behavior_delegate_type = /datum/behavior_delegate/crusher_base
minimum_evolve_time = 15 MINUTES
@@ -63,8 +64,6 @@
)
claw_type = CLAW_TYPE_VERY_SHARP
- mutation_icon_state = CRUSHER_NORMAL
- mutation_type = CRUSHER_NORMAL
icon_xeno = 'icons/mob/xenos/crusher.dmi'
icon_xenonid = 'icons/mob/xenonids/crusher.dmi'
@@ -281,5 +280,5 @@
/datum/behavior_delegate/crusher_base/on_update_icons()
if(bound_xeno.throwing || is_charging) //Let it build up a bit so we're not changing icons every single turf
- bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Crusher Charging"
+ bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Crusher Charging"
return TRUE
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm b/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm
index 8ec53d51046e..a63bafb5d2b0 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm
@@ -18,6 +18,7 @@
deevolves_to = list("Larva")
can_vent_crawl = 0
+ available_strains = list(/datum/xeno_strain/steel_crest)
behavior_delegate_type = /datum/behavior_delegate/defender_base
tackle_min = 2
@@ -51,9 +52,6 @@
/datum/action/xeno_action/onclick/tacmap,
)
- mutation_icon_state = DEFENDER_NORMAL
- mutation_type = DEFENDER_NORMAL
-
icon_xeno = 'icons/mob/xenos/defender.dmi'
icon_xenonid = 'icons/mob/xenonids/defender.dmi'
@@ -90,8 +88,8 @@
return
if(bound_xeno.fortify && bound_xeno.health > 0)
- bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Defender Fortify"
+ bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Defender Fortify"
return TRUE
if(bound_xeno.crest_defense && bound_xeno.health > 0)
- bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Defender Crest"
+ bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Defender Crest"
return TRUE
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm b/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm
index c4c9b11b37e4..a0ce70316eb8 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm
@@ -12,6 +12,11 @@
evasion = XENO_EVASION_MEDIUM
speed = XENO_SPEED_TIER_7
+ available_strains = list(
+ /datum/xeno_strain/gardener,
+ /datum/xeno_strain/healer,
+ )
+
build_time_mult = BUILD_TIME_MULT_BUILDER
caste_desc = "A builder of hives. Only drones may evolve into Queens."
@@ -69,7 +74,6 @@
/mob/living/carbon/xenomorph/proc/rename_tunnel,
/mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher,
)
- mutation_type = DRONE_NORMAL
icon_xeno = 'icons/mob/xenos/drone.dmi'
icon_xenonid = 'icons/mob/xenonids/drone.dmi'
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm
index 7ce3a8750568..d98e60fe2177 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm
@@ -9,6 +9,9 @@
caste_desc = "Ewwww, that's disgusting!"
speed = XENO_SPEED_TIER_8
+ available_strains = list(/datum/xeno_strain/watcher)
+ behavior_delegate_type = /datum/behavior_delegate/facehugger_base
+
evolution_allowed = FALSE
can_be_revived = FALSE
@@ -55,7 +58,6 @@
inherent_verbs = list(
/mob/living/carbon/xenomorph/proc/vent_crawl,
)
- mutation_type = "Normal"
icon_xeno = 'icons/mob/xenos/facehugger.dmi'
icon_xenonid = 'icons/mob/xenonids/facehugger.dmi'
@@ -64,6 +66,20 @@
weed_food_states = list("Facehugger_1","Facehugger_2","Facehugger_3")
weed_food_states_flipped = list("Facehugger_1","Facehugger_2","Facehugger_3")
+/mob/living/carbon/xenomorph/facehugger/Login()
+ var/last_ckey_inhabited = persistent_ckey
+ . = ..()
+ if(ckey == last_ckey_inhabited)
+ return
+
+ AddComponent(\
+ /datum/component/temporary_mute,\
+ "We aren't old enough to vocalize anything yet.",\
+ "We aren't old enough to communicate like this yet.",\
+ "We feel old enough to be able to vocalize now.",\
+ 3 MINUTES,\
+ )
+
/mob/living/carbon/xenomorph/facehugger/initialize_pass_flags(datum/pass_flags_container/PF)
..()
if (PF)
@@ -74,34 +90,16 @@
if(stat == DEAD)
return ..()
- if(body_position == STANDING_UP && !(mutation_type == FACEHUGGER_WATCHER) && !(locate(/obj/effect/alien/weeds) in get_turf(src)))
- adjustBruteLoss(1)
- return ..()
-
if(!client && !aghosted && away_timer > XENO_FACEHUGGER_LEAVE_TIMER)
// Become a npc once again
new /obj/item/clothing/mask/facehugger(loc, hivenumber)
qdel(src)
return ..()
-/mob/living/carbon/xenomorph/facehugger/update_icons(is_pouncing)
- if(!caste)
- return
-
- if(stat == DEAD)
- icon_state = "[mutation_type] [caste.caste_type] Dead"
- else if(body_position == LYING_DOWN)
- if(!HAS_TRAIT(src, TRAIT_INCAPACITATED) && !HAS_TRAIT(src, TRAIT_FLOORED))
- icon_state = "[mutation_type] [caste.caste_type] Sleeping"
- else
- icon_state = "[mutation_type] [caste.caste_type] Knocked Down"
- else if(is_pouncing)
- icon_state = "[mutation_type] [caste.caste_type] Thrown"
- else
- icon_state = "[mutation_type] [caste.caste_type] Running"
-
- update_fire() //the fire overlay depends on the xeno's stance, so we must update it.
- update_wounds()
+/mob/living/carbon/xenomorph/facehugger/update_icons()
+ . = ..()
+ if(throwing)
+ icon_state = "[get_strain_icon()] [caste.caste_type] Thrown"
/mob/living/carbon/xenomorph/facehugger/start_pulling(atom/movable/AM)
return
@@ -235,34 +233,9 @@
else
. += "Lifetime Hugs: [total_facehugs]"
+/datum/behavior_delegate/facehugger_base
+ name = "Base Facehugger Behavior Delegate"
-/datum/xeno_mutator/watcher
- name = "STRAIN: Facehugger - Watcher"
- description = "You lose your ability to hide in exchange to see further and the ability to no longer take damage outside of weeds. This enables you to stalk your host from a distance and wait for the perfect oppertunity to strike."
- flavor_description = "No need to hide when you can see the danger."
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_FACEHUGGER)
- mutator_actions_to_remove = list(
- /datum/action/xeno_action/onclick/xenohide,
- )
- mutator_actions_to_add = list(
- /datum/action/xeno_action/onclick/toggle_long_range/runner,
- )
-
- cost = 1
-
- keystone = TRUE
-
-/datum/xeno_mutator/watcher/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if(!.)
- return
-
- var/mob/living/carbon/xenomorph/facehugger/facehugger = mutator_set.xeno
-
- facehugger.viewsize = 10
- facehugger.layer = MOB_LAYER
-
- facehugger.mutation_type = FACEHUGGER_WATCHER
- mutator_update_actions(facehugger)
- mutator_set.recalculate_actions(description, flavor_description)
+/datum/behavior_delegate/facehugger_base/on_life()
+ if(bound_xeno.body_position == STANDING_UP && !(locate(/obj/effect/alien/weeds) in get_turf(bound_xeno)))
+ bound_xeno.adjustBruteLoss(1)
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm b/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm
index 6868fd5ac589..93d40820bf7b 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm
@@ -64,7 +64,6 @@
inherent_verbs = list(
/mob/living/carbon/xenomorph/proc/vent_crawl,
)
- mutation_type = HELLHOUND_NORMAL
icon_xeno = 'icons/mob/xenos/hellhound.dmi'
icon_xenonid = 'icons/mob/xenos/hellhound.dmi'
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm b/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm
index b00ec2a9c1eb..ee4157a67d84 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm
@@ -13,6 +13,8 @@
evasion = XENO_EVASION_NONE
speed = XENO_SPEED_TIER_2
+ available_strains = list(/datum/xeno_strain/resin_whisperer)
+
evolution_allowed = FALSE
caste_desc = "A builder of really big hives."
deevolves_to = list(XENO_CASTE_DRONE)
@@ -76,8 +78,6 @@
/mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher,
)
- mutation_type = HIVELORD_NORMAL
-
icon_xeno = 'icons/mob/xenos/hivelord.dmi'
icon_xenonid = 'icons/mob/xenonids/hivelord.dmi'
@@ -121,10 +121,3 @@
toggle_resin_walker()
to_chat(bound_xeno, SPAN_WARNING("You feel dizzy as the world slows down."))
bound_xeno.recalculate_move_delay = TRUE
-
-/// This check mainly exists because of the new resin node ability for resin whisperer.
-/mob/living/carbon/xenomorph/hivelord/proc/on_weeds()
- var/turf/turf = get_turf(src)
- if(locate(/obj/effect/alien/weeds) in turf)
- return TRUE
- return FALSE
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm b/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm
index f1c77e7fb757..c06b8c43839d 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm
@@ -46,7 +46,6 @@
inherent_verbs = list(
/mob/living/carbon/xenomorph/proc/vent_crawl,
)
- mutation_type = "Normal"
var/burrowable = TRUE //Can it be safely burrowed if it has no player?
var/state_override
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm b/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm
index 469b9a78d063..b9bde4c78992 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm
@@ -15,6 +15,7 @@
attack_delay = 2 // VERY high slash damage, but attacks relatively slowly
+ available_strains = list(/datum/xeno_strain/vampire)
behavior_delegate_type = /datum/behavior_delegate/lurker_base
deevolves_to = list(XENO_CASTE_RUNNER)
@@ -50,7 +51,6 @@
inherent_verbs = list(
/mob/living/carbon/xenomorph/proc/vent_crawl,
)
- mutation_type = LURKER_NORMAL
claw_type = CLAW_TYPE_SHARP
tackle_min = 2
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm b/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm
index 9536ef1553e9..69b679573352 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm
@@ -26,6 +26,12 @@
tackle_max = 5
tackle_chance = 45
+ available_strains = list(
+ /datum/xeno_strain/dancer,
+ /datum/xeno_strain/oppressor,
+ /datum/xeno_strain/vanguard,
+ /datum/xeno_strain/warden,
+ )
behavior_delegate_type = /datum/behavior_delegate/praetorian_base
minimum_evolve_time = 15 MINUTES
@@ -46,7 +52,6 @@
mob_size = MOB_SIZE_BIG
drag_delay = 6 //pulling a big dead xeno is hard
tier = 3
- mutation_type = PRAETORIAN_NORMAL
base_actions = list(
/datum/action/xeno_action/onclick/xeno_resting,
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm b/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm
index bcf47386fefc..841675234e63 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm
@@ -6,8 +6,7 @@
melee_damage_upper = XENO_DAMAGE_TIER_5
melee_vehicle_damage = XENO_DAMAGE_TIER_5
max_health = XENO_HEALTH_TIER_9
- plasma_gain = XENO_PLASMA_GAIN_TIER_9
- plasma_max = XENO_PLASMA_TIER_3
+ plasma_max = XENO_NO_PLASMA
xeno_explosion_resistance = XENO_EXPLOSIVE_ARMOR_TIER_10
armor_deflection = XENO_ARMOR_TIER_3
evasion = XENO_EVASION_NONE
@@ -41,6 +40,7 @@
speaking_noise = 'sound/voice/predalien_click.ogg'
plasma_types = list(PLASMA_CATECHOLAMINE)
faction = FACTION_PREDALIEN
+ claw_type = CLAW_TYPE_VERY_SHARP
wall_smash = TRUE
hardcore = FALSE
pixel_x = -16
@@ -56,20 +56,19 @@
/datum/action/xeno_action/onclick/regurgitate,
/datum/action/xeno_action/watch_xeno,
/datum/action/xeno_action/activable/tail_stab,
- /datum/action/xeno_action/activable/pounce/predalien,
+ /datum/action/xeno_action/onclick/feralrush,
/datum/action/xeno_action/onclick/predalien_roar,
- /datum/action/xeno_action/onclick/smash,
- /datum/action/xeno_action/activable/devastate,
+ /datum/action/xeno_action/activable/feral_smash,
+ /datum/action/xeno_action/activable/feralfrenzy,
+ /datum/action/xeno_action/onclick/toggle_gut_targeting,
/datum/action/xeno_action/onclick/tacmap,
)
- mutation_type = "Normal"
-
weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi'
weed_food_states = list("Predalien_1","Predalien_2","Predalien_3")
weed_food_states_flipped = list("Predalien_1","Predalien_2","Predalien_3")
+ var/smashing = FALSE
- var/butcher_time = 6 SECONDS
/mob/living/carbon/xenomorph/predalien/Initialize(mapload, mob/living/carbon/xenomorph/oldxeno, h_number)
@@ -88,15 +87,20 @@
to_chat(src, {"
|______________________|
-
-You are a very powerful xenomorph creature that was born of a Yautja warrior body.
-You are stronger, faster, and smarter than a regular xenomorph, but you must still listen to the queen.
-You have a degree of freedom to where you can hunt and claim the heads of the hive's enemies, so check your verbs.
-Your health meter will not regenerate normally, so kill and die for the hive!
+
+You are a xenomorph born from the body of your natural enemy, you are considered an abomination to all of the yautja race and they will do WHATEVER it takes to kill you.
+However, being born from one you also harbor their intelligence and strength. You are built to be able to take them on but that does not mean you are invincible. Stay with your hive and overwhelm them with your numbers. Your sisters have sacrificed a lot for you; Do not just wander off and die.
+You must still listen to the queen.
+
|______________________|
"})
emote("roar")
+
+/mob/living/carbon/xenomorph/predalien/resist_fire()
+ ..()
+ SetKnockDown(0.1 SECONDS)
+
/datum/behavior_delegate/predalien_base
name = "Base Predalien Behavior Delegate"
@@ -120,53 +124,11 @@ Your health meter will not regenerate normally, so kill and die for the hive!= 1)
if(isturf(loc))
var/turf/T = loc
@@ -595,7 +593,7 @@
xeno_announcement(input, hivenumber, "The words of the [name] reverberate in our head...")
- log_and_message_admins("[key_name_admin(src)] has created a Word of the Queen report:")
+ message_admins("[key_name_admin(src)] has created a Word of the Queen report:")
log_admin("[key_name_admin(src)] Word of the Queen: [input]")
return TRUE
@@ -936,7 +934,7 @@
var/mob/living/carbon/xenomorph/queen/Queen = bound_xeno
if(Queen.ovipositor)
Queen.icon = Queen.queen_ovipositor_icon
- Queen.icon_state = "[Queen.mutation_icon_state || Queen.mutation_type] Queen Ovipositor"
+ Queen.icon_state = "[Queen.get_strain_name()] Queen Ovipositor"
return TRUE
// Switch icon back and then let normal icon behavior happen
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm b/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm
index 6d19a1b8feec..e50a0f026d65 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm
@@ -26,6 +26,10 @@
fire_immunity = FIRE_IMMUNITY_NO_DAMAGE|FIRE_IMMUNITY_XENO_FRENZY
attack_delay = -1
+ available_strains = list(
+ /datum/xeno_strain/berserker,
+ /datum/xeno_strain/hedgehog,
+ )
behavior_delegate_type = /datum/behavior_delegate/ravager_base
minimum_evolve_time = 15 MINUTES
@@ -45,7 +49,6 @@
tier = 3
pixel_x = -16
old_x = -16
- mutation_type = RAVAGER_NORMAL
claw_type = CLAW_TYPE_VERY_SHARP
base_actions = list(
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm b/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm
index 3a23afc145d1..400195f21de0 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm
@@ -13,6 +13,8 @@
evasion = XENO_EVASION_NONE
speed = XENO_SPEED_RUNNER
attack_delay = -4
+
+ available_strains = list(/datum/xeno_strain/acider)
behavior_delegate_type = /datum/behavior_delegate/runner_base
evolves_to = list(XENO_CASTE_LURKER)
deevolves_to = list("Larva")
@@ -62,7 +64,6 @@
inherent_verbs = list(
/mob/living/carbon/xenomorph/proc/vent_crawl,
)
- mutation_type = RUNNER_NORMAL
icon_xeno = 'icons/mob/xenos/runner.dmi'
icon_xenonid = 'icons/mob/xenonids/runner.dmi'
@@ -77,6 +78,12 @@
if (pass_flags_container)
pass_flags_container.flags_pass |= PASS_FLAGS_CRAWLER
+/mob/living/carbon/xenomorph/runner/recalculate_actions()
+ . = ..()
+ pull_multiplier *= 0.85
+ if(is_zoomed)
+ zoom_out()
+
/datum/behavior_delegate/runner_base
name = "Base Runner Behavior Delegate"
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm b/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm
index a568a093b3a4..2e53f97e297b 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm
@@ -53,7 +53,6 @@
inherent_verbs = list(
/mob/living/carbon/xenomorph/proc/vent_crawl,
)
- mutation_type = SENTINEL_NORMAL
icon_xeno = 'icons/mob/xenos/sentinel.dmi'
icon_xenonid = 'icons/mob/xenonids/sentinel.dmi'
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm b/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm
index 9ad2f4909fb8..984a2d08bb75 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm
@@ -56,7 +56,6 @@
inherent_verbs = list(
/mob/living/carbon/xenomorph/proc/vent_crawl,
)
- mutation_type = SPITTER_NORMAL
icon_xeno = 'icons/mob/xenos/spitter.dmi'
icon_xenonid = 'icons/mob/xenonids/spitter.dmi'
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm b/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm
index b19978a33766..1c329c8b9e82 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm
@@ -55,7 +55,6 @@
/datum/action/xeno_action/onclick/tacmap,
)
- mutation_type = WARRIOR_NORMAL
claw_type = CLAW_TYPE_SHARP
icon_xeno = 'icons/mob/xenos/warrior.dmi'
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm b/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm
index cfaedf013a44..feee2edecb67 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm
@@ -66,6 +66,9 @@
var/agility_speed_increase = 0 // this opens up possibilities for balancing
+ /// A list of strain typepaths that are able to be chosen by this caste.
+ var/list/available_strains = list()
+
// The type of mutator delegate to instantiate on the base caste. Will
// be replaced when the Xeno chooses a strain.
var/behavior_delegate_type = /datum/behavior_delegate
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm b/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm
index f050a0dcfe8a..8b268ebfce62 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm
@@ -74,8 +74,6 @@
/mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher,
)
- mutation_type = DRONE_NORMAL
-
icon_xeno = 'icons/mob/xenos/lesser_drone.dmi'
icon_xenonid = 'icons/mob/xenonids/lesser_drone.dmi'
@@ -83,6 +81,20 @@
weed_food_states = list("Lesser_Drone_1","Lesser_Drone_2","Lesser_Drone_3")
weed_food_states_flipped = list("Lesser_Drone_1","Lesser_Drone_2","Lesser_Drone_3")
+/mob/living/carbon/xenomorph/lesser_drone/Login()
+ var/last_ckey_inhabited = persistent_ckey
+ . = ..()
+ if(ckey == last_ckey_inhabited)
+ return
+
+ AddComponent(\
+ /datum/component/temporary_mute,\
+ "We aren't old enough to vocalize anything yet.",\
+ "We aren't old enough to communicate like this yet.",\
+ "We feel old enough to be able to vocalize and speak to the hivemind.",\
+ 3 MINUTES,\
+ )
+
/mob/living/carbon/xenomorph/lesser_drone/age_xeno()
if(stat == DEAD || !caste || QDELETED(src) || !client)
return
diff --git a/code/modules/mob/living/carbon/xenomorph/death.dm b/code/modules/mob/living/carbon/xenomorph/death.dm
index 503ca11a7631..d6a9dd01f3cc 100644
--- a/code/modules/mob/living/carbon/xenomorph/death.dm
+++ b/code/modules/mob/living/carbon/xenomorph/death.dm
@@ -84,7 +84,8 @@
playsound(loc, prob(50) == 1 ? 'sound/voice/alien_death.ogg' : 'sound/voice/alien_death2.ogg', 25, 1)
var/area/A = get_area(src)
if(hive && hive.living_xeno_queen)
- xeno_message("Hive: [src] has died [A? " at [sanitize_area(A.name)]":""]! [banished ? "They were banished from the hive." : ""]", death_fontsize, hivenumber)
+ if(!HAS_TRAIT(src, TRAIT_TEMPORARILY_MUTED))
+ xeno_message("Hive: [src] has died [A? " at [sanitize_area(A.name)]":""]! [banished ? "They were banished from the hive." : ""]", death_fontsize, hivenumber)
if(hive && IS_XENO_LEADER(src)) //Strip them from the Xeno leader list, if they are indexed in here
hive.remove_hive_leader(src)
diff --git a/code/modules/mob/living/carbon/xenomorph/egg_item.dm b/code/modules/mob/living/carbon/xenomorph/egg_item.dm
index 1bc41b881129..f349b8acfb8d 100644
--- a/code/modules/mob/living/carbon/xenomorph/egg_item.dm
+++ b/code/modules/mob/living/carbon/xenomorph/egg_item.dm
@@ -104,12 +104,15 @@
if(weed.weed_strength >= WEED_LEVEL_WEAK && weed.linked_hive.hivenumber == hivenumber) //check for ANY weeds
any_weeds = weed
+ // If the user isn't an eggsac carrier, then they can only plant eggs on hive weeds.
+ var/needs_hive_weeds = !istype(user.strain, /datum/xeno_strain/eggsac)
+
var/datum/hive_status/hive = GLOB.hive_datum[hivenumber]
if(!any_weeds && !hive_weeds) //you need at least some weeds to plant on.
to_chat(user, SPAN_XENOWARNING("[src] must be planted on [lowertext(hive.prefix)]weeds."))
return
- if(!hive_weeds && user.mutation_type != CARRIER_EGGSAC)
+ if(!hive_weeds && needs_hive_weeds)
to_chat(user, SPAN_XENOWARNING("[src] can only be planted on [lowertext(hive.prefix)]hive weeds."))
return
@@ -138,7 +141,7 @@
return
for(var/obj/effect/alien/weeds/weed in T)
- if(weed.weed_strength >= WEED_LEVEL_HIVE || user.mutation_type == CARRIER_EGGSAC)
+ if(weed.weed_strength >= WEED_LEVEL_HIVE || !needs_hive_weeds)
user.use_plasma(30)
var/obj/effect/alien/egg/newegg
if(weed.weed_strength >= WEED_LEVEL_HIVE)
diff --git a/code/modules/mob/living/carbon/xenomorph/hive_status.dm b/code/modules/mob/living/carbon/xenomorph/hive_status.dm
index bb67eaa055a8..22b061715892 100644
--- a/code/modules/mob/living/carbon/xenomorph/hive_status.dm
+++ b/code/modules/mob/living/carbon/xenomorph/hive_status.dm
@@ -12,7 +12,7 @@
var/egg_planting_range = 15
var/slashing_allowed = XENO_SLASH_ALLOWED //This initial var allows the queen to turn on or off slashing. Slashing off means harm intent does much less damage.
var/construction_allowed = NORMAL_XENO //Who can place construction nodes for special structures
- var/destruction_allowed = XENO_LEADER //Who can destroy special structures
+ var/destruction_allowed = NORMAL_XENO //Who can destroy special structures
var/unnesting_allowed = TRUE
var/hive_orders = "" //What orders should the hive have
var/color = null
@@ -46,7 +46,6 @@
var/allowed_nest_distance = 15 //How far away do we allow nests from an ovied Queen. Default 15 tiles.
var/obj/effect/alien/resin/special/pylon/core/hive_location = null //Set to ref every time a core is built, for defining the hive location
- var/datum/mutator_set/hive_mutators/mutators = new
var/tier_slot_multiplier = 1
var/larva_gestation_multiplier = 1
var/bonus_larva_spawn_chance = 1
@@ -54,7 +53,6 @@
/// how many burrowed is going to spawn during larva surge
var/hijack_burrowed_left = 0
- var/ignore_slots = FALSE
var/dynamic_evolution = TRUE
var/evolution_rate = 3 // Only has use if dynamic_evolution is false
var/evolution_bonus = 0
@@ -143,7 +141,6 @@
var/static/list/evolution_menu_images
/datum/hive_status/New()
- mutators.hive = src
hive_ui = new(src)
mark_ui = new(src)
faction_ui = new(src)
@@ -279,7 +276,6 @@
/datum/hive_status/proc/set_living_xeno_queen(mob/living/carbon/xenomorph/queen/queen)
if(!queen)
- mutators.reset_mutators()
SStracking.delete_leader("hive_[hivenumber]")
SStracking.stop_tracking("hive_[hivenumber]", living_xeno_queen)
SShive_status.wait = 10 SECONDS
@@ -293,10 +289,8 @@
recalculate_hive()
/datum/hive_status/proc/recalculate_hive()
- if (!living_xeno_queen)
- queen_leader_limit = 0 //No leaders for a Hive without a Queen!
- else
- queen_leader_limit = 4 + mutators.leader_count_boost
+ //No leaders for a Hive without a Queen!
+ queen_leader_limit = living_xeno_queen ? 4 : 0
if (xeno_leader_list.len > queen_leader_limit)
var/diff = 0
@@ -310,11 +304,6 @@
open_xeno_leader_positions += i
xeno_leader_list.len++
-
- tier_slot_multiplier = mutators.tier_slot_multiplier
- larva_gestation_multiplier = mutators.larva_gestation_multiplier
- bonus_larva_spawn_chance = mutators.bonus_larva_spawn_chance
-
hive_ui.update_all_data()
/datum/hive_status/proc/add_hive_leader(mob/living/carbon/xenomorph/xeno)
@@ -524,7 +513,7 @@
xeno_name = "Larva ([X.nicknumber])"
xenos["[X.nicknumber]"] = list(
"name" = xeno_name,
- "strain" = X.mutation_type,
+ "strain" = X.get_strain_name(),
"ref" = "\ref[X]"
)
@@ -1062,7 +1051,6 @@
allow_no_queen_actions = TRUE
allow_no_queen_evo = TRUE
allow_queen_evolve = FALSE
- ignore_slots = TRUE
latejoin_burrowed = FALSE
/datum/hive_status/forsaken
@@ -1077,7 +1065,6 @@
allow_no_queen_actions = TRUE
allow_no_queen_evo = TRUE
allow_queen_evolve = FALSE
- ignore_slots = TRUE
latejoin_burrowed = FALSE
need_round_end_check = TRUE
@@ -1118,7 +1105,6 @@
allow_no_queen_actions = TRUE
allow_no_queen_evo = TRUE
allow_queen_evolve = FALSE
- ignore_slots = TRUE
latejoin_burrowed = FALSE
need_round_end_check = TRUE
@@ -1148,7 +1134,6 @@
allow_no_queen_actions = TRUE
allow_no_queen_evo = TRUE
allow_queen_evolve = FALSE
- ignore_slots = TRUE
latejoin_burrowed = FALSE
var/mob/living/carbon/human/leader
diff --git a/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm b/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm
index 17514a31e502..360b4e8bbdde 100644
--- a/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm
+++ b/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm
@@ -137,7 +137,7 @@
return UI_INTERACTIVE
// If the Queen died or is otherwise missing.
- if(!assoc_hive.living_xeno_queen)
+ if(!assoc_hive.living_xeno_queen && !assoc_hive.allow_no_queen_actions)
return UI_CLOSE
/datum/hive_status_ui/ui_data(mob/user)
diff --git a/code/modules/mob/living/carbon/xenomorph/life.dm b/code/modules/mob/living/carbon/xenomorph/life.dm
index d5ca8a41fa39..bbd59a74d8b5 100644
--- a/code/modules/mob/living/carbon/xenomorph/life.dm
+++ b/code/modules/mob/living/carbon/xenomorph/life.dm
@@ -506,6 +506,7 @@ Make sure their actual health updates immediately.*/
/mob/living/carbon/xenomorph/proc/handle_crit()
if(stat <= CONSCIOUS && !gibbing)
set_stat(UNCONSCIOUS)
+ SEND_SIGNAL(src, COMSIG_XENO_ENTER_CRIT)
/mob/living/carbon/xenomorph/set_stat(new_stat)
. = ..()
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/mutator.dm b/code/modules/mob/living/carbon/xenomorph/mutators/mutator.dm
deleted file mode 100644
index 6736bdb0419b..000000000000
--- a/code/modules/mob/living/carbon/xenomorph/mutators/mutator.dm
+++ /dev/null
@@ -1,103 +0,0 @@
-#define MUTATOR_COST_CHEAP 2
-#define MUTATOR_COST_MODERATE 3
-#define MUTATOR_COST_EXPENSIVE 1
-
-//Individual mutator
-/datum/xeno_mutator
- var/name = "Mutator name" //Name of the mutator, should be short but informative
- var/description = "Mutator description" //Description to be displayed on purchase
- var/flavor_description = null // Optional flavor text to be shown. Semi-OOC
- var/cost = MUTATOR_COST_CHEAP //How expensive the mutator is
- var/required_level = 0 //Level of xeno upgrade required to unlock
- var/unique = TRUE //True if you can only buy it once
- var/death_persistent = FALSE //True if the mutators persists after Queen death (aka, mostly for "once ever" mutators)
- var/hive_only = FALSE //Hive-only mutators
- var/individual_only = FALSE //Individual-only mutators
- var/keystone = FALSE //Xeno can only take one Keystone mutator
- var/flaw = FALSE //Flaws give you points back, but you can only take one of them
- var/list/caste_whitelist = list() //List of the only castes that can buy this mutator
-
- // Rework by Fourkhan - 4/26/19, redone again c. 2/2020
- // HOW TO ADD A NEW MUTATOR
- // Step 0: Write an action(s)
- // the "handler" procs go in the appropriate caste's subfolder under the "ABILITIES" file.
- // the actual ACTION procs go in the appropriate caste's subfolder under the "POWERS" file.
- // Any constants you need to access for your strain should be in the behavior holder and
- // accessed using a cast to it using the mutator_type variable as defined below. (Or using an istype of the behavior holder)
- // vars that absolutely must be held on the xenos themselves can be added to the Xenomorph class itself.
- // Be sure to follow the spec in xeno_action.dm as far as setting up xeno_cooldown is concerned.
- //
- // Step 1: Write the Behavior Delegate datum IF NECESSARY
- // the "behavior holder" datum defines all unique behavior and state for each xeno/strain. It works by embedding a number of 'hooks'
- // for example, if you want to store bonus damage and apply it on slashes, behavior delegates are the way to do it.
- // in common procs that call back to Xeno features. See other behavior delegates for examples. Afterward, set the behavior_delegate_type
- // var on the strain datum to indicate which behavior holder to apply to your strain.
- //
- // Step 1: Copy/paste another datum definiton and edit it for your strain
- // make sure to populate each of the variables listed above (at least as much as other strains)
- //
- // Step 2: Write the apply_mutator proc.
- // FIRST: populate mutator_actions_to_add and mutator_actions_to_remove according to that documentation.
- // THEN: write the body of the apply_mutator method according to your speficiations
- // THEN: call mutator_update_actions on your xeno
- // call recalculate actions on your mutator set (this should be auto populated)
- // You should probably also call recalculate_everything() on the host Xeno to make sure you don't end up with any
- // strange transient values.
- // THEN: Set the mutation_type var on the host xeno to "name" the strain.
- // FINALLY: Call apply_behavior_holder() to add the behavior datum to the new Xeno.
- //
- // You're done!
-
- // Both should be set to null when their use is not necessary.
- /// A list of PATHS of actions that need to be removed when a xeno takes the mutator.
- var/list/mutator_actions_to_remove //Actions to remove when the mutator is added
- /// A list of PATHS of actions to be ADDED when the Xeno takes the mutator.
- var/list/mutator_actions_to_add //Actions to add when the mutator is added
-
- // Type of the behavior datum to add
- var/behavior_delegate_type = null // Specify this on subtypes
-
-/datum/xeno_mutator/New()
- . = ..()
- name = "[name]"
-
-
-/datum/xeno_mutator/proc/apply_mutator(datum/mutator_set/MS)
- if(!MS.can_purchase_mutator(name))
- return FALSE
- if(MS.remaining_points < cost)
- return FALSE
- MS.remaining_points -= cost
- MS.purchased_mutators += name
-
- if(istype(MS, /datum/mutator_set/individual_mutators))
- var/datum/mutator_set/individual_mutators/IS = MS
- if(IS.xeno)
- IS.xeno.hive.hive_ui.update_xeno_info()
-
- return TRUE
-
-// Sets up actions for when a mutator is taken
-// Must be called at the end of any mutator that changes available actions
-// (read: Strains) apply_mutator proc for the mutator to work correctly.
-/datum/xeno_mutator/proc/mutator_update_actions(mob/living/carbon/xenomorph/X)
- if(mutator_actions_to_remove)
- for(var/action_path in mutator_actions_to_remove)
- remove_action(X, action_path)
- if(mutator_actions_to_add)
- for(var/action_path in mutator_actions_to_add)
- give_action(X, action_path)
-
-// Substitutes the existing behavior delegate for the strain-defined one.
-/datum/xeno_mutator/proc/apply_behavior_holder(mob/living/carbon/xenomorph/X)
- if (!istype(X))
- log_debug("Null mob handed to apply_behavior_holder. Tell the devs.")
- log_admin("Null mob handed to apply_behavior_holder. Tell the devs.")
- message_admins("Null mob handed to apply_behavior_holder. Tell the devs.")
-
- if (behavior_delegate_type)
- if(X.behavior_delegate)
- qdel(X.behavior_delegate)
- X.behavior_delegate = new behavior_delegate_type()
- X.behavior_delegate.bound_xeno = X
- X.behavior_delegate.add_to_xeno()
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/defender/steel_crest.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/defender/steel_crest.dm
deleted file mode 100644
index 957e7f1b8926..000000000000
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/defender/steel_crest.dm
+++ /dev/null
@@ -1,44 +0,0 @@
-/datum/xeno_mutator/steel_crest
- name = "STRAIN: Defender - Steel Crest"
- description = "You trade your tail sweep and a small amount of your slash damage for slightly increased headbutt knockback and damage and the ability to slowly move and headbutt while fortified. Along with this, you gain a unique ability to accumulate damage, and use it to recover a slight amount of health and refresh your tail slam."
- flavor_description = "To handle yourself, use your head. To handle others, use your head."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_DEFENDER)
- mutator_actions_to_remove = list(
- /datum/action/xeno_action/onclick/tail_sweep,
- )
- mutator_actions_to_add = list(
- /datum/action/xeno_action/onclick/soak,
- )
- behavior_delegate_type = /datum/behavior_delegate/defender_steel_crest
- keystone = TRUE
-
-/datum/xeno_mutator/steel_crest/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == 0)
- return
-
- var/mob/living/carbon/xenomorph/defender/defender = mutator_set.xeno
- defender.mutation_type = DEFENDER_STEELCREST
- defender.mutation_icon_state = DEFENDER_STEELCREST
- defender.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL
- if(defender.fortify)
- defender.ability_speed_modifier += 2.5
- mutator_update_actions(defender)
- mutator_set.recalculate_actions(description, flavor_description)
- defender.recalculate_stats()
-
-/datum/behavior_delegate/defender_steel_crest
- name = "Steel Crest Defender Behavior Delegate"
-
-/datum/behavior_delegate/defender_steel_crest/on_update_icons()
- if(bound_xeno.stat == DEAD)
- return
-
- if(bound_xeno.fortify)
- bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Steelcrest Defender Fortify"
- return TRUE
- if(bound_xeno.crest_defense)
- bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Steelcrest Defender Crest"
- return TRUE
diff --git a/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm b/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm
index 793ed45bcb13..9c94be96a65a 100644
--- a/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm
+++ b/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm
@@ -341,11 +341,11 @@ GLOBAL_VAR_INIT(resin_lz_allowed, FALSE)
construction_name = "thick resin membrane"
build_path = /obj/structure/alien/movable_wall/membrane/thick
-// Remote Resin Nodes for originally coded for Resin Whisperers
+// Remote Weed Nodes for originally coded for Resin Whisperers
/datum/resin_construction/resin_obj/resin_node
- name = "Resin Node"
+ name = "Weed Node"
desc = "Channel energy to spread our influence."
- construction_name = "resin node"
+ construction_name = "weed node"
cost = (XENO_RESIN_MEMBRANE_THICK_COST * 2) // 3x the cost of a thick membrane. At the time of coding that is 95*2 = 190
build_path = /obj/effect/alien/weeds/node
diff --git a/code/modules/mob/living/carbon/xenomorph/say.dm b/code/modules/mob/living/carbon/xenomorph/say.dm
index 5b8ce1ecd292..c40a50ce7523 100644
--- a/code/modules/mob/living/carbon/xenomorph/say.dm
+++ b/code/modules/mob/living/carbon/xenomorph/say.dm
@@ -98,6 +98,9 @@
to_chat(src, SPAN_WARNING("A headhunter temporarily cut off your psychic connection!"))
return
+ if(SEND_SIGNAL(src, COMSIG_XENO_TRY_HIVEMIND_TALK, message) & COMPONENT_OVERRIDE_HIVEMIND_TALK)
+ return
+
hivemind_broadcast(message, hive)
/mob/living/carbon/proc/hivemind_broadcast(message, datum/hive_status/hive)
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/behavior_delegate.dm b/code/modules/mob/living/carbon/xenomorph/strains/behavior_delegate.dm
similarity index 100%
rename from code/modules/mob/living/carbon/xenomorph/mutators/behavior_delegate.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/behavior_delegate.dm
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/boiler/trapper.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/boiler/trapper.dm
similarity index 87%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/boiler/trapper.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/boiler/trapper.dm
index c14d2c6773cf..e6c8061bd0fe 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/boiler/trapper.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/boiler/trapper.dm
@@ -1,40 +1,33 @@
-
-/datum/xeno_mutator/trapper
- name = "STRAIN: Boiler - Trapper"
+/datum/xeno_strain/trapper
+ name = BOILER_TRAPPER
description = "You trade your ability to bombard, lance, and dump your acid in order to gain some speed and the ability to create acid explosions and restrain talls within them. With your longer-range vision, set up traps that immobilize your opponents and place acid mines which deal damage to talls and barricades and reduce the cooldown of your trap deployment for every tall hit. Finally, hit talls with your Acid Shotgun ability which adds a stack of insight to empower the next trap you place once you reach a maximum of ten insight. A point-blank shot or a shot on a stunned target will instantly apply ten stacks."
flavor_description = "Hsss, I love the smell of burnin' tallhost flesh in the mornin'."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_BOILER) //Only boiler.
- mutator_actions_to_remove = list(
+
+ actions_to_remove = list(
/datum/action/xeno_action/activable/xeno_spit/bombard,
/datum/action/xeno_action/onclick/shift_spits/boiler,
/datum/action/xeno_action/activable/spray_acid/boiler,
/datum/action/xeno_action/onclick/toggle_long_range/boiler,
/datum/action/xeno_action/onclick/acid_shroud,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/activable/boiler_trap,
/datum/action/xeno_action/activable/acid_mine,
/datum/action/xeno_action/activable/acid_shotgun,
/datum/action/xeno_action/onclick/toggle_long_range/trapper,
)
- keystone = TRUE
behavior_delegate_type = /datum/behavior_delegate/boiler_trapper
-/datum/xeno_mutator/trapper/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if(. == 0)
- return
+/datum/xeno_strain/trapper/apply_strain(mob/living/carbon/xenomorph/boiler/boiler)
+ if(!istype(boiler))
+ return FALSE
- var/mob/living/carbon/xenomorph/boiler/boiler = mutator_set.xeno
if(boiler.is_zoomed)
boiler.zoom_out()
boiler.tileoffset = 0
boiler.viewsize = TRAPPER_VIEWRANGE
- boiler.mutation_type = BOILER_TRAPPER
boiler.plasma_types -= PLASMA_NEUROTOXIN
boiler.armor_modifier -= XENO_ARMOR_MOD_LARGE // no armor
boiler.health_modifier -= XENO_HEALTH_MOD_MED
@@ -42,12 +35,6 @@
boiler.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 // compensating for base buffs
boiler.recalculate_everything()
- apply_behavior_holder(boiler)
-
- mutator_update_actions(boiler)
- mutator_set.recalculate_actions(description, flavor_description)
-
-
/datum/behavior_delegate/boiler_trapper
name = "Boiler Trapper Behavior Delegate"
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/carrier/eggsac.dm
similarity index 85%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/carrier/eggsac.dm
index 10cbc29f51b0..61c03803841b 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/carrier/eggsac.dm
@@ -1,48 +1,36 @@
-/datum/xeno_mutator/eggsac
- name = "STRAIN: Carrier - Eggsac"
+/datum/xeno_strain/eggsac
+ name = CARRIER_EGGSAC
description = "In exchange for your ability to store huggers and place traps, you gain larger plasma stores, strong pheromones, and the ability to lay eggs by using your plasma stores. In addition, you can now carry twelve eggs at once and can place eggs one pace further than normal. \n\nYou can also place a small number of fragile eggs on normal weeds. These eggs have a lifetime of five minutes while you remain within 14 tiles. Or one minute if you leave this range."
flavor_description = "An egg is always an adventure; the next one may be different."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_CARRIER)
- mutator_actions_to_remove = list(
+ icon_state_prefix = "Eggsac"
+
+ actions_to_remove = list(
/datum/action/xeno_action/activable/throw_hugger,
/datum/action/xeno_action/onclick/place_trap,
/datum/action/xeno_action/activable/retrieve_egg, // readding it so it gets at the end of the ability list
/datum/action/xeno_action/onclick/set_hugger_reserve,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/active_toggle/generate_egg,
/datum/action/xeno_action/activable/retrieve_egg, // readding it so it gets at the end of the ability list
)
+
behavior_delegate_type = /datum/behavior_delegate/carrier_eggsac
- keystone = TRUE
-/datum/xeno_mutator/eggsac/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (!.)
- return
- var/mob/living/carbon/xenomorph/carrier/carrier = mutator_set.xeno
- if(!istype(carrier))
- return FALSE
+/datum/xeno_strain/eggsac/apply_strain(mob/living/carbon/xenomorph/carrier/carrier)
carrier.plasma_types = list(PLASMA_EGG)
carrier.phero_modifier += XENO_PHERO_MOD_LARGE // praetorian level pheremones
- carrier.plasmapool_modifier = 1.2
- mutator_update_actions(carrier)
- mutator_set.recalculate_actions(description, flavor_description)
- carrier.recalculate_pheromones()
carrier.recalculate_plasma()
- if(carrier.huggers_cur > 0)
- playsound(carrier.loc, 'sound/voice/alien_facehugger_dies.ogg', 25, 1)
+ carrier.recalculate_pheromones()
+
+ if(carrier.huggers_cur)
+ playsound(carrier.loc, 'sound/voice/alien_facehugger_dies.ogg', 25, TRUE)
carrier.huggers_cur = 0
carrier.huggers_max = 0
carrier.update_hugger_overlays()
- carrier.mutation_type = CARRIER_EGGSAC
- carrier.update_eggsac_overlays()
carrier.eggs_max = 12
carrier.egg_planting_range = 2
- apply_behavior_holder(carrier)
- return TRUE
+ carrier.update_eggsac_overlays()
#define EGGSAC_OFF_WEED_EGGCAP 4
#define EGGSAC_EGG_SUSTAIN_DISTANCE 14
@@ -60,6 +48,10 @@
. = list()
. += "Eggs sustained: [length(eggs_sustained)] / [egg_sustain_cap]"
+/datum/behavior_delegate/carrier_eggsac/on_update_icons()
+ var/mob/living/carbon/xenomorph/carrier/bound_carrier = bound_xeno
+ bound_carrier.update_eggsac_overlays()
+
/datum/behavior_delegate/carrier_eggsac/on_life()
if(length(eggs_sustained) > egg_sustain_cap)
var/obj/effect/alien/egg/carrier_egg/my_egg = eggs_sustained[1]
@@ -87,6 +79,9 @@
remove_egg_owner(my_egg)
my_egg.start_unstoppable_decay()
+ M.visible_message(SPAN_XENOWARNING("[M] throes as its eggsac bursts into a mess of acid!"))
+ playsound(M.loc, 'sound/effects/alien_egg_burst.ogg', 25, TRUE)
+
///Remove all references to src in eggs_sustained
/datum/behavior_delegate/carrier_eggsac/Destroy()
for(var/obj/effect/alien/egg/carrier_egg/my_egg as anything in eggs_sustained)
@@ -126,7 +121,7 @@
if(egg_generation_progress >= 15)
egg_generation_progress = 0
xeno.eggs_cur++
- to_chat(xeno, SPAN_XENONOTICE("You generate a egg. Now sheltering: [xeno.eggs_cur] / [xeno.eggs_max]."))
+ to_chat(xeno, SPAN_XENONOTICE("We generate an egg. Now sheltering: [xeno.eggs_cur] / [xeno.eggs_max]."))
xeno.update_icons()
#undef EGGSAC_OFF_WEED_EGGCAP
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/crusher/charger.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/crusher/charger.dm
similarity index 96%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/crusher/charger.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/crusher/charger.dm
index 17b5cf62052c..84877b43571e 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/crusher/charger.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/crusher/charger.dm
@@ -1,10 +1,8 @@
-//
// Specific momentum based damage defines
#define CHARGER_DESTROY charger_ability.momentum * 40
#define CHARGER_DAMAGE_CADE charger_ability.momentum * 22
#define CHARGER_DAMAGE_SENTRY charger_ability.momentum * 9
-#define CHARGER_DAMAGE_MG charger_ability.momentum * 15
// Momentum loss defines. 8 is maximum momentum
@@ -14,34 +12,26 @@
#define CCA_MOMENTUM_LOSS_MIN 1
-/datum/xeno_mutator/charger
- name = "STRAIN: Crusher - Charger"
+/datum/xeno_strain/charger
+ name = CRUSHER_CHARGER
description = "In exchange for your shield, a little bit of your armor and damage, your slowdown resist from autospitters, your influence under frenzy pheromones, your stomp no longer knocking down talls, and your ability to lock your direction, you gain a considerable amount of health, some speed, your stomp does extra damage when stomping over a grounded tall, and your charge is now manually-controlled and momentum-based; the further you go, the more damage and speed you will gain until you achieve maximum momentum, indicated by your roar. In addition, your armor is now directional, being the toughest on the front, weaker on the sides, and weakest from the back. In return, you gain an ability to tumble to pass through talls and avoid enemy fire, and an ability to forcefully move enemies via ramming into them."
flavor_description = "We're just getting started. Nothing stops this train. Nothing."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_CRUSHER)
- mutator_actions_to_remove = list (
+
+ actions_to_remove = list(
/datum/action/xeno_action/activable/pounce/crusher_charge,
/datum/action/xeno_action/onclick/crusher_stomp,
/datum/action/xeno_action/onclick/crusher_shield,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/onclick/charger_charge,
/datum/action/xeno_action/activable/tumble,
/datum/action/xeno_action/onclick/crusher_stomp/charger,
/datum/action/xeno_action/activable/fling/charger,
)
- keystone = TRUE
- behavior_delegate_type = /datum/behavior_delegate/crusher_charger
-/datum/xeno_mutator/charger/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == 0)
- return
+ behavior_delegate_type = /datum/behavior_delegate/crusher_charger
- var/mob/living/carbon/xenomorph/crusher/crusher = mutator_set.xeno
- crusher.mutation_type = CRUSHER_CHARGER
+/datum/xeno_strain/charger/apply_strain(mob/living/carbon/xenomorph/crusher/crusher)
crusher.small_explosives_stun = FALSE
crusher.health_modifier += XENO_HEALTH_MOD_LARGE
crusher.speed_modifier += XENO_SPEED_FASTMOD_TIER_3
@@ -49,10 +39,6 @@
crusher.damage_modifier -= XENO_DAMAGE_MOD_SMALL
crusher.ignore_aura = "frenzy" // no funny crushers going 7 morbillion kilometers per second
crusher.phero_modifier = -crusher.caste.aura_strength
- crusher.recalculate_pheromones()
- mutator_update_actions(crusher)
- mutator_set.recalculate_actions(description, flavor_description)
- apply_behavior_holder(crusher)
crusher.recalculate_everything()
/datum/behavior_delegate/crusher_charger
@@ -83,7 +69,7 @@
/datum/behavior_delegate/crusher_charger/on_update_icons()
if(HAS_TRAIT(bound_xeno, TRAIT_CHARGING) && bound_xeno.body_position == STANDING_UP)
- bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Crusher Charging"
+ bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Crusher Charging"
return TRUE
// Fallback proc for shit that doesn't have a collision def
@@ -643,3 +629,12 @@
return XENO_CHARGE_TRY_MOVE
charger_ability.stop_momentum()
+
+
+#undef CHARGER_DESTROY
+#undef CHARGER_DAMAGE_CADE
+#undef CHARGER_DAMAGE_SENTRY
+#undef CCA_MOMENTUM_LOSS_HALF
+#undef CCA_MOMENTUM_LOSS_THIRD
+#undef CCA_MOMENTUM_LOSS_QUARTER
+#undef CCA_MOMENTUM_LOSS_MIN
diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/defender/steel_crest.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/defender/steel_crest.dm
new file mode 100644
index 000000000000..f84566e9c841
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/defender/steel_crest.dm
@@ -0,0 +1,22 @@
+/datum/xeno_strain/steel_crest
+ name = DEFENDER_STEELCREST
+ description = "You trade your tail sweep and a small amount of your slash damage for slightly increased headbutt knockback and damage and the ability to slowly move and headbutt while fortified. Along with this, you gain a unique ability to accumulate damage, and use it to recover a slight amount of health and refresh your tail slam."
+ flavor_description = "To handle yourself, use your head. To handle others, use your head."
+ icon_state_prefix = "Steelcrest"
+
+ actions_to_remove = list(
+ /datum/action/xeno_action/activable/headbutt,
+ /datum/action/xeno_action/activable/fortify,
+ /datum/action/xeno_action/onclick/tail_sweep,
+ )
+ actions_to_add = list(
+ /datum/action/xeno_action/activable/headbutt/steel_crest,
+ /datum/action/xeno_action/activable/fortify/steel_crest,
+ /datum/action/xeno_action/onclick/soak,
+ )
+
+/datum/xeno_strain/steel_crest/apply_strain(mob/living/carbon/xenomorph/defender/defender)
+ defender.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL
+ if(defender.fortify)
+ defender.ability_speed_modifier += 2.5
+ defender.recalculate_stats()
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/gardener.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm
similarity index 93%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/gardener.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm
index da354b465331..d54d268f12d9 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/gardener.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm
@@ -1,45 +1,41 @@
-/datum/xeno_mutator/gardener
- name = "STRAIN: Drone - Gardener"
+/datum/xeno_strain/gardener
+ name = DRONE_GARDENER
description = "You trade your choice of resin secretions, your corrosive acid, and your ability to transfer plasma for a tiny bit of extra health regeneration on weeds and several new abilities, including the ability to plant hardier weeds, temporarily reinforce structures with your plasma, and to plant up to six potent resin fruits for your sisters by secreting your vital fluids at the cost of a bit of your health for each fruit you shape. You can use Resin Surge to speed up the growth of your fruits."
flavor_description = "The glory of gardening: hands in the weeds, head in the dark, heart with resin."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_DRONE) //Only drone.
- mutator_actions_to_remove = list(
+
+ actions_to_remove = list(
/datum/action/xeno_action/activable/secrete_resin,
/datum/action/xeno_action/onclick/choose_resin,
/datum/action/xeno_action/activable/corrosive_acid/weak,
/datum/action/xeno_action/activable/transfer_plasma,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/onclick/plant_weeds/gardener, // second macro
/datum/action/xeno_action/activable/resin_surge, // third macro
/datum/action/xeno_action/onclick/plant_resin_fruit/greater, // fourth macro
/datum/action/xeno_action/onclick/change_fruit,
/datum/action/xeno_action/activable/transfer_plasma,
)
- keystone = TRUE
- behavior_delegate_type = /datum/behavior_delegate/drone_gardener
-/datum/xeno_mutator/gardener/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == 0)
- return
+ behavior_delegate_type = /datum/behavior_delegate/drone_gardener
- var/mob/living/carbon/xenomorph/drone/drone = mutator_set.xeno
- drone.mutation_type = DRONE_GARDENER
- drone.available_fruits = list(/obj/effect/alien/resin/fruit/greater, /obj/effect/alien/resin/fruit/unstable, /obj/effect/alien/resin/fruit/spore, /obj/effect/alien/resin/fruit/speed, /obj/effect/alien/resin/fruit/plasma)
+/datum/xeno_strain/gardener/apply_strain(mob/living/carbon/xenomorph/drone/drone)
+ drone.available_fruits = list(
+ /obj/effect/alien/resin/fruit/greater,
+ /obj/effect/alien/resin/fruit/unstable,
+ /obj/effect/alien/resin/fruit/spore,
+ /obj/effect/alien/resin/fruit/speed,
+ /obj/effect/alien/resin/fruit/plasma
+ )
drone.selected_fruit = /obj/effect/alien/resin/fruit/greater
drone.max_placeable = 6
drone.regeneration_multiplier = XENO_REGEN_MULTIPLIER_TIER_1
- mutator_update_actions(drone)
- apply_behavior_holder(drone)
+
// Also change the primacy value for our place construction ability (because we want it in the same place but have another primacy ability)
for(var/datum/action/xeno_action/action in drone.actions)
if(istype(action, /datum/action/xeno_action/activable/place_construction))
action.ability_primacy = XENO_NOT_PRIMARY_ACTION
break // Don't need to keep looking
- mutator_set.recalculate_actions(description, flavor_description)
/datum/action/xeno_action/onclick/plant_resin_fruit
name = "Plant Resin Fruit (50)"
@@ -368,9 +364,6 @@
var/mutable_appearance/fruit_sac_overlay_icon
-/datum/behavior_delegate/drone_gardener/add_to_xeno()
- on_update_icons()
-
/datum/behavior_delegate/drone_gardener/on_update_icons()
if(!fruit_sac_overlay_icon)
fruit_sac_overlay_icon = mutable_appearance('icons/mob/xenos/drone_strain_overlays.dmi', "Gardener Drone Walking")
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm
similarity index 90%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm
index 86f50b47e080..0fcbb2ecf09a 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm
@@ -1,18 +1,17 @@
-/datum/xeno_mutator/healer
- name = "STRAIN: Drone - Healer"
+/datum/xeno_strain/healer
+ name = DRONE_HEALER
description = "You lose your choice of resin secretions, a chunk of your slash damage, and you will experience a slighty-increased difficulty in tackling tallhosts in exchange for strong pheromones, the ability to use a bit of your health to plant a maximum of three lesser resin fruits, and the ability to heal your sisters' wounds by secreting a regenerative resin salve by using your vital fluids and a fifth of your plasma. Be wary, this is a dangerous process; overexert yourself and you may exhaust yourself to unconsciousness, or die..."
flavor_description = "To the very last drop, your blood belongs to The Hive; share it with your sisters to keep them fighting."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_DRONE) //Only drone.
- mutator_actions_to_remove = list(
+ icon_state_prefix = "Healer"
+
+ actions_to_remove = list(
/datum/action/xeno_action/activable/secrete_resin,
/datum/action/xeno_action/onclick/choose_resin,
/datum/action/xeno_action/activable/transfer_plasma,
/datum/action/xeno_action/activable/place_construction, // so it doesn't use fifth macro
/datum/action/xeno_action/onclick/plant_weeds, // so it doesn't break order
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/activable/place_construction/not_primary, // so it doesn't use fifth macro
/datum/action/xeno_action/onclick/plant_weeds, // so it doesn't break order
/datum/action/xeno_action/onclick/plant_resin_fruit, // Second macro. Resin fruits belong to Gardener, but Healer has a minor variant.
@@ -20,32 +19,20 @@
/datum/action/xeno_action/activable/transfer_plasma/healer, //Fourth macro, an improved plasma transfer.
/datum/action/xeno_action/activable/healer_sacrifice, //Fifth macro, the ultimate ability to sacrifice yourself
)
- keystone = TRUE
- behavior_delegate_type = /datum/behavior_delegate/drone_healer
-
-/datum/xeno_mutator/healer/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == 0)
- return
+ behavior_delegate_type = /datum/behavior_delegate/drone_healer
- var/mob/living/carbon/xenomorph/drone/drone = mutator_set.xeno
- drone.mutation_type = DRONE_HEALER
+/datum/xeno_strain/healer/apply_strain(mob/living/carbon/xenomorph/drone/drone)
drone.phero_modifier += XENO_PHERO_MOD_LARGE
drone.plasma_types += PLASMA_PHEROMONE
drone.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL
+ drone.tackle_chance_modifier -= 5
drone.max_placeable = 3
drone.available_fruits = list(/obj/effect/alien/resin/fruit)
drone.selected_fruit = /obj/effect/alien/resin/fruit
- drone.tackle_chance_modifier -= 5
- mutator_update_actions(drone)
- apply_behavior_holder(drone)
- mutator_set.recalculate_actions(description, flavor_description)
- drone.recalculate_health()
- drone.recalculate_damage()
- drone.recalculate_pheromones()
- drone.recalculate_tackle()
+
+ drone.recalculate_everything()
/*
Improved Plasma Transfer
@@ -123,13 +110,14 @@
to_chat(src, SPAN_XENOWARNING("[target_xeno] is already at max health!"))
return
-///Tiny xenos (Larva and Facehuggers), don't need as much health so don't cost as much.
- if(target_xeno.mob_size == 0)
+ //Tiny xenos (Larva and Facehuggers), don't need as much health so don't cost as much.
+ if(target_xeno.mob_size == MOB_SIZE_SMALL)
amount = amount * 0.15
damage_taken_mod = 1
-//Forces an equivalent exchange of health between healers so they do not spam heal each other to full health.
- if(target_xeno.mutation_type == DRONE_HEALER)
+ //Forces an equivalent exchange of health between healers so they do not spam heal each other to full health.
+ var/target_is_healer = istype(target_xeno.strain, /datum/xeno_strain/healer)
+ if(target_is_healer)
damage_taken_mod = 1
face_atom(target_xeno)
@@ -144,7 +132,7 @@
playsound(src, "alien_drool", 25)
var/datum/behavior_delegate/drone_healer/healer_delegate = behavior_delegate
healer_delegate.salve_applied_recently = TRUE
- if(target_xeno.mutation_type != DRONE_HEALER && !isfacehugger(target_xeno)) // no cheap grinding
+ if(!target_is_healer && !isfacehugger(target_xeno)) // no cheap grinding
healer_delegate.modify_transferred(amount * damage_taken_mod)
update_icons()
addtimer(CALLBACK(healer_delegate, /datum/behavior_delegate/drone_healer/proc/un_salve), 10 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE)
@@ -301,4 +289,3 @@
to_chat(xeno, SPAN_HIGHDANGER("Warning: [name] is a last measure skill. Using it will kill us."))
else
to_chat(xeno, SPAN_HIGHDANGER("Warning: [name] is a last measure skill. Using it will kill us, but new life will be granted for our hard work for the hive."))
-
diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm
new file mode 100644
index 000000000000..7fba30b6f352
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm
@@ -0,0 +1,21 @@
+/datum/xeno_strain/watcher
+ name = FACEHUGGER_WATCHER
+ description = "You lose your ability to hide in exchange to see further and the ability to no longer take damage outside of weeds. This enables you to stalk your host from a distance and wait for the perfect oppertunity to strike."
+ flavor_description = "No need to hide when you can see the danger."
+
+ actions_to_remove = list(
+ /datum/action/xeno_action/onclick/xenohide,
+ )
+ actions_to_add = list(
+ /datum/action/xeno_action/onclick/toggle_long_range/runner,
+ )
+
+ behavior_delegate_type = /datum/behavior_delegate/facehugger_watcher
+
+/datum/xeno_strain/watcher/apply_strain(mob/living/carbon/xenomorph/facehugger/huggy)
+ huggy.viewsize = 10
+ huggy.layer = initial(huggy.layer)
+
+// This has no special effects, it's just here to skip `/datum/behavior_delegate/facehugger_base/on_life()`.
+/datum/behavior_delegate/facehugger_watcher
+ name = "Watcher Facehugger Behavior Delegate"
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm
similarity index 74%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm
index 3653209b78f2..cf1cafde9267 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm
@@ -1,41 +1,30 @@
-/datum/xeno_mutator/resinwhisperer
- name = "STRAIN: Hivelord - Resin Whisperer"
- description = "You lose your corrosive acid, your ability to secrete thick resin, your ability to reinforce resin secretions, sacrifice your ability to plant resin nodes outside of weeds, and you sacrifice a fifth of your plasma reserves to enhance your vision and gain a stronger connection to the resin. You can now remotely place resin secretions including resin nodes up to a distance of twelve paces!"
+/datum/xeno_strain/resin_whisperer
+ name = HIVELORD_RESIN_WHISPERER
+ description = "You lose your corrosive acid, your ability to secrete thick resin, your ability to reinforce resin secretions, sacrifice your ability to plant weed nodes outside of weeds, and you sacrifice a fifth of your plasma reserves to enhance your vision and gain a stronger connection to the resin. You can now remotely place resin secretions including weed nodes up to a distance of twelve paces!"
flavor_description = "Let the resin guide you. It whispers, so listen closely."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_HIVELORD)
- mutator_actions_to_remove = list(
+ icon_state_prefix = "Resin Whisperer"
+
+ actions_to_remove = list(
/datum/action/xeno_action/onclick/plant_weeds,
/datum/action/xeno_action/activable/secrete_resin/hivelord,
/datum/action/xeno_action/activable/corrosive_acid,
/datum/action/xeno_action/activable/transfer_plasma/hivelord,
/datum/action/xeno_action/active_toggle/toggle_speed,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/activable/secrete_resin/remote, //third macro
/datum/action/xeno_action/activable/transfer_plasma/hivelord, // readding it so it gets at the end of the ability list
/datum/action/xeno_action/active_toggle/toggle_speed, // readding it so it gets at the end of the ability list
)
- keystone = TRUE
-
-/datum/xeno_mutator/resinwhisperer/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if(!.)
- return
- var/mob/living/carbon/xenomorph/hivelord/hivelord = mutator_set.xeno
+/datum/xeno_strain/resin_whisperer/apply_strain(mob/living/carbon/xenomorph/hivelord/hivelord)
hivelord.plasmapool_modifier = 0.8 // -20% plasma pool
hivelord.extra_build_dist = 12 // 1 + 12 = 13 tile build range
hivelord.can_stack_builds = TRUE
-
- hivelord.client.change_view(10, src)
-
- hivelord.mutation_type = HIVELORD_RESIN_WHISPERER
- mutator_update_actions(hivelord)
- mutator_set.recalculate_actions(description, flavor_description)
hivelord.recalculate_plasma()
+ hivelord.client?.change_view(10, src)
+
hivelord.set_resin_build_order(GLOB.resin_build_order_hivelord_whisperer)
for(var/datum/action/xeno_action/action in hivelord.actions)
// Also update the choose_resin icon since it resets
@@ -68,12 +57,9 @@
action_type = XENO_ACTION_CLICK
/datum/action/xeno_action/activable/secrete_resin/remote/use_ability(atom/target_atom, mods)
- var/mob/living/carbon/xenomorph/xeno_owner = owner
- if(xeno_owner.mutation_type == HIVELORD_RESIN_WHISPERER)
- var/mob/living/carbon/xenomorph/hivelord/hivelord_mob = owner
- if(!hivelord_mob.on_weeds()) // There is a chance that queen can't place down buildings in ovi build view so we place the rein whisperer check here.
- to_chat(owner, SPAN_XENONOTICE("We must be standing on weeds to establish a connection to the resin."))
- return
+ if(!can_remote_build())
+ to_chat(owner, SPAN_XENONOTICE("We must be standing on weeds to establish a connection to the resin."))
+ return
if(!action_cooldown_check())
return
@@ -115,6 +101,12 @@
playsound(target_turf, "alien_resin_build", 25)
return TRUE
+// By default, the xeno must be on a weed tile in order to build from a distance.
+/datum/action/xeno_action/activable/secrete_resin/remote/proc/can_remote_build()
+ if(!locate(/obj/effect/alien/weeds) in get_turf(owner))
+ return FALSE
+ return TRUE
+
/datum/action/xeno_action/verb/verb_coerce_resin()
set category = "Alien"
set name = "Coerce Resin"
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm
similarity index 67%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm
index 72214d06332e..5a0bc5073ee3 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm
@@ -1,40 +1,27 @@
-
-/datum/xeno_mutator/Vampire
- name = "STRAIN: Lurker - Vampire"
+/datum/xeno_strain/vampire
+ name = LURKER_VAMPIRE
description = "You lose all of your abilities and you forefeit a chunk of your health and damage in exchange for a large amount of armor, a little bit of movement speed, increased attack speed, and brand new abilities that make you an assassin. Rush on your opponent to disorient them and Flurry to unleash a forward cleave that can hit and slow three talls and heal you for every tall you hit. Use your special AoE Tail Jab to knock talls away, doing more damage with direct hits and even more damage and a stun if they smack into walls. Finally, execute unconscious talls with a headbite that bypasses armor and heals you for a grand amount of health."
flavor_description = "Your thirst for tallhost blood surpasses even mine, child. Show no mercy! Slaughter them all!"
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_LURKER)
- mutator_actions_to_remove = list(
+ icon_state_prefix = "Vampire"
+
+ actions_to_remove = list(
/datum/action/xeno_action/onclick/lurker_invisibility,
/datum/action/xeno_action/onclick/lurker_assassinate,
/datum/action/xeno_action/activable/pounce/lurker,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/activable/pounce/rush,
/datum/action/xeno_action/activable/flurry,
/datum/action/xeno_action/activable/tail_jab,
/datum/action/xeno_action/activable/headbite,
)
- keystone = TRUE
-
-/datum/xeno_mutator/Vampire/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == FALSE)
- return
-
- var/mob/living/carbon/xenomorph/lurker/lurker = mutator_set.xeno
+/datum/xeno_strain/vampire/apply_strain(mob/living/carbon/xenomorph/lurker/lurker)
lurker.plasmapool_modifier = 0
lurker.health_modifier -= XENO_HEALTH_MOD_MED
lurker.speed_modifier += XENO_SPEED_FASTMOD_TIER_1
lurker.armor_modifier += XENO_ARMOR_MOD_LARGE
- lurker.melee_damage_lower = XENO_DAMAGE_TIER_3
- lurker.melee_damage_upper = XENO_DAMAGE_TIER_3
+ lurker.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL
lurker.attack_speed_modifier -= 2
- mutator_update_actions(lurker)
- mutator_set.recalculate_actions(description, flavor_description)
lurker.recalculate_everything()
- lurker.mutation_type = LURKER_VAMPIRE
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/dancer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/dancer.dm
similarity index 68%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/dancer.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/dancer.dm
index a21f549ea8cd..f9a5dbedb614 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/dancer.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/dancer.dm
@@ -1,44 +1,31 @@
-/datum/xeno_mutator/praetorian_dancer
+/datum/xeno_strain/dancer
// My name is Cuban Pete, I'm the King of the Rumba Beat
- name = "STRAIN: Praetorian - Dancer"
+ name = PRAETORIAN_DANCER
description = "You lose all of your acid-based abilities and a small amount of your armor in exchange for increased movement speed, evasion, and unparalleled agility that gives you an ability to move even more quickly, dodge bullets, and phase through tallhosts. By slashing tallhosts, you temporarily increase your movement speed and you also you apply a tag that changes how your two new tail abilities function. By tagging hosts, you will make Impale hit twice instead of once and make Tail Trip knock hosts down instead of stunning them."
flavor_description = "Demonstrate to the talls what 'there is beauty in death' truly symbolizes, then dance upon their graves!"
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_PRAETORIAN) // Only bae
- mutator_actions_to_remove = list(
+ icon_state_prefix = "Dancer"
+
+ actions_to_remove = list(
/datum/action/xeno_action/activable/xeno_spit,
/datum/action/xeno_action/activable/pounce/base_prae_dash,
/datum/action/xeno_action/activable/prae_acid_ball,
/datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/activable/prae_impale,
/datum/action/xeno_action/onclick/prae_dodge,
/datum/action/xeno_action/activable/prae_tail_trip,
)
- behavior_delegate_type = /datum/behavior_delegate/praetorian_dancer
- keystone = TRUE
-
-/datum/xeno_mutator/praetorian_dancer/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == 0)
- return
-
- var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno
- praetorian.armor_modifier -= XENO_ARMOR_MOD_VERY_SMALL
- praetorian.speed_modifier += XENO_SPEED_FASTMOD_TIER_5
- praetorian.plasma_types = list(PLASMA_CATECHOLAMINE)
- praetorian.claw_type = CLAW_TYPE_SHARP
- mutator_update_actions(praetorian)
- mutator_set.recalculate_actions(description, flavor_description)
+ behavior_delegate_type = /datum/behavior_delegate/praetorian_dancer
- praetorian.recalculate_everything()
+/datum/xeno_strain/dancer/apply_strain(mob/living/carbon/xenomorph/praetorian/prae)
+ prae.armor_modifier -= XENO_ARMOR_MOD_VERY_SMALL
+ prae.speed_modifier += XENO_SPEED_FASTMOD_TIER_5
+ prae.plasma_types = list(PLASMA_CATECHOLAMINE)
+ prae.claw_type = CLAW_TYPE_SHARP
- apply_behavior_holder(praetorian)
- praetorian.mutation_icon_state = PRAETORIAN_DANCER
- praetorian.mutation_type = PRAETORIAN_DANCER
+ prae.recalculate_everything()
/datum/behavior_delegate/praetorian_dancer
name = "Praetorian Dancer Behavior Delegate"
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm
similarity index 67%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm
index 4beaedf8d6a8..91ea59661462 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm
@@ -1,12 +1,11 @@
-/datum/xeno_mutator/praetorian_oppressor
+/datum/xeno_strain/oppressor
// Dread it, run from it, destiny still arrives... or should I say, I do
- name = "STRAIN: Praetorian - Oppressor"
+ name = PRAETORIAN_OPPRESSOR
description = "You abandon all of your acid-based abilities, your dash, some speed, and a bit of your slash damage for some resistance against small explosives, slashes that deal extra damage to prone targets, and a powerful hook ability that pulls up to three talls towards you, slows them, and has varying effects depending on how many talls you pull. You also gain a powerful punch that reduces your other abilities' cooldowns, pierces through armor, and does double damage in addition to rooting slowed targets. You can also knock talls back and slow them with your new Tail Lash and quickly grab a tall, slow it, and pull it towards you with your unique Tail Stab."
flavor_description = "Dread it. Run from it. The Hive arrives all the same, or, more accurately, you do."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_PRAETORIAN)
- mutator_actions_to_remove = list(
+ icon_state_prefix = "Oppressor"
+
+ actions_to_remove = list(
/datum/action/xeno_action/activable/tail_stab,
/datum/action/xeno_action/activable/xeno_spit,
/datum/action/xeno_action/activable/pounce/base_prae_dash,
@@ -14,38 +13,24 @@
/datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid,
/datum/action/xeno_action/activable/corrosive_acid,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/activable/tail_stab/tail_seize,
/datum/action/xeno_action/activable/prae_abduct,
/datum/action/xeno_action/activable/oppressor_punch,
/datum/action/xeno_action/activable/tail_lash,
)
- behavior_delegate_type = /datum/behavior_delegate/oppressor_praetorian
- keystone = TRUE
-
-/datum/xeno_mutator/praetorian_oppressor/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == 0)
- return
-
- var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno
- praetorian.damage_modifier -= XENO_DAMAGE_MOD_SMALL
- praetorian.explosivearmor_modifier += XENO_EXPOSIVEARMOR_MOD_SMALL
- praetorian.small_explosives_stun = FALSE
- praetorian.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5
- praetorian.plasma_types = list(PLASMA_NEUROTOXIN, PLASMA_CHITIN)
- praetorian.claw_type = CLAW_TYPE_SHARP
-
- mutator_update_actions(praetorian)
-
- mutator_set.recalculate_actions(description, flavor_description)
+ behavior_delegate_type = /datum/behavior_delegate/oppressor_praetorian
- apply_behavior_holder(praetorian)
+/datum/xeno_strain/oppressor/apply_strain(mob/living/carbon/xenomorph/praetorian/prae)
+ prae.damage_modifier -= XENO_DAMAGE_MOD_SMALL
+ prae.explosivearmor_modifier += XENO_EXPOSIVEARMOR_MOD_SMALL
+ prae.small_explosives_stun = FALSE
+ prae.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5
+ prae.plasma_types = list(PLASMA_NEUROTOXIN, PLASMA_CHITIN)
+ prae.claw_type = CLAW_TYPE_SHARP
- praetorian.recalculate_everything()
- praetorian.mutation_icon_state = PRAETORIAN_OPPRESSOR
- praetorian.mutation_type = PRAETORIAN_OPPRESSOR
+ prae.recalculate_everything()
/datum/behavior_delegate/oppressor_praetorian
name = "Oppressor Praetorian Behavior Delegate"
@@ -60,4 +45,3 @@
target_carbon.apply_armoured_damage(get_xeno_damage_slash(target_carbon, tearing_damage), ARMOR_MELEE, BRUTE, bound_xeno.zone_selected ? bound_xeno.zone_selected : "chest")
target_carbon.visible_message(SPAN_DANGER("[bound_xeno] tears into [target_carbon]!"))
playsound(bound_xeno, 'sound/weapons/alien_tail_attack.ogg', 25, TRUE)
-
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/vanguard.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/vanguard.dm
similarity index 80%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/vanguard.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/vanguard.dm
index d5ca8c4d6aad..2a344523e974 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/vanguard.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/vanguard.dm
@@ -1,43 +1,31 @@
-/datum/xeno_mutator/vanguard
- name = "STRAIN: Praetorian - Vanguard"
+/datum/xeno_strain/vanguard
+ name = PRAETORIAN_VANGUARD
description = "You forfeit all of your acid-based abilities and some health for some extra speed and a rechargable shield that can block one attack. Use your Pierce from up to three paces away to stab through talls, while stabbing through several will completely recharge your shield. Use your charge to plow through enemies and use it again to unleash a powerful AoE slash that reaches up to three paces. You also have a Cleave ability, amplified by your shield, which you can toggle to either immobilize or fling a target away."
flavor_description = "They are my bulwark against the tallhosts. They are my Vanguard and they shall know no fear."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_PRAETORIAN) //Only praetorian.
- mutator_actions_to_remove = list(
+ icon_state_prefix = "Vanguard"
+
+ actions_to_remove = list(
/datum/action/xeno_action/activable/xeno_spit,
/datum/action/xeno_action/activable/pounce/base_prae_dash,
/datum/action/xeno_action/activable/prae_acid_ball,
/datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid,
/datum/action/xeno_action/activable/corrosive_acid,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/activable/pierce,
/datum/action/xeno_action/activable/pounce/prae_dash,
/datum/action/xeno_action/activable/cleave,
/datum/action/xeno_action/onclick/toggle_cleave,
)
- behavior_delegate_type = /datum/behavior_delegate/praetorian_vanguard
- keystone = TRUE
-
-/datum/xeno_mutator/vanguard/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == 0)
- return
- var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno
- praetorian.speed_modifier += XENO_SPEED_FASTMOD_TIER_3
- praetorian.health_modifier -= XENO_HEALTH_MOD_MED
- praetorian.claw_type = CLAW_TYPE_SHARP
- mutator_update_actions(praetorian)
- mutator_set.recalculate_actions(description, flavor_description)
- praetorian.recalculate_everything()
+ behavior_delegate_type = /datum/behavior_delegate/praetorian_vanguard
- praetorian.mutation_icon_state = PRAETORIAN_VANGUARD
- praetorian.mutation_type = PRAETORIAN_VANGUARD
+/datum/xeno_strain/vanguard/apply_strain(mob/living/carbon/xenomorph/praetorian/prae)
+ prae.speed_modifier += XENO_SPEED_FASTMOD_TIER_3
+ prae.health_modifier -= XENO_HEALTH_MOD_MED
+ prae.claw_type = CLAW_TYPE_SHARP
- apply_behavior_holder(praetorian)
+ prae.recalculate_everything()
/datum/behavior_delegate/praetorian_vanguard
name = "Praetorian Vanguard Behavior Delegate"
@@ -103,8 +91,3 @@
var/datum/action/xeno_action/activable/cleave/caction = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/activable/cleave)
if (istype(caction))
caction.buffed = TRUE
-
-
-
-
-
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/warden.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/warden.dm
similarity index 79%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/warden.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/warden.dm
index 4328058c8a8e..313778baf038 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/warden.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/warden.dm
@@ -1,45 +1,35 @@
-/datum/xeno_mutator/praetorian_warden
+/datum/xeno_strain/warden
// i mean so basically im braum
- name = "STRAIN: Praetorian - Warden"
+ name = PRAETORIAN_WARDEN
description = "You trade your acid ball, acid spray, dash, and a small bit of your slash damage and speed to become an effective medic. You gain the ability to emit strong pheromones, an ability that retrieves endangered, knocked-down or sitting allies and pulls them to your location, and you gain an internal hitpoint pool that fills with every slash against your enemies, which can be spent to aid your allies and yourself by healing them or curing their ailments."
flavor_description = "Only in death does your sisters' service to the Queen end. They will be untouched by plague or disease; no sickness will blight them."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_PRAETORIAN) // Only bae
- mutator_actions_to_remove = list(
+ icon_state_prefix = "Warden"
+
+ actions_to_remove = list(
+ /datum/action/xeno_action/activable/xeno_spit,
/datum/action/xeno_action/activable/pounce/base_prae_dash,
/datum/action/xeno_action/activable/prae_acid_ball,
/datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid,
+ /datum/action/xeno_action/onclick/tacmap,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
+ /datum/action/xeno_action/onclick/emit_pheromones,
+ /datum/action/xeno_action/activable/xeno_spit,
/datum/action/xeno_action/activable/spray_acid/prae_warden,
/datum/action/xeno_action/activable/warden_heal,
/datum/action/xeno_action/activable/prae_retrieve,
/datum/action/xeno_action/onclick/prae_switch_heal_type,
- /datum/action/xeno_action/onclick/emit_pheromones,
+ /datum/action/xeno_action/onclick/tacmap,
)
- behavior_delegate_type = /datum/behavior_delegate/praetorian_warden
- keystone = TRUE
-
-/datum/xeno_mutator/praetorian_warden/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == 0)
- return
- var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno
+ behavior_delegate_type = /datum/behavior_delegate/praetorian_warden
+/datum/xeno_strain/warden/apply_strain(mob/living/carbon/xenomorph/praetorian/prae)
// Make a 'halftank'
- praetorian.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5
- praetorian.damage_modifier -= XENO_DAMAGE_MOD_SMALL
-
- mutator_update_actions(praetorian)
- mutator_set.recalculate_actions(description, flavor_description)
+ prae.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5
+ prae.damage_modifier -= XENO_DAMAGE_MOD_SMALL
- praetorian.recalculate_everything()
-
- apply_behavior_holder(praetorian)
- praetorian.mutation_icon_state = PRAETORIAN_WARDEN
- praetorian.mutation_type = PRAETORIAN_WARDEN
+ prae.recalculate_everything()
/datum/behavior_delegate/praetorian_warden
name = "Praetorian Warden Behavior Delegate"
@@ -49,12 +39,15 @@
var/internal_hitpoints_per_attack = 50
var/internal_hp_per_life = 5
+
// State
var/internal_hitpoints = 0
+ var/transferred_healing = 0
/datum/behavior_delegate/praetorian_warden/append_to_stat()
. = list()
. += "Energy Reserves: [internal_hitpoints]/[internal_hitpoints_max]"
+ . += "Healing Done: [transferred_healing]"
/datum/behavior_delegate/praetorian_warden/on_life()
internal_hitpoints = min(internal_hitpoints_max, internal_hitpoints + internal_hp_per_life)
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/berserker.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/berserker.dm
similarity index 90%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/berserker.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/berserker.dm
index 7881c9aa75f1..c12324aa5b2a 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/berserker.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/berserker.dm
@@ -1,39 +1,28 @@
-/datum/xeno_mutator/berserker
- name = "STRAIN: Ravager - Berserker"
+/datum/xeno_strain/berserker
+ name = RAVAGER_BERSERKER
description = "You lose your empower, charge, and scissor cut, decrease your health, and sacrifice a bit of your influence under frenzy pheromones to increase your movement speed, slightly increase your armor, and gain a new set of abilities that make you a terrifying melee monster. By slashing, you heal yourself and gain a stack of rage that increases your armor, movement speed, attack speed, and your heals per slash, to a maximum of six rage. Use your new Appehend ability to increase your movement speed and apply a slow on the next target you slash and use your Clothesline ability to fling your target to heal yourself, even more-so if you have a rage stack that will be used up. Finally, use your Eviscerate to unleash a devastating windmill attack that heals you for every host you hit after an immobilizing wind-up."
flavor_description = "They shall be my finest warriors. They will rend and tear, crush and butcher, and maim and rage until every tallhost falls."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_RAVAGER)
- mutator_actions_to_remove = list(
+ icon_state_prefix = "Berserker"
+
+ actions_to_remove = list(
/datum/action/xeno_action/onclick/empower,
/datum/action/xeno_action/activable/pounce/charge,
/datum/action/xeno_action/activable/scissor_cut,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/onclick/apprehend,
/datum/action/xeno_action/activable/clothesline,
/datum/action/xeno_action/activable/eviscerate,
)
- keystone = TRUE
- behavior_delegate_type = /datum/behavior_delegate/ravager_berserker
-/datum/xeno_mutator/berserker/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == 0)
- return
+ behavior_delegate_type = /datum/behavior_delegate/ravager_berserker
- var/mob/living/carbon/xenomorph/ravager/ravager = mutator_set.xeno
- ravager.mutation_type = RAVAGER_BERSERKER
+/datum/xeno_strain/berserker/apply_strain(mob/living/carbon/xenomorph/ravager/ravager)
ravager.plasma_max = 0
ravager.health_modifier -= XENO_HEALTH_MOD_MED
ravager.armor_modifier += XENO_ARMOR_MOD_VERY_SMALL
ravager.speed_modifier += XENO_SPEED_FASTMOD_TIER_3
ravager.received_phero_caps["frenzy"] = 2.9 // Moderate
- mutator_update_actions(ravager)
- mutator_set.recalculate_actions(description, flavor_description)
-
- apply_behavior_holder(ravager)
ravager.recalculate_everything()
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm
similarity index 87%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm
index 913883549fba..e1d6dc583416 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm
@@ -1,41 +1,28 @@
-/datum/xeno_mutator/hedgehog
- name = "STRAIN: Ravager - Hedgehog"
+/datum/xeno_strain/hedgehog
+ name = RAVAGER_HEDGEHOG
description = "You lose your empower, charge, scissor cut and some slash damage, for a bit more explosive resistance, immunity to small explosions, and you gain several new abilities that allow you to become a spiky tank. You build up shards internally over time and also when taking damage that increase your armor's resilience. You can use these shards to power three new abilities: Spike Shield, which gives you a temporary shield that spits bone shards around you when damaged, Fire Spikes, which launches spikes at your target that slows them and does extra damage if they move, and finally, Spike Shed, which launches spikes all around yourself and gives you a temporary speed boost as an escape plan at the cost of all your stored shards and being unable to gain shards for thirty seconds."
flavor_description = "They will be of iron will and steely muscle. In great armor shall they be clad, and with the mightiest spikes will they be armed."
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_RAVAGER) // Only Ravager.
- mutator_actions_to_remove = list(
+ icon_state_prefix = "Hedgehog"
+
+ actions_to_remove = list(
/datum/action/xeno_action/onclick/empower,
/datum/action/xeno_action/activable/pounce/charge,
/datum/action/xeno_action/activable/scissor_cut,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/onclick/spike_shield,
/datum/action/xeno_action/activable/rav_spikes,
/datum/action/xeno_action/onclick/spike_shed,
)
- behavior_delegate_type = /datum/behavior_delegate/ravager_hedgehog
- keystone = TRUE
-
-/datum/xeno_mutator/hedgehog/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == 0)
- return
- var/mob/living/carbon/xenomorph/ravager/ravager = mutator_set.xeno
+ behavior_delegate_type = /datum/behavior_delegate/ravager_hedgehog
- ravager.mutation_type = RAVAGER_HEDGEHOG
+/datum/xeno_strain/hedgehog/apply_strain(mob/living/carbon/xenomorph/ravager/ravager)
ravager.plasma_max = 0
ravager.small_explosives_stun = FALSE
ravager.explosivearmor_modifier += XENO_EXPOSIVEARMOR_MOD_SMALL
ravager.damage_modifier -= XENO_DAMAGE_MOD_SMALL
- apply_behavior_holder(ravager)
-
- mutator_update_actions(ravager)
- mutator_set.recalculate_actions(description, flavor_description)
-
ravager.recalculate_everything()
/datum/behavior_delegate/ravager_hedgehog
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/runner/acid.dm
similarity index 90%
rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm
rename to code/modules/mob/living/carbon/xenomorph/strains/castes/runner/acid.dm
index 490e5ca36cba..7b9bafadeb7b 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm
+++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/runner/acid.dm
@@ -1,37 +1,27 @@
-/datum/xeno_mutator/acider
- name = "STRAIN: Runner - Acider"
+/datum/xeno_strain/acider
+ name = RUNNER_ACIDER
description = "At the cost of a little bit of your speed and all of your current abilities, you gain a considerable amount of health, some armor, and a new organ that fills with volatile acid over time. Your Tail Stab and slashes apply acid to living lifeforms that slowly burns them, and slashes against targets with acid stacks fill your acid glands. You also gain Corrosive Acid equivalent to that of a boiler that you can deploy more quickly than any other caste, at the cost of a chunk of your acid reserves with each use. Finally, after a twenty second windup, you can force your body to explode, covering everything near you with acid. The more acid you have stored, the more devastating the explosion will be, but during those twenty seconds before detonation you are slowed and give off several warning signals which give talls an opportunity to end you before you can detonate. If you successfully explode, you will reincarnate as a larva again!"
flavor_description = "Burn their walls, maim their faces! Your life, for The Hive!"
- cost = MUTATOR_COST_EXPENSIVE
- individual_only = TRUE
- caste_whitelist = list(XENO_CASTE_RUNNER)
- keystone = TRUE
- behavior_delegate_type = /datum/behavior_delegate/runner_acider
- mutator_actions_to_remove = list(
+ icon_state_prefix = "Acider"
+
+ actions_to_remove = list(
/datum/action/xeno_action/activable/pounce/runner,
/datum/action/xeno_action/activable/runner_skillshot,
/datum/action/xeno_action/onclick/toggle_long_range/runner,
)
- mutator_actions_to_add = list(
+ actions_to_add = list(
/datum/action/xeno_action/activable/acider_acid,
/datum/action/xeno_action/activable/acider_for_the_hive,
)
-/datum/xeno_mutator/acider/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
- . = ..()
- if (. == 0)
- return
+ behavior_delegate_type = /datum/behavior_delegate/runner_acider
- var/mob/living/carbon/xenomorph/runner/runner = mutator_set.xeno
- runner.mutation_icon_state = RUNNER_ACIDER
- runner.mutation_type = RUNNER_ACIDER
+/datum/xeno_strain/acider/apply_strain(mob/living/carbon/xenomorph/runner/runner)
runner.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5
runner.armor_modifier += XENO_ARMOR_MOD_MED
runner.health_modifier += XENO_HEALTH_MOD_ACIDER
- apply_behavior_holder(runner)
- mutator_update_actions(runner)
+
runner.recalculate_everything()
- mutator_set.recalculate_actions(description, flavor_description)
/datum/behavior_delegate/runner_acider
var/acid_amount = 0
diff --git a/code/modules/mob/living/carbon/xenomorph/strains/xeno_strain.dm b/code/modules/mob/living/carbon/xenomorph/strains/xeno_strain.dm
new file mode 100644
index 000000000000..18f1f892ddfa
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/strains/xeno_strain.dm
@@ -0,0 +1,131 @@
+/datum/xeno_strain
+ /// The name of the strain. Should be short but informative.
+ var/name
+ /// Description to be displayed on purchase.
+ var/description
+ /// (OPTIONAL) Flavor text to be shown on purchase. Semi-OOC
+ var/flavor_description
+ /// (OPTIONAL) A custom icon state prefix for xenos who have taken the strain.
+ var/icon_state_prefix
+
+ /// A list of action typepaths which should be removed when a xeno takes the strain.
+ var/list/actions_to_remove
+ /// A list of action typepaths which should be added when a xeno takes the strain.
+ var/list/actions_to_add
+
+ /// Typepath of the [/datum/behavior_delegate] to add.
+ var/behavior_delegate_type
+
+/**
+ * Add this strain to `xeno`, replacing their actions and behavior holder.
+ *
+ * Returns a bool indicating if the strain was successfully applied.
+ * **Override [/datum/xeno_strain/proc/apply_strain], not this! (Unless you know what you're doing.)**
+ */
+/datum/xeno_strain/proc/_add_to_xeno(mob/living/carbon/xenomorph/xeno)
+ SHOULD_NOT_OVERRIDE(TRUE)
+
+ xeno.strain = src
+
+ // Update the xeno's actions.
+ for(var/action_path in actions_to_remove)
+ remove_action(xeno, action_path)
+ for(var/action_path in actions_to_add)
+ give_action(xeno, action_path)
+
+ // Update the xeno's behavior delegate.
+ if(behavior_delegate_type)
+ if(xeno.behavior_delegate)
+ qdel(xeno.behavior_delegate)
+ xeno.behavior_delegate = new behavior_delegate_type()
+ xeno.behavior_delegate.bound_xeno = xeno
+ xeno.behavior_delegate.add_to_xeno()
+
+ apply_strain(xeno)
+
+ xeno.update_icons()
+ xeno.hive.hive_ui.update_xeno_info()
+
+ // Give them all of the info about the strain.
+ to_chat(xeno, SPAN_XENOANNOUNCE(description))
+ if(flavor_description)
+ to_chat(xeno, SPAN_XENOLEADER(flavor_description))
+ return TRUE
+
+/**
+ * Adds any special modifiers/changes from this strain to `xeno`.
+ *
+ * Called when the strain is first added to the player.
+ */
+/datum/xeno_strain/proc/apply_strain(mob/living/carbon/xenomorph/xeno)
+ // Override with custom behaviour.
+ return
+
+
+/mob/living/carbon/xenomorph/verb/purchase_strain()
+ set name = "Purchase Strain"
+ set desc = "Purchase a strain for yourself"
+ set category = "Alien"
+
+ // Firstly, make sure the xeno is actually able to take a strain.
+ if(!can_take_strain())
+ return
+
+ // Make an assoc list of {name: typepath} from the strains available to the xeno's caste.
+ var/list/strain_list = list()
+ for(var/datum/xeno_strain/strain_type as anything in caste.available_strains)
+ strain_list[initial(strain_type.name)] = strain_type
+
+ // Ask the user which strain they want.
+ var/strain_choice = tgui_input_list(usr, "Which strain would you like to take?", "Choose Strain", strain_list, theme = "hive_status")
+ if(!strain_choice)
+ return
+ var/datum/xeno_strain/chosen_strain = strain_list[strain_choice]
+
+ // Check again after the user picks one, in case anything changed.
+ if(!can_take_strain())
+ return
+ // Show the user the strain's description, and double check that they want it.
+ if(alert(usr, "[initial(chosen_strain.description)]\n\nConfirm mutation?", "Choose Strain", "Yes", "No") != "Yes")
+ return
+ // One more time after they confirm.
+ if(!can_take_strain())
+ return
+
+ // Create the strain datum and apply it to the xeno.
+ var/datum/xeno_strain/strain_instance = new chosen_strain()
+ if(strain_instance._add_to_xeno(src))
+ xeno_jitter(1.5 SECONDS)
+ // If it applied successfully, add it to the logs.
+ log_strain("[name] purchased strain '[strain_instance.type]'")
+
+/// Is this xeno currently able to take a strain?
+/mob/living/carbon/xenomorph/proc/can_take_strain()
+ if(!length(caste.available_strains) || !check_state(TRUE))
+ return FALSE
+
+ if(strain)
+ to_chat(src, SPAN_WARNING("We have already chosen a strain."))
+ return FALSE
+
+ if(is_ventcrawling)
+ to_chat(src, SPAN_WARNING("This place is too constraining to take a strain."))
+ return FALSE
+
+ if(!isturf(loc))
+ to_chat(src, SPAN_WARNING("We can't take a strain here."))
+ return FALSE
+
+ if(handcuffed || legcuffed)
+ to_chat(src, SPAN_WARNING("The restraints are too restricting to allow us to take a strain."))
+ return FALSE
+
+ if(health < maxHealth)
+ to_chat(src, SPAN_WARNING("We must be at full health to take a strain."))
+ return FALSE
+
+ if(agility || fortify || crest_defense || stealth)
+ to_chat(src, SPAN_WARNING("We cannot take a strain while in this stance."))
+ return FALSE
+
+ return TRUE
diff --git a/code/modules/mob/living/carbon/xenomorph/update_icons.dm b/code/modules/mob/living/carbon/xenomorph/update_icons.dm
index 55995ec0b264..571f261ab981 100644
--- a/code/modules/mob/living/carbon/xenomorph/update_icons.dm
+++ b/code/modules/mob/living/carbon/xenomorph/update_icons.dm
@@ -41,7 +41,7 @@
Q.queen_standing_icon = icon_xeno
Q.queen_ovipositor_icon = 'icons/mob/xenos/ovipositor.dmi'
- var/mutation_caste_state = "[mutation_type] [caste.caste_type]"
+ var/mutation_caste_state = "[get_strain_icon()] [caste.caste_type]"
if(!walking_state_cache[mutation_caste_state])
var/cache_walking_state = FALSE
for(var/state in icon_states(icon))
@@ -64,7 +64,7 @@
if(behavior_delegate?.on_update_icons())
return
- var/mutation_caste_state = "[mutation_icon_state || mutation_type] [caste.caste_type]"
+ var/mutation_caste_state = "[get_strain_icon()] [caste.caste_type]"
if(stat == DEAD)
icon_state = "[mutation_caste_state] Dead"
if(!(icon_state in icon_states(icon_xeno)))
diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm b/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm
index 7324a3af6892..2e4b968d5a59 100644
--- a/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm
@@ -34,6 +34,23 @@
return 100
return round(armor_integrity * 100 / armor_integrity_max)
+/**
+ * Returns the name of the xeno's strain, if it has one.
+ *
+ * If that can't be found, returns "Normal".
+ */
+/mob/living/carbon/xenomorph/proc/get_strain_name()
+ return strain?.name || "Normal"
+
+/**
+ * Returns the custom icon state from the xeno's strain, if it has one.
+ *
+ * If that can't be found, returns "Normal"
+ */
+/mob/living/carbon/xenomorph/proc/get_strain_icon()
+ return strain?.icon_state_prefix || "Normal"
+ // TODO: Go through xeno/xenoid sprites and remove "Normal", so that this isn't needed.
+
//These don't do much currently. Or anything? Only around for legacy code.
/mob/living/carbon/xenomorph/is_mob_restrained()
return 0
@@ -58,4 +75,4 @@
return caste.fire_intensity_resistance
/mob/living/carbon/xenomorph/alter_ghost(mob/dead/observer/ghost)
- ghost.icon_state = "[mutation_type] [caste.caste_type] Running"
+ ghost.icon_state = "[get_strain_icon()] [caste.caste_type] Running"
diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm b/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm
index dd722f62df63..271b06973a6b 100644
--- a/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm
+++ b/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm
@@ -1,18 +1,18 @@
//// Holds Xeno verbs that don't belong anywhere else.
/mob/living/carbon/xenomorph/verb/hive_status()
set name = "Hive Status"
- set desc = "Check the status of your current hive."
+ set desc = "Check the status of our current hive."
set category = "Alien"
if(!hive)
return
if((!hive.living_xeno_queen || SSmapping.configs[GROUND_MAP].map_name == MAP_WHISKEY_OUTPOST) && !hive.allow_no_queen_actions) //No Hive status on WO
- to_chat(src, SPAN_WARNING("There is no Queen. You are alone."))
+ to_chat(src, SPAN_WARNING("There is no Queen. We are alone."))
return
if(interference)
- to_chat(src, SPAN_WARNING("A headhunter temporarily cut off your psychic connection!"))
+ to_chat(src, SPAN_WARNING("A headhunter temporarily cut off our psychic connection!"))
return
hive.hive_ui.open_hive_status(src)
diff --git a/code/modules/mob/living/living_health_procs.dm b/code/modules/mob/living/living_health_procs.dm
index f81baca85975..dd11eb8c7faf 100644
--- a/code/modules/mob/living/living_health_procs.dm
+++ b/code/modules/mob/living/living_health_procs.dm
@@ -496,7 +496,7 @@
src.updatehealth()
// damage MANY limbs, in random order
-/mob/living/proc/take_overall_damage(brute, burn, used_weapon = null)
+/mob/living/proc/take_overall_damage(brute, burn, used_weapon = null, limb_damage_chance = 80)
if(status_flags & GODMODE) return 0 //godmode
apply_damage(brute, BRUTE)
apply_damage(burn, BURN)
diff --git a/code/modules/mob/living/living_healthscan.dm b/code/modules/mob/living/living_healthscan.dm
index ebdf852afa68..c06dfc9a7166 100644
--- a/code/modules/mob/living/living_healthscan.dm
+++ b/code/modules/mob/living/living_healthscan.dm
@@ -178,7 +178,7 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant))
bleeding_check = TRUE
break
- if((!limb.brute_dam && !limb.burn_dam && !(limb.status & LIMB_DESTROYED)) && !bleeding_check && !internal_bleeding_check && !(implant && detail_level >= DETAIL_LEVEL_BODYSCAN ) && !(limb.status & LIMB_UNCALIBRATED_PROSTHETIC) && !(limb.status & LIMB_BROKEN) && !(limb.status & LIMB_SPLINTED) && !(limb.status & LIMB_SPLINTED_INDESTRUCTIBLE))
+ if((!limb.brute_dam && !limb.burn_dam && !(limb.status & LIMB_DESTROYED)) && !bleeding_check && !internal_bleeding_check && !(implant && detail_level >= DETAIL_LEVEL_BODYSCAN ) && !(limb.status & LIMB_UNCALIBRATED_PROSTHETIC) && !(limb.status & LIMB_BROKEN) && !(limb.status & LIMB_SPLINTED) && !(limb.status & LIMB_SPLINTED_INDESTRUCTIBLE) && !(limb.get_incision_depth()))
continue
var/list/core_body_parts = list("head", "chest", "groin")
var/list/current_list = list(
@@ -190,7 +190,6 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant))
"missing" = (limb.status & LIMB_DESTROYED),
"limb_status" = null,
"bleeding" = bleeding_check,
- "open_incision" = limb.get_incision_depth(),
"implant" = implant,
"internal_bleeding" = internal_bleeding_check
)
@@ -248,6 +247,24 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant))
if(limb_type)
current_list["limb_type"] = limb_type
+ //checking for open incisions, but since eyes and mouths incisions are "head incisions" but not "head surgeries" gotta do some snowflake
+ if(limb.name == "head")
+ if(human_target_mob.active_surgeries["head"])
+ current_list["open_incision"] = TRUE
+
+ var/zone
+ if(human_target_mob.active_surgeries["eyes"])
+ zone = "eyes"
+ if(human_target_mob.active_surgeries["mouth"])
+ if(zone)
+ zone = "eyes and mouth"
+ else
+ zone = "mouth"
+ current_list["open_zone_incision"] = capitalize(zone)
+
+ else
+ current_list["open_incision"] = limb.get_incision_depth()
+
limb_data_lists["[limb.name]"] = current_list
data["limb_data_lists"] = limb_data_lists
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index b47860806e5c..02c1baa48c28 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -145,7 +145,7 @@
H = GLOB.huds[MOB_HUD_SECURITY_ADVANCED]
HUD_nbr = 2
if("Squad HUD")
- H = GLOB.huds[MOB_HUD_FACTION_USCM]
+ H = GLOB.huds[MOB_HUD_FACTION_MARINE]
HUD_nbr = 3
else
return
diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm
index 775e69dc0b92..38157a067367 100644
--- a/code/modules/mob/login.dm
+++ b/code/modules/mob/login.dm
@@ -18,6 +18,8 @@
update_Login_details()
+ SEND_SIGNAL(src, COMSIG_MOB_LOGIN)
+
client.images = null
client.screen = null //remove hud items just in case
if(!hud_used)
@@ -58,6 +60,6 @@
client.init_verbs()
- SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MOB_LOGIN, src)
- SEND_SIGNAL(client, COMSIG_CLIENT_MOB_LOGIN, src)
- SEND_SIGNAL(src, COMSIG_MOB_LOGIN)
+ SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MOB_LOGGED_IN, src)
+ SEND_SIGNAL(client, COMSIG_CLIENT_MOB_LOGGED_IN, src)
+ SEND_SIGNAL(src, COMSIG_MOB_LOGGED_IN)
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index f8df788aa5fc..44286b5fabe0 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -16,9 +16,6 @@
var/atom/movable/screen/hands = null //robot
- var/adminhelp_marked = 0 // Prevents marking an Adminhelp more than once. Making this a client define will cause runtimes and break some Adminhelps
- var/adminhelp_marked_admin = "" // Ckey of last marking admin
-
/// a ckey that persists client logout / ghosting, replaced when a client inhabits the mob
var/persistent_ckey
@@ -28,7 +25,8 @@
I'll make some notes on where certain variable defines should probably go.
Changing this around would probably require a good look-over the pre-existing code.
*/
- var/list/observers //The list of people observing this mob.
+ /// The list of people observing this mob.
+ var/list/mob/dead/observer/observers
var/zone_selected = "chest"
var/use_me = 1 //Allows all mobs to use the me verb by default, will have to manually specify they cannot
@@ -429,4 +427,3 @@
return
src.regenerate_icons()
-
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index ce9e16e3747e..4d64307ad631 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -482,7 +482,9 @@ GLOBAL_LIST_INIT(limb_types_by_name, list(
// Medical
if(SKILL_MEDICAL)
if(skillcheck(src, SKILL_MEDICAL, SKILL_MEDICAL_MASTER))
- return DURATION_MULTIPLIER_TIER_3
+ return DURATION_MULTIPLIER_TIER_2
+ if(skillcheck(src, SKILL_MEDICAL, SKILL_MEDICAL_DOCTOR))
+ return DURATION_MULTIPLIER_TIER_1
// Surgeon
if(SKILL_SURGERY)
if(skillcheck(src, SKILL_SURGERY, SKILL_SURGERY_EXPERT))
diff --git a/code/modules/mob/mob_verbs.dm b/code/modules/mob/mob_verbs.dm
index 1ba8985d56bd..f12d00cc0988 100644
--- a/code/modules/mob/mob_verbs.dm
+++ b/code/modules/mob/mob_verbs.dm
@@ -50,34 +50,33 @@
to_chat(usr, SPAN_DANGER("This mob type cannot throw items."))
return
-/mob/proc/point_to(atom/A in view())
+/mob/proc/point_to(atom/target in view())
//set name = "Point To"
//set category = "Object"
- if(!isturf(src.loc) || !(A in view(src)))//target is no longer visible to us
- return 0
+ if(!isturf(src.loc) || !(target in view(src)))//target is no longer visible to us
+ return FALSE
- if(!A.mouse_opacity)//can't click it? can't point at it.
- return 0
+ if(!target.mouse_opacity)//can't click it? can't point at it.
+ return FALSE
if(is_mob_incapacitated() || (status_flags & FAKEDEATH)) //incapacitated, can't point
- return 0
+ return FALSE
- var/tile = get_turf(A)
- if (!tile)
- return 0
+ var/tile = get_turf(target)
+ if(!tile)
+ return FALSE
if(recently_pointed_to > world.time)
- return 0
-
- next_move = world.time + 2
-
- point_to_atom(A, tile)
- return 1
-
+ return FALSE
+ if(SEND_SIGNAL(src, COMSIG_MOB_TRY_POINT, target) & COMPONENT_OVERRIDE_POINT)
+ return FALSE
+ next_move = world.time + 2
+ point_to_atom(target, tile)
+ return TRUE
/mob/verb/memory()
set name = "Notes"
diff --git a/code/modules/nightmare/nmnodes/mapload.dm b/code/modules/nightmare/nmnodes/mapload.dm
index 4b9ae2a3014b..0687399a6612 100644
--- a/code/modules/nightmare/nmnodes/mapload.dm
+++ b/code/modules/nightmare/nmnodes/mapload.dm
@@ -94,7 +94,7 @@
. = ..()
if(!.) return
var/dir_path = context.get_file_path(filepath, "map")
- var/regex/matcher = new(@"^([0-9]+)([\.\+])([^_]+)(_.*)?\.dmm$", "i")
+ var/regex/matcher = new(@"^([0-9]+)([\.\+])(([^_]+)(_.*))?\.dmm$", "i")
var/list/dircontents = flist(dir_path)
for(var/filename in dircontents)
if(!matcher.Find(filename))
diff --git a/code/modules/nightmare/nmtasks/mapload.dm b/code/modules/nightmare/nmtasks/mapload.dm
index 1ace7cd2fbec..a49bbbabdde5 100644
--- a/code/modules/nightmare/nmtasks/mapload.dm
+++ b/code/modules/nightmare/nmtasks/mapload.dm
@@ -34,16 +34,13 @@
/datum/nmtask/mapload/proc/step_parse()
. = TRUE
if(!fexists(filepath))
- log_debug("Nightmare Mapload: File does not exist: [filepath]")
- return
+ CRASH("Nightmare Mapload: File does not exist: [filepath]")
if(!parsed)
parsed = new(file(filepath))
if(!parsed?.bounds)
- log_debug("Nightmare Mapload: File loading failed: [filepath]")
- return
+ CRASH("Nightmare Mapload: File loading failed: [filepath]")
if(isnull(parsed.bounds[1]))
- log_debug("Nightmare Mapload: Map parsing failed: [filepath]")
- return
+ CRASH("Nightmare Mapload: Map parsing failed: [filepath]")
return FALSE
/datum/nmtask/mapload/proc/step_loadmap(list/statsmap)
@@ -51,37 +48,40 @@
UNTIL(!Master.map_loading)
target_turf = GLOB.nightmare_landmarks[landmark]
if(!target_turf?.z)
- log_debug("Nightmare Mapload: Could not find landmark: [landmark]")
- return
- var/result = parsed.load(target_turf.x, target_turf.y, target_turf.z, cropMap = TRUE, no_changeturf = FALSE, placeOnTop = FALSE, delete = replace)
+ if(landmark in GLOB.nightmare_landmark_tags_removed)
+ log_debug("Nightmare Mapload: Could not find landmark: [landmark] because it was deleted")
+ return
+ else
+ CRASH("Nightmare Mapload: Could not find landmark: [landmark]")
+ var/result = parsed.load(target_turf.x, target_turf.y, target_turf.z, crop_map = TRUE, no_changeturf = FALSE, place_on_top = FALSE, delete = replace)
if(!result || !parsed.bounds)
- log_debug("Nightmare Mapload: Map insertion failed unexpectedly for file: [filepath]")
- return
+ CRASH("Nightmare Mapload: Map insertion failed unexpectedly for file: [filepath]")
return FALSE
/datum/nmtask/mapload/proc/step_init(list/statsmap)
if(initialize_boundary_contents())
log_debug("Nightmare Mapload: Loaded '[filepath]' at '[landmark]' ([target_turf.x], [target_turf.y], [target_turf.z])")
return FALSE
- log_debug("Nightmare Mapload: Loaded map file but could not initialize: '[filepath]' at ([target_turf.x], [target_turf.y], [target_turf.z])")
+ stack_trace("Nightmare Mapload: Loaded map file but could not initialize: '[filepath]' at ([target_turf.x], [target_turf.y], [target_turf.z])")
return TRUE
-/// Initialize atoms/areas in bounds
+/// Initialize atoms/areas in bounds - basically a Nightmare version of [/datum/map_template/initTemplateBounds]
/datum/nmtask/mapload/proc/initialize_boundary_contents()
var/list/bounds = parsed.bounds
if(length(bounds) < 6)
return
- var/list/TT = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]),
+ var/list/turf_block = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]),
locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))
var/list/area/arealist = list()
var/list/atom/atomlist = list()
- for(var/turf/T as anything in TT)
- atomlist |= T
- if(T.loc) arealist |= T.loc
- for(var/A in T)
- atomlist |= A
- SSmapping.reg_in_areas_in_z(arealist)
- SSatoms.InitializeAtoms(atomlist)
- // We still defer lighting, area sorting, etc
+ for(var/turf/turf as anything in turf_block)
+ atomlist += turf
+ if(turf.loc)
+ arealist |= turf.loc
+ for(var/atom/movable/movable as anything in turf)
+ atomlist += movable // Much like initTemplateBounds() this only recurses content once. Never been an issue so far, but keep it in mind.
+ SSmapping.reg_in_areas_in_z(arealist) // Legacy. Not sure this is needed as it should already be carried out through area Initialize.
+ SSatoms.InitializeAtoms(atomlist + arealist)
+ // We still defer lighting, area sorting, etc, to be done all in one go!
SEND_SIGNAL(src, COMSIG_NIGHTMARE_TAINTED_BOUNDS, bounds)
return TRUE
diff --git a/code/modules/organs/limbs.dm b/code/modules/organs/limbs.dm
index 09ce36dbbfcb..4c3954575245 100644
--- a/code/modules/organs/limbs.dm
+++ b/code/modules/organs/limbs.dm
@@ -580,8 +580,9 @@ This function completely restores a damaged organ to perfect condition.
if(brute_dam || burn_dam)
return TRUE
if(knitting_time > 0)
- return 1
- return 0
+ return TRUE
+ update_wounds()
+ return FALSE
/obj/limb/process()
diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm
index f42030cce69d..69ce9ec4ce13 100644
--- a/code/modules/paperwork/photography.dm
+++ b/code/modules/paperwork/photography.dm
@@ -90,7 +90,7 @@
icon_state = "album"
item_state = "briefcase"
can_hold = list(/obj/item/photo,)
- storage_slots = 20
+ storage_slots = 28
/obj/item/storage/photo_album/MouseDrop(obj/over_object as obj)
@@ -122,9 +122,14 @@
/obj/item/device/camera
name = "camera"
icon = 'icons/obj/items/items.dmi'
- desc = "A polaroid camera. 10 photos left."
+ desc = "A polaroid camera."
icon_state = "camera"
- item_state = "electropack"
+ item_state = "camera"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_0.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_0.dmi'
+ )
+ flags_item = TWOHANDED
w_class = SIZE_SMALL
flags_atom = FPRINT|CONDUCT
flags_equip_slot = SLOT_WAIST
@@ -132,10 +137,22 @@
black_market_value = 20
var/pictures_max = 10
var/pictures_left = 10
- var/on = 1
- var/icon_on = "camera"
- var/icon_off = "camera_off"
- var/size = 3
+ var/size = 7
+
+/obj/item/device/camera/get_examine_text(mob/user)
+ . = ..()
+ . += "It has [pictures_left] photos left."
+
+/obj/item/device/camera/attack_self(mob/user) //wielding capabilities
+ . = ..()
+ if(flags_item & WIELDED)
+ unwield(user)
+ else
+ wield(user)
+
+/obj/item/device/camera/dropped(mob/user)
+ ..()
+ unwield(user)
/obj/item/device/camera/verb/change_size()
set name = "Set Photo Focus"
@@ -149,24 +166,15 @@
/obj/item/device/camera/attack(mob/living/carbon/human/M, mob/user)
return
-/obj/item/device/camera/attack_self(mob/user)
- ..()
- on = !on
- if(on)
- src.icon_state = icon_on
- else
- src.icon_state = icon_off
- to_chat(user, "You switch the camera [on ? "on" : "off"].")
-
/obj/item/device/camera/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/device/camera_film))
- if(pictures_left)
- to_chat(user, SPAN_NOTICE("[src] still has some film in it!"))
+ if(pictures_left > (pictures_max - 10))
+ to_chat(user, SPAN_NOTICE("[src] cannot fit more film in it!"))
return
to_chat(user, SPAN_NOTICE("You insert [I] into [src]."))
if(user.temp_drop_inv_item(I))
qdel(I)
- pictures_left = pictures_max
+ pictures_left += 10
return
..()
@@ -270,24 +278,19 @@
return mob_detail
/obj/item/device/camera/afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag)
- if(!on || !pictures_left || ismob(target.loc) || isstorage(target.loc))
+ if(pictures_left <= 0)
+ to_chat(user, SPAN_WARNING("There isn't enough film in the [src] to take a photo."))
return
- if(user.contains(target) || istype(target, /atom/movable/screen))
+ if(ismob(target.loc) || isstorage(target.loc) || user.contains(target) || istype(target, /atom/movable/screen))
+ return
+ if(!(flags_item & WIELDED))
+ to_chat(user, SPAN_WARNING("You need to wield the [src] with both hands to take a photo!"))
return
-
playsound(loc, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 15, 1)
-
pictures_left--
- desc = "A polaroid camera. It has [pictures_left] photos left."
to_chat(user, SPAN_NOTICE("[pictures_left] photos left."))
- captureimage(target, user, flag)
-
- icon_state = icon_off
- on = 0
- spawn(64)
- icon_state = icon_on
- on = 1
+ addtimer(CALLBACK(src, PROC_REF(captureimage), target, user, flag), 1 SECONDS)
/obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag)
var/mob_descriptions = ""
@@ -343,10 +346,17 @@
name = "Old Camera"
desc = "An old, slightly beat-up digital camera, with a cheap photo printer taped on. It's a nice shade of blue."
icon_state = "oldcamera"
- icon_on = "oldcamera"
- icon_off = "oldcamera_off"
pictures_left = 30
+/obj/item/device/camera/broadcasting
+ name = "Broadcasting Camera"
+ desc = "Actively document everything you see, from the mundanity of shipside to the brutal battlefields below. Has a built-in printer for action shots."
+ icon_state = "broadcastingcamera"
+ item_state = "broadcastingcamera"
+ pictures_left = 20
+ pictures_max = 20
+ w_class = SIZE_HUGE
+ flags_equip_slot = NO_FLAGS //cannot be equiped
/obj/item/photo/proc/construct(datum/picture/P)
icon = P.fields["icon"]
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index 7cf72ce1cb81..c9863d3ee9cd 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -42,8 +42,6 @@
/obj/structure/machinery/power/smes/Initialize()
. = ..()
- if(!powernet)
- connect_to_network()
dir_loop:
for(var/d in GLOB.cardinals)
@@ -56,14 +54,25 @@
stat |= BROKEN
return
terminal.master = src
- if(!terminal.powernet)
- terminal.connect_to_network()
updateicon()
start_processing()
if(!should_be_mapped)
warning("Non-buildable or Non-magical SMES at [src.x]X [src.y]Y [src.z]Z")
+ return INITIALIZE_HINT_ROUNDSTART
+
+/obj/structure/machinery/power/smes/LateInitialize()
+ . = ..()
+
+ if(QDELETED(src))
+ return
+
+ if(!powernet && !connect_to_network())
+ CRASH("[src] has failed to connect to a power network. Check that it has been mapped correctly.")
+ if(terminal && !terminal.powernet)
+ terminal.connect_to_network()
+
/obj/structure/machinery/power/smes/proc/updateicon()
overlays.Cut()
if(stat & BROKEN) return
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 497b95061d6c..3f7533f26620 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -1344,7 +1344,7 @@ and you're good to go.
user.next_move = world.time //No click delay on PBs.
//Point blanking doesn't actually fire the projectile. Instead, it simulates firing the bullet proper.
- if(!able_to_fire(user)) //If it's a valid PB aside from that you can't fire the gun, do nothing.
+ if(flags_gun_features & GUN_BURST_FIRING || !able_to_fire(user)) //If it's a valid PB aside from that you can't fire the gun, do nothing.
return TRUE
//The following relating to bursts was borrowed from Fire code.
diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm
index 1807213f6226..f875af99bb43 100644
--- a/code/modules/projectiles/gun_attachables.dm
+++ b/code/modules/projectiles/gun_attachables.dm
@@ -1271,6 +1271,19 @@ Defined in conflicts.dm of the #defines folder.
QDEL_NULL(scope_element)
return ..()
+/obj/item/attachable/vulture_scope/select_gamemode_skin(expected_type, list/override_icon_state, list/override_protection)
+ . = ..()
+ var/new_attach_icon
+ switch(SSmapping.configs[GROUND_MAP].camouflage_type)
+ if("snow")
+ attach_icon = new_attach_icon ? new_attach_icon : "s_" + attach_icon
+ if("desert")
+ attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon
+ if("classic")
+ attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon
+ if("urban")
+ attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon
+
/obj/item/attachable/vulture_scope/tgui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
@@ -1814,6 +1827,7 @@ Defined in conflicts.dm of the #defines folder.
/obj/item/attachable/stock/vulture
name = "\improper M707 heavy stock"
icon_state = "vulture_stock"
+ attach_icon = "vulture_stock"
hud_offset_mod = 3
/obj/item/attachable/stock/vulture/Initialize(mapload, ...)
@@ -1821,6 +1835,19 @@ Defined in conflicts.dm of the #defines folder.
select_gamemode_skin(type)
// Doesn't give any stat additions due to the gun already having really good ones, and this is unremovable from the gun itself
+/obj/item/attachable/stock/vulture/select_gamemode_skin(expected_type, list/override_icon_state, list/override_protection)
+ . = ..()
+ var/new_attach_icon
+ switch(SSmapping.configs[GROUND_MAP].camouflage_type)
+ if("snow")
+ attach_icon = new_attach_icon ? new_attach_icon : "s_" + attach_icon
+ if("desert")
+ attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon
+ if("classic")
+ attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon
+ if("urban")
+ attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon
+
/obj/item/attachable/stock/tactical
name = "\improper MK221 tactical stock"
desc = "A metal stock made for the MK221 tactical shotgun."
@@ -3199,7 +3226,7 @@ Defined in conflicts.dm of the #defines folder.
var/obj/projectile/P = new(src, create_cause_data(initial(name), user, src))
var/datum/ammo/flamethrower/ammo_datum = new projectile_type
- ammo_datum.flamer_reagent_type = flamer_reagent.type
+ ammo_datum.flamer_reagent_id = flamer_reagent.id
P.generate_bullet(ammo_datum)
P.icon_state = "naptha_ball"
P.color = flamer_reagent.color
@@ -3301,6 +3328,10 @@ Defined in conflicts.dm of the #defines folder.
var/bipod_deployed = FALSE
/// If this should anchor the user while in use
var/heavy_bipod = FALSE
+ // Are switching to full auto when deploying the bipod
+ var/full_auto_switch = FALSE
+ // Store our old firemode so we can switch to it when undeploying the bipod
+ var/old_firemode = null
/obj/item/attachable/bipod/New()
..()
@@ -3311,16 +3342,33 @@ Defined in conflicts.dm of the #defines folder.
scatter_mod = SCATTER_AMOUNT_TIER_9
recoil_mod = RECOIL_AMOUNT_TIER_5
-/obj/item/attachable/bipod/Attach(obj/item/weapon/gun/G)
+/obj/item/attachable/bipod/Attach(obj/item/weapon/gun/gun, mob/user)
..()
- RegisterSignal(G, COMSIG_ITEM_DROPPED, PROC_REF(handle_drop))
+ if((GUN_FIREMODE_AUTOMATIC in gun.gun_firemode_list) || (gun.flags_gun_features & GUN_SUPPORT_PLATFORM))
+ var/given_action = FALSE
+ if(user && (gun == user.l_hand || gun == user.r_hand))
+ give_action(user, /datum/action/item_action/bipod/toggle_full_auto_switch, src, gun)
+ given_action = TRUE
+ if(!given_action)
+ new /datum/action/item_action/bipod/toggle_full_auto_switch(src, gun)
+
+ RegisterSignal(gun, COMSIG_ITEM_DROPPED, PROC_REF(handle_drop))
/obj/item/attachable/bipod/Detach(mob/user, obj/item/weapon/gun/detaching_gub)
UnregisterSignal(detaching_gub, COMSIG_ITEM_DROPPED)
+ //clear out anything related to full auto switching
+ full_auto_switch = FALSE
+ old_firemode = null
+ for(var/item_action in detaching_gub.actions)
+ var/datum/action/item_action/bipod/toggle_full_auto_switch/target_action = item_action
+ if(target_action.target == src)
+ qdel(item_action)
+ break
+
if(bipod_deployed)
- undeploy_bipod(detaching_gub)
+ undeploy_bipod(detaching_gub, user)
..()
/obj/item/attachable/bipod/update_icon()
@@ -3334,60 +3382,62 @@ Defined in conflicts.dm of the #defines folder.
if(istype(loc, /obj/item/weapon/gun))
var/obj/item/weapon/gun/gun = loc
gun.update_attachable(slot)
- for(var/datum/action/A as anything in gun.actions)
- A.update_button_icon()
+ for(var/datum/action/item_action as anything in gun.actions)
+ if(!istype(item_action, /datum/action/item_action/bipod/toggle_full_auto_switch))
+ item_action.update_button_icon()
-/obj/item/attachable/bipod/proc/handle_drop(obj/item/weapon/gun/G, mob/living/carbon/human/user)
+/obj/item/attachable/bipod/proc/handle_drop(obj/item/weapon/gun/gun, mob/living/carbon/human/user)
SIGNAL_HANDLER
UnregisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK)
if(bipod_deployed)
- undeploy_bipod(G)
+ undeploy_bipod(gun, user)
user.apply_effect(1, SUPERSLOW)
user.apply_effect(2, SLOW)
-/obj/item/attachable/bipod/proc/undeploy_bipod(obj/item/weapon/gun/G)
- REMOVE_TRAIT(G, TRAIT_GUN_BIPODDED, "attached_bipod")
+/obj/item/attachable/bipod/proc/undeploy_bipod(obj/item/weapon/gun/gun, mob/user)
+ REMOVE_TRAIT(gun, TRAIT_GUN_BIPODDED, "attached_bipod")
bipod_deployed = FALSE
accuracy_mod = -HIT_ACCURACY_MULT_TIER_5
scatter_mod = SCATTER_AMOUNT_TIER_9
recoil_mod = RECOIL_AMOUNT_TIER_5
burst_scatter_mod = 0
delay_mod = FIRE_DELAY_TIER_12
- G.recalculate_attachment_bonuses()
- G.stop_fire()
- var/mob/living/user
- if(isliving(G.loc))
- user = G.loc
- SEND_SIGNAL(user, COMSIG_MOB_UNDEPLOYED_BIPOD)
- UnregisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK)
+ //if we are no longer on full auto, don't bother switching back to the old firemode
+ if(full_auto_switch && gun.gun_firemode == GUN_FIREMODE_AUTOMATIC && gun.gun_firemode != old_firemode)
+ gun.do_toggle_firemode(user, null, old_firemode)
- if(G.flags_gun_features & GUN_SUPPORT_PLATFORM)
- G.remove_firemode(GUN_FIREMODE_AUTOMATIC)
+ gun.recalculate_attachment_bonuses()
+ gun.stop_fire()
+ SEND_SIGNAL(user, COMSIG_MOB_UNDEPLOYED_BIPOD)
+ UnregisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK)
+
+ if(gun.flags_gun_features & GUN_SUPPORT_PLATFORM)
+ gun.remove_firemode(GUN_FIREMODE_AUTOMATIC)
if(heavy_bipod)
user.anchored = FALSE
- if(!QDELETED(G))
+ if(!QDELETED(gun))
playsound(user,'sound/items/m56dauto_rotate.ogg', 55, 1)
update_icon()
-/obj/item/attachable/bipod/activate_attachment(obj/item/weapon/gun/G,mob/living/user, turn_off)
+/obj/item/attachable/bipod/activate_attachment(obj/item/weapon/gun/gun, mob/living/user, turn_off)
if(turn_off)
if(bipod_deployed)
- undeploy_bipod(G)
+ undeploy_bipod(gun, user)
else
- var/obj/support = check_bipod_support(G, user)
+ var/obj/support = check_bipod_support(gun, user)
if(!support&&!bipod_deployed)
to_chat(user, SPAN_NOTICE("You start deploying [src] on the ground."))
- if(!do_after(user, 15, INTERRUPT_ALL, BUSY_ICON_HOSTILE, G,INTERRUPT_DIFF_LOC))
+ if(!do_after(user, 15, INTERRUPT_ALL, BUSY_ICON_HOSTILE, gun, INTERRUPT_DIFF_LOC))
return FALSE
bipod_deployed = !bipod_deployed
if(user)
if(bipod_deployed)
- ADD_TRAIT(G, TRAIT_GUN_BIPODDED, "attached_bipod")
+ ADD_TRAIT(gun, TRAIT_GUN_BIPODDED, "attached_bipod")
to_chat(user, SPAN_NOTICE("You deploy [src] [support ? "on [support]" : "on the ground"]."))
SEND_SIGNAL(user, COMSIG_MOB_DEPLOYED_BIPOD)
playsound(user,'sound/items/m56dauto_rotate.ogg', 55, 1)
@@ -3395,25 +3445,29 @@ Defined in conflicts.dm of the #defines folder.
scatter_mod = -SCATTER_AMOUNT_TIER_10
recoil_mod = -RECOIL_AMOUNT_TIER_4
burst_scatter_mod = -SCATTER_AMOUNT_TIER_8
- if(istype(G,/obj/item/weapon/gun/rifle/sniper/M42A))
+ if(istype(gun, /obj/item/weapon/gun/rifle/sniper/M42A))
delay_mod = -FIRE_DELAY_TIER_7
else
delay_mod = -FIRE_DELAY_TIER_12
- G.recalculate_attachment_bonuses()
- G.stop_fire()
+ gun.recalculate_attachment_bonuses()
+ gun.stop_fire()
initial_mob_dir = user.dir
RegisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK, PROC_REF(handle_mob_move_or_look))
- if(G.flags_gun_features & GUN_SUPPORT_PLATFORM)
- G.add_firemode(GUN_FIREMODE_AUTOMATIC)
+ if(gun.flags_gun_features & GUN_SUPPORT_PLATFORM)
+ gun.add_firemode(GUN_FIREMODE_AUTOMATIC)
if(heavy_bipod)
user.anchored = TRUE
+ old_firemode = gun.gun_firemode
+ if(full_auto_switch && gun.gun_firemode != GUN_FIREMODE_AUTOMATIC)
+ gun.do_toggle_firemode(user, null, GUN_FIREMODE_AUTOMATIC)
+
else
to_chat(user, SPAN_NOTICE("You retract [src]."))
- undeploy_bipod(G)
+ undeploy_bipod(gun, user)
update_icon()
@@ -3430,10 +3484,10 @@ Defined in conflicts.dm of the #defines folder.
//when user fires the gun, we check if they have something to support the gun's bipod.
-/obj/item/attachable/proc/check_bipod_support(obj/item/weapon/gun/G, mob/living/user)
+/obj/item/attachable/proc/check_bipod_support(obj/item/weapon/gun/gun, mob/living/user)
return 0
-/obj/item/attachable/bipod/check_bipod_support(obj/item/weapon/gun/G, mob/living/user)
+/obj/item/attachable/bipod/check_bipod_support(obj/item/weapon/gun/gun, mob/living/user)
var/turf/T = get_turf(user)
for(var/obj/O in T)
if(O.throwpass && O.density && O.dir == user.dir && O.flags_atom & ON_BORDER)
@@ -3445,6 +3499,31 @@ Defined in conflicts.dm of the #defines folder.
return O2
return 0
+//item actions for handling deployment to full auto.
+/datum/action/item_action/bipod/toggle_full_auto_switch/New(Target, obj/item/holder)
+ . = ..()
+ name = "Toggle Full Auto Switch"
+ action_icon_state = "full_auto_switch"
+ button.name = name
+ button.overlays.Cut()
+ button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state)
+
+/datum/action/item_action/bipod/toggle_full_auto_switch/action_activate()
+ var/obj/item/weapon/gun/holder_gun = holder_item
+ var/obj/item/attachable/bipod/attached_bipod = holder_gun.attachments["under"]
+
+ attached_bipod.full_auto_switch = !attached_bipod.full_auto_switch
+ to_chat(owner, SPAN_NOTICE("[icon2html(holder_gun, owner)] You will [attached_bipod.full_auto_switch? "start " : "stop "] switching to full auto when deploying the bipod."))
+ playsound(owner, 'sound/weapons/handling/gun_burst_toggle.ogg', 15, 1)
+
+ if(attached_bipod.full_auto_switch)
+ button.icon_state = "template_on"
+ else
+ button.icon_state = "template"
+
+ button.overlays.Cut()
+ button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state)
+
/obj/item/attachable/bipod/m60
name = "bipod"
@@ -3461,6 +3540,23 @@ Defined in conflicts.dm of the #defines folder.
attach_icon = "vulture_bipod"
heavy_bipod = TRUE
+/obj/item/attachable/bipod/vulture/Initialize(mapload, ...)
+ . = ..()
+ select_gamemode_skin(type)
+
+/obj/item/attachable/bipod/vulture/select_gamemode_skin(expected_type, list/override_icon_state, list/override_protection)
+ . = ..()
+ var/new_attach_icon
+ switch(SSmapping.configs[GROUND_MAP].camouflage_type)
+ if("snow")
+ attach_icon = new_attach_icon ? new_attach_icon : "s_" + attach_icon
+ if("desert")
+ attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon
+ if("classic")
+ attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon
+ if("urban")
+ attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon
+
/obj/item/attachable/burstfire_assembly
name = "burst fire assembly"
desc = "A small angled piece of fine machinery that increases the burst count on some weapons, and grants the ability to others. \nIncreases weapon scatter."
diff --git a/code/modules/projectiles/gun_helpers.dm b/code/modules/projectiles/gun_helpers.dm
index 66e3a65f2f77..781db8fc1222 100644
--- a/code/modules/projectiles/gun_helpers.dm
+++ b/code/modules/projectiles/gun_helpers.dm
@@ -390,7 +390,7 @@ DEFINES in setup.dm, referenced here.
user.visible_message(SPAN_NOTICE("[user] attaches [attachment] to [src]."),
SPAN_NOTICE("You attach [attachment] to [src]."), null, 4)
user.temp_drop_inv_item(attachment)
- attachment.Attach(src)
+ attachment.Attach(src, user)
update_attachable(attachment.slot)
playsound(user, 'sound/handling/attachment_add.ogg', 15, 1, 4)
return TRUE
diff --git a/code/modules/projectiles/guns/boltaction.dm b/code/modules/projectiles/guns/boltaction.dm
index a06131f98ce0..16ccb3438e23 100644
--- a/code/modules/projectiles/guns/boltaction.dm
+++ b/code/modules/projectiles/guns/boltaction.dm
@@ -279,3 +279,9 @@
/obj/item/weapon/gun/boltaction/vulture/skillless
bypass_trait = TRUE
+
+/obj/item/weapon/gun/boltaction/vulture/holo_target
+ current_mag = /obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target
+
+/obj/item/weapon/gun/boltaction/vulture/holo_target/skillless
+ bypass_trait = TRUE
diff --git a/code/modules/projectiles/guns/pistols.dm b/code/modules/projectiles/guns/pistols.dm
index c17ca5bca739..362841651b2d 100644
--- a/code/modules/projectiles/guns/pistols.dm
+++ b/code/modules/projectiles/guns/pistols.dm
@@ -236,7 +236,6 @@
icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
icon_state = "c_deagle"
item_state = "c_deagle"
- base_gun_icon = "c_deagle"
current_mag = /obj/item/ammo_magazine/pistol/heavy/super/highimpact
black_market_value = 100
@@ -257,7 +256,6 @@
desc = "A Desert Eagle anodized in gold and adorned with rosewood grips. The living definition of ostentatious, it's flashy, unwieldy, tremendously heavy, and kicks like a mule. But as a symbol of power, there's nothing like it."
icon_state = "g_deagle"
item_state = "g_deagle"
- base_gun_icon = "g_deagle"
//-------------------------------------------------------
//NP92 pistol
@@ -588,8 +586,8 @@
name = "\improper 88 Mod 4 combat pistol"
desc = "Standard issue USCM firearm. Also found in the hands of Weyland-Yutani PMC teams. Fires 9mm armor shredding rounds and is capable of 3-round burst."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
- icon_state = "88m4"
- item_state = "88m4"
+ icon_state = "_88m4" // to comply with css standards
+ item_state = "_88m4"
fire_sound = "88m4"
firesound_volume = 20
reload_sound = 'sound/weapons/gun_88m4_reload.ogg'
diff --git a/code/modules/projectiles/guns/rifles.dm b/code/modules/projectiles/guns/rifles.dm
index 29b2c55b7ec0..b631f093bafe 100644
--- a/code/modules/projectiles/guns/rifles.dm
+++ b/code/modules/projectiles/guns/rifles.dm
@@ -1763,9 +1763,9 @@
/obj/item/weapon/gun/rifle/rmc_f90/set_gun_config_values()
..()
- fire_delay = FIRE_DELAY_TIER_8
+ fire_delay = FIRE_DELAY_TIER_11
burst_amount = BURST_AMOUNT_TIER_3
- burst_delay = FIRE_DELAY_TIER_8
+ burst_delay = FIRE_DELAY_TIER_11
accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4 + 2*HIT_ACCURACY_MULT_TIER_1
accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_7
scatter = SCATTER_AMOUNT_TIER_8
@@ -1804,7 +1804,7 @@
/obj/item/weapon/gun/rifle/rmc_f90/scope/set_gun_config_values()
..()
- fire_delay = FIRE_DELAY_TIER_7
+ fire_delay = FIRE_DELAY_TIER_11
burst_amount = 0
accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4 + 2*HIT_ACCURACY_MULT_TIER_1
accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_7
@@ -1844,9 +1844,9 @@
/obj/item/weapon/gun/rifle/rmc_f90/shotgun/set_gun_config_values()
..()
- fire_delay = FIRE_DELAY_TIER_8
+ fire_delay = FIRE_DELAY_TIER_11
burst_amount = BURST_AMOUNT_TIER_3
- burst_delay = FIRE_DELAY_TIER_8
+ burst_delay = FIRE_DELAY_TIER_11
accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4 + 2*HIT_ACCURACY_MULT_TIER_1
accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_2
scatter = SCATTER_AMOUNT_TIER_8
diff --git a/code/modules/projectiles/guns/smartgun.dm b/code/modules/projectiles/guns/smartgun.dm
index 9c1e2bbbd7ca..a2f2a8a003a2 100644
--- a/code/modules/projectiles/guns/smartgun.dm
+++ b/code/modules/projectiles/guns/smartgun.dm
@@ -316,14 +316,15 @@
return FALSE
var/mob/living/carbon/human/H = user
if(!skillcheckexplicit(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_SMARTGUN) && !skillcheckexplicit(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL))
- to_chat(H, SPAN_WARNING("You don't seem to know how to use \the [src]..."))
+ balloon_alert(user, "insufficient skills")
return FALSE
if(requires_harness)
if(!H.wear_suit || !(H.wear_suit.flags_inventory & SMARTGUN_HARNESS))
- to_chat(H, SPAN_WARNING("You need a harness suit to be able to fire [src]..."))
+ balloon_alert(user, "harness required")
return FALSE
if(cover_open)
to_chat(H, SPAN_WARNING("You can't fire \the [src] with the feed cover open! (alt-click to close)"))
+ balloon_alert(user, "cannot fire; feed cover open")
return FALSE
/obj/item/weapon/gun/smartgun/unique_action(mob/user)
@@ -337,6 +338,7 @@
return
secondary_toggled = !secondary_toggled
to_chat(user, "[icon2html(src, usr)] You changed \the [src]'s ammo preparation procedures. You now fire [secondary_toggled ? "armor shredding rounds" : "highly precise rounds"].")
+ balloon_alert(user, "firing [secondary_toggled ? "armor shredding" : "highly precise"]")
playsound(loc,'sound/machines/click.ogg', 25, 1)
ammo = secondary_toggled ? ammo_secondary : ammo_primary
var/datum/action/item_action/smartgun/toggle_ammo_type/TAT = locate(/datum/action/item_action/smartgun/toggle_ammo_type) in actions
@@ -387,7 +389,7 @@
return FALSE
return TRUE
if(!battery || battery.power_cell.charge == 0)
- to_chat(usr, SPAN_WARNING("[src] emits a low power warning and immediately shuts down!"))
+ balloon_alert(usr, "low power")
return FALSE
return FALSE
diff --git a/code/modules/projectiles/magazines/rifles.dm b/code/modules/projectiles/magazines/rifles.dm
index bfc411a2ea63..d12f390ccd95 100644
--- a/code/modules/projectiles/magazines/rifles.dm
+++ b/code/modules/projectiles/magazines/rifles.dm
@@ -457,6 +457,14 @@
max_rounds = 4
gun_type = /obj/item/weapon/gun/boltaction/vulture
w_class = SIZE_MEDIUM // maybe small? This shit's >4 inches long mind you
+ ammo_band_icon = "+vulture_band"
+ ammo_band_icon_empty = "+vulture_band_e"
+
+/obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target
+ name = "\improper M707 \"Vulture\" holo-target magazine (20x102mm)"
+ desc = "A magazine for the M707 \"Vulture\" anti-matieriel rifle. Contains up to 4 massively oversized IFF-CAPABLE holo-targeting rounds, which excel at marking heavy targets to be attacked by allied ground forces. The logistical requirements for such capabilities heavily hinder the performance and stopping power of this round."
+ default_ammo = /datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target
+ ammo_band_color = AMMO_BAND_COLOR_HOLOTARGETING
//=ROYAL MARINES=\\
diff --git a/code/modules/reagents/chemistry_machinery/chem_simulator.dm b/code/modules/reagents/chemistry_machinery/chem_simulator.dm
index 8a95e3f3b07e..dd7f008e47d2 100644
--- a/code/modules/reagents/chemistry_machinery/chem_simulator.dm
+++ b/code/modules/reagents/chemistry_machinery/chem_simulator.dm
@@ -380,8 +380,7 @@
relate(C)
if(!C.original_id)
C.original_id = target.data.id
- C.id = encode_reagent(C)
- C.name = C.id
+ encode_reagent(C)
if(C.id in simulations)
//We've already simulated this before, so we don't need to continue
C = GLOB.chemical_reagents_list[C.id]
@@ -577,8 +576,8 @@
var/obj/item/paper/research_report/report = new /obj/item/paper/research_report/(loc)
var/datum/reagent/D = GLOB.chemical_reagents_list[id]
var/datum/asset/asset = get_asset_datum(/datum/asset/simple/paper)
- report.name = "Simulation result for [D.name]"
- report.info += "Official Company Document Simulated Synthesis ReportResult for [D.name] "
+ report.name = "Simulation result for [D.id]"
+ report.info += "Official Company Document Simulated Synthesis ReportResult for [D.id] "
report.generate(D)
report.info += "This report was automatically printed by the Synthesis Simulator. The [MAIN_SHIP_NAME], [time2text(world.timeofday, "MM/DD")]/[GLOB.game_year], [worldtime2text()] \n "
playsound(loc, 'sound/machines/twobeep.ogg', 15, 1)
@@ -590,7 +589,9 @@
var/suffix = " "
for(var/datum/chem_property/P in C.properties)
suffix += P.code+"[P.level]"
- return O.name + suffix
+ C.id = O.name + " " + copytext(md5(suffix),1,3) + suffix //Show random suffix AND real properties on research paper
+ C.name = O.name + " " + copytext(md5(suffix),1,3) //Show ONLY random suffix on health analyzers
+ return
/obj/structure/machinery/chem_simulator/proc/complexity_to_string_list()
var/list/L = list()
diff --git a/code/modules/reagents/chemistry_machinery/pandemic.dm b/code/modules/reagents/chemistry_machinery/pandemic.dm
index 5cd7f6584705..f44da3af9613 100644
--- a/code/modules/reagents/chemistry_machinery/pandemic.dm
+++ b/code/modules/reagents/chemistry_machinery/pandemic.dm
@@ -87,7 +87,6 @@
if(!(virus_type in discovered_diseases))
return
var/obj/item/reagent_container/glass/bottle/B = new/obj/item/reagent_container/glass/bottle(src.loc)
- B.icon_state = "bottle3"
var/datum/disease/D = null
if(!virus_type)
var/datum/disease/advance/A = GLOB.archive_diseases[href_list["create_virus_culture"]]
diff --git a/code/modules/reagents/chemistry_properties/prop_special.dm b/code/modules/reagents/chemistry_properties/prop_special.dm
index 52354f0d6b01..cee75ca58c06 100644
--- a/code/modules/reagents/chemistry_properties/prop_special.dm
+++ b/code/modules/reagents/chemistry_properties/prop_special.dm
@@ -96,7 +96,7 @@
H.contract_disease(new /datum/disease/xeno_transformation(0),1) //This is the real reason PMCs are being sent to retrieve it.
/datum/chem_property/special/DNA_Disintegrating/trigger()
- SSticker.mode.get_specific_call("Weyland-Yutani Goon (Chemical Investigation Squad)", TRUE, FALSE, holder.name)
+ SSticker.mode.get_specific_call(/datum/emergency_call/goon/chem_retrieval, TRUE, FALSE, holder.name) // "Weyland-Yutani Goon (Chemical Investigation Squad)"
GLOB.chemical_data.update_credits(10)
message_admins("The research department has discovered DNA_Disintegrating in [holder.name] adding 10 bonus tech points.")
var/datum/techtree/tree = GET_TREE(TREE_MARINE)
diff --git a/code/modules/reagents/chemistry_reagents/medical.dm b/code/modules/reagents/chemistry_reagents/medical.dm
index f69d1b952c43..1e9eb0e0084b 100644
--- a/code/modules/reagents/chemistry_reagents/medical.dm
+++ b/code/modules/reagents/chemistry_reagents/medical.dm
@@ -8,7 +8,7 @@
id = "inaprovaline"
description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients. If the lungs are functional, inaprovaline will allow respiration while under cardiac arrest. Slows down bleeding and acts as a weak painkiller. Overdosing may cause severe damage to cardiac tissue."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#dcbaf0" // rgb: 200, 165, 220
overdose = HIGH_REAGENTS_OVERDOSE
overdose_critical = HIGH_REAGENTS_OVERDOSE_CRITICAL
chemclass = CHEM_CLASS_COMMON
@@ -42,7 +42,7 @@
id = "tramadol"
description = "Tramadol is a centrally acting analgesic and is considered to be a relatively safe. The analgesic potency is claimed to be about one tenth that of morphine. It is used to treat both acute and chronic pain of moderate to (moderately) severe intensity. Tramadol is generally considered as a medicinal drug with a low potential for dependence relative to morphine. Overdosing on tramadol is highly toxic."
reagent_state = LIQUID
- color = "#C8A5DC"
+ color = "#d7c7e0"
custom_metabolism = AMOUNT_PER_TIME(15, 10 MINUTES) // Lasts 10 minutes for 15 units
overdose = REAGENTS_OVERDOSE
overdose_critical = REAGENTS_OVERDOSE_CRITICAL
@@ -54,7 +54,7 @@
id = "oxycodone"
description = "Oxycodone is an opioid agonist with addiction potential similar to that of morphine. It is approved for the treatment of patients with moderate to severe pain who are expected to need continuous opioids for an extended period of time. Overdosing on oxycodone can cause hallucinations, brain damage and be highly toxic."
reagent_state = LIQUID
- color = "#E01D25"
+ color = "#1cc282"
custom_metabolism = AMOUNT_PER_TIME(15, 5 MINUTES) // Lasts 5 minutes for 15 units
overdose = MED_REAGENTS_OVERDOSE
overdose_critical = MED_REAGENTS_OVERDOSE_CRITICAL
@@ -66,7 +66,7 @@
id = "sterilizine"
description = "A sterilizer used to clean wounds in preparation for surgery. Its use has mostly been outclassed to the cheaper alternative of space cleaner."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#b8d2f5" // rgb: 200, 165, 220
chemclass = CHEM_CLASS_UNCOMMON
/datum/reagent/medical/leporazine
@@ -74,7 +74,7 @@
id = "leporazine"
description = "A drug used to treat hypothermia and hyperthermia. Stabilizes patient body temperture. Prevents the use of cryogenics. Overdosing on leporazine can cause extreme drowsyness."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#a03919" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE
overdose_critical = REAGENTS_OVERDOSE_CRITICAL
chemclass = CHEM_CLASS_UNCOMMON
@@ -85,7 +85,7 @@
id = "kelotane"
description = "Common medicine used to treat burns, caustic and corrosive trauma. Overdosing on kelotane can cause internal tissue damage."
reagent_state = LIQUID
- color = "#D8C58C"
+ color = "#d8b343"
overdose = REAGENTS_OVERDOSE
overdose_critical = REAGENTS_OVERDOSE_CRITICAL
chemclass = CHEM_CLASS_COMMON
@@ -96,7 +96,7 @@
id = "dermaline"
description = "Advanced medicine used to treat severe burn trauma. Enables the body to restore even the direst heat-damaged tissue. Overdosing on dermaline can cause severe internal tissue damage."
reagent_state = LIQUID
- color = "#F8C57C"
+ color = "#e2972e"
overdose = LOWH_REAGENTS_OVERDOSE
overdose_critical = LOWH_REAGENTS_OVERDOSE_CRITICAL
chemclass = CHEM_CLASS_UNCOMMON
@@ -107,7 +107,7 @@
id = "dexalin"
description = "Dexalin is used in the treatment of oxygen deprivation by feeding oxygen to red blood cells directly inside the bloodstream. Used as an antidote to lexorin poisoning."
reagent_state = LIQUID
- color = "#C865FC"
+ color = "#1f28a7"
overdose = REAGENTS_OVERDOSE
overdose_critical = REAGENTS_OVERDOSE_CRITICAL
chemclass = CHEM_CLASS_COMMON
@@ -118,7 +118,7 @@
id = "dexalinp"
description = "Dexalin Plus is an upgraded form of Dexalin with added iron and carbon to quicken the rate which oxygen binds to the hemoglobin in red blood cells."
reagent_state = LIQUID
- color = "#C8A5FC"
+ color = "#293fff"
overdose = LOWH_REAGENTS_OVERDOSE
overdose_critical = LOWH_REAGENTS_OVERDOSE_CRITICAL
chemclass = CHEM_CLASS_UNCOMMON
@@ -129,7 +129,7 @@
id = "tricordrazine"
description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries."
reagent_state = LIQUID
- color = "#B865CC"
+ color = "#d87f2b"
overdose = REAGENTS_OVERDOSE
overdose_critical = REAGENTS_OVERDOSE_CRITICAL
chemclass = CHEM_CLASS_UNCOMMON
@@ -140,7 +140,7 @@
id = "anti_toxin"
description = "General use anti-toxin, that neutralizes most toxins in the bloodstream. Commonly used in many advanced chemicals. Can be used as a mild anti-hallucinogen and to reduce tiredness."
reagent_state = LIQUID
- color = "#A8F59C"
+ color = "#3fc92a"
overdose = REAGENTS_OVERDOSE
overdose_critical = REAGENTS_OVERDOSE_CRITICAL
chemclass = CHEM_CLASS_COMMON
@@ -151,7 +151,7 @@
id = "adminordrazine"
description = "A magical substance created by gods to dissolve extreme amounts of salt."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#dae63b" // rgb: 200, 165, 220
properties = list(PROPERTY_OMNIPOTENT = 2)
flags = REAGENT_TYPE_MEDICAL
@@ -160,7 +160,7 @@
id = "thwei"
description = "A strange, alien liquid."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#41c498" // rgb: 200, 165, 220
chemclass = CHEM_CLASS_SPECIAL
objective_value = OBJECTIVE_HIGH_VALUE
properties = list(
@@ -182,7 +182,7 @@
id = "neuraline"
description = "A chemical cocktail tailored to enhance or dampen specific neural processes."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#a244d8" // rgb: 200, 165, 220
custom_metabolism = AMOUNT_PER_TIME(1, 5 SECONDS)
overdose = 2
overdose_critical = 3
@@ -195,7 +195,7 @@
id = "arithrazine"
description = "A stabilized variant of dylovene. Its toxin-cleansing properties are weakened and there are harmful side effects, but it does not react with other compounds to create toxin."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#3c8529" // rgb: 200, 165, 220
custom_metabolism = AMOUNT_PER_TIME(1, 40 SECONDS)
overdose = REAGENTS_OVERDOSE/2
overdose_critical = REAGENTS_OVERDOSE_CRITICAL/2
@@ -207,7 +207,7 @@
id = "russianred"
description = "An emergency radiation treatment. The list of potential side effects include retinal damage and unconsciousness."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#ce2727" // rgb: 200, 165, 220
custom_metabolism = AMOUNT_PER_TIME(1, 2 SECONDS)
overdose = MED_REAGENTS_OVERDOSE
overdose_critical = MED_REAGENTS_OVERDOSE_CRITICAL
@@ -218,7 +218,7 @@
id = "alkysine"
description = "Alkysine is a drug used to lessen and heal the damage to neurological tissue after a catastrophic injury. Small amounts can repair extensive brain trauma. Functions as a very weak painkiller. Overdosing on alkysine is extremely toxic."
reagent_state = LIQUID
- color = "#E89599"
+ color = "#e9d191"
custom_metabolism = AMOUNT_PER_TIME(1, 40 SECONDS)
overdose = REAGENTS_OVERDOSE
overdose_critical = REAGENTS_OVERDOSE_CRITICAL
@@ -241,7 +241,7 @@
id = "peridaxon"
description = "Prevents symptoms caused by damaged internal organs while in the bloodstream, but does not fix the organ damage. Recommended for patients awaiting internal organ surgery. Overdosing on peridaxon will cause internal tissue damage."
reagent_state = LIQUID
- color = "#C845DC"
+ color = "#403142"
overdose = LOWH_REAGENTS_OVERDOSE
overdose_critical = LOWH_REAGENTS_OVERDOSE_CRITICAL
custom_metabolism = AMOUNT_PER_TIME(1, 40 SECONDS)
@@ -253,7 +253,7 @@
id = "bicaridine"
description = "Bicaridine is an analgesic medication and can be used to treat severe external blunt trauma and to stabilize patients. Overdosing on Bicaridine will cause caustic burns and toxins."
reagent_state = LIQUID
- color = "#E8756C"
+ color = "#e7554a"
overdose = REAGENTS_OVERDOSE
overdose_critical = REAGENTS_OVERDOSE_CRITICAL
chemclass = CHEM_CLASS_COMMON
@@ -288,7 +288,7 @@
id = "ultrazine"
description = "A highly-potent, long-lasting combination CNS and muscle stimulant. Extremely addictive."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#ffec43" // rgb: 200, 165, 220
custom_metabolism = 0.0167 //5 units will last approximately 10 minutes
overdose = LOWM_REAGENTS_OVERDOSE
overdose_critical = LOWM_REAGENTS_OVERDOSE_CRITICAL
@@ -314,7 +314,7 @@
id = "cryoxadone"
description = "Industrial grade cryogenic medicine. Treats most types of tissue damage. Its main limitation is that the patient's body temperature must be under 170K to metabolise correctly."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#4acaca" // rgb: 200, 165, 220
chemclass = CHEM_CLASS_UNCOMMON
properties = list(PROPERTY_CRYOMETABOLIZING = 2, PROPERTY_NEOGENETIC = 1, PROPERTY_ANTICORROSIVE = 1, PROPERTY_ANTITOXIC = 1, PROPERTY_ANTICARCINOGENIC = 1)
@@ -332,7 +332,7 @@
id = "clonexadone"
description = "Advanced cryogenic medicine made from cryoxadone. Treats most types of tissue damage. Requires temperatures below 170K to to metabolise correctly."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#51b4db" // rgb: 200, 165, 220
chemclass = CHEM_CLASS_UNCOMMON
properties = list(PROPERTY_CRYOMETABOLIZING = 6, PROPERTY_NEOGENETIC = 3, PROPERTY_ANTICORROSIVE = 3, PROPERTY_ANTITOXIC = 3, PROPERTY_ANTICARCINOGENIC = 3)
@@ -351,7 +351,7 @@
id = "spaceacillin"
description = "General use theta-lactam antibiotic. Prevents and cures mundane infections."
reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
+ color = "#9749c4" // rgb: 200, 165, 220
custom_metabolism = AMOUNT_PER_TIME(1, 200 SECONDS)
overdose = REAGENTS_OVERDOSE
overdose_critical = REAGENTS_OVERDOSE_CRITICAL
diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm
index 79377d9c0849..5f96de812819 100644
--- a/code/modules/shuttle/computer.dm
+++ b/code/modules/shuttle/computer.dm
@@ -81,8 +81,8 @@
to_chat(usr, SPAN_NOTICE("Unable to comply."))
return TRUE
-/obj/structure/machinery/computer/shuttle/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE)
- if(port && (shuttleId == initial(shuttleId) || override))
+/obj/structure/machinery/computer/shuttle/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock)
+ if(port && (shuttleId == initial(shuttleId)))
shuttleId = port.id
/obj/structure/machinery/computer/shuttle/ert
@@ -96,6 +96,15 @@
var/disabled = FALSE
var/compatible_landing_zones = list()
+ /// this interface is busy - used in [/obj/structure/machinery/computer/shuttle/ert/proc/launch_home] as this can take a second
+ var/spooling
+
+ /// if this shuttle only has the option to return home
+ var/must_launch_home = FALSE
+
+ /// if the ERT that used this shuttle has returned home
+ var/mission_accomplished = FALSE
+
/obj/structure/machinery/computer/shuttle/ert/broken
name = "nonfunctional shuttle control console"
disabled = TRUE
@@ -108,8 +117,48 @@
/obj/structure/machinery/computer/shuttle/ert/proc/get_landing_zones()
. = list()
for(var/obj/docking_port/stationary/emergency_response/dock in SSshuttle.stationary)
- if(!dock.is_external)
- . += list(dock)
+ if(!is_mainship_level(dock.z))
+ continue
+
+ if(dock.is_external)
+ continue
+
+ . += list(dock)
+
+/obj/structure/machinery/computer/shuttle/ert/proc/launch_home()
+ if(spooling)
+ return
+
+ var/obj/docking_port/mobile/emergency_response/ert = SSshuttle.getShuttle(shuttleId)
+
+ spooling = TRUE
+ SStgui.update_uis(src)
+
+ var/datum/turf_reservation/loaded = SSmapping.lazy_load_template(ert.distress_beacon.home_base, force = TRUE)
+ var/turf/bottom_left = loaded.bottom_left_turfs[1]
+ var/turf/top_right = loaded.top_right_turfs[1]
+
+ var/obj/docking_port/stationary/emergency_response/target
+ for(var/obj/docking_port/stationary/emergency_response/shuttle in SSshuttle.stationary)
+ if(shuttle.z != bottom_left.z)
+ continue
+ if(shuttle.x >= top_right.x || shuttle.y >= top_right.y)
+ continue
+ if(shuttle.x <= bottom_left.x || shuttle.y <= bottom_left.y)
+ continue
+
+ target = shuttle
+ break
+
+ if(!target)
+ spooling = FALSE
+ return
+
+ SSshuttle.moveShuttleToDock(ert, target, TRUE)
+ target.lockdown_on_land = TRUE
+
+ spooling = FALSE
+ must_launch_home = FALSE
/obj/structure/machinery/computer/shuttle/ert/is_disabled()
@@ -122,10 +171,25 @@
disabled = FALSE
/obj/structure/machinery/computer/shuttle/ert/tgui_interact(mob/user, datum/tgui/ui)
+ var/obj/docking_port/mobile/emergency_response/ert = SSshuttle.getShuttle(shuttleId)
+
+ if(ert.distress_beacon && ishuman(user))
+ var/mob/living/carbon/human/human_user = user
+ var/obj/item/card/id/id = human_user.get_active_hand()
+ if(!istype(id))
+ id = human_user.get_inactive_hand()
+
+ if(!istype(id))
+ id = human_user.get_idcard()
+
+ if(!id || !HAS_TRAIT_FROM_ONLY(id, TRAIT_ERT_ID, ert.distress_beacon))
+ to_chat(user, SPAN_WARNING("Your ID is not authorized to interact with this terminal."))
+ balloon_alert(user, "unauthorized!")
+ return
+
ui = SStgui.try_update_ui(user, src, ui)
if (!ui)
- var/obj/docking_port/mobile/shuttle = SSshuttle.getShuttle(shuttleId)
- ui = new(user, src, "NavigationShuttle", "[shuttle.name] Navigation Computer")
+ ui = new(user, src, "NavigationShuttle", "[ert.name] Navigation Computer")
ui.open()
@@ -154,6 +218,9 @@
.["shuttle_mode"] = ert.mode
.["flight_time"] = ert.timeLeft(0)
.["is_disabled"] = disabled
+ .["spooling"] = spooling
+ .["must_launch_home"] = must_launch_home
+ .["mission_accomplished"] = mission_accomplished
var/door_count = length(ert.external_doors)
var/locked_count = 0
@@ -188,7 +255,31 @@
return
var/obj/docking_port/mobile/emergency_response/ert = SSshuttle.getShuttle(shuttleId)
+
switch(action)
+ if("button-push")
+ playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1)
+ return FALSE
+ if("open")
+ if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL)
+ return TRUE
+ ert.control_doors("open", external_only = TRUE)
+ if("close")
+ if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL)
+ return TRUE
+ ert.control_doors("close", external_only = TRUE)
+ if("lockdown")
+ if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL)
+ return TRUE
+ ert.control_doors("force-lock", external_only = TRUE)
+ if("lock")
+ if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL)
+ return TRUE
+ ert.control_doors("lock", external_only = TRUE)
+ if("unlock")
+ if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL)
+ return TRUE
+ ert.control_doors("unlock", external_only = TRUE)
if("move")
if(ert.mode != SHUTTLE_IDLE)
to_chat(usr, SPAN_WARNING("You can't move to a new destination whilst in transit."))
@@ -217,29 +308,17 @@
SSshuttle.moveShuttle(ert.id, dock.id, TRUE)
to_chat(usr, SPAN_NOTICE("You begin the launch sequence to [dock]."))
return TRUE
- if("button-push")
- playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1)
- return FALSE
- if("open")
- if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL)
- return TRUE
- ert.control_doors("open", external_only = TRUE)
- if("close")
- if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL)
- return TRUE
- ert.control_doors("close", external_only = TRUE)
- if("lockdown")
- if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL)
- return TRUE
- ert.control_doors("force-lock", external_only = TRUE)
- if("lock")
- if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL)
- return TRUE
- ert.control_doors("lock", external_only = TRUE)
- if("unlock")
- if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL)
- return TRUE
- ert.control_doors("unlock", external_only = TRUE)
+ if("launch_home")
+ if(!must_launch_home)
+ return
+
+ if(ert.mode != SHUTTLE_IDLE)
+ to_chat(ui.user, SPAN_WARNING("Unable to return home."))
+ balloon_alert(ui.user, "can't go home!")
+ return
+
+ launch_home()
+ return TRUE
/obj/structure/machinery/computer/shuttle/ert/attack_hand(mob/user)
. = ..(user)
@@ -257,6 +336,8 @@
/obj/structure/machinery/computer/shuttle/ert/small/get_landing_zones()
. = list()
for(var/obj/docking_port/stationary/emergency_response/dock in SSshuttle.stationary)
+ if(!is_mainship_level(dock.z))
+ continue
if(istype(dock, /obj/docking_port/stationary/emergency_response/external/hangar_port))
continue
if(istype(dock, /obj/docking_port/stationary/emergency_response/external/hangar_starboard))
@@ -273,6 +354,8 @@
/obj/structure/machinery/computer/shuttle/ert/big/get_landing_zones()
. = list()
for(var/obj/docking_port/stationary/emergency_response/dock in SSshuttle.stationary)
+ if(!is_mainship_level(dock.z))
+ continue
. += list(dock)
/obj/structure/machinery/computer/shuttle/lifeboat
diff --git a/code/modules/shuttle/computers/dropship_computer.dm b/code/modules/shuttle/computers/dropship_computer.dm
index 1301a0c0925d..92196cb07e2e 100644
--- a/code/modules/shuttle/computers/dropship_computer.dm
+++ b/code/modules/shuttle/computers/dropship_computer.dm
@@ -141,10 +141,13 @@
// if the dropship has crashed don't allow more interactions
var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttleId)
if(shuttle.mode == SHUTTLE_CRASHED)
- to_chat(user, SPAN_NOTICE("\The [src] is not responsive"))
+ to_chat(user, SPAN_NOTICE("[src] is unresponsive."))
return
if(dropship_control_lost)
+ if(shuttle.is_hijacked)
+ to_chat(user, SPAN_WARNING("The shuttle is not responding due to an unauthorized access attempt."))
+ return
var/remaining_time = timeleft(door_control_cooldown) / 10
to_chat(user, SPAN_WARNING("The shuttle is not responding due to an unauthorized access attempt. In large text it says the lockout will be automatically removed in [remaining_time] seconds."))
if(!skillcheck(user, SKILL_PILOT, SKILL_PILOT_EXPERT))
@@ -324,14 +327,14 @@
colonial_marines.add_current_round_status_to_end_results("Hijack")
/obj/structure/machinery/computer/shuttle/dropship/flight/proc/remove_door_lock()
+ if(door_control_cooldown)
+ deltimer(door_control_cooldown)
+ door_control_cooldown = null
var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttleId)
if(shuttle.is_hijacked)
return
playsound(loc, 'sound/machines/terminal_success.ogg', KEYBOARD_SOUND_VOLUME, 1)
dropship_control_lost = FALSE
- if(door_control_cooldown)
- deltimer(door_control_cooldown)
- door_control_cooldown = null
/obj/structure/machinery/computer/shuttle/dropship/flight/ui_data(mob/user)
var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttleId)
diff --git a/code/modules/shuttle/computers/escape_pod_computer.dm b/code/modules/shuttle/computers/escape_pod_computer.dm
index c45ac7d56102..2af71fadaddb 100644
--- a/code/modules/shuttle/computers/escape_pod_computer.dm
+++ b/code/modules/shuttle/computers/escape_pod_computer.dm
@@ -55,7 +55,7 @@
.["docking_status"] = STATE_LAUNCHED
var/obj/structure/machinery/door/door = shuttle.door_handler.doors[1]
.["door_state"] = door.density
- .["door_lock"] = shuttle.door_handler.is_locked
+ .["door_lock"] = shuttle.door_handler.status == SHUTTLE_DOOR_LOCKED
.["can_delay"] = TRUE//launch_status[2]
.["launch_without_evac"] = launch_without_evac
@@ -238,7 +238,7 @@
/obj/structure/machinery/door/airlock/evacuation/Destroy()
if(linked_shuttle)
- linked_shuttle.mode = SHUTTLE_CRASHED
+ linked_shuttle.set_mode(SHUTTLE_CRASHED)
linked_shuttle.door_handler.doors -= list(src)
. = ..()
diff --git a/code/modules/shuttle/docking.dm b/code/modules/shuttle/docking.dm
index a21ec330d4c9..63e220deadc6 100644
--- a/code/modules/shuttle/docking.dm
+++ b/code/modules/shuttle/docking.dm
@@ -1,7 +1,5 @@
/// This is the main proc. It instantly moves our mobile port to stationary port `new_dock`.
/obj/docking_port/mobile/proc/initiate_docking(obj/docking_port/stationary/new_dock, movement_direction, force=FALSE)
- // Crashing this ship with NO SURVIVORS
-
if(new_dock.get_docked() == src)
remove_ripples()
return DOCKING_SUCCESS
diff --git a/code/modules/shuttle/dropship_hijack.dm b/code/modules/shuttle/dropship_hijack.dm
index c01445be5b5b..73150f5bfc08 100644
--- a/code/modules/shuttle/dropship_hijack.dm
+++ b/code/modules/shuttle/dropship_hijack.dm
@@ -176,13 +176,14 @@
turfs += get_area_turfs(/area/almayer/shipboard/brig/cic_hallway)
turfs += get_area_turfs(/area/almayer/shipboard/brig/cryo)
turfs += get_area_turfs(/area/almayer/shipboard/brig/evidence_storage)
- turfs += get_area_turfs(/area/almayer/shipboard/brig/execution)
turfs += get_area_turfs(/area/almayer/shipboard/brig/general_equipment)
turfs += get_area_turfs(/area/almayer/shipboard/brig/lobby)
- turfs += get_area_turfs(/area/almayer/shipboard/brig/main_office)
+ turfs += get_area_turfs(/area/almayer/shipboard/brig/starboard_hallway)
turfs += get_area_turfs(/area/almayer/shipboard/brig/perma)
turfs += get_area_turfs(/area/almayer/shipboard/brig/processing)
- turfs += get_area_turfs(/area/almayer/shipboard/brig/surgery)
+ turfs += get_area_turfs(/area/almayer/shipboard/brig/medical)
+ turfs += get_area_turfs(/area/almayer/shipboard/brig/mp_bunks)
+ turfs += get_area_turfs(/area/almayer/shipboard/brig/chief_mp_office)
turfs += get_area_turfs(/area/almayer/command/cichallway)
turfs += get_area_turfs(/area/almayer/command/cic)
if("Upper deck Midship")
@@ -191,14 +192,13 @@
turfs += get_area_turfs(/area/almayer/medical/containment)
turfs += get_area_turfs(/area/almayer/medical/containment/cell)
turfs += get_area_turfs(/area/almayer/medical/medical_science)
- turfs += get_area_turfs(/area/almayer/medical/testlab)
turfs += get_area_turfs(/area/almayer/medical/hydroponics)
if("Upper deck Aftship")
turfs += get_area_turfs(/area/almayer/engineering/upper_engineering)
turfs += get_area_turfs(/area/almayer/engineering/laundry)
if("Lower deck Foreship")
turfs += get_area_turfs(/area/almayer/hallways/hangar)
- turfs += get_area_turfs(/area/almayer/hallways/vehiclehangar)
+ turfs += get_area_turfs(/area/almayer/hallways/lower/vehiclehangar)
if("Lower deck Midship")
turfs += get_area_turfs(/area/almayer/medical/chemistry)
turfs += get_area_turfs(/area/almayer/medical/lower_medical_lobby)
diff --git a/code/modules/shuttle/helpers.dm b/code/modules/shuttle/helpers.dm
index 6b29f155582e..9c8d817ec237 100644
--- a/code/modules/shuttle/helpers.dm
+++ b/code/modules/shuttle/helpers.dm
@@ -19,7 +19,7 @@
if(!door_controllers[direction])
var/datum/door_controller/single/new_controller = new()
new_controller.label = label
- new_controller.is_locked = FALSE
+ new_controller.status = SHUTTLE_DOOR_UNLOCKED
door_controllers[direction] = new_controller
var/datum/door_controller/single/controller = door_controllers[direction]
@@ -29,12 +29,12 @@
if(direction == "all")
for(var/i in door_controllers)
var/datum/door_controller/single/control = door_controllers[i]
- if(!control.is_locked)
+ if(control.status != SHUTTLE_DOOR_LOCKED)
return FALSE
return TRUE
if(door_controllers[direction])
var/datum/door_controller/single/single_controller = door_controllers[direction]
- return single_controller.is_locked
+ return single_controller.status == SHUTTLE_DOOR_LOCKED
else
WARNING("Direction [direction] does not exist.")
return FALSE
@@ -60,9 +60,9 @@
for(var/direction in door_controllers)
var/datum/door_controller/single/controller = door_controllers[direction]
- var/list/door_data = list("id" = direction, "value" = controller.is_locked)
+ var/list/door_data = list("id" = direction, "value" = controller.status)
. += list(door_data)
- if(!controller.is_locked)
+ if(controller.status == SHUTTLE_DOOR_UNLOCKED)
all_locked = FALSE
var/list/door_data = list("id" = "all", "value" = all_locked)
@@ -74,7 +74,7 @@
/datum/door_controller/single
var/label = "dropship"
var/list/doors = list()
- var/is_locked = FALSE
+ var/status = SHUTTLE_DOOR_UNLOCKED
/datum/door_controller/single/Destroy(force, ...)
. = ..()
@@ -93,23 +93,29 @@
if("close")
INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, close))
if("force-lock")
+ if (status == SHUTTLE_DOOR_BROKEN)
+ continue
INVOKE_ASYNC(src, PROC_REF(lockdown_door), door)
- is_locked = TRUE
+ status = SHUTTLE_DOOR_LOCKED
if("lock")
INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, lock))
- is_locked = TRUE
+ if (status != SHUTTLE_DOOR_BROKEN)
+ status = SHUTTLE_DOOR_LOCKED
if("unlock")
INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, unlock))
- is_locked = FALSE
+ if (status != SHUTTLE_DOOR_BROKEN)
+ status = SHUTTLE_DOOR_UNLOCKED
if("force-lock-launch")
if(asynchronous)
INVOKE_ASYNC(src, PROC_REF(lockdown_door_launch), door)
else
lockdown_door_launch(door)
- is_locked = TRUE
+ if (status != SHUTTLE_DOOR_BROKEN)
+ status = SHUTTLE_DOOR_LOCKED
if("force-unlock")
INVOKE_ASYNC(src, PROC_REF(force_lock_open_door), door)
- is_locked = FALSE
+ if (status != SHUTTLE_DOOR_BROKEN)
+ status = SHUTTLE_DOOR_UNLOCKED
else
CRASH("Unknown door command [action]")
diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm
index 85fc38bf5f1b..5e8d1db63716 100644
--- a/code/modules/shuttle/shuttle.dm
+++ b/code/modules/shuttle/shuttle.dm
@@ -380,10 +380,82 @@
var/shuttle_flags = NONE
+#define WORLDMAXX_CUTOFF (world.maxx + 1)
+#define WORLDMAXY_CUTOFF (world.maxx + 1)
+/**
+ * Calculated and populates the information used for docking and some internal vars.
+ * This can also be used to calculate from shuttle_areas so that you can expand/shrink shuttles!
+ *
+ * Arguments:
+ * * loading_from - The template that the shuttle was loaded from, if not given we iterate shuttle_areas to calculate information instead
+ */
+/obj/docking_port/mobile/proc/calculate_docking_port_information(datum/map_template/shuttle/loading_from)
+ var/port_x_offset = loading_from?.port_x_offset
+ var/port_y_offset = loading_from?.port_y_offset
+ var/width = loading_from?.width
+ var/height = loading_from?.height
+ if(!loading_from)
+ if(!length(shuttle_areas))
+ CRASH("Attempted to calculate a docking port's information without a template before it was assigned any areas!")
+ // no template given, use shuttle_areas to calculate width and height
+ var/min_x = -1
+ var/min_y = -1
+ var/max_x = WORLDMAXX_CUTOFF
+ var/max_y = WORLDMAXY_CUTOFF
+ for(var/area/area as anything in shuttle_areas)
+ for(var/turf/turf in area)
+ min_x = max(turf.x, min_x)
+ max_x = min(turf.x, max_x)
+ min_y = max(turf.y, min_y)
+ max_y = min(turf.y, max_y)
+ CHECK_TICK
+
+ if(min_x == -1 || max_x == WORLDMAXX_CUTOFF)
+ CRASH("Failed to locate shuttle boundaries when iterating through shuttle areas, somehow.")
+ if(min_y == -1 || max_y == WORLDMAXY_CUTOFF)
+ CRASH("Failed to locate shuttle boundaries when iterating through shuttle areas, somehow.")
+
+ width = (max_x - min_x) + 1
+ height = (max_y - min_y) + 1
+ port_x_offset = min_x - x
+ port_y_offset = min_y - y
+
+ if(dir in list(EAST, WEST))
+ src.width = height
+ src.height = width
+ else
+ src.width = width
+ src.height = height
+
+ switch(dir)
+ if(NORTH)
+ dwidth = port_x_offset - 1
+ dheight = port_y_offset - 1
+ if(EAST)
+ dwidth = height - port_y_offset
+ dheight = port_x_offset - 1
+ if(SOUTH)
+ dwidth = width - port_x_offset
+ dheight = height - port_y_offset
+ if(WEST)
+ dwidth = port_y_offset - 1
+ dheight = width - port_x_offset
+#undef WORLDMAXX_CUTOFF
+#undef WORLDMAXY_CUTOFF
+
/obj/docking_port/mobile/register()
. = ..()
SSshuttle.mobile += src
+/**
+ * Actions to be taken after shuttle is loaded and has been moved to its final location
+ *
+ * Arguments:
+ * * replace - TRUE if this shuttle is replacing an existing one. FALSE by default.
+ */
+/obj/docking_port/mobile/proc/postregister(replace = FALSE)
+ return
+
/obj/docking_port/mobile/Destroy(force)
if(force)
QDEL_NULL(alarm_sound_loop)
@@ -442,6 +514,10 @@
// Called after the shuttle is loaded from template
/obj/docking_port/mobile/proc/linkup(datum/map_template/shuttle/template, obj/docking_port/stationary/dock)
+
+ // ================== CM Change ==================
+ // This is gone in /tg/ backend but kept for historical reasons
+ // Suspect this is supposed to be handled in register
var/list/static/shuttle_id = list()
var/idnum = ++shuttle_id[id]
if(idnum > 1)
@@ -449,12 +525,12 @@
id = "[id][idnum]"
if(name == initial(name))
name = "[name] [idnum]"
- for(var/place in shuttle_areas)
- var/area/area = place
- area.connect_to_shuttle(src, dock, idnum, FALSE)
- for(var/each in place)
- var/atom/atom = each
- atom.connect_to_shuttle(src, dock, idnum, FALSE)
+ // ================ END CM Change ================
+
+ for(var/area/place as anything in shuttle_areas)
+ place.connect_to_shuttle(TRUE, src, dock)
+ for(var/atom/individual_atoms in place)
+ individual_atoms.connect_to_shuttle(TRUE, src, dock)
//this is a hook for custom behaviour. Maybe at some point we could add checks to see if engines are intact
@@ -716,6 +792,10 @@
else if(error)
setTimer(20)
return
+ if(mode == SHUTTLE_CRASHED)
+ destination = null
+ timer = 0
+ return
if(rechargeTime)
set_mode(SHUTTLE_RECHARGING)
destination = null
@@ -734,6 +814,8 @@
setTimer(callTime * engine_coeff())
enterTransit()
return
+ if(SHUTTLE_CRASHED)
+ return
set_idle()
@@ -1004,3 +1086,15 @@
to_chat(user, SPAN_WARNING("Shuttle already in transit."))
return FALSE
return TRUE
+
+/obj/docking_port/mobile/proc/get_transit_path_type()
+ . = /turf/open/space/transit
+ switch(preferred_direction)
+ if(NORTH)
+ return /turf/open/space/transit/north
+ if(SOUTH)
+ return /turf/open/space/transit/south
+ if(EAST)
+ return /turf/open/space/transit/east
+ if(WEST)
+ return /turf/open/space/transit/west
diff --git a/code/modules/shuttle/shuttles/dropship.dm b/code/modules/shuttle/shuttles/dropship.dm
index f741df301bbb..cb04d9a81ddb 100644
--- a/code/modules/shuttle/shuttles/dropship.dm
+++ b/code/modules/shuttle/shuttles/dropship.dm
@@ -43,6 +43,9 @@
door_control.add_door(air, "port")
if("aft_door")
door_control.add_door(air, "aft")
+ var/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/hatch = air
+ if(istype(hatch))
+ hatch.linked_dropship = src
RegisterSignal(src, COMSIG_DROPSHIP_ADD_EQUIPMENT, PROC_REF(add_equipment))
RegisterSignal(src, COMSIG_DROPSHIP_REMOVE_EQUIPMENT, PROC_REF(remove_equipment))
@@ -81,10 +84,12 @@
door_control.add_door(air, "port")
if("aft_door")
door_control.add_door(air, "aft")
+ RegisterSignal(src, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_dir_change))
/obj/docking_port/mobile/marine_dropship/Destroy(force)
. = ..()
qdel(door_control)
+ UnregisterSignal(src, COMSIG_ATOM_DIR_CHANGE)
/obj/docking_port/mobile/marine_dropship/proc/control_doors(action, direction, force, asynchronous = TRUE)
// its been locked down by the queen
@@ -118,15 +123,27 @@
set_security_level(SEC_LEVEL_RED)
return
+/obj/docking_port/mobile/marine_dropship/proc/on_dir_change(datum/source, old_dir, new_dir)
+ SIGNAL_HANDLER
+ for(var/place in shuttle_areas)
+ for(var/obj/structure/machinery/door/air in place)
+ air.handle_multidoor(old_dir, new_dir)
+
/obj/docking_port/mobile/marine_dropship/alamo
name = "Alamo"
id = DROPSHIP_ALAMO
- preferred_direction = SOUTH
+ preferred_direction = SOUTH // If you are changing this, please update the dir of the path below as well
+
+/obj/docking_port/mobile/marine_dropship/alamo/get_transit_path_type()
+ return /turf/open/space/transit/dropship/alamo
/obj/docking_port/mobile/marine_dropship/normandy
name = "Normandy"
id = DROPSHIP_NORMANDY
- preferred_direction = SOUTH
+ preferred_direction = SOUTH // If you are changing this, please update the dir of the path below as well
+
+/obj/docking_port/mobile/marine_dropship/normandy/get_transit_path_type()
+ return /turf/open/space/transit/dropship/normandy
/obj/docking_port/mobile/marine_dropship/check()
. = ..()
@@ -287,7 +304,7 @@
/obj/docking_port/stationary/marine_dropship/crash_site/on_arrival(obj/docking_port/mobile/arriving_shuttle)
. = ..()
- arriving_shuttle.mode = SHUTTLE_CRASHED
+ arriving_shuttle.set_mode(SHUTTLE_CRASHED)
for(var/mob/living/carbon/affected_mob in (GLOB.alive_human_list + GLOB.living_xeno_list)) //knock down mobs
if(affected_mob.z != z)
continue
diff --git a/code/modules/shuttle/shuttles/ert.dm b/code/modules/shuttle/shuttles/ert.dm
index b619645c501c..f0224addadf6 100644
--- a/code/modules/shuttle/shuttles/ert.dm
+++ b/code/modules/shuttle/shuttles/ert.dm
@@ -2,14 +2,6 @@
ERT Shuttles
*/
-#define ERT_SHUTTLE_DEFAULT_RECHARGE 90 SECONDS
-
-#define ADMIN_LANDING_PAD_1 "base-ert1"
-#define ADMIN_LANDING_PAD_2 "base-ert2"
-#define ADMIN_LANDING_PAD_3 "base-ert3"
-#define ADMIN_LANDING_PAD_4 "base-ert4"
-#define ADMIN_LANDING_PAD_5 "base-ert5"
-
// Base ERT Shuttle
/obj/docking_port/mobile/emergency_response
name = "ERT Shuttle"
@@ -21,6 +13,8 @@
rechargeTime = ERT_SHUTTLE_DEFAULT_RECHARGE // 90s cooldown to recharge
var/list/doors = list()
var/list/external_doors = list()
+ var/datum/emergency_call/distress_beacon
+ var/list/local_landmarks = list()
/obj/docking_port/mobile/emergency_response/Initialize(mapload)
. = ..(mapload)
@@ -31,11 +25,34 @@
air.breakable = FALSE
air.indestructible = TRUE
air.unacidable = TRUE
+ RegisterSignal(src, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_dir_change))
/obj/docking_port/mobile/emergency_response/enterTransit()
control_doors("force-lock-launch", force = TRUE, external_only = TRUE)
+ UnregisterSignal(src, COMSIG_ATOM_DIR_CHANGE)
..()
+/obj/docking_port/mobile/emergency_response/register()
+ . = ..()
+
+ for(var/turf/current_turf as anything in return_turfs())
+ for(var/obj/effect/landmark/landmark in current_turf.GetAllContents())
+ LAZYADD(local_landmarks[landmark.type], landmark)
+
+/obj/docking_port/mobile/emergency_response/initiate_docking(obj/docking_port/stationary/new_dock, movement_direction, force)
+ . = ..()
+ if(. != DOCKING_SUCCESS)
+ return
+
+ if(!is_mainship_level(z))
+ return
+
+ if(!distress_beacon || !distress_beacon.home_base)
+ return
+
+ var/obj/structure/machinery/computer/shuttle/ert/console = getControlConsole()
+ console.must_launch_home = TRUE
+
/obj/docking_port/mobile/emergency_response/proc/control_doors(action, force = FALSE, external_only = FALSE)
var/list/door_list = doors
if(external_only)
@@ -77,10 +94,10 @@
air.lock()
air.safe = 1
-/obj/docking_port/mobile/emergency_response/setDir(newdir)
- . = ..()
+/obj/docking_port/mobile/emergency_response/proc/on_dir_change(datum/source, old_dir, new_dir)
+ SIGNAL_HANDLER
for(var/obj/structure/machinery/door/shuttle_door in doors)
- shuttle_door.handle_multidoor()
+ shuttle_door.handle_multidoor(old_dir, new_dir)
// ERT Shuttle 1
/obj/docking_port/mobile/emergency_response/ert1
@@ -182,6 +199,7 @@
width = 7
height = 13
var/is_external = FALSE
+ var/lockdown_on_land = FALSE
/obj/docking_port/stationary/emergency_response/on_arrival(obj/docking_port/mobile/arriving_shuttle)
. = ..()
@@ -189,6 +207,12 @@
var/obj/docking_port/mobile/emergency_response/ert = arriving_shuttle
ert.control_doors("unlock", force = FALSE)
+ if(lockdown_on_land)
+ var/obj/structure/machinery/computer/shuttle/ert/console = arriving_shuttle.getControlConsole()
+ console.disable()
+ console.mission_accomplished = TRUE
+ lockdown_on_land = FALSE
+
/obj/docking_port/stationary/emergency_response/port1
name = "Almayer starboard landing pad"
dir = NORTH
@@ -254,7 +278,7 @@
width = 17
height = 29
airlock_id = "s_umbilical"
- airlock_area = /area/almayer/hallways/port_umbilical
+ airlock_area = /area/almayer/hallways/lower/port_umbilical
/obj/docking_port/stationary/emergency_response/external/hangar_starboard
name = "Almayer hanger starboard external airlock"
@@ -263,7 +287,7 @@
width = 17
height = 29
airlock_id = "n_umbilical"
- airlock_area = /area/almayer/hallways/starboard_umbilical
+ airlock_area = /area/almayer/hallways/lower/starboard_umbilical
// These are docking ports not on the almayer
/obj/docking_port/stationary/emergency_response/idle_port1
@@ -310,24 +334,24 @@
/datum/map_template/shuttle/response_ert
name = "Response Shuttle"
- shuttle_id = "ert_response_shuttle"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT1
/datum/map_template/shuttle/pmc_ert
name = "PMC Shuttle"
- shuttle_id = "ert_pmc_shuttle"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT2
/datum/map_template/shuttle/upp_ert
name = "UPP Shuttle"
- shuttle_id = "ert_upp_shuttle"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT3
/datum/map_template/shuttle/twe_ert
name = "TWE Shuttle"
- shuttle_id = "ert_twe_shuttle"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT4
/datum/map_template/shuttle/small_ert
name = "Rescue Shuttle"
- shuttle_id = "ert_small_shuttle_north"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT_SMALL
/datum/map_template/shuttle/big_ert
name = "Boarding Shuttle"
- shuttle_id = "ert_shuttle_big"
+ shuttle_id = MOBILE_SHUTTLE_ID_ERT_BIG
diff --git a/code/modules/shuttle/shuttles/trijent_elevator.dm b/code/modules/shuttle/shuttles/trijent_elevator.dm
index 457c150212c0..ff10485e8d5a 100644
--- a/code/modules/shuttle/shuttles/trijent_elevator.dm
+++ b/code/modules/shuttle/shuttles/trijent_elevator.dm
@@ -37,12 +37,6 @@
. = ..()
door_control.control_doors("force-lock-launch", "all", force=TRUE)
-/obj/docking_port/mobile/trijent_elevator/linkup(datum/map_template/shuttle/template, obj/docking_port/stationary/dock)
- ..()
- var/datum/map_template/shuttle/trijent_elevator/elev = template
- elevator_network = elev.elevator_network
- log_debug("Adding network [elev.elevator_network] to [id]")
-
/obj/docking_port/stationary/trijent_elevator
dir=NORTH
width=7
diff --git a/code/modules/shuttle/vehicle_elevator.dm b/code/modules/shuttle/vehicle_elevator.dm
index d2e102933fd8..8f6a9025ba4f 100644
--- a/code/modules/shuttle/vehicle_elevator.dm
+++ b/code/modules/shuttle/vehicle_elevator.dm
@@ -7,10 +7,11 @@
id = MOBILE_SHUTTLE_VEHICLE_ELEVATOR
- callTime = 5 SECONDS
- ignitionTime = 1 SECONDS
+ // Call and ""ignition"" times are set to line up with the sound effects.
+ callTime = 4 SECONDS
+ ignitionTime = 5 SECONDS
- ignition_sound = 'sound/machines/asrs_raising.ogg'
+ ignition_sound = 'sound/machines/asrs_lowering.ogg'
ambience_idle = null
ambience_flight = null
@@ -28,19 +29,50 @@
railings += R
/obj/docking_port/mobile/vehicle_elevator/on_ignition()
- for(var/i in gears)
- var/obj/structure/machinery/gear/G = i
- G.start_moving()
-
-/obj/docking_port/mobile/vehicle_elevator/afterShuttleMove()
+ . = ..()
+ // If the elevator isn't in the vehicle bay, start the gears immediately.
if(!is_mainship_level(z))
+ start_gears()
+
+ // Play the 'raising' sound effect at the destination docking port manually.
+ // `landing_sound` can't be used since that only plays on the elevator itself,
+ // and this sound file is too long for that either way.
+ playsound(destination, 'sound/machines/asrs_raising.ogg', 60)
return
- for(var/i in gears)
- var/obj/structure/machinery/gear/G = i
- G.stop_moving()
- for(var/i in railings)
- var/obj/structure/machinery/door/poddoor/railing/R = i
- INVOKE_ASYNC(R, TYPE_PROC_REF(/obj/structure/machinery/door, open))
+
+ // If the elevator *is* in the vehicle bay, close the railings and start the gears when it leaves.
+ close_railings()
+ addtimer(CALLBACK(src, PROC_REF(start_gears)), ignitionTime)
+
+/obj/docking_port/mobile/vehicle_elevator/afterShuttleMove()
+ . = ..()
+ // Check `get_docked()` in order to skip this if it just moved to the 'transit' port.
+ if(get_docked() == destination)
+ stop_gears()
+
+ // If the elevator moved to the vehicle bay, open the railings.
+ if(is_mainship_level(z))
+ open_railings()
+
+/obj/docking_port/mobile/vehicle_elevator/proc/start_gears()
+ for(var/obj/structure/machinery/gear/gear as anything in gears)
+ gear.start_moving()
+
+/obj/docking_port/mobile/vehicle_elevator/proc/stop_gears()
+ for(var/obj/structure/machinery/gear/gear as anything in gears)
+ gear.stop_moving()
+
+/obj/docking_port/mobile/vehicle_elevator/proc/open_railings()
+ for(var/obj/structure/machinery/door/poddoor/railing/railing as anything in railings)
+ // If the railing isn't already open.
+ if(railing.density)
+ railing.open()
+
+/obj/docking_port/mobile/vehicle_elevator/proc/close_railings()
+ for(var/obj/structure/machinery/door/poddoor/railing/railing as anything in railings)
+ // If the railing isn't already closed.
+ if(!railing.density)
+ railing.close()
/obj/docking_port/stationary/vehicle_elevator
name = "Root Vehicle Elevator Dock"
@@ -55,6 +87,46 @@
id = "almayer vehicle"
roundstart_template = /datum/map_template/shuttle/vehicle
+ //elevator effects (four so the entire elevator doesn't vanish when there's one opaque obstacle between you and the actual elevator loc).
+ var/obj/effect/elevator/vehicle/SW
+ var/obj/effect/elevator/vehicle/SE
+ var/obj/effect/elevator/vehicle/NW
+ var/obj/effect/elevator/vehicle/NE
+
+/obj/docking_port/stationary/vehicle_elevator/almayer/Initialize(mapload)
+ . = ..()
+ // Create and offset some effects for the elevator shaft sprite.
+ SW = new(locate(src.x - 2, src.y - 2, src.z))
+
+ SE = new(locate(src.x + 2, src.y - 2, src.z))
+ SE.pixel_x = -128
+
+ NW = new(locate(src.x - 2, src.y + 2, src.z))
+ NW.pixel_y = -128
+
+ NE = new(locate(src.x + 2, src.y + 2, src.z))
+ NE.pixel_x = -128
+ NE.pixel_y = -128
+
+ SW.invisibility = INVISIBILITY_ABSTRACT
+ SE.invisibility = INVISIBILITY_ABSTRACT
+ NW.invisibility = INVISIBILITY_ABSTRACT
+ NE.invisibility = INVISIBILITY_ABSTRACT
+
+// Make the elevator shaft visible when the elevator leaves.
+/obj/docking_port/stationary/vehicle_elevator/almayer/on_departure(obj/docking_port/mobile/departing_shuttle)
+ SW.invisibility = 0
+ SE.invisibility = 0
+ NW.invisibility = 0
+ NE.invisibility = 0
+
+// And make it invisible again when the elevator returns.
+/obj/docking_port/stationary/vehicle_elevator/almayer/on_arrival(obj/docking_port/mobile/arriving_shuttle)
+ SW.invisibility = INVISIBILITY_ABSTRACT
+ SE.invisibility = INVISIBILITY_ABSTRACT
+ NW.invisibility = INVISIBILITY_ABSTRACT
+ NE.invisibility = INVISIBILITY_ABSTRACT
+
/obj/docking_port/stationary/vehicle_elevator/adminlevel
name = "Adminlevel Vehicle Elevator Dock"
id = "adminlevel vehicle"
diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm
index dc6f3a682b24..a7dbe35a9776 100644
--- a/code/modules/shuttles/shuttle.dm
+++ b/code/modules/shuttles/shuttle.dm
@@ -218,7 +218,7 @@
if(iselevator)
if(istype(T,/turf/open/space))
if(is_mainship_level(T.z))
- T.ChangeTurf(/turf/open/floor/almayer/empty)
+ T.ChangeTurf(/turf/open/floor/almayer/empty/requisitions)
else
T.ChangeTurf(/turf/open/gm/empty)
else if(istype(T,/turf/open/space))
diff --git a/code/modules/shuttles/shuttle_supply.dm b/code/modules/shuttles/shuttle_supply.dm
index 7eb7b96eb2e8..acbcb2937ab9 100644
--- a/code/modules/shuttles/shuttle_supply.dm
+++ b/code/modules/shuttles/shuttle_supply.dm
@@ -10,10 +10,10 @@
var/max_late_time = 300
var/railing_id = "supply_elevator_railing"
var/gear_id = "supply_elevator_gear"
- var/obj/effect/elevator/supply/SW //elevator effects (four so the entire elevator doesn't vanish when
- var/obj/effect/elevator/supply/SE //there's one opaque obstacle between you and the actual elevator loc).
- var/obj/effect/elevator/supply/NW
- var/obj/effect/elevator/supply/NE
+ var/obj/effect/elevator/SW //elevator effects (four so the entire elevator doesn't vanish when
+ var/obj/effect/elevator/SE //there's one opaque obstacle between you and the actual elevator loc).
+ var/obj/effect/elevator/NW
+ var/obj/effect/elevator/NE
var/Elevator_x
var/Elevator_y
var/Elevator_z
@@ -34,15 +34,15 @@
Elevator_x = pick_loc().x
Elevator_y = pick_loc().y
Elevator_z = pick_loc().z
- SW = new /obj/effect/elevator/supply(locate(Elevator_x-2,Elevator_y-2,Elevator_z))
+ SW = new /obj/effect/elevator(locate(Elevator_x-2,Elevator_y-2,Elevator_z))
SW.vis_contents += elevator_animation
- SE = new /obj/effect/elevator/supply(locate(Elevator_x+2,Elevator_y-2,Elevator_z))
+ SE = new /obj/effect/elevator(locate(Elevator_x+2,Elevator_y-2,Elevator_z))
SE.pixel_x = -128
SE.vis_contents += elevator_animation
- NW = new /obj/effect/elevator/supply(locate(Elevator_x-2,Elevator_y+2,Elevator_z))
+ NW = new /obj/effect/elevator(locate(Elevator_x-2,Elevator_y+2,Elevator_z))
NW.pixel_y = -128
NW.vis_contents += elevator_animation
- NE = new /obj/effect/elevator/supply(locate(Elevator_x+2,Elevator_y+2,Elevator_z))
+ NE = new /obj/effect/elevator(locate(Elevator_x+2,Elevator_y+2,Elevator_z))
NE.pixel_x = -128
NE.pixel_y = -128
NE.vis_contents += elevator_animation
@@ -184,15 +184,3 @@
if(M.id == gear_id)
spawn()
M.icon_state = "gear"
-
-/obj/effect/landmark/vehicleelevator/Initialize(mapload, ...)
- . = ..()
- GLOB.vehicle_elevator = get_turf(src)
- return INITIALIZE_HINT_QDEL
-
-/datum/shuttle/ferry/supply/vehicle
- railing_id = "vehicle_elevator_railing"
- gear_id = "vehicle_elevator_gears"
-
-/datum/shuttle/ferry/supply/vehicle/pick_loc()
- return GLOB.vehicle_elevator
diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm
index 8be96f27404a..15622228e91f 100644
--- a/code/modules/tgs/core/core.dm
+++ b/code/modules/tgs/core/core.dm
@@ -166,3 +166,11 @@
var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs)
if(api)
return api.Visibility()
+
+/world/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE)
+ var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs)
+ if(api)
+ if(!istype(parameters, /list))
+ parameters = list()
+
+ return api.TriggerEvent(event_name, parameters, wait_for_completion)
diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm
index 07ce3b684584..898516f12486 100644
--- a/code/modules/tgs/core/datum.dm
+++ b/code/modules/tgs/core/datum.dm
@@ -17,7 +17,7 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null)
world.sleep_offline = FALSE // https://www.byond.com/forum/post/2894866
del(world)
world.sleep_offline = FALSE // just in case, this is BYOND after all...
- sleep(1)
+ sleep(world.tick_lag)
TGS_DEBUG_LOG("BYOND DIDN'T TERMINATE THE WORLD!!! TICK IS: [world.time], sleep_offline: [world.sleep_offline]")
/datum/tgs_api/latest
@@ -69,3 +69,6 @@ TGS_PROTECT_DATUM(/datum/tgs_api)
/datum/tgs_api/proc/Visibility()
return TGS_UNIMPLEMENTED
+
+/datum/tgs_api/proc/TriggerEvent(event_name, list/parameters, wait_for_completion)
+ return FALSE
diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm
index 945e2e411767..7c87922750b9 100644
--- a/code/modules/tgs/v4/api.dm
+++ b/code/modules/tgs/v4/api.dm
@@ -181,7 +181,7 @@
var/json = json_encode(data)
while(requesting_new_port && !override_requesting_new_port)
- sleep(1)
+ sleep(world.tick_lag)
//we need some port open at this point to facilitate return communication
if(!world.port)
@@ -209,7 +209,7 @@
requesting_new_port = FALSE
while(export_lock)
- sleep(1)
+ sleep(world.tick_lag)
export_lock = TRUE
last_interop_response = null
@@ -217,7 +217,7 @@
text2file(json, server_commands_json_path)
for(var/I = 0; I < EXPORT_TIMEOUT_DS && !last_interop_response; ++I)
- sleep(1)
+ sleep(world.tick_lag)
if(!last_interop_response)
TGS_ERROR_LOG("Failed to get export result for: [json]")
diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm
index 616263098fd3..f4806f7adb97 100644
--- a/code/modules/tgs/v5/__interop_version.dm
+++ b/code/modules/tgs/v5/__interop_version.dm
@@ -1 +1 @@
-"5.8.0"
+"5.9.0"
diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm
index 1c7d67d20cdf..92c7a8388a71 100644
--- a/code/modules/tgs/v5/_defines.dm
+++ b/code/modules/tgs/v5/_defines.dm
@@ -14,6 +14,7 @@
#define DMAPI5_BRIDGE_COMMAND_KILL 4
#define DMAPI5_BRIDGE_COMMAND_CHAT_SEND 5
#define DMAPI5_BRIDGE_COMMAND_CHUNK 6
+#define DMAPI5_BRIDGE_COMMAND_EVENT 7
#define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier"
#define DMAPI5_PARAMETER_CUSTOM_COMMANDS "customCommands"
@@ -34,6 +35,7 @@
#define DMAPI5_BRIDGE_PARAMETER_VERSION "version"
#define DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE "chatMessage"
#define DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL "minimumSecurityLevel"
+#define DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION "eventInvocation"
#define DMAPI5_BRIDGE_RESPONSE_NEW_PORT "newPort"
#define DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION "runtimeInformation"
@@ -81,6 +83,7 @@
#define DMAPI5_TOPIC_COMMAND_SEND_CHUNK 9
#define DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK 10
#define DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST 11
+#define DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT 12
#define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType"
#define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand"
@@ -116,3 +119,9 @@
#define DMAPI5_CUSTOM_CHAT_COMMAND_NAME "name"
#define DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT "helpText"
#define DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY "adminOnly"
+
+#define DMAPI5_EVENT_ID "eventId"
+
+#define DMAPI5_EVENT_INVOCATION_NAME "eventName"
+#define DMAPI5_EVENT_INVOCATION_PARAMETERS "parameters"
+#define DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION "notifyCompletion"
diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm
index a5c064a8eaf1..95b8edd3ee5c 100644
--- a/code/modules/tgs/v5/api.dm
+++ b/code/modules/tgs/v5/api.dm
@@ -27,6 +27,8 @@
var/chunked_requests = 0
var/list/chunked_topics = list()
+ var/list/pending_events = list()
+
var/detached = FALSE
/datum/tgs_api/v5/New()
@@ -46,6 +48,10 @@
var/datum/tgs_version/api_version = ApiVersion()
version = null // we want this to be the TGS version, not the interop version
+
+ // sleep once to prevent an issue where world.Export on the first tick can hang indefinitely
+ sleep(world.tick_lag)
+
var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands(), DMAPI5_PARAMETER_TOPIC_PORT = GetTopicPort()))
if(!istype(bridge_response))
TGS_ERROR_LOG("Failed initial bridge request!")
@@ -125,7 +131,7 @@
TGS_DEBUG_LOG("RequireInitialBridgeResponse: Starting sleep")
logged = TRUE
- sleep(1)
+ sleep(world.tick_lag)
TGS_DEBUG_LOG("RequireInitialBridgeResponse: Passed")
@@ -249,6 +255,40 @@
WaitForReattach(TRUE)
return chat_channels.Copy()
+/datum/tgs_api/v5/TriggerEvent(event_name, list/parameters, wait_for_completion)
+ RequireInitialBridgeResponse()
+ WaitForReattach(TRUE)
+
+ if(interop_version.minor < 9)
+ TGS_WARNING_LOG("Interop version too low for custom events!")
+ return FALSE
+
+ var/str_parameters = list()
+ for(var/i in parameters)
+ str_parameters += "[i]"
+
+ var/list/response = Bridge(DMAPI5_BRIDGE_COMMAND_EVENT, list(DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION = list(DMAPI5_EVENT_INVOCATION_NAME = event_name, DMAPI5_EVENT_INVOCATION_PARAMETERS = str_parameters, DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION = wait_for_completion)))
+ if(!response)
+ return FALSE
+
+ var/event_id = response[DMAPI5_EVENT_ID]
+ if(!event_id)
+ return FALSE
+
+ TGS_DEBUG_LOG("Created event ID: [event_id]")
+ if(!wait_for_completion)
+ return TRUE
+
+ TGS_DEBUG_LOG("Waiting for completion of event ID: [event_id]")
+
+ while(!pending_events[event_id])
+ sleep(world.tick_lag)
+
+ TGS_DEBUG_LOG("Completed wait on event ID: [event_id]")
+ pending_events -= event_id
+
+ return TRUE
+
/datum/tgs_api/v5/proc/DecodeChannels(chat_update_json)
TGS_DEBUG_LOG("DecodeChannels()")
var/list/chat_channels_json = chat_update_json[DMAPI5_CHAT_UPDATE_CHANNELS]
diff --git a/code/modules/tgs/v5/bridge.dm b/code/modules/tgs/v5/bridge.dm
index a0ab35987670..0c5e701a32b6 100644
--- a/code/modules/tgs/v5/bridge.dm
+++ b/code/modules/tgs/v5/bridge.dm
@@ -65,7 +65,7 @@
if(detached)
// Wait up to one minute
for(var/i in 1 to 600)
- sleep(1)
+ sleep(world.tick_lag)
if(!detached && (!require_channels || length(chat_channels)))
break
@@ -77,8 +77,11 @@
/datum/tgs_api/v5/proc/PerformBridgeRequest(bridge_request)
WaitForReattach(FALSE)
+ TGS_DEBUG_LOG("Bridge request start")
// This is an infinite sleep until we get a response
var/export_response = world.Export(bridge_request)
+ TGS_DEBUG_LOG("Bridge request complete")
+
if(!export_response)
TGS_ERROR_LOG("Failed bridge request: [bridge_request]")
return
@@ -88,7 +91,7 @@
TGS_ERROR_LOG("Failed bridge request, missing content!")
return
- var/response_json = file2text(content)
+ var/response_json = TGS_FILE2TEXT_NATIVE(content)
if(!response_json)
TGS_ERROR_LOG("Failed bridge request, failed to load content!")
return
diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm
index 05e6c4e1b214..e1f2cb638578 100644
--- a/code/modules/tgs/v5/topic.dm
+++ b/code/modules/tgs/v5/topic.dm
@@ -176,6 +176,10 @@
var/list/reattach_response = TopicResponse(error_message)
reattach_response[DMAPI5_PARAMETER_CUSTOM_COMMANDS] = ListCustomCommands()
reattach_response[DMAPI5_PARAMETER_TOPIC_PORT] = GetTopicPort()
+
+ for(var/eventId in pending_events)
+ pending_events[eventId] = TRUE
+
return reattach_response
if(DMAPI5_TOPIC_COMMAND_SEND_CHUNK)
@@ -276,6 +280,15 @@
TGS_WORLD_ANNOUNCE(message)
return TopicResponse()
+ if(DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT)
+ var/event_id = topic_parameters[DMAPI5_EVENT_ID]
+ if (!istext(event_id))
+ return TopicResponse("Invalid or missing [DMAPI5_EVENT_ID]")
+
+ TGS_DEBUG_LOG("Completing event ID [event_id]...")
+ pending_events[event_id] = TRUE
+ return TopicResponse()
+
return TopicResponse("Unknown command: [command]")
/datum/tgs_api/v5/proc/WorldBroadcast(message)
diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm
index d531d4b7b9dd..237207fdfd05 100644
--- a/code/modules/tgs/v5/undefs.dm
+++ b/code/modules/tgs/v5/undefs.dm
@@ -14,6 +14,7 @@
#undef DMAPI5_BRIDGE_COMMAND_KILL
#undef DMAPI5_BRIDGE_COMMAND_CHAT_SEND
#undef DMAPI5_BRIDGE_COMMAND_CHUNK
+#undef DMAPI5_BRIDGE_COMMAND_EVENT
#undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER
#undef DMAPI5_PARAMETER_CUSTOM_COMMANDS
@@ -34,6 +35,7 @@
#undef DMAPI5_BRIDGE_PARAMETER_VERSION
#undef DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE
#undef DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL
+#undef DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION
#undef DMAPI5_BRIDGE_RESPONSE_NEW_PORT
#undef DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION
@@ -81,6 +83,7 @@
#undef DMAPI5_TOPIC_COMMAND_SEND_CHUNK
#undef DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK
#undef DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST
+#undef DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT
#undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE
#undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND
@@ -116,3 +119,9 @@
#undef DMAPI5_CUSTOM_CHAT_COMMAND_NAME
#undef DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT
#undef DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY
+
+#undef DMAPI5_EVENT_ID
+
+#undef DMAPI5_EVENT_INVOCATION_NAME
+#undef DMAPI5_EVENT_INVOCATION_PARAMETERS
+#undef DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION
diff --git a/code/modules/tgui/tgui_number_input.dm b/code/modules/tgui/tgui_number_input.dm
index 4c06b5333b6d..356448853db3 100644
--- a/code/modules/tgui/tgui_number_input.dm
+++ b/code/modules/tgui/tgui_number_input.dm
@@ -145,6 +145,7 @@
"min_value" = min_value,
"preferences" = list(),
"title" = title,
+ "integer_only" = integer_only
)
/datum/tgui_input_number/ui_data(mob/user)
diff --git a/code/modules/tgui_panel/ping_relay.dm b/code/modules/tgui_panel/ping_relay.dm
new file mode 100644
index 000000000000..36929a2e33b0
--- /dev/null
+++ b/code/modules/tgui_panel/ping_relay.dm
@@ -0,0 +1,52 @@
+GLOBAL_DATUM_INIT(relays_panel, /datum/ping_relay_tgui, new)
+
+/datum/tgui_panel/proc/ping_relays()
+ GLOB.relays_panel.tgui_interact(client.mob)
+
+/datum/ping_relay_tgui/tgui_interact(mob/user, datum/tgui/ui)
+ var/list/relay_ping_conf = CONFIG_GET(keyed_list/connection_relay_ping)
+ if(!length(relay_ping_conf))
+ to_chat(user, "There are no relays configured to test.")
+ return
+
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "PingRelaysPanel", "Relay Pings")
+ ui.open()
+ ui.set_autoupdate(FALSE)
+
+/datum/ping_relay_tgui/ui_state(mob/user)
+ return GLOB.always_state
+
+/datum/ping_relay_tgui/ui_static_data(mob/user)
+ var/list/data = list()
+ var/list/relay_names = list()
+ var/list/relay_pings = list()
+ var/list/relay_cons = list()
+
+ var/list/relay_ping_conf = CONFIG_GET(keyed_list/connection_relay_ping)
+ var/list/relay_con_conf = CONFIG_GET(keyed_list/connection_relay_con)
+ for(var/key in relay_ping_conf)
+ // assumption: keys are the same in both configs
+ relay_names += key
+ relay_pings += relay_ping_conf[key]
+ relay_cons += relay_con_conf[key]
+
+ data["relay_names"] = relay_names
+ data["relay_pings"] = relay_pings
+ data["relay_cons"] = relay_cons
+ return data
+
+/datum/ping_relay_tgui/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
+ . = ..()
+ if(.)
+ return
+
+ var/mob/user = ui.user
+
+ switch(action)
+ if("connect")
+ to_chat(user, "Now connecting via [params["desc"]]. Please wait...");
+ user << link(params["url"])
+ ui.close()
+ return
diff --git a/code/modules/tgui_panel/telemetry.dm b/code/modules/tgui_panel/telemetry.dm
index eb5c7d96a4d9..4ef1f06bfac0 100644
--- a/code/modules/tgui_panel/telemetry.dm
+++ b/code/modules/tgui_panel/telemetry.dm
@@ -86,7 +86,7 @@
// Check for a malformed history object
if (!row || row.len < 3 || (!row["ckey"] || !row["address"] || !row["computer_id"]))
- return
+ continue
/* TODO - Reintroduce this when we get a proper round ID tracking,
and we want to log it to database
@@ -103,7 +103,7 @@
continue
*/
- if (world.IsBanned(row["ckey"], row["address"], row["computer_id"], real_bans_only = TRUE))
+ if (world.IsBanned(row["ckey"], row["address"], row["computer_id"], real_bans_only = TRUE, is_telemetry = TRUE))
found = row
break
diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm
index f33f190d80e0..25338a4a3b5d 100644
--- a/code/modules/tgui_panel/tgui_panel.dm
+++ b/code/modules/tgui_panel/tgui_panel.dm
@@ -92,6 +92,9 @@
if(type == "telemetry")
analyze_telemetry(payload)
return TRUE
+ if(type == "act/ping_relays")
+ ping_relays()
+ return TRUE
/**
* public
diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm
index 90040ec9acf9..6f2b63e5b9e8 100644
--- a/code/modules/unit_tests/_unit_tests.dm
+++ b/code/modules/unit_tests/_unit_tests.dm
@@ -74,19 +74,24 @@
/// A trait source when adding traits through unit tests
#define TRAIT_SOURCE_UNIT_TESTS "unit_tests"
+// Unit tests
#include "autowiki.dm"
+#include "check_runtimes.dm"
#include "create_and_destroy.dm"
-#include "focus_only_tests.dm"
+#include "emote_panels.dm"
#include "missing_icons.dm"
#include "resist.dm"
+#include "spawn_humans.dm"
#include "spritesheets.dm"
#include "subsystem_init.dm"
#include "tgui_create_message.dm"
#include "timer_sanity.dm"
+#include "tutorials.dm"
+#include "xeno_strains.dm"
+
+// Unit tests backend
+#include "focus_only_tests.dm"
#include "unit_test.dm"
-#include "spawn_humans.dm"
-#include "check_runtimes.dm"
-#include "emote_panels.dm"
#undef TEST_ASSERT
#undef TEST_ASSERT_EQUAL
diff --git a/code/modules/unit_tests/spritesheets.dm b/code/modules/unit_tests/spritesheets.dm
index c7c16c6535e8..142d3f958821 100644
--- a/code/modules/unit_tests/spritesheets.dm
+++ b/code/modules/unit_tests/spritesheets.dm
@@ -2,6 +2,7 @@
/datum/unit_test/spritesheets
/datum/unit_test/spritesheets/Run()
+ var/regex/valid_css_class = new(@"^([\l_][\w\-]|[\l_\-][\l_])")
for(var/datum/asset/spritesheet/sheet as anything in subtypesof(/datum/asset/spritesheet))
if(!initial(sheet.name)) //Ignore abstract types
continue
@@ -9,3 +10,6 @@
for(var/sprite_name in sheet.sprites)
if(!sprite_name)
TEST_FAIL("Spritesheet [sheet.type] has a nameless icon state.")
+ if(!valid_css_class.Find(sprite_name))
+ // https://www.w3.org/TR/CSS2/syndata.html#value-def-identifier
+ TEST_FAIL("Spritesheet [sheet.type] has a icon state that doesn't comply with css standards: '[sprite_name]'.")
diff --git a/code/modules/unit_tests/tutorials.dm b/code/modules/unit_tests/tutorials.dm
new file mode 100644
index 000000000000..d835a4f272cb
--- /dev/null
+++ b/code/modules/unit_tests/tutorials.dm
@@ -0,0 +1,19 @@
+/datum/unit_test/tutorials
+
+/datum/unit_test/tutorials/Run()
+ var/datum/tutorial/base_path = /datum/tutorial
+ for(var/datum/tutorial/tutorial_path as anything in subtypesof(base_path))
+ if(initial(tutorial_path.parent_path) == tutorial_path)
+ continue
+
+ // Make sure these variables are overridden on any subtypes.
+ TEST_ASSERT_NOTEQUAL(initial(tutorial_path.name), initial(base_path.name),
+ "[tutorial_path] does not have a name set.")
+ TEST_ASSERT_NOTEQUAL(initial(tutorial_path.tutorial_id), initial(base_path.tutorial_id),
+ "[tutorial_path] does not have a tutorial_id set.")
+ TEST_ASSERT_NOTEQUAL(initial(tutorial_path.desc), initial(base_path.desc),
+ "[tutorial_path] does not have a desc set.")
+ TEST_ASSERT_NOTEQUAL(initial(tutorial_path.icon_state), initial(base_path.icon_state),
+ "[tutorial_path] does not have an icon_state set.")
+
+// TODO: Add a test verifying that a basic tutorial can be started and completed. (Requires unit test client handling)
diff --git a/code/modules/unit_tests/xeno_strains.dm b/code/modules/unit_tests/xeno_strains.dm
new file mode 100644
index 000000000000..6609f977efeb
--- /dev/null
+++ b/code/modules/unit_tests/xeno_strains.dm
@@ -0,0 +1,59 @@
+/datum/unit_test/xeno_strains
+
+/datum/unit_test/xeno_strains/Run()
+ for(var/mob/living/carbon/xenomorph/caste_mob as anything in subtypesof(/mob/living/carbon/xenomorph))
+ var/datum/caste_datum/caste_datum = GLOB.xeno_datum_list[initial(caste_mob.caste_type)]
+ if(!caste_datum)
+ // not really strain related but may as well have this in here
+ TEST_FAIL("[caste_mob] has no `/datum/caste_datum`! (Possible mismatch of `caste_type`)")
+ continue
+
+ for(var/datum/xeno_strain/strain_path as anything in caste_datum.available_strains)
+ // Check for these, but test the strain either way.
+ if(!initial(strain_path.name))
+ TEST_FAIL("[strain_path] has no name!")
+ if(!initial(strain_path.description))
+ TEST_FAIL("[strain_path] has no description!")
+
+ test_strain(caste_mob, strain_path)
+
+/datum/unit_test/xeno_strains/proc/test_strain(mob_path, strain_path)
+ var/mob/living/carbon/xenomorph/fred = allocate(mob_path)
+ var/datum/xeno_strain/strain = new strain_path()
+
+ strain._add_to_xeno(fred)
+
+ // Actions which should have been removed.
+ var/list/removed_actions = strain.actions_to_remove
+ // Exclude any actions which are in both strain lists (re-added afterwards).
+ removed_actions -= (removed_actions & strain.actions_to_add)
+
+ // Actions which should have been added.
+ var/list/added_actions = strain.actions_to_add.Copy()
+
+ for(var/datum/action/action as anything in fred.actions)
+ if(action.type in removed_actions)
+ TEST_FAIL("[strain.type] failed to remove [action.type] when added to a Xenomorph!")
+ if(action.type in added_actions)
+ // Remove this action from `added_actions`.
+ added_actions -= action.type
+ // If there's anything left in `added_actions`, then something wasn't given to the xeno.
+ if(length(added_actions))
+ TEST_FAIL("[strain.type] failed to give the following actions when added to a Xenomorph: [json_encode(added_actions)]")
+
+ // If the strain has a `/datum/behavior_delegate`, but it wasn't applied to the xeno.
+ if(strain.behavior_delegate_type && !istype(fred.behavior_delegate, strain.behavior_delegate_type))
+ TEST_FAIL("[strain.type]'s behavior_delegate was not applied when added to a Xenomorph!")
+
+ // If the strain doesn't have a custom icon state set.
+ if(!strain.icon_state_prefix)
+ // Check if any of the sprites in the xeno's .dmi file belong to this strain.
+ // If there are any, it probably means that someone just forgot to add an `icon_state_prefix` to the strain.
+ for(var/icon_state in icon_states(fred.icon))
+ if(string_starts_with(icon_state, strain.name)) // (This won't catch everything, but it should get the easy ones.)
+ TEST_FAIL("[fred.icon] contains sprites for [strain.type] that aren't being used!")
+ break
+
+ // If the strain *does* have a custom icon state set, but the xeno's sprite wasn't changed to it.
+ else if(!string_starts_with(fred.icon_state, strain.icon_state_prefix))
+ TEST_FAIL("[strain.type]'s icon_state_prefix was not applied when added to a Xenomorph!")
diff --git a/code/modules/vehicles/interior/interior.dm b/code/modules/vehicles/interior/interior.dm
index f2afcd5ae5f7..8fb65602c9b3 100644
--- a/code/modules/vehicles/interior/interior.dm
+++ b/code/modules/vehicles/interior/interior.dm
@@ -304,21 +304,13 @@
// Returns min and max turfs for the interior
/datum/interior/proc/get_bound_turfs()
- var/turf/min = TURF_FROM_COORDS_LIST(reservation.bottom_left_coords)
- if(!min)
- return null
-
- var/turf/max = TURF_FROM_COORDS_LIST(reservation.top_right_coords)
- if(!max)
- return null
-
- return list(min, max)
+ return list(reservation.bottom_left_turfs[1], reservation.top_right_turfs[1])
/datum/interior/proc/get_middle_coords()
- var/turf/min = reservation.bottom_left_coords
- var/turf/max = reservation.top_right_coords
+ var/turf/min = reservation.bottom_left_turfs[1]
+ var/turf/max = reservation.top_right_turfs[1]
+ return list(Floor(min.x + (max.x - min.x)/2), Floor(min.y + (max.y - min.y)/2), min.z)
- return list(Floor(min[1] + (max[1] - min[1])/2), Floor(min[2] + (max[2] - min[2])/2), min[3])
/datum/interior/proc/get_middle_turf()
var/list/turf/bounds = get_bound_turfs()
diff --git a/code/modules/vehicles/multitile/multitile_hardpoints.dm b/code/modules/vehicles/multitile/multitile_hardpoints.dm
index a6014c6cf2cd..2a6f97dda06f 100644
--- a/code/modules/vehicles/multitile/multitile_hardpoints.dm
+++ b/code/modules/vehicles/multitile/multitile_hardpoints.dm
@@ -149,7 +149,7 @@
hps += H
var/chosen_hp = tgui_input_list(usr, "Select a hardpoint to remove", "Hardpoint Removal", (hps + "Cancel"))
- if(chosen_hp == "Cancel" || !chosen_hp)
+ if(chosen_hp == "Cancel" || !chosen_hp || !in_range(src, user))
return
var/obj/item/hardpoint/old = chosen_hp
diff --git a/code/modules/vehicles/van/van.dm b/code/modules/vehicles/van/van.dm
index c4aa64360ec0..8bf114d6b4a8 100644
--- a/code/modules/vehicles/van/van.dm
+++ b/code/modules/vehicles/van/van.dm
@@ -83,7 +83,7 @@
icon_state = null
- RegisterSignal(SSdcs, COMSIG_GLOB_MOB_LOGIN, PROC_REF(add_default_image))
+ RegisterSignal(SSdcs, COMSIG_GLOB_MOB_LOGGED_IN, PROC_REF(add_default_image))
for(var/I in GLOB.player_list)
add_default_image(SSdcs, I)
@@ -125,7 +125,7 @@
mobs_under += L
RegisterSignal(L, COMSIG_PARENT_QDELETING, PROC_REF(remove_under_van))
- RegisterSignal(L, COMSIG_MOB_LOGIN, PROC_REF(add_client))
+ RegisterSignal(L, COMSIG_MOB_LOGGED_IN, PROC_REF(add_client))
RegisterSignal(L, COMSIG_MOVABLE_MOVED, PROC_REF(check_under_van))
if(L.client)
@@ -141,7 +141,7 @@
UnregisterSignal(L, list(
COMSIG_PARENT_QDELETING,
- COMSIG_MOB_LOGIN,
+ COMSIG_MOB_LOGGED_IN,
COMSIG_MOVABLE_MOVED,
))
diff --git a/colonialmarines.dme b/colonialmarines.dme
index 0b39e89042d2..67f16fc49081 100644
--- a/colonialmarines.dme
+++ b/colonialmarines.dme
@@ -112,6 +112,7 @@
#include "code\__DEFINES\tgui.dm"
#include "code\__DEFINES\traits.dm"
#include "code\__DEFINES\turf_flags.dm"
+#include "code\__DEFINES\turfs.dm"
#include "code\__DEFINES\tutorial.dm"
#include "code\__DEFINES\unit_tests.dm"
#include "code\__DEFINES\urls.dm"
@@ -172,6 +173,7 @@
#include "code\__HELPERS\guid.dm"
#include "code\__HELPERS\icons.dm"
#include "code\__HELPERS\job.dm"
+#include "code\__HELPERS\lazy_templates.dm"
#include "code\__HELPERS\level_traits.dm"
#include "code\__HELPERS\lighting.dm"
#include "code\__HELPERS\lists.dm"
@@ -184,6 +186,7 @@
#include "code\__HELPERS\sanitize_values.dm"
#include "code\__HELPERS\shell.dm"
#include "code\__HELPERS\status_effects.dm"
+#include "code\__HELPERS\string_lists.dm"
#include "code\__HELPERS\text.dm"
#include "code\__HELPERS\traits.dm"
#include "code\__HELPERS\type2type.dm"
@@ -298,6 +301,7 @@
#include "code\controllers\subsystem\sound_loops.dm"
#include "code\controllers\subsystem\soundscape.dm"
#include "code\controllers\subsystem\statpanel.dm"
+#include "code\controllers\subsystem\stickyban.dm"
#include "code\controllers\subsystem\techtree.dm"
#include "code\controllers\subsystem\tgui.dm"
#include "code\controllers\subsystem\ticker.dm"
@@ -341,6 +345,7 @@
#include "code\datums\fluff_emails.dm"
#include "code\datums\global_variables.dm"
#include "code\datums\http.dm"
+#include "code\datums\lazy_template.dm"
#include "code\datums\map_config.dm"
#include "code\datums\matrix_editor.dm"
#include "code\datums\medal_awards.dm"
@@ -406,6 +411,7 @@
#include "code\datums\components\overlay_lighting.dm"
#include "code\datums\components\rename.dm"
#include "code\datums\components\speed_modifier.dm"
+#include "code\datums\components\temporary_mute.dm"
#include "code\datums\components\toxin_buildup.dm"
#include "code\datums\components\tutorial_status.dm"
#include "code\datums\components\weed_damage_reduction.dm"
@@ -504,6 +510,7 @@
#include "code\datums\emergency_calls\deus_vult.dm"
#include "code\datums\emergency_calls\dutch.dm"
#include "code\datums\emergency_calls\emergency_call.dm"
+#include "code\datums\emergency_calls\ert_stations.dm"
#include "code\datums\emergency_calls\feral_xenos.dm"
#include "code\datums\emergency_calls\forsaken_xenos.dm"
#include "code\datums\emergency_calls\goons.dm"
@@ -822,6 +829,7 @@
#include "code\game\machinery\buttons.dm"
#include "code\game\machinery\cell_charger.dm"
#include "code\game\machinery\cloning.dm"
+#include "code\game\machinery\colony_floodlights.dm"
#include "code\game\machinery\constructable_frame.dm"
#include "code\game\machinery\cryo.dm"
#include "code\game\machinery\cryopod.dm"
@@ -834,7 +842,6 @@
#include "code\game\machinery\fuelcell_recycler.dm"
#include "code\game\machinery\fusion_engine.dm"
#include "code\game\machinery\gear.dm"
-#include "code\game\machinery\groundmap_geothermal.dm"
#include "code\game\machinery\hologram.dm"
#include "code\game\machinery\holosign.dm"
#include "code\game\machinery\igniter.dm"
@@ -866,6 +873,7 @@
#include "code\game\machinery\ARES\apollo_pda.dm"
#include "code\game\machinery\ARES\ARES.dm"
#include "code\game\machinery\ARES\ARES_interface.dm"
+#include "code\game\machinery\ARES\ARES_interface_admin.dm"
#include "code\game\machinery\ARES\ARES_interface_apollo.dm"
#include "code\game\machinery\ARES\ARES_procs.dm"
#include "code\game\machinery\ARES\ARES_records.dm"
@@ -968,7 +976,9 @@
#include "code\game\machinery\vending\vendor_types\antag\antag_gear.dm"
#include "code\game\machinery\vending\vendor_types\antag\antag_guns_snowflake.dm"
#include "code\game\machinery\vending\vendor_types\antag\antag_guns_sorted.dm"
+#include "code\game\machinery\vending\vendor_types\crew\combat_correspondent.dm"
#include "code\game\machinery\vending\vendor_types\crew\commanding_officer.dm"
+#include "code\game\machinery\vending\vendor_types\crew\engineering.dm"
#include "code\game\machinery\vending\vendor_types\crew\medical.dm"
#include "code\game\machinery\vending\vendor_types\crew\mp.dm"
#include "code\game\machinery\vending\vendor_types\crew\pilot_officer.dm"
@@ -1238,6 +1248,7 @@
#include "code\game\objects\items\toys\crayons.dm"
#include "code\game\objects\items\toys\toy_weapons.dm"
#include "code\game\objects\items\toys\toys.dm"
+#include "code\game\objects\items\toys\trading_cards.dm"
#include "code\game\objects\items\weapons\blades.dm"
#include "code\game\objects\items\weapons\energy.dm"
#include "code\game\objects\items\weapons\misc.dm"
@@ -1284,10 +1295,13 @@
#include "code\game\objects\structures\props.dm"
#include "code\game\objects\structures\reagent_dispensers.dm"
#include "code\game\objects\structures\safe.dm"
+#include "code\game\objects\structures\shower.dm"
#include "code\game\objects\structures\signs.dm"
+#include "code\game\objects\structures\sink.dm"
#include "code\game\objects\structures\surface.dm"
#include "code\game\objects\structures\tables_racks.dm"
#include "code\game\objects\structures\tank_dispenser.dm"
+#include "code\game\objects\structures\urinal.dm"
#include "code\game\objects\structures\vulture_spotter.dm"
#include "code\game\objects\structures\watercloset.dm"
#include "code\game\objects\structures\windoor_assembly.dm"
@@ -1394,10 +1408,8 @@
#include "code\modules\admin\NewBan.dm"
#include "code\modules\admin\player_notes.dm"
#include "code\modules\admin\server_verbs.dm"
-#include "code\modules\admin\stickyban.dm"
#include "code\modules\admin\STUI.dm"
#include "code\modules\admin\tag.dm"
-#include "code\modules\admin\ToRban.dm"
#include "code\modules\admin\medal_panel\medals_panel.dm"
#include "code\modules\admin\medal_panel\medals_panel_tgui.dm"
#include "code\modules\admin\player_panel\player_action.dm"
@@ -1563,11 +1575,16 @@
#include "code\modules\clothing\suits\bio.dm"
#include "code\modules\clothing\suits\jobs.dm"
#include "code\modules\clothing\suits\labcoat.dm"
-#include "code\modules\clothing\suits\marine_armor.dm"
#include "code\modules\clothing\suits\marine_coat.dm"
#include "code\modules\clothing\suits\miscellaneous.dm"
#include "code\modules\clothing\suits\storage.dm"
#include "code\modules\clothing\suits\utility.dm"
+#include "code\modules\clothing\suits\marine_armor\_marine_armor.dm"
+#include "code\modules\clothing\suits\marine_armor\ert.dm"
+#include "code\modules\clothing\suits\marine_armor\ghillie.dm"
+#include "code\modules\clothing\suits\marine_armor\intel.dm"
+#include "code\modules\clothing\suits\marine_armor\smartgunner.dm"
+#include "code\modules\clothing\suits\marine_armor\spec_fire.dm"
#include "code\modules\clothing\under\color.dm"
#include "code\modules\clothing\under\gimmick.dm"
#include "code\modules\clothing\under\marine_uniform.dm"
@@ -1762,8 +1779,10 @@
#include "code\modules\gear_presets\survivors\kutjevo\preset_kutjevo.dm"
#include "code\modules\gear_presets\survivors\lv_522\forcon_survivors.dm"
#include "code\modules\gear_presets\survivors\lv_624\clfship_insert_lv624.dm"
+#include "code\modules\gear_presets\survivors\lv_624\corporate_dome_insert_lv624.dm"
#include "code\modules\gear_presets\survivors\lv_624\preset_lv.dm"
#include "code\modules\gear_presets\survivors\new_varadero\preset_new_varadero.dm"
+#include "code\modules\gear_presets\survivors\shivas_snowball\panic_room_insert_shivas.dm"
#include "code\modules\gear_presets\survivors\shivas_snowball\preset_shivas_snowball.dm"
#include "code\modules\gear_presets\survivors\solaris\crashlanding-offices_insert_bigred.dm"
#include "code\modules\gear_presets\survivors\solaris\preset_solaris.dm"
@@ -1965,7 +1984,6 @@
#include "code\modules\mob\living\carbon\xenomorph\xeno_verbs.dm"
#include "code\modules\mob\living\carbon\xenomorph\XenoAttacks.dm"
#include "code\modules\mob\living\carbon\xenomorph\Xenomorph.dm"
-#include "code\modules\mob\living\carbon\xenomorph\XenoMutatorSets.dm"
#include "code\modules\mob\living\carbon\xenomorph\XenoOverwatch.dm"
#include "code\modules\mob\living\carbon\xenomorph\XenoProcs.dm"
#include "code\modules\mob\living\carbon\xenomorph\XenoUpgrade.dm"
@@ -2004,6 +2022,7 @@
#include "code\modules\mob\living\carbon\xenomorph\abilities\praetorian\praetorian_macros.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\praetorian\praetorian_powers.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\predalien\predalien_abilities.dm"
+#include "code\modules\mob\living\carbon\xenomorph\abilities\predalien\predalien_macros.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\predalien\predalien_powers.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\queen\queen_abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\queen\queen_macros.dm"
@@ -2045,23 +2064,24 @@
#include "code\modules\mob\living\carbon\xenomorph\castes\Spitter.dm"
#include "code\modules\mob\living\carbon\xenomorph\castes\Warrior.dm"
#include "code\modules\mob\living\carbon\xenomorph\items\iff_tag.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\behavior_delegate.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\mutator.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\boiler\trapper.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\carrier\eggsac.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\crusher\charger.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\defender\steel_crest.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\drone\gardener.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\drone\healer.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\hivelord\resin_whisperer.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\lurker\vampire.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\dancer.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\oppressor.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\vanguard.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\warden.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\ravager\berserker.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\ravager\hedgehog.dm"
-#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\runner\acid.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\behavior_delegate.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\xeno_strain.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\boiler\trapper.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\carrier\eggsac.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\crusher\charger.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\defender\steel_crest.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\drone\gardener.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\drone\healer.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\facehugger\watcher.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\hivelord\resin_whisperer.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\lurker\vampire.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\dancer.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\oppressor.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\vanguard.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\warden.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\ravager\berserker.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\ravager\hedgehog.dm"
+#include "code\modules\mob\living\carbon\xenomorph\strains\castes\runner\acid.dm"
#include "code\modules\mob\living\silicon\death.dm"
#include "code\modules\mob\living\silicon\login.dm"
#include "code\modules\mob\living\silicon\say.dm"
@@ -2353,6 +2373,7 @@
#include "code\modules\tgui_input\text.dm"
#include "code\modules\tgui_panel\audio.dm"
#include "code\modules\tgui_panel\external.dm"
+#include "code\modules\tgui_panel\ping_relay.dm"
#include "code\modules\tgui_panel\telemetry.dm"
#include "code\modules\tgui_panel\tgui_panel.dm"
#include "code\modules\tooltip\tooltip.dm"
diff --git a/config/example/config.txt b/config/example/config.txt
index 8a976e02a580..f055a5d65bff 100644
--- a/config/example/config.txt
+++ b/config/example/config.txt
@@ -4,6 +4,7 @@
# $include dbconfig.txt
# $include resources.txt
# $include icon_source.txt
+# $include relays.txt
## Server name: This appears at the top of the screen in-game. In this case it will read "tgstation: station_name" where station_name is the randomly generated name of the station for the round. Remove the # infront of SERVERNAME and replace 'tgstation' with the name of your choice
# SERVERNAME spacestation13
@@ -151,9 +152,6 @@ BANAPPEALS https://cm-ss13.com/viewforum.php?f=76
##Defines the ticklag for the world. 0.9 is the normal one, 0.5 is smoother.
TICKLAG 0.5
-## Uncomment this to ban use of ToR
-#TOR_BAN
-
## Uncomment this to have country flags pop up in OOC alongside names if the user has the pref turned on (uses IP-API)
#OOC_COUNTRY_FLAGS
diff --git a/config/example/relays.txt b/config/example/relays.txt
new file mode 100644
index 000000000000..562e917fa484
--- /dev/null
+++ b/config/example/relays.txt
@@ -0,0 +1,22 @@
+## Settings controlling the relay ping browser accessed via PingIndicator in TGChat
+## Pings are performed by timing how long it takes to download favicon.ico from the PingURL
+
+## Connection Relays: Name must match both ping and connect pairs
+## CONNECTION_RELAY_PING Name|PingURL
+## CONNECTION_RELAY_CON Name|ConnectURL
+CONNECTION_RELAY_PING Direct|play.cm-ss13.com:8998
+CONNECTION_RELAY_CON Direct|play.cm-ss13.com:1400
+CONNECTION_RELAY_PING United Kingdom, London|uk.cm-ss13.com:8998
+CONNECTION_RELAY_CON United Kingdom, London|uk.cm-ss13.com:1400
+CONNECTION_RELAY_PING France, Gravelines|eu-w.cm-ss13.com:8998
+CONNECTION_RELAY_CON France, Gravelines|eu-w.cm-ss13.com:1400
+CONNECTION_RELAY_PING Poland, Warsaw|eu-e.cm-ss13.com:8998
+CONNECTION_RELAY_CON Poland, Warsaw|eu-e.cm-ss13.com:1400
+CONNECTION_RELAY_PING Oregon, Hillsboro|us-w.cm-ss13.com:8998
+CONNECTION_RELAY_CON Oregon, Hillsboro|us-w.cm-ss13.com:1400
+CONNECTION_RELAY_PING Virginia, Vint Hill|us-e.cm-ss13.com:8998
+CONNECTION_RELAY_CON Virginia, Vint Hill|us-e.cm-ss13.com:1400
+CONNECTION_RELAY_PING Singapore|asia-se.cm-ss13.com:8998
+CONNECTION_RELAY_CON Singapore|asia-se.cm-ss13.com:1400
+CONNECTION_RELAY_PING Australia, Sydney|aus.cm-ss13.com:8998
+CONNECTION_RELAY_CON Australia, Sydney|aus.cm-ss13.com:1400
diff --git a/html/changelogs/AutoChangeLog-pr-5517.yml b/html/changelogs/AutoChangeLog-pr-5517.yml
deleted file mode 100644
index b6a010ef1b90..000000000000
--- a/html/changelogs/AutoChangeLog-pr-5517.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "cuberound"
-delete-after: True
-changes:
- - balance: "increases healing node heal from 10hp every 5 sec to 20 hp every 5 sec"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-5648.yml b/html/changelogs/AutoChangeLog-pr-5648.yml
deleted file mode 100644
index 368e32b82d9f..000000000000
--- a/html/changelogs/AutoChangeLog-pr-5648.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SpartanBobby"
-delete-after: True
-changes:
- - maptweak: "Fixes the two gauss sentry guns that were boxxed in by a mapper over a year ago on ice 3"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-5838.yml b/html/changelogs/AutoChangeLog-pr-5838.yml
new file mode 100644
index 000000000000..d180f50f7635
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-5838.yml
@@ -0,0 +1,7 @@
+author: "nauticall"
+delete-after: True
+changes:
+ - imageadd: "Resprites first aid kits, coffins, material stacks, mortar shells, and chemistry items. Chemistry sprites ported from Baystation / Aurora."
+ - bugfix: "Recolors several reagent sprites to be more in-line with their established colors, such as on autoinjectors."
+ - bugfix: "Fixed invisible cloth tables."
+ - bugfix: "Fixed wrong shading on the large floodlight."
\ No newline at end of file
diff --git a/html/changelogs/archive/2024-02.yml b/html/changelogs/archive/2024-02.yml
index da89432474a7..f344da79decb 100644
--- a/html/changelogs/archive/2024-02.yml
+++ b/html/changelogs/archive/2024-02.yml
@@ -85,3 +85,393 @@
that are already active on your character.
cuberound:
- balance: increases flare pouch storage slots from 8 to 16
+2024-02-05:
+ Drathek:
+ - bugfix: Added more null testing to helmet visors.
+ Poltava:
+ - imageadd: updated intel expedition chestrig sprite
+ SpartanBobby:
+ - maptweak: Fixes the two gauss sentry guns that were boxxed in by a mapper over
+ a year ago on ice 3
+ Warfan1815:
+ - bugfix: Open surgical incisions now show up on a health scanner even if there
+ is nothing else wrong.
+ - bugfix: Open surgical incisions in the head "zones" (mouth and eyes) now show
+ up independently on health scanner
+ cuberound:
+ - balance: increases healing node heal from 10hp every 5 sec to 20 hp every 5 sec
+2024-02-06:
+ InsaneRed:
+ - rscadd: Warden Praetorians can now see how much healing they've done.
+ - qol: Re-organizes the warden ''hotbar''
+ - bugfix: SO's M3 armor now has the proper description.
+ Vicacrov:
+ - bugfix: Fixes Defenders staying Fortified in critical state - Fortify now automatically
+ toggles itself off upon the Defender getting critted.
+2024-02-07:
+ InsaneRed:
+ - balance: Scout specialist incin/high impact mag crates now only has 3 instead
+ of 5
+ Steelpoint:
+ - rscadd: USCM Chestrig has been added to squad prep vendors, alternative sprite
+ of a satchel, similar in appearance to the welder-chestrig.
+2024-02-08:
+ Megaddd:
+ - imageadd: added 4 bone-gel fill level sprite states
+ SpartanBobby:
+ - maptweak: changes to LV624 Engineering and T-comms, mostly detailing but changes
+ some doors and object placement
+2024-02-09:
+ Huffie56:
+ - refactor: turning newscasters into "props".
+ - qol: added two new section to replace ammunition section primary ammunition and
+ sidearm ammunition and rearranged it for team leader.
+ - balance: added the ability for comtech, medic, and squad leader to buy M4A3 (HP
+ and AP) and VP78 magazines for 3 points and M44 Heavy for 6 points.
+ - balance: added the ability for SG to buy M4A3 (HP and AP) and VP78 magazines for
+ 5 points and M44 Heavy for 10 points.
+ - balance: added the ability for rifleman to buy M4A3 (HP and AP) and VP78 magazines
+ for 5 points.
+2024-02-10:
+ Drathek:
+ - bugfix: Fixed an oversight with burst point blank firing
+ SabreML:
+ - bugfix: Fixed trash carts not being pick-uppable by the dropship's fulton recovery
+ system.
+ blackdragonTOW:
+ - admin: added logging for 3rd party victory events
+ private-tristan:
+ - rscadd: Pizza ERT is back, although incredibly unlikely to occur
+ - bugfix: UPP ERT no longer rolls 3 times (1 for random, 1 for friendly, and 1 for
+ hostile), due to this, UPP comms will always be scrambled at the beginning,
+ no way to tell intentions before meeting.
+ - rscadd: Chem Goon Research Consultant now spawns with reagent scanner goggles.
+2024-02-11:
+ Drathek:
+ - bugfix: Fix gardener fruit count not always updating
+ Vicacrov:
+ - bugfix: Fixed Warden Praetorians being able to move around the ovipositored Queen
+ with their Retrieve ability.
+2024-02-12:
+ Stakeyng:
+ - qol: Lets you put an extra accessory item in your helmet.
+ harryob:
+ - server: tor banning functionality is removed
+2024-02-13:
+ Huffie56:
+ - refactor: refactored watercloset.dm file.
+ SabreML:
+ - ui: Made the Tutorial Menu automatically close when a tutorial is started.
+ - code_imp: Made the tutorial Xenomorph not inherit the user's 'age' prefix.
+ - code_imp: Added a basic unit test for tutorials.
+2024-02-14:
+ SabreML:
+ - bugfix: Fixed crates and similar objects layering below the dropship's fulton
+ recovery system.
+ Zonespace Drathek:
+ - balance: Lesser drones and Facehuggers cannot speak, custom emote, or point for
+ 3 minutes after spawning
+2024-02-15:
+ InsaneRed:
+ - balance: Drop pouch now scales the same as normal webbing
+ SabreML:
+ - bugfix: Fixed some changelog icons being smaller than others.
+ Vicacrov:
+ - maptweak: LV-624 tfort's floodlights are now colony floodlights.
+ VileBeggar:
+ - qol: Attaching the bipod to weapons that have full auto (HPR included) will give
+ you a button toggle for immediately switching to full auto when deploying the
+ bipod.
+2024-02-16:
+ BadAtThisGame302:
+ - rscadd: Added two new beacons for the CL, Lawyer and Bodyguard.
+ - rscadd: Added an Executive Specialist and Executive Supervisor Lawyer preset.
+ - rscadd: Added a cyanide pill in the CLs briefcase for an easy way out.
+ - rscadd: Added a Wey-Yu Coffee Mug in the CLs briefcase as a souvenir sale.
+ Drathek:
+ - bugfix: Fixed xeno tutorial allowing evolution/de-evolution
+ - bugfix: Fixed some runtimes with tutorials
+ SabreML:
+ - bugfix: Fixed the 'Clear' button not resetting the number of keybind assignment
+ slots. (Keybinds menu)
+ - refactor: Refactored xeno strains.
+ - rscadd: Added a keybind setting to open the 'Purchase Strain' window. (Also renamed
+ the macro)
+ cuberound:
+ - balance: m4ra ammo looses about 1/5 of initial effect duration per 10 tiles traveled
+ harryob:
+ - admin: permanent and sticky bans are now handled in game, instead of being managed
+ externally
+2024-02-17:
+ MobiusWon:
+ - rscadd: Adds integral Motion Detector to XM4 IO Armor
+ - balance: Uniform utility accessories (I.E. Webbing) no longer can be equipped
+ while the XM4 is worn. Armor slots increased to 5 to compensate.
+ Steelpoint:
+ - balance: Royal Marine Commando's firearms now have a higher rate of fire, comparable
+ to the M41A.
+ mullenpaul:
+ - code_imp: rework logic of restrictedinput component to reduce checks
+2024-02-19:
+ Blundir:
+ - imageadd: updated many old/legacy sprites
+ Diegoflores31:
+ - balance: Tail Jab will now target enemies on the same tile it was targeted.
+ - balance: Aiming Tail Jab directly on a target will do an additional 15 damage
+2024-02-20:
+ BeagleGaming1:
+ - balance: Xenos can slash reactors
+ - balance: Reactors that are damaged will still run until reaching weld damage or
+ being manually de-activated
+ - balance: Reactors that are damaged will lose fuel (when applicable) and fail more
+ often when fuel runs out, new cells need to be used to reset the fail rate
+ - balance: Reactors can be damaged by bullets or explosions
+ - code_imp: Updated Power all ship reactors admin button code
+ - imageadd: Updated reactor sprites
+ - maptweak: Minor changes to reactors and surrounding areas
+ Drathek:
+ - code_imp: Autowiki now skips guns and mags without icon_states
+ - code_imp: Unit testing for spritesheets now enforces css requirements for class
+ names
+ - imageadd: Gun stats lineart now uses the no_name sprite again for guns without
+ lineart
+ - rscdel: Removed death messages for lesser drones and facehuggers that are still
+ temporarily muted
+ Huffie56:
+ - balance: add the ability for SG to buy an VP78 or an SU-6 each for 15 points.
+ SabreML:
+ - ui: Added tooltips to entry icons in the changelog.
+ - code_imp: Added a unit test for xeno strains.
+ Vicacrov:
+ - bugfix: Fixes a missing examine text when you hit an exactly half-full ammo magazine
+ against your helmet.
+ Zonespace27:
+ - bugfix: You can no longer remove vehicle parts from a vehicle at a distance
+2024-02-21:
+ Contrabang:
+ - rscadd: Falling out of a Dropship en route to an LZ, now lets your corpse plummet
+ to the ground instead of being deleted.
+ Drathek:
+ - maptweak: Fixed access for two doors on the Almayer
+ - balance: Corrected vampire lurker damage values (Effectively reduction by 5 damage
+ for most attacks)
+ Stakeyng:
+ - rscadd: mou is now compatible with the shotgun scabbard
+ VileBeggar:
+ - rscadd: The Vulture can now be loaded with holo-targetting rounds which have severely
+ hampered ballistic performance, but mark any target that is hit, increasing
+ their damage taken by 33% for a brief period of time.
+ hislittlecuzingames:
+ - maptweak: tweaked Trijent Dam to add a new choke point.
+ private-tristan:
+ - rscdel: VAIMS (vaipo med spec) no longer gets a redundant burn line
+ - balance: VAIMS now gets an extra MAR mag.
+ - bugfix: Forsaken and Feral xenos can now (correctly) use hive-status
+ - spellcheck: fixed a case where we/our wouldn't be used when attempting to access
+ hive status with no queen
+2024-02-22:
+ BadAtThisGame302:
+ - rscadd: Implemented a probability of playing a static-filled transmission as the
+ distress received response.
+ Drathek:
+ - bugfix: Fixed automatic CMB ERT caused by black market heat
+ - code_imp: get_specific_call now only accepts a path or a string of a path
+ - ui: Fix broken admin Medals Panel
+ - spellcheck: Reworded message when a facehugger's temporary mute ends to not mention
+ hivemind
+ Huffie56:
+ - refactor: refactored files with the aim of making fixing barricade with a welder
+ more constant.
+ - bugfix: being unable to repair more than one metal barricade at the time.
+ Kaga:
+ - bugfix: Fixed a bug that broke ID-Lockable items in presets. Rejoice, PMC Snipers,
+ pre-equipped USCM Specs, UPP Commandos, and WY Deathsquads.
+ LaylaMcC:
+ - rscadd: Increased levels of acidic blood and carpotoxin in xenomeat and carp fillets.
+ - rscdel: Xenomeat and carp fillet-based recipes no longer add additional acidic
+ blood or carpotoxin.
+ - qol: Master level domestic skill allows the use of the food processor to remove
+ acidic blood and carpotoxin from xenomeat and carp fillets.
+ - bugfix: Turning named pieces of human meat into meatballs will retain the human's
+ name.
+ SabreML:
+ - rscadd: Added 'observe' functionality to Xenomorphs, allowing observers to view
+ the target's UI.
+ - rscadd: Made observing a player also show their action buttons.
+ - refactor: Refactored the 'gun action' buttons, making them show their names in
+ the status bar when hovered over.
+ TheGamerdk:
+ - rscadd: CIC can now view helmet cameras of Command Staff. Literally 1984
+ iloveloopers:
+ - qol: Autolathes are now significantly faster.
+2024-02-23:
+ AtticusRezzer:
+ - bugfix: Fixed the incorrect area flag in lifeboats allowing tunneling
+ Drathek:
+ - balance: Increased same tile weed expansion delay for queen from 7s to 10s
+ Huffie56:
+ - maptweak: split each Hallway area port and starboard into three areas.(fore midship
+ aft)
+ - maptweak: change the area around north and south west staircase to remove emergency
+ shutters.
+ - maptweak: change the area west of squad preparation room to remove emergency shutter.
+ - maptweak: change the area west of lower engi to make emergency shutter be at the
+ frontier of the area.
+ InsaneRed:
+ - rscadd: Added a new ability to the predalien "Feral Rush" that increases it's
+ armor and speed for a short duration.
+ - rscadd: Added two new abilities to the predalien "Feral Frenzy" and a toggle.
+ The predalien can now switch between a single target GUT and an AOE one, both
+ of which has damage that scale with your kills.
+ - rscdel: Removed the predaliens gib ability
+ - rscdel: Removed the predaliens "pounce" ability
+ - rscdel: Removed the predaliens "Ground Smash" ability
+ - balance: Predalien no longer has plasma costs, or plasma.
+ - balance: The Plasma Rifle, which is ONLY used to hunt abominations now has a higher
+ ROF and has incin bullets.
+ - spellcheck: Re-wrote the predalien text to be more up to date and remove missinformation
+ - qol: Everyone can see how many kills the predalien has by examining it.
+ - rscadd: Added a "Feral Smash" ability that lets you grab somebody and smash them
+ to the ground, this scales with kills and is a devastating attack.
+ - balance: Removed screenshake from predalien's screech
+ - balance: Predalien removes fire stacks faster.
+ - bugfix: Girders are now slashable by very_sharp_claws instead of just having a
+ queen chack
+ SabreML:
+ - bugfix: Fixed the search function of TGUI input lists.
+ - qol: Made the TGUI input list search bar automatically focus when toggled.
+ - bugfix: Fixed Xenomorphs not having their caste's tackle duration values applied
+ to them.
+ fira:
+ - code_imp: Updated mapping backend from /tg/ upstream.
+ iloveloopers:
+ - qol: Reagent tanks can now be dragged faster.
+2024-02-24:
+ BadAtThisGame302:
+ - rscadd: Added a CL and Goon nightmare insert spawn.
+ - mapadd: added a new nightmare insert on LV which revamps the Corporate Dome into
+ a holdout.
+ SabreML:
+ - bugfix: Fixed the 88 Mod 4 pistol's holster sprite.
+ Segrain:
+ - admin: Check Ckey verb is now available on player panel.
+ - bugfix: Fully healed limbs should now properly remove the overlays for their wounds
+ and bandages.
+ TopHatPenguin:
+ - rscdel: Removes part of MOPP suit desc.
+ Warfan1815:
+ - rscadd: Added WeyYu Trading Cards (they come in packs of 5, single, or in special
+ packs of WeyYu Gold) buyable at rec vendor (and/or colony tobacco vendors in
+ the case of the special cigarette packs)
+ - imageadd: Added sprites of the WeyYu Trading Cards, trading card packs, and special
+ WeyYu Gold cigarette packs.
+2024-02-25:
+ Drathek:
+ - ui: Added the relay ping browser accessed by the tgchat ping to test and use alternative
+ connections to the server
+ - ui: Added onConfirmChange prop to Button.Confirm component.
+ - config: Added CONNECTION_RELAY_PING and CONNECTION_RELAY_CON in the relays.txt
+ config that is optionally included in config.txt
+ - rscadd: Welding a barricade will now repeat automatically if it can still be repaired.
+ - balance: 'Reverted multi-welding change to barricades: All barricades must be
+ welded one at a time.'
+ - refactor: Refactored more barricade code.
+ Huffie56:
+ - refactor: refactor marine_armor.dm and split it into multiples files.
+ SabreML:
+ - bugfix: Fixed 'hidden' action buttons being shown to observing players.
+ - qol: Made any observers transfer over when a Xenomorph evolves/de-evolves.
+ SpartanBobby:
+ - maptweak: Edits to secure storage LV624s detailing
+ - maptweak: Make a few unabreakable walls on kutjevo breakable, touches the east
+ botony caves flanks ands removes some ledges from combat routes
+ - maptweak: Edits to southwest dorms LV522
+ - maptweak: Redetails bigred Libary
+2024-02-26:
+ Mister-moon1:
+ - balance: Reverted flare range buff 7->5 tiles
+ SpartanBobby:
+ - maptweak: Edits to southyard sci-annex
+ harryob:
+ - admin: marking a ticket now actually stops other people from messing with your
+ marked ticket
+ realforest2001:
+ - admin: Mods can now run votes where appropriate.
+ - admin: Moved a few event verbs from Admin level to Senior Mod.
+ - admin: Added a log to creating new bank accounts.
+2024-02-27:
+ BadAtThisGame302:
+ - mapadd: added a new nightmare insert in the Operations Panic Room on Shivas
+ - rscadd: Added trucker hats to the Solaris and Trijent Trucker survs.
+ - rscadd: Added the CMB Marshal jacket to the CMB Marshal.
+ - imageadd: Differentiated the CMB Deputy and CMB Marshal jackets to accurately
+ know which is which. Courtesy of AmoryBlaine.
+ - imageadd: Added new insulated gloves, coveralls (Tan/Red), updated the blue coveralls,
+ Five Colonist Clothes (Grey/Khaki/Pink/Blue/Green), updated the Orange/Blue/Black
+ hazard vests and updated the CMB Uniform and Cap. Courtesy of AmoryBlaine.
+ Drathek:
+ - bugfix: Fixed a runtime when swapping tools during cade welding
+ Huffie56:
+ - rscadd: adding vendor for maintenance technician.
+ - code_imp: remove some item that maintenance technician spawned with and put them
+ in is vendor instead.
+ - maptweak: replaced secured closet by vendor for maintenance technician.
+ - balance: set base price for B12 to 30 and for the M4 to 20.
+ - balance: Medic comtech and SL have a discount of 20% for the B12 and M4. (B12=24
+ & M4=16=)
+ - balance: removed the free M4 for FTL but added FTL the option to buy it for 20.
+ - balance: changed the price of Drop Pouch from 15 to 10.
+ InsaneRed:
+ - balance: Oppressor tailhook is now 8 deciseconds instead of 7.
+ Megaddd:
+ - balance: health analyzer no longer shows large custom research chem property text
+ rows.
+ SabreML:
+ - qol: Added a failure message when trying to remove a built-in helmet visor.
+ paulrpg,kugamo:
+ - imageadd: shuttle rotation sprites added
+ - maptweak: escape pods now use new floors
+2024-02-28:
+ Birdtalon:
+ - bugfix: Admin verbs - Hide will now hide Control Mob verb
+ Drathek:
+ - bugfix: Fixed the Mass Screenshot Debug verb bounds
+ LTNTS:
+ - rscadd: 'brig areas: warden office, MP bunks, starboard hallway, interrogation
+ room, evidence storage'
+ - spellcheck: changes brig surgery to brig medical
+ - code_imp: removed some brig areas from hijack, added other brig areas
+ SabreML:
+ - bugfix: Fixed acid pillars shooting nested marines.
+ Segrain:
+ - bugfix: FORECON and RMC now can add their frequences to groundside radiotowers.
+ - bugfix: Fisticuffs attacks are no longer attributed to wrong mob.
+ - admin: TWE mobs are now properly counted on Who screen.
+ - spellcheck: Changed names of "resin node" and "resin hole" to "weed node" and
+ "resin trap" respectfully.
+ - bugfix: CLF survivors no longer incorrectly get told that they are not hostile
+ to marines.
+ Warfan1815:
+ - spellcheck: Fixed the order of trading cards (as they were accidentally inverted)
+ Zonespace27:
+ - bugfix: M707 spotting scope should no longer teleport its user.
+ - bugfix: M707's attachments should now correctly reflect the map's camouflage.
+ ihatethisengine:
+ - balance: Pried open dropship hatches cannot be remotely locked anymore
+ mullenpaul:
+ - bugfix: ammo consumption logic for cas tgui correctly counts
+2024-02-29:
+ MobiusWon:
+ - balance: Readds M4 armor to FTL vendor as a default item
+ Nanu:
+ - balance: Removed the ability for Combat Synths in the UPP/CLF ERT to use guns,
+ as well as the CLF Survivor Synth.
+ - rscadd: Did a few minor tweaks to help fill in some of the space given by the
+ removal of guns/ammo from the Combat Synths loadout.
+ Segrain:
+ - bugfix: Removed an exploit involving crates.
+ cuberound:
+ - balance: omnisentrygun price down to 300, but it goes up 100 points after each
+ purchase
+ mullenpaul:
+ - code_imp: removed duplicated signal code from dropship equipment
diff --git a/html/changelogs/archive/2024-03.yml b/html/changelogs/archive/2024-03.yml
new file mode 100644
index 000000000000..89c57884d3fd
--- /dev/null
+++ b/html/changelogs/archive/2024-03.yml
@@ -0,0 +1,151 @@
+2024-03-01:
+ BadAtThisGame302:
+ - rscadd: Added a new uniform to the Flight Control Operator.
+ - rscadd: Added a new faction IFF grouping for WY Survs.
+ - rscadd: Added the ICC and the CL survs to the WY IFF System.
+ - rscadd: Added the USCM CL to the WY IFF System.
+ Drathek BadAtThisGame:
+ - maptweak: Fixed various nightmare inserts that were not spawning; removing or
+ disabling others that were not in use.
+ - maptweak: Updated containerroom_xenos insert for Solaris Ridge to include coms
+ tower (BadAtThisGame)
+ - code_imp: Nightmare errors are now a runtime.
+ Huffie56:
+ - refactor: refactored stage three of black goo and added stage four.
+ Lok1:
+ - rscadd: maintenance stations stun when exiting like closets
+ Vicacrov:
+ - rscadd: 'You can now order the following in Requisitions: M2C ammo, M56D ammo,
+ UA 45-F mini sentry ammo, UA 60-FP sentry ammo.'
+2024-03-02:
+ GrrrKitten:
+ - rscadd: New Deployable Fax Backpack for the Civilian Combat Correspondent
+ - rscadd: New Wieldable Broadcasting Camera for the Civilian Combat Correspondent
+ - rscadd: Cameras can no longer be turned off but have to be wielded to take photos
+ - rscadd: Add's new Combat Correspondent vendor with CC's basic outfits and standard
+ gear
+ - bugfix: Fixes numerous camera/photo bugs
+ - imageadd: Adds new itemstates for the polaroid camera
+ TheGamerdk:
+ - refactor: Overwatch console will now save your filter settings
+ Vicacrov:
+ - bugfix: Hugger and acid traps no longer activate when they get shuttlecrushed.
+ Warfan1815:
+ - bugfix: Fixes the pulling of trading cards out of a pack message being visible
+ to other people
+ iloveloopers:
+ - bugfix: custom flamer chemicals now work on the flamer nozzle
+2024-03-03:
+ Drathek:
+ - bugfix: Fixed skills not getting set for UPP and CLF synths
+ - spellcheck: Fixed naming of colony synth gen 1 and gen 2 being swapped
+ TheGamerdk:
+ - bugfix: Fixes the lifeboat black turfs of Doom
+ Vicacrov:
+ - qol: The Transfer Plasma ability now has a blue, healing overlay and causes a
+ second-long jitter upon success, to show the recipient that they are being targeted.
+ - rscadd: Larvae now do the attack animation when nudging.
+ harryob:
+ - admin: opening a new ticket via pming now automatically marks the ticket
+2024-03-04:
+ Foxtrot:
+ - rscadd: Added a CLF Team Leader spawn to the nightmare insert on LV-624
+ - spellcheck: Updated the CLF & PMC ship nightmare insert intro text
+ SabreML:
+ - rscadd: Made the vehicle bay elevator look and sound better when in use.
+ - bugfix: Fixed the vehicle bay elevator's front railings not closing when the elevator
+ was lowered.
+ - bugfix: Fixed the vehicle bay elevator's docking port falling down the elevator
+ shaft when it was lowered.
+ - bugfix: Fixed falling into the vehicle bay elevator shaft teleporting players
+ to the requisitions elevator.
+ TheGamerdk:
+ - rscadd: New View Given Medals button to see what medals you've given to others
+ - bugfix: Sensor tower no longer ignores half the hive
+ private-tristan:
+ - qol: Added balloon alerts to smartgunners
+ realforest2001:
+ - code_imp: Plastic Explosives and subtypes now have variable controlled skill checks
+ rather than hard-code.
+ - bugfix: MPs can now use Riot Breaching Charges as intended.
+2024-03-05:
+ Segrain:
+ - admin: Marking tickets properly recognises your ckey.
+ ZephyrTFA, harryob:
+ - rscadd: framework for new ert stations ported from tgstation/tgstation#71785,
+ by ZephyrTFA
+ - rscadd: distress beacons now start in transit to the ship, and will return to
+ their own home base. they can't keep going back and forth between the ship and
+ their base
+ realforest2001:
+ - imageadd: Added AI Core themed walls, windows and floors from Zenith.
+ - imageadd: Added AI Core themed blast doors from Zenith.
+ - imageadd: Added a few additional AI Core themed floors from myself.
+ - maptweak: Remapped the AI core to use the new walls/floors.
+ - rscadd: Added a subtype of AI Core floor that glows orange for thematic lighting.
+2024-03-06:
+ Drathek:
+ - bugfix: Fixed crashed/hijack dropship not staying in the crashed mode.
+ Vicacrov:
+ - rscadd: Added a professor dummy cabinet to the CMO office, containing Professor
+ DUMMY and its control tablet. It is a tool to teach new medical personnel with.
+ The cabinet is accessible by the CMO and the SEA only.
+ harryob:
+ - admin: byond account age and first time connected to server can now be seen in
+ the player panel
+ nauticall:
+ - mapadd: Revamped the Chinook event map.
+2024-03-08:
+ BadAtThisGame302:
+ - mapadd: added a new Fiorina nightmare insert with CMB and UA Officers responding
+ to the distress signal.
+ Drathek:
+ - bugfix: Fixes some issues with SMES and reactors connecting to the powernet
+ Vicacrov:
+ - spellcheck: Fixed some grammar issues when attacking spiderwebs and when producing
+ eggs as an eggsac carrier.
+ realforest2001:
+ - admin: Adds a remote admin ARES Interface so staff can see the interface remotely.
+ - admin: Staff can now approve and revoke ARES Access tickets via remote interface
+ if there are no Working Joes.
+ sleepynecrons:
+ - imageadd: changed warrior tail to old one
+ - imageadd: edited weed overlays to reflect altered tail shape
+ - imageadd: fixed holes in a couple warrior sprites
+2024-03-09:
+ Drathek:
+ - bugfix: Fix pod doors no longer updating adjacent tiles
+ iloveloopers:
+ - balance: ravager empower range is now 4 tiles
+2024-03-11:
+ Segrain:
+ - admin: Actually fixed the last case of being warned against interacting with ticket
+ already marked by you.
+2024-03-12:
+ Drathek:
+ - bugfix: Fix chestrig not displaying on maps with different skins (e.g. Shivas)
+ Katskan:
+ - balance: Medical Skill 4 reduced speed buff from -75% duration to -50% duration
+ - balance: Medical Skill 3 increased speed buff from -0% duration to -25% duration
+ Segrain:
+ - rscadd: Requisitions' vendor now has medical radio keys in stock.
+ - rscadd: CE and CMO can now get spare departmental headsets from their vendors
+ to recruit survivors without having to go to Requisitions.
+ - bugfix: Wiping frequencies off radiotowers no longer breaks them forever.
+ Stakeyng:
+ - balance: Drop pouch has more space (2 large (unchanged), 4 medium, 8 small)
+ ihatethisengine2:
+ - bugfix: Dropship door prying can now always be performed by queen even if open
+ or not locked
+ realforest2001:
+ - soundadd: Added pda_ping.ogg, sourced from Paradise SS13 mailapproved.ogg
+ - rscadd: Added notification sounds from certain APOLLO ticket interactions.
+ - rscadd: People making an access ticket request are now notified of the status
+ changes.
+2024-03-13:
+ Segrain:
+ - bugfix: Picking up clothes/armour with somebody else's medal attached no longer
+ makes the medal fall off (trying to wear them still does).
+ - bugfix: Doctors calling themselves surgeons now properly get playtime medals.
+ - bugfix: Playtime medals now use assignments instead of backend paygrade codes
+ (e.g. "Awarded to Squad Leader John Doe" instead of "Awarded to ME5 John Doe").
diff --git a/icons/effects/spacevines.dmi b/icons/effects/spacevines.dmi
index 5f6f19fdd916..bcd121055bf5 100644
Binary files a/icons/effects/spacevines.dmi and b/icons/effects/spacevines.dmi differ
diff --git a/icons/mob/hud/actions.dmi b/icons/mob/hud/actions.dmi
index 820da22ea5b1..3c3e6dd9de3d 100644
Binary files a/icons/mob/hud/actions.dmi and b/icons/mob/hud/actions.dmi differ
diff --git a/icons/mob/hud/actions_xeno.dmi b/icons/mob/hud/actions_xeno.dmi
index 6a48235a4f3b..c829821730c2 100644
Binary files a/icons/mob/hud/actions_xeno.dmi and b/icons/mob/hud/actions_xeno.dmi differ
diff --git a/icons/mob/hud/hud.dmi b/icons/mob/hud/hud.dmi
index c9e4c0c6c23d..507ec0dd485b 100644
Binary files a/icons/mob/hud/hud.dmi and b/icons/mob/hud/hud.dmi differ
diff --git a/icons/mob/humans/onmob/back.dmi b/icons/mob/humans/onmob/back.dmi
index 9fc39fb5acd2..eba8a2d0289c 100644
Binary files a/icons/mob/humans/onmob/back.dmi and b/icons/mob/humans/onmob/back.dmi differ
diff --git a/icons/mob/humans/onmob/belt.dmi b/icons/mob/humans/onmob/belt.dmi
index 4cff5838fbbb..453f2e9e2b2d 100644
Binary files a/icons/mob/humans/onmob/belt.dmi and b/icons/mob/humans/onmob/belt.dmi differ
diff --git a/icons/mob/humans/onmob/contained/war_correspondent.dmi b/icons/mob/humans/onmob/contained/war_correspondent.dmi
deleted file mode 100644
index 38bef4845cb3..000000000000
Binary files a/icons/mob/humans/onmob/contained/war_correspondent.dmi and /dev/null differ
diff --git a/icons/mob/humans/onmob/feet.dmi b/icons/mob/humans/onmob/feet.dmi
index e8a6e49477c1..fdf6a4a40e80 100644
Binary files a/icons/mob/humans/onmob/feet.dmi and b/icons/mob/humans/onmob/feet.dmi differ
diff --git a/icons/mob/humans/onmob/hands.dmi b/icons/mob/humans/onmob/hands.dmi
index d8fc38fff824..923a417f4f89 100644
Binary files a/icons/mob/humans/onmob/hands.dmi and b/icons/mob/humans/onmob/hands.dmi differ
diff --git a/icons/mob/humans/onmob/head_0.dmi b/icons/mob/humans/onmob/head_0.dmi
index cfe8b33da4ee..9fc0bc82c123 100644
Binary files a/icons/mob/humans/onmob/head_0.dmi and b/icons/mob/humans/onmob/head_0.dmi differ
diff --git a/icons/mob/humans/onmob/head_1.dmi b/icons/mob/humans/onmob/head_1.dmi
index e69c0191042f..ab93b68640fc 100644
Binary files a/icons/mob/humans/onmob/head_1.dmi and b/icons/mob/humans/onmob/head_1.dmi differ
diff --git a/icons/mob/humans/onmob/items_lefthand_0.dmi b/icons/mob/humans/onmob/items_lefthand_0.dmi
index b3adba7e980e..bcf2773e8dd7 100644
Binary files a/icons/mob/humans/onmob/items_lefthand_0.dmi and b/icons/mob/humans/onmob/items_lefthand_0.dmi differ
diff --git a/icons/mob/humans/onmob/items_lefthand_1.dmi b/icons/mob/humans/onmob/items_lefthand_1.dmi
index 357a94f60cf7..91dc908a8293 100644
Binary files a/icons/mob/humans/onmob/items_lefthand_1.dmi and b/icons/mob/humans/onmob/items_lefthand_1.dmi differ
diff --git a/icons/mob/humans/onmob/items_righthand_0.dmi b/icons/mob/humans/onmob/items_righthand_0.dmi
index 485e270510d8..d53360ec86a7 100644
Binary files a/icons/mob/humans/onmob/items_righthand_0.dmi and b/icons/mob/humans/onmob/items_righthand_0.dmi differ
diff --git a/icons/mob/humans/onmob/items_righthand_1.dmi b/icons/mob/humans/onmob/items_righthand_1.dmi
index 7bcc772c7375..c5b67e97c2e1 100644
Binary files a/icons/mob/humans/onmob/items_righthand_1.dmi and b/icons/mob/humans/onmob/items_righthand_1.dmi differ
diff --git a/icons/mob/humans/onmob/suit_0.dmi b/icons/mob/humans/onmob/suit_0.dmi
index 3fc9e8e0770b..737b59f6c4af 100644
Binary files a/icons/mob/humans/onmob/suit_0.dmi and b/icons/mob/humans/onmob/suit_0.dmi differ
diff --git a/icons/mob/humans/onmob/suit_1.dmi b/icons/mob/humans/onmob/suit_1.dmi
index 61297e9f98cb..c372b8a6d72c 100644
Binary files a/icons/mob/humans/onmob/suit_1.dmi and b/icons/mob/humans/onmob/suit_1.dmi differ
diff --git a/icons/mob/humans/onmob/ties.dmi b/icons/mob/humans/onmob/ties.dmi
index 7ea2037463bf..87581eb94168 100644
Binary files a/icons/mob/humans/onmob/ties.dmi and b/icons/mob/humans/onmob/ties.dmi differ
diff --git a/icons/mob/humans/onmob/uniform_0.dmi b/icons/mob/humans/onmob/uniform_0.dmi
index 79f54b2afebe..9126bfccb699 100644
Binary files a/icons/mob/humans/onmob/uniform_0.dmi and b/icons/mob/humans/onmob/uniform_0.dmi differ
diff --git a/icons/mob/humans/onmob/uniform_1.dmi b/icons/mob/humans/onmob/uniform_1.dmi
index 12f4d104c2f0..89500b39a596 100644
Binary files a/icons/mob/humans/onmob/uniform_1.dmi and b/icons/mob/humans/onmob/uniform_1.dmi differ
diff --git a/icons/mob/xenos/boiler.dmi b/icons/mob/xenos/boiler.dmi
index 94d45c459e03..4edcf556eb11 100644
Binary files a/icons/mob/xenos/boiler.dmi and b/icons/mob/xenos/boiler.dmi differ
diff --git a/icons/mob/xenos/burrower.dmi b/icons/mob/xenos/burrower.dmi
index f546776e6b27..c54684e61bc9 100644
Binary files a/icons/mob/xenos/burrower.dmi and b/icons/mob/xenos/burrower.dmi differ
diff --git a/icons/mob/xenos/crusher.dmi b/icons/mob/xenos/crusher.dmi
index 014246dbee66..a198cc1d5cd9 100644
Binary files a/icons/mob/xenos/crusher.dmi and b/icons/mob/xenos/crusher.dmi differ
diff --git a/icons/mob/xenos/drone.dmi b/icons/mob/xenos/drone.dmi
index 937ddaa7b96a..a918d6fb95ab 100644
Binary files a/icons/mob/xenos/drone.dmi and b/icons/mob/xenos/drone.dmi differ
diff --git a/icons/mob/xenos/facehugger.dmi b/icons/mob/xenos/facehugger.dmi
index 2d8665899331..d44903adf941 100644
Binary files a/icons/mob/xenos/facehugger.dmi and b/icons/mob/xenos/facehugger.dmi differ
diff --git a/icons/mob/xenos/warrior.dmi b/icons/mob/xenos/warrior.dmi
index d766959d1070..21752fc94e79 100644
Binary files a/icons/mob/xenos/warrior.dmi and b/icons/mob/xenos/warrior.dmi differ
diff --git a/icons/mob/xenos/weeds_64x64.dmi b/icons/mob/xenos/weeds_64x64.dmi
index 53c971cfe97c..895338f542f9 100644
Binary files a/icons/mob/xenos/weeds_64x64.dmi and b/icons/mob/xenos/weeds_64x64.dmi differ
diff --git a/icons/obj/items/chemistry.dmi b/icons/obj/items/chemistry.dmi
index 1eaef75bb6fb..77d554fd3b90 100644
Binary files a/icons/obj/items/chemistry.dmi and b/icons/obj/items/chemistry.dmi differ
diff --git a/icons/obj/items/cigarettes.dmi b/icons/obj/items/cigarettes.dmi
index db313199afb2..89b3ca2195fa 100644
Binary files a/icons/obj/items/cigarettes.dmi and b/icons/obj/items/cigarettes.dmi differ
diff --git a/icons/obj/items/clothing/backpacks.dmi b/icons/obj/items/clothing/backpacks.dmi
index fa03f0434fb5..13acfa42cc40 100644
Binary files a/icons/obj/items/clothing/backpacks.dmi and b/icons/obj/items/clothing/backpacks.dmi differ
diff --git a/icons/obj/items/clothing/belts.dmi b/icons/obj/items/clothing/belts.dmi
index 946fbfd23cda..2506ee0eb48d 100644
Binary files a/icons/obj/items/clothing/belts.dmi and b/icons/obj/items/clothing/belts.dmi differ
diff --git a/icons/obj/items/clothing/cm_hats.dmi b/icons/obj/items/clothing/cm_hats.dmi
index ae311984e2c3..ff0aa3d08ec8 100644
Binary files a/icons/obj/items/clothing/cm_hats.dmi and b/icons/obj/items/clothing/cm_hats.dmi differ
diff --git a/icons/obj/items/clothing/cm_suits.dmi b/icons/obj/items/clothing/cm_suits.dmi
index 7f4de16bb174..c1910d21b599 100644
Binary files a/icons/obj/items/clothing/cm_suits.dmi and b/icons/obj/items/clothing/cm_suits.dmi differ
diff --git a/icons/obj/items/clothing/gloves.dmi b/icons/obj/items/clothing/gloves.dmi
index f1fe9b303046..b290778d2d28 100644
Binary files a/icons/obj/items/clothing/gloves.dmi and b/icons/obj/items/clothing/gloves.dmi differ
diff --git a/icons/obj/items/clothing/hats.dmi b/icons/obj/items/clothing/hats.dmi
index e9da08f07477..3e2a1dcfc243 100644
Binary files a/icons/obj/items/clothing/hats.dmi and b/icons/obj/items/clothing/hats.dmi differ
diff --git a/icons/obj/items/clothing/shoes.dmi b/icons/obj/items/clothing/shoes.dmi
index a83cb1574307..c4e01786e579 100644
Binary files a/icons/obj/items/clothing/shoes.dmi and b/icons/obj/items/clothing/shoes.dmi differ
diff --git a/icons/obj/items/clothing/suits.dmi b/icons/obj/items/clothing/suits.dmi
index 7d67de8e5a2e..5057a89fe278 100644
Binary files a/icons/obj/items/clothing/suits.dmi and b/icons/obj/items/clothing/suits.dmi differ
diff --git a/icons/obj/items/clothing/ties.dmi b/icons/obj/items/clothing/ties.dmi
index 25f3737dfe90..366f2acb3512 100644
Binary files a/icons/obj/items/clothing/ties.dmi and b/icons/obj/items/clothing/ties.dmi differ
diff --git a/icons/obj/items/clothing/uniforms.dmi b/icons/obj/items/clothing/uniforms.dmi
index f5d782e9dc0f..788e24bf46e6 100644
Binary files a/icons/obj/items/clothing/uniforms.dmi and b/icons/obj/items/clothing/uniforms.dmi differ
diff --git a/icons/obj/items/drinks.dmi b/icons/obj/items/drinks.dmi
index 7623a980e435..1203f3d18edd 100644
Binary files a/icons/obj/items/drinks.dmi and b/icons/obj/items/drinks.dmi differ
diff --git a/icons/obj/items/items.dmi b/icons/obj/items/items.dmi
index 80daeefc21d5..bf9b64474af5 100644
Binary files a/icons/obj/items/items.dmi and b/icons/obj/items/items.dmi differ
diff --git a/icons/obj/items/playing_cards.dmi b/icons/obj/items/playing_cards.dmi
index 4db5c94cf063..61b521edddd8 100644
Binary files a/icons/obj/items/playing_cards.dmi and b/icons/obj/items/playing_cards.dmi differ
diff --git a/icons/obj/items/reagentfillings.dmi b/icons/obj/items/reagentfillings.dmi
index 1514db495e13..4bfd2752482b 100644
Binary files a/icons/obj/items/reagentfillings.dmi and b/icons/obj/items/reagentfillings.dmi differ
diff --git a/icons/obj/items/storage.dmi b/icons/obj/items/storage.dmi
index 6edbf5b6c7d3..44dfac1c246e 100644
Binary files a/icons/obj/items/storage.dmi and b/icons/obj/items/storage.dmi differ
diff --git a/icons/obj/items/surgery_tools.dmi b/icons/obj/items/surgery_tools.dmi
index a5df6761d289..c5e30c0c8c2f 100644
Binary files a/icons/obj/items/surgery_tools.dmi and b/icons/obj/items/surgery_tools.dmi differ
diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi
index e60e9463b8a2..8b3b5e0f1c80 100644
Binary files a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi differ
diff --git a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi
index 4ecb121a7feb..1f0b98967a25 100644
Binary files a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi differ
diff --git a/icons/obj/items/weapons/guns/lineart.dmi b/icons/obj/items/weapons/guns/lineart.dmi
index 212b3988fc02..6c1dae5bd5c1 100644
Binary files a/icons/obj/items/weapons/guns/lineart.dmi and b/icons/obj/items/weapons/guns/lineart.dmi differ
diff --git a/icons/obj/structures/closet.dmi b/icons/obj/structures/closet.dmi
index e0e50ab9ae09..4377a48779cb 100644
Binary files a/icons/obj/structures/closet.dmi and b/icons/obj/structures/closet.dmi differ
diff --git a/icons/obj/structures/doors/blastdoors_shutters.dmi b/icons/obj/structures/doors/blastdoors_shutters.dmi
index c5ec97be49b8..8c63d0580922 100644
Binary files a/icons/obj/structures/doors/blastdoors_shutters.dmi and b/icons/obj/structures/doors/blastdoors_shutters.dmi differ
diff --git a/icons/obj/structures/doors/dropship1_cargo.dmi b/icons/obj/structures/doors/dropship1_cargo.dmi
index 699a3cc13b9f..be517592324f 100644
Binary files a/icons/obj/structures/doors/dropship1_cargo.dmi and b/icons/obj/structures/doors/dropship1_cargo.dmi differ
diff --git a/icons/obj/structures/doors/dropship1_pilot.dmi b/icons/obj/structures/doors/dropship1_pilot.dmi
index 776882a136e4..0ae55add9966 100644
Binary files a/icons/obj/structures/doors/dropship1_pilot.dmi and b/icons/obj/structures/doors/dropship1_pilot.dmi differ
diff --git a/icons/obj/structures/doors/dropship1_side.dmi b/icons/obj/structures/doors/dropship1_side.dmi
index 346811438914..7f3298d69975 100644
Binary files a/icons/obj/structures/doors/dropship1_side.dmi and b/icons/obj/structures/doors/dropship1_side.dmi differ
diff --git a/icons/obj/structures/doors/dropship2_cargo.dmi b/icons/obj/structures/doors/dropship2_cargo.dmi
index 4e2ebfe0e3d2..f6bd23184889 100644
Binary files a/icons/obj/structures/doors/dropship2_cargo.dmi and b/icons/obj/structures/doors/dropship2_cargo.dmi differ
diff --git a/icons/obj/structures/doors/dropship2_pilot.dmi b/icons/obj/structures/doors/dropship2_pilot.dmi
index 9a77adf39f70..226249be4d84 100644
Binary files a/icons/obj/structures/doors/dropship2_pilot.dmi and b/icons/obj/structures/doors/dropship2_pilot.dmi differ
diff --git a/icons/obj/structures/doors/dropship2_side.dmi b/icons/obj/structures/doors/dropship2_side.dmi
index 03c0492d7df9..8dfa437d6521 100644
Binary files a/icons/obj/structures/doors/dropship2_side.dmi and b/icons/obj/structures/doors/dropship2_side.dmi differ
diff --git a/icons/obj/structures/machinery/airlock_machines.dmi b/icons/obj/structures/machinery/airlock_machines.dmi
index 0c4643269cdf..30a5fecccda8 100644
Binary files a/icons/obj/structures/machinery/airlock_machines.dmi and b/icons/obj/structures/machinery/airlock_machines.dmi differ
diff --git a/icons/obj/structures/machinery/atmos.dmi b/icons/obj/structures/machinery/atmos.dmi
index 39440487ab39..651f2481039a 100644
Binary files a/icons/obj/structures/machinery/atmos.dmi and b/icons/obj/structures/machinery/atmos.dmi differ
diff --git a/icons/obj/structures/machinery/big_floodlight.dmi b/icons/obj/structures/machinery/big_floodlight.dmi
index b76f63956a2c..3e180d9a620e 100644
Binary files a/icons/obj/structures/machinery/big_floodlight.dmi and b/icons/obj/structures/machinery/big_floodlight.dmi differ
diff --git a/icons/obj/structures/machinery/biogenerator.dmi b/icons/obj/structures/machinery/biogenerator.dmi
index c65a9571b097..373b40e7d40d 100644
Binary files a/icons/obj/structures/machinery/biogenerator.dmi and b/icons/obj/structures/machinery/biogenerator.dmi differ
diff --git a/icons/obj/structures/machinery/computer3.dmi b/icons/obj/structures/machinery/computer3.dmi
index 047417f303f3..a00ec12ddfa3 100644
Binary files a/icons/obj/structures/machinery/computer3.dmi and b/icons/obj/structures/machinery/computer3.dmi differ
diff --git a/icons/obj/structures/machinery/drone_fab.dmi b/icons/obj/structures/machinery/drone_fab.dmi
index 3a13a8684ac8..785e46c90001 100644
Binary files a/icons/obj/structures/machinery/drone_fab.dmi and b/icons/obj/structures/machinery/drone_fab.dmi differ
diff --git a/icons/obj/structures/machinery/fusion_eng.dmi b/icons/obj/structures/machinery/fusion_eng.dmi
index 4d42baac7255..9bd902420151 100644
Binary files a/icons/obj/structures/machinery/fusion_eng.dmi and b/icons/obj/structures/machinery/fusion_eng.dmi differ
diff --git a/icons/obj/structures/machinery/geothermal.dmi b/icons/obj/structures/machinery/geothermal.dmi
index a3cd64c37421..6d3d5af4ef88 100644
Binary files a/icons/obj/structures/machinery/geothermal.dmi and b/icons/obj/structures/machinery/geothermal.dmi differ
diff --git a/icons/obj/structures/machinery/library.dmi b/icons/obj/structures/machinery/library.dmi
index 00e90fc7babf..3efeeef8b9f5 100644
Binary files a/icons/obj/structures/machinery/library.dmi and b/icons/obj/structures/machinery/library.dmi differ
diff --git a/icons/obj/structures/machinery/meter.dmi b/icons/obj/structures/machinery/meter.dmi
index 5f3051d8c05f..7cc681511108 100644
Binary files a/icons/obj/structures/machinery/meter.dmi and b/icons/obj/structures/machinery/meter.dmi differ
diff --git a/icons/obj/structures/machinery/power.dmi b/icons/obj/structures/machinery/power.dmi
index 76ca47047b63..aae3f3d69c13 100644
Binary files a/icons/obj/structures/machinery/power.dmi and b/icons/obj/structures/machinery/power.dmi differ
diff --git a/icons/obj/structures/machinery/robotics.dmi b/icons/obj/structures/machinery/robotics.dmi
index c53e7823cab7..5939f215b744 100644
Binary files a/icons/obj/structures/machinery/robotics.dmi and b/icons/obj/structures/machinery/robotics.dmi differ
diff --git a/icons/obj/structures/machinery/virology.dmi b/icons/obj/structures/machinery/virology.dmi
index 2f2f92602196..50a45753b784 100644
Binary files a/icons/obj/structures/machinery/virology.dmi and b/icons/obj/structures/machinery/virology.dmi differ
diff --git a/icons/obj/structures/mortar.dmi b/icons/obj/structures/mortar.dmi
index 7888d146357d..16e821c3d192 100644
Binary files a/icons/obj/structures/mortar.dmi and b/icons/obj/structures/mortar.dmi differ
diff --git a/icons/obj/structures/props/almayer_props64.dmi b/icons/obj/structures/props/almayer_props64.dmi
index c45b37d6ef15..f47f19be9081 100644
Binary files a/icons/obj/structures/props/almayer_props64.dmi and b/icons/obj/structures/props/almayer_props64.dmi differ
diff --git a/icons/obj/structures/tables.dmi b/icons/obj/structures/tables.dmi
index bee6f34772be..39783bfd8b4d 100644
Binary files a/icons/obj/structures/tables.dmi and b/icons/obj/structures/tables.dmi differ
diff --git a/icons/turf/dropship.dmi b/icons/turf/dropship.dmi
index b3cf56eb4549..e4261344ebba 100644
Binary files a/icons/turf/dropship.dmi and b/icons/turf/dropship.dmi differ
diff --git a/icons/turf/dropship2.dmi b/icons/turf/dropship2.dmi
index 754c20d9ead4..53a44fe75b71 100644
Binary files a/icons/turf/dropship2.dmi and b/icons/turf/dropship2.dmi differ
diff --git a/icons/turf/ert_shuttle.dmi b/icons/turf/ert_shuttle.dmi
index befed9f547b7..39018d4f1611 100644
Binary files a/icons/turf/ert_shuttle.dmi and b/icons/turf/ert_shuttle.dmi differ
diff --git a/icons/turf/escapepods.dmi b/icons/turf/escapepods.dmi
index 089db3cd3e19..96aa67789bb1 100644
Binary files a/icons/turf/escapepods.dmi and b/icons/turf/escapepods.dmi differ
diff --git a/icons/turf/floors/aicore.dmi b/icons/turf/floors/aicore.dmi
new file mode 100644
index 000000000000..0396b9bef241
Binary files /dev/null and b/icons/turf/floors/aicore.dmi differ
diff --git a/icons/turf/ground_map.dmi b/icons/turf/ground_map.dmi
index 1970ad966106..944293c2c423 100644
Binary files a/icons/turf/ground_map.dmi and b/icons/turf/ground_map.dmi differ
diff --git a/icons/turf/shuttle.dmi b/icons/turf/shuttle.dmi
index 14ff9b3d0ef2..c995c03de342 100644
Binary files a/icons/turf/shuttle.dmi and b/icons/turf/shuttle.dmi differ
diff --git a/icons/turf/walls/almayer_aicore.dmi b/icons/turf/walls/almayer_aicore.dmi
new file mode 100644
index 000000000000..5ce7aaf2022f
Binary files /dev/null and b/icons/turf/walls/almayer_aicore.dmi differ
diff --git a/icons/turf/walls/almayer_aicore_white.dmi b/icons/turf/walls/almayer_aicore_white.dmi
new file mode 100644
index 000000000000..721cd7c63f28
Binary files /dev/null and b/icons/turf/walls/almayer_aicore_white.dmi differ
diff --git a/icons/turf/walls/window_frames.dmi b/icons/turf/walls/window_frames.dmi
index e6dee0c29189..5fbe51615e98 100644
Binary files a/icons/turf/walls/window_frames.dmi and b/icons/turf/walls/window_frames.dmi differ
diff --git a/icons/turf/walls/windows.dmi b/icons/turf/walls/windows.dmi
index a3f2fd1d4198..2904c8d5fa9a 100644
Binary files a/icons/turf/walls/windows.dmi and b/icons/turf/walls/windows.dmi differ
diff --git a/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json b/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json
index 54c13d429c0e..156b291fb203 100644
--- a/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json
+++ b/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json
@@ -1,3 +1,10 @@
[
- { "type": "map_sprinkle", "path": "sprinkles/" }
+ { "type": "map_sprinkle", "path": "sprinkles/" },
+{
+ "type": "map_insert",
+ "landmark": "riot_control",
+ "chance": 0.5,
+ "path": "standalone/riot_in_progress.dmm",
+ "when": { "riot_in_progress": "true" }
+}
]
diff --git a/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json b/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json
index fe51488c7066..217ac5a8cb38 100644
--- a/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json
+++ b/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json
@@ -1 +1,9 @@
-[]
+[
+ {
+ "type": "pick", "name": "Riot Control",
+ "choices": [
+ { "weight": 4, "type": "def", "values": { "riot_in_progress": "none" } },
+ { "weight": 2, "type": "def", "values": { "riot_in_progress": "true" } }
+ ]
+ }
+]
diff --git a/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json b/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json
index 9c3008696d3a..301ffa337115 100644
--- a/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json
+++ b/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json
@@ -96,5 +96,12 @@
"landmark": "lz2-north",
"path": "lz2-variations/north/full-closed.dmm",
"when": { "lz2-north": "full" }
- }
+ },
+ {
+ "type": "map_insert",
+ "landmark": "panic_room",
+ "chance": 0.5,
+ "path": "standalone/panic_room_hold.dmm",
+ "when": { "panic_room": "full" }
+ }
]
diff --git a/maps/Nightmare/maps/Ice_Colony_v3/scenario.json b/maps/Nightmare/maps/Ice_Colony_v3/scenario.json
index 414bbcb15abc..4b4eb7b6b92f 100644
--- a/maps/Nightmare/maps/Ice_Colony_v3/scenario.json
+++ b/maps/Nightmare/maps/Ice_Colony_v3/scenario.json
@@ -8,6 +8,13 @@
{ "weight": 1, "type": "def", "values": { "lz2-southwest": "half", "lz2-south-gate": "none", "lz2-southeast": "half", "lz2-eastsouth": "full", "lz2-southeast-gate": "full", "lz2-east": "none", "lz2-east-gate": "half", "lz2-north": "none"} },
{ "weight": 1, "type": "def", "values": { "lz2-southwest": "full", "lz2-south-gate": "none", "lz2-southeast": "half", "lz2-eastsouth": "none", "lz2-southeast-gate": "open", "lz2-east": "full", "lz2-east-gate": "none", "lz2-north": "open"} }
]
+},
+{
+ "type": "pick", "name": "Panic Room",
+ "choices": [
+ { "weight": 10, "type": "def", "values": { "panic_room": "none"} },
+ { "weight": 3, "type": "def", "values": { "panic_room": "full"} }
+ ]
}
]
diff --git a/maps/Nightmare/maps/LV624/nightmare.json b/maps/Nightmare/maps/LV624/nightmare.json
index 8f81a61c16de..0fe51643177b 100644
--- a/maps/Nightmare/maps/LV624/nightmare.json
+++ b/maps/Nightmare/maps/LV624/nightmare.json
@@ -6,6 +6,13 @@
"path": "standalone/clfship.dmm",
"when": { "lvevent": "fallen_ship" }
},
+ {
+ "type": "map_insert",
+ "landmark": "corporatedome",
+ "chance": 0.5,
+ "path": "standalone/corporatedome.dmm",
+ "when": { "lvevent": "asset_protection" }
+ },
{
"type": "map_insert",
"landmark": "lv-skylight",
diff --git a/maps/Nightmare/maps/LV624/scenario.json b/maps/Nightmare/maps/LV624/scenario.json
index 3c8051a4eb17..6880cb542f2a 100644
--- a/maps/Nightmare/maps/LV624/scenario.json
+++ b/maps/Nightmare/maps/LV624/scenario.json
@@ -13,7 +13,8 @@
{ "weight": 2, "type": "def", "values": { "lvevent": "none" } },
{ "weight": 4, "type": "def", "values": { "lvevent": "last_stand" } },
{ "weight": 2, "type": "def", "values": { "lvevent": "fallen_ship", "mainpath": "bridge" } },
- { "weight": 2, "type": "def", "values": { "lvevent": "fallen_ship", "mainpath": "right" } }
+ { "weight": 2, "type": "def", "values": { "lvevent": "fallen_ship", "mainpath": "right" } },
+ { "weight": 2, "type": "def", "values": { "lvevent": "asset_protection", "mainpath": "left" } }
]
}
]
diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm
index 30ef6b33d69a..b605e7115c10 100644
--- a/maps/map_files/BigRed/BigRed.dmm
+++ b/maps/map_files/BigRed/BigRed.dmm
@@ -8,11 +8,6 @@
icon_state = "pwall"
},
/area/space)
-"aac" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_19"
- },
-/area/bigredv2/outside/n)
"aad" = (
/turf/open/mars_cave{
icon_state = "mars_cave_2"
@@ -165,6 +160,12 @@
icon_state = "dark"
},
/area/bigredv2/outside/space_port)
+"aaB" = (
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"aaC" = (
/obj/structure/surface/table,
/obj/effect/spawner/random/tool,
@@ -571,23 +572,11 @@
icon_state = "darkgreen2"
},
/area/bigredv2/outside/space_port)
-"abL" = (
-/obj/effect/landmark/crap_item,
-/turf/open/mars_cave{
- icon_state = "mars_cave_19"
- },
-/area/bigredv2/outside/n)
"abM" = (
/turf/open/mars_cave{
icon_state = "mars_cave_5"
},
/area/bigredv2/caves_north)
-"abN" = (
-/obj/effect/landmark/hunter_primary,
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/outside/n)
"abO" = (
/turf/open/mars_cave,
/area/bigredv2/caves_north)
@@ -629,33 +618,21 @@
/obj/structure/window_frame/solaris,
/turf/open/floor/plating,
/area/bigredv2/outside/space_port)
-"abU" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_6"
- },
-/area/bigredv2/outside/n)
"abV" = (
/turf/open/mars_cave{
icon_state = "mars_cave_11"
},
/area/bigredv2/caves_north)
-"abW" = (
-/obj/effect/landmark/hunter_secondary,
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/outside/n)
-"abX" = (
-/obj/effect/landmark/crap_item,
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/outside/n)
"abY" = (
+/obj/structure/barricade/wooden{
+ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
+ dir = 4;
+ health = 25000
+ },
/turf/open/mars_cave{
icon_state = "mars_cave_7"
},
-/area/bigredv2/outside/n)
+/area/bigredv2/caves_north)
"abZ" = (
/obj/structure/machinery/light{
dir = 1
@@ -671,11 +648,16 @@
},
/turf/open/floor/plating,
/area/bigredv2/outside/space_port)
-"acc" = (
+"acb" = (
+/obj/structure/barricade/wooden{
+ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
+ dir = 4;
+ health = 25000
+ },
/turf/open/mars_cave{
- icon_state = "mars_cave_15"
+ icon_state = "mars_cave_2"
},
-/area/bigredv2/outside/n)
+/area/bigredv2/caves_north)
"acd" = (
/obj/effect/landmark/good_item,
/turf/open/floor/plating,
@@ -711,11 +693,6 @@
icon_state = "warnplate"
},
/area/bigredv2/outside/space_port)
-"ack" = (
-/turf/open/mars_cave{
- icon_state = "mars_dirt_6"
- },
-/area/bigredv2/caves_lambda)
"acl" = (
/obj/structure/filingcabinet,
/obj/effect/landmark/objective_landmark/medium,
@@ -818,12 +795,6 @@
icon_state = "white"
},
/area/bigredv2/outside/marshal_office)
-"acE" = (
-/obj/structure/machinery/botany,
-/turf/open/floor{
- icon_state = "white"
- },
-/area/bigredv2/outside/marshal_office)
"acF" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -831,11 +802,6 @@
icon_state = "white"
},
/area/bigredv2/outside/marshal_office)
-"acG" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_18"
- },
-/area/bigredv2/outside/n)
"acH" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 6
@@ -1289,22 +1255,6 @@
icon_state = "wood"
},
/area/bigredv2/outside/marshal_office)
-"adX" = (
-/obj/structure/bookcase/manuals/engineering,
-/turf/open/floor{
- icon_state = "wood"
- },
-/area/bigredv2/outside/marshal_office)
-"adY" = (
-/obj/structure/closet/secure_closet/detective,
-/obj/item/weapon/gun/smg/fp9000,
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor{
- icon_state = "wood"
- },
-/area/bigredv2/outside/marshal_office)
"adZ" = (
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/caves/lambda/xenobiology)
@@ -3010,7 +2960,8 @@
/turf/open/floor,
/area/bigredv2/outside/marshal_office)
"aiN" = (
-/obj/structure/machinery/computer/prisoner,
+/obj/structure/surface/table,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor,
/area/bigredv2/outside/marshal_office)
"aiO" = (
@@ -3308,11 +3259,6 @@
icon_state = "bcircuit"
},
/area/bigredv2/outside/marshal_office)
-"ajD" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_16"
- },
-/area/bigredv2/outside/n)
"ajE" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
@@ -3502,25 +3448,12 @@
icon_state = "bcircuit"
},
/area/bigredv2/outside/marshal_office)
-"akf" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor{
- dir = 8;
- icon_state = "red"
- },
-/area/bigredv2/outside/marshal_office)
-"akg" = (
-/obj/effect/landmark/static_comms/net_one,
+"akh" = (
/turf/open/floor{
- icon_state = "bcircuit"
+ dir = 1;
+ icon_state = "asteroidfloor"
},
-/area/bigredv2/outside/marshal_office)
+/area/bigredv2/outside/telecomm/n_cave)
"aki" = (
/obj/structure/surface/table,
/obj/item/clothing/mask/gas,
@@ -3577,8 +3510,7 @@
/turf/open/floor,
/area/bigredv2/outside/marshal_office)
"akr" = (
-/obj/structure/surface/table,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/structure/machinery/computer/prisoner,
/turf/open/floor,
/area/bigredv2/outside/marshal_office)
"aks" = (
@@ -3725,26 +3657,12 @@
icon_state = "dark"
},
/area/bigredv2/outside/marshal_office)
-"akN" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
+"akP" = (
/turf/open/floor{
- icon_state = "red"
- },
-/area/bigredv2/outside/marshal_office)
-"akO" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
- pixel_x = -1;
- pixel_y = 1
- },
-/turf/open/floor{
- dir = 6;
- icon_state = "red"
+ dir = 8;
+ icon_state = "asteroidwarning"
},
-/area/bigredv2/outside/marshal_office)
+/area/bigredv2/outside/telecomm/n_cave)
"akQ" = (
/obj/structure/surface/table/reinforced,
/obj/structure/machinery/door/window/brigdoor/southright,
@@ -3820,6 +3738,14 @@
icon_state = "whitepurplefull"
},
/area/bigredv2/caves/lambda/xenobiology)
+"ald" = (
+/obj/structure/surface/table/reinforced,
+/obj/item/book/manual/research_and_development,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whitepurple"
+ },
+/area/bigredv2/caves/lambda/xenobiology)
"ale" = (
/obj/effect/landmark/xeno_spawn,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
@@ -3889,9 +3815,12 @@
},
/area/bigredv2/outside/nw)
"alp" = (
-/obj/structure/machinery/light,
+/obj/structure/machinery/door/airlock/almayer/security/glass/colony{
+ dir = 1;
+ name = "\improper Marshal Office Evidence Room"
+ },
/turf/open/floor{
- icon_state = "bcircuit"
+ icon_state = "delivery"
},
/area/bigredv2/outside/marshal_office)
"alr" = (
@@ -3944,15 +3873,6 @@
},
/turf/open/floor,
/area/bigredv2/outside/marshal_office)
-"aly" = (
-/obj/structure/bed/chair{
- dir = 4
- },
-/obj/structure/barricade/handrail{
- dir = 4
- },
-/turf/open/floor,
-/area/bigredv2/outside/marshal_office)
"alz" = (
/obj/structure/bed/chair{
dir = 4
@@ -4259,18 +4179,6 @@
/obj/effect/landmark/survivor_spawner,
/turf/open/floor,
/area/bigredv2/outside/marshal_office)
-"amv" = (
-/obj/structure/bed/chair{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/obj/structure/barricade/handrail{
- dir = 4
- },
-/turf/open/floor,
-/area/bigredv2/outside/marshal_office)
"amw" = (
/obj/structure/bed/chair{
dir = 4
@@ -4572,11 +4480,6 @@
/obj/effect/spawner/random/powercell,
/turf/open/floor/plating,
/area/bigredv2/caves/lambda/xenobiology)
-"ann" = (
-/turf/open/mars_cave{
- icon_state = "mars_dirt_5"
- },
-/area/bigredv2/outside/n)
"ano" = (
/obj/structure/machinery/door/airlock/almayer/maint/colony{
name = "\improper Lambda Lab Maintenance Storage"
@@ -4605,11 +4508,14 @@
},
/area/bigredv2/outside/medical)
"ant" = (
-/turf/open/floor{
- dir = 6;
- icon_state = "asteroidwarning"
+/obj/structure/window/framed/solaris,
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ dir = 4;
+ id = "Dormitories";
+ name = "\improper Dormitories Shutters"
},
-/area/bigredv2/outside/ne)
+/turf/open/floor/plating,
+/area/bigredv2/outside/general_offices)
"anu" = (
/obj/structure/machinery/light{
dir = 4
@@ -4774,10 +4680,13 @@
/turf/closed/wall/solaris,
/area/bigredv2/outside/hydroponics)
"anU" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_20"
+/obj/structure/window/framed/solaris,
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ id = "Greenhouse";
+ name = "\improper Greenhouse Shutters"
},
-/area/bigredv2/caves_lambda)
+/turf/open/floor/plating,
+/area/bigredv2/outside/hydroponics)
"anV" = (
/obj/item/reagent_container/spray/pepper,
/turf/open/floor{
@@ -4809,9 +4718,6 @@
},
/turf/open/floor/plating,
/area/bigredv2/outside/medical)
-"aoa" = (
-/turf/closed/wall/solaris/reinforced,
-/area/bigredv2/caves_north)
"aob" = (
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/caves/lambda/virology)
@@ -4916,29 +4822,6 @@
},
/turf/open/floor,
/area/bigredv2/outside/general_offices)
-"aor" = (
-/obj/item/clothing/under/darkred,
-/obj/structure/surface/rack,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/general_offices)
-"aos" = (
-/obj/structure/surface/rack,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/general_offices)
-"aot" = (
-/obj/structure/machinery/washing_machine,
-/obj/item/clothing/under/brown,
-/obj/structure/machinery/washing_machine{
- pixel_y = 13
- },
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/general_offices)
"aou" = (
/turf/open/floor/plating,
/area/bigredv2/outside/general_offices)
@@ -5173,12 +5056,6 @@
icon_state = "freezerfloor"
},
/area/bigredv2/outside/general_offices)
-"apf" = (
-/obj/structure/pipes/vents/pump/on,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/general_offices)
"apg" = (
/obj/item/clothing/under/lightbrown,
/turf/open/floor{
@@ -5672,7 +5549,7 @@
},
/area/bigredv2/outside/medical)
"aqv" = (
-/obj/structure/machinery/cm_vending/sorted/medical/no_access,
+/obj/structure/bed,
/turf/open/floor{
icon_state = "white"
},
@@ -5690,20 +5567,6 @@
},
/turf/open/floor/plating,
/area/bigredv2/outside/library)
-"aqy" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/machinery/door_control{
- id = "Medical";
- name = "Storm Shutters";
- pixel_y = 32
- },
-/obj/structure/bed,
-/turf/open/floor{
- icon_state = "white"
- },
-/area/bigredv2/outside/medical)
"aqz" = (
/obj/structure/window/framed/solaris,
/obj/structure/machinery/door/poddoor/shutters/almayer{
@@ -5712,15 +5575,6 @@
},
/turf/open/floor/plating,
/area/bigredv2/outside/bar)
-"aqB" = (
-/obj/structure/machinery/computer/crew{
- density = 0;
- pixel_y = 16
- },
-/turf/open/floor{
- icon_state = "whitegreenfull"
- },
-/area/bigredv2/outside/medical)
"aqC" = (
/obj/structure/surface/table,
/turf/open/floor{
@@ -5728,33 +5582,6 @@
icon_state = "whitebluefull"
},
/area/bigredv2/outside/medical)
-"aqE" = (
-/obj/structure/machinery/camera/autoname{
- dir = 1
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/n)
-"aqF" = (
-/obj/structure/surface/table,
-/obj/item/bodybag,
-/obj/item/bodybag,
-/obj/item/bodybag,
-/turf/open/floor{
- dir = 1;
- icon_state = "whitegreen"
- },
-/area/bigredv2/outside/medical)
-"aqG" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 5
- },
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/n)
"aqH" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -5877,22 +5704,6 @@
icon_state = "elevatorshaft"
},
/area/bigredv2/caves/lambda/breakroom)
-"aqZ" = (
-/obj/structure/noticeboard{
- desc = "A board for pinning important items upon.";
- dir = 1;
- name = "trophy board";
- pixel_y = 30
- },
-/obj/item/XenoBio/Chitin{
- anchored = 1;
- pixel_y = 27
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "elevatorshaft"
- },
-/area/bigredv2/caves/lambda/breakroom)
"ara" = (
/obj/structure/surface/table/woodentable/fancy,
/obj/item/device/flashlight/lamp{
@@ -5970,7 +5781,7 @@
},
/area/bigredv2/outside/medical)
"ark" = (
-/obj/structure/bed,
+/obj/structure/bed/roller,
/turf/open/floor{
icon_state = "white"
},
@@ -5986,15 +5797,6 @@
icon_state = "white"
},
/area/bigredv2/outside/medical)
-"arn" = (
-/obj/structure/machinery/computer/med_data{
- density = 0;
- pixel_y = 16
- },
-/turf/open/floor{
- icon_state = "white"
- },
-/area/bigredv2/outside/medical)
"arp" = (
/turf/open/mars{
icon_state = "mars_dirt_3"
@@ -6006,36 +5808,12 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/outside/n)
-"arr" = (
-/turf/open/mars{
- icon_state = "mars_dirt_12"
- },
-/area/bigredv2/outside/n)
"ars" = (
/obj/structure/bed/chair{
dir = 1
},
/turf/open/floor,
/area/bigredv2/outside/general_offices)
-"art" = (
-/obj/structure/surface/table,
-/obj/item/clothing/under/lightbrown,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/general_offices)
-"aru" = (
-/obj/structure/surface/table,
-/obj/structure/machinery/light,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/general_offices)
-"arv" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_10"
- },
-/area/bigredv2/outside/n)
"arw" = (
/obj/structure/machinery/power/apc,
/turf/open/floor/plating,
@@ -6058,14 +5836,6 @@
icon_state = "dark"
},
/area/bigredv2/outside/general_offices)
-"arz" = (
-/obj/structure/prop/vehicles/crawler{
- icon_state = "crawler_covered_bed"
- },
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/caves_lambda)
"arA" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/surface/rack,
@@ -6212,14 +5982,6 @@
icon_state = "white"
},
/area/bigredv2/outside/medical)
-"arV" = (
-/obj/structure/pipes/vents/pump{
- dir = 8
- },
-/turf/open/floor{
- icon_state = "white"
- },
-/area/bigredv2/outside/medical)
"arW" = (
/obj/structure/surface/table,
/obj/structure/machinery/light{
@@ -6339,12 +6101,6 @@
/obj/structure/window/framed/solaris/reinforced,
/turf/open/floor/plating,
/area/bigredv2/outside/virology)
-"asm" = (
-/obj/item/device/flashlight/lantern,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/outside/ne)
"asn" = (
/obj/structure/surface/rack,
/obj/item/clothing/suit/armor/vest,
@@ -6489,13 +6245,6 @@
icon_state = "whitegreenfull"
},
/area/bigredv2/outside/medical)
-"asG" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/turf/open/floor{
- dir = 4;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/n)
"asH" = (
/obj/structure/window/framed/solaris,
/obj/structure/machinery/door/poddoor/shutters/almayer{
@@ -6724,17 +6473,8 @@
icon_state = "whitepurplecorner"
},
/area/bigredv2/outside/medical)
-"atp" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/bed/roller,
-/turf/open/floor{
- icon_state = "white"
- },
-/area/bigredv2/outside/medical)
"atq" = (
-/obj/structure/bed/roller,
+/obj/structure/machinery/cm_vending/sorted/medical/no_access,
/turf/open/floor{
icon_state = "white"
},
@@ -6745,42 +6485,6 @@
icon_state = "white"
},
/area/bigredv2/outside/medical)
-"ats" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 5
- },
-/obj/structure/surface/table,
-/obj/structure/machinery/light,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/n)
-"att" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 10
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/n)
-"atu" = (
-/obj/structure/machinery/light,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/n)
-"atv" = (
-/obj/structure/morgue{
- dir = 2
- },
-/turf/open/floor{
- dir = 9;
- icon_state = "whiteblue"
- },
-/area/bigredv2/outside/medical)
"atw" = (
/obj/structure/window/framed/solaris,
/obj/structure/machinery/door/poddoor/shutters/almayer{
@@ -6978,18 +6682,6 @@
icon_state = "delivery"
},
/area/bigredv2/outside/medical)
-"atW" = (
-/obj/effect/decal/cleanable/blood{
- icon_state = "gib6"
- },
-/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{
- name = "\improper Medical Clinic"
- },
-/obj/structure/pipes/standard/simple/hidden/green,
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/medical)
"atX" = (
/obj/item/stack/sheet/metal,
/obj/effect/decal/cleanable/blood{
@@ -7069,7 +6761,7 @@
},
/area/bigredv2/outside/general_offices)
"aui" = (
-/obj/structure/surface/table/woodentable,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "wood"
},
@@ -7141,6 +6833,12 @@
icon_state = "dark"
},
/area/bigredv2/caves/lambda/breakroom)
+"aus" = (
+/turf/open/floor{
+ dir = 10;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"aut" = (
/turf/open/floor{
dir = 4;
@@ -7166,7 +6864,8 @@
/area/bigredv2/caves/lambda/breakroom)
"auw" = (
/obj/structure/showcase{
- icon_state = "mechfab1"
+ icon = 'icons/obj/structures/machinery/research.dmi';
+ icon_state = "d_analyzer_la"
},
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 1
@@ -7268,13 +6967,6 @@
icon_state = "whitepurplecorner"
},
/area/bigredv2/outside/medical)
-"auJ" = (
-/obj/structure/bed/roller,
-/turf/open/floor{
- dir = 9;
- icon_state = "whitegreen"
- },
-/area/bigredv2/outside/medical)
"auK" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
@@ -7304,51 +6996,12 @@
icon_state = "whitegreen"
},
/area/bigredv2/outside/medical)
-"auO" = (
-/obj/structure/surface/table,
-/obj/item/bodybag,
-/obj/item/bodybag,
-/obj/item/bodybag,
-/turf/open/floor{
- dir = 5;
- icon_state = "whitegreen"
- },
-/area/bigredv2/outside/medical)
"auP" = (
/turf/open/floor{
dir = 9;
icon_state = "whiteblue"
},
/area/bigredv2/outside/medical)
-"auR" = (
-/obj/structure/morgue{
- dir = 2
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "whiteblue"
- },
-/area/bigredv2/outside/medical)
-"auS" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/morgue{
- dir = 2
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "whiteblue"
- },
-/area/bigredv2/outside/medical)
-"auT" = (
-/obj/structure/surface/table,
-/obj/effect/landmark/objective_landmark/close,
-/turf/open/floor{
- dir = 5;
- icon_state = "whiteblue"
- },
-/area/bigredv2/outside/medical)
"auU" = (
/obj/structure/machinery/door/airlock/almayer/generic{
dir = 1;
@@ -7369,12 +7022,6 @@
"auW" = (
/turf/closed/wall/solaris/reinforced/hull,
/area/bigredv2/outside/c)
-"auX" = (
-/obj/structure/barricade/handrail,
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/c)
"auY" = (
/turf/open/floor/carpet,
/area/bigredv2/caves/lambda/breakroom)
@@ -7647,11 +7294,6 @@
},
/turf/open/floor,
/area/bigredv2/outside/general_offices)
-"avK" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_20"
- },
-/area/bigredv2/outside/n)
"avM" = (
/obj/structure/machinery/light{
dir = 8
@@ -7791,11 +7433,6 @@
icon_state = "purple"
},
/area/bigredv2/caves/lambda/research)
-"awf" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_17"
- },
-/area/bigredv2/caves_lambda)
"awg" = (
/obj/effect/decal/cleanable/blood,
/obj/structure/pipes/standard/simple/hidden/green{
@@ -7823,14 +7460,6 @@
icon_state = "white"
},
/area/bigredv2/outside/medical)
-"awj" = (
-/obj/structure/machinery/door/airlock/almayer/medical{
- name = "\improper Medical Clinic Morgue"
- },
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/medical)
"awk" = (
/obj/structure/machinery/medical_pod/sleeper,
/turf/open/floor{
@@ -7843,13 +7472,6 @@
icon_state = "white"
},
/area/bigredv2/outside/medical)
-"awm" = (
-/obj/structure/machinery/optable,
-/turf/open/floor{
- dir = 4;
- icon_state = "whiteblue"
- },
-/area/bigredv2/outside/medical)
"awn" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/crap_item,
@@ -7914,19 +7536,6 @@
/obj/effect/landmark/crap_item,
/turf/open/floor,
/area/bigredv2/outside/general_offices)
-"awx" = (
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/outside/n)
-"awy" = (
-/obj/effect/landmark/crap_item,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/ne)
"awz" = (
/obj/item/ashtray/bronze{
pixel_x = -7
@@ -8145,12 +7754,6 @@
icon_state = "grimy"
},
/area/bigredv2/outside/dorms)
-"axf" = (
-/obj/structure/pipes/vents/pump,
-/turf/open/floor{
- icon_state = "grimy"
- },
-/area/bigredv2/outside/dorms)
"axg" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
@@ -8188,12 +7791,6 @@
/obj/structure/barricade/wooden,
/turf/open/floor,
/area/bigredv2/outside/general_offices)
-"axm" = (
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_cave_14"
- },
-/area/bigredv2/outside/n)
"axn" = (
/obj/structure/window/reinforced/toughened{
dir = 1;
@@ -8314,20 +7911,6 @@
icon_state = "whitegreen"
},
/area/bigredv2/outside/medical)
-"axD" = (
-/obj/structure/morgue{
- dir = 1
- },
-/turf/open/floor{
- icon_state = "whiteblue"
- },
-/area/bigredv2/outside/medical)
-"axE" = (
-/turf/open/floor{
- dir = 6;
- icon_state = "whiteblue"
- },
-/area/bigredv2/outside/medical)
"axF" = (
/obj/structure/barricade/wooden,
/obj/structure/barricade/wooden,
@@ -8643,11 +8226,6 @@
icon_state = "wood"
},
/area/bigredv2/outside/general_offices)
-"ayz" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_15"
- },
-/area/bigredv2/outside/ne)
"ayA" = (
/obj/structure/machinery/vending/snack,
/obj/structure/machinery/light,
@@ -8809,12 +8387,6 @@
"ayV" = (
/turf/open/floor/plating,
/area/bigredv2/outside/medical)
-"ayW" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/bigredv2/outside/medical)
"ayX" = (
/obj/effect/landmark/good_item,
/turf/open/floor,
@@ -8855,16 +8427,6 @@
icon_state = "wood"
},
/area/bigredv2/outside/general_offices)
-"aze" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/pipes/standard/simple/hidden/green,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/ne)
"azf" = (
/obj/effect/landmark/crap_item,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
@@ -9065,11 +8627,13 @@
/turf/open/floor/plating,
/area/bigredv2/outside/engineering)
"azF" = (
-/obj/structure/blocker/forcefield/multitile_vehicles,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W-corner"
+ },
/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
+ icon_state = "mars_cave_2"
},
-/area/bigredv2/outside/n)
+/area/bigredv2/caves_lambda)
"azG" = (
/obj/structure/window/framed/solaris,
/obj/structure/machinery/door/poddoor/shutters/almayer{
@@ -9119,9 +8683,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor,
/area/bigredv2/outside/dorms)
-"azR" = (
-/turf/closed/wall/solaris/reinforced,
-/area/bigredv2/outside/w)
"azS" = (
/obj/structure/machinery/vending/snack{
icon_state = "snack-broken";
@@ -9161,10 +8722,6 @@
},
/turf/open/floor,
/area/bigredv2/outside/dorms)
-"azX" = (
-/obj/structure/machinery/camera/autoname,
-/turf/open/floor,
-/area/bigredv2/outside/dorms)
"azY" = (
/obj/structure/pipes/standard/manifold/hidden/green{
dir = 1
@@ -9192,32 +8749,6 @@
},
/turf/open/floor,
/area/bigredv2/outside/dorms)
-"aAc" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/obj/structure/machinery/door/airlock/almayer/maint/colony{
- name = "\improper Bar Maintenance"
- },
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/bar)
-"aAd" = (
-/obj/structure/machinery/door/airlock/almayer/security/glass/colony{
- dir = 1;
- name = "\improper Marshal Office Evidence Room"
- },
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/marshal_office)
-"aAe" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 10
- },
-/turf/open/floor/plating,
-/area/bigredv2/outside/bar)
"aAf" = (
/obj/structure/machinery/light{
dir = 1
@@ -9227,11 +8758,6 @@
"aAg" = (
/turf/open/floor/plating,
/area/bigredv2/outside/bar)
-"aAh" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_9"
- },
-/area/bigredv2/outside/ne)
"aAi" = (
/turf/open/floor{
dir = 8;
@@ -9368,12 +8894,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor,
/area/bigredv2/outside/dorms)
-"aAD" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/dorms)
"aAE" = (
/obj/structure/machinery/door/airlock/almayer/medical/glass/colony{
dir = 1;
@@ -9383,16 +8903,6 @@
icon_state = "delivery"
},
/area/bigredv2/outside/dorms)
-"aAF" = (
-/obj/structure/window_frame/solaris,
-/turf/open/floor/plating,
-/area/bigredv2/outside/marshal_office)
-"aAG" = (
-/obj/structure/pipes/standard/manifold/hidden/green{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/bigredv2/outside/bar)
"aAH" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -9695,13 +9205,6 @@
/obj/structure/window/framed/solaris/reinforced,
/turf/open/floor/plating,
/area/bigredv2/caves/eta/research)
-"aBx" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/ne)
"aBy" = (
/obj/structure/window/framed/solaris/reinforced,
/turf/open/floor/plating,
@@ -9848,24 +9351,6 @@
/obj/item/trash/candy,
/turf/open/floor,
/area/bigredv2/outside/dorms)
-"aBV" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
-/obj/structure/mirror{
- pixel_x = -28
- },
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/dorms)
"aBW" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
@@ -9881,12 +9366,6 @@
icon_state = "freezerfloor"
},
/area/bigredv2/outside/dorms)
-"aBY" = (
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/outside/ne)
"aBZ" = (
/obj/structure/bed/stool,
/turf/open/floor{
@@ -9909,28 +9388,17 @@
},
/area/bigredv2/outside/ne)
"aCd" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_16"
+/turf/open/mars{
+ icon_state = "mars_dirt_3"
},
/area/bigredv2/outside/ne)
"aCe" = (
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/caves/eta/xenobiology)
"aCf" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W-corner"
- },
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/caves_lambda)
-"aCg" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- name = "\improper Greenhouse Storage"
- },
+/obj/structure/machinery/portable_atmospherics/hydroponics,
/turf/open/floor{
- icon_state = "delivery"
+ icon_state = "whitegreenfull"
},
/area/bigredv2/outside/hydroponics)
"aCh" = (
@@ -10180,12 +9648,6 @@
icon_state = "wood"
},
/area/bigredv2/outside/bar)
-"aCQ" = (
-/obj/effect/decal/cleanable/blood/gibs/limb,
-/turf/open/floor{
- icon_state = "grimy"
- },
-/area/bigredv2/outside/dorms)
"aCR" = (
/obj/effect/decal/cleanable/blood{
icon_state = "gib6"
@@ -10217,22 +9679,11 @@
icon_state = "delivery"
},
/area/bigredv2/outside/bar)
-"aCV" = (
-/obj/effect/landmark/hunter_primary,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
+"aCW" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_8"
},
/area/bigredv2/outside/ne)
-"aCX" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 6
- },
-/obj/structure/machinery/portable_atmospherics/hydroponics,
-/turf/open/floor{
- icon_state = "whitegreenfull"
- },
-/area/bigredv2/outside/hydroponics)
"aCY" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/pipes/standard/simple/hidden/green{
@@ -10257,18 +9708,17 @@
},
/turf/open/floor,
/area/bigredv2/outside/hydroponics)
-"aDc" = (
-/obj/structure/bookcase{
- density = 0
- },
-/turf/open/floor{
- icon_state = "wood"
- },
-/area/bigredv2/outside/library)
"aDd" = (
+/obj/structure/pipes/vents/pump{
+ dir = 4
+ },
/obj/structure/machinery/light{
dir = 1
},
+/obj/structure/bed/chair/comfy{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "wood"
},
@@ -10282,14 +9732,17 @@
},
/area/bigredv2/outside/library)
"aDf" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_17";
+ pixel_x = 7;
+ pixel_y = 14
},
-/obj/structure/machinery/door/airlock/almayer/generic{
- name = "\improper Library Backroom"
+/obj/structure/window{
+ dir = 8
},
/turf/open/floor{
- icon_state = "delivery"
+ icon_state = "wood"
},
/area/bigredv2/outside/library)
"aDg" = (
@@ -10301,15 +9754,10 @@
},
/area/bigredv2/outside/library)
"aDh" = (
-/obj/structure/machinery/light{
+/obj/structure/pipes/standard/simple/hidden/green,
+/obj/structure/bed/chair/comfy{
dir = 4
},
-/obj/structure/machinery/power/apc{
- dir = 1
- },
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 10
- },
/turf/open/floor{
icon_state = "wood"
},
@@ -10354,11 +9802,6 @@
icon_state = "darkpurple2"
},
/area/bigredv2/caves/lambda/research)
-"aDo" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/largecrate/random/barrel,
-/turf/open/floor,
-/area/bigredv2/outside/cargo)
"aDp" = (
/obj/structure/surface/table,
/obj/effect/spawner/random/technology_scanner,
@@ -10587,16 +10030,6 @@
},
/turf/open/floor,
/area/bigredv2/outside/dorms)
-"aDR" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_19"
- },
-/area/bigredv2/outside/ne)
-"aDT" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_17"
- },
-/area/bigredv2/outside/ne)
"aDU" = (
/obj/structure/closet/athletic_mixed,
/obj/structure/machinery/light{
@@ -10667,19 +10100,6 @@
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor,
/area/bigredv2/outside/hydroponics)
-"aEe" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E-corner"
- },
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/caves_north)
-"aEf" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/landmark/crap_item,
-/turf/open/floor,
-/area/bigredv2/outside/hydroponics)
"aEg" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/trash/popcorn,
@@ -10699,18 +10119,17 @@
/turf/open/floor/plating,
/area/bigredv2/caves/eta/living)
"aEk" = (
-/obj/structure/surface/table/woodentable,
-/obj/structure/pipes/vents/pump{
- dir = 4
- },
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
- icon_state = "wood"
+ dir = 1;
+ icon_state = "asteroidfloor"
},
-/area/bigredv2/outside/library)
+/area/bigredv2/outside/ne)
"aEl" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 9
+/obj/structure/surface/table,
+/obj/structure/machinery/computer/emails{
+ dir = 8;
+ pixel_y = 4
},
/turf/open/floor{
icon_state = "wood"
@@ -10811,13 +10230,6 @@
icon_state = "whitegreen"
},
/area/bigredv2/outside/medical)
-"aEB" = (
-/obj/structure/pipes/vents/pump,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/n)
"aEC" = (
/obj/effect/decal/cleanable/blood/gibs/body,
/turf/open/floor{
@@ -10880,13 +10292,6 @@
/obj/structure/pipes/vents/pump,
/turf/open/floor,
/area/bigredv2/outside/dorms)
-"aEL" = (
-/obj/structure/machinery/camera/autoname{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor,
-/area/bigredv2/outside/dorms)
"aEM" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood{
@@ -10929,15 +10334,6 @@
icon_state = "wood"
},
/area/bigredv2/outside/bar)
-"aES" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 5
- },
-/obj/structure/machinery/portable_atmospherics/hydroponics,
-/turf/open/floor{
- icon_state = "whitegreenfull"
- },
-/area/bigredv2/outside/hydroponics)
"aET" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/tool/shovel/spade,
@@ -10953,13 +10349,6 @@
},
/turf/open/floor,
/area/bigredv2/outside/hydroponics)
-"aEV" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/machinery/camera/autoname{
- dir = 4
- },
-/turf/open/floor,
-/area/bigredv2/outside/cargo)
"aEW" = (
/obj/item/tool/hatchet,
/obj/effect/decal/cleanable/dirt,
@@ -11277,29 +10666,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor,
/area/bigredv2/outside/dorms)
-"aFQ" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/machinery/recharge_station,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/dorms)
-"aFR" = (
-/obj/structure/toilet{
- dir = 1
- },
-/obj/effect/landmark/lv624/xeno_tunnel,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/dorms)
-"aFS" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_20"
- },
-/area/bigredv2/outside/ne)
"aFT" = (
/obj/structure/surface/table/woodentable,
/obj/item/device/radio,
@@ -11353,16 +10719,6 @@
icon_state = "wood"
},
/area/bigredv2/outside/bar)
-"aFZ" = (
-/obj/structure/machinery/door/poddoor/almayer/closed{
- dir = 4;
- id = "lambda";
- name = "Lambda Lockdown"
- },
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/caves_north)
"aGa" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
dir = 1;
@@ -11406,16 +10762,6 @@
icon_state = "wood"
},
/area/bigredv2/outside/library)
-"aGf" = (
-/obj/structure/machinery/door_control{
- id = "Library";
- name = "Storm Shutters";
- pixel_x = 32
- },
-/turf/open/floor{
- icon_state = "wood"
- },
-/area/bigredv2/outside/library)
"aGg" = (
/obj/structure/machinery/light/built{
dir = 4
@@ -11656,30 +11002,10 @@
icon_state = "wood"
},
/area/bigredv2/outside/bar)
-"aGK" = (
-/obj/structure/machinery/light,
-/obj/structure/machinery/portable_atmospherics/hydroponics,
-/turf/open/floor{
- icon_state = "whitegreenfull"
- },
-/area/bigredv2/outside/hydroponics)
"aGL" = (
/obj/structure/machinery/biogenerator,
/turf/open/floor,
/area/bigredv2/outside/hydroponics)
-"aGN" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet6-2"
- },
-/area/bigredv2/outside/library)
-"aGO" = (
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet10-8"
- },
-/area/bigredv2/outside/library)
"aGP" = (
/obj/structure/filingcabinet/medical,
/obj/effect/landmark/objective_landmark/science,
@@ -11691,6 +11017,9 @@
/obj/structure/machinery/light{
dir = 4
},
+/obj/structure/machinery/power/apc{
+ dir = 1
+ },
/turf/open/floor{
icon_state = "wood"
},
@@ -11995,19 +11324,9 @@
icon_state = "delivery"
},
/area/bigredv2/outside/hydroponics)
-"aHM" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet7-3"
- },
-/area/bigredv2/outside/library)
"aHN" = (
/obj/effect/landmark/crap_item,
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet11-12"
- },
+/turf/open/floor/carpet,
/area/bigredv2/outside/library)
"aHO" = (
/obj/structure/bed/chair/wood/normal,
@@ -12324,16 +11643,11 @@
/obj/structure/machinery/vending/snack,
/turf/open/floor,
/area/bigredv2/outside/hydroponics)
-"aIG" = (
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet11-12"
- },
-/area/bigredv2/outside/library)
"aIH" = (
/obj/structure/surface/table/woodentable,
/obj/item/paper,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "wood"
},
@@ -12688,7 +12002,6 @@
/turf/open/floor,
/area/bigredv2/outside/hydroponics)
"aJB" = (
-/obj/structure/machinery/vending/cola,
/obj/structure/machinery/light{
dir = 4
},
@@ -12696,15 +12009,6 @@
icon_state = "yellowfull"
},
/area/bigredv2/outside/hydroponics)
-"aJC" = (
-/obj/structure/machinery/alarm{
- dir = 4;
- pixel_x = -30
- },
-/turf/open/floor{
- icon_state = "wood"
- },
-/area/bigredv2/outside/library)
"aJD" = (
/obj/structure/surface/table/woodentable,
/obj/item/toy/dice/d20,
@@ -13051,16 +12355,6 @@
icon_state = "wood"
},
/area/bigredv2/outside/bar)
-"aKA" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_6"
- },
-/area/bigredv2/outside/ne)
-"aKB" = (
-/turf/open/mars{
- icon_state = "mars_dirt_11"
- },
-/area/bigredv2/outside/ne)
"aKC" = (
/obj/structure/pipes/vents/pump{
dir = 4
@@ -13122,16 +12416,19 @@
},
/area/bigredv2/outside/hydroponics)
"aKK" = (
-/obj/structure/machinery/vending/coffee,
-/turf/open/floor,
-/area/bigredv2/outside/hydroponics)
-"aKL" = (
-/obj/structure/bookcase{
- density = 0
- },
/obj/structure/machinery/light{
dir = 8
},
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
+"aKL" = (
+/obj/structure/bookcase{
+ icon_state = "book-5"
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "wood"
},
@@ -13140,19 +12437,15 @@
/obj/structure/pipes/standard/simple/hidden/green{
dir = 5
},
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet7-3"
- },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
/area/bigredv2/outside/library)
"aKN" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 10
},
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet11-12"
- },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
/area/bigredv2/outside/library)
"aKO" = (
/obj/structure/bed/chair/wood/normal{
@@ -13309,7 +12602,7 @@
/area/bigredv2/outside/office_complex)
"aLh" = (
/obj/effect/landmark/nightmare{
- insert_tag = "lz1north"
+ insert_tag = "lz1north_mining"
},
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/outside/space_port)
@@ -13331,14 +12624,6 @@
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor,
/area/bigredv2/outside/cargo)
-"aLn" = (
-/obj/structure/surface/table,
-/obj/structure/machinery/light,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
"aLo" = (
/obj/structure/surface/table,
/obj/item/device/radio,
@@ -13471,17 +12756,8 @@
},
/area/bigredv2/outside/hydroponics)
"aLF" = (
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet7-3"
- },
-/area/bigredv2/outside/library)
-"aLG" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet11-12"
- },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
/area/bigredv2/outside/library)
"aLH" = (
/turf/open/floor/bluegrid{
@@ -14429,16 +13705,10 @@
/area/bigredv2/outside/hydroponics)
"aOi" = (
/obj/structure/pipes/standard/simple/hidden/green,
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet15-15"
- },
+/turf/open/floor/carpet,
/area/bigredv2/outside/library)
"aOj" = (
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet14-10"
- },
+/turf/open/floor/carpet,
/area/bigredv2/outside/library)
"aOk" = (
/turf/open/mars{
@@ -14840,46 +14110,46 @@
},
/area/bigredv2/outside/hydroponics)
"aPk" = (
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet5-1"
- },
+/obj/structure/bed/chair/wood/normal,
+/turf/open/floor/carpet,
/area/bigredv2/outside/library)
"aPl" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 5
},
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet13-5"
- },
+/turf/open/floor/carpet,
/area/bigredv2/outside/library)
"aPm" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 10
},
-/turf/open/floor{
- dir = 8;
- icon_state = "carpet13-5"
- },
+/turf/open/floor/carpet,
/area/bigredv2/outside/library)
"aPn" = (
/obj/effect/landmark/crap_item,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
- dir = 8;
- icon_state = "carpet13-5"
+ icon_state = "wood"
},
/area/bigredv2/outside/library)
"aPo" = (
+/obj/structure/surface/table/woodentable,
+/obj/structure/window{
+ dir = 8
+ },
+/obj/structure/machinery/computer/emails{
+ dir = 4
+ },
/turf/open/floor{
- dir = 8;
- icon_state = "carpet13-5"
+ icon_state = "wood"
},
/area/bigredv2/outside/library)
"aPp" = (
+/obj/structure/bed/chair/comfy{
+ dir = 8
+ },
/turf/open/floor{
- dir = 8;
- icon_state = "carpet9-4"
+ icon_state = "wood"
},
/area/bigredv2/outside/library)
"aPq" = (
@@ -15307,8 +14577,8 @@
/turf/open/floor,
/area/bigredv2/outside/hydroponics)
"aQr" = (
-/obj/structure/machinery/camera/autoname{
- dir = 4
+/obj/structure/bookcase{
+ icon_state = "book-5"
},
/turf/open/floor{
icon_state = "wood"
@@ -15316,12 +14586,25 @@
/area/bigredv2/outside/library)
"aQs" = (
/obj/structure/machinery/light,
+/obj/structure/window{
+ dir = 4
+ },
+/obj/structure/surface/table/woodentable,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_10";
+ pixel_y = 11
+ },
/turf/open/floor{
icon_state = "wood"
},
/area/bigredv2/outside/library)
"aQt" = (
-/obj/structure/pipes/standard/simple/hidden/green,
+/obj/structure/surface/table,
+/obj/structure/window,
+/obj/structure/machinery/computer/emails{
+ dir = 8;
+ pixel_y = 4
+ },
/turf/open/floor{
icon_state = "wood"
},
@@ -17494,6 +16777,17 @@
icon_state = "warnwhite"
},
/area/bigredv2/outside/virology)
+"aWj" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1;
+ pixel_y = 1
+ },
+/turf/open/floor{
+ dir = 10;
+ icon_state = "red"
+ },
+/area/bigredv2/outside/marshal_office)
"aWk" = (
/turf/open/floor{
dir = 8;
@@ -17556,6 +16850,11 @@
icon_state = "whitebluefull"
},
/area/bigredv2/outside/general_store)
+"aWy" = (
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"aWz" = (
/obj/structure/showcase{
icon_state = "bus"
@@ -17948,14 +17247,6 @@
"aXH" = (
/turf/open/floor/plating,
/area/bigredv2/outside/cargo)
-"aXJ" = (
-/obj/structure/machinery/door/airlock/almayer/maint/colony{
- name = "\improper General Store Storage"
- },
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/cargo)
"aXL" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
@@ -18057,18 +17348,6 @@
/obj/structure/machinery/light,
/turf/open/floor/plating,
/area/bigredv2/outside/cargo)
-"aYe" = (
-/obj/structure/window/framed/solaris,
-/obj/structure/curtain,
-/turf/open/floor/plating,
-/area/bigredv2/outside/medical)
-"aYf" = (
-/obj/structure/machinery/light,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/c)
"aYh" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
@@ -18436,27 +17715,6 @@
/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor,
/area/bigredv2/outside/cargo)
-"aZp" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out";
- pixel_x = 1;
- pixel_y = -1
- },
-/turf/open/floor{
- dir = 9;
- icon_state = "red"
- },
-/area/bigredv2/outside/marshal_office)
-"aZq" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S";
- pixel_y = -1
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "red"
- },
-/area/bigredv2/outside/marshal_office)
"aZr" = (
/obj/structure/surface/table,
/obj/effect/spawner/random/toolbox,
@@ -18584,18 +17842,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor,
/area/bigredv2/outside/cargo)
-"aZP" = (
-/obj/structure/machinery/camera/autoname,
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out";
- pixel_x = -1;
- pixel_y = -1
- },
-/turf/open/floor{
- dir = 5;
- icon_state = "red"
- },
-/area/bigredv2/outside/marshal_office)
"aZQ" = (
/obj/structure/surface/table,
/obj/item/tool/lighter/random,
@@ -18807,10 +18053,6 @@
icon_state = "chapel"
},
/area/bigredv2/outside/chapel)
-"bax" = (
-/obj/structure/closet/emcloset,
-/turf/open/floor,
-/area/bigredv2/outside/cargo)
"bay" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 5
@@ -19424,13 +18666,6 @@
icon_state = "white"
},
/area/bigredv2/outside/virology)
-"bcp" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 8;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
"bcq" = (
/obj/effect/landmark/crap_item,
/turf/open/floor{
@@ -19438,21 +18673,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/w)
-"bcr" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/outside/space_port_lz2)
-"bcs" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor{
- dir = 8;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
"bct" = (
/obj/structure/barricade/wooden{
desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
@@ -19674,6 +18894,10 @@
},
/turf/open/floor/plating,
/area/bigredv2/outside/admin_building)
+"bcW" = (
+/obj/effect/landmark/lv624/xeno_tunnel,
+/turf/open/mars,
+/area/bigredv2/outside/space_port_lz2)
"bcX" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor,
@@ -19707,14 +18931,6 @@
icon_state = "rampbottom"
},
/area/bigredv2/outside/chapel)
-"bdf" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor{
- icon_state = "loadingarea"
- },
-/area/bigredv2/outside/cargo)
"bdg" = (
/turf/open/floor{
icon_state = "delivery"
@@ -19955,19 +19171,6 @@
icon_state = "asteroidfloor"
},
/area/bigredv2/outside/w)
-"beb" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 8;
- health = 25000
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/w)
"bec" = (
/obj/effect/decal/cleanable/blood,
/turf/open/floor,
@@ -19977,9 +19180,9 @@
/turf/open/floor,
/area/bigredv2/outside/cargo)
"bee" = (
-/obj/structure/cargo_container/kelland/left,
-/turf/open/mars,
-/area/bigredv2/outside/space_port_lz2)
+/obj/structure/closet/emcloset,
+/turf/open/floor,
+/area/bigredv2/outside/cargo)
"bef" = (
/obj/structure/surface/table,
/obj/effect/spawner/random/toolbox,
@@ -20080,22 +19283,12 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/w)
-"bew" = (
-/obj/structure/cargo_container/kelland/right,
-/turf/open/mars,
-/area/bigredv2/outside/space_port_lz2)
"bex" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 6
},
/turf/open/floor,
/area/bigredv2/outside/cargo)
-"bey" = (
-/obj/structure/pipes/vents/pump{
- dir = 8
- },
-/turf/open/floor,
-/area/bigredv2/outside/cargo)
"bez" = (
/obj/structure/machinery/autolathe,
/turf/open/floor,
@@ -20206,19 +19399,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/w)
-"beR" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor{
- dir = 8;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/w)
-"beS" = (
-/obj/structure/lz_sign/solaris_sign,
-/turf/open/mars,
-/area/bigredv2/outside/space_port_lz2)
"beT" = (
/obj/structure/machinery/light{
dir = 8
@@ -20294,34 +19474,6 @@
icon_state = "dark"
},
/area/bigredv2/outside/office_complex)
-"bff" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/pipes/vents/pump{
- dir = 4
- },
-/turf/open/floor{
- icon_state = "dark"
- },
-/area/bigredv2/outside/office_complex)
-"bfg" = (
-/obj/structure/machinery/door/airlock/almayer/maint/colony{
- dir = 1;
- name = "\improper General Store Maintenance"
- },
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/cargo)
-"bfh" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 6
- },
-/turf/open/floor{
- icon_state = "dark"
- },
-/area/bigredv2/outside/office_complex)
"bfi" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -20445,15 +19597,6 @@
},
/turf/open/floor,
/area/bigredv2/outside/cargo)
-"bfA" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "bot"
- },
-/area/bigredv2/outside/cargo)
"bfB" = (
/obj/structure/pipes/standard/manifold/hidden/green{
dir = 1
@@ -20521,8 +19664,8 @@
},
/area/bigredv2/outside/office_complex)
"bfK" = (
-/obj/structure/pipes/standard/manifold/hidden/green{
- dir = 8
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 6
},
/turf/open/floor{
icon_state = "dark"
@@ -20577,18 +19720,6 @@
icon_state = "whiteyellowfull"
},
/area/bigredv2/outside/office_complex)
-"bfT" = (
-/obj/effect/landmark/crap_item,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/outside/space_port_lz2)
-"bfU" = (
-/obj/effect/landmark/hunter_secondary,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/outside/space_port_lz2)
"bfV" = (
/obj/structure/largecrate/random,
/obj/effect/decal/cleanable/dirt,
@@ -20597,13 +19728,6 @@
icon_state = "bot"
},
/area/bigredv2/outside/cargo)
-"bfW" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 4;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
"bfX" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/trashcart,
@@ -20753,10 +19877,12 @@
},
/area/bigredv2/outside/office_complex)
"bgq" = (
-/turf/open/mars{
- icon_state = "mars_dirt_14"
+/obj/structure/closet/emcloset,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "bot"
},
-/area/bigredv2/outside/space_port_lz2)
+/area/bigredv2/outside/cargo)
"bgr" = (
/obj/structure/closet/secure_closet/security,
/obj/effect/landmark/objective_landmark/close,
@@ -20838,13 +19964,6 @@
icon_state = "whiteyellowfull"
},
/area/bigredv2/outside/office_complex)
-"bgC" = (
-/obj/structure/closet/emcloset,
-/turf/open/floor{
- dir = 1;
- icon_state = "bot"
- },
-/area/bigredv2/outside/cargo)
"bgD" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/pipes/standard/simple/hidden/green,
@@ -21015,31 +20134,17 @@
},
/area/bigredv2/caves/mining)
"bhb" = (
-/obj/structure/machinery/light,
/turf/open/floor{
- dir = 1;
- icon_state = "bot"
+ icon_state = "floor4"
},
/area/bigredv2/outside/cargo)
-"bhc" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
-"bhd" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
+"bhe" = (
+/obj/structure/machinery/light,
/turf/open/floor{
dir = 1;
- icon_state = "asteroidfloor"
+ icon_state = "bot"
},
-/area/bigredv2/outside/space_port_lz2)
-"bhe" = (
-/obj/effect/landmark/hunter_secondary,
-/turf/open/mars,
-/area/bigredv2/outside/space_port_lz2)
+/area/bigredv2/outside/cargo)
"bhf" = (
/obj/structure/machinery/power/apc{
dir = 1
@@ -21156,9 +20261,11 @@
},
/area/bigredv2/outside/space_port_lz2)
"bhD" = (
-/obj/structure/cargo_container/arious/leftmid,
-/turf/open/mars,
-/area/bigredv2/outside/space_port_lz2)
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "floor4"
+ },
+/area/bigredv2/outside/cargo)
"bhE" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/structure/machinery/light{
@@ -21166,16 +20273,6 @@
},
/turf/open/floor,
/area/bigredv2/outside/cargo)
-"bhH" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor{
- dir = 8;
- icon_state = "red"
- },
-/area/bigredv2/outside/marshal_office)
"bhI" = (
/obj/item/stack/sheet/metal/med_small_stack,
/turf/open/mars_cave{
@@ -21188,28 +20285,6 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/outside/c)
-"bhM" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W";
- layer = 2.5;
- pixel_x = -1
- },
-/turf/open/floor{
- dir = 4;
- icon_state = "red"
- },
-/area/bigredv2/outside/marshal_office)
-"bhN" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NE-out";
- pixel_x = 1;
- pixel_y = 1
- },
-/turf/open/floor{
- dir = 10;
- icon_state = "red"
- },
-/area/bigredv2/outside/marshal_office)
"bhO" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 6
@@ -21238,15 +20313,6 @@
icon_state = "asteroidfloor"
},
/area/bigredv2/outside/c)
-"bhS" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 10
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/c)
"bhT" = (
/obj/effect/decal/cleanable/blood{
icon_state = "gib6"
@@ -21318,14 +20384,9 @@
dir = 4
},
/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
+ icon_state = "floor4"
},
-/area/bigredv2/outside/space_port_lz2)
-"bio" = (
-/obj/structure/cargo_container/arious/rightmid,
-/turf/open/mars,
-/area/bigredv2/outside/space_port_lz2)
+/area/bigredv2/outside/cargo)
"biq" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/pipes/standard/simple/hidden/green{
@@ -21487,10 +20548,6 @@
/obj/item/stack/cable_coil/cut,
/turf/open/floor/plating,
/area/bigredv2/outside/c)
-"biX" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/plating,
-/area/bigredv2/caves/lambda/xenobiology)
"biY" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
@@ -21528,27 +20585,10 @@
/obj/structure/machinery/camera/autoname/lz_camera,
/turf/open/floor/plating,
/area/bigredv2/outside/space_port_lz2)
-"bjh" = (
-/obj/item/reagent_container/spray/cleaner,
-/obj/structure/pipes/standard/simple/hidden/green,
-/turf/open/floor{
- icon_state = "floor4"
- },
-/area/bigredv2/outside/cargo)
"bji" = (
/obj/item/reagent_container/glass/bottle/tramadol,
/turf/open/floor,
/area/bigredv2/outside/cargo)
-"bjj" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/plating{
- dir = 8;
- icon_state = "warnplate"
- },
-/area/bigredv2/outside/telecomm/warehouse)
"bjk" = (
/obj/effect/landmark/crap_item,
/turf/open/floor{
@@ -21588,25 +20628,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/space_port_lz2)
-"bjt" = (
-/obj/structure/surface/table,
-/obj/effect/spawner/random/technology_scanner,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/space_port_lz2)
-"bjv" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W";
- layer = 2.5;
- pixel_x = -1
- },
-/turf/open/floor/plating{
- dir = 4;
- icon_state = "warnplate"
- },
-/area/bigredv2/outside/telecomm/warehouse)
"bjw" = (
/turf/open/floor{
dir = 1;
@@ -21684,11 +20705,14 @@
},
/area/bigredv2/outside/s)
"bjJ" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
/turf/open/floor{
- dir = 1;
- icon_state = "asteroidwarning"
+ dir = 4;
+ icon_state = "redcorner"
},
-/area/bigredv2/caves_north)
+/area/bigredv2/outside/office_complex)
"bjK" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 6
@@ -21727,13 +20751,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/space_port_lz2)
-"bjP" = (
-/obj/structure/cargo_container/arious/right,
-/turf/open/mars,
-/area/bigredv2/outside/space_port_lz2)
-"bjQ" = (
-/turf/closed/wall/solaris,
-/area/bigredv2/outside/space_port_lz2)
"bjR" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/structure/machinery/door/airlock/almayer/engineering/colony{
@@ -21744,15 +20761,6 @@
icon_state = "delivery"
},
/area/bigredv2/outside/cargo)
-"bjX" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/turf/open/floor/plating{
- icon_state = "warnplate"
- },
-/area/bigredv2/outside/telecomm/warehouse)
"bjY" = (
/turf/open/floor{
icon_state = "asteroidwarning"
@@ -21789,14 +20797,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/s)
-"bke" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/c)
"bkf" = (
/obj/structure/sign/safety/distribution_pipes{
pixel_y = -32
@@ -21823,10 +20823,6 @@
icon_state = "mars_dirt_10"
},
/area/bigredv2/outside/se)
-"bkk" = (
-/obj/structure/cargo_container/horizontal/blue/top,
-/turf/open/mars,
-/area/bigredv2/outside/space_port_lz2)
"bkl" = (
/obj/structure/filingcabinet,
/obj/effect/landmark/objective_landmark/science,
@@ -22056,19 +21052,6 @@
icon_state = "white"
},
/area/bigredv2/caves/lambda/xenobiology)
-"blb" = (
-/obj/structure/surface/table,
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
-"blc" = (
-/obj/structure/surface/table,
-/obj/item/clothing/ears/earmuffs,
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
"bld" = (
/obj/structure/surface/table,
/obj/effect/spawner/random/tech_supply,
@@ -23130,14 +22113,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/bigredv2/outside/filtration_plant)
-"boD" = (
-/obj/structure/surface/table,
-/obj/effect/spawner/random/toolbox,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/space_port_lz2)
"boG" = (
/obj/structure/closet/secure_closet/engineering_electrical,
/turf/open/floor/almayer{
@@ -23388,13 +22363,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/space_port_lz2)
-"bpv" = (
-/obj/structure/pipes/vents/pump/on,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/space_port_lz2)
"bpx" = (
/turf/open/mars_cave{
icon_state = "mars_dirt_4"
@@ -23629,11 +22597,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/space_port_lz2)
-"bqe" = (
-/turf/open/floor{
- icon_state = "floor4"
- },
-/area/bigredv2/outside/cargo)
"bqf" = (
/obj/structure/machinery/door/airlock/almayer/engineering/colony{
dir = 1;
@@ -23643,17 +22606,6 @@
icon_state = "test_floor4"
},
/area/bigredv2/outside/engineering)
-"bqg" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
- pixel_x = -1;
- pixel_y = 1
- },
-/turf/open/floor/plating{
- dir = 6;
- icon_state = "warnplate"
- },
-/area/bigredv2/outside/telecomm/warehouse)
"bqk" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/alarm{
@@ -23815,17 +22767,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/space_port_lz2)
-"brc" = (
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_cave_9"
- },
-/area/bigredv2/outside/n)
-"brd" = (
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
"bre" = (
/obj/structure/bed/chair,
/turf/open/floor{
@@ -23972,10 +22913,6 @@
"brE" = (
/turf/open/floor/greengrid,
/area/bigredv2/outside/filtration_cave_cas)
-"brG" = (
-/obj/structure/cargo_container/horizontal/blue/middle,
-/turf/open/mars,
-/area/bigredv2/outside/space_port_lz2)
"brI" = (
/obj/structure/sign/safety/galley{
pixel_x = -32
@@ -24389,12 +23326,6 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
-"btv" = (
-/turf/open/floor{
- dir = 10;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
"btw" = (
/turf/open/floor/plating,
/area/bigredv2/outside/lz2_south_cas)
@@ -24503,13 +23434,6 @@
icon_state = "asteroidfloor"
},
/area/bigredv2/outside/s)
-"bup" = (
-/obj/item/stack/sheet/wood,
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_cave_7"
- },
-/area/bigredv2/caves_north)
"buu" = (
/turf/open/mars_cave{
icon_state = "mars_cave_17"
@@ -24540,11 +23464,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/s)
-"buP" = (
-/turf/open/mars_cave{
- icon_state = "mars_dirt_6"
- },
-/area/bigredv2/outside/n)
"buQ" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/mars_cave{
@@ -27653,6 +26572,11 @@
/obj/item/tool/hand_labeler,
/turf/open/floor,
/area/bigred/ground/garage_workshop)
+"bGC" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_5"
+ },
+/area/bigredv2/outside/n)
"bGL" = (
/turf/open/floor{
dir = 1;
@@ -27677,6 +26601,11 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"bJQ" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_10"
+ },
+/area/bigredv2/outside/n)
"bJS" = (
/obj/structure/largecrate/random/barrel/green,
/obj/effect/decal/cleanable/dirt,
@@ -27732,6 +26661,14 @@
icon_state = "dark"
},
/area/bigredv2/outside/marshal_office)
+"bOZ" = (
+/obj/structure/pipes/vents/pump{
+ dir = 8
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/bigredv2/outside/medical)
"bPy" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest,
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest,
@@ -27748,11 +26685,21 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor,
/area/bigredv2/outside/admin_building)
+"bQh" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_11"
+ },
+/area/bigredv2/outside/n)
"bQi" = (
/turf/open/floor{
icon_state = "darkish"
},
/area/bigredv2/caves/lambda/virology)
+"bQG" = (
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_6"
+ },
+/area/bigredv2/caves_lambda)
"bRd" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -27780,11 +26727,12 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"bSc" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_14"
+"bRV" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor{
+ icon_state = "white"
},
-/area/bigredv2/outside/ne)
+/area/bigredv2/outside/virology)
"bSw" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -27797,6 +26745,15 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"bSy" = (
+/obj/structure/barricade/handrail{
+ dir = 8
+ },
+/turf/open/floor{
+ dir = 8;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/c)
"bTm" = (
/obj/structure/surface/table,
/obj/item/folder/black_random,
@@ -27813,6 +26770,17 @@
icon_state = "mars_cave_7"
},
/area/bigredv2/caves_se)
+"bVX" = (
+/obj/structure/barricade/wooden{
+ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
+ dir = 8;
+ health = 25000
+ },
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_13"
+ },
+/area/bigredv2/caves_north)
"bWk" = (
/turf/open/floor{
dir = 1;
@@ -27835,17 +26803,6 @@
/obj/item/reagent_container/spray/cleaner,
/turf/open/floor,
/area/bigredv2/outside/cargo)
-"bYp" = (
-/obj/effect/decal/cleanable/blood/oil,
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/telecomm/lz2_cave)
"bYW" = (
/obj/structure/pipes/vents/pump,
/turf/open/floor{
@@ -27886,6 +26843,21 @@
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/carpet,
/area/bigredv2/outside/admin_building)
+"ccI" = (
+/obj/structure/machinery/power/apc{
+ dir = 1;
+ start_charge = 0
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ layer = 2.5;
+ pixel_x = -1
+ },
+/turf/open/floor/plating{
+ dir = 4;
+ icon_state = "warnplate"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
"ccP" = (
/obj/structure/surface/table,
/obj/effect/spawner/random/bomb_supply,
@@ -27895,15 +26867,6 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/filtration_plant)
-"ccU" = (
-/obj/structure/machinery/door/airlock/almayer/maint/colony{
- dir = 1;
- name = "\improper Medical Clinic Power Station"
- },
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/medical)
"cdA" = (
/turf/open/mars_cave{
icon_state = "mars_cave_5"
@@ -27922,6 +26885,13 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
+"ceF" = (
+/obj/structure/surface/table/woodentable,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"cfr" = (
/obj/item/explosive/grenade/baton{
dir = 8
@@ -27930,18 +26900,17 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
-"cfS" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 6;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"cgt" = (
/turf/open/floor{
icon_state = "delivery"
},
/area/bigredv2/outside/dorms)
+"cgO" = (
+/turf/open/floor{
+ dir = 5;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"chq" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
@@ -27949,9 +26918,10 @@
icon_state = "mars_cave_18"
},
/area/bigredv2/caves_lambda)
-"chy" = (
-/turf/open/mars{
- icon_state = "mars_dirt_13"
+"ciG" = (
+/obj/effect/landmark/hunter_secondary,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_7"
},
/area/bigredv2/outside/n)
"ciY" = (
@@ -28021,18 +26991,15 @@
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/closed/wall/solaris/rock,
/area/bigredv2/caves)
-"cnO" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/machinery/recharge_station,
-/turf/open/floor{
- icon_state = "freezerfloor"
+"cnG" = (
+/obj/structure/platform{
+ dir = 1
},
-/area/bigredv2/outside/dorms)
-"coc" = (
-/turf/open/mars{
- icon_state = "mars_dirt_12"
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
},
-/area/bigredv2/outside/ne)
+/area/bigredv2/outside/telecomm/n_cave)
"coT" = (
/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
@@ -28046,6 +27013,14 @@
icon_state = "mars_cave_6"
},
/area/bigredv2/caves_se)
+"cpQ" = (
+/obj/structure/machinery/camera/autoname{
+ dir = 1
+ },
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/space_port_lz2)
"cqj" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
@@ -28058,6 +27033,15 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
+"crl" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/space_port_lz2)
"crv" = (
/obj/structure/surface/table,
/obj/structure/machinery/prop/almayer/computer/PC{
@@ -28069,11 +27053,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"crO" = (
-/turf/open/mars_cave{
- icon_state = "mars_dirt_7"
- },
-/area/bigredv2/outside/sw)
"crQ" = (
/turf/open/mars_cave{
icon_state = "mars_cave_18"
@@ -28125,15 +27104,6 @@
icon_state = "dark"
},
/area/bigredv2/caves/eta/xenobiology)
-"cwk" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 5
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/space_port_lz2)
"cxi" = (
/obj/structure/machinery/light{
dir = 4
@@ -28161,6 +27131,12 @@
icon_state = "mars_dirt_6"
},
/area/bigredv2/caves/mining)
+"cAf" = (
+/obj/item/stack/sheet/wood,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/caves_north)
"cAs" = (
/turf/open/floor{
dir = 1;
@@ -28172,6 +27148,15 @@
/obj/effect/decal/cleanable/blood/oil,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"cBq" = (
+/obj/structure/machinery/camera/autoname{
+ dir = 1
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/n)
"cCr" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/mars_cave{
@@ -28194,6 +27179,28 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"cGc" = (
+/obj/structure/machinery/botany,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/bigredv2/outside/marshal_office)
+"cGi" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/bigredv2/outside/marshal_office)
+"cGv" = (
+/obj/effect/landmark/nightmare{
+ insert_tag = "containerroom_xenos"
+ },
+/turf/closed/wall/solaris/reinforced,
+/area/bigredv2/outside/nw/ceiling)
"cGQ" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/floor{
@@ -28229,6 +27236,22 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor,
/area/bigredv2/outside/cargo)
+"cHz" = (
+/obj/effect/decal/cleanable/blood/oil,
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/telecomm/lz2_cave)
+"cHH" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_11"
+ },
+/area/bigredv2/outside/ne)
"cHI" = (
/obj/structure/closet/crate,
/obj/structure/machinery/light{
@@ -28295,6 +27318,15 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
+"cLq" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/obj/structure/barricade/handrail{
+ dir = 4
+ },
+/turf/open/floor,
+/area/bigredv2/outside/marshal_office)
"cLZ" = (
/obj/structure/closet/secure_closet/brig,
/obj/effect/landmark/objective_landmark/close,
@@ -28344,6 +27376,12 @@
icon_state = "delivery"
},
/area/bigredv2/caves/eta/research)
+"cPg" = (
+/obj/effect/landmark/crap_item,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_2"
+ },
+/area/bigredv2/outside/n)
"cPZ" = (
/obj/structure/window/framed/solaris/reinforced,
/obj/effect/decal/cleanable/dirt,
@@ -28361,6 +27399,20 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/c)
+"cQO" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor,
+/area/bigredv2/outside/general_offices)
+"cRb" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/camera/autoname{
+ dir = 4
+ },
+/turf/open/floor,
+/area/bigredv2/outside/cargo)
"cRP" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood/splatter,
@@ -28403,16 +27455,6 @@
icon_state = "mars_cave_11"
},
/area/bigredv2/caves_se)
-"cVT" = (
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 8;
- health = 25000
- },
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/caves_north)
"cVY" = (
/turf/open/mars,
/area/bigredv2/outside/space_port_lz2)
@@ -28424,6 +27466,12 @@
icon_state = "wood"
},
/area/bigredv2/outside/admin_building)
+"cYy" = (
+/obj/structure/pipes/standard/manifold/hidden/green{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/bigredv2/outside/bar)
"cYI" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -28484,6 +27532,11 @@
icon_state = "delivery"
},
/area/bigredv2/outside/c)
+"dgH" = (
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/caves_north)
"dhN" = (
/obj/structure/window/framed/solaris,
/obj/structure/machinery/door/poddoor/almayer{
@@ -28500,13 +27553,6 @@
icon_state = "mars_cave_15"
},
/area/bigredv2/caves/mining)
-"dhT" = (
-/obj/structure/fence,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/n)
"dij" = (
/obj/structure/fence,
/obj/structure/blocker/forcefield/multitile_vehicles,
@@ -28524,15 +27570,27 @@
icon_state = "podhatchfloor"
},
/area/bigredv2/outside/admin_building)
-"dlr" = (
+"dka" = (
+/obj/effect/landmark/crap_item,
/turf/open/mars_cave{
- icon_state = "mars_cave_13"
+ icon_state = "mars_dirt_4"
},
/area/bigredv2/outside/n)
+"dkY" = (
+/obj/structure/platform,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"dmB" = (
/obj/item/tool/pickaxe,
/turf/open/mars,
/area/bigredv2/outside/filtration_plant)
+"dmO" = (
+/obj/structure/machinery/fuelcell_recycler,
+/turf/open/floor/plating,
+/area/bigredv2/caves/eta/storage)
"dnV" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
@@ -28612,10 +27670,15 @@
},
/area/bigredv2/caves/lambda/research)
"dtX" = (
+/obj/structure/barricade/wooden{
+ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
+ dir = 4;
+ health = 25000
+ },
/turf/open/mars_cave{
icon_state = "mars_cave_14"
},
-/area/bigredv2/outside/n)
+/area/bigredv2/caves_north)
"duo" = (
/obj/effect/landmark/corpsespawner/colonist/burst,
/turf/open/floor/plating,
@@ -28626,14 +27689,6 @@
},
/turf/open/gm/river,
/area/bigredv2/outside/engineering)
-"duI" = (
-/obj/structure/machinery/door/airlock/almayer/command/colony{
- name = "\improper Operations"
- },
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/admin_building)
"dvB" = (
/obj/item/ore/coal{
pixel_x = 9;
@@ -28650,19 +27705,17 @@
icon_state = "test_floor4"
},
/area/bigredv2/outside/engineering)
-"dwe" = (
-/obj/item/tool/warning_cone{
- pixel_x = 16;
- pixel_y = 14
+"dws" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_x = -1;
+ pixel_y = 1
},
-/turf/open/mars,
-/area/bigredv2/outside/n)
-"dwg" = (
-/obj/structure/cargo_container/arious/rightmid,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
+/turf/open/floor/plating{
+ dir = 6;
+ icon_state = "warnplate"
},
-/area/bigredv2/outside/space_port_lz2)
+/area/bigredv2/outside/telecomm/warehouse)
"dwL" = (
/obj/structure/bed/chair{
buckling_y = 5;
@@ -28701,11 +27754,6 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
-"dzs" = (
-/turf/open/mars{
- icon_state = "mars_dirt_8"
- },
-/area/bigredv2/outside/n)
"dzY" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
@@ -28716,6 +27764,11 @@
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/plating,
/area/bigredv2/outside/lz2_south_cas)
+"dAX" = (
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/space_port_lz2)
"dBa" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_y = 9
@@ -28782,6 +27835,10 @@
/obj/item/weapon/twohanded/folded_metal_chair,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"dCU" = (
+/obj/structure/cargo_container/horizontal/blue/middle,
+/turf/open/mars,
+/area/bigredv2/outside/space_port_lz2)
"dEf" = (
/obj/structure/closet/toolcloset,
/obj/structure/machinery/light,
@@ -28856,6 +27913,15 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"dIH" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 5
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/space_port_lz2)
"dJc" = (
/obj/structure/surface/table,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
@@ -28894,13 +27960,6 @@
icon_state = "mars_cave_5"
},
/area/bigredv2/outside/lambda_cave_cas)
-"dMT" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/ne)
"dNd" = (
/obj/item/stack/cable_coil/cut,
/turf/open/mars_cave{
@@ -28925,11 +27984,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"dNH" = (
-/turf/open/mars_cave{
- icon_state = "mars_dirt_7"
- },
-/area/bigredv2/outside/n)
"dOu" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -28942,6 +27996,12 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"dOZ" = (
+/obj/effect/landmark/crap_item,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_16"
+ },
+/area/bigredv2/outside/n)
"dPb" = (
/obj/item/tool/pickaxe/drill,
/turf/open/mars_cave{
@@ -28965,6 +28025,9 @@
icon_state = "mars_cave_23"
},
/area/bigredv2/caves/mining)
+"dPJ" = (
+/turf/closed/wall/r_wall/unmeltable,
+/area/bigredv2/outside/c)
"dQw" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/mars_cave{
@@ -28977,6 +28040,11 @@
icon_state = "mars_dirt_5"
},
/area/bigredv2/caves/mining)
+"dQR" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_2"
+ },
+/area/bigredv2/outside/n)
"dQZ" = (
/obj/structure/closet/toolcloset,
/obj/effect/decal/cleanable/dirt,
@@ -28993,12 +28061,12 @@
},
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
-"dTa" = (
-/obj/structure/blocker/forcefield/multitile_vehicles,
+"dTi" = (
+/obj/item/stack/sheet/wood,
/turf/open/mars_cave{
icon_state = "mars_cave_9"
},
-/area/bigredv2/outside/ne)
+/area/bigredv2/caves_north)
"dUj" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_x = -8;
@@ -29015,11 +28083,27 @@
icon_state = "mars_cave_6"
},
/area/bigredv2/caves/mining)
+"dVp" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/space_port_lz2)
"dVA" = (
/turf/open/mars_cave{
icon_state = "mars_cave_5"
},
/area/bigredv2/outside/lz2_south_cas)
+"dVM" = (
+/obj/structure/largecrate/supply/supplies,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/n)
"dWd" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 5
@@ -29028,11 +28112,6 @@
icon_state = "dark"
},
/area/bigredv2/outside/engineering)
-"dWg" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_13"
- },
-/area/bigredv2/outside/ne)
"dWl" = (
/obj/structure/closet/toolcloset,
/turf/open/floor{
@@ -29057,6 +28136,11 @@
icon_state = "asteroidfloor"
},
/area/bigredv2/outside/eta)
+"dXK" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_13"
+ },
+/area/bigredv2/outside/n)
"dZO" = (
/obj/effect/decal/cleanable/blood{
dir = 8;
@@ -29129,6 +28213,15 @@
icon_state = "asteroidfloor"
},
/area/bigred/ground/garage_workshop)
+"efK" = (
+/obj/structure/machinery/computer/crew{
+ density = 0;
+ pixel_y = 16
+ },
+/turf/open/floor{
+ icon_state = "whitegreenfull"
+ },
+/area/bigredv2/outside/medical)
"egI" = (
/obj/item/ore,
/obj/item/ore{
@@ -29151,14 +28244,12 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
-"eiS" = (
-/obj/structure/closet/coffin/woodencrate,
-/obj/effect/decal/cleanable/dirt,
+"eiR" = (
+/obj/structure/window,
/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
+ icon_state = "wood"
},
-/area/bigredv2/outside/n)
+/area/bigredv2/outside/library)
"eju" = (
/obj/item/ore{
pixel_x = 9;
@@ -29186,6 +28277,11 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"elh" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_6"
+ },
+/area/bigredv2/outside/n)
"els" = (
/obj/structure/ore_box,
/turf/open/mars_cave{
@@ -29232,6 +28328,14 @@
},
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"enJ" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{
+ name = "\improper Dormitories Restroom"
+ },
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/bigredv2/outside/dorms)
"eoU" = (
/turf/open/floor/almayer{
dir = 1;
@@ -29249,18 +28353,18 @@
icon_state = "mars_cave_9"
},
/area/bigredv2/caves/mining)
-"erf" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
+"eqr" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{
+ dir = 1;
+ name = "\improper Dormitories Restroom"
},
-/obj/structure/machinery/camera/autoname{
- dir = 1
+/turf/open/floor{
+ icon_state = "delivery"
},
-/turf/open/floor,
/area/bigredv2/outside/dorms)
"ers" = (
/obj/effect/landmark/nightmare{
- insert_tag = "etatunnel"
+ insert_tag = "etatunnel_open"
},
/turf/closed/wall/solaris/rock,
/area/bigredv2/caves)
@@ -29347,13 +28451,6 @@
icon_state = "asteroidwarning"
},
/area/bigred/ground/garage_workshop)
-"eyA" = (
-/obj/structure/largecrate/random/barrel/true_random,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/n)
"ezQ" = (
/obj/structure/largecrate/supply/supplies/flares,
/turf/open/floor/plating{
@@ -29361,12 +28458,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"eAG" = (
-/obj/item/stack/sheet/wood,
-/turf/open/mars_cave{
- icon_state = "mars_cave_20"
- },
-/area/bigredv2/caves_north)
"eAU" = (
/turf/open/floor{
dir = 4;
@@ -29415,6 +28506,16 @@
icon_state = "mars_cave_5"
},
/area/bigredv2/caves_lambda)
+"eFr" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S";
+ pixel_y = -1
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/bigredv2/outside/marshal_office)
"eGa" = (
/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
/turf/open/mars_cave{
@@ -29440,6 +28541,14 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_sw)
+"eGv" = (
+/obj/structure/window,
+/obj/structure/surface/table/woodentable,
+/obj/item/newspaper,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"eGM" = (
/turf/open/floor{
icon_state = "darkyellowcorners2"
@@ -29451,15 +28560,6 @@
icon_state = "dark"
},
/area/bigredv2/caves/eta/xenobiology)
-"eIB" = (
-/obj/item/tool/warning_cone{
- pixel_y = 20
- },
-/turf/open/floor{
- dir = 8;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"eIN" = (
/obj/structure/machinery/power/port_gen/pacman,
/obj/effect/decal/cleanable/dirt,
@@ -29485,6 +28585,13 @@
icon_state = "freezerfloor"
},
/area/bigredv2/outside/general_offices)
+"eKm" = (
+/obj/structure/pipes/vents/pump,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/n)
"eKU" = (
/obj/structure/machinery/door_control{
id = "filtration";
@@ -29523,6 +28630,13 @@
icon_state = "mars_cave_23"
},
/area/bigredv2/caves_lambda)
+"eNe" = (
+/obj/item/clothing/under/darkred,
+/obj/structure/surface/rack,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/general_offices)
"eNx" = (
/obj/effect/landmark/nightmare{
insert_tag = "lambda-cave-mushroom"
@@ -29552,17 +28666,17 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/filtration_plant)
+"eRe" = (
+/obj/structure/pipes/vents/pump{
+ dir = 8
+ },
+/turf/open/floor,
+/area/bigredv2/outside/cargo)
"eRI" = (
/turf/open/floor{
icon_state = "delivery"
},
/area/bigredv2/outside/c)
-"eRW" = (
-/obj/effect/landmark/nightmare{
- insert_tag = "crashlanding-eva"
- },
-/turf/closed/wall/solaris,
-/area/bigredv2/outside/bar)
"eSm" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
@@ -29603,7 +28717,7 @@
/area/bigredv2/caves/mining)
"eUT" = (
/obj/effect/landmark/nightmare{
- insert_tag = "viro-rock"
+ insert_tag = "viro-rock_open"
},
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/outside/virology)
@@ -29625,9 +28739,11 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"eVZ" = (
-/turf/open/mars{
- icon_state = "mars_dirt_10"
+"eVM" = (
+/obj/structure/largecrate/random/barrel/true_random,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
},
/area/bigredv2/outside/n)
"eWd" = (
@@ -29640,12 +28756,36 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/mars,
/area/bigredv2/outside/filtration_plant)
+"eWv" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"eWy" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/moneybag,
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"eWB" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/recharge_station,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/dorms)
+"eWE" = (
+/obj/structure/barricade/wooden{
+ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
+ dir = 4;
+ health = 25000
+ },
+/turf/open/mars_cave{
+ icon_state = "mars_cave_19"
+ },
+/area/bigredv2/caves_north)
"eWG" = (
/obj/structure/filingcabinet,
/obj/effect/landmark/objective_landmark/close,
@@ -29664,6 +28804,27 @@
},
/turf/open/floor,
/area/bigredv2/outside/cargo)
+"eYy" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/fuelcell_recycler/full,
+/turf/open/floor{
+ icon_state = "darkyellow2"
+ },
+/area/bigredv2/outside/engineering)
+"eYH" = (
+/obj/structure/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor,
+/area/bigredv2/outside/dorms)
+"eYK" = (
+/obj/item/reagent_container/spray/cleaner,
+/obj/structure/pipes/standard/simple/hidden/green,
+/turf/open/floor{
+ icon_state = "floor4"
+ },
+/area/bigredv2/outside/cargo)
"eZw" = (
/obj/effect/decal/warning_stripes{
icon_state = "N"
@@ -29674,11 +28835,17 @@
},
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
-"fbF" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_9"
+"fbf" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_8"
},
-/area/bigredv2/outside/n)
+/area/bigredv2/outside/sw)
+"fbB" = (
+/obj/effect/landmark/nightmare{
+ insert_tag = "crashlanding-eva"
+ },
+/turf/closed/wall/solaris,
+/area/bigredv2/outside/bar)
"fcG" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/firecloset,
@@ -29696,15 +28863,6 @@
"fdy" = (
/turf/open/floor,
/area/bigredv2/caves/eta/living)
-"fdC" = (
-/obj/structure/barricade/handrail{
- dir = 8
- },
-/turf/open/floor{
- dir = 8;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/c)
"feN" = (
/turf/open/floor{
dir = 9;
@@ -29804,6 +28962,14 @@
icon_state = "darkyellowcorners2"
},
/area/bigredv2/caves/eta/living)
+"fni" = (
+/obj/structure/machinery/door/airlock/almayer/medical{
+ name = "\improper Medical Clinic Morgue"
+ },
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/bigredv2/outside/medical)
"fnv" = (
/obj/structure/bed/chair/comfy,
/turf/open/floor/carpet,
@@ -29813,14 +28979,6 @@
icon_state = "mars_cave_13"
},
/area/bigredv2/caves/mining)
-"foj" = (
-/obj/structure/largecrate/random/barrel/true_random,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/n)
"foB" = (
/turf/open/mars_cave{
icon_state = "mars_cave_22"
@@ -29843,10 +29001,21 @@
},
/turf/closed/wall/wood,
/area/bigredv2/caves/mining)
-"fpt" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/gm/river,
-/area/bigredv2/outside/c)
+"fsT" = (
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_7"
+ },
+/area/bigredv2/outside/n)
+"fsY" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_6"
+ },
+/area/bigredv2/outside/space_port_lz2)
+"ftY" = (
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_7"
+ },
+/area/bigredv2/outside/sw)
"fus" = (
/turf/open/mars_cave{
icon_state = "mars_cave_7"
@@ -29921,6 +29090,12 @@
icon_state = "mars_cave_10"
},
/area/bigredv2/outside/lz1_telecomm_cas)
+"fxZ" = (
+/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/caves_lambda)
"fyp" = (
/obj/structure/machinery/power/apc,
/turf/open/floor{
@@ -29954,15 +29129,18 @@
icon_state = "dark"
},
/area/bigredv2/outside/filtration_plant)
-"fBU" = (
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_cave_13"
- },
-/area/bigredv2/caves_north)
"fCb" = (
/turf/open/floor,
/area/bigredv2/outside/filtration_cave_cas)
+"fDf" = (
+/obj/structure/pipes/standard/simple/hidden/green,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper Greenhouse Storage"
+ },
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/bigredv2/outside/hydroponics)
"fDr" = (
/turf/open/floor{
dir = 1;
@@ -29977,6 +29155,11 @@
icon_state = "delivery"
},
/area/bigredv2/outside/engineering)
+"fEE" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_15"
+ },
+/area/bigredv2/outside/ne)
"fFG" = (
/obj/structure/largecrate/random/barrel,
/turf/open/mars_cave{
@@ -29988,11 +29171,25 @@
icon_state = "mars_dirt_3"
},
/area/bigredv2/outside/space_port_lz2)
+"fGK" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E-corner"
+ },
+/turf/open/mars_cave{
+ icon_state = "mars_cave_16"
+ },
+/area/bigredv2/caves_north)
"fGN" = (
/turf/open/mars_cave{
icon_state = "mars_cave_20"
},
/area/bigredv2/caves_research)
+"fHw" = (
+/obj/structure/barricade/handrail,
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/c)
"fHF" = (
/obj/effect/landmark/corpsespawner/miner,
/obj/effect/decal/cleanable/blood{
@@ -30010,6 +29207,17 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/eta)
+"fKO" = (
+/obj/structure/barricade/wooden{
+ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
+ dir = 8;
+ health = 25000
+ },
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_5"
+ },
+/area/bigredv2/caves_north)
"fKW" = (
/obj/structure/machinery/power/apc{
dir = 1
@@ -30019,6 +29227,15 @@
icon_state = "darkyellowcorners2"
},
/area/bigredv2/caves/eta/living)
+"fKY" = (
+/obj/structure/window,
+/obj/structure/window{
+ dir = 8
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"fLj" = (
/turf/open/mars_cave{
icon_state = "mars_cave_6"
@@ -30078,11 +29295,6 @@
icon_state = "dark"
},
/area/bigredv2/caves/lambda/xenobiology)
-"fNh" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_9"
- },
-/area/bigredv2/caves_lambda)
"fOc" = (
/turf/open/mars_cave{
icon_state = "mars_cave_3"
@@ -30127,6 +29339,13 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"fPe" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 8;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"fPB" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -30180,6 +29399,17 @@
icon_state = "mars_cave_10"
},
/area/bigredv2/outside/lz2_west_cas)
+"fTg" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1;
+ pixel_y = 1
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/c)
"fUk" = (
/obj/structure/surface/table,
/obj/item/clothing/head/hardhat,
@@ -30201,13 +29431,17 @@
icon_state = "delivery"
},
/area/bigredv2/outside/engineering)
-"fVm" = (
+"fVt" = (
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
+/obj/structure/surface/table,
+/obj/structure/machinery/light{
+ dir = 4
},
-/area/bigredv2/outside/n)
+/obj/item/stack/sheet/glass{
+ amount = 30
+ },
+/turf/open/floor,
+/area/bigredv2/outside/cargo)
"fWw" = (
/turf/open/jungle{
bushes_spawn = 0;
@@ -30224,6 +29458,13 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
+"fXR" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/portable_atmospherics/hydroponics,
+/turf/open/floor{
+ icon_state = "whitegreenfull"
+ },
+/area/bigredv2/outside/hydroponics)
"fYH" = (
/turf/closed/wall/solaris/reinforced/hull,
/area/bigredv2/caves/mining)
@@ -30268,10 +29509,11 @@
icon_state = "bcircuitoff"
},
/area/bigredv2/caves/lambda/research)
-"gbt" = (
-/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
+"gbA" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
},
/area/bigredv2/outside/ne)
"gcR" = (
@@ -30289,10 +29531,21 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
+"gdK" = (
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_6"
+ },
+/area/bigredv2/outside/n)
"gdN" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/mars,
/area/bigredv2/caves/eta/xenobiology)
+"gej" = (
+/turf/open/floor{
+ dir = 6;
+ icon_state = "whiteblue"
+ },
+/area/bigredv2/outside/medical)
"geC" = (
/turf/open/mars_cave{
icon_state = "mars_dirt_6"
@@ -30321,6 +29574,14 @@
icon_state = "whitepurple"
},
/area/bigredv2/caves/lambda/research)
+"ghh" = (
+/obj/structure/bed/chair/wood/normal{
+ dir = 4
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"gio" = (
/turf/open/mars_cave,
/area/bigredv2/outside/filtration_cave_cas)
@@ -30381,14 +29642,6 @@
icon_state = "mars_cave_18"
},
/area/bigredv2/caves_lambda)
-"gnk" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{
- name = "\improper Dormitories Restroom"
- },
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/dorms)
"gnR" = (
/obj/structure/largecrate/random/barrel/red,
/obj/effect/decal/cleanable/dirt,
@@ -30415,6 +29668,14 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/c)
+"gpA" = (
+/obj/structure/surface/table,
+/obj/structure/machinery/light,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/space_port_lz2)
"gpB" = (
/turf/open/mars_cave{
icon_state = "mars_dirt_6"
@@ -30454,17 +29715,18 @@
icon_state = "mars_dirt_4"
},
/area/space)
-"gtG" = (
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 8;
- health = 25000
+"gts" = (
+/obj/structure/machinery/light{
+ dir = 1
},
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_cave_5"
+/obj/structure/morgue{
+ dir = 2
},
-/area/bigredv2/caves_north)
+/turf/open/floor{
+ dir = 1;
+ icon_state = "whiteblue"
+ },
+/area/bigredv2/outside/medical)
"gtX" = (
/turf/open/mars_cave,
/area/bigredv2/caves_se)
@@ -30501,11 +29763,6 @@
icon_state = "elevatorshaft"
},
/area/bigredv2/caves/lambda/breakroom)
-"gwb" = (
-/turf/open/mars{
- icon_state = "mars_dirt_3"
- },
-/area/bigredv2/outside/ne)
"gwg" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
@@ -30552,11 +29809,20 @@
},
/area/bigredv2/caves/mining)
"gAE" = (
-/obj/structure/machinery/portable_atmospherics/hydroponics,
-/turf/open/floor{
- icon_state = "whitegreenfull"
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = -9
},
+/turf/open/floor,
/area/bigredv2/outside/hydroponics)
+"gAX" = (
+/obj/structure/pipes/standard/manifold/hidden/green{
+ dir = 8
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/bigredv2/outside/office_complex)
"gCx" = (
/obj/structure/surface/table,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
@@ -30598,13 +29864,6 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
-"gGC" = (
-/obj/structure/fence,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/n)
"gGO" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating{
@@ -30635,11 +29894,22 @@
icon_state = "mars_cave_4"
},
/area/bigredv2/caves_virology)
-"gKG" = (
+"gMj" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_x = -1;
+ pixel_y = 1
+ },
/turf/open/floor{
- icon_state = "asteroidwarning"
+ dir = 1;
+ icon_state = "asteroidfloor"
},
-/area/bigredv2/outside/telecomm/n_cave)
+/area/bigredv2/outside/c)
+"gMC" = (
+/obj/structure/surface/table,
+/obj/effect/spawner/random/bomb_supply,
+/turf/open/floor,
+/area/bigredv2/outside/cargo)
"gML" = (
/obj/structure/machinery/power/turbine,
/turf/open/floor{
@@ -30657,10 +29927,6 @@
"gNH" = (
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/caves)
-"gOf" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/plating,
-/area/bigredv2/caves/eta/storage)
"gOr" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
@@ -30668,6 +29934,22 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_research)
+"gPb" = (
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = 8;
+ pixel_y = 3
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
+"gPc" = (
+/turf/open/floor{
+ dir = 4;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"gPh" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/door/airlock/almayer/secure/colony{
@@ -30685,14 +29967,10 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"gQP" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/surface/table,
-/obj/effect/spawner/random/toolbox,
-/turf/open/floor,
-/area/bigredv2/outside/cargo)
+"gQj" = (
+/obj/structure/cargo_container/horizontal/blue/top,
+/turf/open/mars,
+/area/bigredv2/outside/space_port_lz2)
"gSg" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
@@ -30756,6 +30034,9 @@
icon_state = "darkblue2"
},
/area/bigredv2/caves/eta/research)
+"gWD" = (
+/turf/closed/wall/solaris,
+/area/bigredv2/outside/space_port_lz2)
"gWU" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -30793,13 +30074,6 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_sw)
-"gYM" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/machinery/portable_atmospherics/hydroponics,
-/turf/open/floor{
- icon_state = "whitegreenfull"
- },
-/area/bigredv2/outside/hydroponics)
"gZc" = (
/obj/structure/machinery/light{
dir = 8
@@ -30812,6 +30086,14 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
+"hah" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor{
+ icon_state = "loadingarea"
+ },
+/area/bigredv2/outside/cargo)
"haT" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -30820,6 +30102,15 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/filtration_plant)
+"hbx" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/bed/roller,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/bigredv2/outside/medical)
"hcb" = (
/obj/effect/landmark/hunter_secondary,
/turf/open/mars_cave{
@@ -30844,12 +30135,6 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
-"hdJ" = (
-/obj/item/stack/sheet/wood,
-/turf/open/mars_cave{
- icon_state = "mars_cave_9"
- },
-/area/bigredv2/caves_north)
"heG" = (
/obj/structure/bed/chair{
can_buckle = 0;
@@ -30863,19 +30148,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"heI" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_17"
- },
-/area/bigredv2/outside/n)
-"heU" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/turf/open/floor{
- icon_state = "floor4"
- },
-/area/bigredv2/outside/cargo)
"hfB" = (
/obj/item/ore{
pixel_x = -5;
@@ -30885,6 +30157,18 @@
icon_state = "mars_dirt_6"
},
/area/bigredv2/caves/mining)
+"hgr" = (
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_16"
+ },
+/area/bigredv2/outside/ne)
+"hgO" = (
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_14"
+ },
+/area/bigredv2/outside/n)
"hgT" = (
/turf/open/mars_cave{
icon_state = "mars_dirt_7"
@@ -30896,6 +30180,12 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
+"hhX" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/bigredv2/outside/bar)
"hiP" = (
/obj/structure/sign/safety/one{
pixel_x = 16
@@ -31005,13 +30295,11 @@
icon_state = "asteroidfloor"
},
/area/bigredv2/outside/filtration_plant)
-"hul" = (
+"hto" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/tool/hatchet,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/dorms)
+/obj/structure/machinery/vending/cola,
+/turf/open/floor,
+/area/bigredv2/outside/general_offices)
"hvQ" = (
/obj/structure/machinery/light/small{
dir = 8
@@ -31048,6 +30336,11 @@
icon_state = "mars_dirt_7"
},
/area/bigredv2/caves/mining)
+"hyC" = (
+/turf/open/floor{
+ icon_state = "bcircuit"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
"hzg" = (
/obj/structure/cable{
icon_state = "1-6"
@@ -31100,6 +30393,14 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"hDK" = (
+/obj/structure/largecrate/supply,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/n)
"hEz" = (
/turf/open/mars_cave{
icon_state = "mars_cave_6"
@@ -31121,6 +30422,15 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"hFv" = (
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"hFP" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/item_pool_spawner/survivor_ammo,
@@ -31129,10 +30439,40 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"hFV" = (
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_9"
+ },
+/area/bigredv2/outside/n)
+"hGv" = (
+/obj/structure/machinery/light,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/n)
+"hHa" = (
+/obj/structure/fence,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/n)
"hHb" = (
/obj/structure/sign/safety/ladder,
/turf/closed/wall/solaris/reinforced/hull,
/area/bigredv2/oob)
+"hHG" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/plating,
+/area/bigredv2/caves/eta/storage)
+"hJH" = (
+/obj/effect/landmark/static_comms/net_one,
+/turf/open/floor{
+ icon_state = "podhatchfloor"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"hKl" = (
/obj/structure/surface/rack,
/obj/item/reagent_container/food/drinks/bottle/goldschlager,
@@ -31205,6 +30545,11 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_se)
+"hQO" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_14"
+ },
+/area/bigredv2/outside/n)
"hRy" = (
/obj/structure/surface/rack,
/turf/open/floor/plating{
@@ -31242,6 +30587,15 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"hVP" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "bot"
+ },
+/area/bigredv2/outside/cargo)
"hWa" = (
/turf/open/floor{
icon_state = "dark"
@@ -31302,11 +30656,6 @@
},
/turf/open/floor,
/area/bigredv2/outside/cargo)
-"iaq" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/machinery/vending/cigarette/colony,
-/turf/open/floor,
-/area/bigredv2/outside/general_offices)
"iaC" = (
/obj/structure/platform,
/turf/open/gm/river,
@@ -31326,16 +30675,38 @@
"ibP" = (
/turf/open/floor/plating,
/area/bigredv2/caves_research)
+"ibV" = (
+/obj/structure/toilet{
+ dir = 1
+ },
+/obj/effect/landmark/lv624/xeno_tunnel,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/dorms)
"ibZ" = (
/turf/open/mars_cave{
icon_state = "mars_cave_16"
},
/area/bigredv2/caves_sw)
+"ice" = (
+/obj/structure/surface/table,
+/obj/item/clothing/ears/earmuffs,
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/space_port_lz2)
"icQ" = (
/turf/open/mars_cave{
icon_state = "mars_cave_6"
},
/area/bigredv2/caves_sw)
+"idn" = (
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/outside/n)
"idM" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor{
@@ -31343,12 +30714,18 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
-"idO" = (
+"idT" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_9"
+ },
+/area/bigredv2/caves_lambda)
+"ied" = (
+/obj/structure/surface/table,
+/obj/item/clothing/under/brown,
/turf/open/floor{
- dir = 5;
- icon_state = "asteroidwarning"
+ icon_state = "freezerfloor"
},
-/area/bigredv2/outside/virology)
+/area/bigredv2/outside/general_offices)
"iep" = (
/obj/structure/surface/rack,
/obj/item/clothing/head/hardhat/dblue{
@@ -31395,13 +30772,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"igi" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 9;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"igM" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_x = 6
@@ -31429,6 +30799,15 @@
/obj/structure/window/framed/solaris,
/turf/open/floor/plating,
/area/bigredv2/outside/engineering)
+"iis" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor{
+ icon_state = "red"
+ },
+/area/bigredv2/outside/marshal_office)
"ijU" = (
/obj/structure/prop/almayer/cannon_cables{
name = "\improper Cables"
@@ -31442,9 +30821,13 @@
icon_state = "floor1"
},
/area/bigredv2/oob)
-"ilN" = (
-/turf/closed/wall/solaris,
-/area/bigredv2/outside/n)
+"ilH" = (
+/obj/structure/machinery/light,
+/obj/structure/machinery/portable_atmospherics/hydroponics,
+/turf/open/floor{
+ icon_state = "whitegreenfull"
+ },
+/area/bigredv2/outside/hydroponics)
"ilO" = (
/obj/structure/prop/invuln/minecart_tracks{
dir = 1
@@ -31506,6 +30889,16 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
+"ipo" = (
+/obj/structure/barricade/wooden{
+ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
+ dir = 8;
+ health = 25000
+ },
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/caves_north)
"iqF" = (
/obj/structure/prop/invuln/minecart_tracks,
/turf/open/mars_cave{
@@ -31522,18 +30915,6 @@
/obj/effect/spawner/random/technology_scanner,
/turf/open/floor/plating,
/area/bigredv2/outside/filtration_plant)
-"isk" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/machinery/vending/snack,
-/turf/open/floor,
-/area/bigredv2/outside/general_offices)
-"isr" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"itL" = (
/obj/structure/closet/l3closet/virology,
/obj/effect/landmark/objective_landmark/science,
@@ -31546,6 +30927,11 @@
icon_state = "mars_cave_16"
},
/area/bigredv2/outside/lz1_north_cas)
+"ivW" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_9"
+ },
+/area/bigredv2/outside/ne)
"iwG" = (
/obj/effect/landmark/crap_item,
/turf/open/mars_cave{
@@ -31558,6 +30944,15 @@
icon_state = "mars_dirt_6"
},
/area/bigredv2/caves/mining)
+"ixN" = (
+/obj/structure/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"ixR" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/blocker/forcefield/multitile_vehicles,
@@ -31566,17 +30961,6 @@
icon_state = "asteroidfloor"
},
/area/bigredv2/outside/lambda_cave_cas)
-"iyd" = (
-/obj/structure/machinery/computer/general_air_control{
- dir = 8;
- pixel_y = 6
- },
-/obj/structure/surface/table,
-/turf/open/floor{
- dir = 4;
- icon_state = "darkyellow2"
- },
-/area/bigredv2/outside/filtration_plant)
"iyY" = (
/turf/open/mars_cave{
icon_state = "mars_cave_13"
@@ -31624,6 +31008,19 @@
},
/turf/open/gm/river,
/area/bigredv2/outside/engineering)
+"iCu" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/barricade/wooden{
+ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
+ dir = 8;
+ health = 25000
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/w)
"iDJ" = (
/obj/effect/landmark/corpsespawner/miner,
/obj/effect/decal/cleanable/blood{
@@ -31684,9 +31081,22 @@
"iGK" = (
/turf/open/mars_cave,
/area/bigredv2/caves_sw)
+"iGY" = (
+/obj/item/stack/sheet/wood,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_6"
+ },
+/area/bigredv2/caves_north)
+"iHe" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 8;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/space_port_lz2)
"iIp" = (
/obj/effect/landmark/nightmare{
- insert_tag = "chapel"
+ insert_tag = "chapel_cult"
},
/turf/closed/wall/solaris,
/area/bigredv2/outside/chapel)
@@ -31720,15 +31130,22 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"iNE" = (
+/obj/effect/landmark/static_comms/net_one,
+/turf/open/floor{
+ icon_state = "bcircuit"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
"iNR" = (
/turf/open/gm/river,
/area/bigredv2/outside/engineering)
-"iOL" = (
+"iOR" = (
/obj/effect/landmark/crap_item,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
},
-/area/bigredv2/outside/n)
+/area/bigredv2/outside/ne)
"iPE" = (
/obj/structure/prop/invuln/minecart_tracks{
dir = 1
@@ -31754,9 +31171,10 @@
},
/area/bigredv2/caves_research)
"iRf" = (
+/obj/structure/fence,
/turf/open/floor{
dir = 1;
- icon_state = "asteroidwarning"
+ icon_state = "asteroidfloor"
},
/area/bigredv2/outside/telecomm/n_cave)
"iRw" = (
@@ -31774,11 +31192,6 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_research)
-"iSc" = (
-/turf/open/mars{
- icon_state = "mars_dirt_11"
- },
-/area/bigredv2/outside/n)
"iSz" = (
/obj/structure/barricade/handrail{
dir = 1;
@@ -31788,6 +31201,17 @@
/obj/structure/barricade/handrail,
/turf/open/floor/plating/plating_catwalk,
/area/bigredv2/outside/engineering)
+"iTN" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1;
+ pixel_y = 1
+ },
+/turf/open/floor/plating{
+ dir = 10;
+ icon_state = "warnplate"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
"iUe" = (
/turf/open/floor{
dir = 6;
@@ -31816,13 +31240,22 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/filtration_cave_cas)
-"iXL" = (
-/obj/effect/decal/cleanable/dirt,
+"iXs" = (
+/obj/structure/platform_decoration{
+ dir = 1
+ },
+/obj/structure/prop/server_equipment/yutani_server{
+ density = 0;
+ pixel_y = 16
+ },
/turf/open/floor{
dir = 1;
icon_state = "asteroidfloor"
},
/area/bigredv2/outside/telecomm/n_cave)
+"iXx" = (
+/turf/open/mars_cave,
+/area/bigredv2/outside/n)
"iXN" = (
/obj/item/ore{
pixel_x = -7;
@@ -31855,12 +31288,6 @@
icon_state = "dark"
},
/area/bigredv2/outside/admin_building)
-"iZh" = (
-/turf/open/floor{
- dir = 5;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"iZi" = (
/obj/structure/machinery/light,
/turf/open/floor{
@@ -31871,6 +31298,15 @@
/obj/structure/surface/rack,
/turf/open/floor,
/area/bigredv2/caves)
+"jay" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 5
+ },
+/obj/structure/machinery/portable_atmospherics/hydroponics,
+/turf/open/floor{
+ icon_state = "whitegreenfull"
+ },
+/area/bigredv2/outside/hydroponics)
"jbU" = (
/obj/effect/decal/cleanable/blood{
base_icon = 'icons/obj/items/weapons/grenade.dmi';
@@ -31885,7 +31321,7 @@
/area/bigredv2/caves/mining)
"jcn" = (
/obj/effect/landmark/nightmare{
- insert_tag = "tcomms"
+ insert_tag = "tcomms_open"
},
/turf/closed/wall/solaris/rock,
/area/bigredv2/caves)
@@ -31915,17 +31351,11 @@
icon_state = "mars_dirt_3"
},
/area/bigredv2/outside/s)
-"jfn" = (
-/obj/structure/window/framed/solaris/reinforced,
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- dir = 4;
- id = "Engineering";
- name = "\improper Engineering Shutters"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
+"jeO" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_13"
},
-/area/bigredv2/outside/engineering)
+/area/bigredv2/outside/n)
"jfr" = (
/turf/open/floor{
dir = 5;
@@ -31989,14 +31419,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"jku" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/tool/surgery/hemostat,
-/obj/effect/decal/cleanable/blood,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/dorms)
"jkO" = (
/obj/item/explosive/grenade/high_explosive/frag,
/turf/open/mars_cave,
@@ -32008,11 +31430,17 @@
/obj/structure/reagent_dispensers/fueltank/gas,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
-"jmY" = (
-/turf/open/mars{
- icon_state = "mars_dirt_8"
+"jlS" = (
+/turf/open/floor{
+ dir = 10;
+ icon_state = "asteroidwarning"
},
-/area/bigredv2/outside/sw)
+/area/bigredv2/outside/space_port_lz2)
+"jmD" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_6"
+ },
+/area/bigredv2/outside/ne)
"jna" = (
/obj/item/prop/alien/hugger,
/turf/open/floor{
@@ -32045,16 +31473,19 @@
dir = 5
},
/obj/effect/landmark/nightmare{
- insert_tag = "dorms"
+ insert_tag = "dorms_party"
},
/turf/open/floor,
/area/bigredv2/outside/dorms)
-"joi" = (
-/obj/effect/landmark/static_comms/net_one,
-/turf/open/floor{
- icon_state = "bcircuit"
+"jph" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
},
-/area/bigredv2/outside/telecomm/warehouse)
+/obj/structure/machinery/camera/autoname{
+ dir = 1
+ },
+/turf/open/floor,
+/area/bigredv2/outside/dorms)
"jpT" = (
/obj/structure/surface/table,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
@@ -32078,6 +31509,12 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_research)
+"jrN" = (
+/obj/structure/closet/crate/trashcart,
+/turf/open/floor{
+ icon_state = "asteroidplating"
+ },
+/area/bigredv2/outside/space_port_lz2)
"jsL" = (
/obj/effect/decal/warning_stripes{
icon_state = "N"
@@ -32093,17 +31530,6 @@
icon_state = "mars_cave_7"
},
/area/bigredv2/caves/mining)
-"jtX" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NE-out";
- pixel_x = 1;
- pixel_y = 1
- },
-/turf/open/floor/plating{
- dir = 10;
- icon_state = "warnplate"
- },
-/area/bigredv2/outside/telecomm/warehouse)
"juo" = (
/obj/structure/machinery/light{
dir = 8
@@ -32113,17 +31539,12 @@
icon_state = "podhatch"
},
/area/bigredv2/caves/lambda/research)
-"jvh" = (
-/obj/structure/largecrate/supply,
+"jvP" = (
+/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
+ icon_state = "wood"
},
-/area/bigredv2/outside/n)
-"jvt" = (
-/obj/structure/cargo_container/horizontal/blue/bottom,
-/turf/open/mars,
-/area/bigredv2/outside/space_port_lz2)
+/area/bigredv2/outside/library)
"jwj" = (
/obj/structure/platform/shiva{
dir = 8
@@ -32182,6 +31603,24 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
+"jAR" = (
+/obj/structure/bookcase/manuals/engineering,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/marshal_office)
+"jAX" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_17"
+ },
+/area/bigredv2/caves_lambda)
+"jBo" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/surface/table/woodentable,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"jBq" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/floor{
@@ -32221,6 +31660,12 @@
icon_state = "mars_cave_10"
},
/area/bigredv2/caves_virology)
+"jDo" = (
+/obj/effect/landmark/hunter_secondary,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/outside/space_port_lz2)
"jDy" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/warning_stripes{
@@ -32306,6 +31751,12 @@
icon_state = "mars_dirt_5"
},
/area/bigredv2/caves/mining)
+"jJO" = (
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_13"
+ },
+/area/bigredv2/caves_north)
"jKI" = (
/obj/structure/platform_decoration/shiva{
dir = 8
@@ -32336,11 +31787,15 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
-"jMB" = (
+"jNE" = (
+/obj/structure/machinery/washing_machine,
+/obj/structure/machinery/washing_machine{
+ pixel_y = 13
+ },
/turf/open/floor{
- icon_state = "asteroidwarning"
+ icon_state = "freezerfloor"
},
-/area/bigredv2/caves_north)
+/area/bigredv2/outside/general_offices)
"jOc" = (
/obj/structure/machinery/door/poddoor/almayer/closed{
dir = 4;
@@ -32351,6 +31806,14 @@
icon_state = "delivery"
},
/area/bigredv2/outside/lz2_south_cas)
+"jOj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/tool/surgery/hemostat,
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/dorms)
"jOS" = (
/obj/structure/surface/rack,
/obj/item/tool/pickaxe/plasmacutter{
@@ -32372,6 +31835,11 @@
},
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"jPQ" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_16"
+ },
+/area/bigredv2/outside/ne)
"jPV" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_x = -1;
@@ -32394,16 +31862,6 @@
/obj/item/storage/firstaid/fire,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
-"jQe" = (
-/obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary{
- density = 0;
- pixel_y = 16
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/c)
"jQS" = (
/obj/structure/prop/almayer/cannon_cable_connector{
name = "\improper Cable connector"
@@ -32441,6 +31899,32 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/filtration_plant)
+"jRH" = (
+/obj/structure/surface/table,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor{
+ dir = 5;
+ icon_state = "whiteblue"
+ },
+/area/bigredv2/outside/medical)
+"jSe" = (
+/obj/item/stack/sheet/wood,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_20"
+ },
+/area/bigredv2/caves_north)
+"jTa" = (
+/obj/structure/machinery/camera/autoname,
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out";
+ pixel_x = -1;
+ pixel_y = -1
+ },
+/turf/open/floor{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/bigredv2/outside/marshal_office)
"jTk" = (
/obj/structure/surface/table,
/obj/effect/decal/cleanable/molten_item,
@@ -32454,6 +31938,14 @@
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor,
/area/bigredv2/outside/hydroponics)
+"jUd" = (
+/obj/structure/machinery/door/airlock/almayer/maint/colony{
+ name = "\improper General Store Storage"
+ },
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/bigredv2/outside/cargo)
"jUM" = (
/obj/structure/surface/table/woodentable,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
@@ -32506,16 +31998,6 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
-"jWa" = (
-/obj/structure/platform{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"jWj" = (
/obj/effect/decal/cleanable/blood,
/turf/open/mars_cave{
@@ -32539,6 +32021,17 @@
icon_state = "mars_cave_13"
},
/area/bigredv2/caves/mining)
+"jWR" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "red"
+ },
+/area/bigredv2/outside/marshal_office)
"jXf" = (
/obj/structure/pipes/standard/manifold/hidden/green{
dir = 4
@@ -32624,6 +32117,11 @@
/obj/item/weapon/broken_bottle,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"kcH" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_9"
+ },
+/area/bigredv2/outside/sw)
"kcZ" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/obj/structure/fence,
@@ -32631,12 +32129,6 @@
icon_state = "mars_cave_17"
},
/area/bigredv2/outside/filtration_cave_cas)
-"kdd" = (
-/turf/open/floor{
- dir = 4;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"kdf" = (
/obj/item/tool/warning_cone{
pixel_y = 17
@@ -32693,6 +32185,11 @@
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
/turf/open/mars_cave,
/area/bigredv2/caves_lambda)
+"kfx" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_15"
+ },
+/area/bigredv2/outside/n)
"kfY" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/pipes/standard/simple/hidden/green,
@@ -32700,6 +32197,15 @@
icon_state = "dark"
},
/area/bigredv2/caves/eta/research)
+"kgl" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"kgn" = (
/obj/item/paper/bigred/crazy,
/turf/open/floor/plating{
@@ -32744,6 +32250,21 @@
icon_state = "mars_dirt_7"
},
/area/bigredv2/caves/mining)
+"khB" = (
+/obj/structure/prop/vehicles/crawler{
+ icon_state = "crawler_covered_bed"
+ },
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/caves_lambda)
+"khK" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/n)
"khP" = (
/obj/structure/platform{
dir = 1
@@ -32773,6 +32294,13 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"kjH" = (
+/obj/structure/surface/table,
+/obj/item/stack/sheet/glass{
+ amount = 30
+ },
+/turf/open/floor,
+/area/bigredv2/outside/cargo)
"kjT" = (
/obj/item/ore{
pixel_x = 13;
@@ -32830,11 +32358,6 @@
icon_state = "darkyellowcorners2"
},
/area/bigredv2/outside/engineering)
-"knF" = (
-/turf/open/mars_cave{
- icon_state = "mars_dirt_6"
- },
-/area/bigredv2/outside/ne)
"knN" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -32849,30 +32372,11 @@
icon_state = "mars_cave_7"
},
/area/bigredv2/outside/filtration_cave_cas)
-"kos" = (
-/turf/open/floor{
- dir = 8;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"kpd" = (
-/obj/structure/platform_decoration{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/telecomm/n_cave)
-"kpf" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E-corner"
- },
/turf/open/mars_cave{
- icon_state = "mars_cave_16"
+ icon_state = "mars_cave_14"
},
-/area/bigredv2/caves_north)
+/area/bigredv2/outside/ne)
"kqS" = (
/turf/open/floor{
icon_state = "wood"
@@ -32952,6 +32456,30 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"kwh" = (
+/obj/structure/surface/table/woodentable,
+/obj/item/paper_bin/wy{
+ pixel_x = 7;
+ pixel_y = 8
+ },
+/obj/item/paper_bin/wy{
+ pixel_x = -4;
+ pixel_y = 8
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
+"kwq" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/pipes/standard/simple/hidden/green,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/ne)
"kwQ" = (
/turf/open/floor{
dir = 10;
@@ -32977,6 +32505,22 @@
icon_state = "dark"
},
/area/bigredv2/caves/eta/xenobiology)
+"kzF" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_2"
+ },
+/area/bigredv2/outside/ne)
+"kAs" = (
+/obj/structure/platform_decoration{
+ dir = 8
+ },
+/obj/effect/landmark/objective_landmark/close,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"kBn" = (
/turf/closed/wall/solaris,
/area/bigredv2/caves)
@@ -32998,11 +32542,34 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"kCm" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
+"kCR" = (
+/obj/structure/machinery/light{
+ dir = 8
},
-/area/bigredv2/outside/ne)
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/bigredv2/outside/marshal_office)
+"kDb" = (
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = 8;
+ pixel_y = 16
+ },
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = -8;
+ pixel_y = 18
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"kDs" = (
/obj/structure/surface/table,
/obj/item/reagent_container/food/drinks/cans/waterbottle{
@@ -33013,12 +32580,6 @@
icon_state = "mars_cave_3"
},
/area/bigredv2/caves/mining)
-"kED" = (
-/obj/structure/cargo_container/kelland/left,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/outside/space_port_lz2)
"kFe" = (
/obj/structure/largecrate/random/barrel/white,
/turf/open/floor{
@@ -33073,11 +32634,11 @@
icon_state = "darkred2"
},
/area/bigredv2/caves/eta/research)
-"kLW" = (
-/obj/effect/landmark/crap_item,
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
+"kMk" = (
+/obj/effect/landmark/hunter_primary,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
},
/area/bigredv2/outside/ne)
"kMs" = (
@@ -33102,6 +32663,13 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"kMA" = (
+/obj/structure/bed/chair/wood/normal,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"kMJ" = (
/obj/structure/prop/invuln/minecart_tracks{
desc = "A heavy duty power cable for high voltage applications";
@@ -33136,6 +32704,12 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/caves_lambda)
+"kOv" = (
+/obj/structure/largecrate/random,
+/turf/open/floor{
+ icon_state = "asteroidplating"
+ },
+/area/bigredv2/outside/space_port_lz2)
"kPu" = (
/obj/structure/machinery/power/terminal{
dir = 1
@@ -33160,11 +32734,12 @@
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
/turf/open/mars_cave,
/area/bigredv2/caves_east)
-"kRo" = (
-/turf/open/floor{
- icon_state = "bcircuit"
+"kRy" = (
+/obj/structure/machinery/power/apc{
+ dir = 1
},
-/area/bigredv2/outside/telecomm/warehouse)
+/turf/open/floor/plating,
+/area/bigredv2/outside/medical)
"kRK" = (
/obj/structure/window/framed/solaris/reinforced,
/turf/open/floor/plating,
@@ -33206,13 +32781,14 @@
/obj/effect/decal/cleanable/blood,
/turf/open/floor,
/area/bigredv2/outside/filtration_cave_cas)
-"kTC" = (
-/obj/structure/surface/table,
-/obj/item/stack/sheet/glass{
- amount = 30
+"kVR" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 5
},
-/turf/open/floor,
-/area/bigredv2/outside/cargo)
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/n)
"kVS" = (
/obj/effect/landmark/crap_item,
/turf/open/mars_cave{
@@ -33239,6 +32815,24 @@
icon_state = "mars_cave_6"
},
/area/bigredv2/caves_se)
+"kWW" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/telecomm/lz2_cave)
+"kXV" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/bed/roller,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "whitegreen"
+ },
+/area/bigredv2/outside/medical)
"kYd" = (
/turf/closed/wall/solaris/reinforced/hull,
/area/bigredv2/outside/e)
@@ -33255,16 +32849,11 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_lambda)
-"laX" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 9;
- pixel_y = -3
- },
-/turf/open/floor{
- icon_state = "white"
+"lbh" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_17"
},
-/area/bigredv2/outside/medical)
+/area/bigredv2/outside/n)
"lbZ" = (
/obj/item/frame/rack,
/obj/effect/decal/cleanable/dirt,
@@ -33307,6 +32896,13 @@
icon_state = "floor1"
},
/area/bigredv2/oob)
+"ldD" = (
+/obj/item/tool/warning_cone{
+ pixel_x = 16;
+ pixel_y = 14
+ },
+/turf/open/mars,
+/area/bigredv2/outside/n)
"lhh" = (
/obj/structure/fence,
/obj/structure/disposalpipe/segment,
@@ -33339,6 +32935,15 @@
icon_state = "floor1"
},
/area/bigredv2/oob)
+"llZ" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/window,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"lmg" = (
/obj/structure/bed/chair/office/light{
dir = 4
@@ -33381,6 +32986,24 @@
icon_state = "dark"
},
/area/bigredv2/outside/engineering)
+"lqp" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
+"lrs" = (
+/obj/structure/machinery/door/airlock/almayer/command/colony{
+ name = "\improper Operations"
+ },
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/bigredv2/outside/admin_building)
"lrH" = (
/obj/effect/landmark/crap_item,
/turf/open/mars_cave{
@@ -33399,6 +33022,13 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
+"lsk" = (
+/obj/structure/surface/table/woodentable,
+/obj/item/newspaper,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"lsq" = (
/obj/item/device/flashlight/lantern,
/turf/open/mars_cave{
@@ -33416,6 +33046,17 @@
icon_state = "mars_cave_19"
},
/area/bigredv2/outside/filtration_plant)
+"ltK" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/structure/machinery/door_control{
+ id = "Dormitories";
+ name = "Storm Shutters";
+ pixel_y = -32
+ },
+/turf/open/floor,
+/area/bigredv2/outside/dorms)
"luA" = (
/obj/item/tool/crowbar/red,
/turf/open/floor/plating{
@@ -33464,6 +33105,18 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"lym" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/structure/barricade/handrail{
+ dir = 4
+ },
+/turf/open/floor,
+/area/bigredv2/outside/marshal_office)
"lyx" = (
/obj/structure/surface/table,
/obj/structure/machinery/light{
@@ -33477,18 +33130,18 @@
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/caves)
+"lAC" = (
+/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_2"
+ },
+/area/bigredv2/outside/ne)
"lAF" = (
/obj/item/paper_bin,
/obj/item/tool/pen,
/obj/structure/surface/table/woodentable/fancy,
/turf/open/floor/wood,
/area/bigredv2/caves/lambda/breakroom)
-"lAK" = (
-/obj/effect/landmark/static_comms/net_two,
-/turf/open/floor{
- icon_state = "bcircuit"
- },
-/area/bigredv2/outside/telecomm/lz2_cave)
"lBc" = (
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/outside/c)
@@ -33506,6 +33159,14 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"lCt" = (
+/obj/structure/machinery/power/reactor/colony{
+ name = "Reactor Turbine"
+ },
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/bigredv2/outside/engineering)
"lCR" = (
/obj/structure/surface/table,
/obj/item/reagent_container/food/drinks/flask/vacuumflask{
@@ -33554,6 +33215,12 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"lEP" = (
+/obj/structure/surface/table/woodentable,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"lGt" = (
/turf/open/floor{
icon_state = "delivery"
@@ -33567,10 +33234,24 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"lID" = (
+/obj/structure/barricade/handrail{
+ dir = 4
+ },
+/turf/open/floor{
+ dir = 4;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/c)
"lIL" = (
/obj/structure/sign/safety/fire_haz,
/turf/closed/wall/wood,
/area/bigredv2/caves/mining)
+"lIS" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_19"
+ },
+/area/bigredv2/outside/ne)
"lKw" = (
/obj/item/paper/bigred/walls,
/obj/structure/machinery/light/small{
@@ -33590,7 +33271,7 @@
/area/bigredv2/caves/mining)
"lMt" = (
/obj/effect/landmark/nightmare{
- insert_tag = "cargo"
+ insert_tag = "cargo_containers"
},
/turf/closed/wall/solaris,
/area/bigredv2/outside/cargo)
@@ -33605,7 +33286,7 @@
/area/bigredv2/caves_lambda)
"lMB" = (
/obj/effect/landmark/nightmare{
- insert_tag = "lz1cave"
+ insert_tag = "lz1cave_flank"
},
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/outside/space_port)
@@ -33619,6 +33300,25 @@
icon_state = "asteroidwarning"
},
/area/bigred/ground/garage_workshop)
+"lNp" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/pipes/vents/pump{
+ dir = 4
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/bigredv2/outside/office_complex)
+"lOL" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_20"
+ },
+/area/bigredv2/outside/n)
+"lPg" = (
+/turf/closed/wall/solaris,
+/area/bigredv2/outside/n)
"lPh" = (
/obj/item/weapon/twohanded/folded_metal_chair{
pixel_x = 3;
@@ -33649,16 +33349,22 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/virology)
-"lRu" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W";
- pixel_x = -1
+"lRC" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/barricade/handrail{
+ dir = 8
},
/turf/open/floor{
- dir = 4;
+ dir = 8;
icon_state = "asteroidwarning"
},
-/area/bigredv2/outside/telecomm/lz2_cave)
+/area/bigredv2/outside/c)
+"lSb" = (
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_9"
+ },
+/area/bigredv2/outside/ne)
"lSm" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -33680,16 +33386,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"lSL" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor{
- dir = 8;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/telecomm/lz2_cave)
"lSS" = (
/obj/item/tool/warning_cone,
/obj/structure/blocker/forcefield/multitile_vehicles,
@@ -33715,6 +33411,17 @@
icon_state = "darkyellowcorners2"
},
/area/bigredv2/outside/engineering)
+"lTV" = (
+/obj/structure/surface/table,
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/space_port_lz2)
+"lUa" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_8"
+ },
+/area/bigredv2/outside/n)
"lUd" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
@@ -33728,11 +33435,10 @@
icon_state = "mars_cave_18"
},
/area/bigredv2/caves_se)
-"lVm" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/outside/n)
+"lUM" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/plating,
+/area/bigredv2/caves/lambda/xenobiology)
"lVr" = (
/obj/effect/landmark/monkey_spawn,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
@@ -33803,25 +33509,22 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
-"mcc" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/machinery/vending/cola,
-/turf/open/floor,
-/area/bigredv2/outside/general_offices)
-"mdU" = (
-/obj/structure/machinery/power/apc{
- dir = 1;
- start_charge = 0
+"mbz" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
},
-/obj/effect/decal/warning_stripes{
- icon_state = "W";
- pixel_x = -1
+/obj/structure/machinery/door/airlock/almayer/maint/colony{
+ name = "\improper Bar Maintenance"
},
/turf/open/floor{
- dir = 4;
- icon_state = "asteroidwarning"
+ icon_state = "delivery"
},
-/area/bigredv2/outside/telecomm/lz2_cave)
+/area/bigredv2/outside/bar)
+"mda" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_16"
+ },
+/area/bigredv2/caves_lambda)
"meT" = (
/turf/open/mars,
/area/bigredv2/outside/eta)
@@ -33833,17 +33536,24 @@
icon_state = "mars_dirt_7"
},
/area/bigredv2/caves/mining)
-"mhx" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/surface/table,
-/obj/structure/machinery/light{
- dir = 4
+"mfG" = (
+/obj/structure/pipes/vents/pump/on,
+/turf/open/floor{
+ icon_state = "freezerfloor"
},
-/obj/item/stack/sheet/glass{
- amount = 30
+/area/bigredv2/outside/general_offices)
+"mfQ" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor{
+ dir = 10;
+ icon_state = "darkyellow2"
},
-/turf/open/floor,
-/area/bigredv2/outside/cargo)
+/area/bigredv2/outside/engineering)
"mhF" = (
/obj/structure/machinery/light{
dir = 4
@@ -33861,6 +33571,13 @@
},
/turf/closed/wall/solaris/reinforced/hull,
/area/bigredv2/caves/mining)
+"mhV" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"mhZ" = (
/obj/structure/machinery/portable_atmospherics/canister/air,
/turf/open/floor{
@@ -33890,6 +33607,10 @@
},
/turf/open/floor,
/area/bigred/ground/garage_workshop)
+"mkt" = (
+/obj/structure/cargo_container/kelland/right,
+/turf/open/mars,
+/area/bigredv2/outside/space_port_lz2)
"mlV" = (
/obj/structure/surface/table,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
@@ -33911,18 +33632,24 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"mnv" = (
+/obj/structure/pipes/vents/pump,
+/turf/open/floor{
+ icon_state = "grimy"
+ },
+/area/bigredv2/outside/dorms)
+"mnY" = (
+/obj/structure/pipes/standard/simple/hidden/green,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/ne)
"moE" = (
/turf/open/mars_cave{
icon_state = "mars_cave_9"
},
/area/bigredv2/caves_research)
-"mpn" = (
-/obj/structure/fence,
-/turf/open/floor{
- dir = 4;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/n)
"mqf" = (
/obj/structure/bed/chair{
dir = 8;
@@ -33997,6 +33724,23 @@
},
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"mtM" = (
+/obj/structure/closet/secure_closet/detective,
+/obj/item/weapon/gun/smg/fp9000,
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/marshal_office)
+"mtS" = (
+/obj/structure/fence,
+/turf/open/floor{
+ dir = 8;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/n)
"muP" = (
/turf/closed/wall/wood,
/area/bigredv2/caves_research)
@@ -34039,6 +33783,20 @@
"mzV" = (
/turf/open/mars,
/area/bigredv2/outside/filtration_plant)
+"mAY" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/space_port_lz2)
+"mBc" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/tool/hatchet,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/dorms)
"mBo" = (
/obj/item/weapon/twohanded/folded_metal_chair{
pixel_x = -7;
@@ -34060,11 +33818,24 @@
icon_state = "asteroidfloor"
},
/area/bigredv2/outside/filtration_cave_cas)
+"mDt" = (
+/turf/open/floor{
+ icon_state = "asteroidplating"
+ },
+/area/bigredv2/outside/space_port_lz2)
"mDN" = (
/turf/open/mars_cave{
icon_state = "mars_cave_15"
},
/area/bigredv2/outside/lz1_north_cas)
+"mEC" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E-corner"
+ },
+/turf/open/mars_cave{
+ icon_state = "mars_cave_2"
+ },
+/area/bigredv2/caves_north)
"mEH" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -34089,12 +33860,6 @@
icon_state = "mars_cave_17"
},
/area/bigredv2/outside/lz1_north_cas)
-"mGS" = (
-/obj/effect/landmark/static_comms/net_two,
-/turf/open/floor{
- icon_state = "podhatchfloor"
- },
-/area/bigredv2/outside/admin_building)
"mHp" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
@@ -34103,6 +33868,12 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_se)
+"mIc" = (
+/obj/effect/landmark/static_comms/net_two,
+/turf/open/floor{
+ icon_state = "podhatchfloor"
+ },
+/area/bigredv2/outside/admin_building)
"mIr" = (
/turf/open/mars_cave{
icon_state = "mars_dirt_7"
@@ -34125,12 +33896,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/filtration_plant)
-"mJH" = (
-/obj/structure/cargo_container/arious/leftmid,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/outside/space_port_lz2)
"mKM" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_y = 6
@@ -34142,6 +33907,15 @@
icon_state = "mars_dirt_11"
},
/area/bigredv2/outside/space_port_lz2)
+"mOc" = (
+/obj/structure/machinery/door/airlock/almayer/maint/colony{
+ dir = 1;
+ name = "\improper General Store Maintenance"
+ },
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/bigredv2/outside/cargo)
"mOW" = (
/obj/structure/pipes/standard/tank/oxygen,
/turf/open/floor/plating{
@@ -34156,6 +33930,14 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
+"mPo" = (
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_10"
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"mPC" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/obj/structure/fence,
@@ -34239,14 +34021,6 @@
icon_state = "mars_dirt_5"
},
/area/bigredv2/caves/mining)
-"mWI" = (
-/turf/open/mars_cave,
-/area/bigredv2/outside/n)
-"mWJ" = (
-/turf/open/mars{
- icon_state = "mars_dirt_9"
- },
-/area/bigredv2/outside/sw)
"mXw" = (
/obj/item/storage/toolbox/mechanical,
/turf/open/mars_cave{
@@ -34284,6 +34058,10 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_research)
+"nbu" = (
+/obj/effect/landmark/hunter_secondary,
+/turf/open/mars,
+/area/bigredv2/outside/space_port_lz2)
"ncv" = (
/obj/effect/landmark/corpsespawner/ua_riot,
/obj/effect/decal/cleanable/blood{
@@ -34308,6 +34086,13 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
+"ncT" = (
+/obj/structure/pipes/standard/simple/hidden/green,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"ndw" = (
/turf/open/floor{
dir = 4;
@@ -34379,6 +34164,11 @@
icon_state = "mars_dirt_6"
},
/area/bigredv2/caves/mining)
+"nlB" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_16"
+ },
+/area/bigredv2/outside/n)
"nlJ" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
@@ -34405,6 +34195,11 @@
icon_state = "mars_dirt_7"
},
/area/bigredv2/caves_research)
+"nnz" = (
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_5"
+ },
+/area/bigredv2/outside/n)
"nnK" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
@@ -34447,6 +34242,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"nra" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_13"
+ },
+/area/bigredv2/outside/sw)
"nrj" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_x = -1;
@@ -34515,6 +34315,16 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
+"nvn" = (
+/obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary{
+ density = 0;
+ pixel_y = 16
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/c)
"nwB" = (
/turf/open/floor{
dir = 8;
@@ -34538,6 +34348,17 @@
icon_state = "mars_cave_3"
},
/area/bigredv2/caves/mining)
+"nzB" = (
+/obj/structure/machinery/computer/general_air_control{
+ dir = 8;
+ pixel_y = 6
+ },
+/obj/structure/surface/table,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "darkyellow2"
+ },
+/area/bigredv2/outside/filtration_plant)
"nzN" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
@@ -34545,6 +34366,15 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
+"nAA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/bed/chair/wood/normal{
+ dir = 4
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"nBb" = (
/obj/item/ammo_magazine/pistol/b92fs,
/obj/item/weapon/gun/pistol/b92fs{
@@ -34577,6 +34407,11 @@
icon_state = "mars_cave_13"
},
/area/bigredv2/outside/lz2_south_cas)
+"nEH" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_10"
+ },
+/area/bigredv2/outside/n)
"nEJ" = (
/turf/open/mars_cave{
icon_state = "mars_dirt_5"
@@ -34625,24 +34460,10 @@
/area/bigredv2/outside/filtration_cave_cas)
"nGt" = (
/obj/effect/landmark/nightmare{
- insert_tag = "admin"
+ insert_tag = "admin_pmc"
},
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/outside/admin_building)
-"nGU" = (
-/obj/structure/toilet{
- dir = 1
- },
-/obj/effect/landmark/objective_landmark/close,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/dorms)
-"nHb" = (
-/turf/open/floor{
- icon_state = "bcircuit"
- },
-/area/bigredv2/outside/telecomm/lz2_cave)
"nHQ" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/obj/structure/machinery/door/poddoor/almayer/closed{
@@ -34663,14 +34484,6 @@
icon_state = "test_floor4"
},
/area/bigredv2/outside/engineering)
-"nIs" = (
-/obj/structure/window/framed/solaris,
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "Greenhouse";
- name = "\improper Greenhouse Shutters"
- },
-/turf/open/floor/plating,
-/area/bigredv2/outside/hydroponics)
"nKL" = (
/obj/structure/prop/invuln/minecart_tracks{
desc = "An exchange valve";
@@ -34709,6 +34522,14 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"nOe" = (
+/obj/structure/toilet{
+ dir = 1
+ },
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/dorms)
"nPz" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -34777,12 +34598,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/filtration_cave_cas)
-"nVa" = (
-/obj/structure/fence,
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/n)
"nVq" = (
/turf/open/floor{
icon_state = "dark"
@@ -34807,6 +34622,15 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"nWG" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 6
+ },
+/obj/structure/machinery/portable_atmospherics/hydroponics,
+/turf/open/floor{
+ icon_state = "whitegreenfull"
+ },
+/area/bigredv2/outside/hydroponics)
"nXh" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/remains/human,
@@ -34840,6 +34664,13 @@
/obj/item/tool/warning_cone,
/turf/open/mars,
/area/bigredv2/outside/s)
+"nZB" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"nZD" = (
/obj/structure/platform_decoration{
dir = 8
@@ -34911,12 +34742,6 @@
icon_state = "dark"
},
/area/bigredv2/caves/lambda/breakroom)
-"oeT" = (
-/obj/item/stack/sheet/wood,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/caves_north)
"ofn" = (
/obj/effect/decal/cleanable/dirt,
/turf/closed/wall/solaris,
@@ -34972,11 +34797,15 @@
/obj/structure/cargo_container/hd/left/alt,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
-"oip" = (
-/turf/open/mars{
- icon_state = "mars_dirt_6"
+"oji" = (
+/obj/structure/morgue{
+ dir = 2
},
-/area/bigredv2/outside/space_port_lz2)
+/turf/open/floor{
+ dir = 1;
+ icon_state = "whiteblue"
+ },
+/area/bigredv2/outside/medical)
"ojD" = (
/obj/structure/platform_decoration{
dir = 4
@@ -35001,6 +34830,13 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"okt" = (
+/obj/structure/surface/table,
+/obj/effect/spawner/random/tool,
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/space_port_lz2)
"ole" = (
/turf/open/floor/almayer{
dir = 1;
@@ -35082,17 +34918,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/filtration_cave_cas)
-"ooP" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/obj/structure/machinery/door_control{
- id = "Dormitories";
- name = "Storm Shutters";
- pixel_y = -32
- },
-/turf/open/floor,
-/area/bigredv2/outside/dorms)
"opz" = (
/obj/effect/landmark/crap_item,
/turf/open/mars_cave{
@@ -35166,6 +34991,12 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/outside/lz2_west_cas)
+"ovQ" = (
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/outside/ne)
"ovZ" = (
/obj/effect/decal/warning_stripes{
icon_state = "N"
@@ -35222,6 +35053,15 @@
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/floor/plating,
/area/bigredv2/caves_virology)
+"ozO" = (
+/obj/structure/toilet{
+ dir = 1
+ },
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/dorms)
"ozQ" = (
/obj/effect/landmark/xeno_hive_spawn,
/obj/effect/landmark/ert_spawns/groundside_xeno,
@@ -35252,12 +35092,23 @@
icon_state = "darkred2"
},
/area/bigredv2/outside/admin_building)
-"oEJ" = (
-/obj/structure/largecrate/random,
-/turf/open/floor{
- icon_state = "asteroidplating"
+"oFj" = (
+/obj/structure/barricade/wooden{
+ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
+ dir = 8;
+ health = 25000
},
-/area/bigredv2/outside/space_port_lz2)
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_2"
+ },
+/area/bigredv2/caves_north)
+"oFx" = (
+/obj/item/device/flashlight/lantern,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/outside/ne)
"oFY" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/item/prop/alien/hugger,
@@ -35337,6 +35188,14 @@
icon_state = "mars_dirt_7"
},
/area/bigredv2/caves/mining)
+"oMf" = (
+/obj/structure/fence,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"oNu" = (
/turf/open/mars_cave{
icon_state = "mars_cave_11"
@@ -35356,20 +35215,10 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"oOt" = (
+"oOw" = (
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 8;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/telecomm/n_cave)
-"oOM" = (
-/obj/structure/surface/table,
-/obj/item/clothing/under/brown,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/general_offices)
+/turf/open/gm/river,
+/area/bigredv2/outside/c)
"oQz" = (
/obj/structure/machinery/light/double{
dir = 1
@@ -35398,12 +35247,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"oSN" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"oTf" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/barricade/handrail{
@@ -35453,6 +35296,16 @@
icon_state = "mars_dirt_7"
},
/area/bigredv2/caves/mining)
+"oUY" = (
+/obj/structure/platform_decoration{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"oWc" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -35474,6 +35327,16 @@
icon_state = "darkblue2"
},
/area/bigredv2/outside/admin_building)
+"oWk" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor{
+ dir = 8;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/lz2_cave)
"oWp" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/barricade/handrail,
@@ -35494,12 +35357,6 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
-"oWM" = (
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_cave_16"
- },
-/area/bigredv2/outside/ne)
"oXr" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
@@ -35618,7 +35475,7 @@
/area/bigredv2/outside/admin_building)
"pdN" = (
/obj/effect/landmark/nightmare{
- insert_tag = "lz1entrance"
+ insert_tag = "lz1entrance_v2"
},
/turf/open/mars,
/area/bigredv2/outside/nw)
@@ -35631,6 +35488,11 @@
/obj/structure/window_frame/solaris,
/turf/open/floor/plating,
/area/bigredv2/outside/dorms)
+"pgh" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_17"
+ },
+/area/bigredv2/outside/ne)
"pgi" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest,
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest,
@@ -35653,6 +35515,12 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/outside/filtration_cave_cas)
+"pgP" = (
+/obj/structure/surface/table,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/general_offices)
"phi" = (
/turf/open/mars_cave{
icon_state = "mars_cave_6"
@@ -35723,15 +35591,15 @@
/turf/closed/wall/solaris/rock,
/area/bigredv2/caves)
"pri" = (
-/obj/structure/barricade/handrail{
- dir = 1;
- pixel_y = 2
+/obj/structure/barricade/wooden{
+ desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
+ dir = 8;
+ health = 25000
},
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidwarning"
+/turf/open/mars_cave{
+ icon_state = "mars_cave_15"
},
-/area/bigredv2/outside/c)
+/area/bigredv2/caves_north)
"psE" = (
/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor{
@@ -35744,16 +35612,6 @@
},
/turf/open/floor,
/area/bigredv2/caves/eta/living)
-"ptV" = (
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 4;
- health = 25000
- },
-/turf/open/mars_cave{
- icon_state = "mars_cave_19"
- },
-/area/bigredv2/caves_north)
"puU" = (
/obj/item/paper/bigred/witness,
/turf/open/mars_cave{
@@ -35767,6 +35625,10 @@
icon_state = "dark"
},
/area/bigredv2/caves/eta/xenobiology)
+"pvj" = (
+/obj/structure/machinery/camera/autoname,
+/turf/open/floor,
+/area/bigredv2/outside/dorms)
"pvk" = (
/obj/structure/prop/invuln/minecart_tracks{
desc = "Righty tighty, lefty loosey!";
@@ -35830,12 +35692,11 @@
icon_state = "dark"
},
/area/bigredv2/outside/admin_building)
-"pBh" = (
-/obj/structure/surface/table,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/general_offices)
+"pzC" = (
+/obj/structure/window/framed/solaris,
+/obj/structure/curtain,
+/turf/open/floor/plating,
+/area/bigredv2/outside/medical)
"pBv" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
@@ -35873,20 +35734,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"pEp" = (
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/telecomm/n_cave)
-"pGN" = (
-/obj/structure/toilet{
- dir = 1
- },
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/dorms)
"pGP" = (
/obj/structure/barricade/handrail{
dir = 4
@@ -35896,13 +35743,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/filtration_plant)
-"pGS" = (
-/obj/structure/surface/table,
-/obj/effect/spawner/random/tool,
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
"pHb" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall,
@@ -35910,12 +35750,15 @@
icon_state = "mars_cave_7"
},
/area/bigredv2/caves_sw)
-"pIh" = (
-/obj/structure/machinery/power/geothermal,
+"pIl" = (
+/obj/structure/morgue{
+ dir = 2
+ },
/turf/open/floor{
- icon_state = "white"
+ dir = 9;
+ icon_state = "whiteblue"
},
-/area/bigredv2/outside/virology)
+/area/bigredv2/outside/medical)
"pIN" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
@@ -35923,6 +35766,19 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_lambda)
+"pJn" = (
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_2"
+ },
+/area/bigredv2/outside/ne)
+"pJt" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"pJS" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_x = -4;
@@ -35953,6 +35809,11 @@
icon_state = "mars_cave_19"
},
/area/bigredv2/caves/mining)
+"pLH" = (
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_6"
+ },
+/area/bigredv2/outside/ne)
"pMi" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/tool/extinguisher,
@@ -35983,6 +35844,20 @@
icon_state = "darkred2"
},
/area/bigredv2/caves/eta/research)
+"pNn" = (
+/obj/structure/machinery/light,
+/obj/structure/surface/table/woodentable,
+/obj/structure/window{
+ dir = 8
+ },
+/obj/structure/machinery/door_control{
+ id = "Library";
+ name = "Storm Shutters"
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"pNU" = (
/obj/structure/bed,
/obj/item/prop/alien/hugger,
@@ -36002,12 +35877,28 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
+"pOt" = (
+/obj/structure/machinery/optable,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whiteblue"
+ },
+/area/bigredv2/outside/medical)
"pOL" = (
/obj/structure/closet/crate/miningcar/yellow,
/turf/open/mars_cave{
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
+"pPh" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor/plating{
+ icon_state = "warnplate"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
"pPo" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/pipes/standard/simple/hidden/green,
@@ -36048,6 +35939,20 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"pTo" = (
+/obj/structure/machinery/power/apc{
+ dir = 1;
+ start_charge = 0
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
+ },
+/turf/open/floor{
+ dir = 4;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/lz2_cave)
"pTA" = (
/obj/structure/platform_decoration/shiva{
dir = 1
@@ -36179,11 +36084,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"qap" = (
-/turf/open/mars_cave{
- icon_state = "mars_dirt_7"
- },
-/area/bigredv2/outside/space_port_lz2)
"qaK" = (
/obj/structure/largecrate,
/turf/open/floor{
@@ -36195,14 +36095,16 @@
/obj/vehicle/powerloader/ft,
/turf/open/floor/plating,
/area/bigredv2/outside/nw/ceiling)
-"qez" = (
-/obj/structure/fence,
-/obj/effect/decal/cleanable/dirt,
+"qby" = (
/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
+ icon_state = "bcircuit"
},
-/area/bigredv2/outside/telecomm/n_cave)
+/area/bigredv2/outside/telecomm/lz2_cave)
+"qcQ" = (
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_7"
+ },
+/area/bigredv2/outside/space_port_lz2)
"qeK" = (
/obj/structure/surface/table,
/obj/effect/spawner/random/tool,
@@ -36266,16 +36168,6 @@
icon_state = "mars_cave_6"
},
/area/bigredv2/caves/mining)
-"qhS" = (
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 4;
- health = 25000
- },
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/caves_north)
"qiA" = (
/obj/structure/surface/table/reinforced/prison,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
@@ -36324,14 +36216,6 @@
/obj/effect/spawner/random/toolbox,
/turf/open/floor,
/area/bigred/ground/garage_workshop)
-"qlT" = (
-/obj/structure/machinery/camera/autoname{
- dir = 1
- },
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
"qmm" = (
/obj/structure/cargo_container/hd/right/alt,
/turf/open/floor/plating,
@@ -36347,12 +36231,6 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
-"qmY" = (
-/obj/effect/landmark/hunter_secondary,
-/turf/open/mars_cave{
- icon_state = "mars_cave_7"
- },
-/area/bigredv2/outside/n)
"qoj" = (
/turf/open/mars_cave{
icon_state = "mars_cave_23"
@@ -36373,6 +36251,15 @@
icon_state = "dark"
},
/area/bigredv2/outside/admin_building)
+"qoQ" = (
+/obj/structure/morgue{
+ dir = 1
+ },
+/turf/open/floor{
+ dir = 10;
+ icon_state = "whiteblue"
+ },
+/area/bigredv2/outside/medical)
"qpn" = (
/obj/item/tool/warning_cone{
pixel_x = -6
@@ -36394,15 +36281,26 @@
/obj/item/storage/firstaid/fire,
/turf/open/floor,
/area/bigred/ground/garage_workshop)
+"qsd" = (
+/obj/structure/cargo_container/kelland/left,
+/turf/open/mars,
+/area/bigredv2/outside/space_port_lz2)
+"qse" = (
+/obj/structure/largecrate/supply,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/n)
"qsE" = (
/turf/closed/wall/solaris/reinforced,
/area/bigred/ground/garage_workshop)
-"qtx" = (
+"qus" = (
+/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
+ icon_state = "delivery"
},
-/area/bigredv2/caves_north)
+/area/bigredv2/outside/dorms)
"qux" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_x = 6
@@ -36419,6 +36317,17 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
+"quX" = (
+/obj/structure/window/framed/solaris/reinforced,
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ dir = 4;
+ id = "Engineering";
+ name = "\improper Engineering Shutters"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/bigredv2/outside/engineering)
"qvA" = (
/obj/effect/landmark/xeno_spawn,
/turf/open/mars_cave{
@@ -36431,6 +36340,11 @@
icon_state = "mars_cave_3"
},
/area/bigredv2/caves/mining)
+"qwm" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_12"
+ },
+/area/bigredv2/outside/n)
"qwx" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
@@ -36459,17 +36373,6 @@
icon_state = "darkredcorners2"
},
/area/bigredv2/outside/admin_building)
-"qyq" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NE-out";
- pixel_x = 1;
- pixel_y = 1
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/c)
"qzO" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/obj/structure/machinery/door/poddoor/almayer/closed{
@@ -36494,6 +36397,11 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/lz2_south_cas)
+"qDZ" = (
+/turf/open/floor{
+ icon_state = "podhatchfloor"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"qEs" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/mars_cave{
@@ -36574,13 +36482,6 @@
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor,
/area/bigredv2/outside/cargo)
-"qJL" = (
-/obj/structure/fence,
-/turf/open/floor{
- dir = 8;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/n)
"qJV" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_x = -5;
@@ -36591,12 +36492,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"qKx" = (
-/obj/effect/landmark/nightmare{
- insert_tag = "prison"
- },
-/turf/closed/wall/solaris/reinforced,
-/area/bigredv2/outside/marshal_office)
"qLk" = (
/obj/item/device/flashlight/lantern,
/turf/open/mars_cave{
@@ -36610,6 +36505,20 @@
icon_state = "asteroidfloor"
},
/area/bigredv2/outside/eta)
+"qMS" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_18"
+ },
+/area/bigredv2/outside/n)
+"qNp" = (
+/obj/structure/bed/chair/comfy{
+ dir = 4
+ },
+/obj/structure/window,
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"qNu" = (
/obj/structure/surface/table,
/obj/structure/machinery/light/small{
@@ -36620,21 +36529,27 @@
icon_state = "dark"
},
/area/bigredv2/caves/lambda/xenobiology)
+"qNH" = (
+/obj/structure/closet/firecloset/full,
+/turf/open/floor{
+ icon_state = "asteroidplating"
+ },
+/area/bigredv2/outside/space_port_lz2)
"qNP" = (
/obj/structure/bed/chair{
dir = 8
},
/turf/open/floor,
/area/bigred/ground/garage_workshop)
-"qNT" = (
-/obj/structure/platform{
- dir = 4
+"qNU" = (
+/obj/structure/surface/table,
+/obj/structure/machinery/computer/shuttle/dropship/flight/lz2{
+ dir = 1
},
/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
+ icon_state = "asteroidwarning"
},
-/area/bigredv2/outside/telecomm/n_cave)
+/area/bigredv2/landing/console2)
"qOM" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_x = -9;
@@ -36655,6 +36570,12 @@
"qPT" = (
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/outside/eta)
+"qQl" = (
+/obj/effect/landmark/static_comms/net_one,
+/turf/open/floor{
+ icon_state = "bcircuit"
+ },
+/area/bigredv2/outside/marshal_office)
"qQn" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
@@ -36662,13 +36583,20 @@
icon_state = "mars_cave_6"
},
/area/bigredv2/caves_lambda)
+"qQr" = (
+/obj/item/stack/sheet/wood,
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_7"
+ },
+/area/bigredv2/caves_north)
"qSj" = (
/obj/structure/cargo_container/hd/mid/alt,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
"qTu" = (
/obj/effect/landmark/nightmare{
- insert_tag = "viro"
+ insert_tag = "viro_open"
},
/turf/closed/wall/solaris/rock,
/area/bigredv2/caves)
@@ -36705,6 +36633,12 @@
/obj/structure/window/framed/solaris/reinforced,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"qVw" = (
+/turf/open/floor{
+ dir = 5;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/virology)
"qVB" = (
/obj/item/weapon/shield/riot,
/obj/effect/decal/cleanable/blood/drip{
@@ -36722,6 +36656,24 @@
icon_state = "wood"
},
/area/bigredv2/outside/admin_building)
+"qYB" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/structure/mirror{
+ pixel_x = -28
+ },
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/dorms)
"qYY" = (
/obj/structure/prop/invuln/minecart_tracks{
dir = 8
@@ -36755,6 +36707,12 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
+"rat" = (
+/obj/structure/machinery/light,
+/turf/open/floor{
+ icon_state = "bcircuit"
+ },
+/area/bigredv2/outside/marshal_office)
"raQ" = (
/obj/structure/barricade/handrail/wire{
dir = 4
@@ -36763,6 +36721,17 @@
icon_state = "mars_cave_9"
},
/area/bigredv2/outside/telecomm/lz2_cave)
+"raU" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ layer = 2.5;
+ pixel_x = -1
+ },
+/turf/open/floor{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/bigredv2/outside/marshal_office)
"rbD" = (
/obj/structure/largecrate/random,
/turf/open/floor/plating{
@@ -36770,6 +36739,13 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"rbV" = (
+/obj/structure/pipes/standard/simple/hidden/green,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/n)
"rcc" = (
/obj/structure/prop/almayer/missile_tube{
desc = "A detached drill arm of a big old Seegson D-602 Mining Robot. Seems to be jury rigged to run without the main robot assembly.";
@@ -36837,27 +36813,22 @@
icon_state = "mars_cave_2"
},
/area/space)
+"rfX" = (
+/obj/structure/surface/table,
+/obj/item/bodybag,
+/obj/item/bodybag,
+/obj/item/bodybag,
+/turf/open/floor{
+ dir = 5;
+ icon_state = "whitegreen"
+ },
+/area/bigredv2/outside/medical)
"rgp" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/mars_cave{
icon_state = "mars_cave_2"
},
/area/bigredv2/outside/lz1_north_cas)
-"rhx" = (
-/obj/structure/machinery/power/apc{
- dir = 1;
- start_charge = 0
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "W";
- layer = 2.5;
- pixel_x = -1
- },
-/turf/open/floor/plating{
- dir = 4;
- icon_state = "warnplate"
- },
-/area/bigredv2/outside/telecomm/warehouse)
"rhP" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/warning_stripes{
@@ -36900,12 +36871,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"rmk" = (
-/obj/effect/landmark/static_comms/net_one,
-/turf/open/floor{
- icon_state = "podhatchfloor"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"rml" = (
/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage,
/turf/open/floor,
@@ -36968,20 +36933,22 @@
/area/bigredv2/caves/mining)
"rrl" = (
/obj/effect/landmark/nightmare{
- insert_tag = "filtration"
+ insert_tag = "filtration_restored"
},
/turf/open/mars_cave{
icon_state = "mars_cave_2"
},
/area/bigredv2/outside/s)
+"rrF" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_13"
+ },
+/area/bigredv2/outside/ne)
"rsv" = (
/turf/open/mars_cave{
icon_state = "mars_cave_3"
},
/area/bigredv2/caves/mining)
-"rsQ" = (
-/turf/closed/wall/r_wall/unmeltable,
-/area/bigredv2/outside/c)
"rtL" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/mars_cave{
@@ -37017,14 +36984,6 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
-"ruF" = (
-/obj/structure/largecrate/supply,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/n)
"ruS" = (
/obj/structure/bed/chair{
dir = 8;
@@ -37065,6 +37024,12 @@
},
/turf/open/floor/plating,
/area/bigredv2/outside/filtration_plant)
+"rzR" = (
+/turf/open/floor{
+ dir = 6;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/ne)
"rzT" = (
/obj/structure/sign/nosmoking_1,
/turf/closed/wall/solaris/reinforced,
@@ -37177,6 +37142,15 @@
},
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"rKy" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/machinery/recharge_station,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/dorms)
"rKP" = (
/obj/structure/machinery/portable_atmospherics/powered/scrubber,
/turf/open/floor/plating{
@@ -37184,6 +37158,11 @@
icon_state = "warnplate"
},
/area/bigredv2/oob)
+"rLM" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_12"
+ },
+/area/bigredv2/outside/ne)
"rLR" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest,
@@ -37233,6 +37212,11 @@
/obj/item/weapon/harpoon,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"rNd" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/crap_item,
+/turf/open/floor,
+/area/bigredv2/outside/hydroponics)
"rOK" = (
/obj/effect/landmark/corpsespawner/ua_riot,
/obj/item/weapon/baton/loaded,
@@ -37276,6 +37260,19 @@
},
/turf/open/floor/plating,
/area/bigredv2/oob)
+"rRE" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/surface/table/woodentable,
+/obj/item/prop/magazine/book/bladerunner{
+ pixel_y = 3
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"rRO" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/floor{
@@ -37289,16 +37286,6 @@
icon_state = "dark"
},
/area/bigredv2/caves/eta/storage)
-"rTr" = (
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 4;
- health = 25000
- },
-/turf/open/mars_cave{
- icon_state = "mars_cave_14"
- },
-/area/bigredv2/caves_north)
"rTN" = (
/obj/structure/fence,
/turf/open/floor{
@@ -37349,12 +37336,30 @@
icon_state = "mars_dirt_7"
},
/area/bigredv2/caves/mining)
-"rVx" = (
+"rVy" = (
+/obj/structure/window,
+/obj/structure/window{
+ dir = 8
+ },
+/obj/structure/surface/table/woodentable,
+/obj/effect/landmark/objective_landmark/close,
+/obj/item/prop/magazine/book/starshiptroopers,
/turf/open/floor{
- dir = 9;
- icon_state = "darkyellow2"
+ icon_state = "wood"
},
-/area/bigredv2/outside/engineering)
+/area/bigredv2/outside/library)
+"rVE" = (
+/obj/effect/landmark/crap_item,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_19"
+ },
+/area/bigredv2/outside/n)
+"rVT" = (
+/obj/structure/fence,
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/n)
"rWF" = (
/obj/item/stack/cable_coil/cut{
pixel_x = 6;
@@ -37418,14 +37423,17 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"rZi" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/bed/roller,
-/turf/open/floor{
- dir = 1;
- icon_state = "whitegreen"
+"rYS" = (
+/obj/structure/machinery/light{
+ dir = 8
},
-/area/bigredv2/outside/medical)
+/obj/structure/surface/table,
+/obj/effect/spawner/random/toolbox,
+/turf/open/floor,
+/area/bigredv2/outside/cargo)
+"rZn" = (
+/turf/closed/wall/solaris/reinforced,
+/area/bigredv2/outside/w)
"rZQ" = (
/obj/structure/surface/table,
/obj/item/reagent_container/food/snacks/csandwich,
@@ -37436,6 +37444,13 @@
icon_state = "mars_cave_15"
},
/area/bigredv2/caves/mining)
+"rZU" = (
+/obj/structure/fence,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/n)
"sap" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -37446,17 +37461,6 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
-"saH" = (
-/obj/structure/platform_decoration{
- dir = 8
- },
-/obj/effect/landmark/objective_landmark/close,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"saX" = (
/obj/structure/machinery/power/turbine,
/turf/open/floor{
@@ -37471,6 +37475,14 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
+"sbm" = (
+/obj/structure/surface/table,
+/obj/effect/spawner/random/toolbox,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/space_port_lz2)
"sbz" = (
/obj/structure/platform/kutjevo/rock{
dir = 8
@@ -37499,6 +37511,15 @@
icon_state = "dark"
},
/area/bigredv2/caves/eta/living)
+"scK" = (
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"sdP" = (
/obj/structure/largecrate/random/barrel/white,
/turf/open/floor/plating,
@@ -37536,24 +37557,12 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"shf" = (
-/obj/structure/barricade/handrail{
- dir = 4
- },
-/turf/open/floor{
- dir = 4;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/c)
-"shm" = (
-/obj/structure/window/reinforced/tinted,
-/obj/structure/machinery/shower{
- dir = 8
- },
-/turf/open/floor{
- icon_state = "freezerfloor"
+"shK" = (
+/obj/structure/cargo_container/arious/right,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
},
-/area/bigredv2/outside/dorms)
+/area/bigredv2/outside/space_port_lz2)
"shV" = (
/turf/open/floor{
icon_state = "asteroidwarning"
@@ -37660,17 +37669,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"som" = (
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 8;
- health = 25000
- },
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_cave_13"
- },
-/area/bigredv2/caves_north)
"sqc" = (
/obj/effect/decal/cleanable/blood{
base_icon = 'icons/obj/items/weapons/grenade.dmi';
@@ -37688,6 +37686,13 @@
icon_state = "mars_cave_10"
},
/area/bigredv2/caves_research)
+"sqt" = (
+/obj/effect/landmark/lv624/xeno_tunnel,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/ne)
"sqQ" = (
/obj/item/paper/bigred/them,
/turf/open/floor/plating{
@@ -37695,6 +37700,14 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"sri" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"sso" = (
/obj/structure/bed/chair,
/turf/open/mars_cave{
@@ -37717,12 +37730,12 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
-"stJ" = (
+"stZ" = (
+/obj/effect/landmark/static_comms/net_two,
/turf/open/floor{
- dir = 10;
- icon_state = "asteroidwarning"
+ icon_state = "bcircuit"
},
-/area/bigredv2/outside/telecomm/n_cave)
+/area/bigredv2/outside/telecomm/lz2_cave)
"sus" = (
/turf/open/mars_cave{
icon_state = "mars_cave_23"
@@ -37768,11 +37781,15 @@
icon_state = "delivery"
},
/area/bigred/ground/garage_workshop)
-"svp" = (
+"swk" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
/turf/open/floor{
- icon_state = "asteroidplating"
+ dir = 8;
+ icon_state = "asteroidwarning"
},
-/area/bigredv2/outside/space_port_lz2)
+/area/bigredv2/outside/w)
"swJ" = (
/obj/structure/surface/table,
/obj/effect/landmark/objective_landmark/science,
@@ -37809,13 +37826,6 @@
icon_state = "mars_cave_16"
},
/area/bigredv2/caves/mining)
-"szg" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 4;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"szi" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -37837,6 +37847,15 @@
icon_state = "darkyellowcorners2"
},
/area/bigredv2/outside/engineering)
+"szZ" = (
+/obj/structure/window/reinforced/tinted,
+/obj/structure/machinery/shower{
+ dir = 8
+ },
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/dorms)
"sAG" = (
/obj/effect/landmark/hunter_primary,
/turf/open/mars_cave{
@@ -37868,12 +37887,6 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_east)
-"sBF" = (
-/obj/structure/cargo_container/kelland/right,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/outside/space_port_lz2)
"sCj" = (
/obj/item/stack/cable_coil/cut,
/turf/open/mars_cave{
@@ -37925,6 +37938,12 @@
icon_state = "darkgreencorners2"
},
/area/bigredv2/caves/eta/research)
+"sFv" = (
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/caves_north)
"sFW" = (
/obj/effect/decal/cleanable/blood/oil/streak,
/turf/open/mars_cave{
@@ -38052,28 +38071,14 @@
icon_state = "mars_cave_19"
},
/area/bigredv2/outside/lz2_south_cas)
-"sTf" = (
-/obj/structure/surface/table,
-/obj/structure/machinery/computer/shuttle/dropship/flight/lz2{
- dir = 1
- },
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/landing/console2)
"sUQ" = (
/obj/structure/machinery/photocopier,
/turf/open/floor/wood,
/area/bigredv2/caves/lambda/breakroom)
-"sVY" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/obj/item/clothing/under/darkred,
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/general_offices)
+"sVB" = (
+/obj/structure/window_frame/solaris,
+/turf/open/floor/plating,
+/area/bigredv2/outside/marshal_office)
"sWa" = (
/obj/item/ore{
pixel_x = 12;
@@ -38083,6 +38088,17 @@
icon_state = "mars_dirt_7"
},
/area/bigredv2/caves/mining)
+"sWh" = (
+/obj/structure/platform_decoration,
+/obj/structure/machinery/power/apc{
+ dir = 1;
+ start_charge = 0
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"sWS" = (
/obj/structure/largecrate/random/barrel/white,
/turf/open/floor/plating{
@@ -38145,6 +38161,22 @@
icon_state = "podhatchfloor"
},
/area/bigredv2/outside/admin_building)
+"taV" = (
+/obj/structure/closet/coffin/woodencrate,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/n)
+"tbS" = (
+/obj/structure/morgue{
+ dir = 1
+ },
+/turf/open/floor{
+ icon_state = "whiteblue"
+ },
+/area/bigredv2/outside/medical)
"tcb" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/pizzabox/meat,
@@ -38177,6 +38209,12 @@
icon_state = "mars_cave_16"
},
/area/bigredv2/caves/mining)
+"tdz" = (
+/obj/effect/decal/cleanable/blood/gibs/limb,
+/turf/open/floor{
+ icon_state = "grimy"
+ },
+/area/bigredv2/outside/dorms)
"tdB" = (
/obj/structure/tunnel{
id = "hole1"
@@ -38254,12 +38292,11 @@
/obj/effect/decal/cleanable/ash,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
-"tgk" = (
+"tgf" = (
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- icon_state = "floor4"
- },
-/area/bigredv2/outside/cargo)
+/obj/structure/machinery/vending/snack,
+/turf/open/floor,
+/area/bigredv2/outside/general_offices)
"tgF" = (
/obj/effect/spawner/random/tool,
/turf/open/shuttle/escapepod{
@@ -38293,6 +38330,20 @@
icon_state = "freezerfloor"
},
/area/bigredv2/outside/engineering)
+"tjX" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_7"
+ },
+/area/bigredv2/outside/n)
+"tkM" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"tkN" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 5
@@ -38301,11 +38352,22 @@
icon_state = "darkpurple2"
},
/area/bigredv2/caves/lambda/research)
-"tlj" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_5"
+"tkY" = (
+/obj/structure/noticeboard{
+ desc = "A board for pinning important items upon.";
+ dir = 1;
+ name = "trophy board";
+ pixel_y = 30
},
-/area/bigredv2/outside/n)
+/obj/item/XenoBio/Chitin{
+ anchored = 1;
+ pixel_y = 27
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "elevatorshaft"
+ },
+/area/bigredv2/caves/lambda/breakroom)
"tlP" = (
/obj/structure/machinery/cm_vending/sorted/tech/tool_storage,
/obj/structure/machinery/light{
@@ -38313,6 +38375,15 @@
},
/turf/open/floor,
/area/bigred/ground/garage_workshop)
+"tmj" = (
+/obj/structure/machinery/alarm{
+ dir = 4;
+ pixel_x = -30
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"tmH" = (
/obj/structure/closet/crate,
/obj/structure/machinery/light{
@@ -38331,11 +38402,12 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves_research)
-"tng" = (
+"tnG" = (
+/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
+ icon_state = "mars_cave_2"
},
-/area/bigredv2/caves_lambda)
+/area/bigredv2/outside/n)
"toA" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/prop/alien/hugger,
@@ -38352,11 +38424,25 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"tpU" = (
+/obj/structure/pipes/standard/simple/hidden/green,
+/obj/structure/machinery/portable_atmospherics/hydroponics,
+/turf/open/floor{
+ icon_state = "whitegreenfull"
+ },
+/area/bigredv2/outside/hydroponics)
+"tpY" = (
+/obj/structure/lz_sign/solaris_sign,
+/turf/open/mars,
+/area/bigredv2/outside/space_port_lz2)
"tqi" = (
/turf/open/mars_cave{
icon_state = "mars_cave_19"
},
/area/bigredv2/caves/mining)
+"tqS" = (
+/turf/closed/wall/solaris/reinforced,
+/area/bigredv2/caves_north)
"trk" = (
/turf/open/mars_cave{
icon_state = "mars_cave_13"
@@ -38463,22 +38549,6 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
-"twS" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/telecomm/lz2_cave)
-"tyH" = (
-/obj/item/stack/sheet/wood,
-/turf/open/mars_cave{
- icon_state = "mars_cave_6"
- },
-/area/bigredv2/caves_north)
"tzJ" = (
/obj/structure/machinery/door/airlock/almayer/engineering/colony{
name = "\improper Engine Reactor Control"
@@ -38494,6 +38564,21 @@
icon_state = "wood"
},
/area/bigredv2/caves/eta/living)
+"tAM" = (
+/obj/structure/surface/table/woodentable,
+/obj/item/newspaper{
+ pixel_x = -7
+ },
+/obj/item/prop/magazine/book/theartofwar{
+ pixel_x = 11
+ },
+/obj/item/tool/pen{
+ pixel_x = -7
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"tAW" = (
/obj/effect/landmark/lv624/xeno_tunnel,
/turf/open/floor{
@@ -38573,11 +38658,6 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
-"tCQ" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_16"
- },
-/area/bigredv2/caves_lambda)
"tDk" = (
/obj/structure/machinery/light/double{
dir = 1
@@ -38603,6 +38683,13 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves_research)
+"tFt" = (
+/obj/structure/surface/table,
+/obj/structure/machinery/light,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/general_offices)
"tFO" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 1
@@ -38611,17 +38698,21 @@
icon_state = "delivery"
},
/area/bigredv2/caves/lambda/breakroom)
-"tGJ" = (
-/turf/open/floor{
- icon_state = "podhatchfloor"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"tHl" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/mars{
icon_state = "mars_dirt_10"
},
/area/bigredv2/outside/c)
+"tHB" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 10
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/c)
"tIq" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/mars_cave{
@@ -38664,12 +38755,6 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
-"tJH" = (
-/turf/open/floor{
- dir = 6;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/space_port_lz2)
"tKr" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/bed/chair{
@@ -38698,12 +38783,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"tKE" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/ne)
"tKR" = (
/turf/open/floor{
icon_state = "delivery"
@@ -38714,6 +38793,23 @@
icon_state = "mars_cave_14"
},
/area/bigredv2/caves_north)
+"tLO" = (
+/obj/structure/machinery/computer/med_data{
+ density = 0;
+ pixel_y = 16
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/bigredv2/outside/medical)
+"tMa" = (
+/obj/structure/surface/table,
+/obj/effect/spawner/random/technology_scanner,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/space_port_lz2)
"tNz" = (
/obj/effect/decal/warning_stripes{
icon_state = "E-corner"
@@ -38729,13 +38825,15 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
-"tPr" = (
-/obj/effect/landmark/lv624/xeno_tunnel,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
+"tQg" = (
+/obj/structure/cargo_container/horizontal/blue/bottom,
+/turf/open/mars,
+/area/bigredv2/outside/space_port_lz2)
+"tQj" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_20"
},
-/area/bigredv2/outside/ne)
+/area/bigredv2/caves_lambda)
"tQo" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/ore/uranium{
@@ -38753,17 +38851,6 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_lambda)
-"tQY" = (
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 8;
- health = 25000
- },
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/caves_north)
"tRd" = (
/obj/structure/prop/invuln/minecart_tracks{
desc = "A pipe.";
@@ -38822,12 +38909,15 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"tVm" = (
-/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
+"tUY" = (
+/obj/structure/machinery/light{
+ dir = 4
},
-/area/bigredv2/caves_lambda)
+/turf/open/floor{
+ dir = 8;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/space_port_lz2)
"tVn" = (
/obj/item/tool/lighter/zippo,
/turf/open/floor,
@@ -38845,12 +38935,24 @@
icon_state = "mars_cave_15"
},
/area/bigredv2/caves/mining)
+"tWf" = (
+/obj/structure/cargo_container/arious/leftmid,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/outside/space_port_lz2)
"tWS" = (
/obj/effect/landmark/item_pool_spawner/survivor_ammo,
/turf/open/mars_cave{
icon_state = "mars_cave_13"
},
/area/bigredv2/caves/mining)
+"tYM" = (
+/obj/effect/landmark/nightmare{
+ insert_tag = "prison_breakout"
+ },
+/turf/closed/wall/solaris/reinforced,
+/area/bigredv2/outside/marshal_office)
"tZU" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -38883,6 +38985,10 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
+"ucl" = (
+/obj/structure/cargo_container/arious/rightmid,
+/turf/open/mars,
+/area/bigredv2/outside/space_port_lz2)
"ucH" = (
/turf/open/mars_cave,
/area/bigredv2/caves_virology)
@@ -38891,15 +38997,6 @@
icon_state = "mars_cave_4"
},
/area/bigredv2/caves_se)
-"uey" = (
-/obj/structure/window/framed/solaris,
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- dir = 4;
- id = "Dormitories";
- name = "\improper Dormitories Shutters"
- },
-/turf/open/floor/plating,
-/area/bigredv2/outside/general_offices)
"ueL" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/window/framed/solaris,
@@ -38907,10 +39004,11 @@
icon_state = "panelscorched"
},
/area/bigredv2/outside/engineering)
-"ueW" = (
-/obj/structure/closet/crate/trashcart,
+"ufc" = (
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
- icon_state = "asteroidplating"
+ dir = 4;
+ icon_state = "asteroidwarning"
},
/area/bigredv2/outside/space_port_lz2)
"ufu" = (
@@ -38928,10 +39026,9 @@
icon_state = "darkgreencorners2"
},
/area/bigredv2/caves/eta/research)
-"ufD" = (
+"ugc" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/surface/table,
-/obj/effect/spawner/random/tool,
+/obj/structure/largecrate/random/barrel,
/turf/open/floor,
/area/bigredv2/outside/cargo)
"ugW" = (
@@ -38956,6 +39053,13 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
+"ujq" = (
+/obj/structure/bed/roller,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "whitegreen"
+ },
+/area/bigredv2/outside/medical)
"ujC" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall,
@@ -38984,6 +39088,16 @@
icon_state = "floor5"
},
/area/bigredv2/oob)
+"ukv" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_15"
+ },
+/area/bigredv2/caves_lambda)
+"ukW" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_20"
+ },
+/area/bigredv2/outside/ne)
"ulk" = (
/obj/structure/prop/invuln/minecart_tracks{
desc = "A heavy duty power cable for high voltage applications";
@@ -39002,6 +39116,20 @@
/obj/item/device/flashlight/on,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"ume" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/machinery/door_control{
+ id = "Medical";
+ name = "Storm Shutters";
+ pixel_y = 32
+ },
+/obj/structure/bed,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/bigredv2/outside/medical)
"umK" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_x = -8;
@@ -39058,26 +39186,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
-"usF" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/barricade/handrail{
- dir = 8
- },
-/turf/open/floor{
- dir = 8;
- icon_state = "asteroidwarning"
- },
-/area/bigredv2/outside/c)
"usG" = (
/turf/open/mars_cave{
icon_state = "mars_cave_18"
},
/area/bigredv2/caves_east)
-"utg" = (
-/turf/open/mars{
- icon_state = "mars_dirt_13"
- },
-/area/bigredv2/outside/sw)
"uuo" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/mars_cave{
@@ -39111,10 +39224,24 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/outside/filtration_plant)
+"uwV" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/wall/solaris/reinforced,
+/area/bigredv2/outside/general_offices)
"uxx" = (
/obj/structure/machinery/door/poddoor/almayer/closed,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"uyd" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
+ },
+/turf/open/floor{
+ dir = 4;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/lz2_cave)
"uyk" = (
/turf/open/mars_cave{
icon_state = "mars_cave_7"
@@ -39143,6 +39270,10 @@
icon_state = "dark"
},
/area/bigredv2/outside/engineering)
+"uBP" = (
+/obj/structure/cargo_container/arious/leftmid,
+/turf/open/mars,
+/area/bigredv2/outside/space_port_lz2)
"uCa" = (
/obj/effect/landmark/corpsespawner/miner,
/turf/open/floor/plating{
@@ -39152,7 +39283,7 @@
/area/bigredv2/caves/mining)
"uCD" = (
/obj/effect/landmark/nightmare{
- insert_tag = "reactor"
+ insert_tag = "reactor_meltdown"
},
/turf/closed/wall/solaris/rock,
/area/bigredv2/caves)
@@ -39163,6 +39294,16 @@
},
/turf/closed/wall/wood,
/area/bigredv2/caves/mining)
+"uDt" = (
+/obj/structure/surface/table,
+/obj/item/bodybag,
+/obj/item/bodybag,
+/obj/item/bodybag,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "whitegreen"
+ },
+/area/bigredv2/outside/medical)
"uDA" = (
/obj/item/stack/sheet/glass,
/turf/open/floor{
@@ -39232,13 +39373,6 @@
icon_state = "darkredcorners2"
},
/area/bigredv2/caves/eta/xenobiology)
-"uHx" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/obj/structure/machinery/portable_atmospherics/hydroponics,
-/turf/open/floor{
- icon_state = "whitegreenfull"
- },
-/area/bigredv2/outside/hydroponics)
"uHE" = (
/obj/item/tool/warning_cone{
pixel_y = 19
@@ -39259,6 +39393,13 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"uIz" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 6;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"uIB" = (
/obj/effect/vehicle_spawner/van/decrepit,
/obj/effect/decal/cleanable/blood/oil,
@@ -39349,10 +39490,6 @@
icon_state = "bcircuitoff"
},
/area/bigredv2/caves/lambda/research)
-"uQY" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/closed/wall/solaris/reinforced,
-/area/bigredv2/outside/general_offices)
"uRE" = (
/obj/effect/landmark/nightmare{
insert_tag = "medbay-passage"
@@ -39364,17 +39501,6 @@
icon_state = "floor1"
},
/area/bigredv2/oob)
-"uSp" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
- pixel_x = -1;
- pixel_y = 1
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/c)
"uSt" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 10
@@ -39388,6 +39514,15 @@
icon_state = "mars_dirt_10"
},
/area/bigredv2/outside/space_port_lz2)
+"uST" = (
+/obj/structure/machinery/door/airlock/almayer/maint/colony{
+ dir = 1;
+ name = "\improper Medical Clinic Power Station"
+ },
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/bigredv2/outside/medical)
"uTO" = (
/obj/structure/machinery/pipedispenser,
/turf/open/floor{
@@ -39405,6 +39540,13 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/filtration_cave_cas)
+"uVi" = (
+/obj/structure/surface/table,
+/obj/item/clothing/under/lightbrown,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/general_offices)
"uVn" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/mars_cave{
@@ -39418,13 +39560,6 @@
icon_state = "dark"
},
/area/bigredv2/caves/eta/living)
-"uXO" = (
-/obj/structure/sink{
- dir = 1;
- pixel_y = -9
- },
-/turf/open/floor,
-/area/bigredv2/outside/hydroponics)
"uXW" = (
/turf/open/mars_cave{
icon_state = "mars_cave_8"
@@ -39508,6 +39643,16 @@
"vex" = (
/turf/closed/wall/wood,
/area/bigredv2/outside/lz2_south_cas)
+"vfo" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 9;
+ pixel_y = -3
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/bigredv2/outside/medical)
"vfI" = (
/turf/open/mars{
icon_state = "mars_dirt_13"
@@ -39520,6 +39665,13 @@
icon_state = "mars_cave_3"
},
/area/bigredv2/caves/mining)
+"vgE" = (
+/obj/structure/fence,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/n)
"vgZ" = (
/obj/structure/platform/shiva,
/obj/structure/platform/shiva{
@@ -39529,6 +39681,12 @@
icon_state = "bcircuitoff"
},
/area/bigredv2/caves/lambda/research)
+"vhw" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/bigredv2/outside/medical)
"vhF" = (
/obj/item/device/flashlight/lantern,
/turf/open/mars_cave{
@@ -39543,11 +39701,6 @@
icon_state = "dark"
},
/area/bigredv2/outside/filtration_plant)
-"vis" = (
-/turf/open/mars{
- icon_state = "mars_dirt_8"
- },
-/area/bigredv2/outside/ne)
"viN" = (
/obj/structure/machinery/door_control{
id = "workshop_br_g";
@@ -39572,6 +39725,25 @@
icon_state = "asteroidfloor"
},
/area/bigredv2/outside/filtration_plant)
+"vkf" = (
+/obj/effect/landmark/crap_item,
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/outside/ne)
+"vkv" = (
+/turf/open/floor{
+ dir = 9;
+ icon_state = "darkyellow2"
+ },
+/area/bigredv2/outside/engineering)
+"vkF" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/surface/table,
+/obj/effect/spawner/random/tool,
+/turf/open/floor,
+/area/bigredv2/outside/cargo)
"vld" = (
/obj/item/tool/warning_cone,
/turf/open/mars_cave{
@@ -39681,6 +39853,13 @@
icon_state = "mars_dirt_14"
},
/area/bigredv2/outside/eta)
+"vsi" = (
+/obj/structure/pipes/vents/pump/on,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/space_port_lz2)
"vti" = (
/obj/structure/closet/crate,
/obj/effect/landmark/objective_landmark/close,
@@ -39710,7 +39889,7 @@
/area/bigredv2/caves/eta/research)
"vvi" = (
/obj/effect/landmark/nightmare{
- insert_tag = "lz1containers"
+ insert_tag = "lz1containers_scramble"
},
/turf/open/floor{
dir = 4;
@@ -39742,13 +39921,17 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"vwP" = (
-/obj/structure/fence,
+"vxv" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 5
+ },
+/obj/structure/surface/table,
+/obj/structure/machinery/light,
/turf/open/floor{
dir = 1;
icon_state = "asteroidfloor"
},
-/area/bigredv2/outside/telecomm/n_cave)
+/area/bigredv2/outside/n)
"vxQ" = (
/obj/item/tool/pickaxe/gold,
/turf/open/floor/plating,
@@ -39757,12 +39940,6 @@
/obj/structure/largecrate/random/barrel/red,
/turf/open/floor/plating,
/area/bigredv2/caves/lambda/xenobiology)
-"vzk" = (
-/obj/structure/cargo_container/arious/right,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/outside/space_port_lz2)
"vzL" = (
/obj/item/weapon/gun/boltaction,
/turf/open/floor/plating{
@@ -39774,23 +39951,17 @@
/obj/structure/window/framed/solaris/reinforced/tinted,
/turf/open/floor/plating,
/area/bigredv2/caves/lambda/xenobiology)
-"vAy" = (
-/obj/structure/platform_decoration,
-/obj/structure/machinery/power/apc{
- dir = 1;
- start_charge = 0
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"vBy" = (
/obj/item/ammo_magazine/shotgun/beanbag/riot,
/turf/open/mars_cave{
icon_state = "mars_cave_17"
},
/area/bigredv2/caves_research)
+"vBI" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_9"
+ },
+/area/bigredv2/outside/n)
"vBT" = (
/obj/structure/surface/table/reinforced,
/obj/structure/transmitter/colony_net/rotary{
@@ -39849,9 +40020,41 @@
icon_state = "dark"
},
/area/bigredv2/caves/eta/living)
+"vGE" = (
+/turf/open/floor{
+ dir = 6;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/space_port_lz2)
+"vGN" = (
+/obj/effect/decal/cleanable/blood{
+ icon_state = "gib6"
+ },
+/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{
+ name = "\improper Medical Clinic"
+ },
+/obj/structure/pipes/standard/simple/hidden/green,
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/bigredv2/outside/medical)
"vHw" = (
/turf/closed/wall/wood,
/area/bigredv2/caves/mining)
+"vHU" = (
+/obj/effect/landmark/hunter_primary,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_2"
+ },
+/area/bigredv2/outside/n)
+"vIQ" = (
+/obj/structure/pipes/standard/simple/hidden/green,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/c)
"vKv" = (
/turf/open/floor{
dir = 8;
@@ -39861,16 +40064,6 @@
"vLd" = (
/turf/open/floor,
/area/bigred/ground/garage_workshop)
-"vMb" = (
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 4;
- health = 25000
- },
-/turf/open/mars_cave{
- icon_state = "mars_cave_7"
- },
-/area/bigredv2/caves_north)
"vMj" = (
/turf/open/mars_cave{
icon_state = "mars_cave_6"
@@ -39927,12 +40120,6 @@
icon_state = "white"
},
/area/bigredv2/outside/marshal_office)
-"vQe" = (
-/obj/structure/machinery/power/apc{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/bigredv2/outside/medical)
"vQZ" = (
/obj/effect/decal/cleanable/blood{
icon_state = "gib6"
@@ -39945,15 +40132,6 @@
/obj/structure/sign/safety/high_voltage,
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/caves/mining)
-"vRJ" = (
-/obj/structure/platform{
- dir = 8
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"vRK" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
@@ -39981,6 +40159,12 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
+"vUy" = (
+/obj/structure/cargo_container/kelland/left,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/outside/space_port_lz2)
"vVl" = (
/obj/structure/machinery/door/airlock/almayer/generic{
name = "\improper Dormitories Toilet"
@@ -39990,20 +40174,6 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
-"vVz" = (
-/obj/structure/machinery/power/geothermal{
- name = "Reactor Turbine";
- power_generation_max = 100000
- },
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/engineering)
-"vVB" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_15"
- },
-/area/bigredv2/caves_lambda)
"vVF" = (
/obj/effect/decal/cleanable/blood/drip{
pixel_x = -5;
@@ -40030,12 +40200,26 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/nw)
+"vXJ" = (
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/caves_lambda)
"vYw" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/mars_cave{
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
+"vZh" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/item/clothing/under/darkred,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/general_offices)
"waJ" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
@@ -40071,6 +40255,18 @@
},
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"wbD" = (
+/obj/effect/landmark/crap_item,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/outside/space_port_lz2)
+"wbY" = (
+/obj/effect/landmark/hunter_secondary,
+/turf/open/mars_cave{
+ icon_state = "mars_cave_2"
+ },
+/area/bigredv2/outside/n)
"wcs" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/mars_cave{
@@ -40164,12 +40360,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/filtration_cave_cas)
-"whv" = (
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/outside/ne)
"whE" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/effect/landmark/objective_landmark/close,
@@ -40229,16 +40419,39 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
+"wmN" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"wni" = (
/turf/open/floor{
icon_state = "darkredcorners2"
},
/area/bigredv2/caves/eta/xenobiology)
+"woe" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
+ },
+/area/bigredv2/outside/space_port_lz2)
"wog" = (
/turf/open/mars_cave{
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_sw)
+"woK" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/turf/open/floor{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/bigredv2/outside/marshal_office)
"wpf" = (
/turf/open/mars_cave{
icon_state = "mars_cave_19"
@@ -40250,17 +40463,6 @@
icon_state = "delivery"
},
/area/bigredv2/outside/engineering)
-"wpP" = (
-/obj/structure/platform,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/telecomm/n_cave)
-"wpT" = (
-/obj/effect/landmark/lv624/xeno_tunnel,
-/turf/open/mars,
-/area/bigredv2/outside/space_port_lz2)
"wry" = (
/obj/structure/surface/table,
/obj/structure/transmitter/colony_net/rotary{
@@ -40285,6 +40487,15 @@
/obj/structure/plasticflaps,
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
+"wss" = (
+/obj/item/tool/warning_cone{
+ pixel_y = 20
+ },
+/turf/open/floor{
+ dir = 8;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/telecomm/n_cave)
"wtj" = (
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
@@ -40374,13 +40585,12 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
-"wzc" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/machinery/light{
- dir = 1
+"wyP" = (
+/obj/structure/cargo_container/kelland/right,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
},
-/turf/open/floor,
-/area/bigredv2/outside/general_offices)
+/area/bigredv2/outside/space_port_lz2)
"wBi" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -40395,6 +40605,16 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves/mining)
+"wBu" = (
+/obj/structure/barricade/handrail{
+ dir = 1;
+ pixel_y = 2
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/c)
"wCo" = (
/turf/open/mars_cave{
icon_state = "mars_dirt_4"
@@ -40416,19 +40636,6 @@
icon_state = "mars_cave_17"
},
/area/bigredv2/caves/mining)
-"wDK" = (
-/obj/structure/platform_decoration{
- dir = 1
- },
-/obj/structure/prop/server_equipment/yutani_server{
- density = 0;
- pixel_y = 16
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"wFL" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/safety/hazard{
@@ -40479,15 +40686,6 @@
icon_state = "asteroidwarning"
},
/area/bigredv2/outside/se)
-"wGP" = (
-/obj/structure/morgue{
- dir = 1
- },
-/turf/open/floor{
- dir = 10;
- icon_state = "whiteblue"
- },
-/area/bigredv2/outside/medical)
"wGV" = (
/obj/item/tool/wrench,
/turf/open/floor{
@@ -40530,15 +40728,6 @@
icon_state = "mars_cave_17"
},
/area/bigredv2/outside/lz1_north_cas)
-"wLg" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{
- dir = 1;
- name = "\improper Dormitories Restroom"
- },
-/turf/open/floor{
- icon_state = "delivery"
- },
-/area/bigredv2/outside/dorms)
"wLD" = (
/obj/structure/largecrate/random/barrel/yellow,
/turf/open/floor/plating{
@@ -40621,28 +40810,11 @@
icon_state = "mars_cave_16"
},
/area/bigredv2/caves/mining)
-"wQu" = (
-/obj/structure/surface/table/reinforced,
-/obj/item/book/manual/research_and_development,
-/turf/open/floor{
- dir = 4;
- icon_state = "whitepurple"
- },
-/area/bigredv2/caves/lambda/xenobiology)
"wQC" = (
/turf/open/mars_cave{
icon_state = "mars_cave_7"
},
/area/bigredv2/caves_lambda)
-"wQD" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor{
- dir = 4;
- icon_state = "redcorner"
- },
-/area/bigredv2/outside/office_complex)
"wRH" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/device/flashlight,
@@ -40698,6 +40870,11 @@
icon_state = "mars_cave_17"
},
/area/bigredv2/caves/mining)
+"wWE" = (
+/turf/open/mars_cave{
+ icon_state = "mars_cave_19"
+ },
+/area/bigredv2/outside/n)
"wWK" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/mars_cave{
@@ -40717,6 +40894,11 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/outside/lz1_north_cas)
+"wXv" = (
+/turf/open/mars{
+ icon_state = "mars_dirt_14"
+ },
+/area/bigredv2/outside/space_port_lz2)
"wXz" = (
/turf/open/floor/plating,
/area/bigredv2/caves/eta/research)
@@ -40738,19 +40920,24 @@
icon_state = "darkyellow2"
},
/area/bigredv2/outside/engineering)
+"wZv" = (
+/obj/structure/machinery/light,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/c)
"wZC" = (
/turf/open/mars{
icon_state = "mars_dirt_11"
},
/area/bigredv2/outside/eta)
-"xah" = (
-/obj/structure/largecrate/supply/supplies,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
+"wZP" = (
+/obj/structure/cargo_container/arious/rightmid,
+/turf/open/mars_cave{
+ icon_state = "mars_dirt_4"
},
-/area/bigredv2/outside/n)
+/area/bigredv2/outside/space_port_lz2)
"xaH" = (
/turf/closed/wall/wood,
/area/bigredv2/caves_sw)
@@ -40780,6 +40967,17 @@
icon_state = "mars_dirt_7"
},
/area/bigredv2/caves/mining)
+"xcz" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ layer = 2.5;
+ pixel_x = -1
+ },
+/turf/open/floor/plating{
+ dir = 4;
+ icon_state = "warnplate"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
"xej" = (
/obj/effect/decal/warning_stripes{
icon_state = "S";
@@ -40795,11 +40993,6 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/outside/filtration_plant)
-"xeV" = (
-/obj/structure/surface/table,
-/obj/effect/spawner/random/bomb_supply,
-/turf/open/floor,
-/area/bigredv2/outside/cargo)
"xfx" = (
/obj/structure/prop/invuln/minecart_tracks{
desc = "A heavy duty power cable for high voltage applications";
@@ -40845,6 +41038,12 @@
icon_state = "mars_cave_3"
},
/area/bigredv2/caves/mining)
+"xgm" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/ne)
"xgw" = (
/turf/open/mars_cave{
icon_state = "mars_cave_9"
@@ -40874,6 +41073,10 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"xjU" = (
+/obj/structure/cargo_container/arious/right,
+/turf/open/mars,
+/area/bigredv2/outside/space_port_lz2)
"xkq" = (
/turf/open/mars_cave{
icon_state = "mars_cave_3"
@@ -40955,15 +41158,6 @@
},
/turf/open/floor/plating,
/area/bigredv2/caves/mining)
-"xrN" = (
-/obj/structure/machinery/washing_machine,
-/obj/structure/machinery/washing_machine{
- pixel_y = 13
- },
-/turf/open/floor{
- icon_state = "freezerfloor"
- },
-/area/bigredv2/outside/general_offices)
"xrO" = (
/obj/structure/barricade/wooden{
desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
@@ -40979,6 +41173,17 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
+"xsf" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 9
+ },
+/obj/structure/bed/chair/comfy{
+ dir = 4
+ },
+/turf/open/floor{
+ icon_state = "wood"
+ },
+/area/bigredv2/outside/library)
"xte" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/light,
@@ -41061,15 +41266,6 @@
icon_state = "vault"
},
/area/bigredv2/outside/marshal_office)
-"xyw" = (
-/obj/structure/platform{
- dir = 1
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidfloor"
- },
-/area/bigredv2/outside/telecomm/n_cave)
"xyz" = (
/obj/structure/girder,
/obj/effect/decal/cleanable/dirt,
@@ -41078,6 +41274,12 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"xzb" = (
+/obj/structure/surface/rack,
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/general_offices)
"xzi" = (
/obj/effect/decal/remains/xeno,
/turf/open/floor/plating{
@@ -41152,22 +41354,6 @@
"xFZ" = (
/turf/open/mars_cave,
/area/bigredv2/caves_lambda)
-"xGT" = (
-/obj/structure/closet/firecloset/full,
-/turf/open/floor{
- icon_state = "asteroidplating"
- },
-/area/bigredv2/outside/space_port_lz2)
-"xHQ" = (
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 8;
- health = 25000
- },
-/turf/open/mars_cave{
- icon_state = "mars_cave_15"
- },
-/area/bigredv2/caves_north)
"xIo" = (
/obj/structure/window/framed/solaris/reinforced/hull,
/turf/open/floor/plating{
@@ -41284,6 +41470,14 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor,
/area/bigredv2/outside/cargo)
+"xQd" = (
+/obj/structure/largecrate/random/barrel/true_random,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/outside/n)
"xRl" = (
/obj/item/weapon/gun/pistol/b92fs{
pixel_x = 13;
@@ -41293,6 +41487,12 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
+"xRn" = (
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/caves_north)
"xSa" = (
/obj/structure/prop/dam/crane,
/turf/open/mars_cave{
@@ -41316,6 +41516,16 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/caves/mining)
+"xWl" = (
+/obj/structure/machinery/door/poddoor/almayer/closed{
+ dir = 4;
+ id = "lambda";
+ name = "Lambda Lockdown"
+ },
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/bigredv2/caves_north)
"xWm" = (
/turf/open/floor{
icon_state = "whitepurplefull"
@@ -41354,12 +41564,16 @@
icon_state = "mars_cave_16"
},
/area/bigredv2/caves/mining)
-"xWI" = (
-/obj/effect/landmark/crap_item,
-/turf/open/mars_cave{
- icon_state = "mars_cave_16"
+"xWR" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
},
-/area/bigredv2/outside/n)
+/turf/open/floor/plating{
+ dir = 8;
+ icon_state = "warnplate"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
"xWV" = (
/obj/structure/machinery/power/apc{
dir = 1
@@ -41397,6 +41611,11 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_sw)
+"xXT" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/vending/cigarette/colony,
+/turf/open/floor,
+/area/bigredv2/outside/general_offices)
"xYc" = (
/obj/structure/prop/invuln/minecart_tracks{
desc = "A heavy duty power cable for high voltage applications";
@@ -41427,6 +41646,12 @@
icon_state = "mars_dirt_7"
},
/area/bigredv2/caves/mining)
+"yao" = (
+/obj/structure/machinery/vending/coffee,
+/turf/open/floor{
+ icon_state = "yellowfull"
+ },
+/area/bigredv2/outside/hydroponics)
"yar" = (
/turf/open/floor{
dir = 4;
@@ -41487,9 +41712,18 @@
icon_state = "mars_dirt_4"
},
/area/bigredv2/outside/eta)
+"yej" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 10
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/outside/n)
"yfe" = (
/obj/effect/landmark/nightmare{
- insert_tag = "eta"
+ insert_tag = "eta_carp"
},
/turf/closed/wall/solaris/reinforced,
/area/bigredv2/caves/eta/xenobiology)
@@ -41522,6 +41756,16 @@
icon_state = "platingdmg3"
},
/area/bigredv2/caves/mining)
+"ygN" = (
+/obj/structure/machinery/washing_machine,
+/obj/item/clothing/under/brown,
+/obj/structure/machinery/washing_machine{
+ pixel_y = 13
+ },
+/turf/open/floor{
+ icon_state = "freezerfloor"
+ },
+/area/bigredv2/outside/general_offices)
"ygP" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -46067,11 +46311,11 @@ aao
aao
aao
ayf
-wpT
+bcW
cVY
ayf
cVY
-bhD
+uBP
ayf
cVY
cVY
@@ -46288,10 +46532,10 @@ cVY
cVY
cVY
cVY
-bio
-bkk
-brG
-jvt
+ucl
+gQj
+dCU
+tQg
cVY
cVY
bjN
@@ -46505,7 +46749,7 @@ ayf
cVY
cVY
cVY
-bjP
+xjU
cVY
cVY
cVY
@@ -46718,10 +46962,10 @@ aao
aao
aao
ayf
-bee
+qsd
cVY
cVY
-bhe
+nbu
cVY
cVY
cVY
@@ -46935,7 +47179,7 @@ aao
aao
aao
ayf
-bew
+mkt
cVY
cVY
hpg
@@ -46954,7 +47198,7 @@ ayf
bsa
ayf
ayf
-qap
+qcQ
tVp
fFO
cVY
@@ -47143,8 +47387,8 @@ aXw
aXw
aZl
aoD
-pIh
-pIh
+bRV
+bRV
aoD
aoD
aoD
@@ -47181,7 +47425,7 @@ vKv
vKv
vKv
vKv
-btv
+jlS
tVp
ayf
ayf
@@ -47342,7 +47586,7 @@ aIb
lQU
aFt
aFu
-idO
+qVw
aoD
aNg
aNc
@@ -47398,7 +47642,7 @@ eWd
eWd
eWd
eWd
-brd
+dAX
tVp
tVp
ayf
@@ -47615,8 +47859,8 @@ bjn
bid
bsa
eWd
-brd
-kED
+dAX
+vUy
tVp
ayf
aao
@@ -47832,8 +48076,8 @@ bje
bie
bsb
eWd
-brd
-sBF
+dAX
+wyP
tVp
ayf
aao
@@ -48020,7 +48264,7 @@ aoD
aao
aao
ayf
-beS
+tpY
cVY
uSC
tVp
@@ -48049,7 +48293,7 @@ bie
bie
bsc
eWd
-brd
+dAX
tVp
tVp
ayf
@@ -48266,7 +48510,7 @@ bie
bie
bsd
eWd
-brd
+dAX
tVp
tVp
ayf
@@ -48456,7 +48700,7 @@ aao
ayf
ayf
cVY
-bgq
+wXv
tVp
bgX
bhx
@@ -48483,7 +48727,7 @@ bie
bie
bse
eWd
-brd
+dAX
tVp
tVp
ayf
@@ -48700,7 +48944,7 @@ bie
bie
bsb
eWd
-brd
+dAX
tVp
tVp
ayf
@@ -48917,7 +49161,7 @@ bie
bie
bsc
eWd
-brd
+dAX
tVp
tVp
ayf
@@ -49102,7 +49346,7 @@ aSB
aoD
aSB
aSB
-azR
+rZn
aSB
tVp
mMf
@@ -49134,7 +49378,7 @@ bie
bie
bsd
eWd
-brd
+dAX
tVp
tVp
ayf
@@ -49351,7 +49595,7 @@ bie
bie
bse
eWd
-brd
+dAX
tVp
tVp
ayf
@@ -49538,8 +49782,8 @@ aWk
aVI
aWk
aWk
-bcp
-bcp
+iHe
+iHe
vKv
vKv
vKv
@@ -49568,7 +49812,7 @@ bie
bjo
bsb
eWd
-brd
+dAX
tVp
tVp
ayf
@@ -49718,7 +49962,7 @@ axv
anp
anp
anp
-anp
+cGv
ajx
ajY
akK
@@ -49756,7 +50000,7 @@ bdZ
bdZ
bdZ
bmN
-bfW
+ufc
bmN
bmN
bmN
@@ -49785,7 +50029,7 @@ bie
bie
bsc
eWd
-brd
+dAX
tVp
tVp
ayf
@@ -49972,7 +50216,7 @@ bdZ
bdZ
bdZ
beu
-bcr
+woe
tVp
tVp
tVp
@@ -50002,9 +50246,9 @@ bje
bie
bsd
eWd
-brd
+dAX
tVp
-mJH
+tWf
ayf
aao
aao
@@ -50144,9 +50388,9 @@ ahR
aln
ajy
bFw
-bjj
-bjj
-jtX
+xWR
+xWR
+iTN
axZ
avT
azo
@@ -50189,9 +50433,9 @@ bdZ
aUQ
bdZ
bev
-bcr
+woe
tVp
-bfT
+wbD
tVp
tVp
bgX
@@ -50219,9 +50463,9 @@ brb
bpu
bsa
eWd
-brd
+dAX
tVp
-dwg
+wZP
ayf
aao
aao
@@ -50361,9 +50605,9 @@ akK
aln
ajy
bFw
-kRo
-joi
-bjX
+hyC
+iNE
+pPh
axZ
avT
avT
@@ -50396,7 +50640,7 @@ asj
aoH
aoH
asK
-aXJ
+jUd
asK
beQ
aYF
@@ -50406,7 +50650,7 @@ bdZ
aUQ
bdZ
bev
-bcr
+woe
tVp
tVp
tVp
@@ -50436,9 +50680,9 @@ eWd
eWd
eWd
eWd
-brd
+dAX
tVp
-vzk
+shK
ayf
aao
aao
@@ -50578,9 +50822,9 @@ ahR
aln
ajy
bFw
-kRo
-kRo
-bjX
+hyC
+hyC
+pPh
axZ
avT
avT
@@ -50629,7 +50873,7 @@ aao
tVp
tVp
bgX
-boD
+sbm
kHK
kHK
bmN
@@ -50653,7 +50897,7 @@ eWd
bmN
bmN
bmN
-tJH
+vGE
tVp
ayf
ayf
@@ -50795,9 +51039,9 @@ atm
aln
ajy
bFw
-rhx
-bjv
-bqg
+ccI
+xcz
+dws
aya
avT
azo
@@ -50846,29 +51090,29 @@ aao
aao
tVp
bgX
-boD
+sbm
eWd
-brd
-oEJ
-xGT
-svp
+dAX
+kOv
+qNH
+mDt
bgX
eWd
-qlT
+cpQ
ayf
ayf
bsa
ayf
ayf
-qap
+qcQ
tVp
tVp
tVp
bgX
eWd
-brd
+dAX
tVp
-qap
+qcQ
tVp
tVp
tVp
@@ -51059,7 +51303,7 @@ bdZ
bev
tVp
tVp
-bfU
+jDo
tVp
tVp
bgX
@@ -51071,7 +51315,7 @@ vKv
vKv
eWd
eWd
-sTf
+qNU
ayf
ayf
ayf
@@ -51079,17 +51323,17 @@ ayf
ayf
tVp
tVp
-qap
+qcQ
tVp
bgX
eWd
-brd
+dAX
tVp
tVp
tVp
tVp
tVp
-qap
+qcQ
aao
aao
aao
@@ -51288,26 +51532,26 @@ bmN
bmN
eWd
eWd
-aLn
+gpA
ayf
aFc
aFc
aFc
ayf
-jfn
-jfn
+quX
+quX
axX
tVp
bgX
eWd
-brd
+dAX
tVp
tVp
tVp
tVp
tVp
tVp
-oip
+fsY
lzI
aao
aao
@@ -51496,22 +51740,22 @@ tVp
tVp
tVp
tVp
-bhc
-bpv
-cwk
-brd
-svp
-ueW
-oEJ
+mAY
+vsi
+dIH
+dAX
+mDt
+jrN
+kOv
bgX
eWd
-blb
-bjQ
+lTV
+gWD
aFc
aFc
bsI
azb
-rVx
+vkv
kVT
azb
vKv
@@ -51702,28 +51946,28 @@ aXH
asK
bdZ
aWk
-beR
+swk
aUQ
aUQ
aUQ
aUQ
bdZ
-bcs
+tUY
vKv
vKv
vKv
vKv
-bhd
+dVp
kHK
-bik
+crl
kHK
vKv
vKv
vKv
eWd
eWd
-pGS
-bjQ
+okt
+gWD
aFc
aFc
bsI
@@ -51923,7 +52167,7 @@ asK
aUQ
bdZ
bdZ
-beb
+iCu
bdZ
asK
eWd
@@ -51932,15 +52176,15 @@ eWd
asK
eWd
eWd
-bik
+crl
kHK
-bjt
-bjt
-bjQ
+tMa
+tMa
+gWD
eWd
eWd
-blc
-bjQ
+ice
+gWD
aFc
aFc
bsI
@@ -52159,8 +52403,8 @@ bkz
asK
lMt
aFc
-crO
-mWJ
+ftY
+kcH
azb
hhK
sCt
@@ -52364,19 +52608,19 @@ aZu
aZu
aZu
asK
-kTC
+kjH
beT
baz
aZu
bbM
-gQP
+rYS
asK
aZw
aZu
bld
asK
-crO
-mWJ
+ftY
+kcH
bme
azb
hhK
@@ -52570,22 +52814,22 @@ aXH
asK
baz
aZu
-aEV
+cRb
aZu
aZu
aZu
aZu
aZu
-bdf
+hah
bfy
bfV
-bgC
+bgq
atA
-xeV
-bqe
-heU
-bqe
-bqe
+gMC
+bhb
+bik
+bhb
+bhb
aZu
asK
aZu
@@ -52799,10 +53043,10 @@ aZO
aZu
atA
bkn
-bqe
+bhb
bfB
bgD
-bjh
+eYK
bbe
bjR
bbe
@@ -52825,7 +53069,7 @@ rzb
bsK
axX
bme
-utg
+nra
aao
glB
xpb
@@ -53011,16 +53255,16 @@ bdK
aZM
aZu
beU
-bfA
+hVP
bgE
baF
asK
aZu
-bqe
-heU
-bqe
-tgk
-aDo
+bhb
+bik
+bhb
+bhD
+ugc
atA
bkl
aZO
@@ -53041,7 +53285,7 @@ tTI
rzb
bsL
azb
-utg
+nra
bpx
aao
euF
@@ -53236,8 +53480,8 @@ bbe
bhE
bbR
biK
-ufD
-mhx
+vkF
+fVt
atA
bkl
aZu
@@ -53447,7 +53691,7 @@ aZu
beU
bfC
bfX
-bhb
+bhe
asK
asK
asK
@@ -53460,8 +53704,8 @@ aLl
aZu
blh
asK
-crO
-jmY
+ftY
+fbf
bme
axX
azB
@@ -54092,7 +54336,7 @@ bbg
auk
asK
asK
-bax
+bee
aZu
bex
bbe
@@ -54309,7 +54553,7 @@ aZO
baz
bcy
asK
-bax
+bee
aZu
baz
beU
@@ -54518,7 +54762,7 @@ aWB
aoH
aXH
aXH
-bfg
+mOc
aZu
aZO
aZO
@@ -54528,7 +54772,7 @@ bcz
asK
bdM
aZu
-bey
+eRe
aZu
aZu
aZu
@@ -55203,7 +55447,7 @@ bnr
bok
bnr
bpi
-kVT
+mfQ
ayr
nPz
nVq
@@ -55318,8 +55562,8 @@ aao
aao
aao
aao
-lVm
-dlr
+dQR
+dXK
asc
acp
adi
@@ -55344,13 +55588,13 @@ ahP
aog
aoR
alu
-aqv
+atq
aqw
aqw
aqw
-atp
+hbx
amj
-auJ
+ujq
avw
awb
awP
@@ -55534,8 +55778,8 @@ aao
aao
aao
aao
-dlr
-dtX
+dXK
+hQO
aqL
asc
acp
@@ -55561,13 +55805,13 @@ ahP
ahP
ajz
alD
-aqv
+atq
aqw
arR
arR
-atq
+ark
amj
-rZi
+kXV
aqw
awc
awQ
@@ -55750,9 +55994,9 @@ aao
aao
aao
aao
-acc
+kfx
aqL
-ann
+nnz
aqL
asc
acp
@@ -55778,11 +56022,11 @@ ahP
ahP
ajz
alD
-aqv
+atq
aqw
arR
asC
-atq
+ark
amj
auK
aqw
@@ -55818,7 +56062,7 @@ aOB
aVO
aoH
asK
-aXJ
+jUd
asK
asK
aZu
@@ -55966,8 +56210,8 @@ aao
aao
aao
aao
-lVm
-acc
+dQR
+kfx
aqL
aqL
aqL
@@ -56182,9 +56426,9 @@ pXu
aao
aao
aao
-lVm
-lVm
-dtX
+dQR
+dQR
+hQO
aqL
agq
ahe
@@ -56397,9 +56641,9 @@ pXu
pXu
pXu
rgp
-lVm
-dlr
-lVm
+dQR
+dXK
+dQR
agq
ahe
ahe
@@ -56470,7 +56714,7 @@ aVP
aoH
aHF
aHF
-aYf
+wZv
asK
aZw
aZu
@@ -56503,7 +56747,7 @@ bmV
ayr
bnV
tTI
-cKu
+eYy
ayZ
bpF
slG
@@ -56613,10 +56857,10 @@ wXg
wKx
pXu
pXu
-awx
-dtX
+tnG
+hQO
aqL
-avK
+lOL
asc
acp
acp
@@ -56645,12 +56889,12 @@ ana
acp
acp
acp
-qKx
-aqy
-ark
-arV
-ark
-ark
+tYM
+ume
+aqv
+bOZ
+aqv
+aqv
amj
auL
avx
@@ -56720,7 +56964,7 @@ ayr
ayr
xAX
tTI
-cKu
+eYy
ayZ
nPz
tTI
@@ -56830,15 +57074,15 @@ wXg
wKx
pXu
pXu
-axm
+hgO
aqL
-ann
+nnz
aqL
asc
acp
acy
-acE
-acE
+cGc
+cGc
acC
acU
acC
@@ -57045,10 +57289,10 @@ aao
wXg
wXg
wKx
-lVm
-acc
-azF
-buP
+dQR
+kfx
+idn
+gdK
aqL
aqL
asc
@@ -57073,7 +57317,7 @@ aiZ
afS
afS
afS
-aAd
+alp
ame
ahj
anx
@@ -57260,14 +57504,14 @@ aao
aao
aao
aao
-ajD
-lVm
-lVm
-lVm
-azF
-ann
+nlB
+dQR
+dQR
+dQR
+idn
+nnz
aqL
-aac
+wWE
asc
acr
acz
@@ -57289,7 +57533,7 @@ acp
aja
ajC
ake
-alp
+rat
acr
ame
ahj
@@ -57297,7 +57541,7 @@ aer
afS
aoT
acp
-arn
+tLO
arm
aip
asE
@@ -57477,14 +57721,14 @@ aao
aao
aao
aao
-lVm
-lVm
-lVm
-lVm
-brc
+dQR
+dQR
+dQR
+dQR
+hFV
aqL
aqL
-heI
+lbh
asc
acs
acz
@@ -57514,7 +57758,7 @@ acp
acp
acp
acp
-aqB
+efK
arl
aiY
asF
@@ -57604,9 +57848,9 @@ duA
ykR
iaC
pWs
-vVz
-vVz
-vVz
+lCt
+lCt
+lCt
jxA
duA
ykR
@@ -57694,14 +57938,14 @@ aao
aao
aao
aao
-lVm
-lVm
-lVm
-lVm
-awx
-ajD
-ajD
-lVm
+dQR
+dQR
+dQR
+dQR
+tnG
+nlB
+nlB
+dQR
asc
acq
acz
@@ -57720,10 +57964,10 @@ agz
ahm
ahj
acp
-aZp
-bhH
-akf
-bhN
+jWR
+cGi
+kCR
+aWj
biA
ame
ahj
@@ -57913,12 +58157,12 @@ aao
aao
aao
aao
-lVm
-lVm
-awx
-lVm
-lVm
-lVm
+dQR
+dQR
+tnG
+dQR
+dQR
+dQR
asc
acq
acz
@@ -57937,10 +58181,10 @@ agz
ahm
aie
acp
-aZq
+eFr
aiX
-akg
-akN
+qQl
+iis
afS
ame
ahj
@@ -57948,11 +58192,11 @@ anx
afS
akM
acp
-aEB
-asG
-asG
-asG
-ats
+eKm
+rbV
+rbV
+rbV
+vxv
alu
auN
aqw
@@ -57988,7 +58232,7 @@ apC
apC
apC
apJ
-duI
+lrs
apJ
apC
apC
@@ -58133,9 +58377,9 @@ aao
aao
aao
aao
-lVm
-lVm
-acc
+dQR
+dQR
+kfx
asc
acp
acz
@@ -58154,10 +58398,10 @@ agz
ahn
ahj
acp
-aZq
+eFr
aiX
aiX
-akN
+iis
afS
amg
ahj
@@ -58166,11 +58410,11 @@ afS
aoT
acp
aqM
-buP
-buP
+gdK
+gdK
aqL
-att
-atW
+yej
+vGN
atr
atr
arU
@@ -58201,7 +58445,7 @@ aQV
aRT
aof
aTV
-mGS
+mIc
tap
aof
aNK
@@ -58350,9 +58594,9 @@ aao
aao
aao
aao
-lVm
-abU
-acc
+dQR
+elh
+kfx
asc
acq
acz
@@ -58371,10 +58615,10 @@ agz
ahn
aic
acp
-aZP
-bhM
-bhM
-akO
+jTa
+raU
+raU
+woK
afS
amg
aic
@@ -58383,7 +58627,7 @@ acp
acp
acp
aqM
-buP
+gdK
aqL
aqL
asc
@@ -58472,9 +58716,9 @@ duA
ykR
iaC
pWs
-vVz
-vVz
-vVz
+lCt
+lCt
+lCt
jxA
duA
ykR
@@ -58567,14 +58811,14 @@ aao
aao
aao
aao
-abY
-lVm
-acc
+tjX
+dQR
+kfx
asc
acp
acy
-acE
-acE
+cGc
+cGc
acC
acC
adp
@@ -58783,10 +59027,10 @@ aao
aao
aao
aao
-buP
-avK
-lVm
-mWI
+gdK
+lOL
+dQR
+iXx
asc
acp
acp
@@ -58822,7 +59066,7 @@ aqL
aqL
asc
alD
-aqF
+uDt
arR
arR
aqw
@@ -59002,8 +59246,8 @@ aao
aao
aqL
aqL
-heI
-lVm
+lbh
+dQR
ags
alF
alF
@@ -59039,7 +59283,7 @@ aqL
aqL
asc
alD
-auO
+rfX
avy
aqw
avy
@@ -59219,9 +59463,9 @@ aao
aao
aqL
aqL
-heI
-lVm
-acc
+lbh
+dQR
+kfx
aqL
arp
acP
@@ -59254,12 +59498,12 @@ aqM
aqL
aqL
aqL
-atu
+hGv
alu
alu
-aYe
-awj
-aYe
+pzC
+fni
+pzC
alu
alu
ayR
@@ -59308,9 +59552,9 @@ aBR
tHl
bhi
dbi
-lSL
-lSL
-qyq
+oWk
+oWk
+fTg
aHD
aIn
bjD
@@ -59436,9 +59680,9 @@ aao
aqL
aqL
aqL
-heI
-lVm
-tlj
+lbh
+dQR
+bGC
aqL
arp
acP
@@ -59471,13 +59715,13 @@ aqM
aqL
aqL
aqL
-aqE
+cBq
alu
-atv
+pIl
avz
aqw
auP
-wGP
+qoQ
alu
ayS
azv
@@ -59525,9 +59769,9 @@ aBR
bhi
bhi
dbi
-nHb
-lAK
-bYp
+qby
+stZ
+cHz
aHD
eRI
ofX
@@ -59650,15 +59894,15 @@ aao
aao
aao
aqL
-ann
+nnz
aqL
-abL
-lVm
-dlr
-dtX
+rVE
+dQR
+dXK
+hQO
aqL
arp
-dwe
+ldD
acP
acP
acP
@@ -59690,11 +59934,11 @@ aqL
aqL
asc
alu
-auR
+oji
avA
aqw
awW
-axD
+tbS
alu
ayT
awi
@@ -59742,9 +59986,9 @@ aBR
bhi
bhi
dbi
-nHb
-nHb
-twS
+qby
+qby
+kWW
aHF
mSn
bjE
@@ -59868,16 +60112,16 @@ aao
aao
aqL
aqL
-aac
-lVm
-igi
-oOt
-oOt
-eIB
-kos
-oOt
-oOt
-stJ
+wWE
+dQR
+eWv
+fPe
+fPe
+wss
+akP
+fPe
+fPe
+aus
acP
acP
acP
@@ -59907,11 +60151,11 @@ aqL
aqL
asc
alu
-auR
+oji
avA
aqw
awW
-axD
+tbS
alu
ayU
aqw
@@ -59959,9 +60203,9 @@ aBR
eTj
bhi
dbi
-mdU
-lRu
-uSp
+pTo
+uyd
+gMj
aHF
aMg
bjF
@@ -60083,22 +60327,22 @@ aao
aao
aao
aao
-aac
-ajD
-lVm
-lVm
-isr
+wWE
+nlB
+dQR
+dQR
+nZB
pRP
-vwP
-pEp
-iXL
-qez
+iRf
+akh
+mhV
+oMf
pRP
-gKG
+aWy
acP
acP
acP
-chy
+jeO
asc
acp
afn
@@ -60124,11 +60368,11 @@ aqL
aqL
asc
alu
-auS
+gts
avA
aqw
awW
-axD
+tbS
alu
alu
azH
@@ -60300,22 +60544,22 @@ aao
aao
aao
aao
-abY
-lVm
-lVm
-dlr
-iRf
+tjX
+dQR
+dQR
+dXK
+aaB
pRP
-vAy
-qNT
-qNT
-saH
-qez
-gKG
+sWh
+hFv
+hFv
+kAs
+oMf
+aWy
acP
acP
acP
-eVZ
+bJQ
aao
acp
afo
@@ -60341,13 +60585,13 @@ aqL
aqL
asc
alu
-auR
+oji
avA
-laX
+vfo
awW
-axD
+tbS
alu
-vQe
+kRy
ayV
ayV
alu
@@ -60517,21 +60761,21 @@ aao
aao
aao
aao
-acG
-lVm
-acc
-dNH
+qMS
+dQR
+kfx
+fsT
+aaB
+oMf
+dkY
+qDZ
+hJH
+lqp
iRf
-qez
-wpP
-tGJ
-rmk
-jWa
-vwP
-gKG
+aWy
acP
acP
-chy
+jeO
aqL
aao
acp
@@ -60556,15 +60800,15 @@ aqM
aqL
aqL
asa
-atu
+hGv
alu
-auT
+jRH
avB
-awm
+pOt
awX
-axE
-ccU
-ayW
+gej
+uST
+vhw
ayV
ayV
alu
@@ -60735,19 +60979,19 @@ aao
aao
aao
aao
-abY
-acc
+tjX
+kfx
aqL
-isr
-qez
-wpP
-tGJ
-tGJ
-xyw
-vwP
-gKG
+nZB
+oMf
+dkY
+qDZ
+qDZ
+cnG
+iRf
+aWy
acP
-chy
+jeO
aqL
aao
aao
@@ -60952,17 +61196,17 @@ aao
aao
aao
aao
-abY
-acc
+tjX
+kfx
aqL
-isr
+nZB
pRP
-wDK
-vRJ
-vRJ
-kpd
-qez
-oSN
+iXs
+scK
+scK
+oUY
+oMf
+wmN
acP
agq
aao
@@ -60986,7 +61230,7 @@ anz
aoj
aoj
apH
-aqG
+kVR
aqL
arp
acP
@@ -61169,17 +61413,17 @@ aao
aao
aao
aao
-acG
-acG
-fbF
-iRf
+qMS
+qMS
+vBI
+aaB
pRP
-qez
-vwP
-qez
-qez
+oMf
+iRf
+oMf
+oMf
pRP
-oSN
+wmN
acP
asc
acp
@@ -61387,16 +61631,16 @@ aao
aao
aao
aao
-abY
-acc
-iZh
-szg
-szg
-kdd
-kdd
-kdd
-szg
-cfS
+tjX
+kfx
+cgO
+pJt
+pJt
+gPc
+gPc
+gPc
+pJt
+uIz
acP
asc
acp
@@ -61605,10 +61849,10 @@ aao
aao
aao
aao
-lVm
-ajD
-ajD
-fbF
+dQR
+nlB
+nlB
+vBI
arp
acP
acP
@@ -61823,9 +62067,9 @@ aao
aao
aao
aao
-lVm
-lVm
-acc
+dQR
+dQR
+kfx
arp
acP
acP
@@ -62038,11 +62282,11 @@ aao
aao
aao
aao
-abY
-lVm
-lVm
-lVm
-dtX
+tjX
+dQR
+dQR
+dQR
+hQO
arp
acP
acP
@@ -62255,13 +62499,13 @@ aao
aao
aao
aao
-abY
-abN
-lVm
-dtX
+tjX
+vHU
+dQR
+hQO
aqL
aqL
-dzs
+lUa
acP
acP
acP
@@ -62276,7 +62520,7 @@ acp
acp
acp
acp
-aiN
+akr
adS
ajL
akq
@@ -62472,9 +62716,9 @@ aao
aao
aao
aao
-acG
-lVm
-acc
+qMS
+dQR
+kfx
aqL
aqL
aqL
@@ -62496,7 +62740,7 @@ adS
ahk
adk
ajL
-akr
+aiN
acr
adS
ajL
@@ -62690,10 +62934,10 @@ aao
aao
aao
aao
-abY
-acc
+tjX
+kfx
aqL
-ann
+nnz
aqL
arp
acP
@@ -62781,12 +63025,12 @@ aIn
aKt
aMc
aHF
-bhS
+tHB
aVp
aVp
aVp
aVp
-bke
+vIQ
bku
bmF
wtC
@@ -62907,13 +63151,13 @@ aao
aao
aao
aao
-abY
-qmY
-fbF
+tjX
+ciG
+vBI
aqL
aqL
aqL
-dzs
+lUa
acP
acP
acP
@@ -62932,12 +63176,12 @@ aje
ajM
adS
acr
-aly
-amv
+cLq
+lym
alx
adS
-aly
-aly
+cLq
+cLq
acr
aqK
arq
@@ -62958,7 +63202,7 @@ asJ
aua
asJ
aDQ
-aEL
+eYH
aws
amI
aHD
@@ -63124,9 +63368,9 @@ aao
aao
aao
aao
-abY
-abY
-acc
+tjX
+tjX
+kfx
aqL
aqL
aqL
@@ -63136,7 +63380,7 @@ acP
acP
asc
acq
-adX
+jAR
aeu
adc
afs
@@ -63216,8 +63460,8 @@ aBR
aMc
aHF
aMg
-shf
-shf
+lID
+lID
aMg
aHF
aHF
@@ -63341,19 +63585,19 @@ aao
aao
aao
aao
-abY
-abY
-dtX
+tjX
+tjX
+hQO
aqL
aqL
aao
aqL
-dzs
+lUa
acP
acP
asc
acp
-adY
+mtM
jGn
adW
adW
@@ -63372,7 +63616,7 @@ adS
anD
alA
alA
-aAF
+sVB
aqM
aqL
ase
@@ -63432,11 +63676,11 @@ aIm
aBR
aMc
aHD
-rsQ
+dPJ
gpR
gpR
-rsQ
-jQe
+dPJ
+nvn
bkf
awp
bkH
@@ -63557,9 +63801,9 @@ aao
aao
aao
aao
-arv
-lVm
-dtX
+nEH
+dQR
+hQO
aqL
aqL
aqL
@@ -63591,7 +63835,7 @@ adk
adS
acr
aqM
-arr
+qwm
asc
amI
aty
@@ -63648,12 +63892,12 @@ aFM
aHC
aBR
aMc
-auX
+fHw
gpR
gpR
gpR
gpR
-pri
+wBu
aHF
awM
awM
@@ -63713,7 +63957,7 @@ byM
ycP
rTq
aBE
-bww
+dmO
bww
bww
hkv
@@ -63774,8 +64018,8 @@ aao
aao
aao
aao
-abY
-acc
+tjX
+kfx
aqL
aqL
aqL
@@ -63825,7 +64069,7 @@ amn
amn
amn
cgt
-wLg
+eqr
amn
amn
amn
@@ -63865,12 +64109,12 @@ aHF
aHD
aBR
aMc
-auX
+fHw
gpR
gpR
gpR
gpR
-pri
+wBu
aHF
awM
bkI
@@ -63930,7 +64174,7 @@ aNx
bAA
bDi
aBE
-gOf
+hHG
bBv
bww
bBN
@@ -63991,9 +64235,9 @@ aao
aao
aao
aao
-lVm
-lVm
-fbF
+dQR
+dQR
+vBI
aqL
aqL
aqL
@@ -64031,7 +64275,7 @@ amn
atz
atY
amn
-azX
+pvj
asJ
awY
axH
@@ -64040,11 +64284,11 @@ asJ
azT
amn
aBj
-aBV
+qYB
aBk
aBk
aBj
-aFQ
+rKy
amn
aHD
aIp
@@ -64083,10 +64327,10 @@ aHD
aIm
aMc
aHD
-rsQ
+dPJ
gpR
-fpt
-rsQ
+oOw
+dPJ
aMc
aHF
awM
@@ -64147,7 +64391,7 @@ ofJ
aOP
aOP
aBE
-gOf
+hHG
bww
bww
bBO
@@ -64207,23 +64451,23 @@ aao
aao
aao
aao
-arv
-lVm
-lVm
-lVm
-fbF
+nEH
+dQR
+dQR
+dQR
+vBI
aqL
-buP
+gdK
aqL
aqL
arp
acP
acP
-ilN
-qJL
-qJL
-qJL
-ilN
+lPg
+mtS
+mtS
+mtS
+lPg
acP
asc
acr
@@ -64261,7 +64505,7 @@ aBW
aCR
aBW
aEM
-cnO
+eWB
amn
aHD
aBR
@@ -64301,8 +64545,8 @@ aFM
aHF
aHF
aCN
-usF
-fdC
+lRC
+bSy
aCN
aHF
aHF
@@ -64424,23 +64668,23 @@ aao
aao
aao
aao
-avK
-lVm
-lVm
-abX
-lVm
-ajD
-fbF
+lOL
+dQR
+dQR
+cPg
+dQR
+nlB
+vBI
aqL
aqL
arp
acP
acP
-dhT
-fVm
-eiS
-xah
-nVa
+rZU
+khK
+taV
+dVM
+rVT
acP
ags
alF
@@ -64642,22 +64886,22 @@ aao
aao
aao
aqL
-avK
-dlr
-lVm
-lVm
-lVm
-tlj
+lOL
+dXK
+dQR
+dQR
+dQR
+bGC
aqL
aqL
arp
acP
acP
-dhT
-fVm
+rZU
+khK
ahS
-xah
-nVa
+dVM
+rVT
acP
acP
acP
@@ -64688,14 +64932,14 @@ dJc
axK
ayp
asJ
-erf
+jph
amn
aBm
-hul
+mBc
aBk
aBk
aEN
-aFR
+ibV
amn
aHD
aBR
@@ -64735,8 +64979,8 @@ aIn
aMc
aHF
aMg
-shf
-shf
+lID
+lID
aMg
aHF
aHF
@@ -64861,20 +65105,20 @@ aao
aqL
aqL
aqL
-heI
-lVm
-lVm
-acc
+lbh
+dQR
+dQR
+kfx
aqL
aqL
arp
acP
acP
-dhT
+rZU
ahS
ahS
-jvh
-nVa
+qse
+rVT
acP
acP
acP
@@ -64908,7 +65152,7 @@ asJ
azW
amn
aBn
-jku
+jOj
aBk
aBk
amn
@@ -64951,11 +65195,11 @@ aHD
aWJ
aMc
aHD
-rsQ
+dPJ
gpR
gpR
-rsQ
-jQe
+dPJ
+nvn
aHF
awp
bkL
@@ -65076,12 +65320,12 @@ aao
aao
aao
aqL
-buP
+gdK
aqL
-heI
-lVm
-lVm
-dtX
+lbh
+dQR
+dQR
+hQO
aqL
aqL
arp
@@ -65123,13 +65367,13 @@ awZ
ayp
asJ
aws
-gnk
+enJ
aBo
aBW
aBk
aBk
aEN
-nGU
+ozO
amn
aHD
aBR
@@ -65167,12 +65411,12 @@ aMg
axW
aIp
aMc
-auX
+fHw
gpR
gpR
gpR
gpR
-pri
+wBu
aHF
awp
bkM
@@ -65295,20 +65539,20 @@ aao
aqL
aqL
aqL
-heI
-lVm
-acc
+lbh
+dQR
+kfx
aqL
aqL
aqL
arp
acP
acP
-dhT
+rZU
ahS
ahS
-fVm
-nVa
+khK
+rVT
acP
acP
acP
@@ -65340,7 +65584,7 @@ axd
asJ
asJ
azY
-aAD
+qus
aBp
aBW
aBk
@@ -65384,12 +65628,12 @@ aKt
aIp
aBR
aMc
-auX
+fHw
gpR
gpR
gpR
gpR
-pri
+wBu
aHF
awp
qeK
@@ -65401,8 +65645,8 @@ bnH
yar
box
yar
-iyd
-iyd
+nzB
+nzB
eKU
yar
yar
@@ -65510,22 +65754,22 @@ aao
aao
aao
aao
-ann
-aac
-lVm
-lVm
-acc
+nnz
+wWE
+dQR
+dQR
+kfx
aqL
aqL
aqL
arp
acP
acP
-dhT
+rZU
ahS
-fVm
-eiS
-nVa
+khK
+taV
+rVT
acP
acP
acP
@@ -65556,14 +65800,14 @@ aua
aua
awn
aua
-ooP
+ltK
amn
aBq
aBq
-shm
+szZ
aBk
aEN
-pGN
+nOe
amn
aHF
aFM
@@ -65602,10 +65846,10 @@ aBR
aBR
aWW
aHD
-rsQ
+dPJ
gpR
-fpt
-rsQ
+oOw
+dPJ
aMc
aHF
awp
@@ -65728,21 +65972,21 @@ aao
aao
aao
aqL
-heI
-lVm
-lVm
-acc
-dNH
+lbh
+dQR
+dQR
+kfx
+fsT
aqL
aqL
aqL
-dzs
+lUa
acP
-dhT
-ruF
-foj
-eyA
-nVa
+rZU
+hDK
+xQd
+eVM
+rVT
acP
acP
acP
@@ -65820,8 +66064,8 @@ aBR
aMc
aHF
aCN
-usF
-fdC
+lRC
+bSy
aCN
aHF
aHF
@@ -65946,20 +66190,20 @@ aao
aao
aao
aao
-abY
-lVm
-dtX
+tjX
+dQR
+hQO
aqL
aqL
aqL
aqL
arp
acP
-ilN
-mpn
-mpn
-mpn
-ilN
+lPg
+vgE
+vgE
+vgE
+lPg
acP
acP
acP
@@ -65987,7 +66231,7 @@ amn
avG
awq
awq
-aCQ
+tdz
awq
axM
aws
@@ -66163,15 +66407,15 @@ aao
aao
aao
aao
-acG
-acc
+qMS
+kfx
aqL
aqL
aqL
aao
aqL
aqL
-dzs
+lUa
acP
acP
acP
@@ -66203,7 +66447,7 @@ atY
amn
asJ
awq
-axf
+mnv
axN
ays
axN
@@ -66381,8 +66625,8 @@ aao
aao
aao
aao
-acc
-ann
+kfx
+nnz
aqL
aao
aao
@@ -66598,7 +66842,7 @@ aao
aao
aao
aao
-acc
+kfx
aqL
aqL
aqL
@@ -66635,7 +66879,7 @@ amI
aty
atY
amn
-azX
+pvj
awr
axg
axO
@@ -66691,7 +66935,7 @@ aHF
aHF
aHF
asv
-wQD
+bjJ
bgx
bkw
blX
@@ -66815,15 +67059,15 @@ aao
aao
aao
aao
-lVm
-fbF
+dQR
+vBI
aqL
aqL
aqL
aqL
aqL
aqL
-dzs
+lUa
acP
acP
acP
@@ -66898,8 +67142,8 @@ bdv
bac
bcf
asv
-bff
-bfK
+lNp
+gAX
bge
bgs
bfM
@@ -67032,18 +67276,18 @@ aao
aao
aao
aao
-lVm
-abY
-ajD
-xWI
-ajD
-fbF
+dQR
+tjX
+nlB
+dOZ
+nlB
+vBI
aqL
aqL
aqL
-iSc
-iSc
-dzs
+bQh
+bQh
+lUa
acP
acP
acP
@@ -67075,11 +67319,11 @@ axh
amn
amn
anJ
-aAc
+mbz
anJ
anJ
anJ
-eRW
+fbB
amn
amn
amn
@@ -67249,29 +67493,29 @@ aao
aao
aao
aao
-lVm
-lVm
-mWI
-lVm
-lVm
-lVm
-fbF
+dQR
+dQR
+iXx
+dQR
+dQR
+dQR
+vBI
aqL
aqL
aqL
aqL
aqL
-dzs
+lUa
acP
acP
acP
acP
asc
-ilN
-gGC
-gGC
-gGC
-gGC
+lPg
+hHa
+hHa
+hHa
+hHa
ahS
ahS
ahS
@@ -67332,7 +67576,7 @@ bdx
bdx
bdx
asv
-bfh
+bfK
bfM
bgc
bgt
@@ -67467,27 +67711,27 @@ aao
aao
aao
aao
-lVm
-lVm
-acG
-lVm
-lVm
-dlr
-abU
-abU
-fbF
+dQR
+dQR
+qMS
+dQR
+dQR
+dXK
+elh
+elh
+vBI
aqL
aqL
aqL
-dzs
+lUa
acP
acP
acP
asc
-gGC
-ruF
-ruF
-fVm
+hHa
+hDK
+hDK
+khK
ahS
ahS
ahS
@@ -67509,8 +67753,8 @@ apc
apc
ars
anJ
-aAe
-aAG
+hhX
+cYy
aCb
aCb
aCU
@@ -67685,14 +67929,14 @@ aao
aao
aao
aao
-lVm
-lVm
-lVm
-dtX
+dQR
+dQR
+dQR
+hQO
aqL
-avK
-dlr
-tlj
+lOL
+dXK
+bGC
aqL
aqL
aqL
@@ -67701,12 +67945,12 @@ acP
acP
acP
asc
-gGC
-eiS
-fVm
+hHa
+taV
+khK
ahS
ahS
-fVm
+khK
ahS
ahS
aku
@@ -67904,26 +68148,26 @@ aao
aao
aao
aao
-acc
+kfx
aqL
aqL
aqL
aqL
-heI
-fbF
+lbh
+vBI
aqL
aqL
aqL
-dzs
+lUa
acP
acP
asc
-gGC
-foj
+hHa
+xQd
ahS
ahS
-fVm
-fVm
+khK
+khK
ahS
ahS
ako
@@ -68121,34 +68365,34 @@ aao
aao
aao
aao
-acc
+kfx
aqL
-buP
+gdK
aqL
aqL
-heI
-lVm
-fbF
+lbh
+dQR
+vBI
aqL
aqL
arp
acP
acP
asc
-gGC
+hHa
ahS
ahS
ahS
-fVm
+khK
ahS
ahS
-fVm
+khK
ako
-aor
+eNe
ape
apN
ape
-art
+uVi
ako
asL
atD
@@ -68338,18 +68582,18 @@ aao
aao
aao
aao
-lVm
-fbF
+dQR
+vBI
aqL
-dNH
+fsT
aqL
-heI
-lVm
-tlj
+lbh
+dQR
+bGC
aqL
aqL
aqL
-dzs
+lUa
acP
asc
ahS
@@ -68359,19 +68603,19 @@ ahS
ahS
ahS
ahS
-fVm
+khK
ako
-aos
+xzb
ape
apN
ape
-pBh
+pgP
ako
asM
atE
apc
ako
-isk
+tgf
aop
apc
axR
@@ -68380,7 +68624,7 @@ azc
ako
aAJ
apo
-tPr
+sqt
anJ
aEa
aER
@@ -68555,14 +68799,14 @@ aao
aao
aao
aao
-lVm
-acc
+dQR
+kfx
aqL
aqL
-aac
-lVm
-abX
-dtX
+wWE
+dQR
+cPg
+hQO
aqL
aao
aqL
@@ -68570,25 +68814,25 @@ arp
acP
asc
ahS
-fVm
-fVm
+khK
+khK
ahS
ahS
ahS
-fVm
-eiS
+khK
+taV
ako
ape
ape
-sVY
+vZh
ape
-oOM
+ied
ako
asN
atE
apc
ako
-iaq
+xXT
aop
apc
ako
@@ -68773,39 +69017,39 @@ aao
aao
aao
aao
-lVm
-ajD
-ajD
-lVm
-lVm
-acc
-dNH
+dQR
+nlB
+nlB
+dQR
+dQR
+kfx
+fsT
aqL
aao
aao
aqL
-dzs
+lUa
asc
-gGC
+hHa
ahS
-fVm
+khK
ahS
ahS
-fVm
-foj
-foj
+khK
+xQd
+xQd
ako
ape
-apf
+mfG
apO
aqR
-aru
+tFt
ako
asO
atE
apc
ako
-mcc
+hto
aop
axi
ako
@@ -68988,14 +69232,14 @@ aao
aao
aao
aao
-arv
-abU
-abU
-lVm
-lVm
-lVm
-lVm
-dtX
+nEH
+elh
+elh
+dQR
+dQR
+dQR
+dQR
+hQO
aqL
aqL
aqL
@@ -69003,16 +69247,16 @@ aao
aqL
arp
asc
-gGC
+hHa
ahS
ahS
ahS
-xah
+dVM
aao
aao
aao
ako
-xrN
+jNE
ape
eJU
aqS
@@ -69204,14 +69448,14 @@ aao
aao
aao
aao
-dlr
-dlr
-abW
-lVm
-lVm
-lVm
-lVm
-acc
+dXK
+dXK
+wbY
+dQR
+dQR
+dQR
+dQR
+kfx
aqL
aqL
aqL
@@ -69220,16 +69464,16 @@ aqL
aqL
arp
asc
-gGC
-foj
-ruF
+hHa
+xQd
+hDK
aao
aao
aao
aao
aao
ako
-aot
+ygN
apg
apP
ape
@@ -69249,7 +69493,7 @@ ako
aAK
apo
apo
-aCV
+kMk
apo
apo
apo
@@ -69421,23 +69665,23 @@ aao
aao
aao
aao
-ann
+nnz
aqL
-avK
-dlr
-lVm
-lVm
-abW
-acc
+lOL
+dXK
+dQR
+dQR
+wbY
+kfx
aqL
-buP
+gdK
aqL
aqL
aqL
aqL
aqL
asc
-gGC
+hHa
aao
aao
aao
@@ -69446,7 +69690,7 @@ aao
aao
aao
ako
-xrN
+jNE
ape
apN
aqT
@@ -69472,7 +69716,7 @@ apo
apo
apo
apo
-awy
+iOR
apo
apo
apo
@@ -69642,10 +69886,10 @@ aqL
aqL
aqL
aqL
-avK
-lVm
-lVm
-acc
+lOL
+dQR
+dQR
+kfx
aqL
aqL
aao
@@ -69860,7 +70104,7 @@ aqL
aqL
aqL
aqL
-heI
+lbh
aad
alJ
akX
@@ -70072,15 +70316,15 @@ aao
aao
aao
aao
-buP
+gdK
aqL
-iOL
-dNH
+dka
+fsT
aqL
hKM
aad
aad
-hdJ
+dTi
aao
aao
aao
@@ -70116,12 +70360,12 @@ ako
ako
aAK
apo
-nIs
-aCX
-uHx
-aES
-gAE
-aGK
+anU
+nWG
+tpU
+jay
+aCf
+ilH
anT
aIw
msq
@@ -70328,12 +70572,12 @@ avI
apc
axk
axS
-aBx
-aze
-aBx
+mnY
+kwq
+mnY
aAL
-aBx
-aCg
+mnY
+fDf
aCY
aCZ
aET
@@ -70508,11 +70752,11 @@ aao
aao
aao
aao
-oeT
-ptV
+cAf
+eWE
aad
aad
-qhS
+acb
abM
aao
aao
@@ -70555,7 +70799,7 @@ aCo
aCZ
aEU
aMQ
-uXO
+gAE
anT
aIw
aJs
@@ -70726,11 +70970,11 @@ aao
aao
aao
aao
-bup
-tQY
-fBU
-som
-gtG
+qQr
+oFj
+jJO
+bVX
+fKO
aao
aao
aao
@@ -70767,7 +71011,7 @@ arD
arD
aMk
apo
-nIs
+anU
aCZ
aCZ
aQa
@@ -70943,11 +71187,11 @@ aao
aao
aao
aao
-vMb
-rTr
+abY
+dtX
akX
akX
-eAG
+jSe
aao
aao
aao
@@ -70984,12 +71228,12 @@ arD
arD
aMk
apo
-nIs
-gYM
+anU
+fXR
aCo
aEU
aCZ
-gAE
+aCf
anT
aIy
aIC
@@ -71159,12 +71403,12 @@ aao
aao
aao
abq
-tyH
-xHQ
-cVT
-cVT
+iGY
+pri
+ipo
+ipo
rYt
-cVT
+ipo
aao
aao
aao
@@ -71201,12 +71445,12 @@ arD
arD
aMk
apo
-nIs
-gYM
+anU
+fXR
aCo
aEW
aCZ
-gAE
+aCf
anT
aIz
aIC
@@ -71418,12 +71662,12 @@ arD
arD
aMk
apo
-nIs
-gYM
-aEf
+anU
+fXR
+rNd
aEU
aCZ
-gAE
+aCf
anT
bix
aIC
@@ -71598,7 +71842,7 @@ aad
wMp
akX
akX
-oeT
+cAf
akX
aao
aao
@@ -71635,12 +71879,12 @@ arD
arD
aMk
apo
-nIs
-gAE
+anU
+aCf
aCZ
aQa
aCZ
-aGK
+ilH
anT
aIz
aIC
@@ -72060,7 +72304,7 @@ akL
akL
akL
akL
-wzc
+cQO
apc
avJ
ako
@@ -72068,7 +72312,7 @@ aBu
arD
arD
aMk
-nIs
+anU
aCi
aCZ
aCZ
@@ -72276,16 +72520,16 @@ apU
asX
aoB
auf
-uQY
-uey
-uey
-uey
+uwV
+ant
+ant
+ant
ako
aBu
arD
arD
aMk
-nIs
+anU
aCj
aCo
aCo
@@ -72494,15 +72738,15 @@ aoB
apU
aoB
akL
-dMT
+gbA
aqa
aqa
aqa
-ant
-aKB
-vis
+rzR
+cHH
+aCW
aMk
-nIs
+anU
aOc
aCo
aCo
@@ -72711,13 +72955,13 @@ asY
aoB
aug
akL
-tKE
+xgm
aCc
aCc
aCc
aCc
aCc
-gwb
+aCd
aMk
anT
aCl
@@ -72930,11 +73174,11 @@ auh
akL
aBu
aCc
-knF
-aDR
-aKA
-aAh
-gwb
+pLH
+lIS
+jmD
+ivW
+aCd
aMk
anT
aCm
@@ -73147,13 +73391,13 @@ akL
akL
aBu
aCc
-knF
-aDT
+pLH
+pgh
aao
-kCm
-aAh
+kzF
+ivW
aMk
-nIs
+anU
aCn
aCZ
aCo
@@ -73334,12 +73578,12 @@ aao
aao
aao
aao
-aEe
-kpf
-kpf
-kpf
-aEe
-aEe
+mEC
+fGK
+fGK
+fGK
+mEC
+mEC
aao
aao
aao
@@ -73362,15 +73606,15 @@ ata
ata
ata
aqa
-ant
+rzR
aCc
aCc
-aDT
+pgh
aao
aao
-ayz
+fEE
aMk
-nIs
+anU
aCo
aCZ
aEg
@@ -73378,7 +73622,7 @@ aCo
aQa
aCZ
anT
-aIE
+yao
aJA
aKJ
aEd
@@ -73550,13 +73794,13 @@ aao
aao
aao
aao
-aoa
-aFZ
-aFZ
-aFZ
-aFZ
-aFZ
-aoa
+tqS
+xWl
+xWl
+xWl
+xWl
+xWl
+tqS
aao
aao
aao
@@ -73574,20 +73818,20 @@ aao
aao
aao
aCc
-asm
+oFx
aCc
aCc
aCc
-knF
+pLH
aCc
aCc
aCc
-aFS
-kCm
+ukW
+kzF
aao
-ayz
+fEE
aMk
-nIs
+anU
aCp
aDb
aEh
@@ -73597,7 +73841,7 @@ aCZ
anT
aIF
aJB
-aKK
+aCZ
aLE
aMp
aLE
@@ -73767,13 +74011,13 @@ aao
aao
aao
aao
-aoa
-bjJ
-qtx
-qtx
-qtx
-jMB
-aoa
+tqS
+sFv
+xRn
+xRn
+xRn
+dgH
+tqS
aao
aao
aao
@@ -73793,16 +74037,16 @@ aao
aao
aao
aao
-oWM
-oWM
+hgr
+hgr
aao
aao
-knF
+pLH
aCc
-knF
-aFS
-dWg
-bSc
+pLH
+ukW
+rrF
+kpd
aMk
anW
anW
@@ -73984,13 +74228,13 @@ aao
aao
aao
aao
-aoa
-aFZ
-aFZ
-aFZ
-aFZ
-aFZ
-aoa
+tqS
+xWl
+xWl
+xWl
+xWl
+xWl
+tqS
aao
aao
aao
@@ -74009,34 +74253,34 @@ aao
aao
aao
aao
-anU
-kCm
-kCm
-gbt
+tQj
+kzF
+kzF
+lAC
aao
aao
aCc
aCc
aCc
aCc
-knF
+pLH
bMz
apo
anW
-aDc
-aEi
-aDc
-aDg
-aDc
-aEi
-aDc
-aJC
aKL
-aEi
-aDc
-aEi
-aDc
-aEi
+aui
+aKK
+kgl
+ixN
+anW
+aQr
+aKL
+aKL
+anW
+aKL
+anW
+aQr
+aQr
aQr
anW
aTq
@@ -74201,12 +74445,12 @@ aao
aao
aao
aao
-aCf
-aCf
-aCf
-aCf
-aCf
-aCf
+azF
+azF
+azF
+azF
+azF
+azF
aao
aao
tQw
@@ -74224,14 +74468,14 @@ tQw
aao
aao
aao
-ack
-tng
-arz
-anU
-kCm
-ayz
-knF
-whv
+bQG
+vXJ
+khB
+tQj
+kzF
+fEE
+pLH
+ovQ
aCc
aCc
aCc
@@ -74240,19 +74484,19 @@ aCc
aCc
aMk
anW
-aDc
+aKL
aEi
-aDc
-aDg
-aDc
aEi
-aDc
+kgl
aEi
-aDc
+tmj
aEi
-aDc
aEi
-aDc
+aui
+tkM
+aui
+sri
+aEi
aEi
aEi
aqx
@@ -74440,38 +74684,38 @@ tQw
tQw
aao
aao
-tVm
-tng
-tng
-tng
-ack
-awf
-ayz
-knF
-whv
+fxZ
+vXJ
+vXJ
+vXJ
+bQG
+jAX
+fEE
+pLH
+ovQ
aCc
aCc
-knF
+pLH
aCc
aCc
-knF
+pLH
aMk
anW
-aDc
-aEi
+aKL
+aui
aDe
aGe
-aGN
-aHM
-aHM
-aHM
+aOi
+aOi
+aOi
+ncT
aKM
aLF
-aLF
-aLF
-aLF
-aPk
+aOj
aEi
+aOj
+aPk
+tAM
aqx
aTq
aTq
@@ -74656,36 +74900,36 @@ tQw
tQw
tQw
aao
-ack
-tng
-tng
-tng
-tng
-arz
-awf
-kCm
-aAh
-kLW
+bQG
+vXJ
+vXJ
+vXJ
+vXJ
+khB
+jAX
+kzF
+ivW
+vkf
aCc
-knF
+pLH
aCc
aCc
aCc
aCc
aMk
anW
-aDc
-aEi
+anW
+aDf
aDg
-aEi
-aGO
+fKY
+aOj
aHN
-aIG
-aIG
+aOj
+aEi
aKN
-aLG
-aLG
-aLG
+aOi
+aOi
+jvP
aOi
aPl
aQs
@@ -74873,16 +75117,16 @@ tQw
ahw
tQw
tQw
-fNh
-tng
-tng
-tng
-tng
-tng
+idT
+vXJ
+vXJ
+vXJ
+vXJ
+vXJ
aao
aao
-kCm
-dTa
+kzF
+lSb
aCc
aCc
aCc
@@ -74892,20 +75136,20 @@ aCc
aMk
anW
aDd
-aEi
-aDg
-aEi
-aEi
-aEi
-aEi
-aEi
+aDh
+xsf
+qNp
+aui
+aui
+aui
aEi
aEi
-aDc
aEi
+aHO
+rVy
aOj
aPm
-aQt
+ncT
aRu
nnK
aTt
@@ -75090,39 +75334,39 @@ tQw
ujC
ujC
tQw
-vVB
-ack
-tng
-tng
+ukv
+bQG
+vXJ
+vXJ
aao
aao
aao
aao
aao
-aBY
-aAh
-knF
-knF
+pJn
+ivW
+pLH
+pLH
aCc
aCc
aCc
aMk
anW
-aDe
+aEl
aQt
aEl
-aGf
+aQt
aEi
-aHO
+kMA
aIH
aJD
aKO
aEi
+aHO
+eGv
aEi
-aEi
-aOj
aPn
-aEi
+aui
ocA
aTq
aTp
@@ -75308,38 +75552,38 @@ ujC
ujC
tQw
tQw
-tCQ
-tCQ
+mda
+mda
aao
aao
aao
-kCm
-gbt
-kCm
-kCm
-gbt
-aCd
-aAh
+kzF
+lAC
+kzF
+kzF
+lAC
+jPQ
+ivW
aCc
aCc
aCc
aMk
anW
-aDf
anW
anW
anW
-aEi
+anW
+kDb
aHO
lDa
lDa
aKO
aEi
-aDc
aEi
-aOj
+eiR
+lsk
aPo
-aQs
+pNn
anW
aTq
aTq
@@ -75531,9 +75775,9 @@ aao
aao
aao
aao
-kCm
-kCm
-kCm
+kzF
+kzF
+kzF
aao
aao
aao
@@ -75541,22 +75785,22 @@ aCc
aCc
aCc
aMk
-anW
-aDg
+apo
+apo
aEk
-aui
+apo
anW
voz
+ghh
+ghh
+aui
+nAA
+ghh
aEi
aEi
aEi
-aEi
-aEi
-aDc
-aEi
-aGO
aPp
-aEi
+lEP
aqx
aTq
aTq
@@ -75748,32 +75992,32 @@ tQw
aao
aao
aao
-kCm
-gbt
+kzF
+lAC
aao
aao
aao
aao
-knF
-knF
+pLH
+pLH
aCc
aMk
+apo
+apo
+apo
+apo
anW
-aDh
-aEl
-aEi
-anW
-aGQ
-aEi
-aEi
-aEi
-aGQ
-aEi
-aEi
aGQ
-aEi
-aEi
-aEi
+ceF
+jBo
+aui
+rRE
+jBo
+mPo
+llZ
+gPb
+gPb
+kwh
aqx
aTq
aTq
@@ -75973,12 +76217,12 @@ aao
aao
aao
aao
-coc
+rLM
aMk
-anW
-anW
-anW
-anW
+apo
+apo
+apo
+apo
anW
anW
anW
@@ -77906,7 +78150,7 @@ aev
adZ
aao
gNH
-biX
+lUM
aev
aev
aoE
@@ -78123,13 +78367,13 @@ aev
adZ
aao
gNH
-biX
+lUM
aev
anM
aqb
aps
adZ
-aqZ
+tkY
arF
aso
arF
@@ -81376,7 +81620,7 @@ adZ
adZ
adZ
aeQ
-wQu
+ald
daB
amO
afy
diff --git a/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm b/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm
index 8f6063172ff5..7b28c00cc0d6 100644
--- a/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm
+++ b/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm
@@ -916,9 +916,8 @@
},
/area/bigredv2/outside/engineering)
"dy" = (
-/obj/structure/machinery/power/geothermal{
- name = "Reactor Turbine";
- power_generation_max = 1e+006
+/obj/structure/machinery/power/reactor/colony{
+ name = "Reactor Turbine"
},
/turf/open/floor/plating,
/area/bigredv2/outside/engineering)
diff --git a/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm b/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm
index 7acf197b3ddb..19f720daf929 100644
--- a/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm
+++ b/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm
@@ -51,11 +51,6 @@
icon_state = "darkish"
},
/area/bigredv2/outside/chapel)
-"aj" = (
-/turf/open/floor{
- icon_state = "darkish"
- },
-/area/bigredv2/outside/chapel)
"ak" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 6
@@ -550,7 +545,7 @@ ab
"}
(10,1,1) = {"
ac
-aj
+ae
av
aI
aW
diff --git a/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm b/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm
index 6aa3dfd2cfc2..bfce848e5656 100644
--- a/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm
+++ b/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm
@@ -36,12 +36,8 @@
/turf/open/floor/plating,
/area/bigredv2/outside/nw)
"i" = (
-/obj/structure/machinery/light{
- dir = 1;
- icon_state = "tube1"
- },
-/turf/open/floor/plating,
-/area/bigredv2/outside/nw)
+/turf/closed/wall/solaris/reinforced,
+/area/bigredv2/outside/telecomm/warehouse)
"j" = (
/turf/open/floor/plating,
/area/bigredv2/outside/nw)
@@ -130,6 +126,84 @@
/obj/structure/machinery/light,
/turf/open/floor/plating,
/area/bigredv2/outside/nw)
+"D" = (
+/obj/effect/landmark/static_comms/net_one,
+/turf/open/floor{
+ icon_state = "bcircuit"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
+"H" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1;
+ pixel_y = 1
+ },
+/turf/open/floor/plating{
+ dir = 10;
+ icon_state = "warnplate"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
+"K" = (
+/turf/open/floor{
+ icon_state = "bcircuit"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
+"O" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/plating{
+ dir = 8;
+ icon_state = "warnplate"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
+"S" = (
+/obj/structure/machinery/power/apc{
+ dir = 1;
+ start_charge = 0
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ layer = 2.5;
+ pixel_x = -1
+ },
+/turf/open/floor/plating{
+ dir = 4;
+ icon_state = "warnplate"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
+"T" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/turf/open/floor/plating{
+ dir = 6;
+ icon_state = "warnplate"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
+"V" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor/plating{
+ icon_state = "warnplate"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
+"Z" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ layer = 2.5;
+ pixel_x = -1
+ },
+/turf/open/floor/plating{
+ dir = 4;
+ icon_state = "warnplate"
+ },
+/area/bigredv2/outside/telecomm/warehouse)
(1,1,1) = {"
b
@@ -144,10 +218,10 @@ b
b
"}
(2,1,1) = {"
-b
-e
-j
-j
+i
+O
+O
+H
q
j
u
@@ -156,10 +230,10 @@ j
b
"}
(3,1,1) = {"
-b
-f
-j
-j
+i
+K
+D
+V
q
j
v
@@ -168,10 +242,10 @@ y
b
"}
(4,1,1) = {"
-b
-g
-m
-j
+i
+K
+K
+V
q
j
j
@@ -180,10 +254,10 @@ j
b
"}
(5,1,1) = {"
-b
-h
-m
-j
+i
+S
+Z
+T
q
j
j
@@ -194,7 +268,7 @@ b
(6,1,1) = {"
b
g
-j
+m
j
r
j
@@ -205,8 +279,8 @@ b
"}
(7,1,1) = {"
b
-g
-j
+h
+m
j
q
j
@@ -217,7 +291,7 @@ b
"}
(8,1,1) = {"
b
-i
+f
j
j
q
@@ -301,7 +375,7 @@ b
"}
(15,1,1) = {"
b
-j
+e
j
j
q
diff --git a/maps/map_files/BigRed/sprinkles/30.cave-north_lambdapath.dmm b/maps/map_files/BigRed/sprinkles/30.cave-north_lambdapath.dmm
deleted file mode 100644
index 69d091b39d02..000000000000
--- a/maps/map_files/BigRed/sprinkles/30.cave-north_lambdapath.dmm
+++ /dev/null
@@ -1,214 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_18"
- },
-/area/bigredv2/caves_north)
-"b" = (
-/turf/closed/wall/solaris/rock,
-/area/bigredv2/caves)
-"c" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/caves_lambda)
-"d" = (
-/turf/open/mars_cave,
-/area/bigredv2/caves_north)
-"e" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/caves_north)
-"f" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_7"
- },
-/area/bigredv2/caves_north)
-"g" = (
-/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
-/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/caves_lambda)
-"h" = (
-/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
-/turf/open/mars_cave{
- icon_state = "mars_cave_2"
- },
-/area/bigredv2/caves_lambda)
-"j" = (
-/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/caves_north)
-"m" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_14"
- },
-/area/bigredv2/caves_north)
-"n" = (
-/turf/open/mars_cave{
- icon_state = "mars_dirt_4"
- },
-/area/bigredv2/caves_north)
-"o" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_17"
- },
-/area/bigredv2/caves_north)
-"s" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_15"
- },
-/area/bigredv2/caves_north)
-"C" = (
-/turf/open/mars_cave{
- icon_state = "mars_dirt_6"
- },
-/area/bigredv2/caves_north)
-"H" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_19"
- },
-/area/bigredv2/caves_north)
-"M" = (
-/turf/open/mars_cave{
- icon_state = "mars_dirt_5"
- },
-/area/bigredv2/caves_north)
-"S" = (
-/turf/open/mars_cave{
- icon_state = "mars_cave_7"
- },
-/area/bigredv2/caves_lambda)
-"Z" = (
-/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
-/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
-/turf/open/mars_cave{
- icon_state = "mars_cave_16"
- },
-/area/bigredv2/caves_lambda)
-
-(1,1,1) = {"
-a
-d
-e
-m
-C
-n
-H
-e
-e
-s
-"}
-(2,1,1) = {"
-b
-f
-s
-n
-j
-n
-o
-e
-e
-m
-"}
-(3,1,1) = {"
-b
-b
-s
-M
-n
-H
-d
-b
-b
-b
-"}
-(4,1,1) = {"
-b
-b
-g
-Z
-Z
-b
-b
-b
-b
-b
-"}
-(5,1,1) = {"
-b
-c
-c
-c
-c
-c
-b
-b
-b
-b
-"}
-(6,1,1) = {"
-b
-c
-c
-c
-h
-c
-c
-b
-b
-b
-"}
-(7,1,1) = {"
-S
-c
-c
-c
-c
-c
-c
-b
-c
-c
-"}
-(8,1,1) = {"
-c
-c
-c
-c
-c
-c
-c
-g
-c
-c
-"}
-(9,1,1) = {"
-c
-h
-c
-c
-c
-h
-c
-g
-c
-c
-"}
-(10,1,1) = {"
-c
-c
-c
-c
-c
-c
-c
-g
-c
-h
-"}
diff --git a/maps/map_files/BigRed/sprinkles/5+gruesome_medicaleast.dmm b/maps/map_files/BigRed/sprinkles/5+gruesome_medicaleast.dmm
deleted file mode 100644
index 96ed195a9bee..000000000000
--- a/maps/map_files/BigRed/sprinkles/5+gruesome_medicaleast.dmm
+++ /dev/null
@@ -1,53 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/item/prop/helmetgarb/rosary{
- pixel_y = 6
- },
-/turf/template_noop,
-/area/template_noop)
-"d" = (
-/obj/item/clothing/head/soft/blue{
- pixel_x = 5
- },
-/turf/template_noop,
-/area/template_noop)
-"g" = (
-/obj/item/weapon/gun/pistol/holdout{
- pixel_x = -4
- },
-/turf/template_noop,
-/area/template_noop)
-"A" = (
-/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
-/turf/template_noop,
-/area/template_noop)
-"K" = (
-/obj/item/limb/arm/l_arm{
- dir = 8
- },
-/obj/item/limb/arm/r_arm,
-/obj/item/limb/foot/l_foot{
- dir = 1;
- pixel_y = 21
- },
-/obj/item/limb/head{
- dir = 4;
- pixel_x = 6
- },
-/obj/effect/decal/cleanable/blood,
-/turf/template_noop,
-/area/template_noop)
-"M" = (
-/turf/template_noop,
-/area/template_noop)
-
-(1,1,1) = {"
-d
-A
-a
-"}
-(2,1,1) = {"
-K
-g
-M
-"}
diff --git a/maps/map_files/CORSAT/Corsat.dmm b/maps/map_files/CORSAT/Corsat.dmm
index 40573911281f..9c09a95e9f94 100644
--- a/maps/map_files/CORSAT/Corsat.dmm
+++ b/maps/map_files/CORSAT/Corsat.dmm
@@ -10039,20 +10039,6 @@
icon_state = "bluegreycorner"
},
/area/corsat/theta/airlock/east)
-"aCR" = (
-/obj/structure/machinery/power/geothermal{
- desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod.";
- fail_rate = 4;
- name = "\improper G-17 Thermoelectric Generator"
- },
-/obj/structure/cable/yellow{
- d2 = 4;
- icon_state = "0-4"
- },
-/turf/open/floor/corsat{
- icon_state = "plate"
- },
-/area/corsat/sigma/southeast/generator)
"aCS" = (
/obj/structure/machinery/door/airlock/almayer/engineering/colony{
name = "Reception Desk";
@@ -10653,20 +10639,6 @@
icon_state = "retrosquares"
},
/area/corsat/omega/airlocknorth)
-"aEp" = (
-/obj/structure/machinery/power/geothermal{
- desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod.";
- fail_rate = 4;
- name = "\improper G-17 Thermoelectric Generator"
- },
-/obj/structure/cable/yellow{
- d2 = 4;
- icon_state = "0-4"
- },
-/turf/open/floor/corsat{
- icon_state = "plate"
- },
-/area/corsat/gamma/engineering/core)
"aEq" = (
/obj/structure/window/framed/corsat,
/turf/open/floor/plating,
@@ -10675,22 +10647,6 @@
/obj/structure/window/framed/corsat,
/turf/open/floor/plating,
/area/corsat/gamma/cargo/lobby)
-"aEs" = (
-/obj/structure/machinery/power/geothermal{
- desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod.";
- fail_rate = 4;
- name = "\improper G-17 Thermoelectric Generator"
- },
-/obj/structure/cable/yellow{
- d1 = 2;
- d2 = 4;
- icon_state = "0-8";
- layer = 2.1
- },
-/turf/open/floor/corsat{
- icon_state = "plate"
- },
-/area/corsat/gamma/engineering/core)
"aEt" = (
/turf/open/floor/corsat{
icon_state = "arrow_west"
@@ -10724,22 +10680,6 @@
icon_state = "darkgreen"
},
/area/corsat/gamma/hangar/monorail)
-"aEA" = (
-/obj/structure/machinery/power/geothermal{
- desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod.";
- fail_rate = 4;
- name = "\improper G-17 Thermoelectric Generator"
- },
-/obj/structure/cable/yellow{
- d1 = 2;
- d2 = 4;
- icon_state = "0-8";
- layer = 2.1
- },
-/turf/open/floor/corsat{
- icon_state = "plate"
- },
-/area/corsat/sigma/southeast/generator)
"aEC" = (
/turf/open/floor/corsat{
dir = 4;
@@ -11295,6 +11235,9 @@
/obj/structure/machinery/light{
dir = 1
},
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/structure/surface/rack,
/turf/open/floor/corsat{
dir = 1;
icon_state = "yellow"
@@ -15046,6 +14989,10 @@
/turf/open/floor/plating,
/area/corsat/gamma/engineering/lobby)
"aPX" = (
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/structure/surface/rack,
/turf/open/floor/corsat{
dir = 1;
icon_state = "yellow"
@@ -18863,6 +18810,7 @@
/obj/structure/machinery/light{
dir = 1
},
+/obj/structure/machinery/fuelcell_recycler/full,
/turf/open/floor/corsat{
icon_state = "plate"
},
@@ -26593,15 +26541,6 @@
icon_state = "squares"
},
/area/corsat/sigma/south/robotics)
-"bwY" = (
-/obj/structure/surface/rack,
-/obj/item/circuitboard/exosuit/main/max,
-/obj/item/circuitboard/exosuit/peripherals/max/targeting,
-/obj/item/circuitboard/exosuit/peripherals/max,
-/turf/open/floor/corsat{
- icon_state = "plate"
- },
-/area/corsat/sigma/south/robotics)
"bwZ" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/screwdriver,
@@ -26720,12 +26659,6 @@
icon_state = "yellow"
},
/area/corsat/sigma/south/robotics)
-"bxr" = (
-/obj/structure/prop/mech/parts/durand_head,
-/turf/open/floor/corsat{
- icon_state = "arrow_north"
- },
-/area/corsat/sigma/south/robotics)
"bxs" = (
/obj/structure/surface/table/almayer,
/obj/item/book/manual/ripley_build_and_repair,
@@ -26742,18 +26675,6 @@
icon_state = "yellow"
},
/area/corsat/sigma/south/robotics)
-"bxu" = (
-/obj/structure/prop/mech/parts/durand_right_arm,
-/turf/open/floor/corsat{
- icon_state = "arrow_west"
- },
-/area/corsat/sigma/south/robotics)
-"bxv" = (
-/obj/structure/prop/mech/parts/durand_torso,
-/turf/open/floor/corsat{
- icon_state = "cargo"
- },
-/area/corsat/sigma/south/robotics)
"bxw" = (
/turf/open/floor/corsat{
icon_state = "arrow_east"
@@ -26778,12 +26699,6 @@
icon_state = "cargo"
},
/area/corsat/sigma/south/robotics)
-"bxA" = (
-/obj/structure/prop/mech/parts/durand_left_leg,
-/turf/open/floor/corsat{
- icon_state = "arrow_east"
- },
-/area/corsat/sigma/south/robotics)
"bxB" = (
/obj/structure/girder/displaced,
/turf/open/floor/corsat,
@@ -36821,6 +36736,7 @@
/obj/structure/machinery/camera/autoname{
network = list("gamma")
},
+/obj/structure/machinery/fuelcell_recycler/full,
/turf/open/floor/corsat{
dir = 1;
icon_state = "yellow"
@@ -37457,6 +37373,19 @@
icon_state = "whitetancorner"
},
/area/corsat/sigma/dorms)
+"drE" = (
+/obj/structure/machinery/power/reactor/colony{
+ desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod.";
+ name = "\improper G-17 Thermoelectric Generator"
+ },
+/obj/structure/cable/yellow{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/open/floor/corsat{
+ icon_state = "plate"
+ },
+/area/corsat/gamma/engineering/core)
"drW" = (
/turf/open/floor/corsat{
dir = 8;
@@ -38180,6 +38109,17 @@
icon_state = "bluegreycorner"
},
/area/corsat/gamma/hangar/flightcontrol)
+"dSc" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/item/fuel_cell,
+/obj/structure/surface/rack,
+/turf/open/floor/corsat{
+ dir = 1;
+ icon_state = "yellow"
+ },
+/area/corsat/gamma/engineering/core)
"dSi" = (
/obj/structure/pipes/standard/manifold/hidden/green{
dir = 8
@@ -40881,6 +40821,12 @@
icon_state = "yellow"
},
/area/corsat/gamma/engineering)
+"fTK" = (
+/obj/structure/prop/mech/parts/durand_left_leg,
+/turf/open/floor/corsat{
+ icon_state = "arrow_east"
+ },
+/area/corsat/sigma/south/robotics)
"fTT" = (
/obj/structure/pipes/vents/pump{
dir = 8
@@ -43752,6 +43698,21 @@
},
/turf/open/gm/grass/grass1/weedable,
/area/corsat/theta/biodome)
+"hNL" = (
+/obj/structure/machinery/power/reactor/colony{
+ desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod.";
+ name = "\improper G-17 Thermoelectric Generator"
+ },
+/obj/structure/cable/yellow{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "0-8";
+ layer = 2.1
+ },
+/turf/open/floor/corsat{
+ icon_state = "plate"
+ },
+/area/corsat/gamma/engineering/core)
"hOb" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/closed/wall/r_wall/biodome,
@@ -45471,6 +45432,15 @@
"jfP" = (
/turf/closed/wall/biodome,
/area/corsat/gamma/rnr)
+"jfW" = (
+/obj/structure/surface/rack,
+/obj/item/circuitboard/exosuit/main/max,
+/obj/item/circuitboard/exosuit/peripherals/max/targeting,
+/obj/item/circuitboard/exosuit/peripherals/max,
+/turf/open/floor/corsat{
+ icon_state = "plate"
+ },
+/area/corsat/sigma/south/robotics)
"jgb" = (
/obj/structure/surface/table/reinforced,
/obj/item/tool/surgery/retractor,
@@ -50626,6 +50596,12 @@
icon_state = "white"
},
/area/corsat/gamma/residential/east)
+"mZm" = (
+/obj/structure/prop/mech/parts/durand_head,
+/turf/open/floor/corsat{
+ icon_state = "arrow_north"
+ },
+/area/corsat/sigma/south/robotics)
"naG" = (
/obj/structure/machinery/door/airlock/almayer/maint/colony{
dir = 2;
@@ -51771,6 +51747,15 @@
icon_state = "whitetan"
},
/area/corsat/gamma/residential/west)
+"nSp" = (
+/obj/structure/surface/rack,
+/obj/item/circuitboard/exosuit/peripherals/alice,
+/obj/item/circuitboard/exosuit/main/alice,
+/turf/open/floor/corsat{
+ dir = 1;
+ icon_state = "yellow"
+ },
+/area/corsat/sigma/south/robotics)
"nSA" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -52647,6 +52632,12 @@
icon_state = "plate"
},
/area/corsat/gamma/biodome/complex)
+"oCt" = (
+/obj/structure/prop/mech/parts/durand_torso,
+/turf/open/floor/corsat{
+ icon_state = "cargo"
+ },
+/area/corsat/sigma/south/robotics)
"oCz" = (
/obj/structure/machinery/light{
dir = 4
@@ -52925,6 +52916,15 @@
icon_state = "squares"
},
/area/corsat/omega/complex)
+"oNi" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/corsat{
+ icon_state = "plate"
+ },
+/area/corsat/sigma/southeast/generator)
"oNI" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 5
@@ -53474,6 +53474,18 @@
icon_state = "squares"
},
/area/corsat/omega/security)
+"phl" = (
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/structure/surface/rack,
+/turf/open/floor/corsat{
+ dir = 1;
+ icon_state = "yellow"
+ },
+/area/corsat/gamma/engineering/core)
"phK" = (
/obj/effect/decal/cleanable/blood/splatter,
/turf/open/floor/corsat{
@@ -54277,6 +54289,14 @@
icon_state = "bluegrey"
},
/area/corsat/sigma/south/offices)
+"pUy" = (
+/obj/structure/surface/rack,
+/obj/item/circuitboard/exosuit/peripherals/work_loader,
+/obj/item/circuitboard/exosuit/peripherals/work_loader,
+/turf/open/floor/corsat{
+ icon_state = "yellow"
+ },
+/area/corsat/sigma/south/robotics)
"pUA" = (
/turf/open/floor/corsat{
dir = 8;
@@ -56471,6 +56491,13 @@
icon_state = "squares"
},
/area/corsat/sigma/hangar/security)
+"ryn" = (
+/obj/structure/machinery/fuelcell_recycler/full,
+/turf/open/floor/corsat{
+ dir = 1;
+ icon_state = "yellow"
+ },
+/area/corsat/gamma/engineering/core)
"ryE" = (
/obj/structure/pipes/vents/pump,
/turf/open/floor/corsat{
@@ -57420,6 +57447,21 @@
icon_state = "red"
},
/area/corsat/omega/hangar/security)
+"sgN" = (
+/obj/structure/machinery/power/reactor/colony{
+ desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod.";
+ name = "\improper G-17 Thermoelectric Generator"
+ },
+/obj/structure/cable/yellow{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "0-8";
+ layer = 2.1
+ },
+/turf/open/floor/corsat{
+ icon_state = "plate"
+ },
+/area/corsat/sigma/southeast/generator)
"sgX" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -58828,14 +58870,6 @@
icon_state = "plate"
},
/area/corsat/gamma/freezer)
-"thp" = (
-/obj/structure/surface/rack,
-/obj/item/circuitboard/exosuit/peripherals/work_loader,
-/obj/item/circuitboard/exosuit/peripherals/work_loader,
-/turf/open/floor/corsat{
- icon_state = "yellow"
- },
-/area/corsat/sigma/south/robotics)
"thv" = (
/obj/structure/machinery/power/apc/high{
dir = 1;
@@ -59862,15 +59896,6 @@
},
/turf/open/ice,
/area/corsat/gamma/biodome)
-"tWD" = (
-/obj/structure/surface/rack,
-/obj/item/circuitboard/exosuit/peripherals/alice,
-/obj/item/circuitboard/exosuit/main/alice,
-/turf/open/floor/corsat{
- dir = 1;
- icon_state = "yellow"
- },
-/area/corsat/sigma/south/robotics)
"tWM" = (
/obj/structure/machinery/vending/cigarette/colony,
/turf/open/floor/corsat{
@@ -63615,6 +63640,12 @@
icon_state = "retrosquareslight"
},
/area/corsat/gamma/sigmaremote)
+"wKf" = (
+/obj/structure/prop/mech/parts/durand_right_arm,
+/turf/open/floor/corsat{
+ icon_state = "arrow_west"
+ },
+/area/corsat/sigma/south/robotics)
"wKh" = (
/obj/structure/bed/chair{
dir = 8
@@ -65388,6 +65419,14 @@
icon_state = "squares"
},
/area/corsat/sigma/cargo)
+"yhI" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/corsat{
+ icon_state = "plate"
+ },
+/area/corsat/sigma/southeast/generator)
"yhK" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -65428,6 +65467,19 @@
icon_state = "purplewhite"
},
/area/corsat/gamma/sigmaremote)
+"ykJ" = (
+/obj/structure/machinery/power/reactor/colony{
+ desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod.";
+ name = "\improper G-17 Thermoelectric Generator"
+ },
+/obj/structure/cable/yellow{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/open/floor/corsat{
+ icon_state = "plate"
+ },
+/area/corsat/sigma/southeast/generator)
"ykO" = (
/turf/open/floor/corsat{
icon_state = "red"
@@ -93708,9 +93760,9 @@ apI
aau
axp
aqa
-aEp
-aEp
-aEp
+drE
+drE
+drE
axB
apZ
bnl
@@ -94198,9 +94250,9 @@ apI
aFY
aqa
aqa
-aEp
-aEp
-aEp
+drE
+drE
+drE
sNG
kRO
ufN
@@ -94930,7 +94982,7 @@ aEq
aEq
agK
apI
-aPX
+ryn
aqa
aqa
hKc
@@ -95420,12 +95472,12 @@ ouk
bqM
buz
apI
-aFY
+dSc
aqa
aqa
-aEs
-aEs
-aEs
+hNL
+hNL
+hNL
sNG
kRO
ufN
@@ -95665,7 +95717,7 @@ oUz
boV
bOc
apI
-aPX
+phl
aqa
aqa
aPS
@@ -95913,9 +95965,9 @@ apI
aau
axp
aqa
-aEs
-aEs
-aEs
+hNL
+hNL
+hNL
orz
iYR
bnl
@@ -109525,7 +109577,7 @@ pbS
auJ
bxm
aCs
-bxu
+wKf
bxy
aMi
fVm
@@ -109769,8 +109821,8 @@ ahu
vzc
auJ
bEg
-bxr
-bxv
+mZm
+oCt
bxz
pCi
lLe
@@ -110016,7 +110068,7 @@ auJ
hqv
aCs
bxw
-bxA
+fTK
fbs
bxF
auJ
@@ -112231,7 +112283,7 @@ auJ
bxT
aMi
aMi
-thp
+pUy
auR
ylo
ylo
@@ -112471,7 +112523,7 @@ aMi
aMi
aMi
kjH
-tWD
+nSp
auJ
bvL
bxW
@@ -112716,7 +112768,7 @@ aMi
uJq
qAk
kad
-bwY
+jfW
aEx
auR
auR
@@ -121738,11 +121790,11 @@ auO
atl
aCz
unf
-aCR
+ykJ
aCz
-aCR
+ykJ
aCz
-aCR
+ykJ
aEK
sWd
xoK
@@ -122228,11 +122280,11 @@ aXX
atl
aZE
unf
-aEA
+sgN
aCz
-aCR
+ykJ
aCz
-aEA
+sgN
apE
apN
aqp
@@ -122716,13 +122768,13 @@ alw
alw
alw
atl
-aCz
+oNi
unf
-aEA
+sgN
aCz
-aEA
+sgN
aCz
-aEA
+sgN
aEK
aEK
aqU
@@ -122961,7 +123013,7 @@ auU
avf
asX
ati
-aCz
+yhI
apz
dFP
dFP
diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm
index dd9f0c499d8c..a86fb326152d 100644
--- a/maps/map_files/DesertDam/Desert_Dam.dmm
+++ b/maps/map_files/DesertDam/Desert_Dam.dmm
@@ -11227,11 +11227,6 @@
/obj/structure/flora/grass/desert/heavygrass_3,
/turf/open/desert/dirt,
/area/desert_dam/interior/caves/central_caves)
-"aHO" = (
-/turf/open/asphalt/cement_sunbleached{
- icon_state = "cement_sunbleached16"
- },
-/area/desert_dam/exterior/valley/valley_wilderness)
"aHP" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/asphalt{
@@ -15509,21 +15504,6 @@
"aVw" = (
/turf/closed/wall/r_wall/prison,
/area/desert_dam/building/security/interrogation)
-"aVz" = (
-/obj/structure/flora/pottedplant,
-/obj/structure/machinery/power/apc{
- dir = 1;
- pixel_y = 24;
- start_charge = 0
- },
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/prison{
- dir = 5;
- icon_state = "red"
- },
-/area/desert_dam/building/security/lobby)
"aVA" = (
/obj/structure/machinery/light{
dir = 4
@@ -16767,12 +16747,6 @@
icon_state = "red"
},
/area/desert_dam/building/security/lobby)
-"aZt" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/interior/wood,
-/area/desert_dam/building/security/detective)
"aZu" = (
/obj/structure/pipes/vents/pump{
dir = 4
@@ -18103,12 +18077,6 @@
dir = 4
},
/area/desert_dam/exterior/river/riverside_central_north)
-"bdL" = (
-/obj/item/reagent_container/food/drinks/flask/detflask,
-/obj/item/clothing/head/det_hat,
-/obj/structure/surface/table/woodentable/fancy,
-/turf/open/floor/interior/wood,
-/area/desert_dam/building/security/detective)
"bdM" = (
/obj/item/ashtray/bronze,
/obj/item/clothing/mask/cigarette/cigar,
@@ -19719,22 +19687,6 @@
dir = 10
},
/area/desert_dam/interior/dam_interior/hanger)
-"bja" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f9"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
-"bjb" = (
-/obj/structure/computerframe,
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
-"bjc" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f5"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
"bjd" = (
/obj/structure/machinery/light{
dir = 4
@@ -19786,13 +19738,6 @@
icon_state = "swall3"
},
/area/desert_dam/interior/dam_interior/hanger)
-"bjl" = (
-/obj/structure/machinery/light,
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
-"bjm" = (
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
"bjn" = (
/obj/structure/machinery/light,
/turf/open/floor/prison{
@@ -19871,10 +19816,6 @@
icon_state = "swall8"
},
/area/desert_dam/interior/dam_interior/hanger)
-"bjA" = (
-/obj/structure/machinery/door/unpowered/shuttle,
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
"bjB" = (
/turf/closed/shuttle{
icon_state = "swall4"
@@ -20024,24 +19965,6 @@
icon_state = "cement3"
},
/area/desert_dam/interior/dam_interior/central_tunnel)
-"bkd" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/bed/chair{
- dir = 4
- },
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
-"bke" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/obj/structure/bed/chair{
- dir = 8
- },
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
"bkf" = (
/turf/open/desert/dirt{
dir = 5;
@@ -20095,18 +20018,6 @@
icon_state = "swall0"
},
/area/desert_dam/interior/dam_interior/hanger)
-"bko" = (
-/obj/structure/bed/chair{
- dir = 4
- },
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
-"bkp" = (
-/obj/structure/bed/chair{
- dir = 8
- },
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
"bkt" = (
/turf/open/desert/dirt{
dir = 8;
@@ -20943,18 +20854,6 @@
icon_state = "floor_plate"
},
/area/desert_dam/interior/dam_interior/hanger)
-"bnd" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f10"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
-"bne" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f6"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/desert_dam/interior/dam_interior/hanger)
"bnf" = (
/obj/structure/shuttle/diagonal{
icon_state = "swall_f9"
@@ -24146,18 +24045,10 @@
icon_state = "warning"
},
/area/desert_dam/interior/dam_interior/engine_room)
-"bxE" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/plating,
-/area/desert_dam/interior/dam_interior/engine_room)
"bxF" = (
/obj/effect/landmark/good_item,
/turf/open/floor/plating,
/area/desert_dam/building/warehouse/breakroom)
-"bxH" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/greengrid,
-/area/desert_dam/interior/dam_interior/engine_room)
"bxJ" = (
/turf/open/floor{
dir = 4;
@@ -24450,20 +24341,6 @@
icon_state = "bright_clean2"
},
/area/desert_dam/building/administration/hallway)
-"byG" = (
-/obj/structure/machinery/power/geothermal,
-/obj/structure/lattice{
- layer = 2.9
- },
-/turf/open/floor/plating,
-/area/desert_dam/interior/dam_interior/engine_room)
-"byJ" = (
-/obj/structure/machinery/power/geothermal,
-/obj/structure/lattice{
- layer = 2.9
- },
-/turf/open/floor/greengrid,
-/area/desert_dam/interior/dam_interior/engine_room)
"byL" = (
/obj/structure/machinery/light{
dir = 4
@@ -25294,6 +25171,7 @@
},
/area/desert_dam/interior/dam_interior/engine_east_wing)
"bBI" = (
+/obj/structure/machinery/fuelcell_recycler/full,
/turf/open/floor/prison{
icon_state = "darkyellow2"
},
@@ -27376,6 +27254,15 @@
},
/area/desert_dam/interior/dam_interior/atmos_storage)
"bIz" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
/turf/open/floor/prison{
icon_state = "green"
},
@@ -31710,6 +31597,12 @@
icon_state = "vault"
},
/area/desert_dam/building/security/prison)
+"bWO" = (
+/obj/item/reagent_container/food/drinks/flask/detflask,
+/obj/item/clothing/head/det_hat,
+/obj/structure/surface/table/woodentable/fancy,
+/turf/open/floor/interior/wood,
+/area/desert_dam/building/security/detective)
"bWP" = (
/obj/structure/disposalpipe/segment,
/obj/effect/decal/sand_overlay/sand2{
@@ -61065,6 +60958,13 @@
},
/turf/open/desert/dirt,
/area/desert_dam/exterior/valley/valley_hydro)
+"gVo" = (
+/obj/structure/machinery/power/reactor/colony,
+/obj/structure/lattice{
+ layer = 2.9
+ },
+/turf/open/floor/greengrid,
+/area/desert_dam/interior/dam_interior/engine_room)
"gWu" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -61195,6 +61095,12 @@
icon_state = "cement_sunbleached1"
},
/area/desert_dam/exterior/valley/south_valley_dam)
+"hvD" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f10"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
"hvG" = (
/turf/open/desert/dirt{
dir = 4;
@@ -61292,6 +61198,10 @@
icon_state = "cement_sunbleached13"
},
/area/desert_dam/exterior/valley/valley_telecoms)
+"hOt" = (
+/obj/structure/computerframe,
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
"hOv" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall,
@@ -61457,6 +61367,13 @@
icon_state = "whitegreen"
},
/area/desert_dam/building/medical/emergency_room)
+"iiY" = (
+/obj/structure/machinery/power/reactor/colony,
+/obj/structure/lattice{
+ layer = 2.9
+ },
+/turf/open/floor/plating,
+/area/desert_dam/interior/dam_interior/engine_room)
"ijc" = (
/obj/effect/decal/cleanable/blood,
/turf/open/floor/prison{
@@ -61722,6 +61639,10 @@
/obj/effect/decal/sand_overlay/sand1/corner1,
/turf/open/asphalt/cement_sunbleached,
/area/desert_dam/exterior/telecomm/lz2_storage)
+"jdT" = (
+/obj/structure/machinery/light,
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
"jfA" = (
/obj/structure/flora/tree/joshua,
/turf/open/desert/dirt,
@@ -61845,6 +61766,9 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/desert_dam/building/hydroponics/hydroponics_storage)
+"jIQ" = (
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
"jJa" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
@@ -62097,6 +62021,10 @@
icon_state = "tile"
},
/area/desert_dam/exterior/valley/valley_hydro)
+"kOC" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/plating,
+/area/desert_dam/interior/dam_interior/engine_room)
"kOR" = (
/obj/structure/surface/table/reinforced/prison{
color = "#6b675e"
@@ -62257,7 +62185,7 @@
/area/desert_dam/exterior/valley/valley_telecoms)
"lrn" = (
/obj/effect/landmark/nightmare{
- insert_tag = "damtemple"
+ insert_tag = "damtemple_intact"
},
/turf/open/desert/dirt{
icon_state = "desert_transition_edge1"
@@ -62696,6 +62624,21 @@
icon_state = "floor_plate"
},
/area/desert_dam/interior/dam_interior/hanger)
+"mKZ" = (
+/obj/structure/flora/pottedplant,
+/obj/structure/machinery/power/apc{
+ dir = 1;
+ pixel_y = 24;
+ start_charge = 0
+ },
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/desert_dam/building/security/lobby)
"mMm" = (
/turf/open/desert/dirt{
dir = 5;
@@ -63147,6 +63090,10 @@
"ozu" = (
/turf/open/asphalt,
/area/desert_dam/exterior/valley/south_valley_dam)
+"ozQ" = (
+/obj/structure/machinery/door/unpowered/shuttle,
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
"oAM" = (
/obj/structure/desertdam/decals/road_edge{
icon_state = "road_edge_decal2"
@@ -63204,6 +63151,12 @@
icon_state = "desert_transition_edge1"
},
/area/desert_dam/exterior/valley/valley_hydro)
+"oJW" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/interior/wood,
+/area/desert_dam/building/security/detective)
"oKG" = (
/obj/structure/desertdam/decals/road_stop{
icon_state = "stop_decal5"
@@ -63267,6 +63220,10 @@
icon_state = "wood"
},
/area/desert_dam/building/dorms/hallway_northwing)
+"oWx" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/greengrid,
+/area/desert_dam/interior/dam_interior/engine_room)
"oXx" = (
/obj/structure/machinery/colony_floodlight,
/turf/open/asphalt{
@@ -63634,6 +63591,15 @@
icon_state = "desert_transition_edge1"
},
/area/desert_dam/exterior/valley/bar_valley_dam)
+"qmn" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
"qmy" = (
/obj/structure/surface/rack,
/turf/open/floor/sandstone/runed,
@@ -64244,6 +64210,15 @@
icon_state = "desert_transition_corner1"
},
/area/desert_dam/exterior/valley/bar_valley_dam)
+"sjN" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
"skB" = (
/turf/open/desert/rock,
/area/desert_dam/exterior/valley/valley_hydro)
@@ -64331,6 +64306,12 @@
icon_state = "bright_clean2"
},
/area/desert_dam/interior/lab_northeast/east_lab_workshop)
+"swK" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f6"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
"sye" = (
/obj/effect/decal/cleanable/blood/oil/streak,
/turf/open/asphalt/cement,
@@ -64365,6 +64346,18 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/asphalt,
/area/desert_dam/exterior/valley/valley_medical)
+"sFQ" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f9"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
+"sGP" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f5"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
"sHk" = (
/obj/structure/prop/dam/boulder/boulder3,
/turf/open/desert/dirt,
@@ -65104,7 +65097,7 @@
icon_state = "S"
},
/obj/effect/landmark/nightmare{
- insert_tag = "shipgone"
+ insert_tag = "shipgone_northlz"
},
/turf/open/floor/prison{
dir = 10;
@@ -65457,7 +65450,7 @@
/area/desert_dam/interior/dam_interior/garage)
"wrl" = (
/obj/effect/landmark/nightmare{
- insert_tag = "cavein"
+ insert_tag = "cavein_engineering"
},
/turf/closed/wall/rock/orange,
/area/desert_dam/exterior/rock)
@@ -65469,6 +65462,12 @@
icon_state = "white"
},
/area/desert_dam/interior/dam_interior/garage)
+"wta" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
"wud" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor{
@@ -65541,6 +65540,12 @@
icon_state = "tile"
},
/area/desert_dam/exterior/valley/valley_crashsite)
+"wLq" = (
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/desert_dam/interior/dam_interior/hanger)
"wLI" = (
/turf/open/asphalt/cement{
icon_state = "cement1"
@@ -66037,7 +66042,7 @@
icon_state = "road_edge_decal3"
},
/obj/effect/landmark/nightmare{
- insert_tag = "minievac"
+ insert_tag = "minievac_westresearch"
},
/turf/open/asphalt,
/area/desert_dam/exterior/valley/valley_wilderness)
@@ -71580,7 +71585,7 @@ bjk
bjk
bjk
blx
-bjA
+ozQ
bmD
bnc
bhP
@@ -71806,17 +71811,17 @@ bdD
bhQ
bhP
asR
-bja
-bjl
+sFQ
+jdT
bjz
-bkd
-bko
-bko
-bko
-bkd
-bjm
-bko
-bnd
+qmn
+wta
+wta
+wta
+qmn
+jIQ
+wta
+hvD
bnc
bjB
bhP
@@ -72040,17 +72045,17 @@ bdD
bhP
bhP
vLw
-bjb
-bjm
-bjA
-bjm
-bjm
-bjm
-bjm
-bjm
-bjm
-bjm
-bjm
+hOt
+jIQ
+ozQ
+jIQ
+jIQ
+jIQ
+jIQ
+jIQ
+jIQ
+jIQ
+jIQ
bnH
boy
bhP
@@ -72274,17 +72279,17 @@ bdD
bhR
mKW
biG
-bjc
-bjl
+sGP
+jdT
bjB
-bke
-bkp
-bkp
-bkp
-bke
-bjm
-bkp
-bne
+sjN
+wLq
+wLq
+wLq
+sjN
+jIQ
+wLq
+swK
bnf
bjz
bhP
@@ -72516,7 +72521,7 @@ bjk
bjk
bjk
blx
-bjA
+ozQ
bmD
bnf
bhP
@@ -74450,7 +74455,7 @@ aSI
chG
ceA
act
-aVz
+mKZ
aXD
aXD
aXD
@@ -74921,9 +74926,9 @@ ceA
aVB
aXE
aZJ
-bdL
+bWO
bjI
-aZt
+oJW
aVB
boW
bqy
@@ -93120,9 +93125,9 @@ bQF
bCs
bSY
bwu
-bxE
-byG
-bxE
+kOC
+iiY
+kOC
bAK
bwv
bZQ
@@ -93588,9 +93593,9 @@ bSY
bCs
bSY
bwu
-bxE
-byG
-bxE
+kOC
+iiY
+kOC
bAK
bwv
bZQ
@@ -94524,9 +94529,9 @@ bTi
bCy
bTi
bwu
-bxH
-byJ
-bxH
+oWx
+gVo
+oWx
bAK
bwv
caI
@@ -94992,9 +94997,9 @@ bTi
bCy
bTi
bwu
-bxH
-byJ
-bxH
+oWx
+gVo
+oWx
bAK
bwv
caI
@@ -95928,9 +95933,9 @@ bTi
bCy
bTi
bwu
-bxH
-byJ
-bxH
+oWx
+gVo
+oWx
bAK
bwv
caI
@@ -96351,7 +96356,7 @@ awC
awC
dTs
dTs
-aHO
+aXv
aPP
aaC
aXC
@@ -96396,9 +96401,9 @@ bYF
bCy
bTi
bwu
-bxH
-byJ
-bxH
+oWx
+gVo
+oWx
bAK
bwv
caI
@@ -96597,7 +96602,7 @@ aVZ
aHd
dTs
aOh
-dTs
+aWz
dTs
dTs
dTs
@@ -98703,8 +98708,8 @@ dTs
dTs
dTs
dTs
-aam
-ayp
+dTs
+dTs
aeE
aeE
ayD
@@ -99875,7 +99880,7 @@ dTs
dTs
aam
ayp
-aeE
+dTs
aeE
bgH
dTs
diff --git a/maps/map_files/DesertDam/purpleriver/newbridge.dmm b/maps/map_files/DesertDam/purpleriver/newbridge.dmm
index 225fdabddc9f..d6de4499493d 100644
--- a/maps/map_files/DesertDam/purpleriver/newbridge.dmm
+++ b/maps/map_files/DesertDam/purpleriver/newbridge.dmm
@@ -536,11 +536,6 @@
icon_state = "tile"
},
/area/desert_dam/exterior/valley/valley_cargo)
-"bx" = (
-/turf/open/asphalt{
- icon_state = "tile"
- },
-/area/desert_dam/exterior/valley/valley_cargo)
"by" = (
/obj/structure/largecrate/random/barrel/blue,
/turf/open/asphalt{
diff --git a/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm b/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm
index 4d9a42777155..497963d344e4 100644
--- a/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm
+++ b/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm
@@ -81,12 +81,12 @@
},
/area/template_noop)
"R" = (
-/obj/item/fuelCell{
+/obj/item/fuel_cell{
fuel_amount = 0;
icon_state = "cell-empty";
pixel_x = 7
},
-/obj/item/fuelCell{
+/obj/item/fuel_cell{
fuel_amount = 0;
icon_state = "cell-empty";
pixel_x = -7;
diff --git a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm
index ba9986948eed..97f0248ff6e8 100644
--- a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm
+++ b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm
@@ -31581,9 +31581,8 @@
/turf/open/floor/wood,
/area/prison/library)
"bOa" = (
-/obj/structure/machinery/power/geothermal{
+/obj/structure/machinery/power/reactor/colony{
desc = "A thermoelectric generator fueled by searing hot uranium!";
- fail_rate = 5;
name = "thermoelectric generator"
},
/turf/open/floor/plating,
@@ -34129,6 +34128,7 @@
/obj/structure/machinery/light/small{
dir = 4
},
+/obj/structure/machinery/fuelcell_recycler/full,
/turf/open/floor/plating,
/area/prison/engineering)
"bVS" = (
@@ -36112,6 +36112,12 @@
/area/prison/engineering)
"ccl" = (
/obj/structure/machinery/light,
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
/turf/open/floor/plating,
/area/prison/engineering)
"ccm" = (
@@ -44544,6 +44550,12 @@
/obj/structure/largecrate/random/case,
/turf/open/floor/plating,
/area/prison/maintenance/residential/access/south)
+"gXC" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/plating,
+/area/prison/engineering)
"gXQ" = (
/obj/structure/machinery/light/small{
dir = 8
@@ -86370,7 +86382,7 @@ bXd
bYe
bVP
bVP
-bVP
+gXC
bRC
ceG
cfr
diff --git a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm
index 2920895292ba..f81f67e45a80 100644
--- a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm
+++ b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm
@@ -883,14 +883,10 @@
},
/area/fiorina/station/flight_deck)
"ayW" = (
-/obj/structure/bed{
- icon_state = "abed"
- },
/obj/item/explosive/grenade/incendiary/molotov,
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/prison{
- dir = 10;
- icon_state = "yellow"
+ icon_state = "floor_plate"
},
/area/fiorina/station/lowsec)
"ayX" = (
@@ -1922,11 +1918,6 @@
icon_state = "whitegreenfull"
},
/area/fiorina/tumor/ice_lab)
-"bhf" = (
-/obj/item/fuelCell,
-/obj/structure/surface/rack,
-/turf/open/floor/prison,
-/area/fiorina/maintenance)
"bht" = (
/obj/effect/decal/cleanable/blood{
icon_state = "xgib4"
@@ -1978,13 +1969,9 @@
/turf/open/floor/prison,
/area/fiorina/station/security)
"bjt" = (
-/obj/structure/bed{
- icon_state = "abed"
- },
-/obj/item/bedsheet/green,
+/obj/structure/girder,
/turf/open/floor/prison{
- dir = 6;
- icon_state = "yellow"
+ icon_state = "yellowfull"
},
/area/fiorina/station/lowsec)
"bjR" = (
@@ -2004,14 +1991,9 @@
/turf/open/floor/prison,
/area/fiorina/station/power_ring)
"bki" = (
-/obj/structure/closet{
- density = 0;
- pixel_y = 18
- },
-/obj/item/clothing/gloves/boxing/yellow,
+/obj/structure/surface/table/reinforced/prison,
/turf/open/floor/prison{
- dir = 5;
- icon_state = "yellow"
+ icon_state = "floor_plate"
},
/area/fiorina/station/lowsec)
"bkQ" = (
@@ -2034,6 +2016,13 @@
icon_state = "floor_plate"
},
/area/fiorina/tumor/aux_engi)
+"blf" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/prison{
+ dir = 1;
+ icon_state = "bluecorner"
+ },
+/area/fiorina/station/power_ring)
"blA" = (
/obj/item/shard{
icon_state = "medium";
@@ -3702,13 +3691,6 @@
icon_state = "cell_stripe"
},
/area/fiorina/station/medbay)
-"ckx" = (
-/obj/structure/platform{
- dir = 1
- },
-/obj/item/fuelCell,
-/turf/open/floor/plating/prison,
-/area/fiorina/station/lowsec)
"ckA" = (
/obj/structure/platform,
/turf/open/floor/prison,
@@ -4693,12 +4675,14 @@
},
/area/fiorina/station/transit_hub)
"cQf" = (
-/obj/structure/machinery/power/apc{
- dir = 1
+/obj/structure/machinery/light/double/blue{
+ dir = 1;
+ pixel_y = 21
},
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/explosive/grenade/incendiary/molotov,
/turf/open/floor/prison{
- dir = 1;
- icon_state = "yellow"
+ icon_state = "floor_plate"
},
/area/fiorina/station/lowsec)
"cQv" = (
@@ -5705,20 +5689,11 @@
},
/area/fiorina/lz/near_lzI)
"dxl" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
+/obj/structure/barricade/metal/wired,
+/turf/open/floor/prison{
+ icon_state = "yellowfull"
},
-/obj/structure/platform/kutjevo/smooth,
-/turf/open/space,
-/area/fiorina/oob)
+/area/fiorina/station/lowsec)
"dxv" = (
/turf/open/floor/prison{
dir = 10;
@@ -7951,10 +7926,6 @@
},
/area/fiorina/station/telecomm/lz1_cargo)
"eQb" = (
-/obj/structure/closet{
- density = 0;
- pixel_y = 18
- },
/obj/item/clothing/gloves/boxing/green,
/turf/open/floor/prison{
dir = 1;
@@ -8237,6 +8208,13 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/station/botany)
+"eXY" = (
+/obj/structure/platform,
+/obj/structure/reagent_dispensers/fueltank/oxygentank{
+ layer = 2.6
+ },
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzI)
"eYr" = (
/obj/structure/inflatable,
/obj/structure/barricade/handrail/type_b,
@@ -9153,20 +9131,12 @@
},
/area/fiorina/tumor/civres)
"fCJ" = (
-/obj/structure/platform/kutjevo/smooth,
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/barricade/handrail{
+/obj/structure/girder,
+/turf/open/floor/prison{
dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
+ icon_state = "yellow"
},
-/turf/open/space,
-/area/fiorina/oob)
+/area/fiorina/station/lowsec)
"fCW" = (
/obj/structure/surface/table/reinforced/prison,
/obj/structure/machinery/computer/communications,
@@ -9209,9 +9179,26 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/oob)
+"fDW" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/prison,
+/area/fiorina/station/power_ring)
"fEn" = (
/turf/open/floor/prison,
/area/fiorina/tumor/ice_lab)
+"fEv" = (
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/structure/surface/rack,
+/turf/open/floor/prison{
+ icon_state = "bluefull"
+ },
+/area/fiorina/station/power_ring)
"fEH" = (
/obj/structure/surface/table/reinforced/prison,
/obj/structure/machinery/computer/station_alert,
@@ -9393,7 +9380,7 @@
"fLb" = (
/obj/effect/decal/cleanable/blood/gibs,
/turf/open/floor/prison{
- dir = 9;
+ dir = 1;
icon_state = "yellow"
},
/area/fiorina/station/lowsec)
@@ -9508,11 +9495,12 @@
},
/area/fiorina/station/power_ring)
"fPl" = (
-/obj/structure/barricade/metal/wired{
- dir = 8
+/obj/structure/machinery/power/apc{
+ dir = 1
},
/turf/open/floor/prison{
- icon_state = "yellowfull"
+ dir = 1;
+ icon_state = "yellow"
},
/area/fiorina/station/lowsec)
"fPB" = (
@@ -10840,6 +10828,13 @@
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/plating/prison,
/area/fiorina/tumor/servers)
+"gFj" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/obj/item/fuel_cell,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/lowsec)
"gFp" = (
/obj/structure/inflatable/door,
/turf/open/floor/prison{
@@ -12901,6 +12896,19 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/oob)
+"hQv" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/obj/item/fuel_cell,
+/obj/structure/platform{
+ dir = 4
+ },
+/obj/structure/platform_decoration{
+ dir = 9
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/lowsec)
"hQM" = (
/obj/structure/bed/chair{
dir = 4
@@ -13042,17 +13050,11 @@
/turf/open/floor/plating/prison,
/area/fiorina/station/transit_hub)
"hTN" = (
-/obj/structure/platform_decoration/kutjevo,
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
+/obj/structure/girder,
+/turf/open/floor/prison{
+ icon_state = "yellow"
},
-/turf/open/space,
-/area/fiorina/oob)
+/area/fiorina/station/lowsec)
"hUi" = (
/obj/item/stack/sheet/metal,
/turf/open/floor/plating/prison,
@@ -14137,18 +14139,11 @@
},
/area/fiorina/oob)
"iCf" = (
-/obj/structure/closet{
- density = 0;
- pixel_y = 18
- },
-/obj/item/clothing/gloves/boxing,
-/obj/structure/machinery/light/double/blue{
- dir = 1;
- pixel_y = 21
- },
+/obj/structure/closet/wardrobe/orange,
+/obj/item/clothing/gloves/boxing/blue,
+/obj/item/clothing/gloves/boxing/blue,
/turf/open/floor/prison{
- dir = 1;
- icon_state = "yellow"
+ icon_state = "yellowfull"
},
/area/fiorina/station/lowsec)
"iCE" = (
@@ -14885,6 +14880,11 @@
icon_state = "greenfull"
},
/area/fiorina/tumor/civres)
+"iYQ" = (
+/obj/item/fuel_cell,
+/obj/structure/surface/rack,
+/turf/open/floor/prison,
+/area/fiorina/maintenance)
"iZm" = (
/obj/item/trash/chips,
/obj/structure/machinery/light/double/blue{
@@ -16961,19 +16961,6 @@
/obj/structure/window/framed/prison/reinforced/hull,
/turf/open/floor/plating/prison,
/area/fiorina/tumor/fiberbush)
-"koy" = (
-/obj/structure/platform{
- dir = 1
- },
-/obj/item/fuelCell,
-/obj/structure/platform{
- dir = 4
- },
-/obj/structure/platform_decoration{
- dir = 9
- },
-/turf/open/floor/plating/prison,
-/area/fiorina/station/lowsec)
"koH" = (
/obj/structure/surface/table/almayer,
/obj/item/clipboard,
@@ -17213,16 +17200,6 @@
icon_state = "blue"
},
/area/fiorina/station/chapel)
-"kwL" = (
-/obj/item/fuelCell,
-/obj/structure/platform,
-/obj/structure/machinery/light/double/blue{
- dir = 8;
- pixel_x = -10;
- pixel_y = 13
- },
-/turf/open/floor/plating/prison,
-/area/fiorina/station/lowsec)
"kwT" = (
/obj/structure/closet/firecloset,
/turf/open/floor/plating/prison,
@@ -17453,10 +17430,6 @@
},
/area/fiorina/tumor/servers)
"kCT" = (
-/obj/structure/toilet{
- dir = 8;
- pixel_y = 8
- },
/obj/effect/spawner/random/gun/smg,
/turf/open/floor/prison{
dir = 5;
@@ -17639,16 +17612,6 @@
icon_state = "yellow"
},
/area/fiorina/station/lowsec)
-"kIe" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/structure/prop/souto_land/pole{
- dir = 1
- },
-/obj/structure/prop/souto_land/streamer{
- dir = 9
- },
-/turf/open/floor/wood,
-/area/fiorina/station/park)
"kIg" = (
/obj/item/device/flashlight/lamp/tripod,
/turf/open/floor/prison{
@@ -18380,7 +18343,7 @@
},
/area/fiorina/station/lowsec)
"ldF" = (
-/obj/structure/closet/emcloset,
+/obj/structure/machinery/fuelcell_recycler/full,
/turf/open/floor/prison{
dir = 10;
icon_state = "blue"
@@ -18948,6 +18911,16 @@
},
/turf/open/floor/wood,
/area/fiorina/station/security/wardens)
+"lvt" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/prop/souto_land/pole{
+ dir = 1
+ },
+/obj/structure/prop/souto_land/streamer{
+ dir = 9
+ },
+/turf/open/floor/wood,
+/area/fiorina/station/park)
"lvy" = (
/turf/closed/shuttle/ert{
icon_state = "stan_rightengine"
@@ -19833,6 +19806,18 @@
icon_state = "kitchen"
},
/area/fiorina/tumor/civres)
+"lWy" = (
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/structure/surface/rack,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/power_ring)
"lXs" = (
/obj/item/book/manual/marine_law,
/obj/item/book/manual/marine_law{
@@ -19949,16 +19934,6 @@
/obj/item/clipboard,
/turf/open/floor/plating/prison,
/area/fiorina/tumor/servers)
-"mbH" = (
-/obj/structure/platform,
-/obj/item/fuelCell,
-/obj/structure/machinery/light/double/blue{
- dir = 4;
- pixel_x = 10;
- pixel_y = 13
- },
-/turf/open/floor/plating/prison,
-/area/fiorina/station/lowsec)
"mcr" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/stock_parts/matter_bin/super,
@@ -20280,6 +20255,17 @@
icon_state = "floor_plate"
},
/area/fiorina/station/chapel)
+"mok" = (
+/obj/structure/closet/crate/bravo,
+/obj/item/stack/sheet/metal/medium_stack,
+/obj/item/stack/sheet/metal/medium_stack,
+/obj/item/fuel_cell,
+/obj/item/stack/sheet/plasteel,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/prison{
+ icon_state = "bluefull"
+ },
+/area/fiorina/station/power_ring)
"mom" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/tool/surgery/surgicaldrill,
@@ -22446,6 +22432,13 @@
icon_state = "yellowcorner"
},
/area/fiorina/station/lowsec)
+"nAV" = (
+/obj/structure/machinery/fuelcell_recycler/full,
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "bluecorner"
+ },
+/area/fiorina/station/power_ring)
"nBb" = (
/obj/structure/machinery/light/double/blue{
dir = 1;
@@ -23435,10 +23428,6 @@
},
/turf/open/space,
/area/fiorina/oob)
-"ogs" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/prison,
-/area/fiorina/station/power_ring)
"ogM" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/turf/open/floor/plating/prison,
@@ -23819,13 +23808,9 @@
},
/area/fiorina/station/chapel)
"opj" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
/obj/effect/decal/cleanable/blood/gibs,
/turf/open/floor/prison{
- dir = 6;
+ dir = 4;
icon_state = "yellow"
},
/area/fiorina/station/lowsec)
@@ -24252,17 +24237,6 @@
icon_state = "blue"
},
/area/fiorina/station/civres_blue)
-"oEn" = (
-/obj/structure/closet/crate/bravo,
-/obj/item/stack/sheet/metal/medium_stack,
-/obj/item/stack/sheet/metal/medium_stack,
-/obj/item/fuelCell,
-/obj/item/stack/sheet/plasteel,
-/obj/effect/landmark/objective_landmark/close,
-/turf/open/floor/prison{
- icon_state = "bluefull"
- },
-/area/fiorina/station/power_ring)
"oEs" = (
/obj/structure/barricade/handrail/type_b{
layer = 3.5
@@ -24437,13 +24411,6 @@
/obj/structure/blocker/invisible_wall,
/turf/open/ice/noweed,
/area/fiorina/tumor/ice_lab)
-"oIg" = (
-/obj/structure/platform,
-/obj/structure/reagent_dispensers/fueltank/oxygentank{
- layer = 2.6
- },
-/turf/open/floor/prison,
-/area/fiorina/lz/near_lzI)
"oIq" = (
/obj/structure/ice/thin/indestructible{
dir = 1;
@@ -25944,13 +25911,8 @@
dir = 4
},
/obj/item/device/flashlight/lamp/tripod,
-/obj/structure/machinery/light/double/blue{
- dir = 1;
- pixel_y = 21
- },
/turf/open/floor/prison{
- dir = 1;
- icon_state = "yellow"
+ icon_state = "floor_plate"
},
/area/fiorina/station/lowsec)
"pIs" = (
@@ -26306,13 +26268,6 @@
icon_state = "floor_plate"
},
/area/fiorina/station/flight_deck)
-"pWl" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/prison{
- dir = 1;
- icon_state = "bluecorner"
- },
-/area/fiorina/station/power_ring)
"pWp" = (
/turf/closed/shuttle/ert{
icon_state = "stan8"
@@ -27297,13 +27252,6 @@
icon_state = "darkredfull2"
},
/area/fiorina/station/research_cells)
-"qBS" = (
-/obj/item/circuitboard/exosuit/peripherals/max/targeting,
-/obj/structure/surface/rack,
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/fiorina/tumor/civres)
"qBT" = (
/obj/structure/sink{
dir = 4;
@@ -27515,6 +27463,12 @@
/obj/effect/spawner/random/tool,
/turf/open/floor/prison,
/area/fiorina/station/civres_blue)
+"qHi" = (
+/obj/effect/landmark/nightmare{
+ insert_tag = "riot_control"
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/security)
"qHG" = (
/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{
pixel_y = 25
@@ -27952,10 +27906,10 @@
/turf/open/floor/prison,
/area/fiorina/station/medbay)
"qSz" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/closet/wardrobe/orange,
+/obj/item/clothing/gloves/boxing/yellow,
/turf/open/floor/prison{
- dir = 1;
- icon_state = "yellow"
+ icon_state = "yellowfull"
},
/area/fiorina/station/lowsec)
"qSA" = (
@@ -28390,6 +28344,16 @@
/obj/structure/window/framed/prison/reinforced/hull,
/turf/open/floor/plating/prison,
/area/fiorina/tumor/servers)
+"rmJ" = (
+/obj/structure/platform,
+/obj/item/fuel_cell,
+/obj/structure/machinery/light/double/blue{
+ dir = 4;
+ pixel_x = 10;
+ pixel_y = 13
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/lowsec)
"rmX" = (
/obj/structure/stairs/perspective{
icon_state = "p_stair_sn_full_cap"
@@ -29105,9 +29069,12 @@
},
/area/fiorina/station/research_cells)
"rLJ" = (
-/obj/structure/largecrate/random/case/double,
-/turf/open/floor/plating/plating_catwalk/prison,
-/area/fiorina/station/chapel)
+/obj/item/clothing/gloves/boxing,
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/lowsec)
"rMo" = (
/obj/effect/landmark/objective_landmark/far,
/obj/structure/closet/secure_closet/engineering_personal,
@@ -29430,13 +29397,6 @@
icon_state = "darkbrown2"
},
/area/fiorina/maintenance)
-"rVL" = (
-/obj/structure/largecrate/supply,
-/turf/open/floor/prison{
- dir = 1;
- icon_state = "yellow"
- },
-/area/fiorina/station/lowsec)
"rVM" = (
/obj/structure/closet/crate/miningcar,
/obj/structure/barricade/wooden{
@@ -29539,6 +29499,13 @@
icon_state = "whitegreenfull"
},
/area/fiorina/station/medbay)
+"rZM" = (
+/obj/item/circuitboard/exosuit/peripherals/max/targeting,
+/obj/structure/surface/rack,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/tumor/civres)
"rZN" = (
/obj/structure/bed/chair/comfy{
dir = 8
@@ -32882,16 +32849,6 @@
/obj/item/explosive/grenade/high_explosive/frag,
/turf/open/floor/plating/prison,
/area/fiorina/station/medbay)
-"tVf" = (
-/obj/structure/closet/crate/bravo,
-/obj/item/stack/sheet/metal/medium_stack,
-/obj/item/stack/sheet/metal/medium_stack,
-/obj/item/fuelCell,
-/obj/item/stack/sheet/plasteel,
-/turf/open/floor/prison{
- icon_state = "bluefull"
- },
-/area/fiorina/station/power_ring)
"tVI" = (
/obj/structure/inflatable/popped/door,
/turf/open/floor/prison{
@@ -33289,6 +33246,10 @@
},
/turf/open/space/basic,
/area/fiorina/oob)
+"ugI" = (
+/obj/item/fuel_cell,
+/turf/open/floor/prison,
+/area/fiorina/tumor/aux_engi)
"ugP" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/trash/plate{
@@ -33640,17 +33601,6 @@
icon_state = "darkredfull2"
},
/area/fiorina/station/research_cells)
-"utG" = (
-/obj/structure/closet{
- density = 0;
- pixel_y = 18
- },
-/obj/item/clothing/gloves/boxing/blue,
-/turf/open/floor/prison{
- dir = 1;
- icon_state = "yellow"
- },
-/area/fiorina/station/lowsec)
"utL" = (
/obj/structure/bed/chair,
/turf/open/floor/prison{
@@ -34723,12 +34673,6 @@
icon_state = "darkbrownfull2"
},
/area/fiorina/tumor/aux_engi)
-"vbG" = (
-/obj/structure/prop/structure_lattice{
- dir = 4
- },
-/turf/open/floor/plating/prison,
-/area/fiorina/maintenance)
"vbV" = (
/obj/structure/machinery/vending/coffee,
/turf/open/floor/prison,
@@ -35984,6 +35928,16 @@
"vNq" = (
/turf/closed/wall/r_wall/prison,
/area/fiorina/station/telecomm/lz1_cargo)
+"vNQ" = (
+/obj/item/fuel_cell,
+/obj/structure/platform,
+/obj/structure/machinery/light/double/blue{
+ dir = 8;
+ pixel_x = -10;
+ pixel_y = 13
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/lowsec)
"vOm" = (
/turf/open/floor/prison{
dir = 8;
@@ -36292,6 +36246,12 @@
icon_state = "greenfull"
},
/area/fiorina/station/transit_hub)
+"vZe" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/prison{
+ icon_state = "bluecorner"
+ },
+/area/fiorina/station/power_ring)
"vZs" = (
/obj/item/device/flashlight/lamp/tripod,
/turf/open/floor/prison{
@@ -36788,6 +36748,16 @@
icon_state = "floor_plate"
},
/area/fiorina/station/medbay)
+"woB" = (
+/obj/structure/closet/crate/bravo,
+/obj/item/stack/sheet/metal/medium_stack,
+/obj/item/stack/sheet/metal/medium_stack,
+/obj/item/fuel_cell,
+/obj/item/stack/sheet/plasteel,
+/turf/open/floor/prison{
+ icon_state = "bluefull"
+ },
+/area/fiorina/station/power_ring)
"wps" = (
/obj/structure/bed/sofa/south/grey/left,
/obj/structure/machinery/light/double/blue{
@@ -36889,13 +36859,6 @@
icon_state = "whitegreenfull"
},
/area/fiorina/tumor/ice_lab)
-"wsX" = (
-/obj/item/trash/snack_bowl,
-/turf/open/floor/prison{
- dir = 5;
- icon_state = "yellow"
- },
-/area/fiorina/station/lowsec)
"wtm" = (
/obj/structure/monorail{
name = "launch track"
@@ -39041,10 +39004,6 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/station/transit_hub)
-"xNw" = (
-/obj/item/fuelCell,
-/turf/open/floor/prison,
-/area/fiorina/tumor/aux_engi)
"xNG" = (
/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
/obj/effect/decal/cleanable/blood,
@@ -48787,7 +48746,7 @@ dXG
swj
xHV
dIo
-qBS
+rZM
sHL
swj
dIo
@@ -50740,8 +50699,8 @@ nMm
aHJ
jlk
jlk
-xNw
-xNw
+ugI
+ugI
jlk
jlk
umy
@@ -55642,7 +55601,7 @@ tkj
oer
ckZ
kXD
-kIe
+lvt
tas
tas
tTA
@@ -62438,11 +62397,11 @@ lgS
eLu
eLu
eLu
-bhf
-bhf
+iYQ
+iYQ
eLu
-bhf
-bhf
+iYQ
+iYQ
eLu
eLu
ppI
@@ -63286,11 +63245,11 @@ lgS
eLu
eLu
eLu
-bhf
-bhf
+iYQ
+iYQ
eLu
-bhf
-bhf
+iYQ
+iYQ
eLu
eLu
cME
@@ -66401,9 +66360,9 @@ iKs
nTv
dtS
fQA
-bFr
-bFr
-bFr
+bis
+bis
+bis
oLV
nxq
dBy
@@ -66612,10 +66571,10 @@ iKs
nTv
dtS
fQA
-bFr
-bFr
-bQM
-bFr
+bis
+bis
+cME
+bis
bis
gXd
dBy
@@ -66823,12 +66782,12 @@ tyj
tyj
dtS
fQA
-bFr
-bFr
-bQM
-bQM
-bFr
-rLJ
+bis
+bis
+cME
+cME
+wpD
+iKs
oeY
dBy
nxq
@@ -67034,12 +66993,12 @@ rJF
fmb
dBy
dBy
+dBy
+bis
+cME
+cME
+cME
bis
-bFr
-bQM
-bQM
-bQM
-bFr
bis
gXd
qIT
@@ -67246,12 +67205,12 @@ bFr
twb
eLu
tLC
+tLC
+eLu
+cME
+cME
+cME
eLu
-twb
-twb
-twb
-twb
-twb
tIn
dwP
dBy
@@ -67683,7 +67642,7 @@ twb
eBO
eBO
eBO
-twb
+eLu
eLu
eLu
eLu
@@ -67887,7 +67846,7 @@ tIU
gZc
tIU
cME
-liA
+cME
cME
qIq
eLu
@@ -67895,7 +67854,7 @@ uvF
rzp
vds
elO
-uvF
+cME
wQT
eLu
cME
@@ -68095,11 +68054,11 @@ twb
twb
twb
cME
-eLu
-eLu
-eLu
+cME
+cME
+cME
bgy
-eLu
+cME
cME
cME
cME
@@ -68311,7 +68270,7 @@ cME
cME
cME
cME
-liA
+cME
cME
cME
cME
@@ -68523,7 +68482,7 @@ twb
twb
cME
cME
-eLu
+cME
cME
rJh
eLu
@@ -68531,7 +68490,7 @@ eLu
dHD
xbM
fHo
-vbG
+cME
vZD
cME
cME
@@ -68575,7 +68534,7 @@ uGY
ihB
ihB
ubP
-ubP
+qHi
gag
sbF
sbF
@@ -68739,8 +68698,8 @@ eLu
mrk
cME
jkg
-uvF
-rVL
+cME
+dHD
xbM
fHo
xno
@@ -68947,15 +68906,15 @@ bQM
twb
nSU
cME
-eLu
+cME
cME
cME
eLu
-uvF
+jkg
dHD
xbM
fHo
-uvF
+cME
wQT
eLu
cYP
@@ -69159,7 +69118,7 @@ bQM
twb
uts
cME
-liA
+cME
cME
cME
cME
@@ -69371,17 +69330,17 @@ iYw
twb
eLu
eLu
-eLu
+cME
srI
dTf
+cME
eLu
-twb
dHD
xbM
fHo
-wzE
-sfu
-jyF
+ioc
+bjt
+bjt
kqC
sfu
jyF
@@ -69586,13 +69545,13 @@ tmo
gfo
cME
wQT
-eLu
+cME
kqC
dHD
xbM
fHo
-kqC
-wsX
+ioc
+ioc
bjt
kqC
qNF
@@ -69619,12 +69578,12 @@ ihB
ceC
obh
obh
-nqN
+ceC
bxc
jbF
bBK
ceC
-uGY
+ceC
uGY
uGY
uGY
@@ -69791,21 +69750,21 @@ ssc
aeI
nQu
suX
-bLJ
-twb
-twb
-tPN
-tPN
-tPN
-twb
+neY
+liA
+yfK
+tmo
+gfo
+cME
+cME
eLu
kqC
-dHD
+fCJ
xbM
fHo
-kqC
-ryJ
-end
+ioc
+ioc
+kgN
kqC
ryJ
end
@@ -70003,16 +69962,16 @@ aeI
aeI
aeI
nQu
-hCh
-sKY
-bQM
-bQM
-bQM
-bQM
-bQM
+bLJ
+iYw
+wzE
+hZR
+hZR
+hZR
+wzE
wzE
kqC
-dHD
+fCJ
bPn
fHo
ioc
@@ -70043,7 +70002,7 @@ stw
wQg
qet
mKp
-nqN
+ceC
qJv
bqF
tNF
@@ -70250,15 +70209,15 @@ kjX
ueP
gag
hQj
-nqN
-nqN
-nqN
-nqN
-nqN
-nqN
+uGY
+uGY
+uGY
+uGY
+uGY
+ceC
+ceC
+ceC
ceC
-nqN
-nqN
ceC
unz
gag
@@ -70650,7 +70609,7 @@ srp
bqD
cAJ
xbM
-fHo
+hTN
kqC
rzp
tKk
@@ -70691,7 +70650,7 @@ uGY
ppq
ubP
ihB
-nqN
+uGY
lJx
fAf
fAf
@@ -70862,7 +70821,7 @@ mGr
upY
dHD
xbM
-fHo
+hTN
kqC
qLi
dpe
@@ -71074,7 +71033,7 @@ mGr
upY
dHD
xbM
-fHo
+voO
kqC
kqC
kqC
@@ -71101,7 +71060,7 @@ qdE
uGY
ltQ
ltQ
-nqN
+uGY
ltQ
ayo
uGY
@@ -71287,9 +71246,9 @@ upY
dHD
xbM
fHo
-kqC
-sfu
-jyF
+ioc
+ioc
+ioc
kqC
sfu
iEG
@@ -71313,7 +71272,7 @@ uGY
uGY
fRq
fRq
-nqN
+uGY
fRq
ygr
xGt
@@ -71499,9 +71458,9 @@ iox
dHD
xbM
fHo
-kqC
-qNF
-bjt
+ioc
+ioc
+ioc
kqC
qNF
mDO
@@ -71710,10 +71669,10 @@ iYw
izh
dHD
xbM
-voO
-kqC
-ryJ
-end
+fHo
+ioc
+ioc
+kgN
kqC
ryJ
end
@@ -71751,7 +71710,7 @@ uGY
ceC
uGY
uGY
-nqN
+uGY
qQd
jwK
jwK
@@ -71913,14 +71872,14 @@ aeI
nQu
hCh
sKY
-hTN
-fyC
-qOk
-mKS
-erT
-wzE
+cAW
+cAW
+cAW
+cAW
+cAW
wzE
-dHD
+kqC
+fPl
xbM
fHo
ioc
@@ -71944,8 +71903,8 @@ dCM
dCM
dCM
nqN
-nqN
-nqN
+uGY
+uGY
uxv
ceC
ceC
@@ -72125,14 +72084,14 @@ aeI
nQu
hCh
sKY
-dxl
-afk
-afk
-afk
-ghg
+cAW
+cAW
+cAW
wzE
wzE
-dHD
+wzE
+kqC
+nBb
xbM
fHo
ioc
@@ -72337,19 +72296,19 @@ nQu
bVE
iYw
iYw
-urJ
-afk
-hkh
-afk
-tCZ
-pcu
+cAW
+cAW
+wzE
wzE
+cQf
+xbM
+dxl
dHD
xbM
-voO
-kqC
-ryJ
-end
+fHo
+ioc
+ioc
+kgN
kqC
ryJ
end
@@ -72548,20 +72507,20 @@ eMI
nQu
bVE
iYw
-jKI
-mdJ
-afk
-afk
-afk
-xMW
-jlH
+cAW
+cAW
+cAW
wzE
+bki
+xbM
+xbM
+dxl
cPh
xbM
fHo
-kqC
-rzp
-mwP
+ioc
+ioc
+ioc
kqC
rzp
ldz
@@ -72762,18 +72721,18 @@ aPv
iYw
iYw
iYw
-fCJ
-llQ
-jKI
-bUB
-bQM
+cAW
wzE
-nBb
+xbM
+xbM
+xbM
+ioc
+dHD
xbM
fHo
-kqC
-qLi
-dpe
+ioc
+ioc
+ioc
kqC
qLi
dpe
@@ -72976,16 +72935,16 @@ vOZ
iYw
sKY
wzE
-wzE
-wzE
-wzE
-wzE
-cQf
+xbM
+xbM
+xbM
+ioc
+dHD
jpx
fHo
-kqC
-kqC
-kqC
+ioc
+ioc
+ioc
kqC
kqC
kqC
@@ -73191,13 +73150,13 @@ oFI
mCe
xbM
sJP
-kqC
+ioc
dHD
xbM
fHo
-kqC
-sfu
-jyF
+ioc
+ioc
+ioc
kqC
sfu
jyF
@@ -73407,9 +73366,9 @@ ioc
dHD
xbM
fHo
-kqC
-qNF
-mDO
+ioc
+ioc
+ioc
kqC
qNF
eub
@@ -73618,10 +73577,10 @@ xbM
ioc
nbP
xbM
-voO
-kqC
-cRB
-end
+fHo
+ioc
+ioc
+kgN
kqC
ryJ
end
@@ -73826,7 +73785,7 @@ bce
wzE
kqC
ioc
-fPl
+ioc
kqC
oFp
xbM
@@ -74262,7 +74221,7 @@ kqC
ryJ
end
kqC
-iCf
+nBb
xbM
voO
kqC
@@ -75105,12 +75064,12 @@ xbM
bkQ
xbM
qNF
-qSz
+dHD
kqC
rkp
iKy
kqC
-utG
+dHD
xbM
jbm
xbM
@@ -75322,7 +75281,7 @@ kqC
qNF
efW
kqC
-bki
+qNF
xRI
iXq
xRI
@@ -75733,11 +75692,11 @@ ioc
ioc
ioc
qNF
-xRI
-xRI
-xRI
nAK
xbM
+xbM
+xbM
+xbM
jET
xbM
xbM
@@ -75748,12 +75707,12 @@ elO
hZR
bQM
hZR
-jvi
+iCf
rzp
vds
vds
vds
-elO
+rLJ
jvi
duF
jTN
@@ -75945,9 +75904,9 @@ kqC
ecd
kqC
kqC
-cRB
-end
-kqC
+dHD
+xbM
+xbM
pHx
xbM
eNa
@@ -76159,8 +76118,8 @@ vRA
kqC
fLb
ayW
-kqC
-dHD
+xbM
+xbM
xbM
rYK
kqC
@@ -76172,7 +76131,7 @@ end
wzE
bQM
hZR
-jvi
+qSz
dHD
eNa
rwK
@@ -76371,8 +76330,8 @@ arl
oFI
kCT
opj
-kqC
-dHD
+xRI
+nAK
xbM
fHo
kqC
@@ -77444,7 +77403,7 @@ end
kqC
wzE
pah
-kwL
+vNQ
xbM
iCN
qOq
@@ -77655,14 +77614,14 @@ vds
elO
ioc
duF
-koy
+hQv
gsL
mOI
xbM
qOq
xbM
xbM
-ckx
+gFj
sNN
goG
tOM
@@ -77875,7 +77834,7 @@ qOq
huG
xbM
pah
-mbH
+rmJ
goG
tOM
tOM
@@ -80855,8 +80814,8 @@ jyo
mxQ
mxQ
mxQ
-tVf
-oEn
+woB
+mok
mxQ
pRx
tOM
@@ -82119,8 +82078,8 @@ gbf
pYB
pYB
gbf
-pWl
-ogs
+blf
+fDW
mxQ
jjg
mxQ
@@ -82546,7 +82505,7 @@ gbf
iYe
bnx
siy
-nBw
+nAV
mxQ
mxQ
vUZ
@@ -82759,7 +82718,7 @@ doQ
upM
vjR
nBw
-ogs
+fDW
jjg
cBn
rxM
@@ -82958,7 +82917,7 @@ tOM
xpM
mxQ
mxQ
-jzP
+vZe
ydK
jzP
tlj
@@ -82971,7 +82930,7 @@ taS
jEa
hPu
ydK
-pWl
+blf
mxQ
mxQ
jLD
@@ -84018,7 +83977,7 @@ tOM
xpM
mxQ
mxQ
-pYB
+fEv
uTw
pYB
pYB
@@ -84230,7 +84189,7 @@ tOM
rdt
rsQ
mxQ
-gbf
+lWy
gbf
gbf
jMv
@@ -92042,7 +92001,7 @@ xeO
xfb
yat
xeO
-oIg
+eXY
nGZ
nGZ
rJW
diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm
index d2ac75d644c7..6cda425f51b0 100644
--- a/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm
+++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm
@@ -62,7 +62,8 @@
/area/template_noop)
"l" = (
/obj/item/limb/head/synth{
- pixel_x = -9
+ pixel_x = -9;
+ icon_state = "scandinavian_head_m"
},
/obj/structure/platform_decoration/kutjevo{
dir = 1
diff --git a/maps/map_files/FOP_v3_Sciannex/standalone/riot_in_progress.dmm b/maps/map_files/FOP_v3_Sciannex/standalone/riot_in_progress.dmm
new file mode 100644
index 000000000000..721ebbc10aed
--- /dev/null
+++ b/maps/map_files/FOP_v3_Sciannex/standalone/riot_in_progress.dmm
@@ -0,0 +1,2269 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"am" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/donut_box{
+ pixel_y = 6
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"aE" = (
+/obj/item/device/flashlight/lamp/tripod,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/lz/near_lzII)
+"aK" = (
+/obj/item/clothing/under/marine/ua_riot,
+/obj/item/clothing/head/helmet/marine/veteran/ua_riot,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"aX" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/computer/cameras{
+ dir = 8
+ },
+/obj/structure/machinery/light/double/blue{
+ dir = 1;
+ pixel_y = 21
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"bb" = (
+/obj/structure/stairs/perspective{
+ dir = 8;
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"bl" = (
+/obj/structure/machinery/vending/coffee,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"bm" = (
+/obj/item/shard{
+ icon_state = "large"
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"bC" = (
+/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"bO" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"ce" = (
+/obj/effect/decal/cleanable/blood/oil,
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"ch" = (
+/obj/structure/barricade/deployable{
+ dir = 8
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"cn" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/stack/cable_coil,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"co" = (
+/obj/structure/prop/almayer/computers/sensor_computer3,
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/fiorina/station/security)
+"cr" = (
+/obj/structure/sign/poster/clf,
+/turf/closed/wall/prison,
+/area/fiorina/station/security)
+"cI" = (
+/obj/structure/platform,
+/turf/open/floor/prison{
+ dir = 4;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/station/security)
+"cZ" = (
+/obj/structure/bed/chair/comfy{
+ dir = 1
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"do" = (
+/obj/structure/coatrack,
+/obj/item/clothing/suit/storage/CMB,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"dT" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/machinery/computer/cameras{
+ dir = 8
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"eK" = (
+/obj/structure/window/framed/prison/reinforced/hull,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"fd" = (
+/obj/structure/window/framed/prison/reinforced,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"fh" = (
+/obj/structure/machinery/photocopier,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"fs" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/computer/secure_data,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"fy" = (
+/obj/item/explosive/grenade/flashbang,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"fX" = (
+/obj/structure/machinery/photocopier{
+ pixel_y = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/fiorina/station/security)
+"fZ" = (
+/obj/item/ammo_magazine/rifle/m16,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"gk" = (
+/obj/structure/closet/secure_closet/guncabinet{
+ req_access = null
+ },
+/obj/item/ammo_magazine/shotgun/buckshot,
+/obj/item/ammo_magazine/shotgun/buckshot,
+/obj/item/reagent_container/glass/bottle/robot/antitoxin,
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot,
+/obj/item/prop/helmetgarb/riot_shield,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"gl" = (
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"gI" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/tool/pen,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"gT" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_27";
+ layer = 3.1;
+ pixel_x = -2;
+ pixel_y = 10
+ },
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"gV" = (
+/obj/structure/window/framed/prison,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"hg" = (
+/obj/effect/landmark/corpsespawner/security/marshal,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"hI" = (
+/obj/item/stack/folding_barricade,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"hY" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"is" = (
+/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{
+ req_one_access = null
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"iK" = (
+/obj/structure/filingcabinet,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"jb" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"ji" = (
+/obj/item/device/flash,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"jI" = (
+/obj/item/tool/crowbar/red,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"jJ" = (
+/obj/item/clothing/head/helmet/marine/veteran/ua_riot,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"jL" = (
+/obj/structure/barricade/deployable{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ dir = 4;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/lz/near_lzII)
+"jW" = (
+/obj/item/frame/table/almayer,
+/obj/effect/decal/cleanable/blood/oil/streak,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"ke" = (
+/obj/structure/machinery/vending/security,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"kX" = (
+/obj/structure/closet/secure_closet/guncabinet{
+ req_access = null
+ },
+/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
+/obj/item/ammo_magazine/shotgun/buckshot,
+/obj/item/ammo_magazine/shotgun/buckshot,
+/obj/item/storage/belt/shotgun,
+/obj/item/clothing/under/marine/ua_riot,
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot,
+/obj/item/prop/helmetgarb/riot_shield,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"lv" = (
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/station/security)
+"lA" = (
+/obj/item/stack/folding_barricade,
+/turf/open/floor/prison{
+ dir = 4;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/lz/near_lzII)
+"lE" = (
+/obj/structure/window/reinforced,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"lF" = (
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"lO" = (
+/obj/effect/decal/cleanable/blood{
+ dir = 4;
+ icon_state = "gib6"
+ },
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/lz/near_lzII)
+"lP" = (
+/obj/structure/closet/secure_closet/guncabinet{
+ req_access = null
+ },
+/obj/item/storage/box/pillbottles,
+/obj/item/clothing/under/marine/ua_riot,
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"lR" = (
+/obj/structure/bed/chair/comfy{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"lZ" = (
+/obj/item/clothing/under/marine/ua_riot,
+/obj/item/weapon/gun/rifle/m16,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"ma" = (
+/obj/structure/stairs/perspective{
+ dir = 8;
+ icon_state = "p_stair_full"
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"mf" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"mn" = (
+/obj/structure/prop/almayer/computers/sensor_computer2,
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/fiorina/station/security)
+"mt" = (
+/obj/effect/spawner/random/gun/shotgun/midchance,
+/obj/effect/landmark/corpsespawner/ua_riot,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"mD" = (
+/obj/structure/barricade/handrail{
+ dir = 1;
+ pixel_y = 2
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"nf" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/box/nade_box/tear_gas,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"nl" = (
+/turf/template_noop,
+/area/template_noop)
+"np" = (
+/obj/structure/machinery/landinglight/ds2/delaythree{
+ dir = 4
+ },
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"nD" = (
+/obj/structure/platform,
+/obj/effect/decal/cleanable/blood/gibs/xeno,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"nN" = (
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/lz/near_lzII)
+"oi" = (
+/obj/structure/machinery/door/airlock/prison_hatch/autoname{
+ locked = 1
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"on" = (
+/obj/structure/closet/secure_closet/guncabinet{
+ req_access = null
+ },
+/obj/item/weapon/gun/launcher/grenade/m81,
+/obj/item/storage/pill_bottle/kelotane,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"oE" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/recharger{
+ pixel_y = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"oS" = (
+/obj/structure/barricade/wooden{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"pa" = (
+/obj/structure/filingcabinet{
+ pixel_x = -8
+ },
+/obj/structure/filingcabinet{
+ pixel_x = 8
+ },
+/obj/item/reagent_container/food/drinks/coffeecup{
+ pixel_x = -7;
+ pixel_y = 11
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"pd" = (
+/obj/item/ammo_magazine/handful/shotgun/beanbag,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"pn" = (
+/obj/effect/acid_hole,
+/turf/closed/wall/r_wall/prison,
+/area/fiorina/station/security)
+"pp" = (
+/obj/item/ammo_casing,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"pE" = (
+/obj/item/clothing/glasses/sunglasses/blindfold,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"pN" = (
+/obj/item/ammo_box/magazine/shotgun/beanbag,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"pR" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_29";
+ pixel_y = 10
+ },
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"pV" = (
+/obj/effect/landmark/corpsespawner/prisoner,
+/obj/item/tool/kitchen/utensil/knife,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"qd" = (
+/obj/structure/bed/chair/comfy{
+ dir = 8
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"qw" = (
+/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"qQ" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/folder/black_random,
+/obj/item/folder/red{
+ pixel_x = 3;
+ pixel_y = 5
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"qX" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/machinery/light/double/blue{
+ dir = 1;
+ pixel_y = 21
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"qY" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_29";
+ pixel_y = 10
+ },
+/obj/structure/machinery/light/double/blue{
+ dir = 1;
+ pixel_y = 21
+ },
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"rg" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"rl" = (
+/obj/item/tool/weldingtool,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"rP" = (
+/obj/item/reagent_container/spray/pepper,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"rR" = (
+/obj/structure/closet/secure_closet/guncabinet{
+ req_access = null
+ },
+/obj/item/weapon/gun/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/storage/belt/marine,
+/obj/item/clothing/under/marine/ua_riot,
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot,
+/obj/item/prop/helmetgarb/riot_shield,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"sj" = (
+/obj/structure/bed/chair/comfy,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"sq" = (
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"sA" = (
+/obj/structure/machinery/computer/prisoner,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"tf" = (
+/obj/item/prop/helmetgarb/riot_shield,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"th" = (
+/obj/item/weapon/baton,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"tl" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/fiorina/station/security)
+"tv" = (
+/obj/structure/machinery/photocopier{
+ pixel_y = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"ty" = (
+/obj/structure/machinery/power/apc{
+ dir = 1
+ },
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"tS" = (
+/obj/structure/closet/secure_closet/security_empty,
+/obj/item/clothing/accessory/storage/holster,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"uh" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/device/flash,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"uQ" = (
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"uX" = (
+/obj/item/ammo_magazine/shotgun/beanbag,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"vf" = (
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "floor_marked"
+ },
+/area/fiorina/lz/near_lzII)
+"vq" = (
+/turf/closed/wall/r_wall/prison,
+/area/fiorina/station/security)
+"vS" = (
+/obj/structure/filingcabinet,
+/obj/structure/filingcabinet{
+ pixel_x = 16
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"wi" = (
+/obj/structure/machinery/vending/snack,
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"wF" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/device/flashlight/lamp{
+ pixel_x = -6;
+ pixel_y = 16
+ },
+/obj/structure/machinery/computer/secure_data{
+ dir = 8
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"wH" = (
+/obj/effect/decal/cleanable/blood/oil,
+/obj/item/circuitboard/airlock,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"wJ" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/clothing/head/helmet/marine/veteran/ua_riot,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"wW" = (
+/obj/effect/landmark/corpsespawner/ua_riot,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"xp" = (
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_29";
+ pixel_y = 6
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/lz/near_lzII)
+"xv" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/book/manual/security_space_law{
+ pixel_x = 3;
+ pixel_y = 5
+ },
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/fiorina/station/security)
+"xI" = (
+/obj/effect/landmark/survivor_spawner/fiorina_armory_cmb,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"xM" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/phone{
+ pixel_x = 7;
+ pixel_y = -16
+ },
+/obj/item/phone{
+ pixel_x = -3;
+ pixel_y = 16
+ },
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"xW" = (
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"yf" = (
+/obj/item/frame/table/reinforced,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"yn" = (
+/obj/item/weapon/classic_baton,
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"yv" = (
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/lz/near_lzII)
+"yP" = (
+/obj/structure/closet/secure_closet/guncabinet{
+ req_access = null
+ },
+/obj/item/clothing/under/marine/ua_riot,
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot,
+/obj/item/prop/helmetgarb/riot_shield,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"zb" = (
+/obj/structure/machinery/light/double/blue,
+/obj/item/stack/sheet/metal,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"zx" = (
+/obj/structure/closet/secure_closet/security_empty,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/ammo_magazine/shotgun/beanbag,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"zA" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_29";
+ pixel_y = 10
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"zI" = (
+/obj/structure/machinery/computer/secure_data,
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"Ac" = (
+/obj/structure/window/framed/prison/reinforced,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Ai" = (
+/obj/structure/bed/sofa/south/grey/left,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"AD" = (
+/obj/effect/decal/cleanable/blood/xeno{
+ icon_state = "xgib3"
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"AM" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/book/manual/security_space_law{
+ pixel_x = 8;
+ pixel_y = 1
+ },
+/obj/item/book/manual/security_space_law{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/book/manual/security_space_law{
+ pixel_x = 3;
+ pixel_y = 5
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"AY" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/phone{
+ pixel_x = -3;
+ pixel_y = 10
+ },
+/obj/item/phone{
+ pixel_x = 9;
+ pixel_y = -10
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"Bd" = (
+/obj/structure/barricade/handrail{
+ dir = 8
+ },
+/obj/item/stack/sheet/metal,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"BJ" = (
+/obj/structure/closet/secure_closet/guncabinet{
+ req_access = null
+ },
+/obj/item/weapon/gun/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/clothing/under/marine/ua_riot,
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot,
+/obj/item/prop/helmetgarb/riot_shield,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Cb" = (
+/obj/structure/barricade/deployable{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"CO" = (
+/obj/item/ammo_magazine/handful/shotgun/beanbag,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"De" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/phone{
+ pixel_y = 7
+ },
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/fiorina/station/security)
+"DH" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/machinery/computer/cameras{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"Ek" = (
+/obj/item/reagent_container/food/drinks/coffeecup{
+ pixel_x = 7;
+ pixel_y = 14
+ },
+/obj/item/shard{
+ icon_state = "large"
+ },
+/obj/item/stack/rods,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"ER" = (
+/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"EV" = (
+/obj/item/frame/rack,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Fj" = (
+/obj/structure/stairs/perspective{
+ dir = 8;
+ icon_state = "p_stair_sn_full_cap"
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"Fr" = (
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/fiorina/lz/near_lzII)
+"Fw" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/faxmachine,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"FH" = (
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"FK" = (
+/obj/item/frame/rack,
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot,
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"FQ" = (
+/obj/effect/landmark/corpsespawner/ua_riot,
+/obj/item/weapon/gun/energy/taser,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"FZ" = (
+/obj/item/weapon/shield/riot,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"Gd" = (
+/obj/structure/closet/secure_closet/guncabinet{
+ req_access = null
+ },
+/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
+/obj/item/ammo_magazine/shotgun/buckshot,
+/obj/item/ammo_magazine/shotgun/buckshot,
+/obj/item/clothing/under/marine/ua_riot,
+/obj/item/storage/pill_bottle/alkysine,
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Gl" = (
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/fiorina/station/security)
+"GH" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/phone{
+ pixel_y = -4
+ },
+/obj/item/phone{
+ pixel_x = 7;
+ pixel_y = 10
+ },
+/obj/item/tool/pen,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"GZ" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Ho" = (
+/obj/structure/window_frame/prison/reinforced,
+/obj/item/shard,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"HF" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/reagent_container/spray/pepper,
+/obj/item/clothing/glasses/sunglasses/sechud,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"HH" = (
+/obj/item/weapon/gun/launcher/grenade/m81/riot,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"HL" = (
+/obj/item/clothing/under/color/orange,
+/obj/effect/spawner/gibspawner/human,
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "floor_marked"
+ },
+/area/fiorina/lz/near_lzII)
+"HW" = (
+/obj/structure/machinery/computer/cameras{
+ dir = 1
+ },
+/obj/item/tool/screwdriver{
+ pixel_x = 5;
+ pixel_y = -4
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Ie" = (
+/obj/structure/stairs/perspective{
+ dir = 4;
+ icon_state = "p_stair_sn_full_cap"
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"Iz" = (
+/obj/structure/closet/secure_closet/security_empty,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/storage/box/flashbangs,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"IG" = (
+/obj/structure/extinguisher_cabinet,
+/turf/closed/wall/prison,
+/area/fiorina/station/security)
+"IK" = (
+/obj/item/clothing/head/helmet/marine/veteran/ua_riot,
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/lz/near_lzII)
+"JR" = (
+/obj/item/ammo_casing,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Kb" = (
+/obj/item/weapon/baton,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"KU" = (
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"Lj" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/computer/cameras{
+ dir = 8
+ },
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/fiorina/station/security)
+"Mg" = (
+/obj/structure/sign/poster/clf,
+/turf/closed/wall/prison,
+/area/fiorina/lz/near_lzII)
+"Mp" = (
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_y = 30
+ },
+/obj/item/explosive/grenade/custom/teargas,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"MX" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"Ne" = (
+/obj/structure/closet/secure_closet/guncabinet{
+ req_access = null
+ },
+/obj/item/weapon/gun/smg/mp5,
+/obj/item/storage/belt/marine,
+/obj/item/clothing/under/marine/ua_riot,
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot,
+/obj/item/prop/helmetgarb/riot_shield,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"NL" = (
+/obj/structure/platform,
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/station/security)
+"NN" = (
+/obj/item/ammo_magazine/rifle/m16,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"Ox" = (
+/obj/structure/platform,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"OA" = (
+/obj/item/implanter/compressed,
+/obj/structure/safe,
+/obj/effect/landmark/objective_landmark/science,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"OE" = (
+/obj/structure/machinery/vending/cola,
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"OV" = (
+/obj/effect/landmark/corpsespawner/prisoner,
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"Pt" = (
+/obj/item/prop/helmetgarb/riot_shield,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"PA" = (
+/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{
+ dir = 1;
+ req_one_access = null
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"Qv" = (
+/obj/structure/machinery/door/airlock/prison_hatch/autoname,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"QC" = (
+/obj/structure/machinery/vending/security,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"QF" = (
+/obj/structure/machinery/landinglight/ds2/delaytwo{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/lz/near_lzII)
+"QJ" = (
+/turf/closed/wall/prison,
+/area/fiorina/station/security)
+"QV" = (
+/obj/item/frame/rack,
+/obj/item/clothing/under/marine/ua_riot,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Re" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/recharger{
+ pixel_y = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/fiorina/station/security)
+"RR" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/fancy/cigarettes/emeraldgreen,
+/obj/item/tool/lighter,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Sd" = (
+/obj/item/poster,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"Sl" = (
+/obj/structure/extinguisher_cabinet,
+/turf/closed/wall/r_wall/prison,
+/area/fiorina/station/security)
+"Sm" = (
+/obj/structure/machinery/deployable/barrier,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"Sn" = (
+/obj/structure/prop/almayer/computers/sensor_computer1{
+ name = "computer"
+ },
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/fiorina/station/security)
+"Sp" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/computer/cameras{
+ dir = 8
+ },
+/obj/item/phone{
+ pixel_x = -3;
+ pixel_y = 13
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"Su" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/stack/rods,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"SD" = (
+/obj/structure/machinery/vending/coffee,
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"SE" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_ew_full_cap"
+ },
+/obj/structure/platform/stair_cut/alt,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"Tn" = (
+/obj/structure/machinery/power/apc{
+ dir = 4
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"Tp" = (
+/obj/item/paper/crumpled,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"TO" = (
+/obj/item/stack/tile/plasteel,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"UE" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/computer/cameras{
+ dir = 1
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"UU" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/ammo_magazine/rifle/m16,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Va" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Vb" = (
+/obj/item/stack/cable_coil,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"Vd" = (
+/obj/effect/decal/cleanable/blood{
+ dir = 4;
+ icon_state = "gib6"
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/lz/near_lzII)
+"Vs" = (
+/obj/structure/closet/secure_closet/guncabinet{
+ req_access = null
+ },
+/obj/item/clothing/under/marine/ua_riot,
+/obj/item/clothing/suit/storage/marine/veteran/ua_riot,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"VF" = (
+/turf/closed/wall/prison,
+/area/fiorina/lz/near_lzII)
+"VG" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/effect/spawner/random/goggles/lowchance,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Wc" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 1;
+ pixel_y = 21
+ },
+/turf/open/floor/prison,
+/area/fiorina/lz/near_lzII)
+"Wp" = (
+/obj/structure/closet/secure_closet/security_empty,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/weapon/classic_baton,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Ws" = (
+/obj/structure/bed/sofa/south/grey/right,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Wy" = (
+/obj/item/weapon/shield/riot,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"WB" = (
+/obj/structure/bed/chair/office/light{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/fiorina/station/security)
+"WG" = (
+/obj/item/stack/rods,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"WI" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/phone{
+ pixel_x = 6;
+ pixel_y = -15
+ },
+/obj/item/phone{
+ pixel_y = 7
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"WW" = (
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"Xj" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/box/handcuffs{
+ pixel_x = 6;
+ pixel_y = 1
+ },
+/obj/item/storage/box/handcuffs{
+ pixel_x = -7;
+ pixel_y = 1
+ },
+/obj/item/storage/box/handcuffs{
+ pixel_x = -2;
+ pixel_y = 11
+ },
+/obj/structure/machinery/light/double/blue{
+ dir = 1;
+ pixel_y = 21
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"XA" = (
+/obj/item/storage/belt/marine,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"XO" = (
+/obj/structure/machinery/landinglight/ds2/delayone{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/lz/near_lzII)
+"XV" = (
+/turf/closed/wall/r_wall/prison_unmeltable,
+/area/fiorina/station/security)
+"Yt" = (
+/turf/open/floor/prison{
+ dir = 4;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/station/security)
+"YH" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/obj/item/weapon/gun/energy/taser,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/security)
+"YI" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/device/radio{
+ pixel_x = -6;
+ pixel_y = 16
+ },
+/obj/item/device/radio{
+ pixel_x = 6;
+ pixel_y = 7
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"YL" = (
+/obj/structure/window/framed/prison/reinforced,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/security)
+"YS" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/ashtray/plastic,
+/obj/item/clothing/mask/cigarette,
+/obj/item/trash/cigbutt/ucigbutt{
+ pixel_y = 8
+ },
+/obj/structure/sign/nosmoking_1{
+ pixel_y = 30
+ },
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"YZ" = (
+/obj/effect/landmark/corpsespawner/prisoner,
+/obj/structure/bed/chair/comfy{
+ dir = 8
+ },
+/obj/item/shard/shrapnel,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+"Zg" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/flora/pottedplant{
+ pixel_y = 9
+ },
+/obj/structure/machinery/light/double/blue,
+/turf/open/floor/prison,
+/area/fiorina/station/security)
+"Zi" = (
+/obj/structure/machinery/line_nexter,
+/obj/item/stack/cable_coil,
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/fiorina/station/security)
+"Zo" = (
+/obj/structure/machinery/vending/cola,
+/turf/open/floor/prison{
+ icon_state = "redfull"
+ },
+/area/fiorina/station/security)
+
+(1,1,1) = {"
+nl
+nl
+nl
+nl
+nl
+Fj
+xW
+FH
+FH
+FH
+xW
+Ie
+Tn
+Zg
+vq
+vq
+Sl
+vq
+vq
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+"}
+(2,1,1) = {"
+nl
+nl
+nl
+nl
+nl
+vq
+Ac
+is
+is
+is
+Ac
+vq
+vq
+vq
+vq
+on
+yP
+Vs
+vq
+vq
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+"}
+(3,1,1) = {"
+nl
+nl
+nl
+nl
+nl
+pn
+yf
+ch
+ch
+hI
+do
+vq
+FH
+jJ
+FH
+jJ
+NN
+lZ
+EV
+vq
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+"}
+(4,1,1) = {"
+nl
+nl
+nl
+nl
+nl
+vq
+sA
+sq
+HH
+sq
+FH
+PA
+sq
+tf
+Gd
+lP
+Va
+XA
+FK
+vq
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+"}
+(5,1,1) = {"
+vq
+vq
+vq
+vq
+vq
+vq
+qQ
+wW
+sq
+sq
+FH
+PA
+sq
+sq
+wJ
+mf
+gk
+fZ
+QV
+vq
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+nl
+"}
+(6,1,1) = {"
+nl
+nl
+YL
+lR
+xW
+lR
+xW
+FH
+ER
+pN
+xW
+vq
+fd
+fd
+vq
+lE
+kX
+aK
+vq
+vq
+QJ
+QJ
+QJ
+QJ
+QJ
+QJ
+QJ
+QJ
+QJ
+QJ
+cr
+"}
+(7,1,1) = {"
+nl
+nl
+YL
+dT
+GH
+dT
+xW
+jI
+FH
+FH
+bm
+Su
+YH
+hg
+PA
+sq
+sq
+sq
+PA
+FH
+sq
+OA
+QJ
+YS
+xW
+ke
+YL
+FH
+pV
+Vb
+QJ
+"}
+(8,1,1) = {"
+nl
+nl
+YL
+DH
+xM
+cn
+HW
+fy
+Bd
+tl
+Zi
+bO
+WW
+Pt
+vq
+BJ
+rR
+Ne
+vq
+tS
+sq
+Wp
+QJ
+Ai
+sq
+fh
+PA
+xW
+hY
+WG
+wH
+"}
+(9,1,1) = {"
+nl
+vq
+vq
+qd
+uX
+sj
+Tp
+ER
+mD
+QJ
+QJ
+QJ
+QJ
+QJ
+vq
+vq
+vq
+vq
+vq
+Iz
+FH
+zx
+QJ
+Ws
+sq
+iK
+YL
+wF
+jW
+oE
+QJ
+"}
+(10,1,1) = {"
+nl
+YL
+lR
+qw
+lR
+xW
+pd
+sq
+sq
+lF
+Wy
+Sd
+FH
+TO
+Ox
+vq
+xW
+xW
+QJ
+QJ
+Qv
+QJ
+QJ
+RR
+sq
+xW
+QJ
+YL
+Ho
+YL
+cr
+"}
+(11,1,1) = {"
+nl
+YL
+dT
+WI
+dT
+xW
+xI
+rP
+th
+bC
+FH
+mt
+rl
+MX
+Ox
+QJ
+Mp
+xW
+xW
+xW
+FH
+xW
+QJ
+zA
+sq
+xW
+QJ
+pR
+uQ
+uQ
+uQ
+"}
+(12,1,1) = {"
+nl
+YL
+DH
+AY
+DH
+xW
+xW
+FZ
+sq
+CO
+hI
+FH
+FH
+Sm
+nD
+IG
+xW
+wW
+sq
+sq
+sq
+xW
+IG
+xW
+sq
+xW
+QJ
+Mg
+aE
+nN
+nN
+"}
+(13,1,1) = {"
+vq
+vq
+qd
+xW
+xW
+Kb
+xW
+ER
+gI
+QJ
+Yt
+Yt
+XV
+Yt
+cI
+QJ
+Xj
+sq
+xW
+xW
+sq
+QC
+PA
+FH
+sq
+xW
+QJ
+wi
+nN
+nN
+nN
+"}
+(14,1,1) = {"
+YL
+Fw
+ji
+xW
+pd
+qw
+JR
+pp
+QJ
+QJ
+lv
+lv
+XV
+lv
+NL
+YL
+Zo
+sq
+AM
+YI
+FQ
+QC
+PA
+FH
+sq
+xW
+QJ
+SD
+nN
+nN
+nN
+"}
+(15,1,1) = {"
+YL
+fs
+xW
+qw
+xW
+xW
+xW
+sq
+IG
+FH
+FH
+FH
+vS
+FH
+Ox
+YL
+bl
+sq
+uh
+am
+sq
+xW
+QJ
+xW
+xW
+xW
+QJ
+Mg
+nN
+nN
+uQ
+"}
+(16,1,1) = {"
+YL
+zI
+cZ
+xW
+UU
+jb
+YZ
+pE
+QJ
+Cb
+FH
+fh
+gl
+FH
+Ox
+YL
+nf
+sq
+HF
+AD
+sq
+xW
+QJ
+vq
+QJ
+QJ
+QJ
+qY
+Fr
+Fr
+uQ
+"}
+(17,1,1) = {"
+vq
+vq
+XV
+eK
+eK
+eK
+XV
+QJ
+QJ
+Qv
+vq
+vq
+SE
+ma
+bb
+QJ
+qX
+sq
+sq
+sq
+sq
+oS
+oS
+vq
+VF
+OE
+Mg
+uQ
+Fr
+Fr
+uQ
+"}
+(18,1,1) = {"
+nl
+nl
+nl
+nl
+nl
+nl
+eK
+mn
+Gl
+Gl
+fX
+YL
+jL
+lA
+jL
+gV
+VG
+rg
+xW
+pa
+GZ
+lR
+UE
+vq
+gT
+aE
+uQ
+uQ
+nN
+nN
+uQ
+"}
+(19,1,1) = {"
+nl
+nl
+nl
+nl
+nl
+nl
+eK
+Sn
+Gl
+WB
+Re
+YL
+vf
+HL
+vf
+gV
+tv
+zb
+QJ
+oi
+QJ
+aX
+zA
+vq
+Wc
+uQ
+uQ
+uQ
+nN
+nN
+uQ
+"}
+(20,1,1) = {"
+nl
+nl
+nl
+nl
+nl
+nl
+eK
+co
+De
+Lj
+xv
+YL
+IK
+lO
+yv
+QJ
+Sp
+Ek
+cr
+OV
+cr
+gV
+gV
+vq
+ty
+uQ
+uQ
+uQ
+nN
+nN
+uQ
+"}
+(21,1,1) = {"
+nl
+nl
+nl
+nl
+nl
+nl
+XV
+YL
+YL
+vq
+YL
+vq
+nN
+Vd
+nN
+xp
+KU
+uQ
+xp
+yn
+xp
+uQ
+uQ
+xp
+nN
+uQ
+ce
+uQ
+XO
+QF
+np
+"}
diff --git a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm
index 6d99a9dc0f70..74d5921e30de 100644
--- a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm
+++ b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm
@@ -848,15 +848,6 @@
},
/turf/open/floor/plating/icefloor,
/area/ice_colony/surface/requesitions)
-"adm" = (
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/obj/structure/machinery/door/airlock/almayer/secure/colony{
- name = "Colony Requesitions Storage Pod"
- },
-/turf/open/floor/plating/icefloor,
-/area/ice_colony/surface/requesitions)
"adn" = (
/obj/structure/shuttle/diagonal{
icon_state = "swall0"
@@ -1301,12 +1292,6 @@
icon_state = "darkyellow2"
},
/area/ice_colony/surface/engineering/generator)
-"aex" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor{
- icon_state = "platebot"
- },
-/area/ice_colony/surface/engineering/generator)
"aey" = (
/obj/item/lightstick/planted,
/turf/open/auto_turf/snow/layer1,
@@ -1329,17 +1314,6 @@
},
/turf/open/ice,
/area/ice_colony/exterior/surface/valley/northeast)
-"aeC" = (
-/obj/structure/machinery/door/airlock{
- id_tag = "st_5";
- name = "Storage Unit";
- req_one_access_txt = "100;101;102;103"
- },
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/turf/open/floor/plating/icefloor,
-/area/ice_colony/surface/requesitions)
"aeD" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -2024,15 +1998,6 @@
icon_state = "darkyellow2"
},
/area/ice_colony/surface/engineering/generator)
-"ags" = (
-/obj/structure/machinery/power/geothermal,
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/turf/open/floor{
- icon_state = "platebot"
- },
-/area/ice_colony/surface/engineering/generator)
"agt" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -11956,16 +11921,6 @@
icon_state = "whitered"
},
/area/ice_colony/surface/clinic/lobby)
-"aHB" = (
-/obj/structure/machinery/door/airlock/almayer/secure/colony{
- id = "st_17";
- name = "Power Storage Unit"
- },
-/turf/open/floor{
- dir = 8;
- icon_state = "vault"
- },
-/area/ice_colony/surface/storage_unit/power)
"aHD" = (
/obj/structure/closet/secure_closet/guncabinet,
/obj/structure/machinery/firealarm{
@@ -12362,6 +12317,12 @@
/obj/effect/landmark/corpsespawner/doctor,
/turf/open/floor/wood,
/area/ice_colony/surface/command/crisis)
+"aIW" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
"aIX" = (
/obj/structure/pipes/vents/pump{
dir = 1
@@ -12399,17 +12360,6 @@
"aJd" = (
/turf/closed/wall/r_wall,
/area/ice_colony/surface/storage_unit/telecomms)
-"aJe" = (
-/obj/structure/machinery/door/airlock/almayer/secure/colony{
- dir = 2;
- id = "st_18";
- name = "Disposals Storage Unit"
- },
-/turf/open/floor{
- dir = 8;
- icon_state = "vault"
- },
-/area/ice_colony/surface/storage_unit/telecomms)
"aJf" = (
/turf/closed/wall/r_wall,
/area/ice_colony/exterior/surface/valley/southeast)
@@ -13689,17 +13639,6 @@
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/plating,
/area/ice_colony/surface/research)
-"aNV" = (
-/obj/structure/machinery/door/airlock/almayer/secure/colony{
- dir = 2;
- id = "st_19";
- name = "Research Storage Unit"
- },
-/turf/open/floor{
- dir = 8;
- icon_state = "vault"
- },
-/area/ice_colony/surface/storage_unit/research)
"aNW" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -32
@@ -14537,21 +14476,6 @@
icon_state = "dark2"
},
/area/ice_colony/surface/research)
-"aQm" = (
-/obj/structure/machinery/door/airlock/almayer/secure/colony{
- id = "research_entrance";
- name = "Omicron Research Dome"
- },
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor{
- icon_state = "dark2"
- },
-/area/ice_colony/surface/research)
"aQt" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/structure/machinery/door/airlock/almayer/generic{
@@ -14601,22 +14525,6 @@
icon_state = "darkbrown2"
},
/area/ice_colony/surface/hangar/alpha)
-"aQB" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f9"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
-"aQC" = (
-/obj/structure/computerframe,
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
-"aQD" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f5"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
"aQE" = (
/obj/structure/disposalpipe/segment{
dir = 1;
@@ -14675,22 +14583,6 @@
icon_state = "dark2"
},
/area/ice_colony/surface/hangar/hallway)
-"aQK" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f9"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
-"aQL" = (
-/obj/structure/computerframe,
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
-"aQM" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f5"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
"aQN" = (
/obj/effect/decal/cleanable/blood/oil,
/turf/open/floor{
@@ -14931,16 +14823,6 @@
icon_state = "swall3"
},
/area/ice_colony/surface/hangar/alpha)
-"aRz" = (
-/obj/structure/machinery/light,
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
-"aRA" = (
-/obj/structure/bed/chair{
- dir = 1
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
"aRB" = (
/obj/structure/machinery/light{
dir = 4
@@ -14962,22 +14844,6 @@
icon_state = "swall3"
},
/area/ice_colony/surface/hangar/beta)
-"aRF" = (
-/obj/structure/machinery/light,
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
-"aRG" = (
-/obj/structure/bed/chair{
- dir = 1
- },
-/obj/effect/landmark/survivor_spawner,
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
-"aRH" = (
-/obj/structure/machinery/light,
-/obj/item/weapon/gun/pistol/holdout,
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
"aRI" = (
/obj/structure/surface/table,
/obj/effect/spawner/random/powercell,
@@ -15211,10 +15077,6 @@
icon_state = "swall8"
},
/area/ice_colony/surface/hangar/alpha)
-"aSi" = (
-/obj/structure/machinery/door/unpowered/shuttle,
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
"aSj" = (
/turf/closed/shuttle{
icon_state = "swall4"
@@ -15253,10 +15115,6 @@
icon_state = "swall8"
},
/area/ice_colony/surface/hangar/beta)
-"aSr" = (
-/obj/structure/machinery/door/unpowered/shuttle,
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
"aSs" = (
/turf/closed/shuttle{
icon_state = "swall4"
@@ -15489,48 +15347,6 @@
icon_state = "darkbrown2"
},
/area/ice_colony/surface/hangar/alpha)
-"aSU" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/bed/chair{
- dir = 4
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
-"aSV" = (
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
-"aSW" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/obj/structure/bed/chair{
- dir = 8
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
-"aSY" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/bed/chair{
- dir = 4
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
-"aSZ" = (
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
-"aTa" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/obj/structure/bed/chair{
- dir = 8
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
"aTb" = (
/turf/open/floor{
dir = 4;
@@ -15701,30 +15517,6 @@
icon_state = "darkbrown2"
},
/area/ice_colony/surface/hangar/alpha)
-"aTz" = (
-/obj/structure/bed/chair{
- dir = 4
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
-"aTA" = (
-/obj/structure/bed/chair{
- dir = 8
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
-"aTD" = (
-/obj/structure/bed/chair{
- dir = 4
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
-"aTE" = (
-/obj/structure/bed/chair{
- dir = 8
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
"aTH" = (
/obj/structure/machinery/power/apc{
dir = 8;
@@ -16066,13 +15858,6 @@
icon_state = "darkbrown2"
},
/area/ice_colony/surface/hangar/beta)
-"aUM" = (
-/obj/item/ammo_magazine/pistol/holdout{
- pixel_x = 6;
- pixel_y = -4
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
"aUN" = (
/obj/structure/ice/thin/end{
dir = 8
@@ -16524,18 +16309,6 @@
icon_state = "dark2"
},
/area/ice_colony/surface/hangar/alpha)
-"aWc" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f10"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
-"aWd" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f6"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/alpha)
"aWe" = (
/obj/structure/shuttle/diagonal{
icon_state = "swall_f9"
@@ -16590,18 +16363,6 @@
icon_state = "dark2"
},
/area/ice_colony/surface/hangar/beta)
-"aWl" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f10"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
-"aWm" = (
-/obj/structure/shuttle/diagonal{
- icon_state = "swall_f6"
- },
-/turf/open/shuttle/can_surgery/red,
-/area/ice_colony/surface/hangar/beta)
"aWn" = (
/obj/structure/shuttle/diagonal{
icon_state = "swall_f9"
@@ -19613,12 +19374,6 @@
},
/turf/open/floor/plating,
/area/ice_colony/underground/maintenance/north)
-"bgR" = (
-/obj/structure/machinery/door/airlock/almayer/maint/colony{
- name = "\improper Underground Maintenance"
- },
-/turf/open/floor/plating,
-/area/ice_colony/underground/hangar)
"bgS" = (
/obj/structure/machinery/landinglight/ds2{
dir = 4
@@ -20040,10 +19795,6 @@
icon_state = "bcircuit"
},
/area/ice_colony/underground/hangar)
-"biw" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/plating/icefloor,
-/area/ice_colony/underground/hangar)
"bix" = (
/obj/structure/closet/secure_closet/engineering_welding,
/turf/open/floor/plating/icefloor,
@@ -20336,14 +20087,6 @@
},
/turf/open/floor/plating,
/area/ice_colony/underground/requesition/lobby)
-"bjz" = (
-/obj/structure/machinery/door/airlock/almayer/maint/colony{
- dir = 1;
- name = "\improper Underground Maintenance";
- req_access_txt = "100"
- },
-/turf/open/floor/plating,
-/area/ice_colony/underground/hangar)
"bjA" = (
/turf/closed/wall/r_wall/unmeltable,
/area/ice_colony/underground/maintenance/north)
@@ -23662,17 +23405,6 @@
/obj/structure/sign/safety/high_voltage,
/turf/closed/wall/r_wall,
/area/ice_colony/underground/engineering/substation)
-"btB" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/obj/structure/machinery/door/airlock/almayer/secure/colony{
- dir = 2;
- id = "engine_electrical_maintenance";
- name = "Underground Power Substation"
- },
-/turf/open/floor{
- icon_state = "dark2"
- },
-/area/ice_colony/underground/engineering/substation)
"btC" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{
dir = 1;
@@ -23893,10 +23625,6 @@
"bug" = (
/turf/closed/wall/r_wall,
/area/ice_colony/exterior/underground/caves)
-"buh" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/plating,
-/area/ice_colony/exterior/underground/caves)
"bui" = (
/turf/open/floor{
icon_state = "bcircuit"
@@ -24400,13 +24128,6 @@
},
/turf/open/floor/wood,
/area/ice_colony/underground/crew/bball)
-"bvD" = (
-/obj/structure/machinery/power/geothermal,
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/ice_colony/exterior/underground/caves)
"bvE" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 5
@@ -24435,6 +24156,13 @@
/obj/structure/machinery/light{
dir = 4
},
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
/turf/open/floor/plating,
/area/ice_colony/underground/engineering/substation)
"bvJ" = (
@@ -24772,15 +24500,6 @@
icon_state = "bcircuit"
},
/area/ice_colony/underground/engineering/substation)
-"bwA" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/plating,
-/area/ice_colony/underground/engineering/substation)
-"bwB" = (
-/obj/structure/machinery/power/geothermal,
-/obj/structure/machinery/light/small,
-/turf/open/floor/plating,
-/area/ice_colony/underground/engineering/substation)
"bwE" = (
/obj/structure/ice/thin/end,
/turf/open/ice,
@@ -24900,15 +24619,6 @@
icon_state = "darkgreen2"
},
/area/ice_colony/underground/crew/bball)
-"bwZ" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/obj/structure/machinery/door/airlock/almayer/secure/colony{
- dir = 2;
- id = "engine_electrical_maintenance";
- name = "Underground Power Substation"
- },
-/turf/open/floor/plating,
-/area/ice_colony/underground/engineering/substation)
"bxa" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 5
@@ -25111,6 +24821,7 @@
dir = 1
},
/obj/structure/surface/rack,
+/obj/item/fuel_cell,
/turf/open/floor/plating,
/area/ice_colony/underground/maintenance/engineering)
"bxJ" = (
@@ -28039,16 +27750,6 @@
icon_state = "darkpurple2"
},
/area/ice_colony/underground/research)
-"bGA" = (
-/obj/structure/pipes/standard/simple/hidden/green,
-/obj/structure/machinery/door/airlock/almayer/secure/colony{
- dir = 2;
- name = "Underground Secure Technical Storage"
- },
-/turf/open/floor{
- icon_state = "dark2"
- },
-/area/ice_colony/underground/storage/highsec)
"bGB" = (
/turf/closed/wall/r_wall,
/area/ice_colony/underground/command/checkpoint)
@@ -34418,6 +34119,23 @@
"cbk" = (
/turf/open/floor/plating/icefloor,
/area/ice_colony/surface/tcomms)
+"cbU" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f6"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
+"chE" = (
+/obj/structure/machinery/door/airlock{
+ id_tag = "st_5";
+ name = "Storage Unit";
+ req_one_access_txt = "100;101;102;103"
+ },
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/turf/open/floor/plating/icefloor,
+/area/ice_colony/surface/requesitions)
"csl" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -34427,22 +34145,53 @@
icon_state = "dark2"
},
/area/ice_colony/surface/research)
+"cBQ" = (
+/obj/structure/machinery/door/unpowered/shuttle,
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
"cEG" = (
/obj/docking_port/stationary/marine_dropship/lz2,
/turf/open/floor/plating/icefloor,
/area/ice_colony/underground/hangar)
+"cNY" = (
+/obj/structure/machinery/power/reactor/colony,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ice_colony/exterior/underground/caves)
"cVM" = (
/obj/structure/machinery/light/small{
dir = 8
},
/turf/open/floor/plating/icefloor,
/area/ice_colony/surface/requesitions)
+"dfj" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f5"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
"dgG" = (
/turf/open/floor{
dir = 5;
icon_state = "darkyellow2"
},
/area/ice_colony/surface/tcomms)
+"doO" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor{
+ icon_state = "platebot"
+ },
+/area/ice_colony/surface/engineering/generator)
+"drG" = (
+/obj/structure/machinery/door/airlock/almayer/maint/colony{
+ dir = 1;
+ name = "\improper Underground Maintenance";
+ req_access_txt = "100"
+ },
+/turf/open/floor/plating,
+/area/ice_colony/underground/hangar)
"dxl" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/green,
@@ -34459,6 +34208,17 @@
icon_state = "darkyellow2"
},
/area/ice_colony/surface/tcomms)
+"dFm" = (
+/obj/structure/machinery/light,
+/obj/item/weapon/gun/pistol/holdout,
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
+"dRe" = (
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
"ecS" = (
/obj/structure/machinery/light{
dir = 4
@@ -34475,6 +34235,14 @@
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/carpet,
/area/ice_colony/underground/crew/leisure)
+"etX" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/plating,
+/area/ice_colony/underground/engineering/substation)
+"ezC" = (
+/obj/structure/machinery/fuelcell_recycler/full,
+/turf/open/floor/plating,
+/area/ice_colony/underground/engineering/substation)
"ezT" = (
/obj/vehicle/train/cargo/trolley,
/obj/structure/pipes/standard/simple/hidden/green,
@@ -34497,6 +34265,28 @@
icon_state = "darkyellow2"
},
/area/ice_colony/surface/research/tech_storage)
+"faO" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
+"fgp" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/structure/machinery/door/airlock/almayer/secure/colony{
+ name = "Colony Requesitions Storage Pod"
+ },
+/turf/open/floor/plating/icefloor,
+/area/ice_colony/surface/requesitions)
+"fkY" = (
+/obj/structure/machinery/light,
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
"fqt" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -34546,6 +34336,15 @@
icon_state = "darkred2"
},
/area/ice_colony/underground/reception/checkpoint_north)
+"gHI" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
"gXP" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
@@ -34562,9 +34361,35 @@
dir = 9
},
/area/ice_colony/exterior/surface/valley/south)
+"hrs" = (
+/obj/structure/machinery/power/reactor/colony,
+/obj/structure/machinery/light/small,
+/turf/open/floor/plating,
+/area/ice_colony/underground/engineering/substation)
"hrN" = (
/turf/open/auto_turf/snow/layer4,
/area/ice_colony/exterior/surface/clearing/north)
+"hwC" = (
+/obj/structure/machinery/door/airlock/almayer/maint/colony{
+ name = "\improper Underground Maintenance"
+ },
+/turf/open/floor/plating,
+/area/ice_colony/underground/hangar)
+"hxr" = (
+/obj/structure/machinery/door/airlock/almayer/secure/colony{
+ id = "research_entrance";
+ name = "Omicron Research Dome"
+ },
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor{
+ icon_state = "dark2"
+ },
+/area/ice_colony/surface/research)
"hAX" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/floor/plating,
@@ -34584,6 +34409,17 @@
icon_state = "warnplate"
},
/area/ice_colony/underground/hangar)
+"ilp" = (
+/obj/structure/machinery/door/airlock/almayer/secure/colony{
+ dir = 2;
+ id = "st_19";
+ name = "Research Storage Unit"
+ },
+/turf/open/floor{
+ dir = 8;
+ icon_state = "vault"
+ },
+/area/ice_colony/surface/storage_unit/research)
"iBu" = (
/obj/structure/surface/table/reinforced,
/obj/item/paper/research_notes,
@@ -34602,6 +34438,16 @@
/obj/item/packageWrap,
/turf/open/floor/plating/icefloor,
/area/ice_colony/underground/hangar)
+"iUo" = (
+/obj/structure/machinery/door/airlock/almayer/secure/colony{
+ id = "st_17";
+ name = "Power Storage Unit"
+ },
+/turf/open/floor{
+ dir = 8;
+ icon_state = "vault"
+ },
+/area/ice_colony/surface/storage_unit/power)
"iZc" = (
/obj/structure/lz_sign/ice_sign{
desc = "The only good bug is a dead bug.";
@@ -34610,6 +34456,16 @@
},
/turf/open/auto_turf/snow/layer3,
/area/ice_colony/exterior/surface/valley/south)
+"iZF" = (
+/obj/structure/pipes/standard/simple/hidden/green,
+/obj/structure/machinery/door/airlock/almayer/secure/colony{
+ dir = 2;
+ name = "Underground Secure Technical Storage"
+ },
+/turf/open/floor{
+ icon_state = "dark2"
+ },
+/area/ice_colony/underground/storage/highsec)
"jtr" = (
/turf/closed/wall,
/area/ice_colony/exterior/surface/cliff)
@@ -34628,6 +34484,18 @@
icon_state = "darkbrown2"
},
/area/ice_colony/surface/hangar/alpha)
+"jFV" = (
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
+"jPb" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
"jZI" = (
/obj/structure/surface/table/reinforced,
/obj/structure/machinery/computer/shuttle_control/dropship2,
@@ -34645,6 +34513,17 @@
icon_state = "warnplate"
},
/area/ice_colony/surface/tcomms)
+"krs" = (
+/obj/structure/pipes/standard/simple/hidden/green,
+/obj/structure/machinery/door/airlock/almayer/secure/colony{
+ dir = 2;
+ id = "engine_electrical_maintenance";
+ name = "Underground Power Substation"
+ },
+/turf/open/floor{
+ icon_state = "dark2"
+ },
+/area/ice_colony/underground/engineering/substation)
"kKZ" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/structure/disposalpipe/segment,
@@ -34660,6 +34539,19 @@
/obj/structure/window/framed/colony,
/turf/open/floor/plating/icefloor,
/area/ice_colony/surface/tcomms)
+"luM" = (
+/obj/item/ammo_magazine/pistol/holdout{
+ pixel_x = 6;
+ pixel_y = -4
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
+"lxu" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f6"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
"lyD" = (
/obj/structure/machinery/alarm{
dir = 8;
@@ -34679,9 +34571,21 @@
"lJQ" = (
/turf/open/auto_turf/snow/layer4,
/area/ice_colony/exterior/surface/valley/south)
+"lSF" = (
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
"lXk" = (
/turf/open/auto_turf/snow/layer4,
/area/ice_colony/exterior/surface/clearing/south)
+"mec" = (
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
+"mgy" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f9"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
"mog" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -34703,6 +34607,12 @@
icon_state = "darkbrown2"
},
/area/ice_colony/surface/hangar/beta)
+"mLJ" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f5"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
"neZ" = (
/obj/structure/machinery/door/airlock/almayer/medical/glass/colony{
name = "\improper Colony Dormitories"
@@ -34730,9 +34640,26 @@
/obj/effect/landmark/static_comms/net_one,
/turf/open/floor/plating/icefloor,
/area/ice_colony/surface/tcomms)
+"oIL" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
+"oNg" = (
+/obj/structure/machinery/door/unpowered/shuttle,
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
"oOd" = (
/turf/open/auto_turf/snow/layer4,
/area/ice_colony/exterior/surface/clearing/pass)
+"oQI" = (
+/obj/structure/machinery/light,
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
"oZq" = (
/obj/structure/machinery/alarm{
dir = 4;
@@ -34754,9 +34681,19 @@
},
/turf/open/floor/carpet,
/area/ice_colony/underground/crew/leisure)
+"poh" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/plating/icefloor,
+/area/ice_colony/underground/hangar)
"pyn" = (
/turf/closed/wall,
/area/ice_colony/underground/hangar)
+"qiR" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
"qny" = (
/obj/structure/surface/table/woodentable,
/turf/open/floor/wood,
@@ -34777,6 +34714,26 @@
/obj/effect/landmark/ert_spawns/groundside_xeno,
/turf/open/floor/plating/icefloor,
/area/ice_colony/surface/requesitions)
+"qJe" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
+"qKs" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/plating,
+/area/ice_colony/exterior/underground/caves)
+"qPo" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/plating,
+/area/ice_colony/underground/maintenance/engineering)
"qRy" = (
/obj/structure/closet/toolcloset,
/obj/structure/machinery/door_control{
@@ -34797,6 +34754,15 @@
/obj/structure/machinery/recharge_station,
/turf/open/floor/plating/icefloor,
/area/ice_colony/underground/hangar)
+"rxJ" = (
+/obj/structure/pipes/standard/simple/hidden/green,
+/obj/structure/machinery/door/airlock/almayer/secure/colony{
+ dir = 2;
+ id = "engine_electrical_maintenance";
+ name = "Underground Power Substation"
+ },
+/turf/open/floor/plating,
+/area/ice_colony/underground/engineering/substation)
"rxQ" = (
/turf/open/auto_turf/snow/layer4,
/area/ice_colony/exterior/surface/valley/northwest)
@@ -34853,6 +34819,12 @@
"sTg" = (
/turf/open/auto_turf/snow/layer4,
/area/ice_colony/exterior/surface/valley/northeast)
+"sTG" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f10"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
"sTY" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
@@ -34907,6 +34879,13 @@
"tZS" = (
/turf/open/auto_turf/snow/layer4,
/area/ice_colony/exterior/surface/valley/west)
+"ubd" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/obj/effect/landmark/survivor_spawner,
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
"ueV" = (
/obj/structure/pipes/standard/manifold/fourway/hidden/green,
/turf/open/floor{
@@ -35002,6 +34981,10 @@
/obj/item/paper/research_notes,
/turf/open/floor/wood,
/area/ice_colony/surface/command/control/pv1)
+"wxw" = (
+/obj/structure/computerframe,
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
"wDj" = (
/turf/open/floor/plating/icefloor{
dir = 1;
@@ -35013,6 +34996,17 @@
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/wood,
/area/ice_colony/surface/bar/bar)
+"xfO" = (
+/obj/structure/machinery/door/airlock/almayer/secure/colony{
+ dir = 2;
+ id = "st_18";
+ name = "Disposals Storage Unit"
+ },
+/turf/open/floor{
+ dir = 8;
+ icon_state = "vault"
+ },
+/area/ice_colony/surface/storage_unit/telecomms)
"xkk" = (
/obj/effect/landmark/queen_spawn,
/turf/open/floor/icefloor{
@@ -35027,11 +35021,36 @@
icon_state = "darkyellow2"
},
/area/ice_colony/surface/tcomms)
+"xyz" = (
+/obj/structure/machinery/power/reactor/colony,
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/turf/open/floor{
+ icon_state = "platebot"
+ },
+/area/ice_colony/surface/engineering/generator)
+"xAI" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f10"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
+"xFB" = (
+/obj/structure/shuttle/diagonal{
+ icon_state = "swall_f9"
+ },
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/alpha)
"xWm" = (
/obj/effect/landmark/xeno_hive_spawn,
/obj/effect/landmark/ert_spawns/groundside_xeno,
/turf/open/ice,
/area/ice_colony/exterior/surface/landing_pad_external)
+"yfA" = (
+/obj/structure/computerframe,
+/turf/open/shuttle/can_surgery/red,
+/area/ice_colony/surface/hangar/beta)
"ygw" = (
/obj/structure/surface/table,
/obj/item/device/encryptionkey,
@@ -39579,15 +39598,15 @@ aaI
aaI
aaI
abD
-adm
+fgp
abD
adY
abD
-aeC
+chE
abD
adY
abD
-adm
+fgp
abD
adY
abD
@@ -43809,15 +43828,15 @@ abE
abF
abF
abD
-adm
+fgp
abD
adY
abD
-adm
+fgp
abD
adY
abD
-adm
+fgp
abD
adY
abD
@@ -49922,7 +49941,7 @@ bDE
bEz
bFc
bFc
-bGA
+iZF
bHn
bHn
bIJ
@@ -51277,11 +51296,11 @@ aZW
aZW
aZG
aZG
-bgR
+hwC
aZG
aZG
aZG
-bgR
+hwC
aZG
aZG
aZG
@@ -52134,7 +52153,7 @@ big
aZW
aZW
aZW
-bjz
+drG
bgH
bgH
bkE
@@ -52977,9 +52996,9 @@ bht
aZW
aZW
beB
-biw
-biw
-biw
+poh
+poh
+poh
aZG
bgH
bgH
@@ -55235,7 +55254,7 @@ aZW
aZW
bjf
aZG
-bgR
+hwC
aZG
beB
bkt
@@ -55462,7 +55481,7 @@ aLN
aLN
aLN
aLN
-aQm
+hxr
aLN
aLN
aLN
@@ -58843,7 +58862,7 @@ aKr
aKr
aKR
aKR
-aNV
+ilp
auw
auw
auw
@@ -69639,11 +69658,11 @@ box
box
bqF
bnk
-buh
-buh
-bvD
-buh
-buh
+qKs
+qKs
+cNY
+qKs
+qKs
bqP
brt
bsf
@@ -70203,11 +70222,11 @@ box
box
bqF
btA
-buj
+ezC
buj
buj
bui
-bwA
+etX
btz
brt
bsf
@@ -70484,12 +70503,12 @@ boQ
boQ
boQ
boQ
-btB
+krs
buk
buk
bvE
bui
-bwA
+etX
btz
brt
bsf
@@ -70771,7 +70790,7 @@ bul
buj
bvF
bui
-bwB
+hrs
btz
bxG
bsf
@@ -71054,7 +71073,7 @@ buj
bvG
buk
buk
-bwZ
+rxJ
bxH
brZ
brZ
@@ -71338,7 +71357,7 @@ bwg
bwg
btz
bxI
-bse
+qPo
bsf
brt
byc
@@ -77748,7 +77767,7 @@ aRy
aRy
aRy
aUh
-aSi
+oNg
aVy
aWb
aSf
@@ -78022,17 +78041,17 @@ avs
aOf
aOK
aPI
-aQB
-aRz
+xFB
+oQI
aSh
-aSU
-aTz
-aTz
-aTz
-aSU
-aSV
-aTz
-aWc
+faO
+jPb
+jPb
+jPb
+faO
+lSF
+jPb
+xAI
aWb
aSj
aPH
@@ -78304,17 +78323,17 @@ avs
aOf
aOK
aPJ
-aQC
-aRA
-aSi
-aSV
-aSV
-aSV
-aSV
-aSV
-aSV
-aSV
-aSV
+wxw
+qiR
+oNg
+lSF
+lSF
+lSF
+lSF
+lSF
+lSF
+lSF
+lSF
aWJ
aXm
aPH
@@ -78586,17 +78605,17 @@ avs
aOf
aOK
aPK
-aQD
-aRz
+dfj
+oQI
aSj
-aSW
-aTA
-aTA
-aTA
-aSW
-aSV
-aTA
-aWd
+gHI
+jFV
+jFV
+jFV
+gHI
+lSF
+jFV
+lxu
aWe
aSh
aPH
@@ -78876,7 +78895,7 @@ aRy
aRy
aRy
aUh
-aSi
+oNg
aVy
aWe
aPH
@@ -81036,16 +81055,16 @@ acz
acz
acz
aeh
-aex
+doO
aeU
afs
-aex
-aex
-ags
-aex
+doO
+doO
+xyz
+doO
ahm
aeU
-aex
+doO
aeg
ajA
ajT
@@ -81318,7 +81337,7 @@ adj
adj
adj
aeh
-aex
+doO
aeU
afq
aeU
@@ -81327,7 +81346,7 @@ agt
aeU
afq
aeU
-aex
+doO
aeh
aeI
aeI
@@ -81603,10 +81622,10 @@ aei
agw
aeW
afs
-aex
-aex
-ags
-aex
+doO
+doO
+xyz
+doO
ahm
afu
aix
@@ -83106,7 +83125,7 @@ aRE
aRE
aRE
aUn
-aSr
+cBQ
aVD
aWk
aPT
@@ -83380,17 +83399,17 @@ aac
aOj
aOY
aPU
-aQK
-aRF
+mgy
+fkY
aSq
-aSY
-aTD
-aTD
-aTD
-aSY
-aSZ
-aTD
-aWl
+oIL
+aIW
+aIW
+aIW
+oIL
+mec
+aIW
+sTG
aWk
aSs
aPT
@@ -83662,17 +83681,17 @@ aac
aOj
aOZ
aPV
-aQL
-aRG
-aSr
-aSZ
-aSZ
-aSZ
-aSZ
-aUM
-aSZ
-aSZ
-aSZ
+yfA
+ubd
+cBQ
+mec
+mec
+mec
+mec
+luM
+mec
+mec
+mec
aWN
aXu
aPT
@@ -83944,17 +83963,17 @@ aac
aOj
aOZ
aPW
-aQM
-aRH
+mLJ
+dFm
aSs
-aTa
-aTE
-aTE
-aTE
-aTa
-aSZ
-aTE
-aWm
+qJe
+dRe
+dRe
+dRe
+qJe
+mec
+dRe
+cbU
aWn
aSq
aPT
@@ -84234,7 +84253,7 @@ aRE
aRE
aRE
aUn
-aSr
+cBQ
aVD
aWn
aPT
@@ -87587,7 +87606,7 @@ amm
aFE
aFE
aFE
-aHB
+iUo
aFE
aFE
aky
@@ -89284,7 +89303,7 @@ amm
amm
amm
amm
-aJe
+xfO
aJi
aJi
aJi
diff --git a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm
index 2ed8035a7972..7ff89252a916 100644
--- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm
+++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm
@@ -7035,6 +7035,17 @@
},
/turf/open/floor/plating,
/area/shiva/interior/aerodrome)
+"bws" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/shiva{
+ dir = 10;
+ icon_state = "yellow"
+ },
+/area/shiva/interior/garage)
"bwJ" = (
/turf/open/floor/shiva{
dir = 4;
@@ -10088,6 +10099,12 @@
icon_state = "yellow"
},
/area/shiva/interior/colony/medseceng)
+"ffg" = (
+/obj/effect/landmark/nightmare{
+ insert_tag = "panic_room"
+ },
+/turf/open/auto_turf/snow/layer3,
+/area/shiva/exterior/junkyard)
"ffj" = (
/turf/closed/shuttle/elevator{
dir = 10
@@ -10099,6 +10116,14 @@
icon_state = "yellow"
},
/area/shiva/interior/lz2_habs)
+"ffo" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/shiva{
+ icon_state = "yellow"
+ },
+/area/shiva/interior/garage)
"ffw" = (
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/shiva{
@@ -11996,10 +12021,6 @@
icon_state = "wred"
},
/area/shiva/interior/colony/medseceng)
-"hgx" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/plating,
-/area/shiva/interior/colony/medseceng)
"hgI" = (
/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/auto_turf/snow/layer2,
@@ -15843,13 +15864,6 @@
icon_state = "yellowfull"
},
/area/shiva/interior/colony/research_hab)
-"kTN" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/shiva{
- dir = 8;
- icon_state = "yellowfull"
- },
-/area/shiva/interior/lz2_habs)
"kTP" = (
/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/auto_turf/snow/layer1,
@@ -18159,6 +18173,10 @@
},
/turf/open/auto_turf/snow/layer3,
/area/shiva/interior/colony/medseceng)
+"npM" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/plating,
+/area/shiva/interior/colony/medseceng)
"npY" = (
/obj/structure/inflatable,
/turf/open/auto_turf/snow/layer3,
@@ -18414,6 +18432,13 @@
/obj/structure/machinery/space_heater,
/turf/open/auto_turf/ice/layer1,
/area/shiva/interior/warehouse/caves)
+"nED" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "yellowfull"
+ },
+/area/shiva/interior/lz2_habs)
"nEH" = (
/obj/effect/landmark/monkey_spawn,
/obj/effect/decal/warning_stripes{
@@ -18512,6 +18537,12 @@
},
/turf/open/floor/wood,
/area/shiva/interior/bar)
+"nJu" = (
+/obj/structure/machinery/fuelcell_recycler/full,
+/turf/open/floor/shiva{
+ icon_state = "yellow"
+ },
+/area/shiva/interior/garage)
"nKc" = (
/obj/structure/machinery/door/airlock/almayer/medical/colony{
dir = 1;
@@ -19299,6 +19330,13 @@
},
/turf/open/auto_turf/snow/layer2,
/area/shiva/exterior/cp_lz2)
+"oDJ" = (
+/obj/structure/machinery/fuelcell_recycler/full,
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "yellow"
+ },
+/area/shiva/interior/garage)
"oDM" = (
/turf/open/floor/shiva{
dir = 10;
@@ -22109,12 +22147,6 @@
/obj/structure/largecrate/random,
/turf/open/floor/plating,
/area/shiva/interior/colony/research_hab)
-"rHQ" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/shiva{
- dir = 1
- },
-/area/shiva/interior/garage)
"rIj" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/shiva{
@@ -27253,6 +27285,12 @@
/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor/wood,
/area/shiva/interior/colony/botany)
+"xdk" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/garage)
"xdT" = (
/obj/structure/surface/table,
/obj/effect/spawner/random/toolbox,
@@ -37065,7 +37103,7 @@ puZ
puZ
puZ
anc
-kTN
+nED
mCn
uRi
xQJ
@@ -37389,7 +37427,7 @@ puZ
puZ
puZ
anc
-kTN
+nED
mCn
cce
xQJ
@@ -37713,7 +37751,7 @@ puZ
puZ
puZ
anc
-kTN
+nED
mCn
cce
xQJ
@@ -43636,7 +43674,7 @@ tHd
tHd
jMf
tHd
-jMf
+ffg
tHd
jMf
ofw
@@ -53180,7 +53218,7 @@ ver
ver
ver
fEO
-oDM
+bws
ktd
bFg
bIV
@@ -53342,7 +53380,7 @@ ver
ver
ver
ver
-pSD
+ffo
ktd
cZk
bIV
@@ -54152,7 +54190,7 @@ aAh
ver
ver
ver
-pSD
+nJu
ktd
cZk
bFg
@@ -54314,7 +54352,7 @@ ver
ver
ver
pNf
-aCA
+oDJ
ktd
gJo
lTc
@@ -54955,11 +54993,11 @@ oQl
oQl
oQl
ktd
-rHQ
+xdk
tXd
aAh
pSD
-rHQ
+xdk
ktd
oQl
oQl
@@ -55117,11 +55155,11 @@ oQl
oQl
oQl
ktd
-rHQ
+xdk
ush
vUL
aCA
-rHQ
+xdk
ktd
oQl
oQl
@@ -55280,9 +55318,9 @@ oQl
oQl
ktd
ktd
-rHQ
-rHQ
-rHQ
+xdk
+xdk
+xdk
ktd
ktd
oQl
@@ -58299,16 +58337,16 @@ acT
qDT
eAZ
acT
-hgx
+npM
cso
agh
-hgx
-hgx
-hgx
-hgx
+npM
+npM
+npM
+npM
agh
cso
-hgx
+npM
acT
aii
agh
@@ -58461,7 +58499,7 @@ aDn
eAZ
eAZ
aDn
-hgx
+npM
cso
agh
cso
@@ -58470,7 +58508,7 @@ cso
cso
agh
cso
-hgx
+npM
acT
acT
aii
@@ -58626,10 +58664,10 @@ aek
eXL
cso
agh
-hgx
-hgx
-hgx
-hgx
+npM
+npM
+npM
+npM
agh
cso
qdd
diff --git a/maps/map_files/Ice_Colony_v3/sprinkles/30.labs-elevator_alternate.dmm b/maps/map_files/Ice_Colony_v3/sprinkles/unused/30.labs-elevator_alternate.dmm
similarity index 100%
rename from maps/map_files/Ice_Colony_v3/sprinkles/30.labs-elevator_alternate.dmm
rename to maps/map_files/Ice_Colony_v3/sprinkles/unused/30.labs-elevator_alternate.dmm
diff --git a/maps/map_files/Ice_Colony_v3/sprinkles/35.south-spidercave_cleared.dmm b/maps/map_files/Ice_Colony_v3/sprinkles/unused/35.south-spidercave_cleared.dmm
similarity index 100%
rename from maps/map_files/Ice_Colony_v3/sprinkles/35.south-spidercave_cleared.dmm
rename to maps/map_files/Ice_Colony_v3/sprinkles/unused/35.south-spidercave_cleared.dmm
diff --git a/maps/map_files/Ice_Colony_v3/standalone/panic_room_hold.dmm b/maps/map_files/Ice_Colony_v3/standalone/panic_room_hold.dmm
new file mode 100644
index 000000000000..15ec0c4e099d
--- /dev/null
+++ b/maps/map_files/Ice_Colony_v3/standalone/panic_room_hold.dmm
@@ -0,0 +1,2547 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ai" = (
+/obj/structure/largecrate/random/barrel/red,
+/turf/open/auto_turf/snow/layer2,
+/area/shiva/exterior/junkyard/cp_bar)
+"aq" = (
+/obj/structure/window_frame/colony/reinforced,
+/obj/item/stack/rods,
+/turf/open/floor/plating,
+/area/shiva/interior/colony/s_admin)
+"aH" = (
+/obj/item/tool/pen/blue{
+ pixel_x = 5
+ },
+/obj/effect/decal/cleanable/blood{
+ icon_state = "gib6"
+ },
+/turf/open/floor/wood,
+/area/shiva/interior/colony/s_admin)
+"ba" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/alarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/landmark/crap_item,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"bi" = (
+/obj/item/reagent_container/food/drinks/cans/waterbottle{
+ pixel_x = -5;
+ pixel_y = 12
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"bI" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/paper_bin,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"ce" = (
+/turf/closed/wall/shiva/prefabricated/reinforced,
+/area/shiva/interior/colony/s_admin)
+"ch" = (
+/obj/item/lightstick/red/spoke/planted{
+ pixel_x = 11;
+ pixel_y = 20
+ },
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/bar)
+"cv" = (
+/obj/structure/machinery/alarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"cL" = (
+/obj/item/prop/colony/folded_bedroll,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"cO" = (
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"cS" = (
+/turf/closed/wall/shiva/prefabricated/reinforced,
+/area/shiva/interior/bar)
+"cY" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/item/shard{
+ icon_state = "large"
+ },
+/obj/item/frame/table/reinforced,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"dg" = (
+/obj/structure/barricade/metal{
+ dir = 1;
+ health = 210
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"do" = (
+/obj/effect/spawner/gibspawner/xeno,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"dv" = (
+/obj/item/ammo_magazine/rifle/m16,
+/obj/structure/closet/secure_closet/guncabinet/wy,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "redfull"
+ },
+/area/shiva/interior/colony/s_admin)
+"dF" = (
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"eO" = (
+/obj/structure/barricade/wooden{
+ dir = 1
+ },
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"eZ" = (
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "redfull"
+ },
+/area/shiva/interior/colony/s_admin)
+"ff" = (
+/obj/structure/barricade/wooden{
+ dir = 4;
+ pixel_y = 4
+ },
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/turf/open/floor/wood,
+/area/shiva/interior/colony/s_admin)
+"fj" = (
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"fx" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/obj/effect/decal/cleanable/blood{
+ layer = 3
+ },
+/obj/effect/landmark/corpsespawner/doctor,
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/bar)
+"fM" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ name = "\improper Panic Room Shutters";
+ id = "south_panicroom"
+ },
+/turf/open/floor/shiva,
+/area/shiva/interior/colony/s_admin)
+"fR" = (
+/turf/open/floor/wood,
+/area/shiva/interior/colony/s_admin)
+"fT" = (
+/obj/effect/decal/cleanable/vomit,
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"gf" = (
+/obj/structure/closet/crate/freezer,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"gh" = (
+/obj/structure/noticeboard{
+ pixel_y = 32
+ },
+/obj/item/ammo_magazine/rifle/extended{
+ current_rounds = 0
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"gk" = (
+/obj/effect/decal/cleanable/blood/oil,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/shiva/interior/colony/s_admin)
+"gn" = (
+/obj/structure/machinery/computer/cameras/wooden_tv{
+ pixel_y = 7
+ },
+/obj/structure/surface/table/reinforced/prison,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"gB" = (
+/obj/structure/surface/table,
+/obj/item/weapon/gun/rifle/m16,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"gL" = (
+/obj/structure/bed/bedroll,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"gO" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/structure/machinery/computer/communications{
+ dir = 4
+ },
+/obj/structure/surface/table/reinforced/prison,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"gR" = (
+/obj/item/stack/rods,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"hN" = (
+/obj/item/ammo_casing,
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"iF" = (
+/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"iS" = (
+/obj/structure/filingcabinet,
+/obj/item/paper/research_notes,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"iZ" = (
+/obj/item/weapon/gun/rifle/m16,
+/obj/structure/closet/secure_closet/guncabinet/wy,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "redfull"
+ },
+/area/shiva/interior/colony/s_admin)
+"js" = (
+/obj/item/stack/rods,
+/turf/open/floor/shiva{
+ dir = 10;
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"jE" = (
+/obj/effect/acid_hole{
+ dir = 4
+ },
+/turf/closed/wall/shiva/prefabricated,
+/area/shiva/interior/colony/s_admin)
+"jK" = (
+/obj/structure/flora/bush/snow{
+ icon_state = "snowgrassall_1"
+ },
+/turf/open/auto_turf/snow/layer3,
+/area/shiva/exterior/junkyard)
+"jL" = (
+/obj/structure/machinery/alarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/wood,
+/area/shiva/interior/colony/s_admin)
+"jP" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/clothing/head/soft/sec/corp{
+ pixel_y = 10
+ },
+/obj/item/tool/stamp/hos,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"ky" = (
+/obj/item/reagent_container/food/drinks/cans/waterbottle{
+ pixel_x = 10;
+ pixel_y = 16
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"kB" = (
+/obj/structure/bed/bedroll,
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"kP" = (
+/obj/structure/surface/table/woodentable{
+ dir = 1;
+ flipped = 1
+ },
+/obj/structure/machinery/computer/objective,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"kT" = (
+/obj/item/stack/folding_barricade,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"lb" = (
+/obj/structure/machinery/firealarm{
+ dir = 8;
+ pixel_x = -24
+ },
+/obj/structure/filingcabinet/chestdrawer,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"lq" = (
+/obj/item/ammo_magazine/rifle{
+ current_rounds = 0
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"lP" = (
+/obj/effect/landmark/corpsespawner/wygoon,
+/obj/effect/decal/cleanable/blood{
+ layer = 3
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"lQ" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/item/paper_bin,
+/obj/item/tool/pen/blue,
+/obj/structure/surface/table/reinforced/prison,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"mC" = (
+/obj/structure/machinery/power/apc{
+ dir = 8;
+ start_charge = 0
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"mI" = (
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"ne" = (
+/turf/open/auto_turf/snow/layer3,
+/area/shiva/exterior/junkyard/cp_bar)
+"ng" = (
+/obj/effect/decal/cleanable/blood/gibs/xeno/limb,
+/turf/open/floor/plating,
+/area/shiva/interior/colony/s_admin)
+"nh" = (
+/obj/structure/window/framed/shiva,
+/turf/open/floor/plating,
+/area/shiva/interior/colony/s_admin)
+"ns" = (
+/obj/structure/surface/table,
+/obj/item/weapon/gun/rifle/ar10,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"ob" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/reagent_container/food/drinks/cans/ale{
+ pixel_x = -7;
+ pixel_y = 3
+ },
+/obj/item/reagent_container/food/drinks/cans/ale{
+ pixel_y = 10
+ },
+/obj/item/reagent_container/food/drinks/cans/ale{
+ pixel_x = 7;
+ pixel_y = 4
+ },
+/obj/item/reagent_container/food/drinks/cans/ale,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"of" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ name = "\improper Panic Room Shutters";
+ id = "north_panicroom"
+ },
+/turf/open/floor/plating,
+/area/shiva/interior/colony/s_admin)
+"ov" = (
+/obj/item/trash/buritto,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"oH" = (
+/obj/structure/machinery/light/double,
+/turf/open/floor/shiva{
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"oT" = (
+/obj/item/shard{
+ icon_state = "large"
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"oY" = (
+/obj/structure/closet/crate/secure/weyland,
+/obj/effect/landmark/objective_landmark/science,
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"pz" = (
+/obj/item/weapon/gun/boltaction,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "redfull"
+ },
+/area/shiva/interior/colony/s_admin)
+"pC" = (
+/obj/structure/machinery/disposal,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"pG" = (
+/obj/structure/filingcabinet,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"pQ" = (
+/turf/open/auto_turf/snow/layer1,
+/area/shiva/exterior/junkyard)
+"pS" = (
+/obj/structure/filingcabinet,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"pV" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/floor/plating{
+ icon_state = "platingdmg2"
+ },
+/area/shiva/interior/colony/s_admin)
+"qT" = (
+/obj/structure/machinery/firealarm{
+ dir = 8;
+ pixel_x = -24
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"qU" = (
+/obj/effect/landmark/corpsespawner/scientist,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"rB" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/window/reinforced/tinted,
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/paper_bin,
+/obj/item/tool/pen/blue,
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"rM" = (
+/obj/structure/barricade/wooden{
+ dir = 1
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"rQ" = (
+/obj/item/ammo_magazine/rifle/boltaction,
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_civ,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"sq" = (
+/obj/structure/machinery/faxmachine,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"sy" = (
+/obj/effect/decal/cleanable/blood{
+ icon_state = "xgibdown1"
+ },
+/obj/structure/machinery/light/double,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"sZ" = (
+/obj/structure/machinery/vending/coffee,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"ti" = (
+/obj/effect/decal/cleanable/blood/gibs/xeno,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/shiva/interior/colony/s_admin)
+"tk" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/clipboard,
+/obj/item/tool/stamp,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"tl" = (
+/obj/structure/bed/chair/comfy{
+ dir = 4
+ },
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"tu" = (
+/obj/structure/machinery/light/double{
+ dir = 8;
+ pixel_y = -5
+ },
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"tD" = (
+/obj/effect/decal/cleanable/vomit{
+ icon_state = "vomit_2"
+ },
+/obj/item/reagent_container/food/drinks/bottle/sake{
+ pixel_x = 9;
+ pixel_y = 17
+ },
+/obj/effect/landmark/corpsespawner/chef,
+/obj/structure/bed/bedroll,
+/obj/item/bedsheet/ce,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"tG" = (
+/obj/structure/janitorialcart,
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"tW" = (
+/obj/effect/decal/cleanable/blood/gibs/xeno,
+/turf/open/floor/plating,
+/area/shiva/interior/colony/s_admin)
+"tY" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"ug" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "3"
+ },
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"uh" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/item/ammo_casing,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"ul" = (
+/obj/item/ammo_magazine/rifle/boltaction,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"uA" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/obj/item/ammo_magazine/pistol/holdout{
+ pixel_x = 3;
+ pixel_y = 2
+ },
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/bar)
+"uE" = (
+/obj/structure/machinery/door_control{
+ id = "north_panicroom";
+ pixel_y = 30
+ },
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"uJ" = (
+/obj/item/stack/rods,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"uM" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/structure/window/reinforced/tinted,
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/clipboard,
+/obj/item/tool/stamp,
+/obj/effect/landmark/objective_landmark/far,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"uP" = (
+/obj/structure/machinery/light/double{
+ dir = 4;
+ pixel_y = -5
+ },
+/obj/structure/machinery/vending/coffee,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"uR" = (
+/obj/structure/machinery/light/double{
+ dir = 8;
+ pixel_y = -5
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"vn" = (
+/obj/effect/decal/remains/xeno,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"vq" = (
+/obj/structure/filingcabinet,
+/obj/item/paper/research_notes,
+/obj/structure/machinery/light/double{
+ dir = 8;
+ pixel_y = -5
+ },
+/obj/effect/landmark/objective_landmark/science,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"vs" = (
+/turf/open/floor/shiva{
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"vL" = (
+/obj/item/reagent_container/glass/bucket/mopbucket{
+ pixel_x = 5;
+ pixel_y = 5
+ },
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"wH" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/shiva/interior/colony/s_admin)
+"wM" = (
+/obj/item/reagent_container/food/drinks/cans/waterbottle{
+ pixel_y = 5
+ },
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"wO" = (
+/obj/item/clipboard,
+/obj/item/tool/pen/blue,
+/obj/item/stack/sheet/metal,
+/obj/item/shard{
+ icon_state = "large"
+ },
+/obj/item/shard{
+ icon_state = "large"
+ },
+/obj/structure/surface/table/reinforced/prison,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"wW" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/shiva{
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"wX" = (
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"wY" = (
+/obj/structure/machinery/power/apc{
+ dir = 1;
+ start_charge = 0
+ },
+/turf/open/auto_turf/snow/layer2,
+/area/shiva/exterior/junkyard/cp_bar)
+"xa" = (
+/obj/item/shard{
+ icon_state = "large"
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"xg" = (
+/obj/structure/bed/chair/office/light{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/shiva/interior/colony/s_admin)
+"xD" = (
+/obj/structure/bed/chair/comfy/orange{
+ dir = 1
+ },
+/obj/item/paper_bin,
+/obj/structure/machinery/light/double,
+/obj/effect/decal/cleanable/blood{
+ layer = 3
+ },
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"xZ" = (
+/obj/item/storage/belt/marine,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"yd" = (
+/obj/item/weapon/gun/rifle/ar10,
+/obj/item/ammo_magazine/rifle/ar10,
+/obj/structure/closet/secure_closet/guncabinet/wy,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "redfull"
+ },
+/area/shiva/interior/colony/s_admin)
+"ye" = (
+/obj/structure/bed/chair/office/light{
+ dir = 1
+ },
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_cl,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"yi" = (
+/obj/item/trash/wy_chips_pepper,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"yo" = (
+/obj/structure/machinery/disposal,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"yq" = (
+/obj/effect/decal/cleanable/blood{
+ layer = 3
+ },
+/obj/effect/decal/remains/human,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"yz" = (
+/obj/structure/flora/bush/snow{
+ icon_state = "snowgrassall_3"
+ },
+/turf/open/auto_turf/snow/layer3,
+/area/shiva/exterior/junkyard)
+"yQ" = (
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_sci,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"yS" = (
+/obj/structure/machinery/firealarm{
+ dir = 8;
+ pixel_x = -24
+ },
+/obj/item/weapon/gun/boltaction,
+/obj/structure/closet/secure_closet/guncabinet/wy,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "redfull"
+ },
+/area/shiva/interior/colony/s_admin)
+"zc" = (
+/obj/structure/machinery/vending/snack,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"zi" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/paper_bin,
+/obj/item/tool/pen/blue,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"zp" = (
+/obj/effect/decal/cleanable/blood/oil/streak,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"zu" = (
+/obj/structure/machinery/light/double,
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"zw" = (
+/obj/item/ammo_casing,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"zA" = (
+/obj/structure/window_frame/colony/reinforced,
+/turf/open/floor/plating,
+/area/shiva/interior/colony/s_admin)
+"Ad" = (
+/obj/structure/bed/chair/office/light{
+ dir = 4
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Av" = (
+/obj/structure/machinery/light/double{
+ dir = 8;
+ pixel_y = -5
+ },
+/obj/structure/closet/secure_closet/guncabinet/wy,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "redfull"
+ },
+/area/shiva/interior/colony/s_admin)
+"AC" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"AY" = (
+/obj/structure/flora/pottedplant,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"AZ" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/shiva/interior/colony/s_admin)
+"Bg" = (
+/obj/structure/machinery/light_construct{
+ dir = 1
+ },
+/obj/item/light_bulb/tube/prison,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Bq" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/machinery/computer/cameras{
+ dir = 8
+ },
+/obj/structure/surface/table/reinforced/prison,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Bv" = (
+/obj/structure/machinery/door_control{
+ id = "south_panicroom";
+ pixel_x = 30
+ },
+/obj/structure/surface/table,
+/obj/item/ammo_magazine/shotgun/slugs,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"BD" = (
+/obj/item/lightstick/red/spoke/planted{
+ pixel_x = -11;
+ pixel_y = 20
+ },
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/bar)
+"BQ" = (
+/obj/effect/decal/cleanable/blood{
+ icon_state = "gib6"
+ },
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/bar)
+"BU" = (
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_civ,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Cc" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/shiva/interior/colony/s_admin)
+"Cd" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/effect/landmark/good_item,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Cu" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/structure/window/reinforced/tinted,
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/clipboard,
+/obj/item/tool/stamp,
+/obj/effect/landmark/crap_item,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Cx" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"CZ" = (
+/obj/item/ammo_casing,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Dg" = (
+/obj/effect/decal/cleanable/vomit,
+/obj/item/reagent_container/food/drinks/bottle/sake{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Dl" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Dx" = (
+/obj/structure/machinery/light/double,
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"DB" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"DU" = (
+/obj/structure/machinery/firealarm{
+ dir = 8;
+ pixel_x = -24
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"DW" = (
+/obj/structure/machinery/vending/cigarette/colony,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"DY" = (
+/obj/item/trash/burger,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"EX" = (
+/obj/structure/machinery/light/double{
+ dir = 1;
+ pixel_y = 9
+ },
+/obj/item/shard{
+ icon_state = "large"
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Fa" = (
+/obj/effect/spawner/gibspawner/human,
+/turf/open/floor/plating{
+ icon_state = "platingdmg2"
+ },
+/area/shiva/interior/colony/s_admin)
+"Fc" = (
+/obj/structure/surface/table,
+/obj/item/ammo_magazine/rifle/ar10,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"Ff" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/shiva/interior/colony/s_admin)
+"Fg" = (
+/obj/structure/largecrate/random/case/double,
+/turf/open/auto_turf/snow/layer2,
+/area/shiva/exterior/junkyard/cp_bar)
+"Fn" = (
+/turf/open/floor/shiva{
+ icon_state = "radiator_tile"
+ },
+/area/shiva/interior/bar)
+"Fp" = (
+/obj/structure/bed/chair/office/dark,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Fx" = (
+/obj/structure/surface/table,
+/obj/structure/prop/ice_colony/hula_girl,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"FH" = (
+/obj/effect/decal/cleanable/blood/oil,
+/obj/item/stack/rods,
+/turf/open/floor/wood,
+/area/shiva/interior/colony/s_admin)
+"FK" = (
+/obj/structure/machinery/photocopier,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"FY" = (
+/turf/template_noop,
+/area/template_noop)
+"GC" = (
+/turf/closed/wall/shiva/prefabricated,
+/area/shiva/interior/colony/s_admin)
+"GJ" = (
+/obj/structure/surface/table,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"GQ" = (
+/obj/effect/decal/cleanable/blood/xeno{
+ icon_state = "xgibhead"
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"He" = (
+/obj/item/stool,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Hf" = (
+/obj/structure/closet/secure_closet/security,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Hp" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"Hx" = (
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"HA" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/structure/machinery/computer/station_alert{
+ dir = 4
+ },
+/obj/structure/surface/table/reinforced/prison,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Ik" = (
+/turf/open/auto_turf/snow/layer3,
+/area/shiva/exterior/junkyard)
+"Iy" = (
+/obj/effect/decal/cleanable/blood{
+ layer = 3
+ },
+/obj/effect/landmark/corpsespawner/wysec,
+/turf/open/floor/wood,
+/area/shiva/interior/colony/s_admin)
+"IB" = (
+/obj/effect/decal/cleanable/blood{
+ icon_state = "gib6"
+ },
+/turf/open/floor/wood,
+/area/shiva/interior/colony/s_admin)
+"IQ" = (
+/obj/structure/machinery/vending/cigarette/colony,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"Jp" = (
+/obj/item/ammo_magazine/rifle/extended{
+ current_rounds = 0
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Jv" = (
+/obj/structure/machinery/light/double{
+ dir = 4;
+ pixel_y = -5
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Jx" = (
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/botany)
+"JF" = (
+/obj/structure/machinery/blackbox_recorder,
+/obj/item/prop/almayer/flight_recorder/colony{
+ pixel_x = -6;
+ pixel_y = 10
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"JQ" = (
+/obj/item/ammo_magazine/rifle/boltaction,
+/obj/structure/machinery/alarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/closet/secure_closet/guncabinet/wy,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "redfull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Kb" = (
+/obj/structure/machinery/light/double,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/botany)
+"Ko" = (
+/obj/structure/bed/chair,
+/obj/item/ammo_casing,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Kp" = (
+/obj/structure/machinery/computer/cameras{
+ dir = 8
+ },
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/shard{
+ icon_state = "large"
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"KO" = (
+/obj/structure/largecrate/random/case/small,
+/turf/open/auto_turf/snow/layer2,
+/area/shiva/exterior/junkyard/cp_bar)
+"KR" = (
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Ld" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/floor/shiva{
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"Lh" = (
+/obj/structure/machinery/firealarm{
+ dir = 4;
+ pixel_x = 24
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Lk" = (
+/obj/structure/largecrate/random/case,
+/turf/open/auto_turf/snow/layer3,
+/area/shiva/exterior/junkyard/cp_bar)
+"Lr" = (
+/obj/structure/prop/ice_colony/tiger_rug{
+ icon_state = "White"
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Lu" = (
+/obj/structure/machinery/vending/cigarette/colony,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"LE" = (
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/bar)
+"LF" = (
+/obj/effect/decal/cleanable/blood{
+ layer = 3
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"LU" = (
+/turf/open/floor/shiva{
+ icon_state = "snow_mat"
+ },
+/area/shiva/interior/colony/botany)
+"Mi" = (
+/obj/structure/surface/table,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"MG" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ name = "\improper Panic Room Shutters";
+ id = "south_panicroom"
+ },
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"ML" = (
+/obj/item/stack/sheet/wood,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/shiva/interior/colony/s_admin)
+"MR" = (
+/obj/structure/safe,
+/obj/item/spacecash/c1000{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/spacecash/c1000,
+/obj/item/spacecash/c500,
+/obj/effect/landmark/good_item,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "redfull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Nq" = (
+/turf/open/floor/shiva{
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"Nt" = (
+/obj/effect/decal/cleanable/blood/xeno{
+ icon_state = "xgib6"
+ },
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"Nu" = (
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"NC" = (
+/obj/item/lightstick/variant/planted,
+/turf/open/auto_turf/snow/layer2,
+/area/shiva/exterior/junkyard)
+"On" = (
+/obj/item/stack/rods,
+/obj/structure/window_frame/colony/reinforced,
+/turf/open/floor/plating,
+/area/shiva/interior/colony/s_admin)
+"ON" = (
+/obj/item/lightstick/red/variant/planted,
+/turf/open/auto_turf/snow/layer2,
+/area/shiva/exterior/junkyard/cp_bar)
+"OV" = (
+/obj/structure/machinery/light/double{
+ dir = 4;
+ pixel_y = -5
+ },
+/turf/open/floor/wood,
+/area/shiva/interior/colony/s_admin)
+"Pb" = (
+/obj/structure/filingcabinet,
+/obj/item/paper/research_notes,
+/obj/effect/landmark/objective_landmark/science,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"Py" = (
+/obj/item/trash/kepler,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"PG" = (
+/turf/open/floor/shiva{
+ dir = 4;
+ icon_state = "snow_mat"
+ },
+/area/shiva/interior/colony/botany)
+"PI" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/clipboard,
+/obj/item/tool/stamp,
+/obj/effect/landmark/crap_item,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"PV" = (
+/obj/structure/bed/bedroll,
+/obj/effect/landmark/survivor_spawner/shivas_panic_room_sci,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Qh" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_sn_full_cap"
+ },
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/bar)
+"QS" = (
+/turf/open/auto_turf/snow/layer2,
+/area/shiva/exterior/junkyard)
+"Rs" = (
+/obj/structure/surface/table,
+/obj/item/tool/pen/blue{
+ pixel_x = -6
+ },
+/obj/item/paper_bin{
+ pixel_y = 7
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Ru" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Ry" = (
+/obj/item/tool/mop{
+ pixel_x = -10
+ },
+/turf/open/floor/shiva{
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"RD" = (
+/obj/structure/bed/chair/wood/normal,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"RH" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/paper_bin,
+/obj/item/tool/pen/blue,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"RP" = (
+/turf/open/floor/shiva{
+ dir = 10;
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"RQ" = (
+/obj/structure/machinery/vending/snack,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"RS" = (
+/obj/structure/bed/chair/office/light{
+ dir = 8
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Se" = (
+/obj/effect/decal/cleanable/vomit{
+ icon_state = "vomit_4"
+ },
+/obj/item/reagent_container/food/drinks/bottle/sake{
+ pixel_x = 5;
+ pixel_y = 10
+ },
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"Sl" = (
+/obj/structure/machinery/disposal/broken,
+/turf/open/floor/plating,
+/area/shiva/interior/colony/s_admin)
+"Sq" = (
+/obj/item/tool/wet_sign,
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"SB" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/plating,
+/area/shiva/interior/colony/s_admin)
+"SU" = (
+/obj/item/device/flashlight/lamp{
+ pixel_y = 7
+ },
+/obj/item/frame/table/wood,
+/obj/effect/decal/cleanable/blood{
+ icon_state = "gib6"
+ },
+/turf/open/floor/wood,
+/area/shiva/interior/colony/s_admin)
+"Tc" = (
+/obj/item/frame/table/reinforced,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Td" = (
+/obj/item/reagent_container/food/drinks/cans/waterbottle,
+/obj/item/ammo_casing,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"Tj" = (
+/obj/structure/machinery/disposal/broken,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Tr" = (
+/obj/structure/machinery/computer/station_alert{
+ dir = 4
+ },
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"TG" = (
+/obj/item/prop/colony/folded_bedroll,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "redfull"
+ },
+/area/shiva/interior/colony/s_admin)
+"TI" = (
+/obj/item/ammo_casing,
+/turf/open/floor/shiva{
+ dir = 8;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/colony/s_admin)
+"TL" = (
+/obj/item/weapon/gun/energy/taser,
+/obj/structure/machinery/light/double{
+ dir = 8;
+ pixel_y = -5
+ },
+/turf/open/floor/wood,
+/area/shiva/interior/colony/s_admin)
+"Ub" = (
+/obj/item/trash/kepler/flamehot,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"Ue" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/obj/item/ammo_casing,
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/bar)
+"UD" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{
+ name = "\improper Colony Administration";
+ locked = 1
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"UW" = (
+/obj/structure/machinery/light/double,
+/turf/open/floor/shiva{
+ dir = 10;
+ icon_state = "green"
+ },
+/area/shiva/interior/colony/botany)
+"Vb" = (
+/obj/item/bodybag,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Vi" = (
+/obj/structure/window_frame/colony/reinforced,
+/obj/item/shard,
+/turf/open/floor/plating,
+/area/shiva/interior/colony/s_admin)
+"Vl" = (
+/obj/effect/acid_hole,
+/turf/closed/wall/shiva/prefabricated,
+/area/shiva/interior/colony/s_admin)
+"Vy" = (
+/obj/structure/surface/table,
+/obj/item/storage/toolbox/emergency,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"VC" = (
+/obj/structure/machinery/light/double{
+ dir = 4;
+ pixel_y = -5
+ },
+/obj/structure/surface/table/reinforced/prison,
+/obj/effect/landmark/crap_item,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"VE" = (
+/obj/structure/machinery/door/airlock/almayer/security/glass/colony{
+ name = "\improper Colony Security Checkpoint"
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"VX" = (
+/obj/structure/closet/secure_closet/personal,
+/obj/effect/landmark/objective_landmark/medium,
+/obj/effect/landmark/good_item,
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"Wj" = (
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Wm" = (
+/turf/open/auto_turf/snow/layer2,
+/area/shiva/exterior/junkyard/cp_bar)
+"WA" = (
+/obj/structure/stairs/perspective{
+ dir = 4;
+ icon_state = "p_stair_sn_full_cap"
+ },
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/bar)
+"WT" = (
+/obj/item/frame/table/wood,
+/turf/open/floor/plating{
+ icon_state = "platingdmg2"
+ },
+/area/shiva/interior/colony/s_admin)
+"Xt" = (
+/obj/structure/flora/pottedplant,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+"Xu" = (
+/obj/effect/spawner/gibspawner/xeno,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/shiva/interior/colony/s_admin)
+"XP" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/window/reinforced/tinted,
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/paper_bin,
+/obj/item/tool/pen/blue,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"YD" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/computer/cameras{
+ dir = 1
+ },
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"YS" = (
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/shiva/interior/colony/s_admin)
+"YT" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/machinery/computer/atmos_alert{
+ dir = 8
+ },
+/obj/structure/surface/table/reinforced/prison,
+/turf/open/floor/shiva{
+ dir = 1
+ },
+/area/shiva/interior/colony/s_admin)
+"Zi" = (
+/obj/item/weapon/gun/pistol/holdout,
+/obj/item/ammo_magazine/pistol/holdout,
+/turf/open/floor/shiva{
+ dir = 6;
+ icon_state = "multi_tiles"
+ },
+/area/shiva/interior/bar)
+"Zl" = (
+/obj/item/stack/cable_coil,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/shiva/interior/colony/s_admin)
+"ZD" = (
+/obj/item/ammo_magazine/rifle/m16,
+/turf/open/floor/shiva{
+ icon_state = "bluefull"
+ },
+/area/shiva/interior/colony/s_admin)
+
+(1,1,1) = {"
+PG
+ce
+FY
+FY
+FY
+FY
+FY
+FY
+FY
+FY
+FY
+FY
+ce
+ce
+ce
+ce
+ce
+ce
+pQ
+pQ
+Ik
+FY
+FY
+"}
+(2,1,1) = {"
+PG
+ce
+FY
+FY
+FY
+FY
+FY
+FY
+FY
+FY
+FY
+ce
+ce
+JQ
+yS
+Av
+yd
+ce
+QS
+NC
+QS
+FY
+FY
+"}
+(3,1,1) = {"
+Kb
+ce
+FY
+FY
+FY
+FY
+FY
+FY
+FY
+FY
+FY
+ce
+MR
+wM
+fj
+rQ
+iZ
+ce
+Ik
+jK
+pQ
+FY
+FY
+"}
+(4,1,1) = {"
+RP
+ce
+ce
+ce
+ce
+ce
+ce
+ce
+ce
+ce
+ce
+ce
+ce
+fj
+xZ
+fj
+dv
+ce
+yz
+Ik
+Ik
+FY
+FY
+"}
+(5,1,1) = {"
+RP
+GC
+iS
+pG
+tu
+ba
+Cd
+mC
+dF
+dF
+qT
+JF
+ce
+pz
+TG
+eZ
+ce
+ce
+ce
+ce
+Ik
+FY
+FY
+"}
+(6,1,1) = {"
+RP
+Vl
+dF
+Hx
+Ad
+Hx
+dF
+CZ
+Hx
+Ad
+zw
+dF
+ce
+Nu
+Ub
+xZ
+Pb
+vq
+pS
+ce
+QS
+FY
+FY
+"}
+(7,1,1) = {"
+Ld
+nh
+rM
+tk
+YT
+zi
+xa
+dF
+tk
+Kp
+rB
+qU
+ce
+ul
+dF
+dF
+ov
+yQ
+kB
+ce
+Ik
+FY
+FY
+"}
+(8,1,1) = {"
+RP
+Vi
+CZ
+lQ
+gO
+uM
+dF
+dF
+RH
+Tr
+PI
+Dx
+ce
+uE
+CZ
+tl
+Dl
+dF
+iF
+ce
+NC
+FY
+FY
+"}
+(9,1,1) = {"
+UW
+GC
+mI
+Hx
+RS
+Hx
+CZ
+dF
+Hx
+RS
+Jp
+dF
+of
+Td
+RD
+Rs
+sq
+ye
+fj
+ce
+QS
+FY
+FY
+"}
+(10,1,1) = {"
+js
+zA
+do
+Hx
+Hx
+lP
+dF
+Lr
+Hx
+Hx
+Hx
+yq
+of
+Vy
+Fp
+Tj
+Fx
+tY
+oY
+ce
+QS
+FY
+FY
+"}
+(11,1,1) = {"
+Nq
+tW
+dg
+uh
+lq
+Hx
+dF
+dF
+Hx
+Hx
+Hx
+CZ
+of
+ns
+PV
+He
+Wj
+dF
+gf
+ce
+QS
+FY
+FY
+"}
+(12,1,1) = {"
+oH
+GC
+Bg
+oT
+Cx
+Hx
+dF
+CZ
+LF
+Ad
+Hx
+dF
+of
+Fc
+CZ
+DY
+dF
+BU
+ce
+ce
+cS
+ch
+Fn
+"}
+(13,1,1) = {"
+Nq
+aq
+rM
+tk
+Bq
+XP
+dF
+dF
+tk
+Bq
+XP
+sy
+ce
+YS
+dF
+dF
+cL
+bi
+Mi
+MG
+Qh
+LE
+LE
+"}
+(14,1,1) = {"
+Nq
+SB
+FK
+RH
+HA
+Cu
+dF
+dF
+cY
+HA
+Cu
+dF
+ce
+yi
+BU
+dF
+dF
+Ko
+gB
+fM
+Ue
+Zi
+LE
+"}
+(15,1,1) = {"
+Sq
+GC
+dF
+Hx
+RS
+Hx
+CZ
+dF
+zw
+RS
+Hx
+dF
+ce
+fj
+Vb
+ky
+CZ
+ZD
+GJ
+fM
+fx
+BQ
+BQ
+"}
+(16,1,1) = {"
+vL
+GC
+dF
+Tc
+VC
+dF
+Lh
+dF
+gR
+dF
+vn
+Xt
+ce
+Se
+Dg
+dF
+yQ
+CZ
+Py
+fM
+uA
+LE
+LE
+"}
+(17,1,1) = {"
+fT
+ce
+GC
+GC
+GC
+jE
+GC
+ce
+oT
+cO
+cO
+uh
+ce
+tD
+RQ
+uP
+IQ
+gL
+Bv
+MG
+WA
+LE
+LE
+"}
+(18,1,1) = {"
+Ry
+GC
+DU
+jL
+TL
+fR
+ob
+GC
+AY
+vs
+vs
+AY
+ce
+GC
+GC
+GC
+GC
+ce
+ce
+ce
+cS
+BD
+Fn
+"}
+(19,1,1) = {"
+tG
+GC
+gn
+fR
+fR
+Iy
+jP
+GC
+Ru
+Hp
+cO
+Hx
+GC
+VX
+cv
+kP
+lb
+GC
+ai
+Wm
+FY
+FY
+FY
+"}
+(20,1,1) = {"
+Sq
+GC
+Hf
+ff
+OV
+xg
+YD
+GC
+gh
+cO
+cO
+Hx
+FH
+IB
+aH
+SU
+xD
+GC
+ne
+Wm
+FY
+FY
+FY
+"}
+(21,1,1) = {"
+zu
+ce
+ce
+VE
+ce
+wO
+bI
+ce
+EX
+cO
+hN
+Hx
+GC
+pC
+fj
+kT
+fj
+GC
+KO
+ON
+FY
+FY
+FY
+"}
+(22,1,1) = {"
+Jx
+On
+KR
+GQ
+uR
+Hx
+Hx
+On
+Cx
+Nt
+cO
+AC
+ce
+GC
+GC
+AZ
+GC
+ce
+Fg
+Wm
+FY
+FY
+FY
+"}
+(23,1,1) = {"
+PG
+UD
+Lu
+wX
+TI
+wX
+ug
+UD
+eO
+wW
+vs
+Hx
+GC
+Ff
+wH
+AZ
+WT
+GC
+Lk
+Wm
+FY
+FY
+FY
+"}
+(24,1,1) = {"
+LU
+Hx
+eO
+wX
+DB
+wX
+wX
+Hx
+sZ
+vs
+vs
+zw
+Zl
+ML
+AZ
+ti
+wH
+pV
+ne
+Wm
+FY
+FY
+FY
+"}
+(25,1,1) = {"
+PG
+nh
+zc
+zw
+Hx
+Hx
+Hx
+nh
+DW
+Hx
+Hx
+uJ
+gk
+ng
+wH
+Cc
+Fa
+GC
+ne
+ON
+FY
+FY
+FY
+"}
+(26,1,1) = {"
+PG
+GC
+Hx
+Hx
+Jv
+Hx
+AY
+GC
+yo
+Hx
+Jv
+zp
+GC
+Sl
+Xu
+wH
+AZ
+GC
+wY
+Wm
+FY
+FY
+FY
+"}
+(27,1,1) = {"
+PG
+GC
+GC
+GC
+GC
+GC
+GC
+GC
+GC
+GC
+GC
+ce
+ce
+ce
+ce
+GC
+GC
+ce
+ne
+Wm
+FY
+FY
+FY
+"}
diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm
index 653416320eac..b63b0895a23b 100644
--- a/maps/map_files/Kutjevo/Kutjevo.dmm
+++ b/maps/map_files/Kutjevo/Kutjevo.dmm
@@ -417,20 +417,6 @@
dir = 4
},
/area/kutjevo/interior/complex/med)
-"azI" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
- },
-/obj/structure/barricade/handrail/kutjevo{
- layer = 3.1
- },
-/obj/structure/barricade/handrail/kutjevo{
- dir = 4
- },
-/turf/open/floor/kutjevo/multi_tiles{
- dir = 1
- },
-/area/kutjevo/interior/colony_South/power2)
"azO" = (
/turf/open/desert/desert_shore/desert_shore1{
dir = 8
@@ -606,15 +592,6 @@
},
/turf/closed/wall/kutjevo/colony,
/area/kutjevo/interior/construction)
-"aNj" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/turf/open/floor/kutjevo/colors/orange,
-/area/kutjevo/interior/colony_South/power2)
"aNn" = (
/turf/open/auto_turf/sand/layer2,
/area/kutjevo/interior/power/comms)
@@ -651,6 +628,16 @@
dir = 1
},
/area/kutjevo/exterior/lz_dunes)
+"aRB" = (
+/obj/item/fuel_cell,
+/obj/structure/surface/rack,
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/turf/open/floor/kutjevo/multi_tiles{
+ dir = 8
+ },
+/area/kutjevo/interior/colony_South/power2)
"aRS" = (
/obj/structure/bed{
can_buckle = 0;
@@ -874,6 +861,10 @@
},
/turf/open/auto_turf/sand/layer1,
/area/kutjevo/exterior/complex_border/botany_medical_cave)
+"bkn" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/kutjevo/colors/orange,
+/area/kutjevo/interior/power)
"bkR" = (
/turf/open/auto_turf/sand/layer1,
/area/kutjevo/interior/colony_north)
@@ -1985,8 +1976,8 @@
"cKY" = (
/obj/structure/prop/brazier/frame/full/campfire,
/obj/item/tool/match/paper{
- pixel_y = -2;
- pixel_x = -11
+ pixel_x = -11;
+ pixel_y = -2
},
/turf/open/auto_turf/sand/layer1,
/area/kutjevo/exterior/spring)
@@ -2594,12 +2585,6 @@
/obj/effect/decal/cleanable/blood,
/turf/open/floor/kutjevo/colors/orange,
/area/kutjevo/interior/colony_South/power2)
-"dux" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/kutjevo/multi_tiles{
- dir = 1
- },
-/area/kutjevo/interior/power/comms)
"duP" = (
/obj/structure/girder,
/turf/open/floor/plating/kutjevo,
@@ -3310,6 +3295,13 @@
},
/turf/open/floor/kutjevo/tan,
/area/kutjevo/interior/complex/botany)
+"ekV" = (
+/obj/structure/surface/rack,
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/floor/kutjevo/multi_tiles{
+ dir = 10
+ },
+/area/kutjevo/interior/colony_South/power2)
"ele" = (
/obj/effect/decal/cleanable/blood/oil,
/turf/open/floor/kutjevo/tan/multi_tiles,
@@ -3628,12 +3620,12 @@
/area/kutjevo/interior/construction)
"eCE" = (
/obj/item/clipboard{
- pixel_y = 4;
- pixel_x = -4
+ pixel_x = -4;
+ pixel_y = 4
},
/obj/item/tool/pen{
- name = "stained pen";
desc = "It's a seemingly normal pen... aside from the faint red fingerprints on the side...";
+ name = "stained pen";
pixel_x = 2;
pixel_y = 10
},
@@ -4512,12 +4504,6 @@
/obj/effect/landmark/corpsespawner/security/marshal,
/turf/open/floor/kutjevo/tan,
/area/kutjevo/interior/construction)
-"fMi" = (
-/obj/structure/stairs/perspective/kutjevo{
- icon_state = "p_stair_full"
- },
-/turf/open/floor/plating/kutjevo,
-/area/kutjevo/interior/colony_South/power2)
"fMB" = (
/obj/structure/flora/grass/tallgrass/desert/corner{
dir = 5
@@ -4534,7 +4520,7 @@
/area/kutjevo/exterior/runoff_river)
"fNe" = (
/obj/effect/landmark/nightmare{
- insert_tag = "cleaningprog"
+ insert_tag = "cleaningprog_botany"
},
/turf/open/floor/kutjevo/tan,
/area/kutjevo/interior/complex/botany)
@@ -4680,14 +4666,6 @@
/obj/structure/largecrate/random/secure,
/turf/open/auto_turf/sand/layer0,
/area/kutjevo/exterior/construction)
-"fVA" = (
-/obj/structure/barricade/handrail/kutjevo{
- layer = 3.1
- },
-/turf/open/floor/kutjevo/multi_tiles{
- dir = 8
- },
-/area/kutjevo/interior/colony_South/power2)
"fWl" = (
/obj/effect/decal/cleanable/blood/oil,
/turf/open/floor/kutjevo/grey/plate,
@@ -5609,6 +5587,9 @@
/obj/structure/machinery/bioprinter{
stored_metal = 1000
},
+/obj/item/clothing/glasses/thermal/syndi{
+ icon_state = "kutjevo_goggles"
+ },
/turf/open/floor/kutjevo/colors/cyan,
/area/kutjevo/interior/complex/med/operating)
"hnZ" = (
@@ -5905,9 +5886,6 @@
/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall,
/turf/open/auto_turf/sand/layer1,
/area/kutjevo/interior/colony_South)
-"hGM" = (
-/turf/closed/wall/kutjevo/colony/reinforced/hull,
-/area/kutjevo/exterior/runoff_bridge)
"hGP" = (
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/floor/kutjevo/plate,
@@ -6150,9 +6128,6 @@
/area/kutjevo/exterior/lz_dunes)
"idX" = (
/obj/structure/closet/firecloset/full,
-/obj/item/clothing/glasses/thermal/syndi{
- icon_state = "kutjevo_goggles"
- },
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/kutjevo/multi_tiles,
/area/kutjevo/interior/complex/med/locks)
@@ -6726,8 +6701,8 @@
/area/kutjevo/exterior/complex_border/med_rec)
"jac" = (
/obj/item/device/radio{
- name = "damp shortwave radio";
- desc = "A regular shortwave radio, this one has experienced minor water damage but is still functional."
+ desc = "A regular shortwave radio, this one has experienced minor water damage but is still functional.";
+ name = "damp shortwave radio"
},
/turf/open/desert/desert_shore/shore_corner2,
/area/kutjevo/exterior/spring)
@@ -6881,6 +6856,10 @@
/obj/item/device/flashlight/lamp/tripod/grey,
/turf/open/auto_turf/sand/layer1,
/area/kutjevo/exterior/runoff_river)
+"jmP" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/kutjevo/colors/orange,
+/area/kutjevo/interior/power_pt2_electric_boogaloo)
"jng" = (
/obj/structure/surface/table/almayer,
/obj/item/paper_bin{
@@ -7116,10 +7095,6 @@
dir = 10
},
/area/kutjevo/interior/colony_South/power2)
-"jxR" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/kutjevo/colors/orange,
-/area/kutjevo/interior/power_pt2_electric_boogaloo)
"jxS" = (
/obj/structure/bed/chair{
dir = 8
@@ -7218,6 +7193,20 @@
/obj/item/stack/sheet/wood,
/turf/open/floor/kutjevo/tan/multi_tiles,
/area/kutjevo/interior/power/comms)
+"jGo" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/kutjevo/multi_tiles{
+ dir = 6
+ },
+/area/kutjevo/interior/power)
"jGX" = (
/obj/effect/landmark/survivor_spawner,
/turf/open/floor/kutjevo/colors,
@@ -7656,6 +7645,16 @@
/obj/structure/reagent_dispensers/water_cooler,
/turf/open/floor/kutjevo/tan/multi_tiles,
/area/kutjevo/interior/complex/botany)
+"ksb" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 8
+ },
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/kutjevo/colors/orange,
+/area/kutjevo/interior/power)
"ksl" = (
/obj/effect/landmark/railgun_camera_pos,
/turf/open/auto_turf/sand/layer1,
@@ -8022,7 +8021,7 @@
/area/kutjevo/interior/colony_central/mine_elevator)
"kPw" = (
/obj/effect/landmark/nightmare{
- insert_tag = "trappedmonke"
+ insert_tag = "trappedmonke_andclown"
},
/turf/open/floor/kutjevo/tan/multi_tiles,
/area/kutjevo/interior/oob)
@@ -8549,12 +8548,6 @@
},
/turf/open/auto_turf/sand/layer0,
/area/kutjevo/interior/colony_north)
-"lBu" = (
-/obj/structure/machinery/power/terminal{
- dir = 4
- },
-/turf/open/floor/kutjevo/multi_tiles,
-/area/kutjevo/interior/power)
"lBP" = (
/obj/structure/window/framed/kutjevo/reinforced,
/obj/structure/machinery/door/poddoor/shutters/almayer{
@@ -8922,6 +8915,12 @@
/obj/structure/blocker/invisible_wall,
/turf/open/floor/plating/kutjevo,
/area/kutjevo/interior/oob)
+"mcA" = (
+/obj/structure/machinery/fuelcell_recycler/full,
+/turf/open/floor/kutjevo/multi_tiles{
+ dir = 6
+ },
+/area/kutjevo/interior/power)
"mcZ" = (
/obj/structure/bed/chair{
pixel_y = 8
@@ -9465,7 +9464,7 @@
/area/kutjevo/interior/complex/med)
"mIg" = (
/obj/effect/landmark/nightmare{
- insert_tag = "plinkingspot"
+ insert_tag = "plinkingspot_northlz"
},
/turf/closed/wall/kutjevo/rock/border,
/area/kutjevo/exterior/scrubland)
@@ -10133,16 +10132,6 @@
},
/turf/open/asphalt/cement_sunbleached,
/area/kutjevo/exterior/scrubland)
-"nEE" = (
-/obj/item/fuelCell,
-/obj/structure/surface/rack,
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/turf/open/floor/kutjevo/multi_tiles{
- dir = 8
- },
-/area/kutjevo/interior/colony_South/power2)
"nFM" = (
/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{
dir = 1;
@@ -11119,14 +11108,6 @@
dir = 8
},
/area/kutjevo/interior/complex/med/auto_doc)
-"oSx" = (
-/obj/structure/barricade/handrail/kutjevo{
- layer = 3.1
- },
-/turf/open/floor/kutjevo/multi_tiles{
- dir = 4
- },
-/area/kutjevo/interior/colony_South/power2)
"oSK" = (
/obj/structure/machinery/vending/snack,
/turf/open/floor/kutjevo/tan/grey_edge,
@@ -12057,10 +12038,6 @@
},
/turf/open/floor/kutjevo/colors/green,
/area/kutjevo/interior/complex/botany)
-"qdj" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/kutjevo/colors/orange,
-/area/kutjevo/interior/power)
"qev" = (
/obj/item/trash/chunk,
/turf/open/auto_turf/sand/layer2,
@@ -12704,6 +12681,13 @@
"raN" = (
/turf/closed/wall/kutjevo/colony/reinforced,
/area/kutjevo/exterior/runoff_bridge)
+"raV" = (
+/obj/structure/machinery/light,
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/almayer/research/containment/floor1,
+/area/kutjevo/interior/power)
"rbu" = (
/obj/structure/machinery/light,
/turf/open/floor/kutjevo/colors/cyan/edge,
@@ -12736,15 +12720,6 @@
/obj/structure/platform/kutjevo/rock,
/turf/open/auto_turf/sand/layer0,
/area/kutjevo/exterior/scrubland)
-"rgh" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/turf/open/floor/kutjevo/colors/orange,
-/area/kutjevo/interior/colony_South/power2)
"rgv" = (
/obj/structure/machinery/power/port_gen/pacman,
/turf/open/auto_turf/sand/layer0,
@@ -13915,16 +13890,6 @@
/obj/structure/barricade/wooden,
/turf/open/floor/almayer/research/containment/floor2,
/area/kutjevo/interior/complex/med/locks)
-"sID" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
- },
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/kutjevo/colors/orange,
-/area/kutjevo/interior/power)
"sJj" = (
/obj/structure/bed/chair/office/light{
dir = 1
@@ -14355,6 +14320,12 @@
},
/turf/open/floor/kutjevo/colors/orange,
/area/kutjevo/interior/colony_central/mine_elevator)
+"tlK" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/kutjevo/multi_tiles{
+ dir = 1
+ },
+/area/kutjevo/interior/power/comms)
"tlN" = (
/turf/closed/wall/kutjevo/colony/reinforced,
/area/kutjevo/interior/power/comms)
@@ -14592,6 +14563,21 @@
},
/turf/open/floor/kutjevo/colors/green/tile,
/area/kutjevo/interior/complex/botany)
+"tEj" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/kutjevo/multi_tiles{
+ dir = 6
+ },
+/area/kutjevo/interior/power)
"tEK" = (
/obj/structure/bed/sofa/vert/grey/bot{
pixel_y = 4
@@ -14603,13 +14589,6 @@
/obj/structure/platform_decoration/kutjevo,
/turf/open/floor/mech_bay_recharge_floor,
/area/kutjevo/interior/power)
-"tEV" = (
-/obj/structure/surface/rack,
-/obj/effect/landmark/objective_landmark/medium,
-/turf/open/floor/kutjevo/multi_tiles{
- dir = 10
- },
-/area/kutjevo/interior/colony_South/power2)
"tFe" = (
/obj/structure/machinery/light,
/turf/open/floor/kutjevo/colors/orange/edge,
@@ -15226,20 +15205,6 @@
},
/turf/open/floor/plating/kutjevo,
/area/kutjevo/interior/oob)
-"uxb" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
- },
-/obj/structure/barricade/handrail/kutjevo{
- layer = 3.1
- },
-/obj/structure/barricade/handrail/kutjevo{
- dir = 8
- },
-/turf/open/floor/kutjevo/multi_tiles{
- dir = 10
- },
-/area/kutjevo/interior/colony_South/power2)
"uxA" = (
/obj/structure/prop/dam/truck,
/turf/open/asphalt/cement_sunbleached,
@@ -15392,12 +15357,6 @@
/obj/structure/flora/grass/desert/lightgrass_3,
/turf/open/auto_turf/sand/layer1,
/area/kutjevo/exterior/construction)
-"uHJ" = (
-/obj/structure/stairs/perspective/kutjevo{
- icon_state = "p_stair_sn_full_cap"
- },
-/turf/open/floor/plating/kutjevo,
-/area/kutjevo/interior/colony_South/power2)
"uHP" = (
/turf/open/floor/kutjevo/colors/cyan,
/area/kutjevo/interior/complex/med/auto_doc)
@@ -15951,19 +15910,6 @@
dir = 4
},
/area/kutjevo/interior/complex/med)
-"vnL" = (
-/obj/item/fuelCell,
-/obj/structure/surface/rack,
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
- },
-/turf/open/floor/kutjevo/multi_tiles{
- dir = 10
- },
-/area/kutjevo/interior/colony_South/power2)
"vnO" = (
/obj/structure/bed/chair{
dir = 8
@@ -16040,13 +15986,6 @@
/obj/structure/flora/grass/tallgrass/desert/corner,
/turf/open/auto_turf/sand/layer1,
/area/kutjevo/exterior/scrubland)
-"vwB" = (
-/obj/structure/stairs/perspective/kutjevo{
- dir = 4;
- icon_state = "p_stair_sn_full_cap"
- },
-/turf/open/floor/plating/kutjevo,
-/area/kutjevo/interior/colony_South/power2)
"vxe" = (
/turf/open/floor/kutjevo/tan/alt_edge{
dir = 8
@@ -16987,6 +16926,19 @@
/obj/effect/landmark/corpsespawner/colonist/kutjevo,
/turf/open/floor/kutjevo/grey/plate,
/area/kutjevo/interior/construction)
+"wLB" = (
+/obj/item/fuel_cell,
+/obj/structure/surface/rack,
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/platform/kutjevo/smooth{
+ dir = 4
+ },
+/turf/open/floor/kutjevo/multi_tiles{
+ dir = 10
+ },
+/area/kutjevo/interior/colony_South/power2)
"wMw" = (
/obj/structure/blocker/invisible_wall,
/turf/open/floor/kutjevo/multi_tiles,
@@ -17533,6 +17485,12 @@
},
/turf/open/floor/plating/kutjevo,
/area/kutjevo/interior/colony_South/power2)
+"xGI" = (
+/obj/structure/machinery/power/terminal{
+ dir = 4
+ },
+/turf/open/floor/kutjevo/multi_tiles,
+/area/kutjevo/interior/power)
"xHm" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_29";
@@ -23933,13 +23891,13 @@ tWM
cRo
tlN
kfe
-dux
+tlK
boR
tXm
tWM
tXm
boR
-dux
+tlK
tlN
iaj
iaj
@@ -24100,13 +24058,13 @@ tWM
xZr
tlN
kfe
-dux
+tlK
vXq
kKb
tWM
tXm
boR
-dux
+tlK
tlN
iaj
iaj
@@ -24267,13 +24225,13 @@ tWM
wtZ
tlN
kfe
-dux
+tlK
boR
tXm
jFB
kKb
vXq
-dux
+tlK
tlN
iaj
iaj
@@ -25478,7 +25436,7 @@ cvm
hQj
hQj
hQj
-cvm
+mcA
rwj
uZT
uZT
@@ -25645,7 +25603,7 @@ cvm
hQj
hQj
hQj
-cvm
+mcA
aHW
aHW
aHW
@@ -25812,7 +25770,7 @@ cvm
kdY
kdY
kdY
-cvm
+tEj
rwj
muG
muG
@@ -25973,13 +25931,13 @@ uGd
fkP
vin
pBV
-lBu
+xGI
uBz
cvm
hQj
hQj
hQj
-cvm
+jGo
rwj
wMw
wMw
@@ -26146,7 +26104,7 @@ xjY
xjY
bbL
xjY
-voy
+raV
rwj
uZT
uZT
@@ -26475,7 +26433,7 @@ xpk
tQB
ePx
pBV
-sID
+ksb
vdl
xzY
xzY
@@ -26642,7 +26600,7 @@ nah
xXI
cTz
pBV
-qdj
+bkn
xzY
oum
hQj
@@ -26809,7 +26767,7 @@ qjz
niT
cTz
pBV
-qdj
+bkn
xzY
hQj
hQj
@@ -26976,7 +26934,7 @@ soe
gCb
cTz
pBV
-qdj
+bkn
oKA
hQj
hQj
@@ -33419,9 +33377,9 @@ dxF
dxF
dxF
dxF
-mxB
-mxB
-mxB
+dxF
+dxF
+dxF
dxF
dxF
hkO
@@ -33586,8 +33544,8 @@ jPt
pKP
dxF
dxF
-mxB
-mxB
+dxF
+dxF
mhj
dxF
dxF
@@ -33753,7 +33711,7 @@ bjj
fpO
orL
dxF
-mxB
+dxF
mhj
fjF
gBl
@@ -33959,7 +33917,7 @@ kDS
wGD
mNM
xvn
-hGM
+mNM
xms
dRj
dRj
@@ -36464,8 +36422,8 @@ vDS
mNM
xvn
dJT
-hGM
-hGM
+mNM
+mNM
oeb
fyD
oeb
@@ -36631,7 +36589,7 @@ gqQ
vys
dRj
lok
-hGM
+mNM
qrl
nOH
fyD
@@ -37466,7 +37424,7 @@ kDS
nOH
xuY
xyY
-hGM
+mNM
juH
dRj
dRj
@@ -37633,7 +37591,7 @@ vfd
mNM
xvn
dJT
-hGM
+mNM
wuy
mSd
dTM
@@ -38465,10 +38423,10 @@ tIz
tIz
wtH
wtH
-nie
-jhS
-jhS
-jhS
+wtH
+rzh
+rzh
+rzh
jhS
tGi
tGi
@@ -38632,10 +38590,10 @@ vHh
tIz
wtH
wtH
-nie
-jhS
-jhS
-jhS
+wtH
+rzh
+rzh
+rzh
jhS
kVJ
kVJ
@@ -38799,9 +38757,9 @@ sAe
hMu
wCU
wCU
-btI
-btI
-btI
+wCU
+wCU
+wCU
btI
jhS
mjP
@@ -38966,8 +38924,8 @@ hMu
hMu
wCU
wCU
-btI
-btI
+wCU
+wCU
btI
btI
sfz
@@ -39783,9 +39741,9 @@ szC
szC
sOT
dip
-jxR
-jxR
-jxR
+jmP
+jmP
+jmP
dip
gQr
hMu
@@ -39954,15 +39912,15 @@ dip
dip
dip
dip
-mMf
-mMf
-gQr
-gQr
-gQr
gQr
gQr
gQr
rIL
+rIL
+rIL
+rIL
+rIL
+rIL
cyM
rIL
fWl
@@ -40115,14 +40073,14 @@ szC
lNG
szC
lNG
-szC
dip
-gQr
-gQr
+dip
rIL
mMf
-rIL
-rIL
+mMf
+gQr
+gQr
+gQr
rIL
dnF
rIL
@@ -40283,11 +40241,11 @@ dip
dip
dip
dip
-dip
rIL
rIL
-mMf
rIL
+mMf
+mMf
rIL
rIL
rIL
@@ -40298,7 +40256,7 @@ gQr
gQr
iGz
dnF
-gQr
+rIL
rMp
kGM
nbu
@@ -40448,8 +40406,14 @@ oNG
rIL
rIL
rIL
-mMf
-mMf
+rIL
+rIL
+rIL
+rIL
+rIL
+rIL
+rIL
+rIL
rIL
rIL
rIL
@@ -40458,14 +40422,8 @@ gQr
gQr
gQr
gQr
-gQr
-gQr
-gQr
-gQr
-gQr
-gQr
-gQr
-gQr
+mMf
+rIL
hMu
nbu
kAW
@@ -40614,11 +40572,11 @@ rIL
mMf
rIL
mMf
-jhS
-kVJ
-kVJ
-kVJ
-jhS
+rIL
+rIL
+rIL
+rIL
+rIL
jhS
jhS
jhS
@@ -40777,15 +40735,15 @@ fyF
sTU
bDX
qaI
-oNG
-oNG
+rIL
+rIL
fAT
dnF
-jhS
-gtL
-rzb
-vGx
-jhS
+rIL
+rIL
+rIL
+rIL
+mMf
jhS
gtL
rzb
@@ -40946,13 +40904,13 @@ fyF
qaI
oNG
oNG
-oNG
-oNG
-jhS
-hws
-qwg
-vcY
-jhS
+mMf
+rIL
+mMf
+rIL
+rIL
+rIL
+mMf
jhS
hws
qwg
@@ -41114,12 +41072,12 @@ qaI
oNG
oNG
oNG
-oNG
-jhS
-cTG
-fRZ
-cQt
-jhS
+hMu
+hMu
+rIL
+rIL
+mMf
+hMu
jhS
cTG
fRZ
@@ -41282,11 +41240,11 @@ rfE
rdm
rdm
rdm
-jhS
-kVJ
-kVJ
-kVJ
-jhS
+hMu
+rIL
+rIL
+mMf
+hMu
jhS
kVJ
kVJ
@@ -41801,8 +41759,8 @@ vXK
evr
fTk
fTk
-oSx
-eaB
+fTk
+qGx
qGx
qGx
qGx
@@ -41968,8 +41926,8 @@ klE
klE
ngK
klE
-azI
-rgh
+ngK
+qGx
qGx
qGx
qGx
@@ -42135,8 +42093,8 @@ klE
qGx
qGx
qGx
-uHJ
-uHJ
+qGx
+qGx
qGx
qGx
eQW
@@ -42302,8 +42260,8 @@ qGx
duw
mLw
xVZ
-fMi
-fMi
+xVZ
+mLw
mLw
cpg
fqm
@@ -42469,8 +42427,8 @@ xVZ
xVZ
mLw
qGx
-vwB
-vwB
+qGx
+qGx
qGx
qGx
gNx
@@ -42636,8 +42594,8 @@ qGx
mEe
slx
qGx
-uxb
-aNj
+klE
+qGx
qGx
rHE
qGx
@@ -42803,8 +42761,8 @@ mBG
qGx
efr
qGx
-fVA
-eaB
+shX
+qGx
acD
vSE
acD
@@ -42965,7 +42923,7 @@ mcv
mcv
mcv
grR
-nEE
+aRB
shX
qGx
slx
@@ -43132,7 +43090,7 @@ ouR
ouR
byw
mcv
-vnL
+wLB
fdr
eFf
slx
@@ -43304,7 +43262,7 @@ grR
jeO
slx
qGx
-tEV
+ekV
rdm
rdm
rdm
diff --git a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm
index 7364b1609c3e..6bc30f573dd2 100644
--- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm
+++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm
@@ -577,6 +577,10 @@
},
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/colony_streets/north_east_street)
+"aom" = (
+/obj/structure/barricade/deployable,
+/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"aox" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall,
/turf/open/floor/corsat{
@@ -685,12 +689,13 @@
},
/area/lv522/outdoors/colony_streets/windbreaker/observation)
"arP" = (
-/obj/item/lightstick/red/spoke/planted{
- pixel_x = -9;
- pixel_y = 25
+/obj/structure/machinery/light{
+ dir = 8
},
-/turf/open/auto_turf/sand_white/layer0,
-/area/lv522/outdoors/colony_streets/central_streets)
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/lv522/indoors/lone_buildings/storage_blocks)
"arV" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/belt/utility,
@@ -1809,6 +1814,12 @@
icon_state = "marked"
},
/area/lv522/indoors/c_block/mining)
+"aXR" = (
+/obj/item/ammo_magazine/rifle/heap{
+ current_rounds = 0
+ },
+/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"aYd" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -1947,6 +1958,10 @@
/obj/item/tool/shovel,
/turf/open/floor/plating,
/area/lv522/indoors/c_block/cargo)
+"bbi" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/plating,
+/area/lv522/indoors/lone_buildings/engineering)
"bbk" = (
/obj/structure/prop/ice_colony/dense/planter_box{
dir = 9
@@ -2418,6 +2433,9 @@
},
/turf/open/floor/prison,
/area/lv522/indoors/a_block/security/glass)
+"bmR" = (
+/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"bnf" = (
/obj/structure/pipes/vents/pump,
/turf/open/floor/prison{
@@ -3413,10 +3431,8 @@
},
/area/lv522/indoors/b_block/bar)
"bOX" = (
-/turf/open/floor/plating{
- dir = 8;
- icon_state = "platingdmg3"
- },
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/wall/shiva/prefabricated/reinforced,
/area/lv522/indoors/lone_buildings/storage_blocks)
"bPH" = (
/obj/structure/prop/invuln/ice_prefab/trim{
@@ -3823,6 +3839,9 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/lv522/indoors/c_block/cargo)
+"bYC" = (
+/turf/open/shuttle/dropship/can_surgery/light_grey_top_right,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"bYS" = (
/obj/structure/prop/invuln/ice_prefab/trim{
dir = 4;
@@ -4109,7 +4128,14 @@
/turf/open/asphalt/cement,
/area/lv522/outdoors/colony_streets/east_central_street)
"cfd" = (
-/obj/structure/closet/wardrobe/engineering_yellow,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/structure/surface/rack,
/turf/open/floor/prison{
dir = 4;
icon_state = "darkyellowfull2"
@@ -4774,6 +4800,23 @@
/obj/effect/decal/cleanable/blood/oil/streak,
/turf/open/floor/corsat,
/area/lv522/atmos/east_reactor)
+"cxn" = (
+/obj/structure/machinery/door/airlock/almayer/security/glass{
+ dir = 8;
+ name = "\improper Marshal Head Office"
+ },
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ dir = 4;
+ id = "Sec-Kitchen-Lockdown";
+ name = "\improper Storm Shutters"
+ },
+/turf/open/floor/corsat{
+ icon_state = "marked"
+ },
+/area/lv522/indoors/a_block/security)
"cxo" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 9
@@ -4991,6 +5034,14 @@
icon_state = "darkredfull2"
},
/area/lv522/indoors/a_block/kitchen)
+"cBU" = (
+/obj/structure/prop/vehicles/crawler{
+ icon_state = "crawler_covered_bed"
+ },
+/turf/open/floor/corsat{
+ icon_state = "plate"
+ },
+/area/lv522/atmos/reactor_garage)
"cBV" = (
/obj/effect/decal/cleanable/cobweb2,
/turf/open/floor/prison{
@@ -6309,20 +6360,8 @@
},
/area/lv522/oob)
"dbc" = (
-/obj/structure/fence{
- layer = 2.9
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/lv522/outdoors/colony_streets/central_streets)
+/turf/closed/wall/solaris/reinforced/hull/lv522,
+/area/lv522/indoors/lone_buildings/storage_blocks)
"dbi" = (
/obj/item/clothing/suit/storage/marine/medium/leader,
/obj/item/clothing/head/helmet/marine/leader{
@@ -6765,15 +6804,6 @@
/obj/item/stack/cable_coil/cut,
/turf/open/floor/plating,
/area/lv522/atmos/east_reactor)
-"dic" = (
-/obj/structure/platform_decoration{
- dir = 4
- },
-/obj/structure/bed/chair/dropship/passenger{
- dir = 4
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"dio" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -7176,14 +7206,11 @@
icon_state = "plate"
},
/area/lv522/atmos/east_reactor/south)
-"dqn" = (
-/obj/structure/stairs/perspective{
- icon_state = "p_stair_full"
- },
-/obj/structure/platform{
- dir = 8
+"dpS" = (
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 4
},
-/turf/open/shuttle/dropship/can_surgery/light_grey_middle,
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
/area/lv522/landing_zone_forecon/UD6_Tornado)
"dqr" = (
/obj/item/weapon/gun/rifle/m41a{
@@ -7204,6 +7231,26 @@
/obj/effect/landmark/lv624/fog_blocker/short,
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
+"drg" = (
+/obj/structure/machinery/door/airlock/almayer/security/glass{
+ name = "\improper Marshal Office Interrogation";
+ req_access = null
+ },
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ dir = 4;
+ id = "Sec-Kitchen-Lockdown";
+ name = "\improper Storm Shutters"
+ },
+/turf/open/floor/corsat{
+ icon_state = "marked"
+ },
+/area/lv522/indoors/a_block/security)
"drz" = (
/obj/effect/decal/cleanable/blood,
/obj/item/tool/hatchet,
@@ -8224,6 +8271,9 @@
icon_state = "plate"
},
/area/lv522/atmos/east_reactor/south)
+"dNx" = (
+/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"dNK" = (
/obj/structure/machinery/door/airlock/almayer/engineering{
name = "\improper Workshop Storage";
@@ -9124,10 +9174,7 @@
/area/lv522/atmos/east_reactor)
"egj" = (
/obj/structure/machinery/floodlight,
-/turf/open/floor/plating{
- dir = 8;
- icon_state = "platingdmg3"
- },
+/turf/open/floor/prison,
/area/lv522/indoors/lone_buildings/storage_blocks)
"egt" = (
/obj/structure/powerloader_wreckage,
@@ -9432,10 +9479,13 @@
},
/area/lv522/atmos/east_reactor)
"emt" = (
-/obj/structure/cargo_container/grant/rightmid,
+/obj/structure/barricade/handrail{
+ dir = 8
+ },
+/obj/structure/largecrate/random/barrel/white,
/turf/open/floor/prison{
- dir = 10;
- icon_state = "floor_marked"
+ dir = 8;
+ icon_state = "cell_stripe"
},
/area/lv522/indoors/lone_buildings/storage_blocks)
"emz" = (
@@ -10153,9 +10203,6 @@
icon_state = "marked"
},
/area/lv522/atmos/east_reactor)
-"eAa" = (
-/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"eAg" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 6
@@ -10572,10 +10619,6 @@
},
/turf/open/floor/corsat,
/area/lv522/atmos/east_reactor)
-"eJQ" = (
-/obj/effect/decal/cleanable/blood/splatter,
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"eJR" = (
/turf/open/floor/prison,
/area/lv522/outdoors/colony_streets/windbreaker/observation)
@@ -11271,11 +11314,10 @@
/turf/closed/wall/strata_outpost/reinforced,
/area/lv522/landing_zone_1/tunnel)
"eYT" = (
-/obj/structure/prop/ice_colony/ground_wire{
- dir = 8
- },
-/turf/open/auto_turf/sand_white/layer0,
-/area/lv522/outdoors/colony_streets/central_streets)
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spider/spiderling/nogrow,
+/turf/open/floor/prison,
+/area/lv522/indoors/lone_buildings/storage_blocks)
"eZb" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -12303,6 +12345,10 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/executive)
+"fwh" = (
+/obj/structure/barricade/deployable,
+/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"fwj" = (
/obj/effect/landmark/monkey_spawn,
/turf/open/floor/corsat{
@@ -13461,12 +13507,6 @@
},
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/nw_rockies)
-"fTm" = (
-/obj/structure/stairs/perspective{
- icon_state = "p_stair_full"
- },
-/turf/open/shuttle/dropship/can_surgery/light_grey_middle,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"fTs" = (
/turf/open/floor/corsat{
dir = 8;
@@ -13963,6 +14003,16 @@
icon_state = "blue_plate"
},
/area/lv522/indoors/a_block/admin)
+"gdr" = (
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 4
+ },
+/obj/structure/machinery/light/double{
+ dir = 8;
+ pixel_y = -5
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"gdt" = (
/obj/item/tool/kitchen/knife,
/obj/effect/decal/cleanable/dirt,
@@ -14245,6 +14295,12 @@
icon_state = "squares"
},
/area/lv522/atmos/east_reactor/east)
+"ghY" = (
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 4
+ },
+/turf/open/shuttle/dropship/can_surgery/light_grey_top_right,
+/area/lv522/outdoors/w_rockies)
"gib" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/stairs/perspective{
@@ -14529,6 +14585,12 @@
icon_state = "darkpurple2"
},
/area/lv522/indoors/a_block/dorms)
+"goC" = (
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 8
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"goK" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -14604,16 +14666,6 @@
icon_state = "marked"
},
/area/lv522/indoors/c_block/cargo)
-"gpu" = (
-/obj/item/fuelCell{
- pixel_x = -8;
- pixel_y = -2
- },
-/turf/open/floor/corsat{
- dir = 4;
- icon_state = "brown"
- },
-/area/lv522/atmos/east_reactor)
"gpB" = (
/obj/structure/machinery/power/port_gen/pacman/super,
/turf/open/asphalt/cement{
@@ -14802,6 +14854,16 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
+"guj" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 1;
+ name = "\improper Dormitories"
+ },
+/obj/structure/pipes/standard/simple/hidden/green,
+/turf/open/floor/corsat{
+ icon_state = "marked"
+ },
+/area/lv522/indoors/a_block/dorm_north)
"gul" = (
/obj/structure/tunnel/maint_tunnel{
pixel_y = 6
@@ -15358,7 +15420,16 @@
/area/lv522/indoors/c_block/casino)
"gFy" = (
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
+/obj/structure/machinery/camera/autoname{
+ dir = 8
+ },
+/obj/structure/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "floor_marked"
+ },
/area/lv522/indoors/lone_buildings/storage_blocks)
"gFD" = (
/obj/structure/surface/table/almayer,
@@ -15611,16 +15682,6 @@
icon_state = "marked"
},
/area/lv522/landing_zone_1)
-"gKD" = (
-/obj/item/fuelCell{
- pixel_x = 6;
- pixel_y = 4
- },
-/turf/open/floor/corsat{
- dir = 4;
- icon_state = "brown"
- },
-/area/lv522/atmos/east_reactor)
"gKM" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall,
/obj/structure/machinery/light{
@@ -17065,7 +17126,7 @@
"hjE" = (
/obj/effect/decal/cleanable/blood/oil,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/prison,
+/turf/closed/wall/shiva/prefabricated/reinforced,
/area/lv522/indoors/lone_buildings/storage_blocks)
"hjW" = (
/obj/structure/surface/table/almayer,
@@ -17656,23 +17717,6 @@
icon_state = "floor_plate"
},
/area/lv522/outdoors/nw_rockies)
-"hvZ" = (
-/obj/structure/machinery/door/airlock/almayer/security/glass{
- dir = 8;
- name = "\improper Marshal Head Office"
- },
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- dir = 4;
- id = "Sec-Kitchen-Lockdown";
- name = "\improper Storm Shutters"
- },
-/turf/open/floor/corsat{
- icon_state = "marked"
- },
-/area/lv522/indoors/a_block/security)
"hwa" = (
/obj/structure/platform/stair_cut{
icon_state = "platform_stair_alt"
@@ -18168,9 +18212,6 @@
icon_state = "blue_plate"
},
/area/lv522/indoors/c_block/mining)
-"hFm" = (
-/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"hFu" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -18506,6 +18547,9 @@
icon_state = "darkredfull2"
},
/area/lv522/indoors/a_block/kitchen/glass)
+"hLR" = (
+/turf/open/shuttle/dropship/can_surgery/light_grey_top_left,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"hLT" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall,
/turf/open/floor/corsat{
@@ -20173,12 +20217,6 @@
icon_state = "plate"
},
/area/lv522/atmos/cargo_intake)
-"isG" = (
-/obj/structure/largecrate/random/barrel,
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/lv522/indoors/lone_buildings/storage_blocks)
"isL" = (
/obj/structure/surface/table/almayer,
/obj/item/spacecash/c1000,
@@ -20819,6 +20857,9 @@
icon_state = "squares"
},
/area/lv522/atmos/cargo_intake)
+"iGk" = (
+/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"iGl" = (
/obj/structure/machinery/door/airlock/almayer/engineering,
/turf/open/floor/corsat{
@@ -21457,13 +21498,6 @@
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/auto_turf/shale/layer2,
/area/lv522/outdoors/colony_streets/north_west_street)
-"iSu" = (
-/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
-"iSx" = (
-/obj/structure/girder,
-/turf/open/floor/plating,
-/area/lv522/indoors/lone_buildings/storage_blocks)
"iSF" = (
/obj/structure/surface/table/almayer,
/obj/structure/prop/server_equipment/laptop/on,
@@ -23167,6 +23201,28 @@
},
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/indoors/a_block/admin)
+"jvF" = (
+/obj/structure/machinery/computer/cameras{
+ desc = "The flight controls for a UD6 Dropship. these controls look pretty banged up, and there's some blood covering the screen..";
+ name = "\improper 'Typhoon' flight controls";
+ network = null;
+ pixel_y = 21
+ },
+/obj/structure/bed/chair/dropship/pilot{
+ dir = 1
+ },
+/obj/structure/machinery/light/double{
+ dir = 1;
+ layer = 2.9;
+ pixel_y = 9
+ },
+/obj/item/prop/almayer/flight_recorder{
+ layer = 2.9;
+ pixel_x = -9;
+ pixel_y = 4
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"jvG" = (
/obj/structure/machinery/vending/cola,
/turf/open/floor/prison{
@@ -23425,6 +23481,16 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/indoors/a_block/dorm_north)
+"jAX" = (
+/obj/structure/machinery/light/double{
+ dir = 4;
+ pixel_y = -5
+ },
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 8
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"jBm" = (
/obj/structure/machinery/vending/hydronutrients,
/turf/open/floor/prison{
@@ -23821,6 +23887,18 @@
icon_state = "darkpurplefull2"
},
/area/lv522/indoors/a_block/dorms)
+"jHm" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/fancy/cigarettes/wypacket{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/obj/item/clothing/suit/storage/jacket/marine/corporate,
+/turf/open/floor/strata{
+ dir = 4;
+ icon_state = "white_cyan1"
+ },
+/area/lv522/indoors/a_block/corpo/glass)
"jHy" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -24860,6 +24938,16 @@
/obj/effect/landmark/lv624/fog_blocker/short,
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
+"kbq" = (
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 4
+ },
+/obj/structure/machinery/light/double{
+ dir = 8;
+ pixel_y = -5
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"kbu" = (
/obj/vehicle/train/cargo/trolley,
/turf/open/floor/corsat{
@@ -26995,9 +27083,6 @@
icon_state = "blue_plate"
},
/area/lv522/indoors/a_block/admin)
-"kMT" = (
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"kNe" = (
/obj/item/shard{
icon_state = "medium"
@@ -27029,16 +27114,6 @@
icon_state = "darkyellowfull2"
},
/area/lv522/indoors/lone_buildings/outdoor_bot)
-"kNM" = (
-/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 1;
- name = "\improper Dormitories"
- },
-/obj/structure/pipes/standard/simple/hidden/green,
-/turf/open/floor/corsat{
- icon_state = "marked"
- },
-/area/lv522/indoors/a_block/dorm_north)
"kNR" = (
/obj/structure/closet/crate/explosives,
/obj/item/storage/box/explosive_mines,
@@ -27630,10 +27705,7 @@
},
/area/lv522/atmos/east_reactor/south)
"kXc" = (
-/obj/structure/prop/ice_colony/ground_wire{
- dir = 8
- },
-/turf/open/auto_turf/shale/layer1,
+/turf/closed/wall/solaris/reinforced/hull/lv522,
/area/lv522/outdoors/colony_streets/central_streets)
"kXe" = (
/obj/structure/pipes/standard/simple/hidden/green{
@@ -28290,6 +28362,16 @@
/obj/item/stack/sheet/metal,
/turf/open/floor/corsat,
/area/lv522/atmos/cargo_intake)
+"lkx" = (
+/obj/item/fuel_cell{
+ pixel_x = -8;
+ pixel_y = -2
+ },
+/turf/open/floor/corsat{
+ dir = 4;
+ icon_state = "brown"
+ },
+/area/lv522/atmos/east_reactor)
"lkH" = (
/obj/item/ammo_magazine/rifle/heap{
current_rounds = 0
@@ -28981,26 +29063,6 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/dorms)
-"lzn" = (
-/obj/structure/machinery/door/airlock/almayer/security/glass{
- name = "\improper Marshal Office Interrogation";
- req_access = null
- },
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- dir = 4;
- id = "Sec-Kitchen-Lockdown";
- name = "\improper Storm Shutters"
- },
-/turf/open/floor/corsat{
- icon_state = "marked"
- },
-/area/lv522/indoors/a_block/security)
"lzw" = (
/obj/structure/prop/ice_colony/ground_wire,
/turf/open/auto_turf/shale/layer1,
@@ -29112,21 +29174,6 @@
icon_state = "plate"
},
/area/lv522/atmos/east_reactor/south)
-"lAM" = (
-/obj/structure/machinery/door/airlock/almayer/security/glass{
- name = "\improper Marshal Office Armory"
- },
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- dir = 4;
- id = "Sec-Armoury-Lockdown"
- },
-/turf/open/floor/corsat{
- icon_state = "marked"
- },
-/area/lv522/indoors/a_block/security)
"lAS" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 10
@@ -30537,6 +30584,14 @@
icon_state = "marked"
},
/area/lv522/indoors/c_block/bridge)
+"meM" = (
+/obj/item/clothing/accessory/red,
+/obj/item/clothing/under/liaison_suit/field{
+ pixel_x = -4;
+ pixel_y = 9
+ },
+/turf/open/floor/carpet,
+/area/lv522/indoors/a_block/executive)
"mfh" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/effect/decal/cleanable/dirt,
@@ -31822,16 +31877,6 @@
icon_state = "floor_plate"
},
/area/lv522/outdoors/n_rockies)
-"mFe" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/cargo_container/grant/left,
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "floor_marked"
- },
-/area/lv522/indoors/lone_buildings/storage_blocks)
"mFg" = (
/obj/structure/surface/table/almayer,
/obj/item/co2_cartridge{
@@ -32269,6 +32314,11 @@
icon_state = "white_cyan2"
},
/area/lv522/indoors/a_block/medical/glass)
+"mNz" = (
+/obj/structure/barricade/deployable,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"mNI" = (
/turf/open/floor/almayer{
dir = 1;
@@ -33328,6 +33378,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison,
/area/lv522/indoors/c_block/casino)
+"ngy" = (
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 8
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"ngK" = (
/obj/structure/platform{
dir = 4
@@ -34226,9 +34282,6 @@
icon_state = "blue"
},
/area/lv522/indoors/a_block/admin)
-"nxu" = (
-/turf/open/floor/plating,
-/area/lv522/indoors/lone_buildings/storage_blocks)
"nxF" = (
/obj/structure/machinery/light/small,
/obj/effect/landmark/lv624/fog_blocker/short,
@@ -34363,6 +34416,18 @@
"nBe" = (
/turf/open/floor/plating,
/area/lv522/indoors/a_block/kitchen/damage)
+"nBh" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{
+ pixel_x = 30
+ },
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/item/ammo_box/rounds/smg{
+ layer = 3;
+ pixel_x = 1;
+ pixel_y = 4
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"nBo" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -34631,6 +34696,16 @@
icon_state = "darkbrownfull2"
},
/area/lv522/indoors/c_block/cargo)
+"nHF" = (
+/obj/item/clothing/mask/facehugger{
+ desc = "It has some sort of a tube at the end of its tail. What the hell is this thing?";
+ icon_state = "facehugger_impregnated";
+ layer = 3;
+ name = "????";
+ stat = 2
+ },
+/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"nHT" = (
/obj/structure/bed/chair,
/obj/structure/machinery/light{
@@ -34723,10 +34798,7 @@
"nKj" = (
/obj/effect/decal/cleanable/blood/oil,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/prison{
- dir = 4;
- icon_state = "cell_stripe"
- },
+/turf/open/floor/prison,
/area/lv522/indoors/lone_buildings/storage_blocks)
"nKk" = (
/obj/structure/machinery/camera/autoname{
@@ -35980,6 +36052,9 @@
},
/turf/open/floor/prison,
/area/lv522/atmos/way_in_command_centre)
+"oeV" = (
+/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"oeX" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/auto_turf/sand_white/layer0,
@@ -36597,6 +36672,12 @@
},
/turf/open/floor/plating,
/area/lv522/indoors/c_block/cargo)
+"ori" = (
+/obj/structure/barricade/deployable{
+ dir = 4
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"orm" = (
/obj/structure/platform/strata{
dir = 4
@@ -36905,6 +36986,12 @@
},
/turf/open/floor/prison,
/area/lv522/indoors/a_block/kitchen)
+"oxd" = (
+/obj/item/clothing/suit/storage/RO{
+ name = "\improper UA jacket"
+ },
+/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"oxq" = (
/obj/item/paper{
pixel_x = 10;
@@ -38331,13 +38418,6 @@
icon_state = "floor_marked"
},
/area/lv522/landing_zone_2)
-"pck" = (
-/obj/structure/largecrate/random/barrel/white,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/lv522/indoors/lone_buildings/storage_blocks)
"pco" = (
/obj/structure/pipes/standard/manifold/fourway/hidden/green,
/turf/open/floor/prison,
@@ -38960,19 +39040,6 @@
icon_state = "floor_marked"
},
/area/lv522/landing_zone_1)
-"pnu" = (
-/obj/item/fuelCell{
- layer = 3.1;
- pixel_x = 3;
- pixel_y = 15
- },
-/obj/item/fuelCell{
- layer = 3.1;
- pixel_x = -10;
- pixel_y = 18
- },
-/turf/open/floor/plating,
-/area/lv522/indoors/c_block/cargo)
"pnx" = (
/turf/open/floor/corsat{
icon_state = "marked"
@@ -39590,6 +39657,10 @@
icon_state = "darkbrownfull2"
},
/area/lv522/indoors/c_block/mining)
+"pBz" = (
+/obj/structure/machinery/door/airlock/hatch/cockpit/two,
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"pBF" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/space_heater/radiator/red{
@@ -39997,28 +40068,6 @@
icon_state = "marked"
},
/area/lv522/indoors/c_block/mining)
-"pIO" = (
-/obj/structure/machinery/computer/cameras{
- desc = "The flight controls for a UD6 Dropship. these controls look pretty banged up, and there's some blood covering the screen..";
- name = "\improper 'Typhoon' flight controls";
- network = null;
- pixel_y = 21
- },
-/obj/structure/bed/chair/dropship/pilot{
- dir = 1
- },
-/obj/structure/machinery/light/double{
- dir = 1;
- layer = 2.9;
- pixel_y = 9
- },
-/obj/item/prop/almayer/flight_recorder{
- layer = 2.9;
- pixel_x = -9;
- pixel_y = 4
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"pJb" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
name = "\improper A-Block Fitness Centre Airlock"
@@ -40597,10 +40646,6 @@
icon_state = "darkpurplefull2"
},
/area/lv522/indoors/a_block/dorms)
-"pTH" = (
-/obj/structure/machinery/door/airlock/hatch/cockpit/two,
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"pTO" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/bed{
@@ -41079,6 +41124,16 @@
/obj/structure/sign/safety/high_voltage,
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/colony_streets/central_streets)
+"qbP" = (
+/obj/structure/machinery/light/double{
+ dir = 8;
+ pixel_y = -5
+ },
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 4
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"qbW" = (
/obj/structure/prop/invuln/ice_prefab/trim{
dir = 8
@@ -41430,16 +41485,6 @@
},
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/colony_streets/south_east_street)
-"qjX" = (
-/obj/item/clothing/mask/facehugger{
- desc = "It has some sort of a tube at the end of its tail. What the hell is this thing?";
- icon_state = "facehugger_impregnated";
- layer = 3;
- name = "????";
- stat = 2
- },
-/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"qkw" = (
/obj/structure/prop/invuln/remote_console_pod,
/obj/structure/machinery/computer/shuttle/dropship/flight/lz1{
@@ -41647,13 +41692,6 @@
icon_state = "blue_plate"
},
/area/lv522/indoors/a_block/hallway)
-"qnV" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 8
- },
-/obj/effect/decal/cleanable/blood/splatter,
-/turf/open/shuttle/dropship/can_surgery/light_grey_top_left,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"qnY" = (
/obj/structure/surface/table/almayer,
/obj/item/prop/alien/hugger,
@@ -41691,9 +41729,6 @@
icon_state = "cell_stripe"
},
/area/lv522/atmos/sewer)
-"qpg" = (
-/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"qpq" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/prop/almayer/computer/PC{
@@ -41847,12 +41882,6 @@
icon_state = "floor_plate"
},
/area/lv522/indoors/c_block/garage)
-"qqS" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 4
- },
-/turf/open/shuttle/dropship/can_surgery/light_grey_top_right,
-/area/lv522/outdoors/w_rockies)
"qqW" = (
/obj/structure/surface/rack,
/obj/effect/decal/cleanable/dirt,
@@ -42096,13 +42125,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/indoors/a_block/dorms)
-"qvK" = (
-/obj/structure/cargo_container/grant/right,
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "floor_marked"
- },
-/area/lv522/indoors/lone_buildings/storage_blocks)
"qvM" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/bed/chair/comfy{
@@ -42312,8 +42334,8 @@
/area/lv522/indoors/a_block/fitness/glass)
"qzp" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{
- id = "sh_dropship2";
dir = 2;
+ id = "sh_dropship2";
name = "\improper Typhoon crew hatch"
},
/turf/open/shuttle/dropship{
@@ -42904,12 +42926,6 @@
icon_state = "greenfull"
},
/area/lv522/indoors/b_block/bridge)
-"qJw" = (
-/obj/item/clothing/suit/storage/RO{
- name = "\improper UA jacket"
- },
-/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"qJy" = (
/obj/structure/largecrate/random,
/turf/open/auto_turf/shale/layer1,
@@ -43613,20 +43629,6 @@
},
/turf/open/auto_turf/sand_white/layer0,
/area/lv522/outdoors/colony_streets/south_east_street)
-"qTO" = (
-/obj/structure/largecrate/supply/ammo/m41a/half{
- pixel_x = 5
- },
-/obj/item/storage/box/guncase/m41a{
- pixel_x = 2;
- pixel_y = 6
- },
-/obj/item/ammo_box/rounds/empty{
- layer = 3.1;
- pixel_y = -15
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"qUf" = (
/obj/item/ammo_magazine/rifle/m4ra/ext{
current_rounds = 0
@@ -43678,18 +43680,6 @@
icon_state = "plate"
},
/area/lv522/atmos/reactor_garage)
-"qUD" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{
- pixel_x = 30
- },
-/obj/effect/decal/cleanable/blood/splatter,
-/obj/item/ammo_box/rounds/smg{
- layer = 3;
- pixel_x = 1;
- pixel_y = 4
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"qUL" = (
/turf/open/floor/plating,
/area/lv522/outdoors/colony_streets/north_east_street)
@@ -43762,6 +43752,20 @@
},
/turf/open/floor/prison,
/area/lv522/indoors/lone_buildings/engineering)
+"qWk" = (
+/obj/structure/largecrate/supply/ammo/m41a/half{
+ pixel_x = 5
+ },
+/obj/item/storage/box/guncase/m41a{
+ pixel_x = 2;
+ pixel_y = 6
+ },
+/obj/item/ammo_box/rounds/empty{
+ layer = 3.1;
+ pixel_y = -15
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"qWt" = (
/obj/structure/window/framed/strata/reinforced,
/obj/structure/machinery/door/poddoor/shutters/almayer{
@@ -44438,6 +44442,9 @@
icon_state = "darkbrownfull2"
},
/area/lv522/indoors/c_block/cargo)
+"rgn" = (
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"rgA" = (
/turf/closed/shuttle/dropship2/tornado{
icon_state = "101"
@@ -44506,12 +44513,6 @@
icon_state = "blue_plate"
},
/area/lv522/indoors/a_block/bridges/op_centre)
-"rig" = (
-/obj/item/ammo_magazine/rifle/heap{
- current_rounds = 0
- },
-/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"rii" = (
/turf/closed/shuttle/dropship2/tornado{
icon_state = "102"
@@ -44611,12 +44612,6 @@
icon_state = "kitchen"
},
/area/lv522/indoors/a_block/kitchen)
-"rkR" = (
-/obj/structure/barricade/deployable{
- dir = 4
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"rkV" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -44941,10 +44936,6 @@
icon_state = "darkpurplefull2"
},
/area/lv522/indoors/a_block/dorms/glass)
-"rrB" = (
-/obj/vehicle/powerloader,
-/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"rrI" = (
/obj/structure/bed/chair/comfy{
dir = 8
@@ -45067,6 +45058,15 @@
},
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/indoors/c_block/cargo)
+"rtA" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/shuttle/dropship/can_surgery/light_grey_middle,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"rtI" = (
/obj/structure/largecrate/random/barrel/white,
/turf/open/floor/prison,
@@ -45498,11 +45498,6 @@
icon_state = "41"
},
/area/lv522/landing_zone_forecon/UD6_Typhoon)
-"rBV" = (
-/turf/open/floor/plating{
- icon_state = "platingdmg1"
- },
-/area/lv522/indoors/lone_buildings/storage_blocks)
"rBZ" = (
/turf/closed/shuttle/dropship2/tornado{
icon_state = "97"
@@ -45520,12 +45515,6 @@
icon_state = "99"
},
/area/lv522/landing_zone_forecon/UD6_Tornado)
-"rCp" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 4
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"rCu" = (
/turf/open/floor/prison{
dir = 4;
@@ -45571,10 +45560,6 @@
/obj/item/prop/colony/used_flare,
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/colony_streets/north_street)
-"rDb" = (
-/obj/item/device/m56d_post,
-/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"rDu" = (
/obj/structure/machinery/door_control{
id = "UD6";
@@ -45584,12 +45569,6 @@
icon_state = "53"
},
/area/lv522/landing_zone_forecon/UD6_Typhoon)
-"rDz" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 8
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"rDM" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -46445,6 +46424,15 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison,
/area/lv522/indoors/a_block/admin)
+"rUS" = (
+/obj/structure/platform_decoration{
+ dir = 8
+ },
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 8
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"rUX" = (
/obj/structure/shuttle/engine/heater{
dir = 4;
@@ -46802,6 +46790,10 @@
},
/turf/open/asphalt/cement,
/area/lv522/landing_zone_2/ceiling)
+"sbj" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"sbm" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -46864,16 +46856,6 @@
icon_state = "40"
},
/area/lv522/landing_zone_forecon/UD6_Tornado)
-"scv" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 4
- },
-/obj/structure/machinery/light/double{
- dir = 8;
- pixel_y = -5
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"scw" = (
/obj/item/ammo_magazine/rifle/heap{
current_rounds = 0
@@ -46882,16 +46864,6 @@
icon_state = "rasputin15"
},
/area/lv522/landing_zone_forecon/UD6_Typhoon)
-"scy" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 8
- },
-/obj/structure/machinery/light/double{
- dir = 4;
- pixel_y = -5
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"scM" = (
/obj/structure/surface/table/almayer,
/obj/item/reagent_container/food/snacks/cheeseburger,
@@ -47096,7 +47068,10 @@
"she" = (
/obj/structure/machinery/floodlight,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
+/turf/open/floor/prison{
+ dir = 4;
+ icon_state = "cell_stripe"
+ },
/area/lv522/indoors/lone_buildings/storage_blocks)
"shh" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{
@@ -47437,6 +47412,11 @@
},
/area/lv522/oob)
"smR" = (
+/obj/structure/machinery/door/poddoor/almayer/closed{
+ dir = 4;
+ id = "West LZ Storage";
+ name = "Emergency Lockdown"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -48305,6 +48285,19 @@
icon_state = "floor_plate"
},
/area/lv522/indoors/lone_buildings/storage_blocks)
+"sES" = (
+/obj/item/fuel_cell{
+ layer = 3.1;
+ pixel_x = 3;
+ pixel_y = 15
+ },
+/obj/item/fuel_cell{
+ layer = 3.1;
+ pixel_x = -10;
+ pixel_y = 18
+ },
+/turf/open/floor/plating,
+/area/lv522/indoors/c_block/cargo)
"sFb" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -48408,15 +48401,6 @@
},
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/landing_zone_2/ceiling)
-"sGT" = (
-/obj/structure/barricade/deployable,
-/obj/effect/decal/cleanable/blood/splatter,
-/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
-"sGY" = (
-/obj/structure/barricade/deployable,
-/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"sHb" = (
/obj/structure/platform_decoration{
dir = 4
@@ -48436,10 +48420,6 @@
},
/turf/open/gm/river,
/area/lv522/landing_zone_1/tunnel)
-"sHg" = (
-/obj/structure/barricade/deployable,
-/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"sHk" = (
/obj/structure/curtain/red,
/turf/open/floor/corsat{
@@ -49336,10 +49316,6 @@
icon_state = "blue_plate"
},
/area/lv522/indoors/a_block/hallway)
-"sVX" = (
-/obj/effect/decal/cleanable/blood/splatter,
-/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
-/area/lv522/landing_zone_forecon/UD6_Typhoon)
"sWn" = (
/obj/effect/decal/cleanable/dirt,
/turf/closed/wall/strata_outpost/reinforced,
@@ -49546,6 +49522,15 @@
icon_state = "16"
},
/area/lv522/landing_zone_forecon/UD6_Typhoon)
+"tbt" = (
+/obj/structure/platform_decoration{
+ dir = 4
+ },
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 4
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"tby" = (
/obj/structure/bed/chair/comfy{
dir = 4
@@ -50068,6 +50053,12 @@
icon_state = "greenfull"
},
/area/lv522/indoors/a_block/fitness)
+"tkN" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/turf/open/shuttle/dropship/can_surgery/light_grey_middle,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"tkW" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/belt/utility/full,
@@ -50184,6 +50175,15 @@
icon_state = "white_cyan1"
},
/area/lv522/indoors/a_block/corpo/glass)
+"tna" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{
+ pixel_x = 30
+ },
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 8
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"tne" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison{
@@ -50372,14 +50372,6 @@
icon_state = "brown"
},
/area/lv522/atmos/east_reactor/south)
-"tqT" = (
-/obj/item/clothing/accessory/red,
-/obj/item/clothing/under/liaison_suit/field{
- pixel_y = 9;
- pixel_x = -4
- },
-/turf/open/floor/carpet,
-/area/lv522/indoors/a_block/executive)
"tqU" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/effect/decal/cleanable/dirt,
@@ -50519,12 +50511,6 @@
/obj/effect/decal/cleanable/blood,
/turf/open/auto_turf/sand_white/layer0,
/area/lv522/outdoors/nw_rockies)
-"tth" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 4
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"tti" = (
/obj/structure/platform_decoration{
dir = 4
@@ -50648,6 +50634,13 @@
icon_state = "darkpurplefull2"
},
/area/lv522/indoors/a_block/dorms/glass)
+"tvL" = (
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/shuttle/dropship/can_surgery/light_grey_top_left,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"tvO" = (
/turf/open/asphalt/cement{
icon_state = "cement12"
@@ -50810,16 +50803,6 @@
dir = 4
},
/area/lv522/indoors/c_block/mining)
-"tzm" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 8
- },
-/obj/structure/machinery/light/double{
- dir = 4;
- pixel_y = -5
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"tzz" = (
/obj/structure/largecrate/random/secure,
/obj/structure/largecrate/random/mini{
@@ -50925,9 +50908,6 @@
},
/turf/open/auto_turf/sand_white/layer0,
/area/lv522/outdoors/colony_streets/central_streets)
-"tBM" = (
-/turf/open/shuttle/dropship/can_surgery/light_grey_top_left,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"tBQ" = (
/obj/structure/prop/ice_colony/ground_wire{
dir = 4
@@ -50993,9 +50973,6 @@
"tCN" = (
/turf/closed/wall/strata_ice/dirty,
/area/lv522/outdoors/colony_streets/south_east_street)
-"tCR" = (
-/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"tCX" = (
/turf/open/floor/corsat{
dir = 6;
@@ -51008,9 +50985,6 @@
},
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/colony_streets/central_streets)
-"tDm" = (
-/turf/open/shuttle/dropship/can_surgery/light_grey_top_right,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"tDu" = (
/obj/structure/machinery/computer/operating,
/obj/structure/surface/table/reinforced/prison,
@@ -51298,12 +51272,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison,
/area/lv522/indoors/c_block/garage)
-"tIF" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 8
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"tIM" = (
/obj/structure/prop/vehicles/crawler{
dir = 8;
@@ -51617,16 +51585,8 @@
/area/lv522/outdoors/colony_streets/north_east_street)
"tNS" = (
/obj/item/stack/sheet/metal,
-/turf/open/floor/plating,
+/turf/open/floor/prison,
/area/lv522/indoors/lone_buildings/storage_blocks)
-"tNT" = (
-/obj/structure/prop/vehicles/crawler{
- icon_state = "crawler_covered_bed"
- },
-/turf/open/floor/corsat{
- icon_state = "plate"
- },
-/area/lv522/atmos/reactor_garage)
"tOe" = (
/obj/structure/platform{
dir = 8
@@ -51870,6 +51830,10 @@
icon_state = "rasputin15"
},
/area/lv522/landing_zone_forecon/UD6_Typhoon)
+"tTb" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"tTl" = (
/obj/structure/prop/almayer/computers/sensor_computer3{
layer = 2.9
@@ -52339,6 +52303,16 @@
icon_state = "kitchen"
},
/area/lv522/indoors/a_block/fitness)
+"ucs" = (
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 8
+ },
+/obj/structure/machinery/light/double{
+ dir = 4;
+ pixel_y = -5
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"ucx" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison{
@@ -53736,16 +53710,6 @@
},
/turf/open/floor/corsat,
/area/lv522/atmos/east_reactor/east)
-"uDM" = (
-/obj/structure/machinery/light/double{
- dir = 8;
- pixel_y = -5
- },
-/obj/structure/bed/chair/dropship/passenger{
- dir = 4
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"uDP" = (
/obj/structure/bed/chair/comfy{
dir = 8
@@ -54138,6 +54102,12 @@
},
/turf/open/floor/plating,
/area/lv522/indoors/c_block/casino)
+"uJf" = (
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 4
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"uJl" = (
/obj/structure/filingcabinet{
density = 0;
@@ -54210,9 +54180,6 @@
/mob/living/simple_animal/mouse,
/turf/open/floor/plating,
/area/lv522/indoors/c_block/cargo)
-"uKQ" = (
-/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"uKR" = (
/obj/structure/barricade/wooden{
dir = 1
@@ -54940,9 +54907,6 @@
icon_state = "floor_marked"
},
/area/lv522/landing_zone_2/ceiling)
-"uXj" = (
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"uXp" = (
/obj/item/weapon/twohanded/folded_metal_chair,
/obj/effect/decal/warning_stripes{
@@ -55081,15 +55045,6 @@
},
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/colony_streets/central_streets)
-"vbk" = (
-/obj/structure/stairs/perspective{
- icon_state = "p_stair_full"
- },
-/obj/structure/platform{
- dir = 4
- },
-/turf/open/shuttle/dropship/can_surgery/light_grey_middle,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"vbm" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -55474,10 +55429,10 @@
},
/area/lv522/landing_zone_forecon/UD6_Typhoon)
"vir" = (
-/obj/structure/closet/wardrobe/engineering_yellow,
/obj/effect/decal/warning_stripes{
icon_state = "SW-out"
},
+/obj/structure/machinery/fuelcell_recycler/full,
/turf/open/floor/prison{
dir = 4;
icon_state = "darkyellowfull2"
@@ -55564,16 +55519,6 @@
},
/turf/open/floor/prison,
/area/lv522/indoors/c_block/mining)
-"vjs" = (
-/obj/structure/machinery/light/double{
- dir = 4;
- pixel_y = -5
- },
-/obj/structure/bed/chair/dropship/passenger{
- dir = 8
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"vju" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison{
@@ -56372,12 +56317,6 @@
icon_state = "white_cyan1"
},
/area/lv522/indoors/a_block/medical)
-"vzc" = (
-/obj/structure/machinery/power/geothermal{
- fail_rate = 5
- },
-/turf/open/floor/plating,
-/area/lv522/indoors/lone_buildings/engineering)
"vzd" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -56483,6 +56422,16 @@
/obj/item/prop/alien/hugger,
/turf/open/floor/prison,
/area/lv522/indoors/a_block/kitchen/glass)
+"vAu" = (
+/obj/item/fuel_cell{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/turf/open/floor/corsat{
+ dir = 4;
+ icon_state = "brown"
+ },
+/area/lv522/atmos/east_reactor)
"vAW" = (
/obj/effect/landmark/lv624/fog_blocker/short,
/turf/open/floor/prison{
@@ -56972,18 +56921,6 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/dorms)
-"vIt" = (
-/obj/structure/machinery/camera/autoname{
- dir = 8
- },
-/obj/structure/machinery/light/small{
- dir = 4
- },
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "floor_marked"
- },
-/area/lv522/indoors/lone_buildings/storage_blocks)
"vIy" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison,
@@ -57104,6 +57041,21 @@
icon_state = "greenfull"
},
/area/lv522/indoors/a_block/fitness)
+"vKJ" = (
+/obj/structure/machinery/door/airlock/almayer/security/glass{
+ name = "\improper Marshal Office Armory"
+ },
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ dir = 4;
+ id = "Sec-Armoury-Lockdown"
+ },
+/turf/open/floor/corsat{
+ icon_state = "marked"
+ },
+/area/lv522/indoors/a_block/security)
"vKO" = (
/obj/effect/decal/warning_stripes{
icon_state = "NE-out";
@@ -57568,12 +57520,6 @@
icon_state = "cement3"
},
/area/lv522/outdoors/colony_streets/north_east_street)
-"vTH" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- icon_state = "platingdmg3"
- },
-/area/lv522/indoors/lone_buildings/storage_blocks)
"vTK" = (
/obj/structure/prop/vehicles{
icon_state = "van_damaged"
@@ -57917,12 +57863,6 @@
icon_state = "blue"
},
/area/lv522/indoors/a_block/hallway)
-"waj" = (
-/obj/structure/girder/displaced,
-/turf/open/floor/plating{
- icon_state = "platingdmg1"
- },
-/area/lv522/indoors/lone_buildings/storage_blocks)
"wan" = (
/obj/structure/surface/table/almayer,
/turf/open/floor/prison{
@@ -57973,6 +57913,11 @@
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
},
+/obj/structure/machinery/door/poddoor/almayer/closed{
+ dir = 4;
+ id = "West LZ Storage";
+ name = "Emergency Lockdown"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -59324,15 +59269,6 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/executive)
-"wBr" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{
- pixel_x = 30
- },
-/obj/structure/bed/chair/dropship/passenger{
- dir = 8
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"wBx" = (
/obj/structure/machinery/landinglight/ds2/delayone{
dir = 1
@@ -59608,6 +59544,10 @@
icon_state = "blue"
},
/area/lv522/indoors/a_block/admin)
+"wGc" = (
+/obj/item/device/m56d_post,
+/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"wGh" = (
/obj/effect/decal/cleanable/blood,
/turf/open/floor/prison,
@@ -59696,6 +59636,9 @@
icon_state = "greenfull"
},
/area/lv522/landing_zone_1/ceiling)
+"wHw" = (
+/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"wHz" = (
/obj/item/clothing/shoes/veteran/pmc{
name = "steel toe boots"
@@ -59821,6 +59764,15 @@
icon_state = "darkbrownfull2"
},
/area/lv522/indoors/c_block/casino)
+"wKH" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/shuttle/dropship/can_surgery/light_grey_middle,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"wKR" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 5
@@ -60976,16 +60928,6 @@
icon_state = "darkredfull2"
},
/area/lv522/indoors/a_block/security)
-"xkk" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 4
- },
-/obj/structure/machinery/light/double{
- dir = 8;
- pixel_y = -5
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"xkr" = (
/obj/effect/landmark/objective_landmark/medium,
/obj/effect/decal/cleanable/dirt,
@@ -61221,11 +61163,8 @@
},
/area/lv522/atmos/sewer)
"xoj" = (
-/obj/structure/largecrate/random/barrel/red,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
+/turf/closed/wall/solaris/reinforced/hull/lv522,
/area/lv522/indoors/lone_buildings/storage_blocks)
"xoC" = (
/obj/structure/machinery/door/airlock/almayer/generic{
@@ -61286,6 +61225,16 @@
"xqp" = (
/turf/open/auto_turf/shale/layer2,
/area/lv522/landing_zone_1)
+"xqN" = (
+/obj/structure/bed/chair/dropship/passenger{
+ dir = 8
+ },
+/obj/structure/machinery/light/double{
+ dir = 4;
+ pixel_y = -5
+ },
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Typhoon)
"xqV" = (
/obj/structure/cargo_container/kelland/right,
/turf/open/floor/prison{
@@ -61481,18 +61430,6 @@
/obj/effect/spider/spiderling/nogrow,
/turf/open/floor/prison,
/area/lv522/indoors/c_block/t_comm)
-"xvy" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/storage/fancy/cigarettes/wypacket{
- pixel_x = 5;
- pixel_y = 6
- },
-/obj/item/clothing/suit/storage/jacket/marine/corporate,
-/turf/open/floor/strata{
- dir = 4;
- icon_state = "white_cyan1"
- },
-/area/lv522/indoors/a_block/corpo/glass)
"xvB" = (
/obj/structure/window/framed/strata/reinforced,
/turf/open/floor/corsat{
@@ -61636,6 +61573,9 @@
icon_state = "darkyellowfull2"
},
/area/lv522/indoors/lone_buildings/outdoor_bot)
+"xyu" = (
+/turf/open/shuttle/dropship/can_surgery/dark_grey,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"xyC" = (
/obj/structure/machinery/landinglight/ds2/delaythree,
/obj/effect/decal/cleanable/dirt,
@@ -62368,15 +62308,6 @@
icon_state = "brown"
},
/area/lv522/atmos/east_reactor/south)
-"xNu" = (
-/obj/structure/platform_decoration{
- dir = 8
- },
-/obj/structure/bed/chair/dropship/passenger{
- dir = 8
- },
-/turf/open/shuttle/dropship/can_surgery/dark_grey,
-/area/lv522/landing_zone_forecon/UD6_Tornado)
"xNG" = (
/obj/structure/machinery/computer/crew/colony{
density = 0;
@@ -62559,11 +62490,6 @@
icon_state = "floor_plate"
},
/area/lv522/indoors/a_block/hallway)
-"xQR" = (
-/turf/open/floor/plating{
- icon_state = "platingdmg3"
- },
-/area/lv522/indoors/lone_buildings/storage_blocks)
"xRg" = (
/obj/structure/bed/chair/comfy{
dir = 1
@@ -62740,6 +62666,10 @@
},
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/colony_streets/south_street)
+"xTb" = (
+/obj/vehicle/powerloader,
+/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"xTj" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/camera/autoname,
@@ -63704,6 +63634,9 @@
icon_state = "blue_plate"
},
/area/lv522/indoors/a_block/admin)
+"ykj" = (
+/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right,
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"ykn" = (
/obj/structure/surface/table/almayer,
/obj/structure/window/reinforced{
@@ -66619,12 +66552,12 @@ obe
pRM
qnk
qHA
-qTO
-kMT
-eJQ
-rCp
-scv
-rCp
+qWk
+rgn
+sbj
+uJf
+kbq
+uJf
tdH
nfq
fDg
@@ -66844,14 +66777,14 @@ pps
pxY
pIu
nbO
-qnV
-eAa
-eAa
-rig
-eAa
-rDb
-eAa
-sGT
+tvL
+bmR
+bmR
+aXR
+bmR
+wGc
+bmR
+mNz
tdS
tzA
tSJ
@@ -67069,16 +67002,16 @@ cpy
cpy
ppF
pys
-pIO
-pTH
-qpg
+jvF
+pBz
+iGk
qJl
qUf
riE
ruj
rDu
xKc
-sGY
+fwh
pBQ
rjP
rus
@@ -67298,14 +67231,14 @@ pqZ
pyO
qst
gTM
-qqS
-qJw
-eAa
-eAa
-sVX
-eAa
-rig
-sHg
+ghY
+oxd
+bmR
+bmR
+tTb
+bmR
+aXR
+aom
teL
tzF
tSU
@@ -67527,12 +67460,12 @@ rWS
pUc
qrj
qLd
-qUD
-rkR
-rkR
-rDz
-scy
-rDz
+nBh
+ori
+ori
+ngy
+xqN
+ngy
tfV
rFp
sdE
@@ -67589,7 +67522,7 @@ ien
ien
ien
ien
-ien
+spo
umf
vXc
vXc
@@ -67808,15 +67741,15 @@ ylo
ylo
ylo
ylo
+dbc
ylo
ylo
ylo
ylo
ylo
ylo
-ylo
-ien
-ien
+rMF
+spo
vXc
vXc
vXc
@@ -68033,18 +67966,18 @@ udK
wHi
nly
miW
-hYf
-mFe
-hYf
-wHi
+ylo
+ylo
+dbc
+bOX
jZe
wky
wPV
tyl
ylo
-ien
-ien
-ien
+rMF
+spo
+vXc
vXc
vXc
vXc
@@ -68260,17 +68193,17 @@ hYf
wHi
jUk
ouI
-hYf
-emt
-pck
-hYf
+arP
+ylo
+xoj
+ylo
erS
abe
ukT
ofS
ylo
-ien
-ien
+rMF
+spo
vXc
vXc
vXc
@@ -68488,16 +68421,16 @@ hYf
xhW
hYf
hYf
-qvK
+ylo
xoj
-hYf
+ylo
lpt
gJL
wHi
cAW
ylo
ylo
-ien
+spo
vXc
vXc
vXc
@@ -68715,17 +68648,17 @@ hYf
hLl
wHi
hYf
-vBM
-hYf
-isG
-vBM
+ylo
+dbc
+ylo
+emt
hYf
wHi
tIS
-xQR
-waj
-ien
-ien
+yfu
+ylo
+spo
+vXc
vXc
vXc
umf
@@ -68942,16 +68875,16 @@ yfu
yfu
bZd
yfu
-bZd
-bZd
+bOX
+xoj
+ylo
yfu
+bZd
yfu
bZd
-xQR
-vTH
-gFy
-nxu
-ien
+bZd
+iPD
+spo
vXc
vXc
vXc
@@ -68968,9 +68901,9 @@ nJv
rCa
rCa
nJv
-vzc
-vzc
-vzc
+bbi
+bbi
+bbi
xVd
nJv
hpq
@@ -69169,16 +69102,16 @@ qJK
qJK
cQB
bZd
+ylo
+xoj
+bOX
yfu
+tNS
bZd
bZd
yfu
-tNS
-gFy
-gFy
-rBV
-iSx
-ien
+iPD
+spo
vXc
vXc
cpy
@@ -69198,7 +69131,7 @@ nJv
bzL
qmA
qmA
-vzc
+bbi
nJv
hpq
ofi
@@ -69396,17 +69329,17 @@ yfu
yfu
bDr
bZd
-yfu
-yfu
-bZd
+ylo
+dbc
+bOX
+eYT
bZd
+yfu
bZd
-bOX
-gFy
-tNS
-xQR
-ien
-ien
+yfu
+iPD
+spo
+vXc
vXc
cpy
vXc
@@ -69425,7 +69358,7 @@ nJv
cNO
qmA
mdp
-vzc
+bbi
nJv
gpB
ofi
@@ -69624,15 +69557,15 @@ yfu
bDr
yfu
hjE
-yfu
-qpc
+dbc
+ylo
nKj
dGK
qpc
she
egj
ylo
-ien
+spo
vXc
vXc
vXc
@@ -69652,7 +69585,7 @@ nJv
rZg
mwC
kIs
-vzc
+bbi
nJv
gpB
ofi
@@ -69850,16 +69783,16 @@ jUk
hYf
sIS
yfu
-bZd
-gJL
-vIt
-cOA
-xhW
+bOX
+xoj
+ylo
+ylo
+gFy
hsz
jnr
ylo
ylo
-ien
+spo
vXc
vXc
vXc
@@ -70077,17 +70010,17 @@ ylo
smR
wbi
smR
-smR
-smR
ylo
+dbc
ylo
ylo
ylo
ylo
ylo
-ien
-ien
-ien
+ylo
+rMF
+sql
+vXc
vXc
yiM
yiM
@@ -70305,15 +70238,15 @@ xyN
cnN
xyN
xyN
-xyN
+kXc
lwv
xyN
xyN
-dbc
+xyN
xyN
xyN
sql
-ien
+vXc
yiM
yiM
yiM
@@ -70531,16 +70464,16 @@ rwE
rwE
hWI
yiM
+kXc
+kXc
+kXc
vXc
vXc
vXc
-vXc
-vXc
-dbc
umf
umf
vXc
-ien
+yiM
yiM
yiM
yiM
@@ -70757,18 +70690,18 @@ yiM
yiM
yiM
yiM
-eYT
-eYT
+yiM
+yiM
kXc
vXc
vXc
vXc
-dbc
vXc
vXc
-ien
-ien
-ien
+vXc
+vXc
+yiM
+yiM
yiM
yiM
yiM
@@ -70984,17 +70917,17 @@ yiM
yiM
yiM
yiM
-arP
yiM
yiM
-puY
+kXc
+vXc
+vXc
vXc
vXc
-dbc
vXc
vXc
yiM
-ien
+yiM
yiM
yiM
yiM
@@ -71212,16 +71145,16 @@ yiM
yiM
yiM
yiM
-yiM
-yiM
-yiM
+kXc
+kXc
+kXc
+vXc
vXc
vXc
-dbc
vXc
yiM
yiM
-ien
+yiM
yiM
yiM
yiM
@@ -71440,16 +71373,16 @@ yiM
yiM
yiM
wdy
+kXc
iPR
iPR
iPR
iPR
-dbc
jPv
vXc
-ien
-ien
-ien
+vXc
+yiM
+yiM
yiM
yiM
pWR
@@ -71675,7 +71608,7 @@ nLm
rMF
jPv
vXc
-ien
+vXc
yiM
yiM
yiM
@@ -71902,7 +71835,7 @@ nLm
nLm
rVa
jPv
-ien
+vXc
vXc
vXc
yiM
@@ -72128,9 +72061,9 @@ wan
wEQ
nLm
nLm
-ien
-ien
-ien
+rMF
+jPv
+vXc
vXc
umf
xTV
@@ -72356,7 +72289,7 @@ uDP
kDH
nLm
nLm
-ien
+spo
vXc
vXc
vXc
@@ -72583,7 +72516,7 @@ fjP
vJT
pfV
nLm
-ien
+spo
vXc
vXc
vXc
@@ -72809,9 +72742,9 @@ tUM
uOs
uOs
vJT
-nLm
-ien
-ien
+pMd
+spo
+vXc
vXc
jue
wYa
@@ -73036,8 +72969,8 @@ uOs
uOs
lsD
wyE
-nLm
-ien
+pMd
+spo
vXc
vXc
upz
@@ -73263,8 +73196,8 @@ lBj
vJT
whn
tek
-nLm
-ien
+pMd
+spo
vXc
vXc
vXc
@@ -73491,8 +73424,8 @@ oDu
nLm
nLm
nLm
-ien
-ien
+spo
+vXc
umf
vXc
vaZ
@@ -73718,7 +73651,7 @@ fVB
cxC
rzG
nLm
-ien
+spo
vXc
umf
vXc
@@ -73945,7 +73878,7 @@ bGL
koj
aMI
nLm
-ien
+spo
vXc
vXc
vXc
@@ -74172,8 +74105,8 @@ sKH
weR
nLm
nLm
-ien
-ien
+spo
+vXc
vXc
vXc
wYa
@@ -81794,7 +81727,7 @@ mKN
lko
lLA
jqL
-tNT
+cBU
mvI
pZy
wAB
@@ -83215,7 +83148,7 @@ xlU
sjy
sjy
sjy
-lzn
+drg
sjy
tpa
tpa
@@ -83678,7 +83611,7 @@ sjy
sjy
uqx
sjy
-lAM
+vKJ
sjy
uqx
sjy
@@ -85304,7 +85237,7 @@ jmG
oQN
vBd
wtT
-pnu
+sES
vBd
eVc
vVS
@@ -86158,7 +86091,7 @@ wcp
wwM
jYZ
hlH
-xvy
+jHm
jtZ
lvX
lvX
@@ -88674,7 +88607,7 @@ gwR
sjy
sjy
sjy
-hvZ
+cxn
sjy
sjy
cBs
@@ -88808,8 +88741,8 @@ hwt
jcl
eHp
dHk
-gKD
-gpu
+vAu
+lkx
tra
saC
saC
@@ -90243,7 +90176,7 @@ xjF
vSc
xjF
gCO
-tqT
+meM
wgW
wgW
jRT
@@ -97721,7 +97654,7 @@ dVo
ipf
qxX
qUq
-kNM
+guj
nLW
oBx
nTg
@@ -103408,14 +103341,14 @@ nSF
qUL
sct
sIA
-tth
-uDM
-tth
-uXj
-uXj
-tth
-xkk
-tth
+dpS
+qbP
+dpS
+xyu
+xyu
+dpS
+gdr
+dpS
fLa
bpZ
wRL
@@ -103635,18 +103568,18 @@ rfi
rAc
shq
sKi
-tBM
-uKQ
-uKQ
-uKQ
-uKQ
-qjX
-uKQ
-hFm
-dqn
-dic
-uDM
-tth
+hLR
+dNx
+dNx
+dNx
+dNx
+nHF
+dNx
+oeV
+rtA
+tbt
+qbP
+dpS
nPn
lVs
bUy
@@ -103862,18 +103795,18 @@ rgA
rBZ
slK
sYh
-tCR
+wHw
sjS
wAf
skE
skE
nQY
kNR
-tCR
-fTm
-uKQ
-uKQ
-rrB
+wHw
+tkN
+dNx
+dNx
+xTb
srE
qUL
iQt
@@ -104089,18 +104022,18 @@ rii
rCi
ssU
sKi
-tDm
-uKQ
-uKQ
-uKQ
-uKQ
-uKQ
-uKQ
-iSu
-vbk
-xNu
-vjs
-tIF
+bYC
+dNx
+dNx
+dNx
+dNx
+dNx
+dNx
+ykj
+wKH
+rUS
+jAX
+goC
ifg
gOZ
hZc
@@ -104316,14 +104249,14 @@ qUL
pTW
swr
sIA
-tIF
-vjs
-wBr
-uXj
-uXj
-tIF
-tzm
-tIF
+goC
+jAX
+tna
+xyu
+xyu
+goC
+ucs
+goC
twB
fXn
uSB
diff --git a/maps/map_files/LV624/LV624.dmm b/maps/map_files/LV624/LV624.dmm
index 5a0bb9dfc88d..ffe928acf3ae 100644
--- a/maps/map_files/LV624/LV624.dmm
+++ b/maps/map_files/LV624/LV624.dmm
@@ -1126,9 +1126,7 @@
/area/lv624/ground/barrens/containers)
"afu" = (
/obj/item/ammo_casing,
-/obj/structure/machinery/floodlight/landing{
- name = "bolted floodlight"
- },
+/obj/structure/machinery/colony_floodlight,
/turf/open/floor/plating{
dir = 9;
icon_state = "warnplate"
@@ -1162,9 +1160,7 @@
},
/area/lv624/ground/barrens/central_barrens)
"afy" = (
-/obj/structure/machinery/floodlight/landing{
- name = "bolted floodlight"
- },
+/obj/structure/machinery/colony_floodlight,
/turf/open/floor/plating{
dir = 5;
icon_state = "warnplate"
@@ -1409,9 +1405,7 @@
/area/lv624/ground/barrens/central_barrens)
"agF" = (
/obj/item/ammo_casing,
-/obj/structure/machinery/floodlight/landing{
- name = "bolted floodlight"
- },
+/obj/structure/machinery/colony_floodlight,
/turf/open/floor/plating,
/area/lv624/ground/barrens/central_barrens)
"agG" = (
@@ -1588,9 +1582,7 @@
},
/area/lv624/ground/barrens/west_barrens/ceiling)
"ahM" = (
-/obj/structure/machinery/floodlight/landing{
- name = "bolted floodlight"
- },
+/obj/structure/machinery/colony_floodlight,
/turf/open/floor/plating{
dir = 10;
icon_state = "warnplate"
@@ -1630,9 +1622,7 @@
},
/area/lv624/ground/barrens/central_barrens)
"ahT" = (
-/obj/structure/machinery/floodlight/landing{
- name = "bolted floodlight"
- },
+/obj/structure/machinery/colony_floodlight,
/turf/open/floor/plating{
dir = 6;
icon_state = "warnplate"
@@ -6359,8 +6349,9 @@
},
/area/lv624/lazarus/sleep_male)
"aCV" = (
+/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/gm/grass/grass1,
-/area/lv624/lazarus/sleep_male)
+/area/lv624/ground/jungle/central_jungle)
"aCX" = (
/turf/open/floor/grass,
/area/lv624/lazarus/main_hall)
@@ -7934,11 +7925,11 @@
"aIE" = (
/obj/structure/flora/bush/ausbushes/var3/stalkybush,
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 11;
- pixel_y = -2;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 11;
+ pixel_y = -2
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_west_caves)
@@ -9548,6 +9539,7 @@
/area/lv624/ground/caves/north_east_caves)
"aPN" = (
/obj/structure/window_frame/colony/reinforced,
+/obj/item/stack/rods,
/turf/open/floor/plating,
/area/lv624/lazarus/comms)
"aPO" = (
@@ -9558,8 +9550,7 @@
req_one_access = null
},
/turf/open/floor{
- dir = 9;
- icon_state = "brown"
+ icon_state = "delivery"
},
/area/lv624/lazarus/comms)
"aPR" = (
@@ -9845,38 +9836,28 @@
"aRd" = (
/obj/structure/surface/table,
/obj/item/device/mmi/radio_enabled,
-/turf/open/floor{
- dir = 9;
- icon_state = "brown"
- },
-/area/lv624/lazarus/comms)
-"aRe" = (
-/obj/structure/surface/table,
-/obj/item/device/flashlight,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor{
dir = 9;
icon_state = "brown"
},
/area/lv624/lazarus/comms)
-"aRf" = (
-/obj/structure/surface/table,
-/obj/item/device/radio/headset{
- frequency = 1469;
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/item/device/radio/headset{
- frequency = 1469
- },
-/obj/structure/machinery/light{
- dir = 1
+"aRe" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/power/monitor,
+/obj/item/ashtray/glass{
+ pixel_x = 3;
+ pixel_y = 15
},
/turf/open/floor{
dir = 9;
icon_state = "brown"
},
/area/lv624/lazarus/comms)
+"aRf" = (
+/obj/structure/flora/bush/ausbushes/lavendergrass,
+/turf/open/gm/grass/grass1,
+/area/lv624/ground/jungle/west_central_jungle)
"aRg" = (
/turf/open/floor/plating,
/area/lv624/lazarus/landing_zones/lz2)
@@ -9888,10 +9869,11 @@
},
/area/lv624/lazarus/chapel)
"aRi" = (
-/obj/structure/surface/table,
-/obj/item/ashtray/glass,
-/obj/item/tool/crowbar,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage,
/turf/open/floor{
dir = 9;
icon_state = "brown"
@@ -10120,8 +10102,14 @@
/turf/open/floor/plating,
/area/lv624/lazarus/landing_zones/lz1)
"aSd" = (
-/obj/structure/bed/chair/office/light{
- dir = 1
+/obj/structure/machinery/blackbox_recorder,
+/obj/item/prop/almayer/flight_recorder/colony{
+ pixel_x = -6;
+ pixel_y = 10
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
},
/turf/open/floor{
dir = 9;
@@ -10129,8 +10117,12 @@
},
/area/lv624/lazarus/comms)
"aSe" = (
-/obj/structure/surface/table,
-/obj/item/device/multitool,
+/obj/structure/machinery/cm_vending/sorted/tech/comp_storage,
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
dir = 9;
icon_state = "brown"
@@ -10270,30 +10262,24 @@
},
/area/lv624/lazarus/canteen)
"aSI" = (
-/obj/structure/machinery/computer/telecomms/server,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
dir = 9;
icon_state = "brown"
},
/area/lv624/lazarus/comms)
"aSJ" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- frequency = 1469;
- name = "General Listening Channel";
- pixel_x = -30
- },
/turf/open/floor{
- dir = 9;
- icon_state = "brown"
+ icon_state = "podhatchfloor"
},
/area/lv624/lazarus/comms)
"aSK" = (
-/obj/structure/machinery/computer/telecomms/traffic,
-/turf/open/floor{
- dir = 9;
- icon_state = "brown"
- },
+/obj/structure/window_frame/colony/reinforced,
+/obj/item/shard,
+/turf/open/floor/plating,
/area/lv624/lazarus/comms)
"aSL" = (
/turf/closed/wall/r_wall,
@@ -10382,25 +10368,25 @@
"aTg" = (
/turf/closed/wall,
/area/lv624/lazarus/comms)
-"aTh" = (
-/obj/structure/reagent_dispensers/watertank,
-/turf/open/floor{
- dir = 9;
- icon_state = "brown"
- },
-/area/lv624/lazarus/comms)
"aTi" = (
-/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
dir = 9;
icon_state = "brown"
},
/area/lv624/lazarus/comms)
"aTj" = (
-/obj/structure/machinery/blackbox_recorder,
-/obj/item/prop/almayer/flight_recorder/colony{
- pixel_x = -6;
- pixel_y = 10
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
+ },
+/obj/structure/machinery/computer/telecomms/traffic{
+ layer = 3.1;
+ pixel_y = 16
+ },
+/obj/structure/bed/chair/office/light{
+ dir = 1;
+ layer = 3.2
},
/turf/open/floor{
dir = 9;
@@ -10410,19 +10396,9 @@
"aTk" = (
/obj/effect/landmark/static_comms/net_one,
/turf/open/floor{
- dir = 9;
- icon_state = "brown"
+ icon_state = "podhatchfloor"
},
/area/lv624/lazarus/comms)
-"aTo" = (
-/obj/structure/machinery/power/geothermal,
-/obj/structure/lattice{
- layer = 2.9
- },
-/turf/open/floor/plating{
- icon_state = "warnplate"
- },
-/area/lv624/lazarus/engineering)
"aTq" = (
/obj/structure/foamed_metal,
/turf/open/floor{
@@ -10446,6 +10422,11 @@
/obj/structure/machinery/colony_floodlight_switch{
pixel_y = 30
},
+/obj/item/device/assembly/voice,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
+ },
/turf/open/floor{
icon_state = "dark"
},
@@ -10537,7 +10518,6 @@
/obj/structure/machinery/power/apc{
dir = 1;
name = "Telecomms APC";
- pixel_y = 30;
start_charge = 15
},
/turf/open/floor{
@@ -10545,7 +10525,12 @@
},
/area/lv624/lazarus/comms)
"aTK" = (
-/turf/open/gm/dirt,
+/obj/structure/surface/rack,
+/obj/item/device/multitool,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
/area/lv624/lazarus/comms)
"aTM" = (
/turf/open/floor{
@@ -10553,6 +10538,10 @@
},
/area/lv624/lazarus/engineering)
"aTN" = (
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
+ },
/turf/open/floor/plating{
icon_state = "warnplate"
},
@@ -10679,22 +10668,21 @@
req_one_access = null
},
/turf/open/floor{
- dir = 9;
- icon_state = "brown"
+ icon_state = "delivery"
},
/area/lv624/lazarus/comms)
"aUl" = (
-/obj/item/device/multitool,
-/obj/structure/surface/rack,
-/turf/open/floor{
- dir = 9;
- icon_state = "brown"
- },
-/area/lv624/lazarus/comms)
+/turf/open/gm/dirtgrassborder/south,
+/area/lv624/ground/colony/north_tcomms_road)
"aUo" = (
/obj/effect/spawner/random/toolbox,
/obj/structure/surface/table/reinforced/prison,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/foamed_metal{
+ layer = 3.01
+ },
+/obj/structure/machinery/fuelcell_recycler/full,
/turf/open/floor{
icon_state = "dark"
},
@@ -10711,17 +10699,18 @@
},
/area/lv624/lazarus/engineering)
"aUt" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/device/assembly/timer,
-/obj/item/device/assembly/voice,
-/obj/item/tool/crowbar,
-/turf/open/floor{
- icon_state = "dark"
- },
-/area/lv624/lazarus/engineering)
+/obj/structure/flora/jungle/vines/heavy,
+/obj/structure/window_frame/colony,
+/obj/item/shard,
+/turf/open/floor/plating,
+/area/lv624/lazarus/yggdrasil)
"aUu" = (
/obj/structure/machinery/light,
/obj/structure/bed/stool,
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 2
+ },
/turf/open/floor{
icon_state = "dark"
},
@@ -10887,6 +10876,7 @@
/area/lv624/ground/jungle/south_west_jungle)
"aVb" = (
/obj/structure/machinery/light,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
dir = 9;
icon_state = "brown"
@@ -10896,9 +10886,8 @@
/obj/structure/lattice{
layer = 2.9
},
-/obj/structure/machinery/power/geothermal{
- fail_rate = 5
- },
+/obj/structure/platform,
+/obj/structure/machinery/power/reactor/colony,
/turf/open/floor/plating{
dir = 6;
icon_state = "warnplate"
@@ -10914,9 +10903,11 @@
/obj/structure/lattice{
layer = 2.9
},
-/obj/structure/machinery/power/geothermal{
- fail_rate = 5
+/obj/item/clothing/head/hardhat/orange{
+ pixel_x = -7;
+ pixel_y = 13
},
+/obj/structure/machinery/power/reactor/colony,
/turf/open/floor/plating{
dir = 8;
icon_state = "warnplate"
@@ -10926,15 +10917,16 @@
/obj/structure/lattice{
layer = 2.9
},
-/obj/structure/machinery/power/geothermal{
- fail_rate = 5
- },
+/obj/structure/machinery/power/reactor/colony,
/turf/open/floor/plating{
dir = 4;
icon_state = "warnplate"
},
/area/lv624/lazarus/engineering)
"aVj" = (
+/obj/structure/platform_decoration{
+ dir = 1
+ },
/obj/structure/machinery/door/airlock/almayer/engineering/colony{
dir = 1;
locked = 1;
@@ -10943,7 +10935,7 @@
req_one_access = null
},
/turf/open/floor{
- icon_state = "dark"
+ icon_state = "delivery"
},
/area/lv624/lazarus/engineering)
"aVk" = (
@@ -11044,11 +11036,12 @@
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_west_jungle)
"aVF" = (
-/obj/structure/machinery/power/apc{
- dir = 1;
- name = "Geothermal APC";
- pixel_y = 30;
- start_charge = 0
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 30
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
},
/turf/open/floor{
icon_state = "dark"
@@ -11061,22 +11054,28 @@
name = "General Listening Channel";
pixel_y = 30
},
+/obj/structure/stairs/perspective{
+ dir = 4;
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform/stair_cut,
+/obj/item/clothing/head/hardhat/orange,
/turf/open/floor{
icon_state = "dark"
},
/area/lv624/lazarus/engineering)
"aVH" = (
-/obj/item/clothing/head/hardhat/orange,
/obj/structure/machinery/light{
dir = 1
},
+/obj/structure/foamed_metal,
/turf/open/floor{
icon_state = "dark"
},
/area/lv624/lazarus/engineering)
"aVI" = (
-/obj/structure/foamed_metal,
/obj/structure/machinery/vending/coffee,
+/obj/structure/foamed_metal,
/turf/open/floor{
icon_state = "dark"
},
@@ -11175,20 +11174,21 @@
/obj/structure/computerframe{
anchored = 1
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/lv624/lazarus/secure_storage)
"aWd" = (
-/obj/structure/machinery/cm_vending/sorted/tech/comp_storage,
+/obj/item/shard,
/turf/open/floor{
- dir = 9;
- icon_state = "brown"
+ icon_state = "podhatchfloor"
},
/area/lv624/lazarus/comms)
"aWe" = (
-/obj/structure/machinery/computer/telecomms/monitor,
+/obj/structure/machinery/computer/telecomms/monitor{
+ pixel_y = 16
+ },
/turf/open/floor{
- dir = 9;
- icon_state = "brown"
+ icon_state = "dark"
},
/area/lv624/lazarus/comms)
"aWf" = (
@@ -11197,16 +11197,16 @@
req_access_txt = "100";
req_one_access = null
},
-/obj/structure/foamed_metal,
/turf/open/floor{
- icon_state = "dark"
+ icon_state = "delivery"
},
/area/lv624/lazarus/engineering)
"aWg" = (
-/obj/structure/machinery/power/geothermal,
/obj/structure/lattice{
layer = 2.9
},
+/obj/structure/platform,
+/obj/structure/machinery/power/reactor/colony,
/turf/open/floor/plating{
dir = 10;
icon_state = "warnplate"
@@ -11302,28 +11302,38 @@
/obj/effect/decal/remains/xeno,
/turf/open/gm/dirt,
/area/lv624/ground/colony/south_medbay_road)
-"aWx" = (
-/obj/structure/bed/chair/office/light,
+"aWy" = (
+/obj/structure/surface/table,
+/obj/item/device/radio/headset{
+ frequency = 1469;
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/device/radio/headset{
+ frequency = 1469
+ },
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor{
dir = 9;
icon_state = "brown"
},
/area/lv624/lazarus/comms)
-"aWy" = (
-/obj/structure/foamed_metal,
-/turf/open/gm/dirt,
-/area/lv624/lazarus/comms)
"aWz" = (
/obj/structure/window_frame/colony/reinforced,
/turf/open/floor/plating,
/area/lv624/lazarus/engineering)
"aWA" = (
-/obj/structure/foamed_metal,
-/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage,
+/obj/structure/machinery/computer/telecomms/server{
+ pixel_y = 16
+ },
+/obj/structure/bed/chair/office/light{
+ dir = 1
+ },
/turf/open/floor{
- icon_state = "dark"
+ dir = 9;
+ icon_state = "brown"
},
-/area/lv624/lazarus/engineering)
+/area/lv624/lazarus/comms)
"aWC" = (
/obj/structure/machinery/colony_floodlight,
/turf/open/gm/grass/grass1,
@@ -11335,31 +11345,35 @@
},
/area/lv624/lazarus/engineering)
"aWE" = (
-/obj/structure/sign/safety/high_voltage{
- pixel_x = 7;
- pixel_y = -32
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
},
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/tool/extinguisher,
-/obj/effect/spawner/random/powercell,
+/obj/item/prop/alien/hugger,
/turf/open/floor{
- icon_state = "dark"
+ dir = 9;
+ icon_state = "brown"
},
-/area/lv624/lazarus/engineering)
+/area/lv624/lazarus/comms)
"aWF" = (
+/obj/effect/spawner/random/toolbox,
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/device/radio,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/obj/structure/machinery/light,
-/obj/structure/machinery/power/monitor{
- name = "Main Power Grid Monitoring"
- },
/turf/open/floor{
icon_state = "dark"
},
/area/lv624/lazarus/engineering)
"aWG" = (
-/obj/effect/spawner/random/toolbox,
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/device/radio,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/structure/stairs/perspective{
+ dir = 4;
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform{
+ layer = 3.1
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "dark"
},
@@ -11368,6 +11382,10 @@
/obj/structure/surface/table/reinforced/prison,
/obj/item/folder,
/obj/item/device/assembly/signaller,
+/obj/structure/platform_decoration{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "dark"
},
@@ -11377,6 +11395,7 @@
/obj/item/device/flashlight,
/obj/effect/spawner/random/tool,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "dark"
},
@@ -11446,56 +11465,45 @@
/turf/open/floor/greengrid,
/area/lv624/lazarus/secure_storage)
"aWV" = (
-/obj/structure/surface/rack,
-/obj/item/weapon/gun/rifle/m41a,
-/turf/open/floor/greengrid,
+/obj/item/stack/rods/plasteel,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/gm/dirt,
/area/lv624/lazarus/secure_storage)
"aWW" = (
/obj/structure/surface/rack,
-/obj/item/ammo_magazine/rifle/extended,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/greengrid,
/area/lv624/lazarus/secure_storage)
"aWX" = (
-/obj/structure/surface/table,
-/obj/item/tool/weldingtool,
-/obj/item/tool/wrench,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
-/turf/open/floor{
- dir = 9;
- icon_state = "brown"
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
},
-/area/lv624/lazarus/comms)
-"aWY" = (
-/obj/structure/surface/table,
-/obj/item/device/radio/off{
- frequency = 1469
+/obj/structure/machinery/light{
+ dir = 4
},
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/rods,
/turf/open/floor{
dir = 9;
icon_state = "brown"
},
/area/lv624/lazarus/comms)
+"aWY" = (
+/turf/closed/wall,
+/area/lv624/lazarus/yggdrasil)
"aWZ" = (
-/obj/structure/surface/table,
-/obj/item/clothing/head/soft/blue,
-/obj/structure/machinery/light,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
-/turf/open/floor{
- dir = 9;
- icon_state = "brown"
- },
-/area/lv624/lazarus/comms)
+/obj/structure/flora/bush/ausbushes/lavendergrass,
+/turf/open/gm/grass/grass1,
+/area/lv624/ground/colony/west_tcomms_road)
"aXa" = (
-/obj/structure/surface/table,
-/obj/item/device/radio/off{
- frequency = 1469
- },
-/obj/item/tool/crowbar,
/obj/structure/machinery/light,
-/obj/item/tool/hatchet{
- pixel_x = 6;
- pixel_y = 4
+/obj/structure/stairs/perspective{
+ dir = 8;
+ icon_state = "p_stair_full"
},
+/obj/structure/platform,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
dir = 9;
icon_state = "brown"
@@ -11508,11 +11516,24 @@
},
/area/lv624/lazarus/sleep_male)
"aXd" = (
-/turf/open/gm/dirtgrassborder/south,
+/obj/structure/bed/chair/office/light{
+ dir = 1
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
/area/lv624/lazarus/comms)
"aXe" = (
-/obj/structure/foamed_metal,
-/turf/open/gm/dirtgrassborder/south,
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/obj/item/tool/crowbar,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
/area/lv624/lazarus/comms)
"aXf" = (
/obj/structure/machinery/door/airlock/almayer/engineering/colony{
@@ -11523,7 +11544,7 @@
req_one_access = null
},
/turf/open/floor{
- icon_state = "dark"
+ icon_state = "delivery"
},
/area/lv624/lazarus/engineering)
"aXg" = (
@@ -11534,7 +11555,7 @@
req_one_access = null
},
/turf/open/floor{
- icon_state = "dark"
+ icon_state = "delivery"
},
/area/lv624/lazarus/engineering)
"aXh" = (
@@ -11559,19 +11580,29 @@
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_west_jungle)
"aXn" = (
-/obj/structure/fence,
-/turf/open/gm/grass/grass1,
-/area/lv624/ground/jungle/south_central_jungle)
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1;
+ pixel_y = 1
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"aXo" = (
/obj/effect/landmark/crap_item,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/east_central_jungle)
"aXs" = (
-/obj/structure/extinguisher_cabinet{
- pixel_y = 30
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/power/apc{
+ dir = 1;
+ name = "Geothermal APC";
+ start_charge = 0
},
/turf/open/floor{
- icon_state = "dark"
+ icon_state = "delivery"
},
/area/lv624/lazarus/engineering)
"aXt" = (
@@ -11592,6 +11623,7 @@
dir = 1
},
/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/spawner/random/tool,
/turf/open/floor{
icon_state = "dark"
},
@@ -11655,11 +11687,13 @@
"aXF" = (
/obj/structure/surface/rack,
/obj/item/ammo_magazine/shotgun/buckshot,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/greengrid,
/area/lv624/lazarus/secure_storage)
"aXG" = (
/obj/structure/surface/rack,
/obj/item/ammo_magazine/shotgun/slugs,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/greengrid,
/area/lv624/lazarus/secure_storage)
"aXH" = (
@@ -11684,6 +11718,7 @@
/obj/structure/machinery/light{
dir = 4
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "dark"
},
@@ -11698,6 +11733,7 @@
/area/lv624/lazarus/security)
"aXN" = (
/obj/effect/spawner/random/powercell,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "dark"
},
@@ -11744,7 +11780,14 @@
/area/lv624/lazarus/landing_zones/lz2)
"aXZ" = (
/obj/structure/surface/rack,
-/obj/effect/spawner/random/tool,
+/obj/item/weapon/gun/smg/nailgun,
+/obj/item/weapon/gun/smg/nailgun,
+/obj/item/ammo_magazine/smg/nailgun,
+/obj/item/ammo_magazine/smg/nailgun,
+/obj/item/ammo_magazine/smg/nailgun,
+/obj/item/ammo_magazine/smg/nailgun,
+/obj/item/ammo_magazine/smg/nailgun,
+/obj/item/ammo_magazine/smg/nailgun,
/turf/open/floor{
icon_state = "dark"
},
@@ -11773,19 +11816,13 @@
/turf/open/floor/greengrid,
/area/lv624/lazarus/secure_storage)
"aYh" = (
-/obj/structure/surface/rack,
-/obj/item/weapon/gun/smg/nailgun,
-/obj/item/weapon/gun/smg/nailgun,
-/obj/item/ammo_magazine/smg/nailgun,
-/obj/item/ammo_magazine/smg/nailgun,
-/obj/item/ammo_magazine/smg/nailgun,
-/obj/item/ammo_magazine/smg/nailgun,
-/obj/item/ammo_magazine/smg/nailgun,
-/obj/item/ammo_magazine/smg/nailgun,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/rods,
/turf/open/floor{
- icon_state = "dark"
+ dir = 9;
+ icon_state = "brown"
},
-/area/lv624/lazarus/engineering)
+/area/lv624/lazarus/comms)
"aYj" = (
/obj/effect/landmark/lv624/xeno_tunnel,
/obj/structure/flora/jungle/vines/light_3,
@@ -11982,15 +12019,6 @@
/obj/effect/landmark/lv624/fog_blocker,
/turf/open/gm/dirt,
/area/lv624/ground/river/west_river)
-"aZc" = (
-/obj/structure/surface/table,
-/obj/item/weapon/twohanded/fireaxe,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
-/turf/open/floor{
- dir = 9;
- icon_state = "brown"
- },
-/area/lv624/lazarus/comms)
"aZd" = (
/obj/structure/closet/radiation,
/obj/item/device/radio/intercom{
@@ -11999,6 +12027,7 @@
name = "General Listening Channel";
pixel_x = -30
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "dark"
},
@@ -12009,6 +12038,7 @@
/obj/item/book/manual/engineering_guide,
/obj/item/book/manual/engineering_hacking,
/obj/item/book/manual/atmospipes,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "dark"
},
@@ -12019,6 +12049,10 @@
/obj/item/device/analyzer,
/obj/item/device/multitool,
/obj/item/device/assembly/prox_sensor,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
/turf/open/floor{
icon_state = "dark"
},
@@ -12036,9 +12070,11 @@
"aZh" = (
/obj/structure/surface/table,
/obj/effect/landmark/objective_landmark/close,
+/obj/item/tool/crowbar,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor{
- dir = 9;
- icon_state = "brown"
+ icon_state = "dark"
},
/area/lv624/lazarus/comms)
"aZi" = (
@@ -12112,6 +12148,7 @@
/obj/structure/machinery/light{
dir = 8
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "dark"
},
@@ -12119,6 +12156,7 @@
"aZy" = (
/obj/structure/closet/secure_closet/engineering_personal,
/obj/effect/landmark/objective_landmark/close,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "dark"
},
@@ -12191,14 +12229,28 @@
},
/area/lv624/lazarus/hop)
"aZG" = (
-/obj/structure/filingcabinet,
-/obj/effect/landmark/objective_landmark/close,
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
/turf/open/floor{
- icon_state = "dark"
+ dir = 9;
+ icon_state = "brown"
},
-/area/lv624/lazarus/engineering)
+/area/lv624/lazarus/comms)
"aZI" = (
-/obj/structure/filingcabinet/chestdrawer,
+/obj/structure/filingcabinet/chestdrawer{
+ density = 0;
+ pixel_x = -8;
+ pixel_y = 16
+ },
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = 7;
+ pixel_y = 16
+ },
+/obj/effect/landmark/objective_landmark/close,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor{
icon_state = "dark"
},
@@ -12212,16 +12264,18 @@
},
/area/lv624/lazarus/engineering)
"aZK" = (
-/obj/structure/surface/rack,
-/obj/item/clothing/mask/gas,
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_x = -1;
+ pixel_y = 1
+ },
/turf/open/floor{
dir = 9;
icon_state = "brown"
},
/area/lv624/lazarus/comms)
"aZL" = (
-/obj/structure/surface/rack,
-/obj/structure/prop/mech/drill,
+/obj/item/stack/sheet/metal,
/turf/open/floor/greengrid,
/area/lv624/lazarus/secure_storage)
"aZM" = (
@@ -12347,11 +12401,11 @@
/area/lv624/ground/caves/west_caves)
"bcU" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -10;
- pixel_y = -2;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -10;
+ pixel_y = -2
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_east_caves)
@@ -12741,6 +12795,13 @@
},
/turf/open/gm/coast/beachcorner/north_east,
/area/lv624/ground/caves/sand_temple)
+"bJe" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"bJz" = (
/obj/effect/decal/cleanable/blood,
/obj/effect/landmark/corpsespawner/wygoon,
@@ -12760,6 +12821,18 @@
"bLE" = (
/turf/open/gm/dirtgrassborder/south,
/area/lv624/ground/caves/sand_temple)
+"bLH" = (
+/obj/structure/machinery/power/monitor{
+ name = "Main Power Grid Monitoring"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 2
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"bMu" = (
/turf/open/gm/dirtgrassborder/west,
/area/lv624/ground/jungle/east_jungle)
@@ -12790,10 +12863,10 @@
/area/lv624/ground/barrens/south_eastern_barrens)
"bOm" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 4;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 4
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/barrens/north_east_barrens)
@@ -12815,6 +12888,13 @@
/obj/structure/flora/bush/ausbushes/pointybush,
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/north_west_caves)
+"bQf" = (
+/obj/structure/machinery/power/port_gen/pacman/super,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"bQz" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/obj/effect/decal/grass_overlay/grass1{
@@ -12851,10 +12931,17 @@
/area/lv624/ground/colony/west_tcomms_road)
"bTw" = (
/obj/effect/landmark/nightmare{
- insert_tag = "cargospecial"
+ insert_tag = "cargospecial1"
},
/turf/open/floor/vault,
/area/lv624/lazarus/quartstorage)
+"bUc" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/shard,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/comms)
"bUs" = (
/obj/structure/surface/table/woodentable/poor,
/obj/item/ammo_magazine/shotgun/buckshot,
@@ -12949,6 +13036,12 @@
icon_state = "whiteyellow"
},
/area/lv624/lazarus/corporate_dome)
+"cfA" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/lv624/lazarus/secure_storage)
"cfD" = (
/turf/closed/wall/r_wall/unmeltable,
/area/lv624/lazarus/quartstorage/outdoors)
@@ -13001,14 +13094,18 @@
/area/lv624/ground/caves/west_caves)
"chi" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -10;
- pixel_y = -2;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -10;
+ pixel_y = -2
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_west_caves)
+"chy" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/plating,
+/area/lv624/lazarus/secure_storage)
"cij" = (
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east,
@@ -13137,9 +13234,12 @@
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/gm/dirt,
/area/lv624/ground/barrens/central_barrens)
+"ctS" = (
+/obj/structure/fence,
+/turf/open/gm/dirt,
+/area/lv624/ground/colony/west_tcomms_road)
"cvk" = (
/obj/structure/fence,
-/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/gm/dirtgrassborder/east,
/area/lv624/ground/jungle/west_central_jungle)
"cwv" = (
@@ -13164,6 +13264,18 @@
/obj/structure/foamed_metal,
/turf/open/gm/dirtgrassborder/south,
/area/lv624/ground/jungle/east_central_jungle)
+"cyP" = (
+/obj/structure/stairs/perspective{
+ dir = 8;
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform/stair_cut/alt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"czq" = (
/obj/effect/landmark/objective_landmark/science,
/turf/open/auto_turf/strata_grass/layer1,
@@ -13323,6 +13435,17 @@
},
/turf/open/gm/dirt,
/area/lv624/ground/caves/north_west_caves)
+"cNE" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/shard,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"cNH" = (
/obj/structure/surface/rack,
/obj/item/storage/box/beakers,
@@ -13356,6 +13479,14 @@
/obj/structure/machinery/colony_floodlight,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_west_jungle)
+"cQU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/device/multitool,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"cQX" = (
/obj/structure/stairs/perspective{
color = "#b29082";
@@ -13587,6 +13718,15 @@
icon_state = "dark"
},
/area/lv624/ground/barrens/north_east_barrens/ceiling)
+"drX" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"dsi" = (
/obj/effect/landmark/monkey_spawn,
/turf/open/gm/dirt,
@@ -13680,10 +13820,10 @@
/area/lv624/ground/caves/south_central_caves)
"dBS" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -10;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -10
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/north_west_caves)
@@ -13761,6 +13901,13 @@
/obj/effect/landmark/lv624/fog_blocker,
/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east,
/area/lv624/ground/jungle/north_jungle)
+"dHr" = (
+/obj/item/weapon/twohanded/fireaxe,
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/comms)
"dId" = (
/obj/structure/machinery/cm_vending/sorted/medical/no_access,
/turf/open/floor{
@@ -14137,6 +14284,16 @@
},
/turf/open/gm/dirt,
/area/lv624/ground/caves/east_caves)
+"elO" = (
+/obj/structure/platform_decoration{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"enn" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/obj/effect/decal/grass_overlay/grass1{
@@ -14223,6 +14380,16 @@
/obj/effect/landmark/objective_landmark/medium,
/turf/open/gm/dirt,
/area/lv624/ground/caves/south_west_caves)
+"euU" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"euW" = (
/obj/structure/surface/table/woodentable/poor,
/obj/item/tool/candle,
@@ -14245,10 +14412,18 @@
/turf/open/gm/dirtgrassborder/north,
/area/lv624/ground/jungle/south_west_jungle)
"eyb" = (
-/obj/structure/fence,
-/obj/structure/flora/bush/ausbushes/lavendergrass,
-/turf/open/gm/dirtgrassborder/west,
-/area/lv624/ground/colony/west_tcomms_road)
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/shard,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"eyn" = (
/obj/structure/flora/jungle/vines/light_3,
/turf/closed/wall/strata_ice/jungle,
@@ -14437,6 +14612,10 @@
"eTQ" = (
/turf/open/gm/dirtgrassborder/north,
/area/lv624/ground/jungle/south_east_jungle)
+"eUI" = (
+/obj/item/storage/toolbox,
+/turf/open/gm/dirt,
+/area/lv624/ground/colony/west_tcomms_road)
"eVH" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/floor{
@@ -14497,11 +14676,11 @@
/area/lv624/ground/jungle/east_jungle)
"fcQ" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -5;
- pixel_y = -5;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -5;
+ pixel_y = -5
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_west_caves)
@@ -14561,6 +14740,13 @@
/obj/structure/flora/jungle/vines/light_2,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_east_jungle)
+"fij" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/bed/chair/office/light,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/comms)
"fio" = (
/obj/structure/flora/grass/tallgrass/jungle/corner{
dir = 9
@@ -14725,6 +14911,12 @@
icon_state = "squareswood"
},
/area/lv624/ground/caves/sand_temple)
+"fAs" = (
+/obj/item/tool/crowbar,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"fAz" = (
/obj/structure/machinery/cm_vending/sorted/medical/no_access,
/turf/open/floor{
@@ -14858,10 +15050,26 @@
/obj/structure/flora/bush/ausbushes/ausbush,
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_west_caves)
+"fLf" = (
+/obj/effect/landmark/survivor_spawner,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"fLh" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/angel,
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/west_caves)
+"fMa" = (
+/obj/item/prop/alien/hugger,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"fMl" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
dir = 1;
@@ -14872,6 +15080,12 @@
icon_state = "white"
},
/area/lv624/lazarus/corporate_dome)
+"fMv" = (
+/obj/item/stack/sheet/metal,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/secure_storage)
"fNA" = (
/obj/structure/barricade/wooden,
/turf/open/shuttle{
@@ -14884,6 +15098,16 @@
"fPH" = (
/turf/open/gm/dirtgrassborder/south,
/area/lv624/ground/jungle/west_central_jungle)
+"fQx" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_x = -1;
+ pixel_y = 2
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"fQL" = (
/turf/open/gm/coast/beachcorner2/south_east,
/area/lv624/ground/river/west_river)
@@ -14974,11 +15198,11 @@
/area/lv624/ground/jungle/south_central_jungle)
"gcB" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 6;
- pixel_y = -8;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 6;
+ pixel_y = -8
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/central_caves)
@@ -15069,11 +15293,11 @@
/area/lv624/ground/barrens/south_eastern_jungle_barrens)
"gnt" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -5;
- pixel_y = -5;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -5;
+ pixel_y = -5
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/north_west_caves)
@@ -15096,10 +15320,15 @@
/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west,
/area/lv624/ground/jungle/west_central_jungle)
"gqG" = (
-/obj/item/device/assembly/infra,
+/obj/structure/sign/safety/high_voltage{
+ pixel_x = 7;
+ pixel_y = -32
+ },
/obj/structure/surface/table/reinforced/prison,
+/obj/item/tool/extinguisher,
+/obj/effect/spawner/random/powercell,
+/obj/item/device/assembly/infra,
/obj/effect/spawner/random/powercell,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor{
icon_state = "dark"
},
@@ -15269,12 +15498,20 @@
/turf/open/gm/dirt,
/area/lv624/ground/caves/south_central_caves)
"gKg" = (
-/obj/item/clothing/head/hardhat/orange,
/turf/open/floor/plating{
dir = 5;
icon_state = "warnplate"
},
/area/lv624/lazarus/engineering)
+"gKN" = (
+/obj/structure/platform_decoration{
+ dir = 8
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"gMe" = (
/obj/effect/landmark/nightmare{
insert_tag = "lv-rightsidepass"
@@ -15310,6 +15547,11 @@
"gRx" = (
/turf/open/gm/dirtgrassborder/south,
/area/lv624/ground/colony/south_medbay_road)
+"gSb" = (
+/obj/item/stack/sheet/metal,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/gm/dirt,
+/area/lv624/lazarus/secure_storage)
"gTj" = (
/obj/effect/decal/grass_overlay/grass1/inner{
dir = 8
@@ -15416,6 +15658,11 @@
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_central_caves)
+"haE" = (
+/obj/item/stack/rods,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/south_west_jungle)
"haN" = (
/obj/structure/flora/bush/ausbushes/grassybush,
/turf/open/gm/grass/grass1,
@@ -15467,13 +15714,18 @@
icon_state = "asteroidwarning"
},
/area/lv624/lazarus/landing_zones/lz2)
+"hen" = (
+/obj/item/tool/weldingtool,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/south_central_jungle)
"hez" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 2;
- pixel_y = 7;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 2;
+ pixel_y = 7
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/central_caves)
@@ -15580,11 +15832,11 @@
/area/lv624/ground/caves/north_central_caves)
"hpK" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -10;
- pixel_y = -2;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -10;
+ pixel_y = -2
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_central_caves)
@@ -15625,10 +15877,10 @@
/area/lv624/ground/river/central_river)
"htV" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 4;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 4
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/west_caves)
@@ -15689,6 +15941,13 @@
/obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane,
/turf/open/gm/dirt,
/area/lv624/ground/caves/central_caves)
+"hDe" = (
+/obj/structure/bed/stool,
+/obj/item/prop/alien/hugger,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"hDX" = (
/obj/effect/decal/remains/xeno,
/turf/open/gm/dirt,
@@ -15748,6 +16007,20 @@
/obj/effect/landmark/objective_landmark/far,
/turf/open/floor/vault,
/area/lv624/lazarus/quartstorage)
+"hJh" = (
+/obj/structure/coatrack{
+ pixel_x = 11;
+ pixel_y = 14
+ },
+/obj/item/clothing/head/soft/blue{
+ pixel_x = 7;
+ pixel_y = 28
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"hJn" = (
/obj/structure/flora/jungle/vines/light_2,
/turf/open/gm/grass/grass2,
@@ -15806,6 +16079,18 @@
/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet,
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/central_caves)
+"hOo" = (
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/rods,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"hPV" = (
/obj/effect/decal/remains/xeno{
pixel_x = 31
@@ -15851,6 +16136,15 @@
"hSn" = (
/turf/open/gm/grass/grass1,
/area/lv624/ground/colony/west_nexus_road)
+"hSp" = (
+/obj/structure/flora/grass/tallgrass/jungle/corner{
+ dir = 9
+ },
+/obj/effect/landmark/nightmare{
+ insert_tag = "corporatedome"
+ },
+/turf/open/gm/grass/grass1,
+/area/lv624/ground/colony/west_tcomms_road)
"hSz" = (
/obj/effect/landmark/hunter_secondary,
/turf/open/gm/grass/grass1,
@@ -15859,6 +16153,12 @@
/obj/effect/landmark/monkey_spawn,
/turf/open/gm/dirt,
/area/lv624/ground/jungle/east_central_jungle)
+"hTp" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/lv624/lazarus/secure_storage)
"hTR" = (
/obj/structure/flora/bush/ausbushes/var3/ywflowers,
/turf/open/auto_turf/strata_grass/layer1,
@@ -15974,11 +16274,11 @@
/area/lv624/lazarus/landing_zones/lz1)
"ieN" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 2;
- pixel_y = 7;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 2;
+ pixel_y = 7
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/west_caves)
@@ -16021,6 +16321,16 @@
/obj/effect/landmark/queen_spawn,
/turf/open/gm/dirt,
/area/lv624/ground/caves/east_caves)
+"iiO" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"ikA" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/chanterelle,
/turf/open/auto_turf/strata_grass/layer1,
@@ -16076,8 +16386,11 @@
/turf/open/gm/dirt,
/area/lv624/ground/caves/north_east_caves)
"isR" = (
-/obj/effect/landmark/objective_landmark/medium,
-/obj/structure/largecrate/random,
+/obj/structure/surface/table,
+/obj/item/device/flashlight,
+/obj/item/device/radio/off{
+ frequency = 1469
+ },
/turf/open/floor{
dir = 9;
icon_state = "brown"
@@ -16348,6 +16661,19 @@
/obj/structure/flora/bush/ausbushes/var3/fullgrass,
/turf/open/gm/grass/grass1,
/area/lv624/ground/colony/west_tcomms_road)
+"iYL" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ frequency = 1469;
+ name = "General Listening Channel";
+ pixel_y = 26
+ },
+/obj/item/prop/alien/hugger,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"iZG" = (
/obj/effect/landmark/crap_item,
/turf/open/gm/dirt,
@@ -16366,6 +16692,10 @@
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east,
/area/lv624/ground/caves/sand_temple)
+"jaw" = (
+/obj/item/stack/sheet/metal,
+/turf/open/gm/dirt,
+/area/lv624/ground/colony/west_tcomms_road)
"jbd" = (
/obj/structure/flora/bush/ausbushes/var3/sparsegrass,
/turf/open/gm/grass/grass1,
@@ -16388,9 +16718,25 @@
/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_west_jungle)
+"jdL" = (
+/obj/structure/foamed_metal,
+/obj/structure/flora/jungle/vines/light_2,
+/turf/open/floor/plating{
+ icon_state = "warnplate"
+ },
+/area/lv624/lazarus/engineering)
"jeL" = (
/turf/closed/wall/r_wall,
/area/lv624/ground/caves/north_central_caves)
+"jfN" = (
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"jga" = (
/turf/open/gm/river,
/area/lv624/ground/jungle/west_jungle)
@@ -16516,6 +16862,11 @@
/turf/open/gm/dirt,
/area/lv624/ground/caves/west_caves)
"jwW" = (
+/obj/structure/platform_decoration,
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
+ },
/turf/open/floor/plating{
dir = 6;
icon_state = "warnplate"
@@ -16717,9 +17068,7 @@
/obj/structure/machinery/light{
dir = 4
},
-/obj/structure/machinery/power/geothermal{
- fail_rate = 5
- },
+/obj/structure/machinery/power/reactor/colony,
/turf/open/floor/plating{
dir = 8;
icon_state = "warnplate"
@@ -16807,11 +17156,11 @@
/area/lv624/ground/jungle/north_west_jungle)
"jRL" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 2;
- pixel_y = 7;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 2;
+ pixel_y = 7
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/east_caves)
@@ -17054,6 +17403,11 @@
"kvo" = (
/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west,
/area/lv624/ground/jungle/east_central_jungle)
+"kvv" = (
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/comms)
"kvE" = (
/obj/structure/machinery/landinglight/ds2/delaythree,
/turf/open/floor/plating,
@@ -17086,6 +17440,16 @@
},
/turf/open/gm/dirt,
/area/lv624/ground/caves/south_west_caves)
+"kyz" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1;
+ pixel_y = 1
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"kyN" = (
/obj/structure/flora/bush/ausbushes/var3/ywflowers,
/turf/open/gm/grass/grass1,
@@ -17113,6 +17477,13 @@
},
/turf/open/gm/dirt,
/area/lv624/ground/caves/north_west_caves)
+"kzp" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/foamed_metal,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"kzu" = (
/obj/structure/flora/bush/ausbushes/grassybush,
/turf/open/gm/grass/grass1,
@@ -17208,6 +17579,20 @@
},
/turf/open/gm/dirt,
/area/lv624/ground/caves/north_west_caves)
+"kKL" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"kLl" = (
/obj/effect/decal/grass_overlay/grass1/inner{
dir = 8
@@ -17284,6 +17669,12 @@
},
/turf/open/gm/dirt,
/area/lv624/ground/caves/sand_temple)
+"kSN" = (
+/obj/structure/girder,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/lv624/lazarus/secure_storage)
"kSR" = (
/obj/structure/fence,
/turf/open/gm/dirtgrassborder/grassdirt_corner/north_west,
@@ -17302,6 +17693,10 @@
/obj/structure/flora/jungle/plantbot1,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/north_west_jungle)
+"kVS" = (
+/obj/item/weapon/gun/rifle/m41a,
+/turf/open/gm/dirt,
+/area/lv624/lazarus/secure_storage)
"kWH" = (
/turf/open/floor{
icon_state = "dark"
@@ -17318,11 +17713,13 @@
/turf/open/gm/dirt,
/area/lv624/ground/caves/west_caves)
"kWX" = (
+/obj/effect/landmark/objective_landmark/medium,
+/obj/structure/largecrate/random,
/turf/open/floor{
- dir = 8;
- icon_state = "asteroidwarning"
+ dir = 9;
+ icon_state = "brown"
},
-/area/lv624/ground/colony/telecomm/sw_lz2)
+/area/lv624/lazarus/comms)
"kXE" = (
/obj/structure/flora/bush/ausbushes/ausbush,
/turf/open/gm/dirtgrassborder/north,
@@ -17517,10 +17914,12 @@
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/central_jungle)
"lud" = (
-/obj/structure/fence,
-/obj/structure/flora/bush/ausbushes/lavendergrass,
-/turf/open/gm/dirtgrassborder/west,
-/area/lv624/ground/colony/north_tcomms_road)
+/obj/structure/foamed_metal,
+/obj/structure/flora/jungle/vines/heavy,
+/turf/open/floor/plating{
+ icon_state = "warnplate"
+ },
+/area/lv624/lazarus/engineering)
"lxr" = (
/obj/structure/flora/jungle/vines/light_2,
/turf/open/gm/dirtgrassborder/south,
@@ -17561,6 +17960,16 @@
icon_state = "desert0"
},
/area/lv624/ground/barrens/west_barrens)
+"lzW" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"lAX" = (
/obj/structure/flora/bush/ausbushes/reedbush,
/turf/open/gm/grass/grass1,
@@ -17629,9 +18038,7 @@
/obj/structure/lattice{
layer = 2.9
},
-/obj/structure/machinery/power/geothermal{
- fail_rate = 5
- },
+/obj/structure/machinery/power/reactor/colony,
/turf/open/floor/plating{
icon_state = "warnplate"
},
@@ -17701,11 +18108,11 @@
/area/lv624/lazarus/landing_zones/lz2)
"lKl" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 6;
- pixel_y = -8;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 6;
+ pixel_y = -8
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/west_caves)
@@ -17742,11 +18149,11 @@
/area/lv624/lazarus/corporate_dome)
"lNG" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 2;
- pixel_y = 7;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 2;
+ pixel_y = 7
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_east_caves)
@@ -17758,6 +18165,11 @@
"lQC" = (
/turf/open/gm/dirt,
/area/lv624/ground/barrens/east_barrens)
+"lQP" = (
+/obj/structure/window_frame/colony,
+/obj/item/shard,
+/turf/open/floor/plating,
+/area/lv624/lazarus/comms)
"lRd" = (
/obj/item/stack/sheet/wood{
amount = 2
@@ -17911,14 +18323,18 @@
/area/lv624/ground/jungle/east_jungle)
"mca" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 2;
- pixel_y = 7;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 2;
+ pixel_y = 7
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_central_caves)
+"mdw" = (
+/obj/structure/prop/mech/drill,
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/secure_storage)
"mdQ" = (
/turf/closed/wall/rock/brown,
/area/lv624/ground/caves/west_caves)
@@ -17928,11 +18344,11 @@
/area/lv624/ground/jungle/south_east_jungle)
"mfn" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 2;
- pixel_y = -2;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 2;
+ pixel_y = -2
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/east_caves)
@@ -17998,6 +18414,7 @@
},
/area/lv624/ground/barrens/south_eastern_barrens)
"mkn" = (
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/lv624/lazarus/secure_storage)
"mko" = (
@@ -18018,7 +18435,9 @@
"mkU" = (
/obj/structure/foamed_metal,
/obj/structure/flora/jungle/vines/light_2,
-/turf/open/floor/plating,
+/turf/open/floor{
+ icon_state = "delivery"
+ },
/area/lv624/lazarus/engineering)
"mkW" = (
/obj/structure/flora/grass/tallgrass/jungle/corner{
@@ -18026,6 +18445,15 @@
},
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/north_east_jungle)
+"mkZ" = (
+/obj/structure/platform_decoration{
+ dir = 4
+ },
+/obj/structure/foamed_metal,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"mmu" = (
/obj/structure/flora/jungle/plantbot1,
/turf/open/gm/grass/grass1,
@@ -18060,6 +18488,10 @@
icon_state = "whitebluefull"
},
/area/lv624/lazarus/medbay)
+"mqf" = (
+/obj/item/tool/wrench,
+/turf/open/floor/plating,
+/area/lv624/lazarus/secure_storage)
"mqw" = (
/obj/effect/decal/cleanable/blood/oil,
/turf/open/floor{
@@ -18145,6 +18577,15 @@
/obj/structure/flora/jungle/vines/light_2,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_west_jungle)
+"mBH" = (
+/obj/structure/foamed_metal{
+ layer = 3.1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"mBL" = (
/turf/open/floor{
dir = 1;
@@ -18523,6 +18964,17 @@
icon_state = "desert3"
},
/area/lv624/ground/barrens/west_barrens)
+"nrK" = (
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"nrP" = (
/obj/structure/transmitter/colony_net{
phone_category = "Lazarus Landing";
@@ -18533,10 +18985,10 @@
/area/lv624/lazarus/quartstorage)
"nrR" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -10;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -10
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_east_caves)
@@ -18615,6 +19067,13 @@
/turf/open/gm/dirt,
/area/lv624/lazarus/landing_zones/lz2)
"nwR" = (
+/obj/structure/platform_decoration{
+ dir = 1
+ },
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
+ },
/turf/open/floor/plating{
dir = 10;
icon_state = "warnplate"
@@ -18828,11 +19287,11 @@
/area/lv624/lazarus/corporate_dome)
"nNu" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 6;
- pixel_y = -8;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 6;
+ pixel_y = -8
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/barrens/north_east_barrens)
@@ -18869,11 +19328,11 @@
/area/lv624/ground/caves/sand_temple)
"nQH" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 6;
- pixel_y = -8;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 6;
+ pixel_y = -8
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_west_caves)
@@ -19011,6 +19470,11 @@
/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/gm/grass/grass2,
/area/lv624/ground/barrens/south_eastern_jungle_barrens)
+"oas" = (
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/lv624/lazarus/engineering)
"oaL" = (
/obj/structure/flora/bush/ausbushes/ausbush,
/turf/open/gm/grass/grass1,
@@ -19097,6 +19561,7 @@
/turf/open/gm/dirt,
/area/lv624/ground/river/east_river)
"ogR" = (
+/obj/item/prop/alien/hugger,
/turf/open/floor/plating{
dir = 9;
icon_state = "warnplate"
@@ -19137,6 +19602,16 @@
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/plating,
/area/lv624/ground/barrens/central_barrens)
+"oiR" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"omu" = (
/obj/structure/flora/bush/ausbushes/var3/sparsegrass,
/turf/open/gm/dirt,
@@ -19184,13 +19659,17 @@
icon_state = "asteroidwarning"
},
/area/lv624/ground/colony/telecomm/cargo)
+"ose" = (
+/obj/structure/girder/displaced,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/south_central_jungle)
"osf" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 11;
- pixel_y = -2;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 11;
+ pixel_y = -2
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/central_caves)
@@ -19384,6 +19863,16 @@
icon_state = "asteroidplating"
},
/area/lv624/ground/caves/north_central_caves)
+"oIO" = (
+/obj/structure/surface/table,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/device/radio/off{
+ frequency = 1469
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/comms)
"oJL" = (
/obj/effect/landmark/crap_item,
/turf/open/gm/grass/grass1,
@@ -19455,6 +19944,15 @@
"oRH" = (
/turf/open/gm/dirtgrassborder/south,
/area/lv624/ground/jungle/north_east_jungle)
+"oRY" = (
+/obj/structure/surface/rack,
+/obj/item/clothing/mask/gas,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"oSh" = (
/obj/item/stack/sheet/wood{
amount = 2
@@ -19593,7 +20091,7 @@
/area/lv624/ground/caves/sand_temple)
"pca" = (
/obj/effect/landmark/nightmare{
- insert_tag = "nexuscenter"
+ insert_tag = "nexuscenter_barricaded"
},
/turf/open/floor{
dir = 9;
@@ -19656,6 +20154,11 @@
icon_state = "whiteblue"
},
/area/lv624/lazarus/corporate_dome)
+"phk" = (
+/obj/item/stack/rods,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/gm/dirt,
+/area/lv624/lazarus/secure_storage)
"phU" = (
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/grass/grass1,
@@ -19689,6 +20192,9 @@
},
/turf/open/gm/grass/grass1,
/area/lv624/ground/colony/west_tcomms_road)
+"plC" = (
+/turf/open/floor/plating,
+/area/lv624/lazarus/secure_storage)
"pmt" = (
/obj/effect/landmark/objective_landmark/science,
/turf/open/gm/dirt,
@@ -19825,6 +20331,12 @@
icon_state = "white"
},
/area/lv624/lazarus/medbay)
+"pzP" = (
+/obj/effect/decal/cleanable/blood/oil,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/comms)
"pAE" = (
/obj/structure/flora/bush/ausbushes/var3/leafybush,
/turf/open/auto_turf/strata_grass/layer1,
@@ -19955,8 +20467,8 @@
/area/lv624/lazarus/quartstorage/outdoors)
"pKm" = (
/turf/open/floor{
- icon_state = "asteroidwarning";
- dir = 8
+ dir = 8;
+ icon_state = "asteroidwarning"
},
/area/lv624/ground/colony/telecomm/sw_lz2)
"pKp" = (
@@ -19976,10 +20488,10 @@
/area/lv624/ground/colony/west_nexus_road)
"pLv" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 4;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 4
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/north_west_caves)
@@ -20110,10 +20622,10 @@
/area/lv624/ground/caves/east_caves)
"pVZ" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -10;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -10
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/central_caves)
@@ -20143,6 +20655,18 @@
/obj/item/clothing/mask/gas,
/turf/open/floor/vault,
/area/lv624/lazarus/quartstorage)
+"qap" = (
+/obj/structure/machinery/light,
+/obj/structure/stairs/perspective{
+ dir = 9;
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"qaE" = (
/obj/effect/landmark/hunter_primary,
/obj/effect/landmark/queen_spawn,
@@ -20176,6 +20700,13 @@
icon_state = "white"
},
/area/lv624/lazarus/corporate_dome)
+"qez" = (
+/obj/effect/landmark/good_item,
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/comms)
"qeW" = (
/turf/open/gm/coast/beachcorner2/north_west,
/area/lv624/ground/caves/sand_temple)
@@ -20210,6 +20741,21 @@
},
/turf/open/gm/dirt,
/area/lv624/ground/caves/west_caves)
+"qit" = (
+/obj/item/prop/alien/hugger{
+ pixel_x = -20;
+ pixel_y = 8
+ },
+/obj/item/tool/hatchet{
+ pixel_x = -14;
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"qiL" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/amanita,
/turf/open/auto_turf/strata_grass/layer1,
@@ -20407,6 +20953,10 @@
},
/turf/open/gm/grass/grass1,
/area/lv624/ground/colony/west_tcomms_road)
+"qEz" = (
+/obj/item/ammo_magazine/rifle/extended,
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/secure_storage)
"qGH" = (
/obj/structure/flora/bush/ausbushes/var3/ywflowers,
/turf/open/gm/grass/grass2,
@@ -20418,7 +20968,9 @@
"qGR" = (
/obj/structure/foamed_metal,
/obj/structure/flora/jungle/vines/heavy,
-/turf/open/floor/plating,
+/turf/open/floor{
+ icon_state = "delivery"
+ },
/area/lv624/lazarus/engineering)
"qHC" = (
/obj/structure/largecrate/random/barrel/red,
@@ -20475,6 +21027,24 @@
/obj/structure/flora/jungle/alienplant1,
/turf/open/gm/river,
/area/lv624/ground/jungle/west_jungle)
+"qNl" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
+"qNz" = (
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"qNQ" = (
/obj/structure/machinery/landinglight/ds2/delayone{
dir = 4
@@ -20556,11 +21126,11 @@
/area/lv624/ground/caves/north_west_caves)
"qVi" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -10;
- pixel_y = -2;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -10;
+ pixel_y = -2
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/north_east_caves)
@@ -20584,6 +21154,12 @@
icon_state = "vault"
},
/area/lv624/lazarus/quartstorage)
+"qXt" = (
+/obj/item/stack/rods,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/comms)
"qYF" = (
/obj/structure/flora/bush/ausbushes/var3/sunnybush,
/turf/open/gm/dirt,
@@ -20697,10 +21273,10 @@
/area/lv624/ground/jungle/north_east_jungle)
"rhi" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 4;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 4
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/east_caves)
@@ -20714,32 +21290,40 @@
icon_state = "green"
},
/area/lv624/lazarus/hydroponics)
+"rkZ" = (
+/obj/item/shard,
+/obj/item/stack/rods,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"rmg" = (
-/obj/structure/machinery/power/monitor,
-/obj/structure/foamed_metal,
/obj/structure/machinery/light{
dir = 1
},
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/foamed_metal,
/turf/open/floor{
icon_state = "dark"
},
/area/lv624/lazarus/engineering)
"rmt" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 4;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 4
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_central_caves)
"rmW" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 11;
- pixel_y = -2;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 11;
+ pixel_y = -2
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/west_caves)
@@ -20821,6 +21405,11 @@
},
/turf/open/gm/dirt,
/area/lv624/ground/caves/sand_temple)
+"rwK" = (
+/obj/effect/decal/remains/xeno,
+/obj/item/stack/sheet/metal,
+/turf/open/gm/dirt,
+/area/lv624/ground/colony/west_tcomms_road)
"rxV" = (
/turf/open/gm/dirtgrassborder{
icon_state = "desert_dug"
@@ -20875,11 +21464,11 @@
/area/lv624/lazarus/corporate_dome)
"rAU" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 6;
- pixel_y = -8;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 6;
+ pixel_y = -8
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/east_caves)
@@ -20901,6 +21490,12 @@
"rCV" = (
/turf/open/gm/grass/grass2,
/area/lv624/ground/jungle/south_central_jungle)
+"rDK" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/lv624/lazarus/secure_storage)
"rER" = (
/obj/effect/decal/grass_overlay/grass1/inner{
dir = 6
@@ -20928,11 +21523,11 @@
/area/lv624/lazarus/quartstorage)
"rGE" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 6;
- pixel_y = -8;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 6;
+ pixel_y = -8
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_east_caves)
@@ -21166,6 +21761,9 @@
icon_state = "vault"
},
/area/lv624/lazarus/quartstorage)
+"sfg" = (
+/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east,
+/area/lv624/ground/jungle/south_central_jungle)
"sfH" = (
/obj/structure/inflatable,
/turf/open/gm/dirt,
@@ -21221,10 +21819,10 @@
/area/lv624/ground/caves/sand_temple)
"snc" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 4;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 4
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_west_caves)
@@ -21324,6 +21922,15 @@
/obj/structure/flora/bush/ausbushes/grassybush,
/turf/open/gm/grass/grass1,
/area/lv624/lazarus/landing_zones/lz2)
+"svv" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 30
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"swR" = (
/obj/structure/flora/jungle/vines/light_3,
/obj/structure/flora/jungle/vines/heavy,
@@ -21410,6 +22017,11 @@
icon_state = "whiteyellowfull"
},
/area/lv624/ground/barrens/south_eastern_barrens)
+"sCx" = (
+/obj/item/clothing/head/welding,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/south_west_jungle)
"sCJ" = (
/obj/structure/flora/jungle/vines/heavy,
/turf/open/floor{
@@ -21638,11 +22250,11 @@
/area/lv624/ground/caves/sand_temple)
"sXg" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -10;
- pixel_y = -2;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -10;
+ pixel_y = -2
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/west_caves)
@@ -21666,8 +22278,6 @@
},
/area/lv624/lazarus/landing_zones/lz1)
"taK" = (
-/obj/structure/fence,
-/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east,
/area/lv624/ground/colony/north_tcomms_road)
"tbV" = (
@@ -21691,13 +22301,13 @@
/turf/open/gm/dirt,
/area/lv624/ground/caves/north_central_caves)
"tem" = (
-/obj/structure/machinery/power/geothermal,
/obj/structure/lattice{
layer = 2.9
},
/obj/structure/machinery/light{
dir = 8
},
+/obj/structure/machinery/power/reactor/colony,
/turf/open/floor/plating{
dir = 4;
icon_state = "warnplate"
@@ -21722,7 +22332,7 @@
/area/lv624/lazarus/quartstorage)
"tgi" = (
/obj/effect/landmark/nightmare{
- insert_tag = "lz-containers"
+ insert_tag = "lz-containers_swapped"
},
/turf/open/floor{
icon_state = "warning"
@@ -21739,11 +22349,11 @@
/area/lv624/ground/river/west_river)
"thk" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -5;
- pixel_y = -5;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -5;
+ pixel_y = -5
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/central_caves)
@@ -21912,11 +22522,11 @@
/area/lv624/ground/barrens/south_eastern_barrens)
"tuJ" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -5;
- pixel_y = -5;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -5;
+ pixel_y = -5
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/north_east_caves)
@@ -21976,6 +22586,16 @@
/obj/effect/landmark/crap_item,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_central_jungle)
+"tzP" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/bed/chair/office/light{
+ dir = 1
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"tBB" = (
/obj/structure/machinery/colony_floodlight,
/turf/open/gm/grass/grass1,
@@ -22102,6 +22722,10 @@
icon_state = "whiteyellowfull"
},
/area/lv624/ground/barrens/south_eastern_barrens)
+"tMP" = (
+/obj/structure/window_frame/colony,
+/turf/open/floor/plating,
+/area/lv624/lazarus/comms)
"tMQ" = (
/obj/effect/decal/grass_overlay/grass1/inner{
dir = 9
@@ -22126,11 +22750,11 @@
/area/lv624/ground/caves/south_central_caves)
"tQU" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 2;
- pixel_y = 7;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 2;
+ pixel_y = 7
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_west_caves)
@@ -22222,6 +22846,16 @@
"tZD" = (
/turf/closed/wall/r_wall,
/area/lv624/lazarus/landing_zones/lz2)
+"uaz" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/bed/chair/office/light{
+ dir = 8
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"uaL" = (
/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/auto_turf/strata_grass/layer1,
@@ -22350,6 +22984,16 @@
icon_state = "desert1"
},
/area/lv624/ground/barrens/south_eastern_barrens)
+"ukS" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/item/device/flashlight{
+ pixel_y = 5
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"ukY" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
@@ -22381,7 +23025,8 @@
phone_id = "Secure Storage";
pixel_y = 24
},
-/turf/open/floor/greengrid,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
/area/lv624/lazarus/secure_storage)
"umb" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane,
@@ -22403,6 +23048,13 @@
/obj/structure/flora/bush/ausbushes/reedbush,
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/east_caves)
+"upp" = (
+/obj/structure/platform_decoration,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"upM" = (
/obj/effect/landmark/crap_item,
/turf/open/gm/grass/grass1,
@@ -22415,8 +23067,8 @@
/area/lv624/ground/caves/east_caves)
"upV" = (
/obj/item/stack/cable_coil/random{
- pixel_y = 9;
- pixel_x = 7
+ pixel_x = 7;
+ pixel_y = 9
},
/turf/open/gm/dirt,
/area/lv624/ground/jungle/east_jungle)
@@ -22471,11 +23123,11 @@
/area/lv624/ground/caves/north_central_caves)
"uxL" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 11;
- pixel_y = -2;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 11;
+ pixel_y = -2
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_central_caves)
@@ -22719,6 +23371,12 @@
"uWJ" = (
/turf/closed/wall/strata_ice/jungle,
/area/lv624/ground/caves/south_west_caves)
+"uXT" = (
+/obj/item/device/assembly/timer,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"uXV" = (
/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/gm/dirt,
@@ -22789,6 +23447,15 @@
/obj/structure/machinery/colony_floodlight,
/turf/open/gm/grass/grass1,
/area/lv624/lazarus/landing_zones/lz2)
+"vdl" = (
+/obj/structure/stairs/perspective{
+ dir = 4;
+ icon_state = "p_stair_full"
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"vdt" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
@@ -22897,11 +23564,11 @@
dir = 10
},
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 2;
- pixel_y = 7;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 2;
+ pixel_y = 7
},
/turf/open/gm/dirt,
/area/lv624/ground/caves/south_east_caves)
@@ -23119,6 +23786,12 @@
/obj/item/bananapeel,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/west_jungle)
+"vJM" = (
+/obj/item/shard,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/comms)
"vKc" = (
/obj/effect/landmark/crap_item,
/turf/open/gm/grass/grass1,
@@ -23130,6 +23803,16 @@
"vLO" = (
/turf/open/gm/dirtgrassborder/south,
/area/lv624/lazarus/quartstorage/outdoors)
+"vMC" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 30
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"vMV" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/obj/structure/blocker/forcefield/multitile_vehicles,
@@ -23183,10 +23866,25 @@
/obj/structure/flora/bush/ausbushes/var3/sunnybush,
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_east_caves)
+"vRe" = (
+/obj/structure/surface/table,
+/obj/structure/machinery/light,
+/obj/item/tool/wrench,
+/obj/item/tool/weldingtool,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"vSG" = (
/obj/structure/flora/jungle/vines/light_1,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/north_east_jungle)
+"vTT" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/secure_storage)
"vUj" = (
/obj/structure/flora/bush/ausbushes/var3/sparsegrass,
/turf/open/gm/dirtgrassborder/south,
@@ -23242,6 +23940,12 @@
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/north_west_jungle)
+"vYL" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/engineering)
"vZT" = (
/obj/effect/landmark/objective_landmark/close,
/turf/open/gm/dirt,
@@ -23302,10 +24006,20 @@
},
/turf/open/gm/coast/beachcorner2/south_east,
/area/lv624/ground/caves/sand_temple)
+"weB" = (
+/obj/item/stack/rods/plasteel,
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/secure_storage)
"weH" = (
/obj/structure/flora/bush/ausbushes/genericbush,
/turf/open/gm/grass/grass2,
/area/lv624/ground/jungle/north_jungle)
+"weR" = (
+/obj/item/stack/rods,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/lv624/lazarus/secure_storage)
"wgk" = (
/obj/structure/flora/bush/ausbushes/ppflowers,
/obj/structure/platform_decoration/mineral/sandstone/runed{
@@ -23315,11 +24029,11 @@
/area/lv624/ground/caves/sand_temple)
"whk" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 2;
- pixel_y = 7;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 2;
+ pixel_y = 7
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/north_west_caves)
@@ -23398,6 +24112,10 @@
},
/turf/open/floor/sandstone/runed,
/area/lv624/ground/caves/sand_temple)
+"wol" = (
+/obj/item/ammo_magazine/rifle/extended,
+/turf/open/floor/plating,
+/area/lv624/lazarus/secure_storage)
"woF" = (
/obj/structure/flora/jungle/vines/light_3,
/obj/structure/barricade/metal/wired{
@@ -23563,11 +24281,11 @@
/area/lv624/lazarus/landing_zones/lz2)
"wHE" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = -1;
- pixel_y = 7;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = -1;
+ pixel_y = 7
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/south_west_caves)
@@ -23615,11 +24333,11 @@
/area/lv624/ground/jungle/west_central_jungle)
"wMr" = (
/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{
- pixel_x = 2;
- pixel_y = 7;
light_on = 1;
light_range = 1;
- light_system = 1
+ light_system = 1;
+ pixel_x = 2;
+ pixel_y = 7
},
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/north_east_caves)
@@ -23886,6 +24604,14 @@
/obj/structure/flora/jungle/vines/light_2,
/turf/open/gm/grass/grass2,
/area/lv624/ground/jungle/south_west_jungle)
+"xfa" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"xfP" = (
/obj/item/stack/rods,
/obj/item/shard,
@@ -23970,6 +24696,17 @@
/obj/effect/landmark/lv624/fog_blocker,
/turf/open/gm/dirt,
/area/lv624/ground/river/west_river)
+"xvj" = (
+/turf/open/gm/dirt,
+/area/lv624/lazarus/secure_storage)
+"xvz" = (
+/obj/structure/platform_decoration,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "brown"
+ },
+/area/lv624/lazarus/comms)
"xvN" = (
/obj/structure/barricade/handrail/strata{
dir = 1
@@ -24144,6 +24881,10 @@
/obj/structure/flora/bush/ausbushes/var3/sparsegrass,
/turf/open/gm/dirtgrassborder/east,
/area/lv624/ground/jungle/south_central_jungle)
+"xOL" = (
+/obj/item/stack/rods,
+/turf/open/gm/dirt,
+/area/lv624/ground/colony/west_tcomms_road)
"xPk" = (
/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west,
/area/lv624/ground/colony/south_medbay_road)
@@ -24172,6 +24913,10 @@
},
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/east_jungle)
+"xRc" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/gm/dirt,
+/area/lv624/lazarus/secure_storage)
"xRe" = (
/obj/effect/decal/grass_overlay/grass1/inner{
dir = 10
@@ -24274,6 +25019,16 @@
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/auto_turf/strata_grass/layer1,
/area/lv624/ground/caves/central_caves)
+"ydX" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{
+ name = "\improper Communications Dome";
+ req_access_txt = "100";
+ req_one_access = null
+ },
+/turf/open/floor{
+ icon_state = "delivery"
+ },
+/area/lv624/lazarus/engineering)
"yfe" = (
/obj/effect/decal/grass_overlay/grass1{
dir = 8
@@ -31164,7 +31919,7 @@ uiW
sqs
oTJ
qKC
-kWX
+pKm
hdh
oKP
aAp
@@ -32125,7 +32880,7 @@ aWT
aUQ
aZL
aUQ
-aUQ
+mdw
aTf
aTf
aTf
@@ -32347,7 +33102,7 @@ aTf
aUj
aUQ
aUQ
-ygp
+aZL
aUQ
gte
aUQ
@@ -32804,11 +33559,11 @@ aUj
aUQ
aUQ
aVZ
-aUQ
-aWV
+qEz
+ygp
aUQ
aXE
-aUQ
+vTT
aUQ
aYu
aTf
@@ -33030,13 +33785,13 @@ aTf
aTf
aTf
ulp
-aUQ
+aZL
aWa
-aUQ
+xRc
aWW
aUQ
aXF
-aUQ
+weB
aUQ
aTf
aTf
@@ -33258,13 +34013,13 @@ vxU
aTf
aTf
aUS
-aUQ
+xLT
iml
-aUQ
-aWW
-aUQ
+vTT
+fMv
+plC
aXG
-aUQ
+aZL
aYf
aTf
aTf
@@ -33486,13 +34241,13 @@ aXh
aTf
aTf
aTf
+aWV
aUQ
+plC
+vTT
+weR
aUQ
-aUQ
-aUQ
-sWk
-aUQ
-aUQ
+cfA
aTf
aTf
aTf
@@ -33718,9 +34473,9 @@ aTf
aTf
mkn
xLT
-mkn
-xLT
-sWk
+xvj
+cfA
+kSN
aTf
aTf
aXh
@@ -33944,12 +34699,12 @@ efp
aTf
aTf
aWc
-mkn
-mkn
+phk
+wol
sWk
-mkn
-mkn
-xLT
+mqf
+gSb
+hTp
kBq
aXh
aXh
@@ -34171,13 +34926,13 @@ bSm
efp
efp
aTf
-aTf
-xLT
-aWv
+chy
+rDK
aWv
+kVS
xLT
-xTT
-xTT
+sCx
+haE
vUj
qGH
aLj
@@ -34400,12 +35155,12 @@ buw
efp
efp
uSq
+eUI
qIO
qIO
-qIO
-qIO
+jaw
uXV
-qtj
+hen
dMc
knp
iIU
@@ -34624,7 +35379,7 @@ aXh
wTC
kjp
kjp
-ply
+hSp
efp
efp
uSq
@@ -34632,7 +35387,7 @@ njC
qIO
qIO
qIO
-qtj
+ose
qtj
ksM
rox
@@ -34856,7 +35611,7 @@ efp
efp
gDu
uSq
-hDX
+rwK
qIO
qIO
aXH
@@ -35084,9 +35839,9 @@ efp
efp
efp
uSq
+xOL
qIO
-qIO
-qIO
+jaw
ntL
kxI
kxI
@@ -35989,7 +36744,7 @@ rAo
fkJ
fau
xgE
-efp
+aWZ
efp
efp
efp
@@ -36218,7 +36973,7 @@ xgE
sFY
xgE
xgE
-eyb
+bgL
bgL
bgL
bgL
@@ -37585,7 +38340,7 @@ xgE
sxY
sxY
xgE
-cPV
+aRf
cPV
uSq
qIO
@@ -38959,8 +39714,8 @@ uSq
qIO
qIO
qIO
-qIO
-qIO
+ctS
+ctS
ntL
kxI
kxI
@@ -39187,9 +39942,9 @@ uSq
njC
qIO
qIO
-qIO
-qIO
-ntL
+ctS
+sfg
+vVe
kxI
jxG
qZv
@@ -39415,9 +40170,9 @@ uSq
qIO
qIO
qIO
-qIO
-qIO
-ntL
+ctS
+hLu
+kxI
kxI
oAJ
qZv
@@ -39644,8 +40399,8 @@ aPT
aUk
aPT
aPt
-qIO
-ntL
+hLu
+kxI
kxI
gzd
eqs
@@ -39868,9 +40623,9 @@ aPT
aPT
aPT
aPt
-aTG
-aQn
+vMC
aQn
+qNl
aPt
aPT
aPT
@@ -40092,17 +40847,17 @@ bwR
cPV
bCH
aPT
+aWy
+aXd
aQn
-aON
-aQn
-aQn
-aQn
-aQn
+aTi
+aTi
aQn
aQn
+aTi
aQn
isR
-aSg
+vRe
aPT
ooM
nuU
@@ -40325,12 +41080,12 @@ aQn
aQn
aQn
aTH
-aUl
aQn
aQn
aQn
aQn
-aWX
+aQn
+uaz
aPT
kxI
kxI
@@ -40546,19 +41301,19 @@ byY
fTf
nhi
cPV
-cPV
+aRf
aPT
-aRe
-aSd
-aSI
-aTg
+aWA
aQn
+aON
+aTg
+iYL
aQn
aQn
aTg
-aWd
-aSd
-aWY
+hJh
+aQn
+aTi
aPT
kxI
kxI
@@ -40773,10 +41528,10 @@ ylL
byY
mun
oGs
-lud
+oGs
aPt
aPt
-aRf
+euU
aQn
aTg
aTg
@@ -40785,8 +41540,8 @@ aQn
aVb
aTg
aTg
+aTG
aQn
-aWZ
aPt
aPt
kxI
@@ -41003,19 +41758,19 @@ byY
byY
byY
aPN
+cNE
+aTi
aQn
aQn
aQn
-aSJ
-aTh
-aQn
-aQn
aQn
-aTh
aQn
aQn
+cQU
+aTi
aQn
aQn
+xfa
aPT
kxI
lAX
@@ -41233,9 +41988,9 @@ byY
aPO
aQn
aQn
+rkZ
aQn
-aQn
-aQn
+aTi
vEj
aTg
rVH
@@ -41458,20 +42213,20 @@ byY
byY
byY
byY
-aPN
-aQn
-aQn
+aSK
+aSI
+aYh
aQn
aQn
aTi
-aQn
-aQn
-aQn
aTi
-aQn
-aQn
-aQn
-aQn
+qit
+upp
+jfN
+jfN
+gKN
+xvz
+elO
aPT
kxI
lIU
@@ -41688,16 +42443,16 @@ byY
taK
aPt
aPt
-aTI
+aQn
aQn
aTg
aTg
-aTI
-aQn
-aVb
+kKL
+aXn
+qap
aTg
aTg
-aTG
+cyP
aXa
aPt
aPt
@@ -41913,20 +42668,20 @@ uiN
byY
byY
byY
-fTf
+aUl
aPT
aRi
+aTi
aQn
aQn
-aSK
aTg
aTJ
-aQn
-aQn
+aZG
+qNz
aTg
aWe
-aWx
-aZc
+kvv
+kvv
aPT
kxI
kxI
@@ -42141,19 +42896,19 @@ uiN
byY
byY
byY
-fTf
+aUl
aPT
aSe
+aWE
+aXn
aQn
aQn
-aQn
-aQn
-aQn
+oiR
aZK
-aQn
-aQn
-aQn
-aQn
+qNz
+kvv
+kvv
+kvv
aZh
aPT
kxI
@@ -42369,20 +43124,20 @@ uiN
byY
byY
byY
-fTf
+aUl
aPT
-aQn
+aSJ
aTk
+aXe
aQn
aQn
-aTj
-aQn
-aQn
-aQn
-aTH
-aQn
aQn
aQn
+qNz
+qez
+kvv
+fij
+oIO
aPT
sBJ
kxI
@@ -42592,25 +43347,25 @@ aLv
aJr
iSg
aJr
-aJr
+aCV
aIO
aMN
aNA
aMN
aIO
aPt
-aTI
-aQn
-aQn
+aWd
+aSJ
+aZG
aQn
-aPt
aQn
aQn
aQn
+qNz
+kvv
+dHr
+bUc
aPt
-aPT
-aPT
-aPN
aPt
tzK
kxI
@@ -42826,20 +43581,20 @@ aMO
aKB
aMP
aIO
-aSg
+aSd
+aTj
+aWX
+eyb
aQn
aQn
aQn
aQn
-aPt
-aPT
-aUk
-aPT
-aPt
-aTK
-aTK
-aXd
-aXn
+nrK
+kvv
+kvv
+qXt
+tMP
+kxI
kxI
tsa
kxI
@@ -43054,20 +43809,20 @@ aMP
aNB
aNJ
aIO
+aUt
aIL
-aIL
-aIO
+aWY
aRe
-aQn
-aPT
-aTK
-aTK
-aTK
-aTK
-aTK
-aWy
-aXe
-aXn
+tzP
+bJe
+ukS
+aTi
+hOo
+vJM
+kvv
+pzP
+lQP
+kxI
kxI
kxI
kxI
@@ -43287,15 +44042,15 @@ aQo
aJz
aIO
aSg
-aPT
-aTK
+aPt
aTK
+oRY
aSL
+aWf
aVB
aWf
-fFN
aSL
-aXn
+sBJ
kxI
kxI
lUc
@@ -43514,14 +44269,14 @@ aEt
aQp
aRo
aIO
-aSg
+kWX
aSL
aSL
aSL
aSL
rmg
aTq
-aWA
+aTq
aSL
aSL
aVB
@@ -43747,9 +44502,9 @@ aSL
aVg
tem
aVd
-aTM
+kzp
+aTq
aTq
-aZG
aSX
aZI
aXJ
@@ -43971,17 +44726,17 @@ aQr
aQo
aSi
aSL
-aTo
+lHc
ogR
aUs
nwR
aTM
-aTM
-aTM
+aTq
+kzp
aXf
aTM
aTM
-aXW
+mBH
aVB
kxI
kxI
@@ -44199,12 +44954,12 @@ aQs
aQo
aSi
mkU
-qGR
+lud
aWD
aUq
aTN
aTM
-aTM
+fMa
aUo
aSX
aZJ
@@ -44427,13 +45182,13 @@ aQt
aQo
aSj
qGR
-mkU
+jdL
aWD
aUq
aTN
udM
aTM
-aWE
+aUx
aSX
aSX
aSX
@@ -44666,7 +45421,7 @@ aSX
aZd
aZx
aXZ
-aYh
+vYL
aVB
kxI
kxI
@@ -44887,14 +45642,14 @@ aSL
aVf
jMk
aWg
-aTM
-aTM
+lzW
+kyz
aWF
aSX
-aXs
+svv
aTM
aZM
-aTM
+vYL
aXg
kyN
kxI
@@ -45116,9 +45871,9 @@ aSX
aSX
aSX
aXs
+drX
aTM
-aTM
-aXg
+ydX
aTM
aVC
aTM
@@ -45341,12 +46096,12 @@ aJz
aSL
aTs
aTP
-aUt
+bLH
aSX
aVF
-aTM
-aTM
-aXg
+iiO
+uXT
+oas
aTM
aTM
aZf
@@ -45572,12 +46327,12 @@ aTR
aUu
aSX
aVG
-aTM
+vdl
aWG
aSX
aXt
aWi
-aYc
+bQf
aVB
dEp
kxI
@@ -45796,11 +46551,11 @@ xuk
oUy
aSL
aTu
-aZM
-aTM
+fLf
+fQx
aVj
-aTM
-aWi
+mkZ
+hDe
aWH
aSX
aXu
@@ -46025,7 +46780,7 @@ mNO
fFN
aTM
aTM
-aUx
+fAs
aSX
aVH
aTq
@@ -46483,7 +47238,7 @@ aSm
aSm
oUy
aSL
-hHc
+aVB
aWf
aVB
aSL
@@ -47594,7 +48349,7 @@ oUy
aMD
bbJ
bbO
-aCV
+oUy
aDS
aDS
aFh
diff --git a/maps/map_files/LV624/hydro/30.destroyed.dmm b/maps/map_files/LV624/hydro/30.destroyed.dmm
index 09eb12287a58..c3b3ddce6c63 100644
--- a/maps/map_files/LV624/hydro/30.destroyed.dmm
+++ b/maps/map_files/LV624/hydro/30.destroyed.dmm
@@ -174,7 +174,8 @@
desc = "This appears to be the head of a synthetic, though it it is so destroyed there is no way in hell anyone is going to bring it back to even basic functionality.";
name = "shattered synthetic head";
pixel_x = 9;
- pixel_y = 3
+ pixel_y = 3;
+ icon_state = "scandinavian_head_m"
},
/obj/item/robot_parts/arm/l_arm,
/turf/open/floor{
diff --git a/maps/map_files/LV624/standalone/clfship.dmm b/maps/map_files/LV624/standalone/clfship.dmm
index 10a6618c681d..c24a511cfc29 100644
--- a/maps/map_files/LV624/standalone/clfship.dmm
+++ b/maps/map_files/LV624/standalone/clfship.dmm
@@ -183,7 +183,7 @@
/area/lv624/lazarus/crashed_ship)
"fX" = (
/obj/item/stool,
-/obj/effect/landmark/survivor_spawner/lv624_crashed_clf,
+/obj/effect/landmark/survivor_spawner/lv624_crashed_clf_leader,
/turf/open/floor{
icon_state = "platingdmg1"
},
diff --git a/maps/map_files/LV624/standalone/corporatedome.dmm b/maps/map_files/LV624/standalone/corporatedome.dmm
new file mode 100644
index 000000000000..0778d0c61564
--- /dev/null
+++ b/maps/map_files/LV624/standalone/corporatedome.dmm
@@ -0,0 +1,1787 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aQ" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper Corporation Dome";
+ req_access_txt = "100"
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"bm" = (
+/obj/structure/surface/rack,
+/obj/item/spacecash/c1000/counterfeit,
+/obj/item/spacecash/c1000/counterfeit,
+/obj/item/spacecash/c1000/counterfeit,
+/turf/open/floor{
+ dir = 8;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"bA" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"bD" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/gm/dirt,
+/area/lv624/ground/colony/west_tcomms_road)
+"bE" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/item/shard,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"cm" = (
+/obj/structure/largecrate/random/case/small,
+/obj/structure/barricade/sandbags{
+ dir = 4
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"cn" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/largecrate/random/case/double,
+/turf/open/floor{
+ dir = 10;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"cA" = (
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"cB" = (
+/obj/structure/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"cR" = (
+/obj/structure/flora/jungle/vines/light_2,
+/obj/structure/flora/jungle/vines/heavy,
+/turf/closed/wall/r_wall,
+/area/lv624/lazarus/corporate_dome)
+"da" = (
+/obj/effect/decal/cleanable/blood/drip{
+ pixel_y = 20
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/plating{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/lv624/lazarus/landing_zones/lz2)
+"dq" = (
+/obj/structure/surface/table/woodentable/fancy,
+/obj/item/folder/white{
+ pixel_y = 8
+ },
+/obj/item/folder/yellow{
+ pixel_y = 4
+ },
+/obj/item/folder/red,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"dH" = (
+/obj/structure/machinery/blackbox_recorder,
+/obj/item/prop/almayer/flight_recorder/colony{
+ pixel_x = -6;
+ pixel_y = 10
+ },
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/corporate_dome)
+"dI" = (
+/obj/effect/decal/cleanable/blood{
+ icon_state = "gib6"
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/colony/west_tcomms_road)
+"dO" = (
+/obj/item/weapon/pole/fancy_cane,
+/obj/item/shard,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"dY" = (
+/turf/open/floor/plating{
+ icon_state = "asteroidwarning"
+ },
+/area/lv624/lazarus/landing_zones/lz2)
+"ev" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"eF" = (
+/obj/structure/barricade/deployable{
+ damage_state = 1;
+ health = 245;
+ icon_state = "folding_1"
+ },
+/turf/open/floor{
+ dir = 10;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"fm" = (
+/obj/effect/vehicle_spawner/van/decrepit,
+/obj/effect/decal/cleanable/blood/oil,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"fq" = (
+/obj/effect/acid_hole,
+/turf/closed/wall/r_wall,
+/area/lv624/lazarus/corporate_dome)
+"ft" = (
+/obj/effect/decal/cleanable/blood/oil,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"fF" = (
+/obj/item/ammo_casing/bullet{
+ icon_state = "casing_9_1"
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"fH" = (
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"gx" = (
+/obj/structure/window/framed/colony/reinforced,
+/turf/open/floor/plating,
+/area/lv624/lazarus/corporate_dome)
+"gz" = (
+/obj/item/shard,
+/turf/open/gm/grass/grass1,
+/area/lv624/ground/jungle/west_central_jungle)
+"gX" = (
+/obj/structure/machinery/door/airlock/almayer/engineering/colony{
+ name = "\improper Garage";
+ req_access_txt = "100";
+ req_one_access = null
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"ha" = (
+/turf/open/floor{
+ dir = 10;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"hc" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/showcase{
+ desc = "The display model for a Weyland Yutani generation one synthetic. It almost feels like the eyes on this one follow you.";
+ icon = 'icons/mob/humans/species/r_synthetic.dmi';
+ icon_state = "Synthetic_Template";
+ name = "Display synthetic"
+ },
+/obj/item/clothing/under/marine/veteran/pmc/corporate{
+ pixel_y = -2
+ },
+/turf/open/floor{
+ dir = 5;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"he" = (
+/obj/structure/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"hf" = (
+/obj/structure/machinery/vending/snack,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"is" = (
+/obj/item/stack/sheet/wood,
+/obj/effect/decal/cleanable/blood/gibs/xeno,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"iF" = (
+/obj/structure/closet/crate/secure/weyland,
+/obj/item/reagent_container/food/snacks/packaged_hdogs,
+/obj/item/reagent_container/food/snacks/packaged_hdogs,
+/obj/item/reagent_container/food/snacks/packaged_burrito,
+/obj/item/reagent_container/food/snacks/packaged_burrito,
+/obj/item/reagent_container/food/snacks/packaged_burger,
+/obj/item/reagent_container/food/snacks/packaged_burger,
+/turf/open/floor{
+ dir = 8;
+ icon_state = "whitebluecorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"iT" = (
+/obj/structure/filingcabinet,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor{
+ dir = 10;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"jH" = (
+/obj/structure/bookcase/manuals/medical,
+/obj/item/book/manual/security_space_law,
+/obj/item/book/manual/medical_diagnostics_manual,
+/obj/item/book/manual/research_and_development,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"jJ" = (
+/obj/item/shard,
+/turf/open/floor{
+ dir = 8;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"kl" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"kU" = (
+/obj/structure/machinery/door_control{
+ id = "garage_lv";
+ name = "Garage Shutters";
+ pixel_y = -28
+ },
+/obj/effect/landmark/corpsespawner/colonist,
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/plating{
+ icon_state = "asteroidwarning"
+ },
+/area/lv624/lazarus/landing_zones/lz2)
+"ln" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"lG" = (
+/obj/item/storage/firstaid/adv/empty,
+/obj/structure/transmitter/colony_net{
+ phone_category = "Lazarus Landing";
+ phone_color = "blue";
+ phone_id = "Corporate Office";
+ pixel_y = 24
+ },
+/turf/open/floor{
+ dir = 5;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"lX" = (
+/obj/structure/window_frame/colony/reinforced,
+/obj/item/shard,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/lv624/lazarus/corporate_dome)
+"mg" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"mi" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/lv624/lazarus/corporate_dome)
+"mp" = (
+/obj/effect/decal/cleanable/blood/oil,
+/obj/item/stack/rods,
+/obj/structure/machinery/vending/coffee,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"ms" = (
+/turf/open/floor{
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"mw" = (
+/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_goon,
+/obj/item/ammo_casing/bullet,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"mK" = (
+/obj/effect/spawner/gibspawner/human,
+/turf/open/gm/dirt,
+/area/lv624/ground/colony/west_tcomms_road)
+"ny" = (
+/obj/effect/landmark/corpsespawner/prisoner,
+/obj/effect/decal/cleanable/blood,
+/obj/item/clothing/glasses/sunglasses/blindfold,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"oj" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ dir = 1;
+ name = "\improper Corporation Office";
+ req_access_txt = "100"
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"oq" = (
+/obj/structure/window_frame/colony/reinforced,
+/turf/open/floor/plating,
+/area/lv624/lazarus/corporate_dome)
+"pg" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/showcase{
+ desc = "The display model for a Weyland Yutani generation one synthetic. It almost feels like the eyes on this one follow you.";
+ icon = 'icons/mob/humans/species/r_synthetic.dmi';
+ icon_state = "Synthetic_Template";
+ name = "Display synthetic"
+ },
+/obj/item/clothing/under/liaison_suit/blazer,
+/obj/item/clothing/head/manager{
+ pixel_y = 13
+ },
+/turf/open/floor{
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"pR" = (
+/obj/structure/filingcabinet,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor{
+ dir = 6;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"qn" = (
+/obj/structure/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/closet/bodybag,
+/obj/effect/landmark/corpsespawner/clf,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"qH" = (
+/obj/structure/machinery/door/airlock/almayer/engineering/colony{
+ dir = 1;
+ name = "\improper Workshop Storage";
+ req_access_txt = "100";
+ req_one_access = null
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"qI" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/paper_bin/wy{
+ pixel_y = 8
+ },
+/obj/item/tool/pen/clicky,
+/obj/item/device/flashlight/lamp{
+ pixel_x = -7;
+ pixel_y = 15
+ },
+/turf/open/floor{
+ dir = 5;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"qJ" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 1;
+ name = "\improper Storage Room"
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"qM" = (
+/obj/effect/decal/cleanable/blood/oil/streak,
+/obj/structure/machinery/door_control{
+ id = "garage_lv";
+ name = "Garage Shutters";
+ pixel_x = -28
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"sc" = (
+/obj/effect/decal/cleanable/blood,
+/obj/structure/bed/chair/office/light{
+ dir = 1
+ },
+/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_cl,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "whitebluecorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"sm" = (
+/obj/structure/machinery/vending/cigarette,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"sH" = (
+/obj/structure/window_frame/colony/reinforced,
+/obj/item/stack/rods,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/lv624/lazarus/corporate_dome)
+"sX" = (
+/obj/structure/window/framed/colony/reinforced,
+/turf/open/floor/plating{
+ icon_state = "platingdmg2"
+ },
+/area/lv624/lazarus/corporate_dome)
+"vf" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 1;
+ name = "\improper Corporate Liaison";
+ locked = 1
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"vC" = (
+/obj/structure/prop/server_equipment/yutani_server/off,
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/corporate_dome)
+"vW" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor{
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"wy" = (
+/obj/structure/machinery/door/airlock/almayer/engineering/colony{
+ name = "\improper Workshop Storage";
+ req_access_txt = "100";
+ req_one_access = null
+ },
+/turf/open/floor/plating{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/lv624/lazarus/corporate_dome)
+"wW" = (
+/obj/structure/closet/bodybag,
+/obj/effect/landmark/corpsespawner/security/marshal,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"xk" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = -8;
+ pixel_y = 16
+ },
+/obj/effect/landmark/objective_landmark/science,
+/turf/open/floor{
+ dir = 5;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"xG" = (
+/obj/structure/machinery/photocopier,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"yc" = (
+/turf/open/floor/plating{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/lv624/lazarus/landing_zones/lz2)
+"yJ" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg2"
+ },
+/area/lv624/lazarus/corporate_dome)
+"zm" = (
+/obj/structure/safe{
+ spawnkey = 0
+ },
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor{
+ dir = 5;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"zs" = (
+/obj/structure/window_frame/colony/reinforced,
+/obj/item/shard,
+/turf/open/floor/plating,
+/area/lv624/lazarus/corporate_dome)
+"zw" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/folder/black{
+ name = "Weyland-Yutani Classified folder";
+ desc = "A black folder which has the Weyland-Yutani symbol inside it, along with CLASSIFIED in giant red letters."
+ },
+/obj/effect/landmark/objective_landmark/close,
+/obj/item/reagent_container/food/drinks/coffeecup/wy{
+ pixel_x = -9;
+ pixel_y = 7
+ },
+/turf/open/floor{
+ dir = 6;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"zx" = (
+/obj/effect/decal/cleanable/blood/gibs/xeno,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"zz" = (
+/obj/structure/window_frame/colony/reinforced,
+/obj/item/tool/pen/red/clicky,
+/turf/open/floor/plating,
+/area/lv624/lazarus/corporate_dome)
+"Aj" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/prop/invuln/pipe_water{
+ dir = 8;
+ pixel_y = -12;
+ pixel_x = 6
+ },
+/turf/open/floor/plating,
+/area/lv624/lazarus/corporate_dome)
+"AG" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"AT" = (
+/obj/item/shard,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Bh" = (
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"BL" = (
+/obj/structure/machinery/door/poddoor/almayer{
+ dir = 8;
+ id = "garage_lv";
+ name = "\improper Garage"
+ },
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"BZ" = (
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_6_1"
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Ct" = (
+/obj/structure/window_frame/colony/reinforced,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/lv624/lazarus/corporate_dome)
+"CF" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ locked = 1;
+ name = "\improper Corporate Liaison"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Df" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor{
+ dir = 8;
+ icon_state = "whiteyellowcorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Dn" = (
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/item/ammo_magazine/smg/mp5,
+/obj/structure/closet/crate/secure/weyland,
+/obj/item/weapon/gun/smg/mp5,
+/obj/item/weapon/gun/smg/mp5,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whitebluecorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Dp" = (
+/obj/effect/decal/cleanable/blood,
+/obj/structure/bed/roller,
+/obj/effect/landmark/corpsespawner/wysec,
+/obj/item/prop/colony/usedbandage{
+ dir = 9;
+ pixel_x = 5;
+ pixel_y = 15
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"DU" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 6
+ },
+/obj/item/storage/toolbox/electrical,
+/turf/open/floor{
+ dir = 6;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Ez" = (
+/obj/structure/machinery/light_construct{
+ dir = 4
+ },
+/obj/item/stack/cable_coil,
+/turf/open/floor{
+ dir = 6;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"EM" = (
+/obj/structure/flora/jungle/vines/light_3,
+/turf/closed/wall/r_wall,
+/area/lv624/lazarus/corporate_dome)
+"Fh" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/fancy/cigarettes/emeraldgreen,
+/obj/item/storage/fancy/cigarettes/wypacket{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/turf/open/floor{
+ icon_state = "whitebluecorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Fk" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/plating{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/lv624/lazarus/landing_zones/lz2)
+"Fl" = (
+/turf/open/floor{
+ dir = 1;
+ icon_state = "whitebluecorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Fu" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/firstaid/adv{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/storage/firstaid/adv,
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/corporate_dome)
+"FP" = (
+/obj/item/shard,
+/obj/item/stack/sheet/wood,
+/turf/open/floor{
+ dir = 6;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"FZ" = (
+/obj/structure/machinery/faxmachine/corporate/liaison,
+/obj/structure/surface/table/reinforced/prison,
+/turf/open/floor{
+ dir = 10;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Gi" = (
+/obj/structure/prop/server_equipment/yutani_server/broken,
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/corporate_dome)
+"Go" = (
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_10_1"
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Gt" = (
+/obj/structure/machinery/light_construct/small{
+ dir = 8
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/lv624/lazarus/corporate_dome)
+"GM" = (
+/turf/open/floor{
+ dir = 1;
+ icon_state = "whiteyellowcorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"GV" = (
+/turf/open/floor{
+ dir = 8;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Hn" = (
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_9_1"
+ },
+/obj/effect/decal/cleanable/blood/gibs/xeno,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Ho" = (
+/obj/structure/largecrate/random/barrel/green,
+/turf/open/floor{
+ icon_state = "whiteyellowcorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Hv" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/fancy/cigar,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"HK" = (
+/obj/structure/machinery/power/apc{
+ dir = 1
+ },
+/obj/effect/spawner/random/powercell,
+/obj/item/tool/crowbar/red{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/item/tool/screwdriver,
+/obj/effect/decal/cleanable/blood/oil,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Ii" = (
+/turf/open/gm/dirt,
+/area/lv624/ground/colony/west_tcomms_road)
+"IM" = (
+/obj/item/shard,
+/obj/effect/decal/cleanable/blood/oil,
+/obj/item/stack/rods{
+ amount = 15
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Jg" = (
+/obj/structure/machinery/light,
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/corporate_dome)
+"Jq" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ locked = 1;
+ name = "\improper Corporation Dome";
+ req_access_txt = "100"
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"JL" = (
+/obj/effect/decal/cleanable/blood,
+/obj/item/prop/colony/usedbandage{
+ dir = 10
+ },
+/turf/open/floor{
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Kv" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/gm/dirt,
+/area/lv624/ground/colony/west_tcomms_road)
+"KC" = (
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whiteyellowcorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"KG" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Le" = (
+/obj/effect/acid_hole{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/lv624/lazarus/corporate_dome)
+"Lh" = (
+/obj/item/stack/cable_coil,
+/obj/effect/decal/cleanable/blood/oil/streak,
+/obj/item/shard,
+/obj/structure/machinery/vending/cola,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Li" = (
+/obj/structure/window_frame/colony/reinforced,
+/obj/item/shard,
+/obj/item/stack/rods,
+/turf/open/floor/plating,
+/area/lv624/lazarus/corporate_dome)
+"Ln" = (
+/obj/structure/barricade/plasteel/metal{
+ health = 250
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"LZ" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Me" = (
+/turf/open/floor/plating{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/lv624/lazarus/landing_zones/lz2)
+"Ml" = (
+/obj/structure/machinery/atm{
+ name = "Weyland-Yutani Automatic Teller Machine";
+ pixel_y = 30
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"OH" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{
+ pixel_x = 29
+ },
+/obj/structure/closet/crate/secure/weyland,
+/obj/item/stack/sheet/metal/med_small_stack,
+/obj/item/stack/sheet/plasteel/med_small_stack,
+/obj/item/stack/sandbags/small_stack,
+/obj/item/device/motiondetector/hacked/pmc,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Pa" = (
+/obj/structure/closet/toolcloset,
+/turf/open/floor/plating,
+/area/lv624/lazarus/corporate_dome)
+"Pr" = (
+/obj/item/ammo_casing/bullet{
+ icon_state = "casing_9_1"
+ },
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whiteyellowcorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Qi" = (
+/obj/structure/flora/jungle/vines/light_1,
+/turf/closed/wall/r_wall,
+/area/lv624/lazarus/corporate_dome)
+"Rn" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/showcase{
+ desc = "The display model for a Weyland Yutani generation one synthetic. It almost feels like the eyes on this one follow you.";
+ icon = 'icons/mob/humans/species/r_synthetic.dmi';
+ icon_state = "Synthetic_Template";
+ name = "Display synthetic"
+ },
+/obj/item/clothing/head/helmet/marine/veteran/pmc{
+ pixel_y = 11;
+ pixel_x = -1
+ },
+/obj/item/clothing/under/marine/veteran/pmc{
+ pixel_y = -2
+ },
+/turf/open/floor{
+ dir = 9;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"RD" = (
+/obj/item/ammo_casing/bullet{
+ icon_state = "casing_1_1"
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"RF" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/structure/surface/table/reinforced/prison,
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"RN" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/prop/server_equipment/laptop/on,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Sb" = (
+/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_goon,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"SO" = (
+/obj/structure/flora/jungle/vines/heavy,
+/turf/closed/wall/r_wall,
+/area/lv624/lazarus/corporate_dome)
+"SV" = (
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/corporate_dome)
+"Tc" = (
+/obj/item/paper_bin/wy{
+ pixel_y = 8
+ },
+/obj/item/frame/table/wood/fancy,
+/turf/open/floor{
+ dir = 5;
+ icon_state = "whiteyellow"
+ },
+/area/lv624/lazarus/corporate_dome)
+"TF" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/largecrate/supply/medicine,
+/turf/open/floor{
+ dir = 10;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Uo" = (
+/obj/item/shard,
+/turf/open/floor/plating{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Uz" = (
+/obj/effect/decal/cleanable/blood/oil/streak,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"UF" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor{
+ dir = 6;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Vj" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/ashtray/glass,
+/obj/item/trash/cigbutt/cigarbutt{
+ pixel_y = 12
+ },
+/obj/item/trash/cigbutt,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whitebluecorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Wx" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor{
+ icon_state = "whiteyellowcorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Xc" = (
+/obj/structure/barricade/metal{
+ dir = 4;
+ health = 200
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Xf" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Xp" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/showcase{
+ desc = "The display model for a Weyland Yutani generation one synthetic. It almost feels like the eyes on this one follow you.";
+ icon = 'icons/mob/humans/species/r_synthetic.dmi';
+ icon_state = "Synthetic_Template";
+ name = "Display synthetic"
+ },
+/obj/item/clothing/under/colonist{
+ pixel_y = -2
+ },
+/turf/open/floor{
+ dir = 10;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Xt" = (
+/turf/template_noop,
+/area/template_noop)
+"Xz" = (
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_3_1"
+ },
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"XC" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/largecrate/random/barrel/white,
+/turf/open/floor{
+ dir = 8;
+ icon_state = "whiteyellowcorner"
+ },
+/area/lv624/lazarus/corporate_dome)
+"XG" = (
+/turf/closed/wall/r_wall,
+/area/lv624/lazarus/corporate_dome)
+"Ye" = (
+/obj/structure/largecrate/supply/supplies/water,
+/turf/open/floor{
+ dir = 5;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Yg" = (
+/obj/item/moneybag,
+/obj/structure/surface/rack,
+/obj/item/coin/diamond,
+/turf/open/floor{
+ dir = 9;
+ icon_state = "whiteblue"
+ },
+/area/lv624/lazarus/corporate_dome)
+"Yv" = (
+/obj/item/frame/table/reinforced,
+/turf/open/floor/plating,
+/area/lv624/lazarus/corporate_dome)
+"YN" = (
+/turf/open/gm/dirt,
+/area/lv624/lazarus/landing_zones/lz2)
+"ZG" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/landmark/corpsespawner/scientist,
+/obj/item/handcuffs,
+/turf/open/floor{
+ icon_state = "dark"
+ },
+/area/lv624/lazarus/corporate_dome)
+"ZO" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/item/stack/sheet/wood,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+"ZT" = (
+/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_cl,
+/turf/open/floor{
+ icon_state = "white"
+ },
+/area/lv624/lazarus/corporate_dome)
+
+(1,1,1) = {"
+Xt
+Xt
+Xt
+Fk
+Me
+dY
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+"}
+(2,1,1) = {"
+Xt
+Xt
+Xt
+yc
+da
+dY
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+"}
+(3,1,1) = {"
+Xt
+Xt
+Xt
+yc
+Me
+kU
+XG
+XG
+XG
+XG
+XG
+XG
+XG
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+"}
+(4,1,1) = {"
+Xt
+Xt
+XG
+BL
+BL
+BL
+XG
+he
+Bh
+fm
+he
+XG
+XG
+XG
+LZ
+yJ
+Xt
+Xt
+Xt
+Xt
+"}
+(5,1,1) = {"
+Xt
+Xt
+XG
+Bh
+Bh
+Bh
+qM
+Uz
+ft
+Bh
+Bh
+XG
+Pa
+Gt
+LZ
+LZ
+Xt
+Xt
+Xt
+Xt
+"}
+(6,1,1) = {"
+Xt
+Xt
+XG
+ny
+Bh
+mw
+Bh
+Bh
+Bh
+Bh
+Bh
+qH
+Uo
+yJ
+LZ
+mi
+Xt
+Xt
+Xt
+Xt
+"}
+(7,1,1) = {"
+Xt
+Xt
+XG
+ZG
+cB
+mw
+wW
+qn
+OH
+Bh
+Bh
+XG
+Yv
+Aj
+mi
+XG
+Xt
+Xt
+Xt
+Xt
+"}
+(8,1,1) = {"
+Xt
+XG
+XG
+XG
+XG
+XG
+XG
+XG
+XG
+gX
+XG
+XG
+XG
+XG
+wy
+XG
+XG
+Xt
+Xt
+Xt
+"}
+(9,1,1) = {"
+YN
+XG
+ln
+GV
+GV
+TF
+XG
+Rn
+Fl
+cA
+iF
+Xp
+XG
+Ml
+GV
+eF
+fq
+Ii
+Ii
+Ii
+"}
+(10,1,1) = {"
+YN
+Lh
+hf
+ev
+cA
+cA
+Jq
+cA
+cA
+Go
+cA
+cA
+aQ
+cA
+Hn
+Ln
+aQ
+Kv
+Ii
+Ii
+"}
+(11,1,1) = {"
+YN
+mp
+sm
+RF
+fF
+KG
+cA
+cA
+cA
+Sb
+cA
+cA
+cA
+RD
+Sb
+AG
+cA
+Ii
+dI
+mK
+"}
+(12,1,1) = {"
+YN
+XG
+xk
+fH
+fH
+UF
+XG
+hc
+Dn
+cA
+cA
+pg
+XG
+Ye
+kl
+DU
+XG
+Ii
+Ii
+bD
+"}
+(13,1,1) = {"
+Xt
+XG
+XG
+XG
+XG
+XG
+XG
+XG
+XG
+cA
+oj
+XG
+XG
+XG
+XG
+XG
+XG
+Xt
+Xt
+Xt
+"}
+(14,1,1) = {"
+Xt
+Xt
+Xt
+XG
+XG
+Yg
+bm
+FZ
+gx
+cA
+cA
+cn
+XG
+Gi
+vC
+XG
+Xt
+Xt
+Xt
+Xt
+"}
+(15,1,1) = {"
+Xt
+Xt
+XG
+XG
+HK
+Fl
+ZT
+ms
+IM
+cA
+BZ
+cA
+qJ
+SV
+Jg
+XG
+Xt
+Xt
+Xt
+Xt
+"}
+(16,1,1) = {"
+Xt
+Xt
+XG
+RN
+sc
+bA
+cA
+ms
+gx
+cm
+Sb
+UF
+XG
+Fu
+dH
+EM
+Xt
+Xt
+Xt
+Xt
+"}
+(17,1,1) = {"
+Xt
+Xt
+XG
+qI
+Vj
+xG
+Fh
+zw
+XG
+cA
+oj
+XG
+XG
+XG
+XG
+Qi
+Xt
+Xt
+Xt
+Xt
+"}
+(18,1,1) = {"
+Xt
+Xt
+XG
+XG
+XG
+CF
+XG
+XG
+XG
+KG
+bA
+XC
+jJ
+iT
+Xf
+Xt
+Xt
+Xt
+Xt
+Xt
+"}
+(19,1,1) = {"
+Xt
+Xt
+XG
+Hv
+GM
+bA
+Df
+ha
+zz
+AT
+mg
+cA
+bA
+vW
+zs
+Xt
+Xt
+Xt
+Xt
+Xt
+"}
+(20,1,1) = {"
+Xt
+Xt
+XG
+zm
+KC
+zx
+Dp
+JL
+oq
+cA
+Xz
+cA
+Ho
+FP
+sH
+Xt
+Xt
+Xt
+Xt
+Xt
+"}
+(21,1,1) = {"
+Xt
+Xt
+XG
+XG
+lG
+Pr
+cA
+ZO
+vf
+bE
+Xc
+Wx
+Ez
+SO
+cR
+Xt
+Xt
+Xt
+Xt
+Xt
+"}
+(22,1,1) = {"
+Xt
+Xt
+Xt
+XG
+XG
+Tc
+dq
+dO
+Xf
+jH
+is
+pR
+SO
+SO
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+"}
+(23,1,1) = {"
+Xt
+Xt
+Xt
+Xt
+XG
+Li
+sX
+Ct
+Le
+sX
+lX
+sX
+SO
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+"}
+(24,1,1) = {"
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+gz
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+"}
+(25,1,1) = {"
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+Xt
+"}
diff --git a/maps/map_files/New_Varadero/New_Varadero.dmm b/maps/map_files/New_Varadero/New_Varadero.dmm
index ca983240307f..fbcba0174790 100644
--- a/maps/map_files/New_Varadero/New_Varadero.dmm
+++ b/maps/map_files/New_Varadero/New_Varadero.dmm
@@ -4392,13 +4392,6 @@
},
/turf/open/floor/plating,
/area/varadero/interior/administration)
-"cNC" = (
-/obj/item/fuelCell{
- pixel_x = 4;
- pixel_y = 22
- },
-/turf/open/auto_turf/sand_white/layer1,
-/area/varadero/interior_protected/maintenance/south)
"cNF" = (
/obj/structure/machinery/light{
dir = 4
@@ -5636,6 +5629,16 @@
icon_state = "asteroidplating"
},
/area/varadero/interior_protected/maintenance/south)
+"dJI" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/plating/icefloor{
+ icon_state = "asteroidplating"
+ },
+/area/varadero/interior/maintenance/security)
"dJX" = (
/obj/effect/decal/cleanable/blood/drip,
/obj/effect/decal/cleanable/blood,
@@ -6068,24 +6071,6 @@
icon_state = "yellow"
},
/area/varadero/interior/cargo)
-"dZZ" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/clothing/mask/cigarette/cigar/tarbacks{
- pixel_x = -7;
- pixel_y = 8
- },
-/obj/item/tool/lighter/zippo/black{
- pixel_x = -5;
- pixel_y = 7
- },
-/obj/item/ashtray/plastic{
- pixel_x = 6;
- pixel_y = -4
- },
-/turf/open/floor/shiva{
- icon_state = "blue"
- },
-/area/varadero/interior/technical_storage)
"eat" = (
/obj/structure/platform_decoration/kutjevo{
dir = 4
@@ -7100,6 +7085,15 @@
icon_state = "asteroidplating"
},
/area/varadero/interior/maintenance/security)
+"eGd" = (
+/obj/structure/machinery/power/reactor/colony,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plating/icefloor{
+ icon_state = "asteroidplating"
+ },
+/area/varadero/interior/electrical)
"eGq" = (
/obj/item/reagent_container/food/snacks/eat_bar,
/obj/item/reagent_container/food/snacks/eat_bar{
@@ -14289,6 +14283,24 @@
icon_state = "asteroidplating"
},
/area/varadero/exterior/lz1_near)
+"jkq" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/clothing/mask/cigarette/cigar/tarbacks{
+ pixel_x = -7;
+ pixel_y = 8
+ },
+/obj/item/tool/lighter/zippo/black{
+ pixel_x = -5;
+ pixel_y = 7
+ },
+/obj/item/ashtray/plastic{
+ pixel_x = 6;
+ pixel_y = -4
+ },
+/turf/open/floor/shiva{
+ icon_state = "blue"
+ },
+/area/varadero/interior/technical_storage)
"jks" = (
/turf/open/floor/plating/icefloor{
icon_state = "asteroidplating"
@@ -28758,6 +28770,13 @@
default_name = "shallow ocean"
},
/area/varadero/exterior/eastocean)
+"spN" = (
+/obj/item/fuel_cell{
+ pixel_x = 4;
+ pixel_y = 22
+ },
+/turf/open/auto_turf/sand_white/layer1,
+/area/varadero/interior_protected/maintenance/south)
"spP" = (
/obj/structure/bed/chair,
/obj/structure/pipes/standard/simple/hidden/green,
@@ -28985,6 +29004,13 @@
icon_state = "asteroidplating"
},
/area/varadero/interior_protected/maintenance/south)
+"swM" = (
+/obj/structure/machinery/power/reactor/colony,
+/obj/structure/machinery/light/small,
+/turf/open/floor/plating/icefloor{
+ icon_state = "asteroidplating"
+ },
+/area/varadero/interior/electrical)
"swV" = (
/obj/structure/closet/crate/construction,
/turf/open/auto_turf/sand_white/layer1,
@@ -29519,15 +29545,6 @@
},
/turf/open/auto_turf/sand_white/layer1,
/area/varadero/interior/maintenance)
-"sLi" = (
-/obj/structure/machinery/power/geothermal,
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/plating/icefloor{
- icon_state = "asteroidplating"
- },
-/area/varadero/interior/electrical)
"sLO" = (
/obj/item/device/flashlight/slime{
mouse_opacity = 0;
@@ -30123,6 +30140,12 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/shiva,
/area/varadero/interior/technical_storage)
+"thp" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/plating/icefloor{
+ icon_state = "asteroidplating"
+ },
+/area/varadero/interior/electrical)
"thS" = (
/obj/structure/window/framed/colony,
/turf/open/floor/plating,
@@ -31416,12 +31439,6 @@
/obj/effect/decal/cleanable/blood/oil/streak,
/turf/open/auto_turf/sand_white/layer1,
/area/varadero/interior_protected/maintenance/south)
-"ubK" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/plating/icefloor{
- icon_state = "asteroidplating"
- },
-/area/varadero/interior/electrical)
"ubT" = (
/obj/structure/machinery/disposal,
/obj/structure/disposalpipe/trunk{
@@ -32750,6 +32767,7 @@
/obj/structure/machinery/light{
dir = 4
},
+/obj/structure/machinery/fuelcell_recycler/full,
/turf/open/floor/plating/icefloor{
icon_state = "asteroidplating"
},
@@ -36394,13 +36412,6 @@
icon_state = "floor3"
},
/area/varadero/interior/cargo)
-"xjp" = (
-/obj/structure/machinery/power/geothermal,
-/obj/structure/machinery/light/small,
-/turf/open/floor/plating/icefloor{
- icon_state = "asteroidplating"
- },
-/area/varadero/interior/electrical)
"xka" = (
/obj/structure/window/framed/colony/reinforced{
color = "#aba9a9"
@@ -48027,7 +48038,7 @@ ibP
haT
teu
haT
-dZZ
+jkq
ykw
cIB
waB
@@ -54234,7 +54245,7 @@ bkM
pKs
pKs
bkM
-cNC
+spN
etv
cto
xxk
@@ -60381,9 +60392,9 @@ mSf
kCA
rsB
wOO
-ubK
-ubK
-sLi
+thp
+thp
+eGd
pkT
pAZ
wOO
@@ -60749,7 +60760,7 @@ lur
lur
lur
fEu
-ubK
+thp
oSX
viK
xJZ
@@ -60931,7 +60942,7 @@ aDZ
aDZ
rTv
fEu
-ubK
+thp
oSX
mZk
xJZ
@@ -61113,7 +61124,7 @@ rKl
lur
cbg
fEu
-xjp
+swM
wOO
viK
xJZ
@@ -61661,7 +61672,7 @@ uZa
mEB
mEB
oSX
-xJZ
+dJI
xJZ
xJZ
viK
diff --git a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
index 1f81d5d13e61..c781fdff23cc 100644
--- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
+++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
@@ -264,10 +264,6 @@
/obj/effect/blocker/sorokyne_cold_water,
/turf/open/gm/river,
/area/strata/ag/exterior/paths/cabin_area)
-"aaV" = (
-/obj/item/fuelCell,
-/turf/open/auto_turf/ice/layer1,
-/area/strata/ag/interior/outpost/gen/bball/nest)
"aaW" = (
/obj/structure/machinery/light/small{
dir = 1;
@@ -460,10 +456,6 @@
icon_state = "multi_tiles"
},
/area/strata/ug/interior/jungle/deep/structures/res)
-"abG" = (
-/obj/item/fuelCell,
-/turf/open/auto_turf/snow/brown_base/layer1,
-/area/strata/ag/interior/outpost/gen/bball/nest)
"abH" = (
/obj/structure/surface/rack,
/obj/item/storage/box/explosive_mines,
@@ -668,18 +660,6 @@
},
/turf/open/asphalt/cement,
/area/strata/ug/interior/jungle/platform/east/scrub)
-"acf" = (
-/obj/structure/barricade/handrail/strata{
- dir = 4
- },
-/obj/structure/platform_decoration/strata/metal{
- dir = 4
- },
-/obj/item/fuelCell,
-/turf/open/floor/strata{
- icon_state = "red2"
- },
-/area/strata/ag/interior/outpost/engi)
"acg" = (
/obj/effect/blocker/sorokyne_cold_water,
/obj/structure/platform/strata/metal{
@@ -856,15 +836,6 @@
icon_state = "floor2"
},
/area/strata/ug/interior/jungle/deep/structures/res)
-"acC" = (
-/obj/structure/barricade/handrail/strata{
- dir = 4
- },
-/obj/item/fuelCell,
-/turf/open/floor/strata{
- icon_state = "red2"
- },
-/area/strata/ag/interior/outpost/engi)
"acE" = (
/obj/structure/window/framed/strata,
/turf/open/floor/strata{
@@ -1466,6 +1437,14 @@
icon_state = "red1"
},
/area/strata/ug/interior/jungle/deep/structures/res)
+"aem" = (
+/obj/item/fuel_cell,
+/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
+/obj/structure/barricade/handrail/strata,
+/turf/open/floor/strata{
+ icon_state = "multi_tiles"
+ },
+/area/strata/ag/interior/dorms/hive)
"aen" = (
/obj/effect/landmark/monkey_spawn,
/turf/open/auto_turf/snow/brown_base/layer0,
@@ -1898,26 +1877,6 @@
icon_state = "blue1"
},
/area/strata/ug/interior/jungle/deep/structures/res)
-"afB" = (
-/obj/item/fuelCell,
-/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
-/obj/structure/machinery/light/small{
- dir = 1;
- pixel_y = 20
- },
-/obj/structure/barricade/handrail/strata,
-/turf/open/floor/strata{
- icon_state = "multi_tiles"
- },
-/area/strata/ag/interior/dorms/hive)
-"afC" = (
-/obj/item/fuelCell,
-/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
-/obj/structure/barricade/handrail/strata,
-/turf/open/floor/strata{
- icon_state = "multi_tiles"
- },
-/area/strata/ag/interior/dorms/hive)
"afD" = (
/obj/structure/pipes/standard/simple/hidden/cyan{
dir = 6
@@ -3361,19 +3320,6 @@
icon_state = "purp2"
},
/area/strata/ug/interior/jungle/deep/structures/engi)
-"ajP" = (
-/obj/item/fuelCell,
-/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
-/obj/structure/machinery/light/small{
- dir = 4
- },
-/obj/structure/barricade/handrail/strata{
- dir = 8
- },
-/turf/open/floor/strata{
- icon_state = "multi_tiles"
- },
-/area/strata/ag/interior/dorms/hive)
"ajQ" = (
/obj/structure/largecrate/random/secure,
/turf/open/floor/strata{
@@ -5685,12 +5631,6 @@
/obj/effect/decal/cleanable/blood,
/turf/open/auto_turf/snow/brown_base/layer3,
/area/strata/ag/exterior/paths/cabin_area)
-"arg" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/strata/ag/interior/dorms)
"arh" = (
/turf/open/floor/prison{
icon_state = "floor_plate"
@@ -6114,15 +6054,6 @@
icon_state = "darkyellowfull2"
},
/area/strata/ag/interior/outpost/engi)
-"asr" = (
-/obj/item/fuelCell,
-/obj/structure/barricade/handrail/strata{
- dir = 8
- },
-/turf/open/floor/strata{
- icon_state = "floor3"
- },
-/area/strata/ag/interior/outpost/engi)
"ass" = (
/obj/structure/surface/rack,
/obj/item/storage/box/donkpockets,
@@ -6524,15 +6455,6 @@
icon_state = "fake_wood"
},
/area/strata/ag/interior/dorms)
-"ats" = (
-/obj/item/fuelCell,
-/obj/structure/barricade/handrail/strata{
- dir = 1
- },
-/turf/open/floor/strata{
- icon_state = "floor3"
- },
-/area/strata/ag/interior/dorms)
"att" = (
/obj/structure/machinery/camera/autoname{
dir = 4
@@ -8291,6 +8213,12 @@
dir = 1;
pixel_y = 20
},
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/structure/surface/rack,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -8328,18 +8256,6 @@
},
/turf/open/auto_turf/snow/brown_base/layer1,
/area/strata/ag/exterior/paths/north_outpost)
-"ayP" = (
-/obj/item/fuelCell,
-/obj/structure/barricade/handrail/strata{
- dir = 4
- },
-/obj/structure/platform/strata/metal{
- dir = 8
- },
-/turf/open/floor/strata{
- icon_state = "red2"
- },
-/area/strata/ag/interior/outpost/engi)
"ayS" = (
/obj/structure/machinery/door/airlock/almayer/maint/colony,
/turf/open/floor/strata{
@@ -11120,10 +11036,6 @@
"aHv" = (
/turf/closed/wall/strata_outpost/reinforced,
/area/strata/ag/interior/outpost/engi)
-"aHw" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/strata,
-/area/strata/ag/interior/outpost/engi)
"aHy" = (
/obj/item/lightstick/red/planted,
/obj/structure/platform/strata/metal{
@@ -15779,29 +15691,12 @@
icon_state = "cyan2"
},
/area/strata/ag/interior/outpost/canteen/bar)
-"aXj" = (
-/obj/structure/surface/rack,
-/obj/structure/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/strata{
- icon_state = "orange_cover"
- },
-/area/strata/ag/interior/outpost/maint/canteen_e_1)
"aXk" = (
/obj/effect/decal/cleanable/blood{
layer = 3
},
/turf/open/floor/strata,
/area/strata/ag/interior/outpost/maint/canteen_e_1)
-"aXl" = (
-/obj/structure/surface/rack,
-/obj/item/book/manual/orbital_cannon_manual,
-/obj/item/book/manual/research_and_development,
-/turf/open/floor/strata{
- icon_state = "orange_cover"
- },
-/area/strata/ag/interior/outpost/maint/canteen_e_1)
"aXn" = (
/obj/structure/sink{
dir = 1;
@@ -16968,13 +16863,6 @@
icon_state = "cyan2"
},
/area/strata/ag/interior/outpost/canteen/bar)
-"bbE" = (
-/obj/structure/surface/rack,
-/obj/item/book/manual/engineering_guide,
-/turf/open/floor/strata{
- icon_state = "orange_cover"
- },
-/area/strata/ag/interior/outpost/maint/canteen_e_1)
"bbF" = (
/obj/structure/machinery/power/apc{
pixel_y = -24;
@@ -18156,12 +18044,6 @@
/obj/structure/sign/safety/fire_haz,
/turf/closed/wall/strata_outpost,
/area/strata/ag/interior/outpost/admin)
-"bfZ" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/strata{
- icon_state = "floor3"
- },
-/area/strata/ag/interior/outpost/admin)
"bga" = (
/obj/structure/platform/strata/metal{
dir = 1
@@ -19265,11 +19147,6 @@
},
/turf/open/auto_turf/snow/brown_base/layer2,
/area/strata/ag/exterior/vanyard)
-"bjT" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/fuelCell,
-/turf/open/auto_turf/ice/layer1,
-/area/strata/ag/interior/outpost/gen/bball/nest)
"bjU" = (
/obj/structure/flora/grass/tallgrass/ice/corner{
dir = 8
@@ -28576,16 +28453,6 @@
icon_state = "red1"
},
/area/strata/ag/interior/dorms/flight_control)
-"coc" = (
-/obj/item/fuelCell,
-/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
-/obj/structure/barricade/handrail/strata{
- dir = 8
- },
-/turf/open/floor/strata{
- icon_state = "multi_tiles"
- },
-/area/strata/ag/interior/dorms/hive)
"cof" = (
/obj/effect/decal/strata_decals/catwalk/prison,
/turf/open/floor/greengrid,
@@ -29287,14 +29154,6 @@
icon_state = "red1"
},
/area/strata/ag/interior/dorms)
-"ctE" = (
-/obj/structure/surface/rack,
-/obj/structure/machinery/light/small{
- dir = 1
- },
-/obj/item/book/manual/detective,
-/turf/open/floor/strata,
-/area/strata/ag/interior/dorms)
"ctF" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/strata{
@@ -29752,13 +29611,6 @@
icon_state = "multi_tiles"
},
/area/strata/ug/interior/outpost/jung/dorms/admin1)
-"cIQ" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/strata{
- dir = 4;
- icon_state = "floor3"
- },
-/area/strata/ag/interior/tcomms)
"cJf" = (
/obj/item/lightstick/red/planted,
/turf/open/auto_turf/ice/layer1,
@@ -29938,6 +29790,10 @@
icon_state = "cement3"
},
/area/strata/ag/interior/landingzone_1)
+"cZZ" = (
+/obj/item/fuel_cell,
+/turf/open/auto_turf/snow/brown_base/layer1,
+/area/strata/ag/interior/outpost/gen/bball/nest)
"daq" = (
/turf/open/auto_turf/strata_grass/layer1,
/area/strata/ug/interior/jungle/deep/east_carp)
@@ -30221,6 +30077,10 @@
icon_state = "orange_cover"
},
/area/strata/ag/interior/outpost/engi/drome)
+"dCb" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/strata,
+/area/strata/ag/interior/outpost/engi)
"dCu" = (
/obj/structure/flora/grass/tallgrass/ice/corner{
dir = 9
@@ -30607,14 +30467,6 @@
},
/turf/open/auto_turf/ice/layer0,
/area/strata/ag/exterior/marsh)
-"elE" = (
-/obj/structure/machinery/power/geothermal,
-/obj/effect/decal/cleanable/blood/oil,
-/turf/open/floor/strata{
- dir = 4;
- icon_state = "floor3"
- },
-/area/strata/ag/exterior/shed_five_caves)
"emg" = (
/obj/structure/pipes/standard/simple/hidden/cyan{
dir = 6
@@ -30739,6 +30591,11 @@
icon_state = "orange_cover"
},
/area/strata/ag/exterior/tcomms/tcomms_deck)
+"ezK" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/fuel_cell,
+/turf/open/auto_turf/ice/layer1,
+/area/strata/ag/interior/outpost/gen/bball/nest)
"eBo" = (
/obj/structure/machinery/landinglight/ds2/delaytwo,
/turf/open/asphalt/cement{
@@ -31031,13 +30888,6 @@
icon_state = "red1"
},
/area/strata/ag/interior/landingzone_checkpoint)
-"eUe" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/strata{
- dir = 4;
- icon_state = "floor3"
- },
-/area/strata/ag/exterior/vanyard)
"eUW" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22"
@@ -31309,6 +31159,12 @@
/obj/structure/dropship_equipment/mg_holder,
/turf/open/floor/strata,
/area/strata/ug/interior/outpost/jung/dorms/sec1)
+"fwi" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/strata/ag/interior/dorms)
"fwV" = (
/obj/structure/flora/grass/ice/brown/snowgrassbb_1,
/turf/open/auto_turf/snow/brown_base/layer3,
@@ -31335,6 +31191,18 @@
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/closed/wall/strata_outpost,
/area/strata/ug/interior/jungle/deep/east_dorms)
+"fyU" = (
+/obj/structure/barricade/handrail/strata{
+ dir = 4
+ },
+/obj/structure/platform_decoration/strata/metal{
+ dir = 4
+ },
+/obj/item/fuel_cell,
+/turf/open/floor/strata{
+ icon_state = "red2"
+ },
+/area/strata/ag/interior/outpost/engi)
"fzn" = (
/obj/structure/closet/secure_closet/freezer/fridge,
/turf/open/floor/strata{
@@ -32156,6 +32024,13 @@
icon_state = "red3"
},
/area/strata/ag/interior/outpost/med)
+"gOC" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/strata{
+ dir = 4;
+ icon_state = "floor3"
+ },
+/area/strata/ag/exterior/shed_five_caves)
"gOL" = (
/obj/effect/decal/cleanable/blood/oil/streak,
/turf/open/asphalt/cement,
@@ -33516,6 +33391,15 @@
icon_state = "multi_tiles"
},
/area/strata/ug/interior/jungle/deep/structures/res)
+"jfh" = (
+/obj/item/fuel_cell,
+/obj/structure/barricade/handrail/strata{
+ dir = 1
+ },
+/turf/open/floor/strata{
+ icon_state = "floor3"
+ },
+/area/strata/ag/interior/dorms)
"jgX" = (
/obj/effect/decal/strata_decals/catwalk/prison,
/obj/structure/barricade/handrail/strata{
@@ -33614,6 +33498,14 @@
/obj/structure/prop/dam/drill,
/turf/open/floor/plating,
/area/strata/ag/exterior/marsh/crash)
+"jqg" = (
+/obj/structure/surface/rack,
+/obj/structure/machinery/light/small{
+ dir = 1
+ },
+/obj/item/book/manual/detective,
+/turf/open/floor/strata,
+/area/strata/ag/interior/dorms)
"jrs" = (
/obj/structure/machinery/door/airlock/prison{
name = "Reinforced Airlock"
@@ -33746,6 +33638,12 @@
icon_state = "white_cyan3"
},
/area/strata/ag/interior/outpost/med)
+"jBp" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/strata{
+ icon_state = "floor3"
+ },
+/area/strata/ag/interior/outpost/admin)
"jBO" = (
/obj/structure/machinery/light/small,
/turf/open/floor/strata{
@@ -33810,6 +33708,18 @@
/obj/effect/landmark/static_comms/net_two,
/turf/open/auto_turf/snow/brown_base/layer0,
/area/strata/ag/exterior/marsh/center)
+"jIv" = (
+/obj/item/fuel_cell,
+/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
+/obj/structure/machinery/light/small{
+ dir = 1;
+ pixel_y = 20
+ },
+/obj/structure/barricade/handrail/strata,
+/turf/open/floor/strata{
+ icon_state = "multi_tiles"
+ },
+/area/strata/ag/interior/dorms/hive)
"jIz" = (
/obj/structure/machinery/weather_siren{
dir = 1;
@@ -33914,6 +33824,16 @@
icon_state = "cement1"
},
/area/strata/ag/exterior/landingzone_2)
+"jPT" = (
+/obj/item/fuel_cell,
+/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
+/obj/structure/barricade/handrail/strata{
+ dir = 8
+ },
+/turf/open/floor/strata{
+ icon_state = "multi_tiles"
+ },
+/area/strata/ag/interior/dorms/hive)
"jPV" = (
/obj/structure/flora/grass/tallgrass/jungle/corner,
/turf/open/auto_turf/strata_grass/layer1,
@@ -34334,6 +34254,13 @@
/obj/structure/flora/grass/ice/brown/snowgrassbb_1,
/turf/open/auto_turf/snow/brown_base/layer2,
/area/strata/ag/exterior/nearlz2)
+"kCa" = (
+/obj/structure/surface/rack,
+/obj/item/book/manual/engineering_guide,
+/turf/open/floor/strata{
+ icon_state = "orange_cover"
+ },
+/area/strata/ag/interior/outpost/maint/canteen_e_1)
"kCf" = (
/obj/structure/window/framed/strata,
/turf/open/floor/strata{
@@ -36006,6 +35933,19 @@
"noq" = (
/turf/open/gm/coast/beachcorner/south_east,
/area/strata/ug/interior/jungle/deep/east_dorms)
+"npf" = (
+/obj/item/fuel_cell,
+/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
+/obj/structure/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/barricade/handrail/strata{
+ dir = 8
+ },
+/turf/open/floor/strata{
+ icon_state = "multi_tiles"
+ },
+/area/strata/ag/interior/dorms/hive)
"npy" = (
/obj/structure/closet/secure_closet/medical3{
req_access = null
@@ -36209,6 +36149,14 @@
},
/turf/open/auto_turf/strata_grass/layer1,
/area/strata/ug/interior/jungle/deep/east_dorms)
+"nNR" = (
+/obj/structure/surface/rack,
+/obj/item/book/manual/orbital_cannon_manual,
+/obj/item/book/manual/research_and_development,
+/turf/open/floor/strata{
+ icon_state = "orange_cover"
+ },
+/area/strata/ag/interior/outpost/maint/canteen_e_1)
"nOE" = (
/obj/structure/closet/secure_closet/personal,
/obj/effect/landmark/objective_landmark/far,
@@ -36606,6 +36554,18 @@
icon_state = "floor3"
},
/area/strata/ag/interior/outpost/engi/drome)
+"oCc" = (
+/obj/item/fuel_cell,
+/obj/structure/barricade/handrail/strata{
+ dir = 4
+ },
+/obj/structure/platform/strata/metal{
+ dir = 8
+ },
+/turf/open/floor/strata{
+ icon_state = "red2"
+ },
+/area/strata/ag/interior/outpost/engi)
"oDw" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/auto_turf/strata_grass/layer1,
@@ -36936,6 +36896,15 @@
icon_state = "floor3"
},
/area/strata/ag/interior/dorms)
+"piu" = (
+/obj/structure/surface/rack,
+/obj/structure/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/strata{
+ icon_state = "orange_cover"
+ },
+/area/strata/ag/interior/outpost/maint/canteen_e_1)
"piD" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/reagent_container/food/snacks/cheesecakeslice,
@@ -37906,6 +37875,13 @@
/obj/structure/flora/bush/ausbushes/var3/sparsegrass,
/turf/open/auto_turf/strata_grass/layer0,
/area/strata/ug/interior/jungle/platform/east/scrub)
+"qDI" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/strata{
+ dir = 4;
+ icon_state = "floor3"
+ },
+/area/strata/ag/interior/tcomms)
"qFH" = (
/obj/structure/filingcabinet,
/turf/open/floor/strata{
@@ -38263,6 +38239,14 @@
icon_state = "floor3"
},
/area/strata/ag/exterior/research_decks)
+"rfB" = (
+/obj/structure/machinery/power/reactor/colony,
+/obj/effect/decal/cleanable/blood/oil,
+/turf/open/floor/strata{
+ dir = 4;
+ icon_state = "floor3"
+ },
+/area/strata/ag/exterior/shed_five_caves)
"rgt" = (
/obj/structure/stairs/perspective{
color = "#6e6e6e";
@@ -38351,6 +38335,13 @@
},
/turf/open/floor/strata,
/area/strata/ug/interior/outpost/jung/dorms/admin2)
+"rjn" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/strata{
+ dir = 4;
+ icon_state = "floor3"
+ },
+/area/strata/ag/exterior/vanyard)
"rjG" = (
/obj/structure/pipes/standard/simple/hidden/cyan,
/turf/open/asphalt/cement,
@@ -38739,6 +38730,10 @@
/obj/effect/decal/cleanable/blood/oil,
/turf/open/floor/strata,
/area/strata/ag/interior/tcomms)
+"rXZ" = (
+/obj/item/fuel_cell,
+/turf/open/auto_turf/ice/layer1,
+/area/strata/ag/interior/outpost/gen/bball/nest)
"sah" = (
/obj/item/weapon/gun/pistol/t73,
/turf/open/auto_turf/strata_grass/layer1,
@@ -38773,6 +38768,15 @@
icon_state = "purp2"
},
/area/strata/ug/interior/jungle/deep/structures/engi)
+"scp" = (
+/obj/structure/barricade/handrail/strata{
+ dir = 4
+ },
+/obj/item/fuel_cell,
+/turf/open/floor/strata{
+ icon_state = "red2"
+ },
+/area/strata/ag/interior/outpost/engi)
"seb" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall,
/turf/open/auto_turf/snow/brown_base/layer0,
@@ -38910,6 +38914,15 @@
icon_state = "cement9"
},
/area/strata/ug/interior/jungle/platform/east/scrub)
+"soD" = (
+/obj/item/fuel_cell,
+/obj/structure/barricade/handrail/strata{
+ dir = 8
+ },
+/turf/open/floor/strata{
+ icon_state = "floor3"
+ },
+/area/strata/ag/interior/outpost/engi)
"spp" = (
/obj/item/weapon/gun/pistol/t73,
/obj/effect/decal/cleanable/blood/gibs/core,
@@ -39538,6 +39551,12 @@
},
/turf/open/auto_turf/ice/layer1,
/area/strata/ag/exterior/paths/north_outpost)
+"tuV" = (
+/obj/structure/machinery/fuelcell_recycler/full,
+/turf/open/floor/strata{
+ icon_state = "floor3"
+ },
+/area/strata/ag/interior/outpost/engi)
"tvk" = (
/obj/structure/platform/strata/metal{
dir = 1
@@ -41643,13 +41662,6 @@
icon_state = "fake_wood"
},
/area/strata/ag/interior/landingzone_checkpoint)
-"wVU" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/strata{
- dir = 4;
- icon_state = "floor3"
- },
-/area/strata/ag/exterior/shed_five_caves)
"wWK" = (
/obj/structure/stairs/perspective{
color = "#6e6e6e";
@@ -47803,7 +47815,7 @@ aac
aac
aac
crA
-afB
+jIv
cEu
agD
aiE
@@ -47998,14 +48010,14 @@ aac
aac
aac
crA
-afC
+aem
aiE
agE
aiE
cnO
-coc
+jPT
ajl
-ajP
+npf
cnO
ddp
alG
@@ -48407,7 +48419,7 @@ apZ
ctC
ctC
ctC
-ctE
+jqg
avr
bWy
bPs
@@ -49771,7 +49783,7 @@ afW
afW
afW
asb
-ats
+jfh
bYE
cbj
bZV
@@ -51134,7 +51146,7 @@ anq
auC
crY
crY
-arg
+fwi
ase
att
crY
@@ -55319,7 +55331,7 @@ qfC
aac
aac
sgG
-cIQ
+qDI
gpr
tRC
sgG
@@ -56067,7 +56079,7 @@ aac
aac
aac
rOB
-eUe
+rjn
khh
vtl
dOO
@@ -57815,7 +57827,7 @@ aac
bfg
bgJ
xdr
-wVU
+gOC
jVg
sXu
okE
@@ -58010,7 +58022,7 @@ aac
bfg
bgI
xdr
-wVU
+gOC
fEW
sau
okE
@@ -58205,7 +58217,7 @@ bfe
bfc
bgI
xdr
-elE
+rfB
hPK
hYl
okE
@@ -62847,7 +62859,7 @@ bXq
ajW
aUV
aGr
-aHw
+dCb
oKo
aKx
dgB
@@ -63042,7 +63054,7 @@ bXq
dgB
aUV
uWG
-aHw
+dCb
oKo
oKo
aLP
@@ -63237,7 +63249,7 @@ aCV
bXq
aUV
vBs
-aHw
+dCb
oKo
oKo
aLQ
@@ -63425,7 +63437,7 @@ oBn
oBn
avP
oKo
-aIV
+tuV
aAn
aBR
aCW
@@ -63627,7 +63639,7 @@ dgB
aIV
aUV
aGr
-aHw
+dCb
oKo
aKy
aLR
@@ -63822,7 +63834,7 @@ dgB
aIV
aUV
uWG
-aHw
+dCb
oKo
dgB
dgB
@@ -64017,7 +64029,7 @@ dgB
aIV
aUV
vBs
-aHw
+dCb
oKo
aKA
dgB
@@ -64395,7 +64407,7 @@ ayw
awJ
aAR
arr
-asr
+soD
atF
auA
avS
@@ -64940,7 +64952,7 @@ aam
cdo
pIa
aax
-abG
+cZZ
cdo
cdo
cjq
@@ -65960,10 +65972,10 @@ ijo
auF
ijo
aHv
-ayP
-ayP
-acf
-acC
+oCc
+oCc
+fyU
+scp
oKo
aMX
dgB
@@ -67089,7 +67101,7 @@ pIa
pIa
cpV
cpV
-bjT
+ezK
aam
cdo
ahn
@@ -67284,7 +67296,7 @@ aag
pIa
aao
pIa
-bjT
+ezK
aam
cdo
ahn
@@ -67870,7 +67882,7 @@ aac
aac
pIa
pIa
-aaV
+rXZ
cdo
aam
adC
@@ -68517,7 +68529,7 @@ bWH
bll
bll
bdI
-bfZ
+jBp
bjf
bjc
cik
@@ -73193,9 +73205,9 @@ chd
chd
cpU
aVE
-aXj
+piu
aZw
-bbE
+kCa
cpU
crI
aHP
@@ -73583,7 +73595,7 @@ cdn
aSs
cpU
aVF
-aXl
+nNR
aZy
bbG
cpU
diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm
index 3cd01dcd50f2..0d15799978a9 100644
--- a/maps/map_files/USS_Almayer/USS_Almayer.dmm
+++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm
@@ -72,14 +72,6 @@
allow_construction = 0
},
/area/almayer/stair_clone/upper)
-"aan" = (
-/obj/effect/projector{
- name = "Almayer_Up1";
- vector_x = -19;
- vector_y = 98
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"aaq" = (
/obj/item/bedsheet/purple{
layer = 3.2
@@ -120,75 +112,13 @@
icon_state = "plate"
},
/area/almayer/living/port_emb)
-"aas" = (
-/obj/vehicle/powerloader,
-/obj/structure/platform{
- dir = 4
- },
-/obj/structure/platform{
- dir = 8
- },
-/obj/effect/decal/cleanable/blood/oil,
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/hallways/repair_bay)
"aau" = (
/turf/closed/wall/almayer/reinforced/temphull,
/area/almayer/living/pilotbunks)
-"aav" = (
-/obj/vehicle/powerloader,
-/obj/structure/platform{
- dir = 4
- },
-/obj/structure/platform{
- dir = 8
- },
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/hallways/repair_bay)
-"aax" = (
-/obj/effect/projector{
- name = "Almayer_Down2";
- vector_x = 1;
- vector_y = -100
- },
-/turf/open/floor/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/aft_hallway)
-"aay" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"aaC" = (
/obj/structure/lattice,
/turf/open/space/basic,
/area/space)
-"aaD" = (
-/obj/structure/platform{
- dir = 8
- },
-/obj/structure/machinery/power/apc/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
-"aaE" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
"aaF" = (
/obj/structure/stairs{
dir = 1;
@@ -214,46 +144,24 @@
icon_state = "plate"
},
/area/almayer/stair_clone/upper)
-"aaK" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/platform{
- dir = 8
- },
-/obj/structure/machinery/recharge_station{
- layer = 2.9
- },
-/obj/structure/sign/safety/high_voltage{
- pixel_x = 15;
- pixel_y = 32
- },
-/obj/structure/sign/safety/hazard{
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "silver"
+"aaP" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
+ dir = 2;
+ name = "\improper Brig Armoury";
+ req_access = null;
+ req_one_access_txt = "1;3"
},
-/area/almayer/hallways/repair_bay)
-"aaL" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NE-out";
- pixel_x = 1;
- pixel_y = 1
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
-/area/almayer/hallways/aft_hallway)
-"aaO" = (
/turf/open/floor/almayer{
- dir = 6;
- icon_state = "red"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/shipboard/brig/starboard_hallway)
"aaY" = (
/obj/structure/lattice,
/turf/open/space,
@@ -268,35 +176,10 @@
icon_state = "test_floor4"
},
/area/almayer/powered)
-"abd" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/closet/secure_closet/engineering_welding{
- req_one_access_txt = "7;23;27"
- },
-/obj/structure/platform{
- dir = 4
- },
-/obj/structure/sign/safety/terminal{
- pixel_y = 32
- },
-/obj/structure/sign/safety/fire_haz{
- pixel_x = 15;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
"abf" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
-"abg" = (
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"abh" = (
/turf/closed/wall/almayer/outer,
/area/almayer/lifeboat_pumps/north2)
@@ -325,9 +208,6 @@
/obj/structure/window/framed/almayer/hull,
/turf/open/floor/plating,
/area/almayer/lifeboat_pumps/north1)
-"abx" = (
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
"abB" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -622,20 +502,6 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north2)
-"acC" = (
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
-"acF" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
"acI" = (
/obj/structure/desertdam/decals/road_edge{
pixel_x = -12
@@ -656,9 +522,7 @@
icon_state = "E";
pixel_x = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"acK" = (
/obj/structure/desertdam/decals/road_edge{
@@ -703,6 +567,9 @@
icon_state = "red"
},
/area/almayer/shipboard/weapon_room)
+"acQ" = (
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"acS" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -723,17 +590,6 @@
icon_state = "plate"
},
/area/almayer/living/basketball)
-"acV" = (
-/obj/effect/projector{
- name = "Almayer_Down2";
- vector_x = 1;
- vector_y = -100
- },
-/turf/open/floor/almayer{
- allow_construction = 0;
- icon_state = "plate"
- },
-/area/almayer/hallways/aft_hallway)
"acW" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -773,34 +629,15 @@
icon_state = "plate"
},
/area/almayer/living/offices/flight)
-"adb" = (
-/obj/structure/stairs{
- dir = 8;
- icon_state = "ramptop"
- },
-/obj/effect/projector{
- name = "Almayer_Down2";
- vector_x = 1;
- vector_y = -100
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/aft_hallway)
-"adc" = (
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/aft_hallway)
"add" = (
/turf/open/floor/almayer{
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north1)
-"adg" = (
+"ade" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
+/area/almayer/hallways/lower/starboard_aft_hallway)
"adj" = (
/obj/effect/step_trigger/teleporter_vector{
name = "Almayer_Down1";
@@ -812,18 +649,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/stair_clone/upper)
-"adk" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/platform{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
"ado" = (
/obj/structure/machinery/camera/autoname/almayer{
dir = 8;
@@ -887,16 +712,6 @@
"adG" = (
/turf/closed/wall/almayer/outer,
/area/almayer/shipboard/starboard_missiles)
-"adH" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"adO" = (
/turf/closed/wall/almayer,
/area/almayer/engineering/starboard_atmos)
@@ -929,16 +744,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
-"aeb" = (
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- dir = 4;
- id = "northcheckpoint";
- name = "\improper Checkpoint Shutters"
- },
-/turf/open/floor/almayer{
- icon_state = "redfull"
- },
-/area/almayer/hallways/starboard_hallway)
"aec" = (
/obj/structure/closet/firecloset,
/turf/open/floor/almayer{
@@ -988,11 +793,6 @@
"ael" = (
/turf/closed/wall/almayer,
/area/almayer/living/cafeteria_officer)
-"aem" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"aep" = (
/turf/closed/wall/almayer,
/area/almayer/engineering/airmix)
@@ -1163,16 +963,6 @@
allow_construction = 0
},
/area/almayer/stair_clone/upper)
-"aeU" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
- pixel_y = 1
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
"aeW" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage,
@@ -1225,32 +1015,6 @@
icon_state = "redfull"
},
/area/almayer/shipboard/starboard_missiles)
-"afe" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NE-out";
- pixel_x = 1;
- pixel_y = 1
- },
-/obj/structure/stairs/perspective{
- dir = 1;
- icon_state = "p_stair_full"
- },
-/obj/structure/platform{
- dir = 8
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
-"aff" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/obj/structure/stairs/perspective{
- dir = 1;
- icon_state = "p_stair_full"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"afj" = (
/obj/structure/machinery/portable_atmospherics/canister/empty,
/turf/open/floor/engine,
@@ -1276,53 +1040,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/basketball)
-"afu" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
- pixel_y = 1
- },
-/obj/structure/machinery/light{
- dir = 4
- },
-/obj/structure/stairs/perspective{
- dir = 1;
- icon_state = "p_stair_full"
- },
-/obj/structure/platform{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
-"afv" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/aft_hallway)
-"afx" = (
-/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 1;
- name = "\improper Workshop Vendors"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/repair_bay)
"afy" = (
/obj/structure/machinery/light{
dir = 8
},
/turf/open/floor/almayer,
/area/almayer/living/offices/flight)
-"afz" = (
-/turf/open/floor/almayer/empty,
-/area/almayer/hallways/vehiclehangar)
"afB" = (
/obj/structure/machinery/light{
dir = 1
@@ -1332,16 +1055,6 @@
icon_state = "red"
},
/area/almayer/living/starboard_garden)
-"afC" = (
-/obj/docking_port/stationary/vehicle_elevator/almayer,
-/turf/open/floor/almayer/empty,
-/area/almayer/hallways/vehiclehangar)
-"afD" = (
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"afE" = (
/obj/structure/machinery/vending/dinnerware,
/obj/structure/machinery/firealarm{
@@ -1474,17 +1187,6 @@
icon_state = "plate"
},
/area/almayer/command/cichallway)
-"aga" = (
-/obj/item/tool/wirecutters{
- pixel_y = -7
- },
-/obj/structure/sign/poster{
- desc = "You are becoming hysterical.";
- icon_state = "poster11";
- pixel_y = 30
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"agb" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/reagent_container/food/snacks/bloodsoup{
@@ -1510,18 +1212,6 @@
"agj" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/living/commandbunks)
-"agn" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 6
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
-"ago" = (
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"agq" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -1571,19 +1261,6 @@
icon_state = "test_floor4"
},
/area/almayer/squads/req)
-"agw" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/stairs/perspective{
- icon_state = "p_stair_full"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
-"agy" = (
-/obj/structure/pipes/vents/pump/on,
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"agA" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/firedoor/border_only/almayer{
@@ -1597,15 +1274,6 @@
icon_state = "red"
},
/area/almayer/living/starboard_garden)
-"agG" = (
-/obj/structure/stairs/perspective{
- icon_state = "p_stair_full"
- },
-/obj/structure/platform{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"agH" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/disposalpipe/segment{
@@ -1629,12 +1297,6 @@
icon_state = "silver"
},
/area/almayer/living/officer_study)
-"agJ" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"agK" = (
/obj/structure/bed/chair{
dir = 1
@@ -1684,13 +1346,6 @@
icon_state = "plate"
},
/area/almayer/living/cafeteria_officer)
-"agX" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
"agY" = (
/turf/open/floor/almayer{
icon_state = "plate"
@@ -1733,12 +1388,6 @@
icon_state = "test_floor4"
},
/area/almayer/powered)
-"ahj" = (
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/starboard_hallway)
"ahl" = (
/turf/open/floor/almayer{
dir = 9;
@@ -1749,24 +1398,6 @@
/obj/structure/window/framed/almayer,
/turf/open/floor/plating,
/area/almayer/living/offices/flight)
-"ahq" = (
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
-"ahr" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"ahy" = (
/obj/item/device/radio/intercom{
freerange = 1;
@@ -1787,12 +1418,6 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north2)
-"ahB" = (
-/obj/structure/platform{
- dir = 8
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"ahG" = (
/obj/structure/machinery/door/airlock/almayer/engineering{
dir = 2;
@@ -1818,13 +1443,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_s)
-"ahM" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/aft_hallway)
"ahN" = (
/obj/structure/flora/bush/ausbushes/var3/ywflowers,
/turf/open/floor/grass,
@@ -1857,17 +1475,6 @@
icon_state = "silver"
},
/area/almayer/living/officer_study)
-"aib" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
- access_modified = 1;
- req_one_access = null;
- req_one_access_txt = "7;19"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/vehiclehangar)
"aic" = (
/turf/open/floor/almayer{
dir = 1;
@@ -1911,15 +1518,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/cafeteria_officer)
-"aii" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"aij" = (
/obj/structure/machinery/camera/autoname/almayer{
dir = 8;
@@ -1933,18 +1531,6 @@
icon_state = "silver"
},
/area/almayer/living/cafeteria_officer)
-"aik" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
-"aim" = (
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"ain" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 5
@@ -1953,18 +1539,6 @@
icon_state = "plate"
},
/area/almayer/living/cafeteria_officer)
-"aio" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"aiq" = (
/turf/open/floor/almayer,
/area/almayer/living/cafeteria_officer)
@@ -1980,31 +1554,9 @@
icon_state = "bluecorner"
},
/area/almayer/living/offices/flight)
-"ait" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/aft_hallway)
"aiw" = (
/turf/open/floor/almayer,
/area/almayer/engineering/starboard_atmos)
-"aiy" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 3
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
-"aiB" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"aiC" = (
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
"aiH" = (
/turf/open/floor/almayer{
icon_state = "plate"
@@ -2061,16 +1613,6 @@
"aiX" = (
/turf/closed/wall/almayer,
/area/almayer/living/pilotbunks)
-"ajd" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/effect/decal/warning_stripes{
- icon_state = "W";
- layer = 2.5
- },
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"aje" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 6
@@ -2099,32 +1641,6 @@
icon_state = "redfull"
},
/area/almayer/command/cic)
-"ajp" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/dropship_equipment/fuel/cooling_system{
- layer = 3.5
- },
-/obj/item/clothing/glasses/welding{
- layer = 3.6;
- pixel_x = 2;
- pixel_y = 7
- },
-/obj/effect/decal/cleanable/blood/oil,
-/obj/structure/machinery/computer/working_joe{
- dir = 4;
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
-"ajr" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "bluecorner"
- },
-/area/almayer/hallways/aft_hallway)
"ajs" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -2133,15 +1649,6 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north2)
-"ajt" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"aju" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 1
@@ -2154,53 +1661,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/lifeboat_pumps/north2)
-"ajx" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 5
- },
-/turf/open/floor/almayer{
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
-"ajy" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
-"ajz" = (
-/turf/open/floor/almayer{
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
"ajA" = (
/obj/structure/bed/chair/office/dark,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/living/offices/flight)
-"ajB" = (
-/obj/structure/machinery/cm_vending/sorted/tech/comp_storage{
- req_access = null;
- req_one_access = null;
- req_one_access_txt = "7;23;27;102"
- },
-/obj/item/reagent_container/food/drinks/coffee{
- pixel_x = -3;
- pixel_y = 18
- },
-/turf/open/floor/almayer{
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
-"ajC" = (
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"ajD" = (
/obj/structure/surface/table/almayer,
/obj/structure/flora/pottedplant{
@@ -2215,24 +1681,6 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
-"ajF" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
-"ajG" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
"ajH" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 6
@@ -2251,21 +1699,6 @@
/obj/structure/window/framed/almayer,
/turf/open/floor/plating,
/area/almayer/living/cafeteria_officer)
-"ajL" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out"
- },
-/obj/structure/machinery/light,
-/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{
- req_access = null;
- req_one_access = null;
- req_one_access_txt = "7;23;27;102"
- },
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
"ajM" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/poddoor/almayer/open{
@@ -2274,36 +1707,6 @@
},
/turf/open/floor/plating,
/area/almayer/living/offices/flight)
-"ajN" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 6
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"ajO" = (
-/obj/structure/stairs,
-/obj/effect/projector{
- name = "Almayer_Up1";
- vector_x = -19;
- vector_y = 98
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/starboard_hallway)
-"ajP" = (
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/stern_hallway)
-"ajR" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/stern_hallway)
"ajT" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 1
@@ -2316,19 +1719,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/lifeboat_pumps/north1)
-"ajW" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
-"ajX" = (
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/port_hallway)
"ajY" = (
/turf/open/floor/almayer_hull{
dir = 10;
@@ -2365,6 +1755,18 @@
icon_state = "redcorner"
},
/area/almayer/shipboard/weapon_room)
+"akn" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/vehicle/powerloader{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "cargo"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"ako" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -2423,20 +1825,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/upper_medical)
-"aky" = (
-/obj/structure/machinery/light,
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out"
- },
-/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{
- req_one_access = null;
- req_one_access_txt = "7;23;27;102"
- },
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
"akz" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/emails{
@@ -2466,52 +1854,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/operating_room_two)
-"akH" = (
-/obj/structure/machinery/light,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"akI" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"akJ" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/stern_hallway)
-"akK" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"akL" = (
/obj/structure/machinery/light{
dir = 1
@@ -2528,17 +1870,6 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
-"akO" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"akQ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -2558,37 +1889,6 @@
icon_state = "test_floor4"
},
/area/almayer/command/lifeboat)
-"akT" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 6
- },
-/obj/structure/disposalpipe/segment{
- dir = 4;
- icon_state = "pipe-c"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
-"akU" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
-"akV" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/aft_hallway)
"akW" = (
/turf/open/floor/almayer{
dir = 8;
@@ -2637,12 +1937,6 @@
/obj/structure/largecrate/random/case/small,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_m_s)
-"ali" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "bluecorner"
- },
-/area/almayer/hallways/aft_hallway)
"alk" = (
/obj/structure/machinery/door/poddoor/shutters/almayer{
dir = 4;
@@ -2655,31 +1949,17 @@
},
/turf/closed/wall/almayer/research/containment/wall/purple,
/area/almayer/medical/containment/cell)
-"all" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"alp" = (
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "silver"
+/obj/structure/machinery/firealarm{
+ pixel_y = -28
},
-/area/almayer/hallways/aft_hallway)
-"alq" = (
-/obj/structure/disposalpipe/junction,
-/obj/structure/pipes/standard/simple/hidden/supply{
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
-"als" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "bluecorner"
+ icon_state = "red"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/shipboard/brig/starboard_hallway)
"alw" = (
/obj/structure/machinery/door/airlock/almayer/generic{
dir = 2;
@@ -2689,22 +1969,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/pilotbunks)
-"alx" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- dir = 4;
- id = "northcheckpoint";
- name = "\improper Checkpoint Shutters"
- },
-/turf/open/floor/almayer{
- icon_state = "redfull"
- },
-/area/almayer/hallways/starboard_hallway)
"aly" = (
/turf/closed/wall/almayer,
/area/almayer/shipboard/starboard_missiles)
@@ -2740,60 +2004,12 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/brig/perma)
-"alG" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
-"alI" = (
-/obj/item/stack/cable_coil{
- pixel_x = 1;
- pixel_y = 10
- },
-/obj/item/trash/pistachios,
-/obj/item/tool/screwdriver,
-/turf/open/floor/almayer{
- icon_state = "cargo_arrow"
- },
-/area/almayer/hallways/repair_bay)
-"alJ" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
-"alK" = (
-/obj/structure/pipes/vents/pump,
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
"alL" = (
/turf/closed/wall/almayer,
/area/almayer/command/telecomms)
"alO" = (
/turf/closed/wall/almayer,
/area/almayer/engineering/upper_engineering)
-"alP" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/stern_hallway)
-"alQ" = (
-/obj/item/tool/wrench{
- pixel_x = -8;
- pixel_y = 10
- },
-/obj/effect/decal/cleanable/blood/oil,
-/obj/structure/prop/mech/hydralic_clamp,
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"alR" = (
/turf/open/floor/almayer{
icon_state = "plate"
@@ -2837,6 +2053,14 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/pilotbunks)
+"amc" = (
+/obj/structure/pipes/vents/pump{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"amd" = (
/obj/structure/machinery/vending/cola{
density = 0;
@@ -2854,12 +2078,6 @@
icon_state = "plate"
},
/area/almayer/living/pilotbunks)
-"amj" = (
-/obj/item/reagent_container/food/drinks/cans/souto,
-/turf/open/floor/almayer{
- icon_state = "cargo_arrow"
- },
-/area/almayer/hallways/repair_bay)
"amk" = (
/obj/effect/decal/warning_stripes{
icon_state = "NE-out";
@@ -2884,12 +2102,6 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"amp" = (
-/obj/structure/bed/chair/office/dark{
- dir = 8
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"ams" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/atmos_alert{
@@ -2926,17 +2138,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering)
-"amC" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
-"amD" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"amE" = (
/obj/item/clothing/suit/storage/marine/light/vest,
/obj/item/clothing/suit/storage/marine/light/vest,
@@ -2965,63 +2166,6 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
-"amK" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 5
- },
-/obj/structure/disposalpipe/segment{
- dir = 1;
- icon_state = "pipe-c"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
-"amO" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
-"amR" = (
-/obj/structure/stairs/perspective{
- icon_state = "p_stair_full"
- },
-/obj/item/storage/belt/utility,
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
-"amS" = (
-/obj/structure/stairs{
- dir = 1
- },
-/obj/effect/projector{
- name = "Almayer_Up4";
- vector_x = -19;
- vector_y = 104
- },
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/port_hallway)
-"amT" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
-"amU" = (
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/repair_bay)
"amX" = (
/turf/open/floor/almayer{
dir = 1;
@@ -3051,12 +2195,6 @@
icon_state = "plate"
},
/area/almayer/living/pilotbunks)
-"anc" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "silvercorner"
- },
-/area/almayer/hallways/aft_hallway)
"and" = (
/obj/structure/window/reinforced{
dir = 4;
@@ -3071,11 +2209,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/pilotbunks)
-"anf" = (
-/turf/open/floor/almayer{
- icon_state = "silvercorner"
- },
-/area/almayer/hallways/aft_hallway)
"ang" = (
/obj/item/clothing/head/welding{
pixel_y = 6
@@ -3089,19 +2222,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
-"anh" = (
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
-"ani" = (
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"anm" = (
/obj/structure/stairs{
icon_state = "ramptop"
@@ -3190,73 +2310,6 @@
icon_state = "sterile_green"
},
/area/almayer/medical/hydroponics)
-"anB" = (
-/obj/structure/sign/safety/storage{
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
-"anC" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/stern_hallway)
-"anD" = (
-/obj/structure/platform_decoration{
- dir = 8
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
-"anG" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/stern_hallway)
-"anH" = (
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"anJ" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"anK" = (
-/obj/structure/platform{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
-"anL" = (
-/obj/structure/platform_decoration{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"anM" = (
/obj/structure/surface/table/almayer,
/obj/item/clipboard,
@@ -3276,18 +2329,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/engineering/upper_engineering)
-"anR" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
-"anT" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silvercorner"
- },
-/area/almayer/hallways/repair_bay)
"anU" = (
/obj/structure/machinery/door/airlock/almayer/security{
dir = 2;
@@ -3318,26 +2359,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/weapon_room)
-"aoc" = (
-/obj/structure/stairs{
- dir = 1
- },
-/obj/effect/projector{
- name = "Almayer_Up4";
- vector_x = -19;
- vector_y = 104
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/port_hallway)
-"aod" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"aoe" = (
/turf/closed/wall/almayer/white,
/area/almayer/medical/morgue)
@@ -3401,11 +2422,6 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
-"aow" = (
-/turf/open/floor/almayer{
- icon_state = "bluecorner"
- },
-/area/almayer/hallways/aft_hallway)
"aoy" = (
/obj/structure/sign/safety/fire_haz{
pixel_x = 8;
@@ -3425,68 +2441,12 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
-"aoB" = (
-/obj/structure/disposalpipe/segment{
- dir = 1;
- icon_state = "pipe-c"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 5
- },
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"aoC" = (
/obj/structure/pipes/vents/pump{
dir = 1
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
-"aoD" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
-"aoE" = (
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
-/turf/open/floor/almayer{
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"aoF" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
-"aoG" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- dir = 4;
- icon_state = "pipe-c"
- },
-/turf/open/floor/almayer{
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"aoH" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
"aoI" = (
/turf/open/floor/almayer{
dir = 6;
@@ -3559,59 +2519,11 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/telecomms)
-"aoQ" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"aoR" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/stern_hallway)
-"aoS" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"aoT" = (
/turf/open/floor/almayer{
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering)
-"aoU" = (
-/obj/structure/disposalpipe/junction{
- dir = 8;
- icon_state = "pipe-j2"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
- },
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
"aoV" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/effect/decal/cleanable/dirt,
@@ -3650,20 +2562,6 @@
/obj/structure/machinery/light,
/turf/open/floor/almayer,
/area/almayer/engineering/upper_engineering)
-"apc" = (
-/obj/structure/disposalpipe/segment{
- dir = 8;
- icon_state = "pipe-c"
- },
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
-"apd" = (
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
"ape" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -3673,12 +2571,6 @@
icon_state = "green"
},
/area/almayer/living/grunt_rnr)
-"apf" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
"apg" = (
/turf/open/floor/almayer{
dir = 10;
@@ -3691,12 +2583,6 @@
},
/turf/open/floor/almayer,
/area/almayer/hallways/hangar)
-"apj" = (
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"apk" = (
/obj/effect/step_trigger/teleporter_vector{
name = "Almayer_Down1";
@@ -3705,20 +2591,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/stair_clone/upper)
-"apl" = (
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
-"apm" = (
-/obj/structure/machinery/line_nexter{
- dir = 1;
- id = "MTline";
- pixel_y = 3
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"apo" = (
/obj/structure/disposalpipe/trunk,
/obj/structure/machinery/disposal,
@@ -3726,13 +2598,6 @@
icon_state = "plate"
},
/area/almayer/command/cic)
-"app" = (
-/obj/structure/barricade/handrail{
- dir = 1;
- pixel_y = 2
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"apq" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
@@ -3773,16 +2638,6 @@
icon_state = "red"
},
/area/almayer/living/starboard_garden)
-"apv" = (
-/obj/structure/sign/safety/ladder{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"apz" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/door_control{
@@ -3807,28 +2662,12 @@
icon_state = "cargo"
},
/area/almayer/engineering/upper_engineering/starboard)
-"apC" = (
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"apE" = (
/turf/open/floor/almayer{
dir = 9;
icon_state = "orange"
},
/area/almayer/hallways/hangar)
-"apJ" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
-"apK" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"apL" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/cell_charger,
@@ -4053,19 +2892,6 @@
icon_state = "mono"
},
/area/almayer/living/pilotbunks)
-"aqx" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "laddernorthwest";
- name = "\improper North West Ladders Shutters"
- },
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"aqy" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 4
@@ -4129,17 +2955,19 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering/starboard)
-"aqM" = (
+"aqL" = (
+/obj/structure/stairs{
+ dir = 1
+ },
/obj/effect/projector{
- name = "Almayer_Up2";
- vector_x = -1;
- vector_y = 100
+ name = "Almayer_Up4";
+ vector_x = -19;
+ vector_y = 104
},
-/obj/structure/machinery/light{
- dir = 8
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/port_midship_hallway)
"aqN" = (
/turf/open/floor/almayer{
icon_state = "plate"
@@ -4199,15 +3027,6 @@
"arb" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/morgue)
-"arf" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- icon_state = "silvercorner"
- },
-/area/almayer/hallways/aft_hallway)
"arg" = (
/obj/structure/surface/table/almayer,
/obj/item/paper_bin/uscm,
@@ -4273,17 +3092,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering)
-"arn" = (
-/obj/effect/projector{
- name = "Almayer_Up1";
- vector_x = -19;
- vector_y = 98
- },
-/turf/open/floor/almayer{
- allow_construction = 0;
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"arp" = (
/obj/structure/bed/chair{
dir = 4
@@ -4379,16 +3187,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering)
-"arO" = (
-/obj/effect/projector{
- name = "Almayer_Up2";
- vector_x = -1;
- vector_y = 100
- },
-/turf/open/floor/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/starboard_hallway)
"arP" = (
/obj/structure/sign/safety/hazard{
pixel_y = 32
@@ -4451,34 +3249,6 @@
icon_state = "dark_sterile"
},
/area/almayer/living/pilotbunks)
-"asj" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
- },
-/obj/structure/sign/safety/restrictedarea{
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
-"asl" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
"asm" = (
/obj/structure/stairs{
dir = 4
@@ -4500,15 +3270,6 @@
/obj/structure/machinery/door/poddoor/almayer/biohazard/white,
/turf/open/floor/plating,
/area/almayer/medical/upper_medical)
-"asp" = (
-/obj/structure/machinery/firealarm{
- pixel_y = 28
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"asr" = (
/obj/structure/bed/chair/comfy/alpha{
dir = 8
@@ -4541,6 +3302,18 @@
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north2)
+"asC" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 1
+ },
+/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
+ name = "\improper Brig Lobby";
+ closeOtherId = "brignorth"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"asD" = (
/obj/effect/step_trigger/clone_cleaner,
/obj/structure/machinery/door_control{
@@ -4550,10 +3323,14 @@
pixel_y = 24;
req_one_access_txt = "90;91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
+"asE" = (
+/obj/structure/bed/chair/office/dark{
+ dir = 8
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"asF" = (
/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
access_modified = 1;
@@ -4562,7 +3339,7 @@
req_one_access_txt = "91;92"
},
/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
+ icon_state = "test_floor4"
},
/area/almayer/command/airoom)
"asG" = (
@@ -4572,9 +3349,7 @@
unacidable = 1;
unslashable = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"asH" = (
/obj/structure/machinery/telecomms/bus/preset_three,
@@ -4624,33 +3399,6 @@
icon_state = "silver"
},
/area/almayer/command/cic)
-"asO" = (
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "laddernorthwest";
- name = "\improper North West Ladders Shutters"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
-"asP" = (
-/obj/structure/machinery/door_control{
- id = "laddernorthwest";
- name = "North West Ladders Shutters";
- pixel_x = 25;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
- },
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "greencorner"
- },
-/area/almayer/hallways/starboard_hallway)
"asQ" = (
/obj/structure/surface/rack,
/obj/item/device/radio/marine,
@@ -4681,18 +3429,6 @@
icon_state = "plate"
},
/area/almayer/medical/morgue)
-"asW" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"asX" = (
/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep,
/turf/open/floor/almayer{
@@ -4755,16 +3491,6 @@
/obj/structure/bed/sofa/vert/grey/top,
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
-"atj" = (
-/obj/effect/projector{
- name = "Almayer_Down3";
- vector_x = 1;
- vector_y = -102
- },
-/turf/open/floor/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/aft_hallway)
"atk" = (
/obj/structure/machinery/door/airlock/almayer/secure/reinforced,
/obj/structure/machinery/door/firedoor/border_only/almayer{
@@ -4779,17 +3505,6 @@
icon_state = "test_floor4"
},
/area/almayer/command/telecomms)
-"atl" = (
-/obj/effect/projector{
- name = "Almayer_Down3";
- vector_x = 1;
- vector_y = -102
- },
-/turf/open/floor/almayer{
- allow_construction = 0;
- icon_state = "plate"
- },
-/area/almayer/hallways/aft_hallway)
"atm" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/telecomms)
@@ -4867,40 +3582,17 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering)
-"atC" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
+"atH" = (
/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/aft_hallway)
-"atI" = (
-/obj/structure/stairs{
- dir = 8;
- icon_state = "ramptop"
- },
-/obj/effect/projector{
- name = "Almayer_Down3";
- vector_x = 1;
- vector_y = -102
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
+ icon_state = "plate"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/lower/starboard_midship_hallway)
"atK" = (
/turf/open/floor/almayer{
dir = 10;
icon_state = "red"
},
/area/almayer/command/lifeboat)
-"atL" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/aft_hallway)
"atM" = (
/turf/open/floor/almayer{
dir = 9;
@@ -4963,26 +3655,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/pilotbunks)
-"atU" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
-"atV" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"aub" = (
/obj/structure/machinery/light{
dir = 1
@@ -5008,27 +3680,15 @@
icon_state = "test_floor4"
},
/area/almayer/command/airoom)
-"aue" = (
-/obj/effect/projector{
- name = "Almayer_Up3";
- vector_x = -1;
- vector_y = 102
- },
-/turf/open/floor/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/port_hallway)
"auf" = (
/obj/structure/pipes/standard/simple/hidden/supply/no_boom,
-/turf/closed/wall/almayer/white/hull,
+/turf/closed/wall/almayer/aicore/hull,
/area/almayer/command/airoom)
"aug" = (
/obj/structure/bed/chair/office/dark{
dir = 8
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"aui" = (
/obj/structure/machinery/telecomms/hub/preset,
@@ -5043,30 +3703,6 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"auk" = (
-/obj/effect/projector{
- name = "Almayer_Up3";
- vector_x = -1;
- vector_y = 102
- },
-/turf/open/floor/almayer{
- allow_construction = 0;
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
-"aul" = (
-/obj/structure/stairs{
- dir = 4
- },
-/obj/effect/projector{
- name = "Almayer_Up3";
- vector_x = -1;
- vector_y = 102
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/port_hallway)
"aum" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -5077,22 +3713,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/briefing)
-"aun" = (
-/obj/structure/stairs{
- dir = 4
- },
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/effect/projector{
- name = "Almayer_Up3";
- vector_x = -1;
- vector_y = 102
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/port_hallway)
"auu" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -5100,17 +3720,6 @@
/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/engineering/upper_engineering)
-"auv" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"auy" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -5130,16 +3739,6 @@
icon_state = "orangecorner"
},
/area/almayer/engineering/upper_engineering)
-"auG" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"auH" = (
/obj/structure/machinery/door_control{
id = "tcomms_apc";
@@ -5264,26 +3863,20 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
-"avj" = (
-/turf/open/floor/almayer{
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
-"avm" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
-"avn" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"avo" = (
/turf/closed/wall/almayer/outer,
/area/almayer/powered/agent)
+"avp" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/machinery/door/poddoor/almayer{
+ id = "s_umbilical";
+ name = "\improper Umbillical Airlock";
+ unacidable = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"avs" = (
/turf/closed/wall/biodome,
/area/almayer/powered/agent)
@@ -5325,10 +3918,6 @@
icon_state = "test_floor4"
},
/area/almayer/powered/agent)
-"avD" = (
-/obj/effect/landmark/crap_item,
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"avF" = (
/obj/effect/decal/warning_stripes{
icon_state = "NW-out";
@@ -5369,11 +3958,6 @@
icon_state = "test_floor4"
},
/area/almayer/powered)
-"avK" = (
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
-/area/almayer/command/airoom)
"avL" = (
/obj/structure/machinery/door_control{
id = "ARES StairsUpper";
@@ -5407,9 +3991,7 @@
pixel_y = -24;
req_one_access_txt = "91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"avM" = (
/obj/structure/machinery/computer/cameras/almayer/ares{
@@ -5427,9 +4009,7 @@
pixel_y = 6
},
/obj/item/tool/pen,
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"avN" = (
/obj/structure/machinery/telecomms/processor/preset_two,
@@ -5504,15 +4084,6 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/lower_medical_medbay)
-"avX" = (
-/obj/structure/disposalpipe/junction{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"avY" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/cic)
@@ -5528,15 +4099,6 @@
icon_state = "rasputin15"
},
/area/almayer/powered/agent)
-"awb" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"awd" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/living/pilotbunks)
@@ -5620,9 +4182,7 @@
icon_state = "W";
pixel_x = -1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"awv" = (
/obj/structure/machinery/computer/telecomms/monitor,
@@ -5630,16 +4190,6 @@
icon_state = "plate"
},
/area/almayer/command/telecomms)
-"aww" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"awx" = (
/turf/open/floor/almayer{
dir = 4;
@@ -5690,6 +4240,9 @@
icon_state = "plate"
},
/area/almayer/command/cic)
+"awE" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"awF" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/living/numbertwobunks)
@@ -5862,19 +4415,6 @@
icon_state = "blue"
},
/area/almayer/command/cic)
-"axs" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
- layer = 2.5
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/aft_hallway)
"axu" = (
/obj/structure/machinery/computer/telecomms/server,
/turf/open/floor/almayer{
@@ -6032,6 +4572,17 @@
icon_state = "tcomms"
},
/area/almayer/command/telecomms)
+"axY" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ id = "laddernorthwest";
+ name = "\improper North West Ladders Shutters"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"aya" = (
/turf/open/floor/almayer{
dir = 4;
@@ -6212,21 +4763,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
-"ayE" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/disposalpipe/segment,
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "laddersouthwest";
- name = "\improper South West Ladders Shutters"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
"ayI" = (
/obj/structure/surface/rack,
/obj/item/storage/toolbox/mechanical{
@@ -6288,21 +4824,6 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/north2)
-"ayT" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
-"ayU" = (
-/obj/structure/machinery/power/apc/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"ayV" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -6347,16 +4868,19 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/medical_science)
-"azb" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
+"aza" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
},
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ id = "laddernorthwest";
+ name = "\improper North West Ladders Shutters"
+ },
+/obj/effect/step_trigger/clone_cleaner,
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "cargo_arrow"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/lower/starboard_fore_hallway)
"azc" = (
/obj/structure/machinery/computer/telecomms/traffic,
/turf/open/floor/almayer{
@@ -6504,19 +5028,6 @@
icon_state = "red"
},
/area/almayer/shipboard/navigation)
-"azB" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "laddersouthwest";
- name = "\improper South West Ladders Shutters"
- },
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
"azC" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/device/flashlight/lamp/green,
@@ -6538,36 +5049,6 @@
allow_construction = 0
},
/area/almayer/stair_clone)
-"azE" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "greencorner"
- },
-/area/almayer/hallways/port_hallway)
-"azG" = (
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "laddersouthwest";
- name = "\improper South West Ladders Shutters"
- },
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
-"azI" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "greencorner"
- },
-/area/almayer/hallways/port_hallway)
"azJ" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/door_control{
@@ -6583,23 +5064,6 @@
},
/turf/open/floor/almayer,
/area/almayer/command/cichallway)
-"azS" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/effect/step_trigger/clone_cleaner,
-/obj/effect/decal/warning_stripes{
- icon_state = "W";
- layer = 2.5
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "greencorner"
- },
-/area/almayer/hallways/port_hallway)
-"azT" = (
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"azU" = (
/obj/structure/machinery/camera/autoname/almayer{
dir = 8;
@@ -6643,28 +5107,11 @@
icon_state = "plate"
},
/area/almayer/command/cic)
-"azY" = (
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
"azZ" = (
/obj/structure/machinery/keycard_auth,
/obj/structure/surface/table/reinforced/black,
/turf/open/floor/almayer,
/area/almayer/command/cic)
-"aAa" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out"
- },
-/obj/structure/sign/safety/stairs{
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"aAd" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -6746,17 +5193,6 @@
icon_state = "mono"
},
/area/almayer/medical/hydroponics)
-"aAv" = (
-/obj/effect/projector{
- name = "Almayer_Up4";
- vector_x = -19;
- vector_y = 104
- },
-/turf/open/floor/almayer{
- allow_construction = 0;
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"aAy" = (
/obj/structure/machinery/door/airlock/almayer/secure/reinforced,
/obj/structure/machinery/door/firedoor/border_only/almayer{
@@ -6873,22 +5309,15 @@
icon_state = "sterile_green"
},
/area/almayer/medical/containment)
-"aAW" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/disposalpipe/segment{
- dir = 1;
- icon_state = "pipe-c"
- },
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 8
+"aAU" = (
+/obj/structure/machinery/light{
+ dir = 4
},
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "silver"
+ dir = 4;
+ icon_state = "orange"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/lower/starboard_midship_hallway)
"aAZ" = (
/obj/structure/bed/chair/office/light{
dir = 8
@@ -7039,11 +5468,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/upper_engineering)
-"aBq" = (
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/aft_hallway)
"aBr" = (
/obj/structure/ladder{
height = 2;
@@ -7105,14 +5529,6 @@
icon_state = "red"
},
/area/almayer/command/lifeboat)
-"aBC" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/repair_bay)
"aBD" = (
/obj/structure/closet/basketball,
/obj/structure/sign/safety/maint{
@@ -7250,9 +5666,7 @@
/obj/structure/bed/chair/office/dark{
dir = 4
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"aCf" = (
/obj/structure/window/framed/almayer/hull/hijack_bustable,
@@ -7281,18 +5695,6 @@
icon_state = "silvercorner"
},
/area/almayer/command/cic)
-"aCl" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"aCo" = (
/obj/structure/surface/table/almayer,
/obj/item/paper_bin/uscm,
@@ -7320,6 +5722,17 @@
icon_state = "sterile_green"
},
/area/almayer/medical/medical_science)
+"aCu" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"aCw" = (
/obj/structure/window/framed/almayer/white,
/obj/structure/machinery/door/firedoor/border_only/almayer,
@@ -7365,6 +5778,14 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/containment)
+"aCX" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"aCZ" = (
/obj/structure/machinery/disposal,
/obj/structure/disposalpipe/trunk,
@@ -7427,15 +5848,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering)
-"aDk" = (
-/obj/structure/machinery/firealarm{
- pixel_y = 28
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"aDm" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
@@ -7463,16 +5875,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering)
-"aDp" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NE-out";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silvercorner"
- },
-/area/almayer/hallways/aft_hallway)
"aDr" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -7500,6 +5902,10 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering)
+"aDt" = (
+/obj/structure/machinery/cm_vending/clothing/military_police_warden,
+/turf/open/floor/wood/ship,
+/area/almayer/shipboard/brig/warden_office)
"aDv" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -7508,15 +5914,6 @@
icon_state = "plate"
},
/area/almayer/command/cic)
-"aDx" = (
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"aDB" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -7596,16 +5993,6 @@
icon_state = "silver"
},
/area/almayer/command/cic)
-"aDM" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 1
- },
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/lobby)
"aDO" = (
/turf/open/floor/almayer{
dir = 8;
@@ -7661,12 +6048,6 @@
icon_state = "plate"
},
/area/almayer/command/lifeboat)
-"aDZ" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
"aEe" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -7676,14 +6057,6 @@
icon_state = "test_floor4"
},
/area/almayer/medical/upper_medical)
-"aEf" = (
-/obj/structure/disposalpipe/junction{
- dir = 4;
- icon_state = "pipe-j2"
- },
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
"aEg" = (
/turf/open/floor/almayer{
icon_state = "redfull"
@@ -7719,12 +6092,6 @@
icon_state = "orange"
},
/area/almayer/engineering/lower)
-"aEp" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/stern_hallway)
"aEr" = (
/obj/structure/largecrate/random/barrel/yellow,
/obj/effect/decal/warning_stripes{
@@ -7776,24 +6143,6 @@
icon_state = "silver"
},
/area/almayer/command/cic)
-"aEI" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
-"aEK" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"aEM" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/machinery/computer/emails,
@@ -7833,21 +6182,9 @@
"aET" = (
/turf/closed/wall/almayer,
/area/almayer/living/captain_mess)
-"aEV" = (
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
"aEW" = (
/turf/closed/wall/almayer,
/area/almayer/living/numbertwobunks)
-"aEX" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "bluecorner"
- },
-/area/almayer/hallways/aft_hallway)
"aEZ" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/box/gloves{
@@ -8035,15 +6372,15 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering)
-"aFF" = (
-/obj/structure/machinery/light{
- dir = 4
+"aFG" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ id = "vehicle1door";
+ name = "Vehicle Bay One"
},
/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
+ icon_state = "plate"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/lower/vehiclehangar)
"aFI" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -8066,23 +6403,6 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/north1)
-"aFV" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 1
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/stern_hallway)
-"aFW" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/stern_hallway)
"aGa" = (
/obj/structure/surface/rack,
/obj/effect/spawner/random/toolbox,
@@ -8103,22 +6423,6 @@
icon_state = "plate"
},
/area/almayer/command/cichallway)
-"aGc" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 2
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
-"aGd" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "greencorner"
- },
-/area/almayer/hallways/aft_hallway)
"aGg" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -8213,19 +6517,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/upper/starboard)
-"aGC" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
-"aGD" = (
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"aGH" = (
/obj/structure/machinery/computer/ordercomp,
/turf/open/floor/almayer{
@@ -8235,12 +6526,6 @@
"aGN" = (
/turf/open/floor/almayer,
/area/almayer/command/computerlab)
-"aGO" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
"aGP" = (
/obj/effect/decal/warning_stripes{
icon_state = "NW-out";
@@ -8434,12 +6719,6 @@
icon_state = "silver"
},
/area/almayer/engineering/port_atmos)
-"aHQ" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"aHR" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -8498,12 +6777,6 @@
"aId" = (
/turf/open/floor/almayer,
/area/almayer/engineering/lower/workshop/hangar)
-"aIe" = (
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"aIf" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -8585,6 +6858,13 @@
/obj/structure/flora/bush/ausbushes/ppflowers,
/turf/open/floor/grass,
/area/almayer/living/starboard_garden)
+"aIy" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"aIB" = (
/obj/structure/flora/bush/ausbushes/var3/fullgrass,
/turf/open/floor/grass,
@@ -8645,20 +6925,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/numbertwobunks)
-"aIS" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- icon_state = "pipe-c"
- },
-/obj/structure/sign/safety/autoopenclose{
- pixel_x = 7;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"aIT" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -8696,6 +6962,22 @@
icon_state = "plate"
},
/area/almayer/living/tankerbunks)
+"aIY" = (
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
+ },
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 8;
+ pixel_y = -2
+ },
+/obj/item/storage/firstaid/regular,
+/obj/item/reagent_container/spray/cleaner,
+/turf/open/floor/almayer{
+ icon_state = "sterile_green_side"
+ },
+/area/almayer/shipboard/brig/medical)
"aJc" = (
/obj/structure/machinery/door/airlock/almayer/command{
name = "\improper Commanding Officer's Mess"
@@ -8816,12 +7098,6 @@
icon_state = "kitchen"
},
/area/almayer/engineering/upper_engineering)
-"aJs" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
"aJw" = (
/obj/structure/machinery/light{
dir = 4
@@ -8975,9 +7251,7 @@
unacidable = 0;
unslashable = 0
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"aKu" = (
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -9127,18 +7401,42 @@
icon_state = "dark_sterile"
},
/area/almayer/living/numbertwobunks)
-"aLB" = (
-/turf/closed/wall/almayer,
-/area/almayer/hallways/starboard_hallway)
+"aLx" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/obj/structure/machinery/door_control{
+ id = "DeployWorkR";
+ name = "Workshop Shutters";
+ pixel_x = -7;
+ pixel_y = -26;
+ req_one_access_txt = "3;22;2;19;7"
+ },
+/obj/structure/surface/rack,
+/obj/item/rappel_harness{
+ pixel_y = 8
+ },
+/obj/item/rappel_harness,
+/obj/item/rappel_harness{
+ pixel_y = -6
+ },
+/obj/structure/sign/safety/bulkhead_door{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "silverfull"
+ },
+/area/almayer/hallways/lower/repair_bay)
"aLE" = (
/obj/docking_port/stationary/emergency_response/external/hangar_starboard{
dwidth = 8
},
/turf/open/space,
/area/space)
-"aLG" = (
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"aLJ" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 6
@@ -9183,6 +7481,9 @@
pixel_y = 16
},
/obj/item/clothing/accessory/stethoscope,
+/obj/structure/closet/secure_closet/professor_dummy{
+ pixel_x = -32
+ },
/turf/open/floor/almayer{
dir = 8;
icon_state = "sterile_green_corner"
@@ -9233,15 +7534,6 @@
icon_state = "mono"
},
/area/almayer/medical/hydroponics)
-"aMl" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"aMm" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/crowbar,
@@ -9358,12 +7650,6 @@
/obj/item/ammo_casing/bullet,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_p)
-"aMM" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/hallways/starboard_hallway)
"aMO" = (
/obj/structure/extinguisher_cabinet{
pixel_x = 26
@@ -9395,12 +7681,6 @@
icon_state = "red"
},
/area/almayer/command/lifeboat)
-"aMV" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/hallways/starboard_hallway)
"aMY" = (
/obj/effect/decal/cleanable/blood,
/turf/open/floor/almayer{
@@ -9428,14 +7708,6 @@
"aNm" = (
/turf/open/floor/wood/ship,
/area/almayer/living/chapel)
-"aNn" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"aNr" = (
/obj/effect/landmark/start/chef,
/turf/open/floor/plating/plating_catwalk,
@@ -9462,21 +7734,12 @@
icon_state = "cargo_arrow"
},
/area/almayer/squads/alpha_bravo_shared)
-"aNG" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "redcorner"
- },
-/area/almayer/hallways/starboard_hallway)
"aNI" = (
/obj/structure/machinery/door/airlock/almayer/marine/alpha/tl,
/turf/open/floor/almayer{
icon_state = "test_floor4"
},
/area/almayer/squads/alpha)
-"aNO" = (
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"aNQ" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -9500,6 +7763,11 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/alpha)
+"aNW" = (
+/turf/open/floor/almayer{
+ icon_state = "redcorner"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"aNY" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -9564,6 +7832,18 @@
icon_state = "cargo"
},
/area/almayer/command/telecomms)
+"aOw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"aOy" = (
/obj/structure/machinery/light{
dir = 1
@@ -9670,15 +7950,6 @@
icon_state = "plate"
},
/area/almayer/shipboard/starboard_point_defense)
-"aOP" = (
-/obj/structure/machinery/camera/autoname/almayer{
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"aOQ" = (
/obj/structure/closet/crate,
/obj/item/storage/briefcase/inflatable,
@@ -9693,12 +7964,6 @@
"aOR" = (
/turf/open/floor/almayer,
/area/almayer/living/chapel)
-"aOS" = (
-/obj/structure/machinery/camera/autoname/almayer{
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
"aOU" = (
/obj/structure/platform{
dir = 4
@@ -9738,15 +8003,6 @@
},
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
-"aPb" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"aPe" = (
/obj/structure/largecrate/random/case/double,
/obj/structure/sign/safety/bulkhead_door{
@@ -9783,12 +8039,6 @@
icon_state = "plate"
},
/area/almayer/squads/alpha)
-"aPm" = (
-/obj/structure/closet/firecloset,
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/hallways/aft_hallway)
"aPn" = (
/obj/structure/machinery/cm_vending/clothing/marine/bravo{
density = 0;
@@ -9827,9 +8077,6 @@
icon_state = "test_floor4"
},
/area/almayer/command/lifeboat)
-"aPy" = (
-/turf/closed/wall/almayer/outer,
-/area/almayer/hallways/starboard_umbilical)
"aPz" = (
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -9840,6 +8087,15 @@
icon_state = "emerald"
},
/area/almayer/command/cic)
+"aPC" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"aPD" = (
/obj/structure/machinery/photocopier,
/turf/open/floor/almayer{
@@ -9920,17 +8176,6 @@
icon_state = "plating"
},
/area/almayer/engineering/lower/engine_core)
-"aPY" = (
-/obj/structure/machinery/door/airlock/almayer/maint,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_umbilical)
-"aPZ" = (
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_umbilical)
"aQb" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -9950,15 +8195,6 @@
icon_state = "emerald"
},
/area/almayer/command/cic)
-"aQo" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/stern_hallway)
"aQp" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/effect/decal/warning_stripes{
@@ -9990,13 +8226,6 @@
icon_state = "plate"
},
/area/almayer/living/offices)
-"aQt" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
-"aQv" = (
-/turf/closed/wall/almayer,
-/area/almayer/hallways/starboard_umbilical)
"aQy" = (
/obj/structure/transmitter{
dir = 8;
@@ -10135,6 +8364,14 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/upper_engineering)
+"aRl" = (
+/obj/structure/machinery/door_control/cl/office/door{
+ pixel_y = -20
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"aRo" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/disposalpipe/segment,
@@ -10159,6 +8396,15 @@
icon_state = "plate"
},
/area/almayer/living/bridgebunks)
+"aRr" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"aRt" = (
/turf/open/floor/almayer{
dir = 8;
@@ -10265,6 +8511,22 @@
},
/turf/open/floor/plating/almayer,
/area/almayer/medical/upper_medical)
+"aRL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ dir = 4;
+ id = "southcheckpoint";
+ name = "\improper Checkpoint Shutters"
+ },
+/turf/open/floor/almayer{
+ icon_state = "redfull"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"aRP" = (
/turf/open/floor/almayer{
dir = 1;
@@ -10401,24 +8663,6 @@
icon_state = "kitchen"
},
/area/almayer/living/captain_mess)
-"aSr" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 8;
- name = "ship-grade camera"
- },
-/obj/structure/sign/safety/one{
- pixel_x = 32;
- pixel_y = -8
- },
-/obj/structure/sign/safety/ammunition{
- pixel_x = 32;
- pixel_y = 7
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/hallways/starboard_hallway)
"aSt" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/machinery/chem_dispenser/soda/beer,
@@ -10426,18 +8670,6 @@
icon_state = "kitchen"
},
/area/almayer/living/captain_mess)
-"aSv" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"aSx" = (
/obj/structure/machinery/vending/dinnerware,
/obj/structure/sign/safety/maint{
@@ -10447,18 +8679,6 @@
icon_state = "kitchen"
},
/area/almayer/living/captain_mess)
-"aSy" = (
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"aSz" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
"aSA" = (
/obj/structure/machinery/camera/autoname/almayer{
dir = 4;
@@ -10469,20 +8689,6 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/north1)
-"aSB" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"aSC" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"aSE" = (
/obj/structure/bed/chair{
dir = 4
@@ -10591,16 +8797,6 @@
icon_state = "green"
},
/area/almayer/living/offices)
-"aTq" = (
-/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
"aTr" = (
/obj/structure/bed/chair/office/dark{
dir = 8
@@ -10694,35 +8890,6 @@
icon_state = "kitchen"
},
/area/almayer/living/captain_mess)
-"aTL" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
-"aTQ" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 8;
- name = "ship-grade camera"
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
-"aTS" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/stern_hallway)
"aTT" = (
/obj/structure/desertdam/decals/road_edge{
icon_state = "road_edge_decal3";
@@ -10976,6 +9143,12 @@
icon_state = "bluefull"
},
/area/almayer/living/captain_mess)
+"aVm" = (
+/obj/structure/closet/firecloset/full,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"aVo" = (
/obj/structure/machinery/light{
dir = 1
@@ -11042,6 +9215,13 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/north1)
+"aVM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_aft_hallway)
"aVR" = (
/obj/structure/ladder{
height = 2;
@@ -11095,12 +9275,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/bridgebunks)
-"aVY" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"aWb" = (
/obj/structure/machinery/computer/working_joe{
dir = 4;
@@ -11127,23 +9301,6 @@
icon_state = "silver"
},
/area/almayer/engineering/port_atmos)
-"aWd" = (
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/stern_hallway)
-"aWf" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"aWg" = (
/obj/structure/machinery/door_control{
id = "CMP Office Shutters";
@@ -11170,15 +9327,6 @@
icon_state = "plate"
},
/area/almayer/living/bridgebunks)
-"aWl" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"aWm" = (
/obj/structure/machinery/light{
dir = 1
@@ -11280,23 +9428,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/offices)
-"aWH" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
-"aWM" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
-"aWR" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"aWT" = (
/obj/structure/machinery/door/airlock/almayer/maint{
dir = 1
@@ -11390,47 +9521,12 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/upper/port)
-"aXE" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
-"aXS" = (
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
-"aXT" = (
-/obj/structure/pipes/standard/cap/hidden{
- dir = 4
- },
-/obj/structure/sign/safety/life_support{
- pixel_x = 8;
- pixel_y = -25
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/stern_hallway)
"aYd" = (
/obj/structure/dropship_equipment/medevac_system,
/turf/open/floor/almayer{
icon_state = "cargo"
},
/area/almayer/hallways/hangar)
-"aYj" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/stern_hallway)
-"aYn" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/aft_hallway)
"aYq" = (
/turf/open/floor/almayer{
dir = 6;
@@ -11473,15 +9569,6 @@
icon_state = "test_floor4"
},
/area/almayer/hallways/hangar)
-"aYD" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/stern_hallway)
"aYE" = (
/obj/structure/platform,
/obj/structure/platform{
@@ -11500,23 +9587,6 @@
/obj/structure/safe/cl_office,
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
-"aYI" = (
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/obj/structure/disposalpipe/segment{
- dir = 1;
- icon_state = "pipe-c"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
-"aYO" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"aYQ" = (
/obj/structure/machinery/bioprinter{
stored_metal = 125
@@ -11534,65 +9604,12 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/operating_room_two)
-"aYT" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"aYU" = (
/obj/effect/landmark/yautja_teleport,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
-"aYV" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
-"aYW" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
-"aYX" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/vents/pump/on,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
-"aYY" = (
-/obj/structure/disposalpipe/junction{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
-"aYZ" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"aZe" = (
/obj/structure/machinery/alarm/almayer{
dir = 1
@@ -11612,34 +9629,6 @@
icon_state = "plate"
},
/area/almayer/squads/alpha)
-"aZg" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
-"aZi" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
-"aZl" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
- },
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"aZr" = (
/obj/structure/machinery/status_display{
pixel_y = 30
@@ -11670,10 +9659,6 @@
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/lifeboat_pumps/south1)
-"aZB" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_umbilical)
"aZC" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -11681,10 +9666,6 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south1)
-"aZE" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
"aZF" = (
/obj/effect/step_trigger/teleporter_vector{
name = "Almayer_Down4";
@@ -11695,14 +9676,6 @@
allow_construction = 0
},
/area/almayer/stair_clone/upper)
-"aZH" = (
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/obj/structure/disposalpipe/segment{
- dir = 8;
- icon_state = "pipe-c"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/stern_hallway)
"aZI" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/almayer{
@@ -11787,10 +9760,6 @@
icon_state = "test_floor4"
},
/area/almayer/hallways/hangar)
-"bad" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"baf" = (
/obj/structure/barricade/handrail/medical,
/turf/open/floor/almayer{
@@ -11804,38 +9773,6 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/operating_room_one)
-"bai" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 5
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
-"bal" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
-"baq" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
-"bar" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 5
- },
-/obj/structure/sign/safety/maint{
- pixel_x = 8;
- pixel_y = -32
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"bat" = (
/obj/structure/machinery/door_control{
id = "ARES Mainframe Right";
@@ -11844,31 +9781,11 @@
pixel_y = -24;
req_one_access_txt = "200;91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"baw" = (
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
-"bax" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
-"baB" = (
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"baG" = (
/obj/structure/largecrate/random/barrel/blue,
/turf/open/floor/almayer,
@@ -11916,6 +9833,14 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
+"baW" = (
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/obj/structure/disposalpipe/junction{
+ dir = 4;
+ icon_state = "pipe-j2"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"baX" = (
/obj/structure/machinery/landinglight/ds1/delaythree{
dir = 8
@@ -11961,83 +9886,18 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"bbg" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- icon_state = "pipe-c"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
-"bbh" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/machinery/light,
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"bbi" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
-"bbj" = (
-/obj/structure/disposalpipe/segment{
- dir = 8;
- icon_state = "pipe-c"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
-"bbk" = (
-/obj/structure/barricade/handrail{
- dir = 8
- },
-/obj/structure/barricade/handrail{
- dir = 1;
- pixel_y = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor5"
- },
-/area/almayer/hallways/starboard_hallway)
-"bbl" = (
-/obj/structure/barricade/handrail{
+/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
dir = 1;
- pixel_y = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor5"
- },
-/area/almayer/hallways/starboard_hallway)
-"bbm" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "cargo_arrow"
- },
-/area/almayer/hallways/starboard_hallway)
-"bbn" = (
-/obj/structure/machinery/camera/autoname/almayer{
- name = "ship-grade camera"
- },
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
-/obj/structure/sign/safety/hazard{
- pixel_y = 32
- },
-/obj/structure/sign/safety/airlock{
- pixel_x = 15;
- pixel_y = 32
+ name = "\improper Brig"
},
-/obj/effect/decal/warning_stripes{
- icon_state = "NE-out";
- pixel_y = 1
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
},
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/starboard_umbilical)
+/area/almayer/shipboard/brig/medical)
"bbr" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/firedoor/border_only/almayer{
@@ -12075,43 +9935,6 @@
icon_state = "plating"
},
/area/almayer/shipboard/starboard_point_defense)
-"bbB" = (
-/obj/effect/projector{
- name = "Almayer_Up1";
- vector_x = -19;
- vector_y = 98
- },
-/turf/open/floor/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/starboard_hallway)
-"bbC" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/effect/projector{
- name = "Almayer_Up1";
- vector_x = -19;
- vector_y = 98
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
-"bbL" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
-"bbO" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
"bbS" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/starboard_point_defense)
@@ -12641,11 +10464,6 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/operating_room_one)
-"beB" = (
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"beE" = (
/obj/structure/platform{
dir = 1
@@ -12731,6 +10549,31 @@
},
/turf/open/floor/almayer,
/area/almayer/living/chapel)
+"bfb" = (
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"bfd" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
+"bff" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"bfl" = (
/turf/open/floor/almayer{
dir = 5;
@@ -12868,6 +10711,10 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
+"bfO" = (
+/obj/structure/pipes/vents/pump/on,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"bfV" = (
/obj/structure/machinery/landinglight/ds2{
dir = 8
@@ -12889,11 +10736,12 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"bga" = (
+"bgh" = (
/turf/open/floor/almayer{
- icon_state = "redcorner"
+ dir = 9;
+ icon_state = "silver"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"bgj" = (
/obj/structure/machinery/landinglight/ds1{
dir = 8
@@ -13129,23 +10977,6 @@
icon_state = "silver"
},
/area/almayer/living/cryo_cells)
-"bhh" = (
-/obj/structure/machinery/door/poddoor/almayer{
- id = "n_umbilical";
- name = "\improper Umbillical Airlock";
- unacidable = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_umbilical)
-"bhn" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 8
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"bho" = (
/obj/structure/machinery/computer/med_data,
/turf/open/floor/almayer{
@@ -13240,6 +11071,15 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
+"bij" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"biq" = (
/obj/structure/surface/table/almayer,
/obj/item/reagent_container/glass/beaker/large,
@@ -13256,12 +11096,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/chemistry)
-"bit" = (
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"biu" = (
/obj/structure/machinery/door/airlock/almayer/medical/glass{
access_modified = 1;
@@ -13293,6 +11127,15 @@
"biA" = (
/turf/closed/wall/almayer/white,
/area/almayer/medical/operating_room_three)
+"biB" = (
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"biC" = (
/obj/structure/largecrate/random/case,
/obj/structure/machinery/access_button/airlock_exterior,
@@ -13415,58 +11258,6 @@
icon_state = "cargo_arrow"
},
/area/almayer/living/offices)
-"bjJ" = (
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
-"bjL" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/starboard_umbilical)
-"bjM" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_umbilical)
-"bjN" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/starboard_umbilical)
-"bjO" = (
-/obj/structure/machinery/power/apc/almayer{
- dir = 1
- },
-/obj/structure/sign/safety/hazard{
- pixel_y = 32
- },
-/obj/structure/sign/safety/airlock{
- pixel_x = 15;
- pixel_y = 32
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
- pixel_y = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_umbilical)
"bjQ" = (
/obj/structure/machinery/shower{
dir = 8
@@ -13486,6 +11277,12 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
+"bkb" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"bkd" = (
/obj/structure/machinery/landinglight/ds2/delaytwo{
dir = 8
@@ -13552,16 +11349,6 @@
"bkA" = (
/turf/closed/wall/almayer/white,
/area/almayer/medical/chemistry)
-"bkD" = (
-/obj/structure/machinery/door/poddoor/railing{
- dir = 2;
- id = "vehicle_elevator_railing"
- },
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/vehiclehangar)
"bkE" = (
/obj/structure/window/framed/almayer/white,
/obj/structure/machinery/door/firedoor/border_only/almayer{
@@ -13600,18 +11387,17 @@
icon_state = "sterile_green"
},
/area/almayer/medical/lockerroom)
-"bkQ" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
+"bkS" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
},
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
},
-/area/almayer/hallways/aft_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"bkT" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -13635,24 +11421,6 @@
icon_state = "silver"
},
/area/almayer/living/cryo_cells)
-"bkY" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
-"blb" = (
-/obj/structure/sign/safety/hvac_old{
- pixel_x = 15;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/stern_hallway)
"blf" = (
/obj/structure/machinery/power/apc/almayer{
dir = 1
@@ -13898,12 +11666,6 @@
},
/turf/open/floor/almayer,
/area/almayer/living/briefing)
-"bmu" = (
-/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_umbilical)
"bmv" = (
/obj/structure/machinery/door/airlock/almayer/marine/requisitions{
dir = 2;
@@ -13918,21 +11680,6 @@
icon_state = "test_floor4"
},
/area/almayer/squads/req)
-"bmw" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/starboard_umbilical)
-"bmx" = (
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_umbilical)
-"bmy" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/starboard_umbilical)
"bmz" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/kitchen/utensil/spoon{
@@ -14124,15 +11871,6 @@
icon_state = "cargo_arrow"
},
/area/almayer/squads/bravo)
-"bnD" = (
-/obj/structure/disposalpipe/junction{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
"bnF" = (
/obj/structure/machinery/cryopod{
pixel_y = 6
@@ -14234,6 +11972,22 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/operating_room_four)
+"bom" = (
+/obj/structure/sign/safety/south{
+ pixel_x = -17;
+ pixel_y = 8
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
+"bop" = (
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "cargo"
+ },
+/area/almayer/engineering/upper_engineering/port)
"boq" = (
/obj/structure/bed/chair/comfy/alpha,
/turf/open/floor/almayer{
@@ -14243,26 +11997,6 @@
"bos" = (
/turf/closed/wall/almayer,
/area/almayer/maint/lower/s_bow)
-"bot" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/effect/spawner/random/toolbox,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_umbilical)
-"bou" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/light{
- dir = 4
- },
-/obj/item/tank/emergency_oxygen/double,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_umbilical)
"boy" = (
/obj/effect/decal/warning_stripes{
icon_state = "SE-out"
@@ -14471,7 +12205,7 @@
/turf/open/floor/almayer,
/area/almayer/squads/req)
"bpR" = (
-/turf/open/floor/almayer/empty,
+/turf/open/floor/almayer/empty/requisitions,
/area/supply/station)
"bpS" = (
/obj/structure/machinery/door/poddoor/railing{
@@ -14487,26 +12221,30 @@
icon_state = "green"
},
/area/almayer/squads/req)
-"bpU" = (
-/obj/structure/surface/table/almayer,
-/obj/item/storage/firstaid/o2,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_umbilical)
"bpV" = (
/obj/effect/landmark/ert_spawns/distress_cryo,
/turf/open/floor/almayer{
icon_state = "cargo"
},
/area/almayer/living/cryo_cells)
-"bpW" = (
-/obj/structure/surface/table/almayer,
-/obj/effect/spawner/random/technology_scanner,
+"bqc" = (
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"bqg" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/hallways/starboard_umbilical)
+/area/almayer/hallways/lower/starboard_fore_hallway)
"bqm" = (
/obj/structure/closet/boxinggloves,
/turf/open/floor/almayer{
@@ -14556,14 +12294,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lockerroom)
-"bqP" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 5"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
"bqR" = (
/turf/open/floor/almayer{
dir = 6;
@@ -14655,6 +12385,12 @@
icon_state = "test_floor5"
},
/area/almayer/squads/req)
+"brm" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"brn" = (
/obj/structure/machinery/door/airlock/almayer/marine/bravo/smart,
/turf/open/floor/almayer{
@@ -14665,6 +12401,11 @@
/obj/structure/supply_drop/bravo,
/turf/open/floor/plating,
/area/almayer/squads/req)
+"brq" = (
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"brr" = (
/obj/structure/machinery/cm_vending/clothing/medic/bravo,
/turf/open/floor/almayer{
@@ -14721,31 +12462,6 @@
icon_state = "plate"
},
/area/almayer/squads/bravo)
-"brO" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/starboard_umbilical)
-"brP" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_umbilical)
-"brQ" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/starboard_umbilical)
"brS" = (
/obj/structure/bed,
/obj/item/bedsheet/brown,
@@ -14772,18 +12488,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
-"bsk" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"bsp" = (
/obj/structure/sink{
dir = 4;
@@ -14836,6 +12540,15 @@
icon_state = "plate"
},
/area/almayer/living/gym)
+"bsF" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 1;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"bsG" = (
/obj/structure/machinery/disposal{
density = 0;
@@ -14862,7 +12575,7 @@
/area/almayer/squads/req)
"bsK" = (
/obj/effect/landmark/supply_elevator,
-/turf/open/floor/almayer/empty,
+/turf/open/floor/almayer/empty/requisitions,
/area/supply/station)
"bsL" = (
/obj/structure/machinery/door/poddoor/railing{
@@ -14919,15 +12632,6 @@
icon_state = "plate"
},
/area/almayer/squads/bravo)
-"bsT" = (
-/obj/structure/pipes/vents/scrubber{
- dir = 1
- },
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"bsU" = (
/obj/structure/surface/table/almayer,
/obj/item/trash/USCMtray{
@@ -14938,24 +12642,12 @@
icon_state = "red"
},
/area/almayer/squads/alpha)
-"bsV" = (
-/obj/structure/pipes/vents/pump{
- dir = 8
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"bsW" = (
/obj/structure/machinery/cm_vending/clothing/leader/bravo,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/squads/bravo)
-"bsX" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/starboard_hallway)
"btc" = (
/obj/structure/bed/chair{
dir = 8;
@@ -14979,28 +12671,6 @@
icon_state = "silver"
},
/area/almayer/command/computerlab)
-"btn" = (
-/obj/item/device/camera{
- pixel_x = 4;
- pixel_y = 8
- },
-/obj/structure/surface/table/almayer,
-/obj/item/device/camera_film{
- pixel_x = 4;
- pixel_y = -2
- },
-/obj/item/device/camera_film,
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
-"btp" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_umbilical)
"btr" = (
/obj/structure/closet/boxinggloves,
/obj/structure/machinery/light,
@@ -15097,11 +12767,6 @@
icon_state = "red"
},
/area/almayer/living/briefing)
-"bua" = (
-/turf/open/floor/almayer{
- icon_state = "redcorner"
- },
-/area/almayer/shipboard/brig/main_office)
"buc" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/almayer{
@@ -15177,17 +12842,6 @@
icon_state = "green"
},
/area/almayer/living/offices)
-"buH" = (
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
-"buI" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
-"buJ" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"buM" = (
/obj/structure/machinery/cm_vending/clothing/smartgun/bravo,
/turf/open/floor/almayer{
@@ -15219,6 +12873,22 @@
icon_state = "plate"
},
/area/almayer/squads/bravo)
+"buY" = (
+/obj/structure/stairs{
+ dir = 1
+ },
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/effect/projector{
+ name = "Almayer_Up4";
+ vector_x = -19;
+ vector_y = 104
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"bvb" = (
/obj/structure/machinery/light{
dir = 8
@@ -15264,6 +12934,19 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/operating_room_one)
+"bvD" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"bvF" = (
/turf/open/floor/almayer{
dir = 8;
@@ -15281,23 +12964,6 @@
icon_state = "plate"
},
/area/almayer/shipboard/brig/general_equipment)
-"bvT" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_umbilical)
-"bvV" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_umbilical)
"bvX" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/firedoor/border_only/almayer{
@@ -15317,11 +12983,6 @@
icon_state = "test_floor5"
},
/area/almayer/squads/req)
-"bwd" = (
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"bwe" = (
/obj/structure/window/framed/almayer,
/turf/open/floor/almayer{
@@ -15402,6 +13063,29 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/hallways/hangar)
+"bwv" = (
+/obj/structure/disposalpipe/segment,
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_x = -28
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
+"bww" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"bwG" = (
/turf/closed/wall/almayer,
/area/almayer/maint/hull/lower/l_m_s)
@@ -15415,6 +13099,21 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/lower_medical_medbay)
+"bwN" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
+"bwP" = (
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"bwR" = (
/obj/structure/surface/table/reinforced/prison,
/obj/structure/machinery/computer/med_data/laptop{
@@ -15440,18 +13139,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
-"bxd" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"bxf" = (
/obj/effect/decal/warning_stripes{
icon_state = "NE-out"
@@ -15488,13 +13175,6 @@
icon_state = "mono"
},
/area/almayer/squads/req)
-"bxk" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 1
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"bxm" = (
/turf/open/floor/almayer{
dir = 4;
@@ -15507,12 +13187,14 @@
icon_state = "redfull"
},
/area/almayer/living/cryo_cells)
-"bxx" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
+"bxt" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment{
+ dir = 8;
+ icon_state = "pipe-c"
},
-/area/almayer/hallways/starboard_hallway)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"bxA" = (
/obj/structure/machinery/power/apc/almayer/hardened,
/obj/effect/decal/warning_stripes{
@@ -15551,20 +13233,32 @@
icon_state = "dark_sterile"
},
/area/almayer/living/port_emb)
-"bxD" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
+"bxE" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/obj/structure/machinery/light,
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "red"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/shipboard/brig/starboard_hallway)
"bxN" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 5
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/lower/workshop)
+"bxV" = (
+/obj/structure/sign/safety/ladder{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"bxY" = (
/obj/structure/surface/table/almayer,
/obj/structure/flora/pottedplant{
@@ -15645,15 +13339,6 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"bys" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"byt" = (
/obj/structure/surface/rack,
/obj/item/tool/crowbar,
@@ -15690,22 +13375,6 @@
icon_state = "silver"
},
/area/almayer/living/cryo_cells)
-"byC" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 4;
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
-"byF" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"byH" = (
/obj/structure/bed/sofa/south/white/right{
pixel_y = 16
@@ -15715,17 +13384,6 @@
icon_state = "silver"
},
/area/almayer/maint/hull/upper/u_m_p)
-"byI" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"bzg" = (
/obj/structure/pipes/vents/pump{
dir = 8;
@@ -15741,9 +13399,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/operating_room_four)
-"bzy" = (
-/turf/closed/wall/almayer,
-/area/almayer/hallways/vehiclehangar)
"bzz" = (
/obj/structure/disposalpipe/trunk{
dir = 4
@@ -15751,11 +13406,6 @@
/obj/structure/machinery/disposal,
/turf/open/floor/almayer,
/area/almayer/shipboard/starboard_missiles)
-"bzA" = (
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"bzD" = (
/obj/structure/machinery/door/poddoor/almayer{
id = "tcomms"
@@ -15764,13 +13414,6 @@
icon_state = "test_floor4"
},
/area/almayer/command/telecomms)
-"bzH" = (
-/obj/structure/surface/rack,
-/obj/effect/spawner/random/toolbox,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"bzI" = (
/obj/effect/decal/warning_stripes{
icon_state = "W"
@@ -15782,10 +13425,6 @@
icon_state = "silver"
},
/area/almayer/living/cryo_cells)
-"bzK" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"bzQ" = (
/obj/structure/largecrate/random/case,
/turf/open/floor/plating/plating_catwalk,
@@ -15804,34 +13443,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/chemistry)
-"bzV" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
-"bzW" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
-"bzY" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
-"bAa" = (
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/starboard_hallway)
"bAd" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -15849,12 +13460,6 @@
dir = 1
},
/area/almayer/command/lifeboat)
-"bAg" = (
-/obj/structure/closet/firecloset,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"bAh" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cargo_container/wy/mid,
@@ -15864,12 +13469,6 @@
/obj/structure/cargo_container/wy/right,
/turf/open/floor/almayer,
/area/almayer/hallways/hangar)
-"bAr" = (
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"bAs" = (
/turf/closed/wall/almayer/outer,
/area/almayer/shipboard/weapon_room)
@@ -15968,17 +13567,6 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"bAV" = (
-/turf/open/floor/almayer{
- icon_state = "greencorner"
- },
-/area/almayer/hallways/starboard_hallway)
-"bAX" = (
-/obj/structure/closet/emcloset,
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/hallways/starboard_hallway)
"bAY" = (
/obj/effect/decal/warning_stripes{
icon_state = "NW-out"
@@ -15997,21 +13585,6 @@
icon_state = "plate"
},
/area/almayer/living/auxiliary_officer_office)
-"bBa" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/port_hallway)
-"bBb" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/closet/firecloset,
-/turf/open/floor/almayer{
- icon_state = "greencorner"
- },
-/area/almayer/hallways/starboard_hallway)
"bBc" = (
/obj/structure/surface/rack,
/turf/open/floor/almayer{
@@ -16044,14 +13617,6 @@
icon_state = "cargo"
},
/area/almayer/squads/alpha)
-"bBh" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"bBl" = (
/obj/structure/machinery/light{
dir = 4
@@ -16105,9 +13670,6 @@
"bBA" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/shipboard/weapon_room)
-"bBB" = (
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/vehiclehangar)
"bBC" = (
/obj/structure/bed/chair{
dir = 4
@@ -16155,6 +13717,12 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
+"bBR" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"bBU" = (
/obj/structure/sign/safety/security{
pixel_x = 32
@@ -16198,21 +13766,6 @@
/obj/structure/window/framed/almayer,
/turf/open/floor/plating,
/area/almayer/living/briefing)
-"bCi" = (
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
-"bCj" = (
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- dir = 4;
- id = "southcheckpoint";
- name = "\improper Checkpoint Shutters"
- },
-/turf/open/floor/almayer{
- icon_state = "redfull"
- },
-/area/almayer/hallways/port_hallway)
"bCk" = (
/obj/structure/largecrate/random/secure,
/turf/open/floor/plating/plating_catwalk,
@@ -16240,17 +13793,6 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/operating_room_three)
-"bCo" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
"bCu" = (
/obj/structure/bed/chair/comfy/alpha{
dir = 4
@@ -16315,16 +13857,6 @@
icon_state = "silver"
},
/area/almayer/living/cryo_cells)
-"bCE" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 8
- },
-/obj/structure/disposalpipe/junction{
- dir = 2;
- icon_state = "pipe-j2"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"bCG" = (
/obj/structure/disposalpipe/segment{
dir = 8;
@@ -16367,15 +13899,6 @@
icon_state = "red"
},
/area/almayer/squads/alpha)
-"bCW" = (
-/obj/structure/machinery/power/apc/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/starboard_hallway)
"bCY" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -16392,6 +13915,11 @@
icon_state = "plate"
},
/area/almayer/shipboard/weapon_room)
+"bDi" = (
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"bDn" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/closed/wall/almayer,
@@ -16407,22 +13935,6 @@
icon_state = "sterile_green"
},
/area/almayer/medical/lockerroom)
-"bDx" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- dir = 4;
- id = "southcheckpoint";
- name = "\improper Checkpoint Shutters"
- },
-/turf/open/floor/almayer{
- icon_state = "redfull"
- },
-/area/almayer/hallways/port_hallway)
"bDD" = (
/obj/structure/bed/chair{
dir = 8
@@ -16453,7 +13965,7 @@
access_modified = 1;
dir = 1;
name = "\improper Auxiliary Combat Support Secondary Preparations";
- req_one_access = "19;27;22"
+ req_one_access_txt = "19;27;22"
},
/turf/open/floor/almayer{
icon_state = "plate"
@@ -16618,6 +14130,16 @@
},
/turf/open/floor/plating,
/area/almayer/squads/req)
+"bEk" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 2
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"bEl" = (
/obj/structure/machinery/computer/supply_drop_console/limited,
/turf/closed/wall/almayer,
@@ -16674,14 +14196,6 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/weapon_room)
-"bEz" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"bEA" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -16740,16 +14254,6 @@
icon_state = "red"
},
/area/almayer/squads/alpha)
-"bEH" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/starboard_hallway)
"bEK" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -16938,10 +14442,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/starboard)
-"bFu" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"bFA" = (
/obj/structure/machinery/firealarm{
pixel_y = 28
@@ -16951,6 +14451,15 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
+"bFB" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"bFC" = (
/obj/structure/machinery/light{
dir = 1
@@ -16973,6 +14482,14 @@
/obj/docking_port/stationary/marine_dropship/almayer_hangar_1,
/turf/open/floor/plating,
/area/almayer/hallways/hangar)
+"bFX" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"bGa" = (
/obj/effect/step_trigger/clone_cleaner,
/obj/effect/decal/warning_stripes{
@@ -16986,9 +14503,6 @@
icon_state = "mono"
},
/area/almayer/hallways/upper/starboard)
-"bGb" = (
-/turf/closed/wall/almayer,
-/area/almayer/hallways/port_hallway)
"bGc" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -16998,60 +14512,6 @@
icon_state = "red"
},
/area/almayer/command/lifeboat)
-"bGe" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
-"bGg" = (
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
-"bGh" = (
-/obj/structure/barricade/handrail{
- dir = 8
- },
-/obj/structure/barricade/handrail,
-/turf/open/floor/almayer{
- icon_state = "test_floor5"
- },
-/area/almayer/hallways/port_hallway)
-"bGi" = (
-/obj/structure/barricade/handrail,
-/turf/open/floor/almayer{
- icon_state = "test_floor5"
- },
-/area/almayer/hallways/port_hallway)
-"bGj" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/obj/structure/barricade/handrail,
-/turf/open/floor/almayer{
- icon_state = "test_floor5"
- },
-/area/almayer/hallways/port_hallway)
-"bGk" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/barricade/handrail,
-/turf/open/floor/almayer{
- icon_state = "test_floor5"
- },
-/area/almayer/hallways/port_hallway)
-"bGl" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "cargo_arrow"
- },
-/area/almayer/hallways/port_hallway)
"bGn" = (
/obj/structure/barricade/plasteel/metal,
/turf/open/floor/almayer{
@@ -17068,17 +14528,6 @@
/obj/structure/window/framed/almayer/hull/hijack_bustable,
/turf/open/floor/plating,
/area/almayer/squads/req)
-"bGp" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/port_umbilical)
"bGq" = (
/obj/structure/machinery/light,
/obj/effect/decal/warning_stripes{
@@ -17233,37 +14682,10 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"bGT" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/machinery/door/poddoor/almayer{
- dir = 4;
- id = "hangarentrancesouth";
- name = "\improper South Hangar Podlock"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
"bGU" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/req)
-"bHa" = (
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
-"bHb" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 6
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
-"bHd" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"bHg" = (
/obj/structure/bed,
/turf/open/floor/almayer{
@@ -17309,16 +14731,13 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/navigation)
-"bHt" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
+"bHu" = (
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
+/turf/open/floor/wood/ship,
+/area/almayer/shipboard/brig/warden_office)
"bHB" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -17339,20 +14758,6 @@
icon_state = "plate"
},
/area/almayer/living/bridgebunks)
-"bHH" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/door/poddoor/almayer{
- dir = 4;
- id = "hangarentrancesouth";
- name = "\improper South Hangar Podlock"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
"bHI" = (
/obj/structure/anti_air_cannon,
/obj/structure/surface/table/almayer,
@@ -17360,73 +14765,9 @@
/obj/item/tool/pen,
/turf/open/floor/plating/almayer,
/area/almayer/shipboard/weapon_room)
-"bHL" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"bHP" = (
/turf/open/floor/plating/almayer,
/area/almayer/shipboard/weapon_room)
-"bHT" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
-"bHV" = (
-/obj/structure/disposalpipe/junction{
- dir = 4;
- icon_state = "pipe-j2"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
-"bHW" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
-"bHX" = (
-/obj/structure/pipes/vents/pump{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
-"bHY" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
-"bIb" = (
-/obj/structure/disposalpipe/junction{
- dir = 4;
- icon_state = "pipe-j2"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"bId" = (
/obj/structure/machinery/firealarm{
pixel_y = 28
@@ -17445,16 +14786,11 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/hangar)
-"bIl" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
- },
-/obj/structure/disposalpipe/segment{
- dir = 8;
- icon_state = "pipe-c"
+"bIj" = (
+/turf/open/floor/almayer{
+ icon_state = "emeraldcorner"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/lower/port_midship_hallway)
"bIn" = (
/obj/structure/machinery/computer/cameras/almayer_network,
/obj/structure/surface/table/almayer,
@@ -17483,7 +14819,7 @@
name = "\improper ARES Mainframe Shutters";
plane = -7
},
-/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
+/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{
closed_layer = 3.2;
id = "ARES Emergency";
layer = 3.2;
@@ -17535,16 +14871,6 @@
},
/turf/closed/wall/almayer/reinforced,
/area/almayer/shipboard/navigation)
-"bII" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"bIJ" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -17568,23 +14894,19 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/hydroponics)
-"bIR" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
-"bIS" = (
-/obj/structure/disposalpipe/segment{
- dir = 1;
- icon_state = "pipe-c"
+"bIO" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/effect/step_trigger/clone_cleaner,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ layer = 2.5
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
-"bIT" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "greencorner"
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/lower/port_fore_hallway)
"bIU" = (
/obj/structure/disposalpipe/segment,
/obj/effect/decal/warning_stripes{
@@ -17601,11 +14923,13 @@
icon_state = "orange"
},
/area/almayer/squads/bravo)
-"bJb" = (
-/obj/structure/disposalpipe/junction,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+"bIW" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"bJe" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/explosive/grenade/high_explosive/training,
@@ -17630,21 +14954,6 @@
},
/turf/open/floor/plating,
/area/almayer/living/cryo_cells)
-"bJh" = (
-/turf/closed/wall/almayer,
-/area/almayer/hallways/port_umbilical)
-"bJi" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/starboard_hallway)
"bJl" = (
/obj/structure/machinery/door/airlock/almayer/generic{
access_modified = 1;
@@ -17664,9 +14973,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/auxiliary_officer_office)
-"bJo" = (
-/turf/closed/wall/almayer,
-/area/almayer/hallways/repair_bay)
"bJt" = (
/turf/closed/wall/almayer,
/area/almayer/living/grunt_rnr)
@@ -17683,11 +14989,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
-"bJz" = (
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"bJC" = (
/turf/closed/wall/almayer,
/area/almayer/squads/charlie)
@@ -17710,19 +15011,6 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/bravo)
-"bJO" = (
-/obj/structure/machinery/light/small,
-/obj/structure/sign/safety/nonpress_0g{
- pixel_x = 15;
- pixel_y = -32
- },
-/obj/structure/sign/safety/press_area_ag{
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_umbilical)
"bJS" = (
/obj/structure/surface/rack,
/obj/item/tool/wrench,
@@ -17759,12 +15047,6 @@
icon_state = "red"
},
/area/almayer/shipboard/navigation)
-"bKa" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"bKb" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -17781,12 +15063,6 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/weapon_room)
-"bKc" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = -30
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"bKd" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/hand_labeler,
@@ -17796,36 +15072,21 @@
icon_state = "red"
},
/area/almayer/shipboard/navigation)
-"bKe" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
- },
-/obj/structure/disposalpipe/segment{
- dir = 8;
- icon_state = "pipe-c"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"bKf" = (
/turf/open/floor/almayer{
dir = 5;
icon_state = "red"
},
/area/almayer/shipboard/navigation)
-"bKh" = (
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
-"bKj" = (
-/obj/structure/machinery/gear{
- id = "vehicle_elevator_gears"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
+"bKk" = (
+/obj/item/tool/wrench{
+ pixel_x = -8;
+ pixel_y = 10
},
-/area/almayer/hallways/vehiclehangar)
+/obj/effect/decal/cleanable/blood/oil,
+/obj/structure/prop/mech/hydralic_clamp,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"bKm" = (
/obj/structure/closet/crate/freezer{
desc = "A freezer crate. There is a note attached, it reads: Do not open, property of Pvt. Mendoza."
@@ -17910,12 +15171,15 @@
icon_state = "cargo"
},
/area/almayer/living/cryo_cells)
-"bKE" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
+"bKI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/area/almayer/hallways/starboard_hallway)
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 8
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/starboard_hallway)
"bKJ" = (
/obj/structure/machinery/door/airlock/almayer/maint,
/turf/open/floor/almayer{
@@ -17927,6 +15191,25 @@
/obj/effect/landmark/late_join/charlie,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/charlie)
+"bKN" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
+ dir = 2;
+ name = "\improper Brig Armoury";
+ req_access = null;
+ req_one_access_txt = "1;3";
+ closeOtherId = "brignorth"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"bKP" = (
/obj/structure/machinery/light/small{
dir = 4
@@ -17968,6 +15251,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_s)
+"bLg" = (
+/obj/structure/disposalpipe/junction{
+ dir = 8;
+ icon_state = "pipe-j2"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
+ },
+/turf/open/floor/almayer{
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"bLh" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -18081,24 +15376,6 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/navigation)
-"bLt" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
-"bLu" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/vehiclehangar)
"bLv" = (
/obj/structure/machinery/door_control{
id = "ARES StairsLower";
@@ -18111,9 +15388,9 @@
dir = 8;
pixel_y = 2
},
-/turf/open/floor/almayer/no_build{
- dir = 4;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 4
},
/area/almayer/command/airoom)
"bLw" = (
@@ -18192,25 +15469,6 @@
/obj/item/tool/pen,
/turf/open/floor/almayer,
/area/almayer/living/offices/flight)
-"bLT" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/machinery/door_control{
- id = "hangarentrancesouth";
- name = "South Hangar Shutters";
- pixel_y = 30;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"bLX" = (
/obj/vehicle/powerloader,
/turf/open/floor/almayer{
@@ -18227,6 +15485,20 @@
icon_state = "green"
},
/area/almayer/squads/req)
+"bMf" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = 28
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"bMi" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"bMq" = (
/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep,
/obj/structure/machinery/light{
@@ -18236,12 +15508,6 @@
icon_state = "plate"
},
/area/almayer/squads/charlie_delta_shared)
-"bMt" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "emerald"
- },
-/area/almayer/hallways/port_hallway)
"bMu" = (
/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{
req_access = null;
@@ -18382,6 +15648,22 @@
icon_state = "red"
},
/area/almayer/shipboard/navigation)
+"bMV" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_x = -8;
+ pixel_y = 28
+ },
+/obj/structure/sign/safety/intercom{
+ pixel_x = 14;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "bluecorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"bNa" = (
/obj/structure/surface/table/almayer,
/obj/item/folder/black,
@@ -18483,15 +15765,6 @@
/obj/structure/bed/chair/office/dark,
/turf/open/floor/almayer,
/area/almayer/shipboard/navigation)
-"bNp" = (
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- id = "vehicle1door";
- name = "Vehicle Bay One"
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"bNq" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/wirecutters,
@@ -18501,6 +15774,14 @@
icon_state = "red"
},
/area/almayer/shipboard/navigation)
+"bNr" = (
+/obj/structure/sign/safety/storage{
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"bNs" = (
/obj/structure/bed/chair/office/light{
dir = 8
@@ -18584,6 +15865,16 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/charlie)
+"bNI" = (
+/obj/structure/sign/safety/medical{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"bNL" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -18626,32 +15917,15 @@
icon_state = "red"
},
/area/almayer/shipboard/navigation)
-"bNW" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
- },
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/hallways/vehiclehangar)
-"bOe" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out";
- pixel_x = 1
- },
-/obj/structure/machinery/door_control/railings{
- pixel_y = 24
+"bNT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
-/area/almayer/hallways/vehiclehangar)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"bOq" = (
/obj/structure/prop/almayer/cannon_cables,
/turf/open/floor/almayer{
@@ -18667,12 +15941,15 @@
icon_state = "redcorner"
},
/area/almayer/shipboard/weapon_room)
-"bOv" = (
+"bOw" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
+ },
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "emeraldcorner"
+ icon_state = "plate"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/lower/vehiclehangar)
"bOx" = (
/obj/structure/machinery/door/airlock/almayer/marine/charlie/tl,
/turf/open/floor/almayer{
@@ -18800,11 +16077,6 @@
icon_state = "plating"
},
/area/almayer/shipboard/sea_office)
-"bOX" = (
-/turf/open/floor/almayer{
- icon_state = "emeraldcorner"
- },
-/area/almayer/hallways/port_hallway)
"bOZ" = (
/obj/structure/machinery/light{
dir = 1
@@ -18848,15 +16120,6 @@
icon_state = "red"
},
/area/almayer/shipboard/weapon_room)
-"bPj" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"bPk" = (
/obj/item/roller,
/obj/item/roller,
@@ -19183,56 +16446,20 @@
icon_state = "plate"
},
/area/almayer/squads/bravo)
-"bRs" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/sign/safety/bridge{
- pixel_x = 15;
- pixel_y = -32
- },
-/obj/structure/sign/safety/west{
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/aft_hallway)
-"bRx" = (
-/obj/structure/machinery/door/poddoor/railing{
- id = "vehicle_elevator_railing_aux"
- },
-/obj/structure/machinery/light,
+"bRo" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
-"bRz" = (
-/obj/structure/disposalpipe/segment{
- dir = 1;
- icon_state = "pipe-c"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_umbilical)
-"bRA" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_umbilical)
-"bRD" = (
-/obj/structure/largecrate/random/barrel/red,
+/area/almayer/hallways/lower/port_midship_hallway)
+"bRt" = (
/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/sign/safety/fire_haz{
- pixel_x = 8;
- pixel_y = -32
+ icon_state = "N";
+ pixel_y = 1
},
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "orangecorner"
},
-/area/almayer/hallways/vehiclehangar)
+/area/almayer/hallways/lower/starboard_umbilical)
"bRP" = (
/obj/structure/machinery/body_scanconsole,
/obj/structure/disposalpipe/segment{
@@ -19246,15 +16473,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
-"bRQ" = (
-/obj/structure/sign/safety/hvac_old{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"bRR" = (
/obj/structure/machinery/door/window/eastleft{
req_one_access_txt = "2;21"
@@ -19271,14 +16489,6 @@
icon_state = "test_floor4"
},
/area/almayer/squads/req)
-"bRU" = (
-/obj/structure/machinery/door/airlock/almayer/maint{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/vehiclehangar)
"bRV" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -19311,13 +16521,6 @@
icon_state = "silver"
},
/area/almayer/living/cryo_cells)
-"bSd" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 4;
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"bSe" = (
/turf/open/floor/almayer{
dir = 6;
@@ -19327,22 +16530,6 @@
"bSf" = (
/turf/closed/wall/almayer,
/area/almayer/shipboard/port_point_defense)
-"bSg" = (
-/turf/closed/wall/almayer/outer,
-/area/almayer/hallways/port_umbilical)
-"bSj" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/sign/safety/security{
- pixel_x = 15;
- pixel_y = 32
- },
-/obj/structure/sign/safety/restrictedarea{
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"bSn" = (
/obj/structure/machinery/cm_vending/gear/tl{
density = 0;
@@ -19429,15 +16616,6 @@
icon_state = "mono"
},
/area/almayer/medical/hydroponics)
-"bSY" = (
-/obj/structure/disposalpipe/junction{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"bSZ" = (
/obj/structure/machinery/vending/coffee{
density = 0;
@@ -19522,6 +16700,14 @@
icon_state = "bluecorner"
},
/area/almayer/squads/delta)
+"bTz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"bTA" = (
/turf/open/floor/almayer,
/area/almayer/squads/delta)
@@ -19534,6 +16720,12 @@
icon_state = "blue"
},
/area/almayer/squads/delta)
+"bTD" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"bTE" = (
/turf/open/floor/almayer{
dir = 4;
@@ -19666,28 +16858,6 @@
icon_state = "orangefull"
},
/area/almayer/living/briefing)
-"bUd" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "bluecorner"
- },
-/area/almayer/hallways/port_hallway)
-"bUe" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/machinery/door_control{
- id = "hangarentrancesouth";
- name = "South Hangar Shutters";
- pixel_y = 30;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"bUf" = (
/obj/structure/machinery/light,
/obj/structure/disposalpipe/segment{
@@ -19783,24 +16953,6 @@
icon_state = "test_floor5"
},
/area/almayer/squads/req)
-"bUz" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
-"bUE" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
-"bUF" = (
-/turf/open/floor/almayer{
- icon_state = "bluecorner"
- },
-/area/almayer/hallways/port_hallway)
"bUH" = (
/obj/structure/prop/invuln/overhead_pipe{
pixel_x = 12
@@ -19813,12 +16965,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_p)
-"bUM" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "blue"
- },
-/area/almayer/hallways/port_hallway)
"bUN" = (
/obj/structure/surface/table/almayer,
/obj/item/trash/USCMtray{
@@ -20057,18 +17203,10 @@
icon_state = "plate"
},
/area/almayer/squads/req)
-"bWP" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out"
- },
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
+"bWQ" = (
+/obj/structure/pipes/vents/pump,
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/warden_office)
"bWT" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -20082,18 +17220,6 @@
icon_state = "plate"
},
/area/almayer/living/grunt_rnr)
-"bWV" = (
-/obj/structure/machinery/power/apc/almayer{
- dir = 1
- },
-/obj/structure/sign/safety/rewire{
- pixel_x = 32
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/port_hallway)
"bXe" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/lifeboat_pumps/south2)
@@ -20126,12 +17252,6 @@
icon_state = "plate"
},
/area/almayer/shipboard/navigation)
-"bXs" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
"bXw" = (
/obj/structure/machinery/bioprinter{
stored_metal = 125
@@ -20140,6 +17260,15 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/operating_room_two)
+"bXy" = (
+/obj/structure/machinery/cm_vending/clothing/maintenance_technician,
+/obj/structure/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/engineering/upper_engineering/port)
"bXz" = (
/obj/effect/decal/cleanable/blood/oil,
/turf/open/floor/plating/plating_catwalk,
@@ -20153,12 +17282,6 @@
icon_state = "plate"
},
/area/almayer/squads/req)
-"bXX" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
"bXY" = (
/obj/structure/ladder{
height = 1;
@@ -20172,10 +17295,6 @@
icon_state = "plate"
},
/area/almayer/shipboard/navigation)
-"bXZ" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
"bYa" = (
/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend,
/turf/open/floor/almayer{
@@ -20183,22 +17302,6 @@
icon_state = "green"
},
/area/almayer/squads/req)
-"bYc" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
-"bYe" = (
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/aft_hallway)
-"bYh" = (
-/obj/structure/disposalpipe/junction,
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
"bYn" = (
/turf/closed/wall/almayer/outer,
/area/almayer/engineering/upper_engineering/port)
@@ -20248,16 +17351,6 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
-"bYE" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/port_hallway)
"bYF" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -20341,6 +17434,16 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
+"bZo" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"bZq" = (
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"bZr" = (
/turf/open/floor/almayer{
dir = 1;
@@ -20350,39 +17453,12 @@
"bZw" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/combat_correspondent)
-"bZz" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"bZJ" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/effect/landmark/map_item,
/obj/item/device/binoculars,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/cic)
-"bZK" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
-"bZL" = (
-/obj/structure/machinery/door/poddoor/almayer/open{
- dir = 4;
- id = "Hangar Lockdown";
- name = "\improper Hangar Lockdown Blast Door"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
"bZO" = (
/obj/structure/machinery/light{
dir = 8
@@ -20404,6 +17480,13 @@
icon_state = "plate"
},
/area/almayer/command/lifeboat)
+"bZS" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"bZU" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -20484,12 +17567,6 @@
icon_state = "green"
},
/area/almayer/squads/req)
-"can" = (
-/obj/structure/machinery/conveyor{
- id = "req_belt"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"cap" = (
/obj/structure/surface/rack,
/obj/item/tool/wirecutters,
@@ -20515,14 +17592,6 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"cat" = (
-/obj/structure/machinery/door/poddoor/almayer/open{
- dir = 4;
- id = "Hangar Lockdown";
- name = "\improper Hangar Lockdown Blast Door"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/vehiclehangar)
"cau" = (
/obj/structure/disposalpipe/segment,
/obj/structure/machinery/door/airlock/almayer/security/glass{
@@ -20539,54 +17608,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/cryo_cells)
-"cav" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/port_hallway)
-"cax" = (
-/obj/structure/machinery/camera/autoname/almayer{
- name = "ship-grade camera"
- },
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
-"caC" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/machinery/door/poddoor/almayer/open{
- dir = 4;
- id = "Hangar Lockdown";
- name = "\improper Hangar Lockdown Blast Door"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
-"caD" = (
-/obj/structure/machinery/door/poddoor/almayer/open{
- dir = 4;
- id = "Hangar Lockdown";
- name = "\improper Hangar Lockdown Blast Door"
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"caM" = (
/obj/structure/largecrate/random/barrel/blue,
/turf/open/floor/almayer{
@@ -20689,12 +17710,6 @@
icon_state = "silver"
},
/area/almayer/command/computerlab)
-"cbr" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silvercorner"
- },
-/area/almayer/hallways/aft_hallway)
"cbu" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
layer = 1.9
@@ -20709,122 +17724,25 @@
icon_state = "test_floor4"
},
/area/almayer/medical/lower_medical_medbay)
-"cbv" = (
+"cbK" = (
+/obj/structure/machinery/light,
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "greencorner"
+ icon_state = "red"
},
-/area/almayer/hallways/port_hallway)
-"cbw" = (
-/turf/open/floor/almayer{
+/area/almayer/hallways/upper/aft_hallway)
+"cbL" = (
+/obj/structure/machinery/camera/autoname/almayer{
dir = 1;
- icon_state = "greencorner"
- },
-/area/almayer/hallways/port_hallway)
-"cbz" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
-"cbD" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
-"cbE" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ name = "ship-grade camera"
},
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"cbM" = (
/obj/structure/closet/crate,
/obj/item/clothing/glasses/welding,
/obj/item/circuitboard,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/lifeboat_pumps/north1)
-"cbQ" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
-"cbR" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
-"cbS" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
-"cbU" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
-"cbV" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 6
- },
-/obj/structure/sign/safety/maint{
- pixel_x = 15;
- pixel_y = 32
- },
-/obj/structure/sign/safety/storage{
- pixel_y = 32
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
- pixel_y = 3
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
-"cbW" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
-"cbX" = (
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"ccb" = (
/obj/structure/surface/table/reinforced/black,
/turf/open/floor/almayer{
@@ -20885,31 +17803,8 @@
icon_state = "S";
layer = 3.3
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
-"ccq" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
-"ccr" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"ccs" = (
/obj/structure/disposalpipe/segment{
dir = 8
@@ -20918,22 +17813,6 @@
icon_state = "plate"
},
/area/almayer/medical/morgue)
-"ccu" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
-"ccv" = (
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"ccG" = (
/obj/structure/largecrate/random/secure,
/obj/effect/decal/warning_stripes{
@@ -20943,64 +17822,23 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"ccJ" = (
-/turf/open/floor/almayer{
- icon_state = "silvercorner"
+"ccL" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
},
-/area/almayer/hallways/repair_bay)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_umbilical)
"ccN" = (
/turf/open/floor/almayer{
dir = 4;
icon_state = "redcorner"
},
/area/almayer/living/cryo_cells)
-"ccO" = (
-/obj/structure/machinery/light,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"ccQ" = (
/obj/effect/landmark/ert_spawns/distress_cryo,
/obj/effect/landmark/late_join,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/cryo_cells)
-"ccU" = (
-/obj/structure/pipes/vents/pump{
- dir = 8;
- id_tag = "mining_outpost_pump"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
-"cdb" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_umbilical)
-"cdc" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_umbilical)
-"cdd" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_umbilical)
"cdf" = (
/obj/structure/machinery/camera/autoname/almayer{
name = "ship-grade camera"
@@ -21041,27 +17879,6 @@
},
/turf/open/floor/plating,
/area/almayer/living/cryo_cells)
-"cdw" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_umbilical)
-"cdx" = (
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_umbilical)
-"cdy" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_umbilical)
-"cdz" = (
-/obj/structure/machinery/power/apc/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
"cdA" = (
/obj/structure/window/framed/almayer,
/turf/open/floor/plating,
@@ -21073,37 +17890,6 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
-"cdE" = (
-/obj/structure/surface/table/almayer,
-/obj/item/reagent_container/food/drinks/cans/waterbottle{
- pixel_x = 9;
- pixel_y = 3
- },
-/obj/item/prop/helmetgarb/flair_io{
- pixel_x = -10;
- pixel_y = 6
- },
-/obj/item/prop/magazine/boots/n160{
- pixel_x = -6;
- pixel_y = -5
- },
-/obj/structure/transmitter/rotary{
- name = "Flight Deck Telephone";
- phone_category = "Almayer";
- phone_id = "Flight Deck";
- pixel_y = 8
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/repair_bay)
-"cdF" = (
-/obj/structure/bed/chair/office/dark{
- dir = 8
- },
-/obj/effect/decal/cleanable/blood/oil,
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"cdI" = (
/obj/structure/pipes/vents/pump{
dir = 1
@@ -21160,50 +17946,12 @@
icon_state = "cargo_arrow"
},
/area/almayer/squads/alpha)
-"ces" = (
-/obj/structure/machinery/door/airlock/almayer/maint,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_umbilical)
-"cet" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
"ceu" = (
/turf/open/floor/almayer{
dir = 1;
icon_state = "green"
},
/area/almayer/living/starboard_garden)
-"cev" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_umbilical)
-"cew" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/port_umbilical)
-"cex" = (
-/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
"ceC" = (
/obj/structure/prop/almayer/ship_memorial,
/turf/open/floor/plating/almayer,
@@ -21226,28 +17974,6 @@
icon_state = "plate"
},
/area/almayer/living/bridgebunks)
-"ceQ" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/obj/structure/machinery/part_fabricator/dropship,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/repair_bay)
-"ceR" = (
-/obj/structure/machinery/prop/almayer/computer{
- pixel_y = 20
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/repair_bay)
-"ceU" = (
-/turf/open/floor/almayer{
- icon_state = "cargo_arrow"
- },
-/area/almayer/hallways/repair_bay)
"ceY" = (
/obj/structure/machinery/light/small{
dir = 8
@@ -21317,71 +18043,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/charlie)
-"cfx" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/item/clothing/mask/breath,
-/obj/item/clothing/mask/breath,
-/obj/item/clothing/mask/breath,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
-"cfy" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/port_umbilical)
-"cfz" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/port_umbilical)
-"cfA" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/light{
- dir = 4
- },
-/obj/effect/spawner/random/tool,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
"cfE" = (
/turf/open/floor/almayer{
dir = 8;
icon_state = "red"
},
/area/almayer/shipboard/starboard_missiles)
-"cfM" = (
-/obj/structure/machinery/door/poddoor/almayer/open{
- id = "Hangar Lockdown";
- name = "\improper Hangar Lockdown Blast Door"
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "DeployWorkR";
- name = "\improper Workshop Shutters"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/repair_bay)
-"cfN" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/platform{
- dir = 8
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"cfT" = (
/turf/open/floor/almayer{
dir = 10;
@@ -21455,29 +18122,6 @@
"cgE" = (
/turf/open/floor/almayer,
/area/almayer/living/cryo_cells)
-"cgG" = (
-/obj/structure/surface/table/almayer,
-/obj/item/tank/emergency_oxygen/double,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
-"cgH" = (
-/obj/structure/surface/table/almayer,
-/obj/item/tank/oxygen/red,
-/obj/item/tool/screwdriver,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
-"cgJ" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
"cgO" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/emails{
@@ -21571,29 +18215,19 @@
icon_state = "plate"
},
/area/almayer/squads/charlie)
-"chu" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
"chv" = (
/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/armory)
-"chE" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "laddersouthwest";
- name = "\improper South West Ladders Shutters"
+"chC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
},
-/obj/effect/step_trigger/clone_cleaner,
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "orange"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/stern_hallway)
"chL" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -21716,6 +18350,16 @@
icon_state = "cargo_arrow"
},
/area/almayer/squads/alpha)
+"cif" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/item/tank/emergency_oxygen/double,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"cil" = (
/obj/structure/machinery/light,
/obj/structure/sign/safety/waterhazard{
@@ -21726,31 +18370,6 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south2)
-"cim" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/port_umbilical)
-"cin" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_umbilical)
-"cio" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/port_umbilical)
"cir" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -21815,6 +18434,15 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/north2)
+"ciI" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"ciN" = (
/turf/open/floor/almayer{
dir = 6;
@@ -21828,31 +18456,6 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
-"ciT" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 8
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
-"ciU" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 8;
- name = "ship-grade camera"
- },
-/obj/structure/sign/safety/four{
- pixel_x = 31;
- pixel_y = -8
- },
-/obj/structure/sign/safety/ammunition{
- pixel_x = 32;
- pixel_y = 7
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "blue"
- },
-/area/almayer/hallways/port_hallway)
"cjc" = (
/obj/effect/landmark/start/marine/alpha,
/obj/effect/landmark/late_join/alpha,
@@ -21900,59 +18503,11 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/cells)
-"cjl" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/machinery/door/poddoor/almayer{
- id = "s_umbilical";
- name = "\improper Umbillical Airlock";
- unacidable = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
-"cjm" = (
-/obj/structure/machinery/door/poddoor/almayer{
- id = "s_umbilical";
- name = "\improper Umbillical Airlock";
- unacidable = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
-"cjo" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = 32;
- pixel_y = 6
- },
-/obj/structure/sign/safety/reduction{
- pixel_x = 32;
- pixel_y = -8
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
"cjt" = (
/turf/open/floor/almayer{
icon_state = "orange"
},
/area/almayer/engineering/lower)
-"cjw" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "red"
- },
-/area/almayer/hallways/port_hallway)
"cjA" = (
/obj/structure/machinery/disposal,
/obj/structure/disposalpipe/trunk{
@@ -21992,41 +18547,6 @@
icon_state = "emerald"
},
/area/almayer/squads/charlie)
-"cjK" = (
-/obj/structure/machinery/door/airlock/almayer/maint,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_umbilical)
-"cjS" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/hallways/port_hallway)
-"cjT" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out";
- pixel_x = 1
- },
-/obj/structure/pipes/vents/scrubber{
- dir = 8
- },
-/obj/structure/sign/safety/escapepod{
- pixel_x = 32
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/hallways/port_hallway)
"cjW" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -22078,6 +18598,15 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"ckh" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"ckj" = (
/obj/structure/surface/table/almayer,
/obj/item/stack/nanopaste{
@@ -22088,29 +18617,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/p_stern)
-"ckl" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "red"
- },
-/area/almayer/hallways/port_hallway)
-"ckm" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/machinery/status_display{
- pixel_x = 32
- },
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
- },
-/area/almayer/hallways/port_hallway)
"ckr" = (
/obj/structure/machinery/disposal,
/obj/structure/disposalpipe/trunk,
@@ -22118,18 +18624,6 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
-"ckI" = (
-/obj/structure/disposalpipe/segment,
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_x = -28
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"ckK" = (
/obj/structure/pipes/vents/pump{
dir = 1
@@ -22162,22 +18656,6 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
-"ckS" = (
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- id = "Interrogation Shutters";
- name = "\improper Privacy Shutters"
- },
-/obj/structure/machinery/door/airlock/almayer/security{
- dir = 2;
- name = "\improper Interrogation"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/main_office)
"ckW" = (
/obj/structure/window/framed/almayer/hull,
/turf/open/floor/plating,
@@ -22188,29 +18666,15 @@
icon_state = "blue"
},
/area/almayer/squads/delta)
-"cla" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
- },
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "red"
- },
-/area/almayer/hallways/port_hallway)
-"clb" = (
+"ckZ" = (
/obj/structure/machinery/light{
- dir = 4
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
+ dir = 8
},
+/obj/structure/machinery/power/reactor,
/turf/open/floor/almayer{
- dir = 10;
- icon_state = "red"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/engineering/lower/engine_core)
"cle" = (
/turf/open/floor/almayer{
dir = 4;
@@ -22338,55 +18802,10 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/port_point_defense)
"clw" = (
-/obj/structure/machinery/light{
- dir = 8;
- invisibility = 101;
- unacidable = 1;
- unslashable = 1
- },
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
+/turf/open/floor/almayer/aicore/glowing/no_build{
+ icon_state = "ai_floor3"
},
/area/almayer/command/airoom)
-"cly" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/sign/safety/maint{
- pixel_x = -17;
- pixel_y = -8
- },
-/obj/structure/sign/safety/storage{
- pixel_x = -17;
- pixel_y = 7
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "redcorner"
- },
-/area/almayer/hallways/port_hallway)
-"clz" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NE-out";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "redcorner"
- },
-/area/almayer/hallways/port_hallway)
-"clC" = (
-/obj/structure/stairs,
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/effect/projector{
- name = "Almayer_Up1";
- vector_x = -19;
- vector_y = 98
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/starboard_hallway)
"clE" = (
/obj/structure/machinery/door/airlock/almayer/marine/delta/medic,
/turf/open/floor/almayer{
@@ -22446,12 +18865,6 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
-"clR" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "blue"
- },
-/area/almayer/hallways/port_hallway)
"clS" = (
/obj/structure/machinery/cm_vending/gear/spec,
/obj/structure/sign/safety/hazard{
@@ -22509,16 +18922,6 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
-"cmd" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"cme" = (
/obj/structure/largecrate/random/barrel/red,
/obj/structure/prop/invuln/overhead_pipe{
@@ -22530,30 +18933,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
-"cmg" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
-"cmh" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/disposalpipe/up/almayer{
- dir = 8;
- id = "almayerlink"
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"cml" = (
/obj/effect/decal/warning_stripes{
icon_state = "NE-out";
@@ -22634,18 +19013,6 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/north2)
-"cmH" = (
-/obj/structure/machinery/door/airlock/almayer/maint,
-/obj/structure/machinery/door/poddoor/almayer/open{
- dir = 4;
- id = "Hangar Lockdown";
- name = "\improper Hangar Lockdown Blast Door"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_umbilical)
"cmI" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -22685,6 +19052,20 @@
icon_state = "silver"
},
/area/almayer/command/securestorage)
+"cmL" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"cmM" = (
+/turf/closed/wall/almayer,
+/area/almayer/shipboard/brig/medical)
"cmN" = (
/obj/structure/largecrate/random/secure,
/turf/open/floor/almayer{
@@ -22732,25 +19113,11 @@
icon_state = "red"
},
/area/almayer/hallways/upper/port)
-"cno" = (
-/obj/structure/stairs,
-/obj/effect/projector{
- name = "Almayer_Up1";
- vector_x = -19;
- vector_y = 98
- },
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/starboard_hallway)
"cnp" = (
/obj/structure/machinery/light{
dir = 4
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"cnq" = (
/obj/structure/machinery/line_nexter{
@@ -22783,12 +19150,6 @@
icon_state = "kitchen"
},
/area/almayer/living/grunt_rnr)
-"cnv" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "silvercorner"
- },
-/area/almayer/hallways/aft_hallway)
"cnE" = (
/obj/structure/machinery/prop/almayer/computer{
dir = 4;
@@ -22814,6 +19175,15 @@
icon_state = "test_floor4"
},
/area/almayer/command/computerlab)
+"cnI" = (
+/obj/structure/pipes/vents/scrubber{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"cnM" = (
/obj/structure/window/reinforced{
dir = 4;
@@ -22909,9 +19279,9 @@
},
/area/almayer/medical/morgue)
"cnZ" = (
-/obj/item/tool/surgery/hemostat,
-/obj/item/tool/surgery/scalpel,
/obj/structure/surface/table/reinforced/prison,
+/obj/item/tool/surgery/scalpel,
+/obj/item/tool/surgery/hemostat,
/turf/open/floor/almayer{
dir = 8;
icon_state = "sterile_green_corner"
@@ -23059,12 +19429,6 @@
},
/turf/open/floor/almayer,
/area/almayer/living/offices)
-"cpw" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/aft_hallway)
"cpz" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
@@ -23099,12 +19463,15 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_m_p)
-"cqa" = (
+"cqd" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
/turf/open/floor/almayer{
- dir = 10;
- icon_state = "green"
+ dir = 1;
+ icon_state = "orangecorner"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/starboard_umbilical)
"cqm" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/folder/white{
@@ -23114,9 +19481,7 @@
pixel_x = 5;
pixel_y = 6
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"cqp" = (
/obj/structure/largecrate/random/barrel/white,
@@ -23166,15 +19531,19 @@
/obj/item/storage/fancy/cigar/tarbacktube,
/turf/open/floor/almayer,
/area/almayer/living/bridgebunks)
-"cre" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 32
+"crc" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ dir = 8;
+ id = "laddersoutheast";
+ name = "\improper South East Ladders Shutters"
},
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/lower/port_midship_hallway)
"crh" = (
/obj/structure/machinery/light{
dir = 1
@@ -23193,40 +19562,22 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_f_s)
-"crp" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/computer/secure_data{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/chief_mp_office)
"crD" = (
/turf/open/floor/almayer{
dir = 1;
icon_state = "greencorner"
},
/area/almayer/squads/req)
-"crW" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"csd" = (
/obj/structure/closet/firecloset,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/stern)
-"csl" = (
-/obj/structure/pipes/vents/scrubber,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "greencorner"
+"csy" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 1
},
-/area/almayer/hallways/starboard_hallway)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/warden_office)
"csI" = (
/turf/open/floor/almayer{
dir = 8;
@@ -23275,6 +19626,12 @@
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
+"ctw" = (
+/obj/structure/machinery/door/airlock/almayer/maint,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"ctx" = (
/obj/structure/bed{
icon_state = "abed"
@@ -23304,15 +19661,11 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/port)
-"ctC" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
+"ctQ" = (
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
+ icon_state = "silver"
},
-/area/almayer/hallways/stern_hallway)
+/area/almayer/hallways/lower/repair_bay)
"ctT" = (
/obj/structure/machinery/door/airlock/almayer/security/glass{
dir = 1;
@@ -23325,6 +19678,15 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/brig/cryo)
+"cui" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"cuq" = (
/obj/structure/machinery/computer/arcade,
/turf/open/floor/wood/ship,
@@ -23350,6 +19712,19 @@
"cuC" = (
/turf/closed/wall/almayer/outer,
/area/almayer/engineering/upper_engineering/starboard)
+"cuI" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/obj/structure/sign/safety/stairs{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"cuN" = (
/obj/effect/decal/warning_stripes{
icon_state = "W"
@@ -23388,6 +19763,12 @@
icon_state = "plate"
},
/area/almayer/squads/req)
+"cvg" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"cvi" = (
/obj/structure/machinery/vending/hydroseeds,
/turf/open/floor/almayer{
@@ -23409,6 +19790,10 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cells)
+"cvI" = (
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"cvZ" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -23418,6 +19803,16 @@
icon_state = "silver"
},
/area/almayer/command/cic)
+"cwi" = (
+/obj/structure/sign/safety/rewire{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"cwo" = (
/obj/structure/largecrate/random/mini/chest{
pixel_x = 4
@@ -23428,31 +19823,23 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/req)
-"cwJ" = (
+"cwC" = (
/turf/open/floor/almayer{
- dir = 10;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
-"cwQ" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+ dir = 4;
+ icon_state = "red"
},
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- dir = 8;
- id = "laddersoutheast";
- name = "\improper South East Ladders Shutters"
+/area/almayer/shipboard/brig/starboard_hallway)
+"cwL" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = -25
},
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "orange"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/stern_hallway)
"cwS" = (
/obj/structure/blocker/invisible_wall,
-/turf/open/floor/almayer/no_build{
- icon_state = "plating"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"cwX" = (
/obj/structure/ladder{
@@ -23466,23 +19853,31 @@
icon_state = "S";
layer = 3.3
},
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"cxk" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
-"cxA" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
+"cxF" = (
+/obj/structure/barricade/handrail{
+ dir = 8
+ },
+/obj/structure/barricade/handrail,
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "test_floor5"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/lower/port_midship_hallway)
+"cyc" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/pipes/vents/pump,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"cyo" = (
/obj/structure/machinery/vending/cigarette,
/turf/open/floor/almayer{
@@ -23508,13 +19903,6 @@
icon_state = "test_floor4"
},
/area/almayer/maint/hull/upper/u_f_p)
-"cyG" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/port_hallway)
"cyL" = (
/obj/structure/surface/table/almayer,
/obj/effect/spawner/random/toolbox,
@@ -23544,13 +19932,38 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cells)
-"czM" = (
+"czJ" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = 15;
+ pixel_y = 32
+ },
/obj/structure/sign/safety/intercom{
- pixel_x = 8;
pixel_y = 32
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"czN" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = -28
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"czR" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 5
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"cAm" = (
/obj/structure/bed/chair/office/light{
dir = 8
@@ -23589,6 +20002,9 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/lower_medical_lobby)
+"cAR" = (
+/turf/closed/wall/almayer/reinforced,
+/area/almayer/shipboard/brig/mp_bunks)
"cBb" = (
/obj/structure/machinery/light{
dir = 1
@@ -23621,14 +20037,6 @@
icon_state = "cargo"
},
/area/almayer/engineering/upper_engineering/port)
-"cBl" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 32
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"cBm" = (
/obj/effect/projector{
name = "Almayer_AresUp";
@@ -23642,10 +20050,7 @@
dir = 1;
icon_state = "ramptop"
},
-/turf/open/floor/almayer/no_build{
- dir = 4;
- icon_state = "silver"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"cBs" = (
/obj/structure/bed/chair,
@@ -23663,73 +20068,27 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/general_equipment)
-"cBA" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/sign/safety/hvac_old{
- pixel_x = 8;
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
-"cBI" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/machinery/door_control{
- id = "hangarentrancenorth";
- name = "North Hangar Podlocks";
- pixel_y = -26;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
- },
+"cBC" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
- pixel_x = 1
+ pixel_x = 2
},
/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
-"cBZ" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/door_control{
- id = "courtyard_cells";
- name = "\improper Courtyard Lockdown Shutters";
- pixel_x = 6;
- req_access_txt = "3"
- },
-/obj/structure/machinery/door_control{
- id = "Brig Lockdown Shutters";
- name = "Brig Lockdown Shutters";
- pixel_x = -6;
- req_access_txt = "3"
- },
-/obj/structure/machinery/door_control{
- id = "courtyard window";
- name = "Courtyard Window Shutters";
- pixel_x = -6;
- pixel_y = 9;
- req_access_txt = "3"
- },
-/obj/structure/machinery/door_control{
- id = "Cell Privacy Shutters";
- name = "Cell Privacy Shutters";
- pixel_x = 6;
- pixel_y = 9;
- req_access_txt = "3"
+ dir = 5;
+ icon_state = "green"
},
-/obj/structure/machinery/light{
- dir = 1
+/area/almayer/hallways/lower/port_aft_hallway)
+"cBV" = (
+/obj/structure/closet/firecloset,
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 8;
+ name = "ship-grade camera"
},
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
+ dir = 4;
+ icon_state = "greencorner"
},
-/area/almayer/shipboard/brig/chief_mp_office)
+/area/almayer/hallways/lower/port_fore_hallway)
"cCa" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -23895,12 +20254,6 @@
icon_state = "cargo_arrow"
},
/area/almayer/squads/charlie)
-"cES" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
"cFh" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 5
@@ -23929,6 +20282,18 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/processing)
+"cFH" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"cFP" = (
/obj/structure/sign/safety/outpatient{
pixel_x = -17;
@@ -23941,27 +20306,6 @@
"cGd" = (
/turf/closed/wall/almayer,
/area/almayer/maint/hull/upper/u_m_s)
-"cGe" = (
-/obj/structure/surface/table/almayer,
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/engineering/lower/engine_core)
-"cGp" = (
-/obj/structure/machinery/cm_vending/clothing/senior_officer{
- pixel_y = 0
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/medical/upper_medical)
-"cGr" = (
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/aft_hallway)
"cGA" = (
/obj/structure/sign/poster{
pixel_y = -32
@@ -23997,6 +20341,9 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering)
+"cHk" = (
+/turf/closed/wall/almayer/reinforced,
+/area/almayer/shipboard/brig/warden_office)
"cHl" = (
/obj/effect/decal/warning_stripes{
icon_state = "W"
@@ -24023,6 +20370,12 @@
icon_state = "orangefull"
},
/area/almayer/living/briefing)
+"cHC" = (
+/obj/structure/machinery/cm_vending/clothing/combat_correspondent,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/command/combat_correspondent)
"cHE" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -24045,6 +20398,14 @@
/obj/structure/surface/table/almayer,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
+"cIm" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"cIr" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -24066,6 +20427,11 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering/starboard)
+"cIO" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"cIW" = (
/obj/structure/machinery/door/airlock/almayer/engineering{
name = "\improper Engineering Engine Monitoring"
@@ -24094,6 +20460,9 @@
icon_state = "plate"
},
/area/almayer/shipboard/panic)
+"cJs" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_aft_hallway)
"cJu" = (
/obj/effect/decal/warning_stripes{
icon_state = "SW-out"
@@ -24110,6 +20479,15 @@
/obj/structure/sign/prop2,
/turf/closed/wall/almayer,
/area/almayer/shipboard/sea_office)
+"cJK" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"cJM" = (
/obj/structure/machinery/door_display/research_cell{
dir = 8;
@@ -24152,6 +20530,16 @@
icon_state = "sterile_green"
},
/area/almayer/medical/containment)
+"cJV" = (
+/obj/effect/projector{
+ name = "Almayer_Down3";
+ vector_x = 1;
+ vector_y = -102
+ },
+/turf/open/floor/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/upper/aft_hallway)
"cKm" = (
/obj/structure/surface/table/almayer,
/obj/item/reagent_container/glass/bucket/mopbucket{
@@ -24170,18 +20558,27 @@
},
/turf/open/floor/plating,
/area/almayer/maint/lower/constr)
+"cKJ" = (
+/obj/structure/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/interrogation)
"cKL" = (
/turf/open/floor/almayer{
dir = 8;
icon_state = "orangecorner"
},
/area/almayer/engineering/upper_engineering/port)
-"cKY" = (
-/obj/structure/machinery/light,
+"cKW" = (
/turf/open/floor/almayer{
- icon_state = "silver"
+ dir = 5;
+ icon_state = "blue"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"cLl" = (
/obj/structure/surface/table/almayer,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -24196,8 +20593,8 @@
icon_state = "N";
pixel_y = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "cargo_arrow"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_arrow"
},
/area/almayer/command/airoom)
"cLq" = (
@@ -24236,17 +20633,6 @@
icon_state = "cargo"
},
/area/almayer/living/bridgebunks)
-"cMb" = (
-/obj/structure/surface/table/almayer,
-/obj/item/paper_bin/uscm{
- pixel_y = 7
- },
-/obj/item/tool/pen,
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"cMl" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -24292,6 +20678,12 @@
icon_state = "orange"
},
/area/almayer/living/briefing)
+"cNm" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"cNH" = (
/obj/structure/machinery/door/poddoor/shutters/almayer/containment{
id = "Containment Cell 4";
@@ -24307,6 +20699,17 @@
icon_state = "test_floor4"
},
/area/almayer/medical/containment/cell/cl)
+"cNI" = (
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/almayer/shipboard/brig/medical)
+"cNJ" = (
+/obj/structure/pipes/vents/pump,
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"cNK" = (
/obj/structure/pipes/vents/pump{
dir = 1
@@ -24372,13 +20775,6 @@
icon_state = "outerhull_dir"
},
/area/almayer/engineering/upper_engineering/starboard)
-"cOM" = (
-/obj/structure/sign/safety/medical{
- pixel_x = 8;
- pixel_y = -32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"cOY" = (
/obj/item/clothing/under/blackskirt{
desc = "A stylish skirt, in a business-black and red colour scheme.";
@@ -24508,6 +20904,9 @@
"cQv" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/shipboard/brig/general_equipment)
+"cQG" = (
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/starboard_hallway)
"cQL" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -24599,6 +20998,30 @@
icon_state = "red"
},
/area/almayer/shipboard/starboard_missiles)
+"cSH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
+"cSM" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"cSP" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 6
+ },
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"cSQ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -24625,6 +21048,12 @@
icon_state = "cargo"
},
/area/almayer/squads/req)
+"cTy" = (
+/obj/structure/closet/secure_closet/medical2,
+/turf/open/floor/almayer{
+ icon_state = "sterile_green_side"
+ },
+/area/almayer/shipboard/brig/medical)
"cTC" = (
/obj/structure/machinery/vending/walkman,
/turf/open/floor/almayer{
@@ -24661,12 +21090,30 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north2)
+"cVf" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"cVq" = (
/obj/structure/machinery/power/apc/almayer/hardened{
dir = 1
},
/turf/open/floor/almayer,
/area/almayer/command/corporateliaison)
+"cVt" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"cVw" = (
/obj/structure/machinery/light/small{
dir = 4
@@ -24687,6 +21134,16 @@
icon_state = "plate"
},
/area/almayer/living/gym)
+"cVT" = (
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
+"cVZ" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"cWb" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/almayer{
@@ -24756,20 +21213,6 @@
icon_state = "green"
},
/area/almayer/living/offices)
-"cWs" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"cWv" = (
/turf/open/floor/almayer{
dir = 8;
@@ -24836,6 +21279,19 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/containment)
+"cXD" = (
+/obj/structure/surface/rack,
+/obj/item/clothing/suit/straight_jacket,
+/obj/item/clothing/glasses/sunglasses/blindfold,
+/obj/item/clothing/mask/muzzle,
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 8;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/shipboard/brig/execution_storage)
"cXF" = (
/obj/structure/machinery/flasher{
alpha = 1;
@@ -24854,6 +21310,12 @@
icon_state = "greencorner"
},
/area/almayer/squads/req)
+"cXV" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/mp_bunks)
"cXW" = (
/obj/structure/machinery/status_display{
pixel_y = 30
@@ -24930,33 +21392,18 @@
},
/turf/open/floor/plating,
/area/almayer/command/cichallway)
-"cZj" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
-"cZm" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"cZp" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_p)
+"cZB" = (
+/obj/structure/machinery/door/airlock/almayer/maint,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"cZI" = (
/obj/effect/decal/warning_stripes{
icon_state = "W"
@@ -25009,22 +21456,8 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/port)
-"dac" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- dir = 8;
- id = "laddernortheast";
- name = "\improper North East Ladders Shutters"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"daz" = (
-/turf/closed/wall/almayer/white/hull,
+/turf/closed/wall/almayer/aicore/hull,
/area/almayer/command/airoom)
"daF" = (
/obj/structure/machinery/power/apc/almayer{
@@ -25133,20 +21566,16 @@
icon_state = "green"
},
/area/almayer/living/grunt_rnr)
-"dco" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/computer/cameras/almayer_network{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/chief_mp_office)
"dcp" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/lifeboat_pumps/south2)
+"dcx" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_umbilical)
"dcy" = (
/turf/open/floor/almayer{
dir = 1;
@@ -25169,12 +21598,25 @@
icon_state = "cargo"
},
/area/almayer/engineering/lower/engine_core)
+"ddj" = (
+/obj/structure/bed/chair/bolted,
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/interrogation)
"ddk" = (
/obj/structure/surface/table/almayer,
/turf/open/floor/almayer{
icon_state = "redfull"
},
/area/almayer/living/briefing)
+"ddp" = (
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"ddw" = (
/obj/structure/machinery/cm_vending/sorted/tech/comp_storage,
/obj/structure/sign/safety/terminal{
@@ -25184,6 +21626,15 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop/hangar)
+"ddx" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"ddz" = (
/obj/structure/sign/safety/maint{
pixel_x = 32
@@ -25200,6 +21651,10 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_a_p)
+"ddL" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"ddM" = (
/obj/structure/disposalpipe/segment,
/turf/closed/wall/almayer,
@@ -25241,13 +21696,8 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
"deH" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = -28
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/warden_office)
"deT" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -25264,19 +21714,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/morgue)
-"dfc" = (
-/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
-/obj/structure/sign/safety/airlock{
- pixel_y = -32
- },
-/obj/structure/sign/safety/hazard{
- pixel_x = 15;
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_umbilical)
"dfg" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22"
@@ -25306,14 +21743,6 @@
icon_state = "green"
},
/area/almayer/living/grunt_rnr)
-"dfO" = (
-/obj/structure/machinery/medical_pod/bodyscanner{
- dir = 8
- },
-/turf/open/floor/almayer{
- icon_state = "dark_sterile"
- },
-/area/almayer/shipboard/brig/surgery)
"dgg" = (
/obj/structure/machinery/camera/autoname/almayer{
dir = 4;
@@ -25348,6 +21777,12 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/chief_mp_office)
+"dgP" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"dha" = (
/turf/open/floor/almayer{
icon_state = "plate"
@@ -25387,6 +21822,10 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"dhQ" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_umbilical)
"dhR" = (
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
dir = 4;
@@ -25397,27 +21836,19 @@
icon_state = "redfull"
},
/area/almayer/living/briefing)
-"dhU" = (
-/obj/structure/closet/emcloset,
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/hallways/port_hallway)
-"dhZ" = (
-/obj/structure/machinery/light/small{
- dir = 1
- },
-/obj/structure/sign/safety/hazard{
- pixel_y = 32
+"div" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
-/obj/structure/sign/safety/airlock{
- pixel_x = 15;
- pixel_y = 32
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ dir = 8;
+ id = "laddernortheast";
+ name = "\improper North East Ladders Shutters"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
},
-/area/almayer/hallways/starboard_umbilical)
+/area/almayer/hallways/lower/starboard_midship_hallway)
"diz" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{
id_tag = "Boat1-D4";
@@ -25441,18 +21872,13 @@
icon_state = "cargo_arrow"
},
/area/almayer/squads/alpha_bravo_shared)
-"diP" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 1
- },
-/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
- name = "\improper Brig Lobby";
- closeOtherId = "brignorth"
- },
+"djd" = (
+/obj/structure/machinery/light,
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ dir = 6;
+ icon_state = "blue"
},
-/area/almayer/shipboard/brig/lobby)
+/area/almayer/hallways/upper/aft_hallway)
"djQ" = (
/obj/item/device/radio/intercom{
freerange = 1;
@@ -25550,6 +21976,12 @@
allow_construction = 0
},
/area/almayer/stair_clone/upper)
+"dkP" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"dkX" = (
/obj/structure/bed/chair/comfy/delta,
/obj/effect/decal/cleanable/dirt,
@@ -25563,6 +21995,12 @@
icon_state = "orangefull"
},
/area/almayer/living/briefing)
+"dlT" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"dmg" = (
/obj/structure/machinery/vending/coffee,
/obj/structure/sign/safety/coffee{
@@ -25574,6 +22012,18 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
+"dmr" = (
+/obj/structure/transmitter{
+ name = "Brig Offices Telephone";
+ phone_category = "MP Dept.";
+ phone_id = "Brig Main Offices";
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"dmv" = (
/turf/open/floor/almayer{
dir = 8;
@@ -25639,6 +22089,13 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/brig/cells)
+"dni" = (
+/obj/structure/sign/safety/life_support{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"dnm" = (
/obj/structure/machinery/cm_vending/sorted/cargo_guns/intelligence_officer,
/obj/structure/machinery/light{
@@ -25672,6 +22129,13 @@
icon_state = "mono"
},
/area/almayer/engineering/upper_engineering/starboard)
+"dnP" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 1;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"dnS" = (
/obj/structure/safe,
/turf/open/floor/almayer{
@@ -25692,10 +22156,6 @@
icon_state = "plating_striped"
},
/area/almayer/maint/hull/lower/l_a_p)
-"dod" = (
-/obj/structure/closet/crate/trashcart,
-/turf/open/floor/almayer,
-/area/almayer/engineering/upper_engineering/port)
"dof" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{
name = "\improper Upper Engineering"
@@ -25707,14 +22167,6 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/upper_engineering)
-"doj" = (
-/obj/structure/machinery/medical_pod/sleeper{
- dir = 8
- },
-/turf/open/floor/almayer{
- icon_state = "dark_sterile"
- },
-/area/almayer/shipboard/brig/surgery)
"doJ" = (
/obj/structure/pipes/vents/pump{
dir = 1
@@ -25761,6 +22213,27 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north1)
+"dpA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"dpN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"dpO" = (
/obj/structure/machinery/cm_vending/clothing/marine/delta{
density = 0;
@@ -25771,6 +22244,12 @@
icon_state = "cargo_arrow"
},
/area/almayer/squads/delta)
+"dpS" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "bluecorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"dqb" = (
/obj/structure/sign/safety/security{
pixel_x = -16
@@ -25815,16 +22294,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/offices)
-"dqN" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
-"dqZ" = (
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/chief_mp_office)
"drj" = (
/obj/structure/window/reinforced{
dir = 4;
@@ -25875,18 +22344,6 @@
icon_state = "sterile_green"
},
/area/almayer/medical/hydroponics)
-"dsk" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"dsA" = (
/obj/effect/decal/cleanable/blood,
/turf/open/floor/almayer{
@@ -25894,18 +22351,17 @@
icon_state = "redcorner"
},
/area/almayer/shipboard/brig/execution)
+"dsY" = (
+/turf/open/floor/almayer{
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"dtH" = (
/obj/structure/bed/chair/comfy{
dir = 8
},
/turf/open/floor/almayer,
/area/almayer/hallways/hangar)
-"dtM" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"dtZ" = (
/obj/structure/platform_decoration{
dir = 4
@@ -25988,6 +22444,14 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/port)
+"duR" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4;
+ icon_state = "pipe-j2"
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"duT" = (
/obj/structure/bed,
/obj/structure/machinery/flasher{
@@ -26051,6 +22515,13 @@
icon_state = "test_floor4"
},
/area/almayer/maint/upper/mess)
+"dwj" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"dwl" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer,
@@ -26082,6 +22553,15 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/upper_engineering/starboard)
+"dwJ" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"dxu" = (
/obj/structure/sink{
dir = 1;
@@ -26107,6 +22587,17 @@
allow_construction = 0
},
/area/almayer/stair_clone/upper)
+"dxJ" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"dxK" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 8
@@ -26175,6 +22666,15 @@
icon_state = "test_floor4"
},
/area/almayer/command/airoom)
+"dyq" = (
+/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"dyx" = (
/obj/structure/machinery/door/poddoor/shutters/almayer{
dir = 2;
@@ -26192,6 +22692,11 @@
icon_state = "plating"
},
/area/almayer/squads/req)
+"dyJ" = (
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"dyK" = (
/obj/structure/machinery/light{
dir = 8
@@ -26204,17 +22709,6 @@
"dzp" = (
/turf/open/floor/almayer,
/area/almayer/command/corporateliaison)
-"dzF" = (
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- dir = 8;
- id = "laddernortheast";
- name = "\improper North East Ladders Shutters"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"dzG" = (
/obj/structure/reagent_dispensers/peppertank{
pixel_y = 26
@@ -26227,6 +22721,14 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_p)
+"dAm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"dAq" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/disposalpipe/segment{
@@ -26239,6 +22741,18 @@
icon_state = "test_floor4"
},
/area/almayer/squads/bravo)
+"dAr" = (
+/obj/structure/pipes/standard/cap/hidden{
+ dir = 4
+ },
+/obj/structure/sign/safety/life_support{
+ pixel_x = 14;
+ pixel_y = -25
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"dAA" = (
/obj/structure/prop/invuln/overhead_pipe{
pixel_x = 12
@@ -26267,6 +22781,20 @@
icon_state = "plate"
},
/area/almayer/command/cic)
+"dBg" = (
+/obj/structure/stairs{
+ dir = 1
+ },
+/obj/effect/projector{
+ name = "Almayer_Up4";
+ vector_x = -19;
+ vector_y = 104
+ },
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"dBj" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -26331,13 +22859,21 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/operating_room_one)
-"dBQ" = (
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
+"dBR" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out"
},
-/turf/open/floor/wood/ship,
-/area/almayer/shipboard/brig/chief_mp_office)
+/obj/structure/machinery/light,
+/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{
+ req_access = null;
+ req_one_access = null;
+ req_one_access_txt = "7;23;27;102"
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"dBS" = (
/obj/effect/decal/warning_stripes{
icon_state = "W";
@@ -26348,6 +22884,25 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/execution)
+"dCb" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
+ },
+/obj/structure/sign/safety/restrictedarea{
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"dCe" = (
/obj/structure/machinery/cryopod{
pixel_y = 6
@@ -26409,14 +22964,35 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/cichallway)
+"dCM" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/manifold/fourway/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
+"dDc" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1;
+ icon_state = "pipe-c"
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"dDp" = (
/obj/effect/decal/warning_stripes{
icon_state = "W";
layer = 3.3
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"dDt" = (
/obj/structure/toilet{
@@ -26491,6 +23067,13 @@
},
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
+"dEo" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"dEp" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/lower/cryo_cells)
@@ -26504,16 +23087,6 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/upper_engineering/port)
-"dEC" = (
-/obj/structure/sign/safety/escapepod{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "greencorner"
- },
-/area/almayer/hallways/starboard_hallway)
"dEG" = (
/obj/structure/machinery/light{
unacidable = 1;
@@ -26530,6 +23103,23 @@
icon_state = "cargo"
},
/area/almayer/lifeboat_pumps/north2)
+"dEK" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
+"dEL" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_aft_hallway)
"dEQ" = (
/obj/structure/surface/table/almayer,
/obj/item/reagent_container/food/condiment/hotsauce/tabasco,
@@ -26547,12 +23137,30 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/armory)
+"dFd" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"dFk" = (
/turf/open/floor/almayer{
dir = 8;
icon_state = "redcorner"
},
/area/almayer/command/lifeboat)
+"dFl" = (
+/obj/structure/sign/safety/security{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/restrictedarea{
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"dFF" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_21"
@@ -26568,18 +23176,20 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_p)
+"dFM" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"dFR" = (
/turf/open/floor/almayer{
dir = 9;
icon_state = "silver"
},
/area/almayer/command/cichallway)
-"dFU" = (
-/obj/structure/bed/chair{
- dir = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/main_office)
"dFW" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/cell_charger,
@@ -26608,10 +23218,7 @@
/obj/structure/stairs{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- dir = 8;
- icon_state = "silver"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"dGr" = (
/obj/structure/pipes/vents/scrubber{
@@ -26646,6 +23253,17 @@
icon_state = "test_floor4"
},
/area/almayer/maint/hull/lower/l_f_s)
+"dGT" = (
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
+ },
+/obj/structure/surface/table/almayer,
+/obj/item/storage/donut_box,
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"dGU" = (
/obj/structure/sign/poster/propaganda{
pixel_x = -27
@@ -26709,17 +23327,13 @@
/area/almayer/living/bridgebunks)
"dIi" = (
/obj/structure/pipes/standard/simple/hidden/supply/no_boom,
-/turf/open/floor/plating/plating_catwalk{
- allow_construction = 0
- },
+/turf/open/floor/plating/plating_catwalk/aicore,
/area/almayer/command/airoom)
"dIn" = (
/obj/structure/pipes/standard/simple/hidden/supply/no_boom{
dir = 5
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"dID" = (
/obj/effect/decal/warning_stripes{
@@ -26770,58 +23384,50 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/p_bow)
-"dJI" = (
-/obj/structure/bed/chair/comfy/bravo{
+"dJF" = (
+/obj/structure/pipes/standard/cap/hidden{
dir = 4
},
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/arcturianstopsign{
+/obj/structure/sign/safety/hvac_old{
+ pixel_x = 15;
pixel_y = 32
},
/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/living/briefing)
-"dKc" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 9"
+ icon_state = "mono"
},
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
+/area/almayer/hallways/upper/stern_hallway)
+"dJG" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
},
-/area/almayer/engineering/lower/engine_core)
-"dKm" = (
-/obj/structure/machinery/power/apc/almayer{
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"dJI" = (
+/obj/structure/bed/chair/comfy/bravo{
dir = 4
},
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- layer = 3.33;
- pixel_x = 2
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- layer = 3.33;
- pixel_y = 2
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "W";
- layer = 3.3
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "S";
- layer = 3.3
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/arcturianstopsign{
+ pixel_y = 32
},
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+ icon_state = "plate"
},
-/area/almayer/hallways/stern_hallway)
+/area/almayer/living/briefing)
+"dJJ" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/execution_storage)
"dKp" = (
/turf/open/floor/almayer/research/containment/corner{
dir = 4
},
/area/almayer/medical/containment/cell/cl)
+"dKD" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silvercorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"dKK" = (
/obj/effect/decal/warning_stripes{
icon_state = "W"
@@ -26873,14 +23479,6 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
-"dLi" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 4"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
"dLt" = (
/obj/structure/sign/safety/hazard{
pixel_x = -17;
@@ -26900,25 +23498,6 @@
icon_state = "cargo"
},
/area/almayer/lifeboat_pumps/south1)
-"dLE" = (
-/turf/open/floor/almayer{
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
-"dMf" = (
-/obj/structure/surface/table/almayer,
-/obj/item/storage/photo_album{
- pixel_x = -4;
- pixel_y = 5
- },
-/obj/item/folder/black{
- pixel_x = 7;
- pixel_y = -3
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/command/combat_correspondent)
"dMB" = (
/turf/open/floor/almayer{
dir = 8;
@@ -26962,6 +23541,13 @@
icon_state = "redfull"
},
/area/almayer/living/briefing)
+"dNW" = (
+/obj/structure/machinery/firealarm{
+ dir = 1;
+ pixel_y = -28
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"dNZ" = (
/obj/structure/machinery/light{
dir = 1
@@ -26993,6 +23579,27 @@
icon_state = "plate"
},
/area/almayer/living/captain_mess)
+"dOG" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
+"dON" = (
+/obj/item/stack/cable_coil{
+ pixel_x = 1;
+ pixel_y = 10
+ },
+/obj/item/trash/pistachios,
+/obj/item/tool/screwdriver,
+/turf/open/floor/almayer{
+ icon_state = "cargo_arrow"
+ },
+/area/almayer/hallways/lower/repair_bay)
+"dOW" = (
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"dPd" = (
/obj/structure/surface/table/almayer,
/obj/item/device/flashlight/lamp{
@@ -27003,6 +23610,16 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_f_p)
+"dPk" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/effect/spawner/random/toolbox,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"dPl" = (
/turf/open/floor/almayer{
dir = 4;
@@ -27075,10 +23692,7 @@
/obj/structure/stairs{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- dir = 4;
- icon_state = "silver"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"dQp" = (
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -27099,23 +23713,6 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/brig/cells)
-"dQs" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
-"dQv" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "dark_sterile"
- },
-/area/almayer/shipboard/brig/surgery)
"dQA" = (
/obj/structure/pipes/standard/simple/visible{
dir = 4
@@ -27125,6 +23722,12 @@
icon_state = "orangecorner"
},
/area/almayer/engineering/lower)
+"dQV" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"dRh" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -27135,6 +23738,34 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/hydroponics)
+"dRj" = (
+/obj/structure/toilet{
+ pixel_y = 13
+ },
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
+"dRo" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/sign/safety/bridge{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/west{
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"dRs" = (
/obj/structure/closet/emcloset,
/turf/open/floor/almayer{
@@ -27150,18 +23781,20 @@
icon_state = "red"
},
/area/almayer/squads/alpha)
-"dRw" = (
-/obj/structure/surface/rack,
-/obj/item/tool/crowbar,
-/obj/item/tool/weldingtool,
-/obj/item/tool/wrench,
-/obj/structure/sign/safety/restrictedarea{
- pixel_x = -17
+"dRA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/machinery/status_display{
+ pixel_y = -32
},
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "red"
},
-/area/almayer/hallways/vehiclehangar)
+/area/almayer/shipboard/brig/starboard_hallway)
"dRD" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/machinery/door/airlock/almayer/security{
@@ -27174,15 +23807,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/offices/flight)
-"dRG" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/hallways/starboard_hallway)
"dRP" = (
/obj/structure/bed/chair/comfy/orange,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -27244,6 +23868,16 @@
icon_state = "rasputin3"
},
/area/almayer/powered/agent)
+"dTd" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ dir = 8;
+ id = "laddernortheast";
+ name = "\improper North East Ladders Shutters"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"dTn" = (
/turf/open/floor/almayer{
icon_state = "red"
@@ -27501,6 +24135,13 @@
icon_state = "blue"
},
/area/almayer/living/pilotbunks)
+"dYb" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 4;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"dYc" = (
/obj/structure/prop/invuln/overhead_pipe{
pixel_x = 12
@@ -27567,12 +24208,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/briefing)
-"dZd" = (
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"dZr" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -27591,6 +24226,20 @@
},
/turf/open/floor/almayer,
/area/almayer/engineering/lower/workshop/hangar)
+"dZP" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"dZR" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"dZZ" = (
/obj/structure/surface/rack,
/obj/item/tool/weldpack,
@@ -27696,41 +24345,19 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"ebt" = (
-/obj/structure/surface/table/almayer,
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/engineering/lower/engine_core)
-"ebv" = (
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
- },
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/storage/firstaid/toxin{
- pixel_x = 8;
- pixel_y = -2
- },
-/obj/item/storage/firstaid/regular,
-/obj/item/reagent_container/spray/cleaner,
-/turf/open/floor/almayer{
- icon_state = "sterile_green_side"
- },
-/area/almayer/shipboard/brig/surgery)
"ebI" = (
/obj/item/clothing/shoes/red,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_m_p)
"ebN" = (
-/turf/closed/wall/almayer/white/reinforced,
+/turf/closed/wall/almayer/aicore/reinforced,
/area/almayer/command/airoom)
+"ebV" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"ecb" = (
/obj/structure/machinery/light/small{
dir = 4
@@ -27760,19 +24387,15 @@
"ecr" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/living/captain_mess)
-"ecR" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/pipes/vents/pump{
- dir = 1
+"ecz" = (
+/obj/structure/machinery/light{
+ dir = 8
},
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+ dir = 8;
+ icon_state = "silver"
},
-/area/almayer/hallways/vehiclehangar)
+/area/almayer/hallways/upper/aft_hallway)
"ecS" = (
/obj/structure/sign/safety/hvac_old{
pixel_x = 8;
@@ -27791,6 +24414,12 @@
icon_state = "plate"
},
/area/almayer/shipboard/navigation)
+"edn" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"edo" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -27902,6 +24531,16 @@
icon_state = "red"
},
/area/almayer/hallways/upper/port)
+"efk" = (
+/obj/structure/machinery/door/poddoor/almayer{
+ id = "s_umbilical";
+ name = "\improper Umbillical Airlock";
+ unacidable = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"efC" = (
/obj/structure/machinery/firealarm{
pixel_y = 28
@@ -27974,12 +24613,6 @@
/obj/structure/platform_decoration,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/hangar)
-"egq" = (
-/obj/structure/sign/safety/ladder{
- pixel_x = -16
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
"egt" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
name = "\improper Chapel"
@@ -27994,6 +24627,13 @@
icon_state = "test_floor4"
},
/area/almayer/living/chapel)
+"egD" = (
+/obj/structure/bed/stool,
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"egQ" = (
/obj/structure/prop/invuln/overhead_pipe{
dir = 4;
@@ -28042,19 +24682,14 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
+"ehl" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/interrogation)
"ehx" = (
/obj/effect/landmark/start/marine/tl/alpha,
/obj/effect/landmark/late_join/alpha,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/alpha)
-"ehH" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NE-out";
- pixel_x = 2;
- pixel_y = 3
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"ehL" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/sign/safety/maint{
@@ -28204,12 +24839,6 @@
icon_state = "plate"
},
/area/almayer/squads/charlie)
-"ejp" = (
-/obj/structure/closet/emcloset,
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/hallways/aft_hallway)
"ejt" = (
/turf/open/floor/almayer/uscm/directional{
dir = 4
@@ -28245,15 +24874,22 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
-"ekF" = (
+"ekM" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
},
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_aft_hallway)
+"ekR" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
+ dir = 4;
+ icon_state = "orangecorner"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/lower/starboard_umbilical)
"ekY" = (
/obj/structure/machinery/door/airlock/almayer/generic/glass{
name = "\improper Memorial Room"
@@ -28265,6 +24901,16 @@
icon_state = "test_floor4"
},
/area/almayer/living/starboard_garden)
+"ekZ" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/computer/secure_data{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/warden_office)
"elf" = (
/obj/structure/sign/safety/hvac_old{
pixel_x = 8;
@@ -28285,12 +24931,6 @@
"elx" = (
/turf/open/floor/almayer,
/area/almayer/engineering/lower)
-"elA" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"elE" = (
/obj/structure/disposalpipe/segment{
dir = 2;
@@ -28308,6 +24948,36 @@
dir = 1
},
/area/almayer/medical/containment/cell)
+"elV" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/obj/structure/machinery/door/airlock/almayer/security/reinforced{
+ dir = 2;
+ name = "\improper Execution Equipment"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/execution_storage)
+"elY" = (
+/obj/structure/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/sign/safety/hazard{
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/airlock{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"eme" = (
/obj/structure/pipes/vents/pump{
dir = 4
@@ -28316,6 +24986,14 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/upper_medical)
+"eml" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"emn" = (
/obj/structure/surface/rack,
/obj/effect/spawner/random/toolbox,
@@ -28335,6 +25013,13 @@
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/briefing)
+"emw" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 8
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"emA" = (
/turf/closed/wall/almayer/outer,
/area/almayer/maint/hull/lower/l_a_s)
@@ -28362,16 +25047,32 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
-"enx" = (
-/obj/structure/pipes/vents/pump,
-/obj/structure/machinery/status_display{
- pixel_y = 30
+"enz" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/sign/safety/bridge{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/west{
+ pixel_y = -32
},
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"enF" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out"
},
-/area/almayer/hallways/starboard_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
+"enK" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"enQ" = (
/obj/structure/surface/rack,
/obj/item/frame/table,
@@ -28398,6 +25099,14 @@
/obj/structure/machinery/light/small,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/s_bow)
+"eoy" = (
+/obj/structure/machinery/power/apc/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"eoE" = (
/obj/structure/largecrate/random/secure,
/turf/open/floor/almayer{
@@ -28417,6 +25126,13 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/p_stern)
+"epk" = (
+/obj/structure/surface/table/almayer,
+/obj/item/tank/emergency_oxygen/double,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"epu" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/poddoor/almayer/open{
@@ -28627,39 +25343,21 @@
},
/area/almayer/maint/hull/lower/l_m_s)
"erN" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/pipes/vents/pump/no_boom{
- dir = 1
- },
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_plates"
},
/area/almayer/command/airoom)
-"erS" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_umbilical)
-"esi" = (
-/obj/structure/sign/safety/stairs{
- pixel_x = 15;
- pixel_y = 32
- },
-/obj/structure/sign/safety/west{
- pixel_y = 32
+"esd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/structure/machinery/door_control{
- id = "laddernorthwest";
- name = "North West Ladders Shutters";
- pixel_y = 24;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/port_midship_hallway)
"esm" = (
/obj/structure/sign/safety/storage{
pixel_x = 8;
@@ -28813,9 +25511,7 @@
pixel_y = 24;
req_one_access_txt = "200;91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"euO" = (
/obj/structure/machinery/light{
@@ -28887,16 +25583,13 @@
/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/lifeboat_pumps/north1)
-"ewo" = (
-/obj/structure/sign/safety/escapepod{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "greencorner"
+"ewc" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/machinery/light{
+ dir = 4
},
-/area/almayer/hallways/starboard_hallway)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"ewr" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 1
@@ -28944,10 +25637,23 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
+"exc" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"exi" = (
/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
+"exl" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"exy" = (
/obj/structure/machinery/power/monitor{
name = "Main Power Grid Monitoring"
@@ -28959,6 +25665,14 @@
icon_state = "tcomms"
},
/area/almayer/engineering/upper_engineering/starboard)
+"exQ" = (
+/turf/open/floor/almayer{
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"eyD" = (
+/turf/closed/wall/almayer/reinforced,
+/area/almayer/shipboard/brig/starboard_hallway)
"eyG" = (
/obj/structure/platform,
/turf/open/floor/almayer{
@@ -29044,6 +25758,12 @@
icon_state = "red"
},
/area/almayer/squads/alpha)
+"eAm" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_umbilical)
"eAC" = (
/obj/structure/machinery/light{
dir = 4
@@ -29086,14 +25806,6 @@
"eAN" = (
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
-"eAT" = (
-/obj/structure/machinery/door_control/cl/office/door{
- pixel_y = -20
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/aft_hallway)
"eAU" = (
/obj/structure/bed/chair{
dir = 8
@@ -29127,21 +25839,12 @@
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/living/briefing)
-"eBj" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = 32
- },
+"eBx" = (
+/obj/structure/closet/emcloset/legacy,
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/starboard_hallway)
-"eBC" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
+ icon_state = "cargo"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_umbilical)
+/area/almayer/shipboard/brig/starboard_hallway)
"eBE" = (
/obj/structure/machinery/photocopier{
anchored = 0
@@ -29283,20 +25986,6 @@
},
/turf/open/floor/almayer,
/area/almayer/living/bridgebunks)
-"eDG" = (
-/obj/structure/barricade/handrail{
- dir = 1;
- pixel_y = 2
- },
-/obj/structure/sign/safety/hazard{
- pixel_x = 15;
- pixel_y = -32
- },
-/obj/structure/sign/safety/fire_haz{
- pixel_y = -32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"eEc" = (
/obj/structure/machinery/light,
/obj/effect/decal/warning_stripes{
@@ -29327,6 +26016,21 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/cic_hallway)
+"eEF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
+"eFa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"eFj" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/manifold/hidden/supply{
@@ -29355,6 +26059,17 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/chemistry)
+"eFI" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = 28
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"eFK" = (
/obj/structure/bed{
icon_state = "abed"
@@ -29439,13 +26154,6 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north2)
-"eGg" = (
-/obj/structure/machinery/door/poddoor/railing{
- dir = 8;
- id = "vehicle_elevator_railing_aux"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
"eGh" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/tool/surgery/scalpel{
@@ -29455,34 +26163,13 @@
/obj/item/stack/cable_coil,
/turf/open/floor/almayer,
/area/almayer/squads/alpha_bravo_shared)
-"eGl" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_x = -8;
- pixel_y = 28
- },
-/obj/structure/sign/safety/intercom{
- pixel_x = 14;
- pixel_y = 32
- },
+"eGq" = (
+/obj/structure/largecrate/random/secure,
/turf/open/floor/almayer{
dir = 4;
- icon_state = "bluecorner"
- },
-/area/almayer/hallways/aft_hallway)
-"eGr" = (
-/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
- dir = 1;
- name = "\improper Brig"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "green"
},
-/area/almayer/shipboard/brig/surgery)
+/area/almayer/hallways/lower/port_midship_hallway)
"eGB" = (
/obj/structure/platform_decoration,
/turf/open/floor/almayer,
@@ -29545,6 +26232,31 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/p_stern)
+"eIO" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/machinery/door_control{
+ id = "hangarentrancenorth";
+ name = "North Hangar Podlocks";
+ pixel_y = -26;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
+"eJg" = (
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"eJj" = (
/obj/structure/closet/crate,
/obj/item/ammo_box/magazine/l42a,
@@ -29615,14 +26327,8 @@
/obj/structure/machinery/status_display{
pixel_y = 30
},
-/obj/structure/machinery/light{
- dir = 4;
- invisibility = 101;
- unacidable = 1;
- unslashable = 1
- },
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
+/turf/open/floor/almayer/aicore/glowing/no_build{
+ icon_state = "ai_floor3"
},
/area/almayer/command/airoom)
"eKQ" = (
@@ -29648,14 +26354,30 @@
icon_state = "test_floor4"
},
/area/almayer/maint/hull/upper/u_f_p)
-"eLz" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
+"eLp" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
},
+/obj/structure/machinery/computer/supplycomp/vehicle,
/turf/open/floor/almayer{
- icon_state = "silver"
+ icon_state = "plate"
},
-/area/almayer/hallways/repair_bay)
+/area/almayer/hallways/lower/vehiclehangar)
+"eLu" = (
+/obj/structure/sign/safety/three{
+ pixel_x = 31;
+ pixel_y = -8
+ },
+/obj/structure/sign/safety/ammunition{
+ pixel_x = 32;
+ pixel_y = 7
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "emerald"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"eLC" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/kitchen/tray,
@@ -29684,6 +26406,15 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
+"eLX" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"eMh" = (
/obj/structure/machinery/door/airlock/almayer/generic{
name = "\improper Laundry Room"
@@ -29698,6 +26429,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_p)
+"eMI" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"eMJ" = (
/obj/structure/machinery/light{
unacidable = 1;
@@ -29724,13 +26461,16 @@
icon_state = "test_floor4"
},
/area/almayer/command/cichallway)
+"eMZ" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"eNi" = (
/turf/closed/wall/almayer,
/area/almayer/engineering/ce_room)
-"eNv" = (
-/obj/structure/largecrate/random,
-/turf/open/floor/almayer,
-/area/almayer/engineering/upper_engineering/port)
"eNI" = (
/obj/structure/machinery/door/poddoor/shutters/almayer{
dir = 4;
@@ -29741,6 +26481,12 @@
icon_state = "test_floor4"
},
/area/almayer/medical/containment)
+"eNL" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"eNR" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/firedoor/border_only/almayer{
@@ -29748,6 +26494,14 @@
},
/turf/open/floor/plating,
/area/almayer/shipboard/brig/processing)
+"eOx" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = -28
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"eOM" = (
/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
dir = 2;
@@ -29768,14 +26522,15 @@
icon_state = "red"
},
/area/almayer/hallways/upper/starboard)
-"ePA" = (
-/obj/structure/machinery/light{
- dir = 1
+"ePq" = (
+/obj/structure/pipes/vents/pump{
+ dir = 4
},
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ dir = 8;
+ icon_state = "orange"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/starboard_umbilical)
"ePM" = (
/obj/structure/sign/safety/distribution_pipes{
pixel_x = 32
@@ -29829,6 +26584,15 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_s)
+"eQh" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "silvercorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"eQm" = (
/obj/structure/machinery/power/apc/almayer{
dir = 1
@@ -29837,6 +26601,12 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/p_bow)
+"eQz" = (
+/obj/structure/largecrate/random/case/double,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"eQJ" = (
/obj/structure/bed/chair{
dir = 1
@@ -29899,9 +26669,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
-"eRL" = (
-/turf/open/floor/almayer,
-/area/almayer/shipboard/brig/main_office)
"eRR" = (
/obj/item/clothing/head/helmet/marine{
pixel_x = 16;
@@ -29942,6 +26709,12 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/medical_science)
+"eSp" = (
+/obj/structure/sign/safety/ladder{
+ pixel_x = -16
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"eSU" = (
/obj/structure/prop/almayer/name_stencil{
icon_state = "almayer1"
@@ -29963,6 +26736,15 @@
/obj/effect/landmark/crap_item,
/turf/open/floor/almayer,
/area/almayer/living/briefing)
+"eTx" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"eTD" = (
/obj/structure/bed/chair{
dir = 4
@@ -29971,15 +26753,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_s)
-"eTO" = (
-/obj/structure/sign/safety/maint{
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"eUe" = (
/obj/structure/sign/safety/hvac_old{
pixel_x = 8;
@@ -29987,6 +26760,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/stern)
+"eUf" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"eUh" = (
/obj/structure/window/reinforced{
dir = 8
@@ -30115,6 +26894,17 @@
"eWs" = (
/turf/closed/wall/almayer,
/area/almayer/maint/hull/lower/l_f_s)
+"eWv" = (
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
+"eWx" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"eWF" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -30123,6 +26913,12 @@
icon_state = "test_floor4"
},
/area/almayer/living/basketball)
+"eWN" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"eXb" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -30139,10 +26935,11 @@
"eXk" = (
/obj/effect/landmark/late_join/working_joe,
/obj/effect/landmark/start/working_joe,
-/obj/structure/machinery/light{
- dir = 8
+/obj/structure/machinery/light/small{
+ dir = 8;
+ light_color = "#d69c46"
},
-/turf/open/floor/plating/plating_catwalk,
+/turf/open/floor/plating/plating_catwalk/aicore,
/area/almayer/command/airoom)
"eXq" = (
/turf/closed/wall/almayer,
@@ -30221,9 +27018,7 @@
dir = 8;
pixel_x = 29
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"eYD" = (
/obj/effect/decal/warning_stripes{
@@ -30270,16 +27065,6 @@
icon_state = "orangecorner"
},
/area/almayer/engineering/upper_engineering/port)
-"eZi" = (
-/obj/effect/projector{
- name = "Almayer_Up4";
- vector_x = -19;
- vector_y = 104
- },
-/turf/open/floor/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/port_hallway)
"eZm" = (
/turf/closed/wall/almayer,
/area/almayer/maint/hull/upper/p_stern)
@@ -30310,18 +27095,26 @@
icon_state = "plating"
},
/area/almayer/engineering/lower/engine_core)
+"eZC" = (
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"eZH" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/cells)
-"fad" = (
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- icon_state = "green"
+"eZR" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/junction{
+ dir = 8
},
-/area/almayer/hallways/aft_hallway)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_aft_hallway)
"fag" = (
/obj/effect/decal/cleanable/blood,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -30329,14 +27122,16 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/execution)
-"fau" = (
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/obj/structure/disposalpipe/junction{
+"far" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
dir = 4;
- icon_state = "pipe-j2"
+ icon_state = "orangecorner"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/port_aft_hallway)
"faE" = (
/obj/structure/bookcase{
icon_state = "book-5";
@@ -30459,15 +27254,6 @@
icon_state = "orange"
},
/area/almayer/maint/hull/lower/l_m_s)
-"fbH" = (
-/obj/structure/surface/table/almayer,
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/engineering/lower/engine_core)
"fbR" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -30481,6 +27267,17 @@
icon_state = "red"
},
/area/almayer/hallways/upper/starboard)
+"fbU" = (
+/obj/item/stool,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"fca" = (
/obj/structure/disposalpipe/segment{
layer = 5.1;
@@ -30551,17 +27348,20 @@
/area/almayer/engineering/lower)
"fcX" = (
/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/machinery/light{
- dir = 8
- },
/obj/structure/platform_decoration{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- dir = 8;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 8
},
/area/almayer/command/airoom)
+"fdf" = (
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"fdx" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -30609,6 +27409,14 @@
"feb" = (
/turf/closed/wall/almayer/outer,
/area/almayer/shipboard/brig/execution)
+"feo" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"feq" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -30734,6 +27542,15 @@
icon_state = "green"
},
/area/almayer/squads/req)
+"fgt" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "sterile_green_side"
+ },
+/area/almayer/shipboard/brig/medical)
"fgE" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -30791,6 +27608,12 @@
icon_state = "mono"
},
/area/almayer/engineering/upper_engineering/starboard)
+"fic" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"fie" = (
/turf/open/floor/almayer{
dir = 1;
@@ -30814,6 +27637,11 @@
/obj/item/device/camera_film,
/turf/open/floor/almayer,
/area/almayer/command/corporateliaison)
+"fiH" = (
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"fiN" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/plating/plating_catwalk,
@@ -30843,13 +27671,6 @@
icon_state = "test_floor4"
},
/area/almayer/maint/hull/upper/u_m_s)
-"fkO" = (
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"fkX" = (
/turf/closed/wall/almayer/research/containment/wall/corner{
dir = 8
@@ -30874,6 +27695,18 @@
icon_state = "silver"
},
/area/almayer/living/briefing)
+"fml" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"fmv" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -30883,9 +27716,7 @@
icon_state = "E";
pixel_x = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"fmB" = (
/obj/structure/bed/chair/comfy{
@@ -30895,6 +27726,20 @@
icon_state = "bluecorner"
},
/area/almayer/living/pilotbunks)
+"fmZ" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
+"fnc" = (
+/obj/structure/pipes/vents/scrubber{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"fnv" = (
/obj/structure/machinery/light{
dir = 4
@@ -30928,15 +27773,6 @@
icon_state = "redfull"
},
/area/almayer/medical/upper_medical)
-"fnC" = (
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
- },
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"fnH" = (
/obj/structure/pipes/vents/pump{
dir = 1
@@ -31026,10 +27862,21 @@
icon_state = "red"
},
/area/almayer/hallways/upper/port)
-"fpO" = (
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+"fpI" = (
+/obj/structure/pipes/vents/scrubber{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"fpM" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 2
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"fpR" = (
/obj/structure/surface/table/almayer,
/obj/effect/spawner/random/tool,
@@ -31079,6 +27926,20 @@
icon_state = "bluefull"
},
/area/almayer/command/cichallway)
+"fqw" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4;
+ icon_state = "pipe-j2"
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"fqA" = (
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"fqC" = (
/obj/structure/machinery/vending/cigarette,
/turf/open/floor/almayer{
@@ -31104,6 +27965,26 @@
/obj/structure/surface/table/reinforced/black,
/turf/open/floor/carpet,
/area/almayer/command/cichallway)
+"fqQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
+"fqU" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ layer = 2.5
+ },
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"fqW" = (
/obj/structure/machinery/recharge_station,
/turf/open/floor/almayer{
@@ -31144,6 +28025,42 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
+"frt" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/door_control{
+ id = "courtyard_cells";
+ name = "\improper Courtyard Lockdown Shutters";
+ pixel_x = 6;
+ req_access_txt = "3"
+ },
+/obj/structure/machinery/door_control{
+ id = "Brig Lockdown Shutters";
+ name = "Brig Lockdown Shutters";
+ pixel_x = -6;
+ req_access_txt = "3"
+ },
+/obj/structure/machinery/door_control{
+ id = "courtyard window";
+ name = "Courtyard Window Shutters";
+ pixel_x = -6;
+ pixel_y = 9;
+ req_access_txt = "3"
+ },
+/obj/structure/machinery/door_control{
+ id = "Cell Privacy Shutters";
+ name = "Cell Privacy Shutters";
+ pixel_x = 6;
+ pixel_y = 9;
+ req_access_txt = "3"
+ },
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/warden_office)
"frz" = (
/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
name = "\improper Exterior Airlock";
@@ -31161,6 +28078,13 @@
icon_state = "red"
},
/area/almayer/shipboard/starboard_missiles)
+"frI" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"frM" = (
/obj/effect/decal/warning_stripes{
icon_state = "S";
@@ -31170,9 +28094,7 @@
icon_state = "NW-out";
pixel_y = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"frV" = (
/obj/structure/toilet{
@@ -31180,26 +28102,16 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_a_s)
-"frX" = (
-/obj/structure/machinery/optable,
-/obj/structure/sign/safety/medical{
- pixel_x = 8;
- pixel_y = 29
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "sterile_green_corner"
- },
-/area/almayer/shipboard/brig/surgery)
-"fsd" = (
+"fsf" = (
/obj/effect/decal/warning_stripes{
- icon_state = "S"
+ icon_state = "N";
+ pixel_y = 1
},
+/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+ icon_state = "orangecorner"
},
-/area/almayer/hallways/vehiclehangar)
+/area/almayer/hallways/lower/port_umbilical)
"fsp" = (
/obj/structure/barricade/handrail{
dir = 1;
@@ -31210,15 +28122,18 @@
icon_state = "plate"
},
/area/almayer/living/gym)
-"fsH" = (
-/obj/structure/machinery/firealarm{
- pixel_y = 28
+"fsu" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"fsR" = (
/obj/structure/pipes/vents/pump{
dir = 8;
@@ -31241,23 +28156,15 @@
icon_state = "plating_striped"
},
/area/almayer/living/cryo_cells)
-"fti" = (
-/obj/structure/machinery/door/poddoor/railing{
- dir = 2;
- id = "vehicle_elevator_railing"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+"ftb" = (
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 5;
+ icon_state = "blue"
},
-/area/almayer/hallways/vehiclehangar)
-"ftx" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"ftG" = (
/obj/structure/sign/safety/life_support{
pixel_x = 8;
@@ -31267,16 +28174,15 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
-"fut" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
+"ftZ" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 32
},
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+ dir = 4;
+ icon_state = "green"
},
-/area/almayer/hallways/vehiclehangar)
+/area/almayer/hallways/upper/aft_hallway)
"fuz" = (
/obj/structure/machinery/cm_vending/clothing/pilot_officer,
/turf/open/floor/almayer{
@@ -31303,6 +28209,22 @@
icon_state = "dark_sterile"
},
/area/almayer/engineering/laundry)
+"fuU" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/port_umbilical)
+"fuY" = (
+/obj/structure/bed/chair/bolted{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/interrogation)
"fva" = (
/obj/structure/machinery/light{
dir = 1
@@ -31331,6 +28253,19 @@
icon_state = "silver"
},
/area/almayer/living/briefing)
+"fvj" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ layer = 2.5
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"fvo" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/clothing/glasses/welding{
@@ -31358,6 +28293,12 @@
icon_state = "redfull"
},
/area/almayer/command/cic)
+"fvE" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "bluecorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"fvJ" = (
/obj/structure/machinery/cm_vending/sorted/medical/bolted,
/turf/open/floor/almayer{
@@ -31365,13 +28306,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lockerroom)
-"fvK" = (
-/obj/structure/sign/safety/galley{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"fvN" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -31382,6 +28316,19 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/port_point_defense)
+"fvV" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/sign/safety/security{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/restrictedarea{
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"fwD" = (
/obj/item/reagent_container/food/snacks/grown/poppy{
pixel_x = 4;
@@ -31392,6 +28339,9 @@
icon_state = "plate"
},
/area/almayer/living/starboard_garden)
+"fwK" = (
+/turf/closed/wall/almayer/outer,
+/area/almayer/hallways/lower/starboard_umbilical)
"fwM" = (
/obj/structure/surface/table/almayer,
/obj/item/paper,
@@ -31458,14 +28408,6 @@
icon_state = "plate"
},
/area/almayer/shipboard/weapon_room)
-"fyd" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 1"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
"fyp" = (
/obj/structure/machinery/cryopod{
layer = 3.1;
@@ -31483,6 +28425,12 @@
},
/turf/open/floor/plating/almayer,
/area/almayer/living/briefing)
+"fyI" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = -25
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/warden_office)
"fyT" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -31501,6 +28449,17 @@
icon_state = "test_floor4"
},
/area/almayer/maint/upper/mess)
+"fzc" = (
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
+"fzm" = (
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"fzq" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -31569,12 +28528,21 @@
/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/armory)
-"fAE" = (
-/obj/structure/closet/firecloset/full,
+"fAW" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
+"fBi" = (
/turf/open/floor/almayer{
- icon_state = "cargo"
+ dir = 4;
+ icon_state = "redcorner"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/lower/starboard_midship_hallway)
"fBo" = (
/obj/structure/machinery/light/small{
dir = 4
@@ -31583,26 +28551,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_s)
-"fBD" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
+"fBA" = (
+/obj/structure/sign/safety/high_voltage{
+ pixel_y = -32
},
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
+/obj/structure/sign/safety/hazard{
+ pixel_x = 15;
+ pixel_y = -32
},
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/almayer/hallways/vehiclehangar)
-"fBL" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment{
- dir = 8;
- icon_state = "pipe-c"
+ icon_state = "blue"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"fBO" = (
/obj/structure/machinery/chem_master{
vial_maker = 1
@@ -31615,6 +28575,14 @@
icon_state = "mono"
},
/area/almayer/medical/medical_science)
+"fCg" = (
+/obj/effect/projector{
+ name = "Almayer_Up4";
+ vector_x = -19;
+ vector_y = 104
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"fCi" = (
/obj/structure/surface/table/almayer,
/obj/item/organ/lungs/prosthetic,
@@ -31628,12 +28596,33 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/lifeboat)
+"fCG" = (
+/obj/structure/bed/chair/office/dark{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/oil,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"fCL" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/upper_engineering/port)
+"fCP" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"fCT" = (
+/obj/structure/surface/table/almayer,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/engineering/lower/engine_core)
"fDh" = (
/obj/effect/decal/warning_stripes{
icon_state = "SW-out";
@@ -31656,6 +28645,14 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/lower_medical_medbay)
+"fDk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"fDG" = (
/obj/structure/machinery/vending/coffee,
/obj/structure/machinery/light{
@@ -31721,13 +28718,17 @@
icon_state = "plate"
},
/area/almayer/medical/morgue)
+"fEF" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"fEN" = (
/obj/structure/machinery/camera/autoname/almayer/containment/ares{
dir = 4
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"fER" = (
/obj/structure/machinery/autolathe,
@@ -31812,6 +28813,16 @@
icon_state = "dark_sterile"
},
/area/almayer/living/numbertwobunks)
+"fGd" = (
+/obj/structure/machinery/door/poddoor/railing{
+ dir = 2;
+ id = "vehicle_elevator_railing"
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"fGg" = (
/obj/effect/decal/cleanable/blood/oil/streak,
/turf/open/floor/almayer,
@@ -31854,6 +28865,15 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_s)
+"fGD" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"fHb" = (
/obj/structure/largecrate/random/case/small,
/turf/open/floor/plating/plating_catwalk,
@@ -31893,7 +28913,7 @@
/obj/structure/machinery/door/airlock/multi_tile/almayer/almayer{
access_modified = 1;
name = "\improper Requisitions Auxiliary Storage Room";
- req_one_access = "19;21"
+ req_one_access_txt = "19;21"
},
/turf/open/floor/almayer{
icon_state = "plate"
@@ -31927,6 +28947,15 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"fJt" = (
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"fJu" = (
/obj/effect/landmark/yautja_teleport,
/turf/open/floor/plating/plating_catwalk,
@@ -31969,18 +28998,16 @@
/obj/structure/pipes/standard/simple/hidden/supply/no_boom{
dir = 4
},
-/turf/open/floor/almayer/no_build{
- dir = 8;
- icon_state = "cargo_arrow"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_arrow";
+ dir = 8
},
/area/almayer/command/airoom)
"fKe" = (
/obj/effect/decal/warning_stripes{
icon_state = "SW-out"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"fKh" = (
/obj/structure/window/framed/almayer,
@@ -32060,6 +29087,13 @@
icon_state = "plate"
},
/area/almayer/living/grunt_rnr)
+"fLf" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"fLg" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/reagent_container/food/snacks/wrapped/barcardine{
@@ -32141,9 +29175,9 @@
pixel_y = -8;
req_one_access_txt = "90;91;92"
},
-/turf/open/floor/almayer/no_build{
- dir = 4;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 4
},
/area/almayer/command/airoom)
"fMt" = (
@@ -32153,7 +29187,7 @@
plane = -7
},
/obj/effect/step_trigger/ares_alert/core,
-/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
+/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{
closed_layer = 3.2;
id = "ARES Emergency";
layer = 3.2;
@@ -32174,19 +29208,6 @@
icon_state = "test_floor4"
},
/area/almayer/command/airoom)
-"fMA" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out"
- },
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/sign/safety/stairs{
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"fMU" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -32200,6 +29221,15 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_f_p)
+"fNd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/vents/pump/on,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"fNi" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -32215,13 +29245,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/hangar)
-"fNC" = (
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/obj/structure/disposalpipe/junction{
- dir = 8
+"fNH" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "cargo_arrow"
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/lower/starboard_midship_hallway)
"fOk" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 9
@@ -32386,6 +29415,15 @@
},
/turf/open/floor/carpet,
/area/almayer/command/corporateliaison)
+"fQU" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"fRg" = (
/obj/structure/closet/emcloset,
/obj/structure/machinery/camera/autoname/almayer{
@@ -32411,6 +29449,13 @@
},
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
+"fRL" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 4;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"fRS" = (
/obj/effect/landmark/start/warden,
/obj/effect/decal/warning_stripes{
@@ -32445,13 +29490,6 @@
icon_state = "orange"
},
/area/almayer/engineering/lower)
-"fSK" = (
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"fTj" = (
/obj/effect/step_trigger/clone_cleaner,
/obj/effect/decal/warning_stripes{
@@ -32486,19 +29524,6 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/laundry)
-"fTU" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
"fUz" = (
/obj/structure/surface/rack,
/obj/item/storage/box/cups{
@@ -32600,6 +29625,15 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/upper_engineering/port)
+"fXf" = (
+/obj/structure/machinery/power/apc/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"fXg" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -32622,11 +29656,6 @@
icon_state = "plate"
},
/area/almayer/shipboard/starboard_point_defense)
-"fXB" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"fXE" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/emails{
@@ -32715,18 +29744,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cic_hallway)
-"fZx" = (
-/obj/structure/sign/safety/security{
- pixel_x = 15;
- pixel_y = 32
- },
-/obj/structure/sign/safety/restrictedarea{
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"fZy" = (
/obj/structure/sign/poster{
pixel_y = -32
@@ -32749,6 +29766,9 @@
icon_state = "orangecorner"
},
/area/almayer/engineering/lower)
+"fZE" = (
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"fZG" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 4
@@ -32796,15 +29816,12 @@
icon_state = "test_floor4"
},
/area/almayer/living/briefing)
-"gax" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
+"gar" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
},
-/area/almayer/shipboard/brig/main_office)
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"gaJ" = (
/turf/closed/wall/almayer,
/area/almayer/shipboard/brig/cryo)
@@ -32836,9 +29853,7 @@
pixel_x = 8;
pixel_y = -8
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"gbg" = (
/obj/structure/sign/safety/terminal{
@@ -32862,8 +29877,8 @@
pixel_y = -8;
req_one_access_txt = "90;91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
+/turf/open/floor/almayer/aicore/glowing/no_build{
+ icon_state = "ai_floor3"
},
/area/almayer/command/airoom)
"gbs" = (
@@ -32884,6 +29899,16 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/processing)
+"gbR" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"gcm" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -32918,12 +29943,6 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/sea_office)
-"gcT" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"gde" = (
/obj/structure/machinery/camera/autoname/almayer{
dir = 8;
@@ -32943,15 +29962,16 @@
icon_state = "red"
},
/area/almayer/hallways/hangar)
-"gds" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+"gdG" = (
+/obj/structure/bed/chair{
+ dir = 8;
+ pixel_y = 3
},
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "silvercorner"
+ dir = 5;
+ icon_state = "red"
},
-/area/almayer/hallways/repair_bay)
+/area/almayer/shipboard/brig/mp_bunks)
"gdJ" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -33021,15 +30041,30 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/medical_science)
-"geH" = (
-/obj/structure/machinery/camera/autoname/almayer{
- name = "ship-grade camera"
+"geu" = (
+/obj/structure/machinery/light,
+/obj/effect/projector{
+ name = "Almayer_Up4";
+ vector_x = -19;
+ vector_y = 104
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
+"gfd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/machinery/power/apc/almayer,
+/obj/structure/sign/safety/rewire{
+ pixel_y = -38
},
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
+ icon_state = "red"
},
-/area/almayer/hallways/stern_hallway)
+/area/almayer/shipboard/brig/starboard_hallway)
"gfo" = (
/obj/structure/machinery/camera/autoname/almayer{
dir = 1;
@@ -33043,6 +30078,15 @@
icon_state = "plate"
},
/area/almayer/living/grunt_rnr)
+"gft" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"gfu" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -33052,10 +30096,11 @@
icon_state = "S";
layer = 3.3
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
+"gfv" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"gfE" = (
/obj/structure/machinery/recharge_station,
/turf/open/floor/plating,
@@ -33095,6 +30140,14 @@
icon_state = "mono"
},
/area/almayer/medical/medical_science)
+"ggo" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"ggt" = (
/turf/open/floor/almayer{
dir = 5;
@@ -33152,21 +30205,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_f_s)
-"ghD" = (
-/obj/structure/sign/safety/autoopenclose{
- pixel_x = 7;
- pixel_y = 32
- },
+"ghF" = (
/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
-"ghX" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 14"
+/area/almayer/hallways/lower/vehiclehangar)
+"gii" = (
+/obj/structure/bed/chair/bolted{
+ dir = 8
},
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ dir = 1;
+ icon_state = "red"
},
-/area/almayer/engineering/lower/engine_core)
+/area/almayer/shipboard/brig/interrogation)
"gio" = (
/obj/structure/closet/emcloset,
/obj/structure/sign/safety/restrictedarea{
@@ -33188,15 +30238,6 @@
icon_state = "orange"
},
/area/almayer/squads/bravo)
-"giB" = (
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"giR" = (
/obj/structure/machinery/status_display{
pixel_y = -30
@@ -33210,6 +30251,20 @@
icon_state = "silver"
},
/area/almayer/shipboard/brig/cic_hallway)
+"gjg" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_x = -17;
+ pixel_y = -8
+ },
+/obj/structure/sign/safety/stairs{
+ pixel_x = -17;
+ pixel_y = 7
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"gjm" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -33222,10 +30277,6 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"gjn" = (
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"gjq" = (
/obj/structure/platform{
dir = 8
@@ -33265,9 +30316,7 @@
/obj/item/storage/box/ids{
pixel_x = -4
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"gjB" = (
/obj/structure/machinery/light{
@@ -33310,6 +30359,15 @@
icon_state = "plate"
},
/area/almayer/command/cic)
+"glc" = (
+/obj/structure/machinery/firealarm{
+ pixel_y = 28
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"gll" = (
/obj/structure/machinery/power/apc/almayer{
dir = 1
@@ -33338,6 +30396,17 @@
icon_state = "mono"
},
/area/almayer/medical/medical_science)
+"glG" = (
+/obj/structure/surface/rack,
+/obj/item/storage/box/gloves{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/box/masks,
+/turf/open/floor/almayer{
+ icon_state = "sterile_green_side"
+ },
+/area/almayer/shipboard/brig/medical)
"glH" = (
/obj/structure/machinery/door/airlock/almayer/engineering{
dir = 2;
@@ -33351,6 +30420,13 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/lower/workshop)
+"glP" = (
+/obj/structure/janitorialcart,
+/obj/item/tool/mop,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/shipboard/brig/execution_storage)
"gmb" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 1
@@ -33378,6 +30454,12 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/port)
+"gmZ" = (
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"gnu" = (
/obj/structure/surface/table/almayer,
/obj/item/facepaint/green,
@@ -33389,6 +30471,12 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south1)
+"gnB" = (
+/obj/structure/platform_decoration{
+ dir = 8
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"gnM" = (
/obj/structure/surface/rack,
/obj/item/frame/table,
@@ -33398,15 +30486,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_f_p)
-"gob" = (
-/obj/structure/closet/fireaxecabinet{
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"gof" = (
/obj/structure/platform_decoration{
dir = 1
@@ -33434,6 +30513,19 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/weapon_room)
+"goo" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ dir = 8;
+ id = "laddersoutheast";
+ name = "\improper South East Ladders Shutters"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"goy" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/disposalpipe/segment{
@@ -33499,12 +30591,22 @@
"gpY" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/lifeboat_pumps/north1)
+"gqf" = (
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/stern_hallway)
"gqt" = (
/obj/structure/sign/safety/storage{
pixel_x = -17
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_a_s)
+"gqv" = (
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"gqP" = (
/obj/structure/largecrate/random/case,
/obj/structure/machinery/camera/autoname/almayer{
@@ -33543,10 +30645,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/s_bow)
-"grF" = (
-/obj/structure/pipes/vents/scrubber,
-/turf/open/floor/almayer,
-/area/almayer/shipboard/brig/main_office)
"grG" = (
/obj/structure/sign/safety/restrictedarea{
pixel_x = -17
@@ -33692,6 +30790,18 @@
icon_state = "silvercorner"
},
/area/almayer/command/cichallway)
+"gtD" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
+"gtH" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"gtQ" = (
/obj/effect/decal/warning_stripes{
icon_state = "SE-out";
@@ -33712,14 +30822,6 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/perma)
-"guc" = (
-/obj/structure/pipes/vents/scrubber{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"guo" = (
/obj/effect/decal/warning_stripes{
icon_state = "SW-out";
@@ -33739,6 +30841,14 @@
icon_state = "plate"
},
/area/almayer/maint/upper/u_m_s)
+"guK" = (
+/obj/effect/projector{
+ name = "Almayer_Up3";
+ vector_x = -1;
+ vector_y = 102
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"guS" = (
/obj/structure/reagent_dispensers/fueltank/custom,
/turf/open/floor/almayer{
@@ -33773,6 +30883,10 @@
icon_state = "silver"
},
/area/almayer/command/cic)
+"gvK" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"gvU" = (
/obj/structure/machinery/disposal,
/obj/structure/disposalpipe/trunk{
@@ -33868,6 +30982,17 @@
icon_state = "red"
},
/area/almayer/hallways/upper/starboard)
+"gxt" = (
+/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
+ name = "\improper Warden's Office"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/warden_office)
"gxI" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/maint/hull/upper/s_bow)
@@ -33886,6 +31011,12 @@
dir = 8
},
/area/almayer/medical/containment/cell)
+"gxR" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/stern_hallway)
"gxU" = (
/obj/structure/surface/table/almayer,
/obj/item/toy/deck,
@@ -33894,39 +31025,41 @@
icon_state = "silver"
},
/area/almayer/shipboard/brig/cic_hallway)
+"gyb" = (
+/obj/structure/sign/safety/medical{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"gym" = (
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/mp_bunks)
+"gyn" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"gyv" = (
/obj/structure/platform_decoration{
dir = 4
},
/turf/open/floor/almayer,
/area/almayer/living/briefing)
-"gyy" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = 32
- },
+"gyw" = (
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
-"gyC" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 8;
- name = "ship-grade camera"
- },
-/obj/structure/sign/safety/two{
- pixel_x = 32;
- pixel_y = -8
- },
-/obj/structure/sign/safety/ammunition{
- pixel_x = 32;
- pixel_y = 7
+ icon_state = "plate"
},
+/area/almayer/hallways/lower/port_aft_hallway)
+"gyE" = (
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
+ dir = 1;
+ icon_state = "green"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/port_aft_hallway)
"gyH" = (
/obj/item/tool/warning_cone{
pixel_x = -12;
@@ -34013,6 +31146,16 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/morgue)
+"gzM" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/sign/safety/stairs{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"gzN" = (
/obj/structure/sign/safety/maint{
pixel_x = 8;
@@ -34037,9 +31180,7 @@
pixel_y = 8;
req_one_access_txt = "91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"gAj" = (
/obj/structure/bed/chair/comfy/charlie{
@@ -34101,6 +31242,12 @@
},
/turf/open/floor/almayer,
/area/almayer/maint/hull/upper/u_f_p)
+"gBg" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"gBo" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 5
@@ -34131,21 +31278,18 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south1)
+"gBZ" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "redfull"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"gCf" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/almayer{
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south1)
-"gCl" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"gCu" = (
/obj/structure/prop/invuln/lattice_prop{
icon_state = "lattice12";
@@ -34217,6 +31361,11 @@
},
/turf/open/floor/almayer,
/area/almayer/engineering/lower/engine_core)
+"gDQ" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"gDW" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -34280,6 +31429,24 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south1)
+"gFL" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 6
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
+"gFN" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"gFP" = (
/turf/closed/wall/almayer/outer,
/area/almayer/shipboard/stern_point_defense)
@@ -34306,22 +31473,6 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
-"gGp" = (
-/obj/structure/surface/table/almayer,
-/obj/item/clothing/mask/cigarette/pipe{
- pixel_x = 8
- },
-/obj/structure/transmitter/rotary{
- name = "Reporter Telephone";
- phone_category = "Almayer";
- phone_id = "Reporter";
- pixel_x = -4;
- pixel_y = 6
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/command/combat_correspondent)
"gGr" = (
/obj/structure/machinery/vending/cigarette,
/turf/open/floor/almayer{
@@ -34351,6 +31502,14 @@
},
/turf/open/floor/plating,
/area/almayer/hallways/hangar)
+"gGw" = (
+/obj/structure/machinery/door/airlock/almayer/maint{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"gGx" = (
/obj/structure/filingcabinet/chestdrawer{
density = 0;
@@ -34420,6 +31579,17 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/processing)
+"gHX" = (
+/obj/effect/projector{
+ name = "Almayer_Down2";
+ vector_x = 1;
+ vector_y = -100
+ },
+/turf/open/floor/almayer{
+ allow_construction = 0;
+ icon_state = "plate"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"gHZ" = (
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -34443,6 +31613,21 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_p)
+"gIz" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 1;
+ name = "ship-grade camera"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"gII" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -34454,6 +31639,19 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/upper_engineering/port)
+"gIN" = (
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
+"gIO" = (
+/obj/structure/bed/chair/bolted{
+ dir = 8
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/interrogation)
"gIU" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/box/tapes{
@@ -34478,6 +31676,32 @@
},
/turf/open/floor/almayer,
/area/almayer/maint/hull/upper/u_f_s)
+"gJp" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/computer/emails{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/repair_bay)
+"gJE" = (
+/obj/structure/machinery/door_control{
+ id = "Interrogation Shutters";
+ name = "\improper Shutters";
+ pixel_x = 24;
+ pixel_y = 12;
+ req_access_txt = "3"
+ },
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 8;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/interrogation)
"gJF" = (
/turf/closed/wall/almayer/outer,
/area/almayer/maint/hull/upper/s_stern)
@@ -34524,12 +31748,25 @@
icon_state = "red"
},
/area/almayer/hallways/upper/starboard)
+"gKo" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_umbilical)
"gKv" = (
/obj/effect/landmark/yautja_teleport,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/maint/hull/upper/p_bow)
+"gKw" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4;
+ icon_state = "pipe-j2"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"gKB" = (
/obj/structure/machinery/portable_atmospherics/hydroponics,
/obj/structure/machinery/firealarm{
@@ -34549,6 +31786,11 @@
icon_state = "redfull"
},
/area/almayer/shipboard/port_missiles)
+"gKK" = (
+/turf/open/floor/almayer{
+ icon_state = "silvercorner"
+ },
+/area/almayer/hallways/lower/repair_bay)
"gKR" = (
/obj/structure/closet/emcloset,
/obj/structure/machinery/light{
@@ -34653,18 +31895,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/port_emb)
-"gMa" = (
-/obj/structure/sign/safety/escapepod{
- pixel_y = -32
- },
-/obj/structure/sign/safety/east{
- pixel_x = 15;
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"gMd" = (
/obj/structure/surface/table/almayer,
/obj/item/clipboard,
@@ -34674,6 +31904,13 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
+"gMk" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/sign/safety/maint{
+ pixel_x = -17
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"gMJ" = (
/obj/structure/largecrate/supply/weapons/pistols,
/turf/open/floor/plating/plating_catwalk,
@@ -34707,10 +31944,20 @@
unacidable = 0;
unslashable = 0
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
+"gMS" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ name = "ship-grade camera"
+ },
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
+ },
+/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"gMU" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -34748,19 +31995,18 @@
icon_state = "plate"
},
/area/almayer/squads/charlie_delta_shared)
-"gNG" = (
-/obj/structure/surface/table/almayer,
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
+"gNy" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
},
/turf/open/floor/almayer{
- icon_state = "cargo"
+ dir = 5;
+ icon_state = "plating"
},
-/area/almayer/engineering/lower/engine_core)
+/area/almayer/hallways/lower/vehiclehangar)
"gNN" = (
/obj/structure/bed/chair/office/dark,
/turf/open/floor/plating/plating_catwalk,
@@ -34812,9 +32058,9 @@
unacidable = 0;
unslashable = 0
},
-/turf/open/floor/almayer/no_build{
- dir = 4;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 4
},
/area/almayer/command/airoom)
"gOC" = (
@@ -34831,6 +32077,12 @@
},
/turf/open/floor/almayer,
/area/almayer/engineering/lower/workshop/hangar)
+"gOS" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "emerald"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"gPc" = (
/obj/structure/machinery/power/terminal{
dir = 1
@@ -34846,24 +32098,11 @@
vector_x = -97;
vector_y = 65
},
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
- },
/obj/structure/stairs{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- dir = 4
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
-"gPF" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"gPS" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -34873,6 +32112,16 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_s)
+"gPU" = (
+/obj/structure/machinery/door/poddoor/almayer/open{
+ dir = 4;
+ id = "Hangar Lockdown";
+ name = "\improper Hangar Lockdown Blast Door"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"gQk" = (
/obj/structure/surface/table/almayer,
/obj/structure/sign/safety/terminal{
@@ -34927,6 +32176,17 @@
},
/turf/open/floor/almayer,
/area/almayer/hallways/hangar)
+"gRJ" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"gRP" = (
/obj/structure/machinery/power/apc/almayer{
dir = 1
@@ -34981,12 +32241,28 @@
},
/turf/open/floor/almayer,
/area/almayer/maint/hull/upper/u_f_s)
+"gSz" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/mp_bunks)
"gSH" = (
/obj/structure/largecrate/random/barrel/white,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_s)
+"gTk" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/effect/spawner/random/tool,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"gTH" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/machinery/computer/skills{
@@ -35000,8 +32276,8 @@
dir = 4;
pixel_y = -18
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
+/turf/open/floor/almayer/aicore/glowing/no_build{
+ icon_state = "ai_floor3"
},
/area/almayer/command/airoom)
"gTK" = (
@@ -35012,6 +32288,20 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/p_bow)
+"gTV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
+/obj/structure/sign/safety/autoopenclose{
+ pixel_x = 7;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"gUf" = (
/obj/structure/machinery/portable_atmospherics/hydroponics,
/turf/open/floor/almayer{
@@ -35031,6 +32321,13 @@
/obj/structure/machinery/power/apc/almayer,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/lower/s_bow)
+"gUk" = (
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/obj/structure/disposalpipe/junction{
+ dir = 8
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"gUn" = (
/obj/structure/largecrate/random/barrel/red,
/turf/open/floor/plating/plating_catwalk,
@@ -35072,9 +32369,9 @@
/obj/structure/pipes/standard/simple/hidden/supply/no_boom{
dir = 4
},
-/turf/open/floor/almayer/no_build{
- dir = 4;
- icon_state = "cargo_arrow"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_arrow";
+ dir = 4
},
/area/almayer/command/airoom)
"gUS" = (
@@ -35137,6 +32434,30 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/lifeboat_pumps/south1)
+"gWm" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_umbilical)
+"gWt" = (
+/obj/structure/surface/table/almayer,
+/obj/item/pipe{
+ dir = 9
+ },
+/obj/item/tool/screwdriver{
+ layer = 3.6;
+ pixel_x = 9;
+ pixel_y = 8
+ },
+/obj/item/tool/crowbar/red{
+ pixel_x = 17
+ },
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"gWu" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -35202,6 +32523,34 @@
icon_state = "plating"
},
/area/almayer/shipboard/sea_office)
+"gYg" = (
+/obj/structure/surface/table/almayer,
+/obj/item/prop/almayer/flight_recorder{
+ pixel_x = 9
+ },
+/obj/item/tool/weldingtool{
+ pixel_x = -7;
+ pixel_y = 3
+ },
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
+"gYj" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1;
+ pixel_y = 1
+ },
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"gYl" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -35221,6 +32570,15 @@
icon_state = "redfull"
},
/area/almayer/living/offices/flight)
+"gYx" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"gYI" = (
/obj/structure/platform{
dir = 4
@@ -35255,6 +32613,16 @@
icon_state = "test_floor4"
},
/area/almayer/command/lifeboat)
+"gZW" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"had" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -35339,12 +32707,16 @@
icon_state = "plate"
},
/area/almayer/maint/lower/s_bow)
-"haT" = (
-/obj/structure/machinery/light,
+"haY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
- icon_state = "green"
+ icon_state = "redcorner"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/shipboard/brig/starboard_hallway)
"hbl" = (
/obj/structure/machinery/door/airlock/almayer/maint{
dir = 1
@@ -35378,6 +32750,12 @@
icon_state = "silver"
},
/area/almayer/living/auxiliary_officer_office)
+"hbA" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_umbilical)
"hbE" = (
/obj/structure/largecrate/random,
/obj/item/reagent_container/food/snacks/cheesecakeslice{
@@ -35433,15 +32811,6 @@
icon_state = "silver"
},
/area/almayer/engineering/port_atmos)
-"hcs" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
"hcw" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/explosive/grenade/high_explosive/training,
@@ -35465,21 +32834,21 @@
icon_state = "cargo"
},
/area/almayer/squads/delta)
+"hcX" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/obj/structure/machinery/power/reactor,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/engineering/lower/engine_core)
"hdd" = (
/turf/open/floor/almayer{
dir = 9;
icon_state = "red"
},
/area/almayer/shipboard/starboard_missiles)
-"hdh" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/almayer/hallways/vehiclehangar)
"hds" = (
/obj/effect/decal/warning_stripes{
icon_state = "SW-out"
@@ -35505,27 +32874,34 @@
icon_state = "green"
},
/area/almayer/squads/req)
-"heb" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+"hdQ" = (
+/obj/structure/closet/secure_closet{
+ name = "\improper Execution Firearms"
},
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/item/weapon/gun/rifle/m4ra,
+/obj/item/weapon/gun/rifle/m4ra,
+/obj/item/weapon/gun/rifle/m4ra,
+/obj/item/ammo_box/magazine/m4ra,
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/shipboard/brig/execution_storage)
+"hdV" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"hec" = (
/turf/open/floor/almayer{
dir = 8;
icon_state = "sterile_green_side"
},
/area/almayer/medical/medical_science)
-"hee" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"heo" = (
/obj/structure/machinery/power/apc/almayer{
cell_type = /obj/item/cell/hyper;
@@ -35596,6 +32972,15 @@
},
/turf/open/floor/almayer,
/area/almayer/engineering/lower/engine_core)
+"hfc" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"hfv" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/almayer{
@@ -35647,6 +33032,37 @@
icon_state = "orange"
},
/area/almayer/engineering/lower)
+"hgp" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
+"hgs" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"hgA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"hgB" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/intel,
@@ -35691,17 +33107,6 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/req)
-"hgV" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 15"
- },
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
"hgZ" = (
/obj/structure/machinery/door_control{
dir = 1;
@@ -35733,17 +33138,6 @@
},
/turf/open/floor/plating,
/area/almayer/maint/lower/constr)
-"hhe" = (
-/obj/structure/sign/safety/nonpress_0g{
- pixel_y = 32
- },
-/obj/structure/sign/safety/press_area_ag{
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_umbilical)
"hhg" = (
/obj/structure/surface/rack,
/turf/open/floor/almayer{
@@ -35764,17 +33158,6 @@
/obj/structure/bed/sofa/vert/grey/bot,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
-"hhW" = (
-/obj/structure/surface/rack,
-/obj/item/storage/box/gloves{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/box/masks,
-/turf/open/floor/almayer{
- icon_state = "sterile_green_side"
- },
-/area/almayer/shipboard/brig/surgery)
"hif" = (
/obj/structure/machinery/floodlight/landing,
/turf/open/floor/almayer{
@@ -35814,6 +33197,16 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cic_hallway)
+"hiP" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"hja" = (
/obj/structure/machinery/light/small,
/turf/open/floor/almayer{
@@ -35873,6 +33266,12 @@
icon_state = "redcorner"
},
/area/almayer/shipboard/brig/processing)
+"hjQ" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"hjT" = (
/obj/structure/machinery/light/small{
dir = 1;
@@ -35904,12 +33303,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/port_point_defense)
-"hkE" = (
-/obj/structure/closet/firecloset,
-/turf/open/floor/almayer{
- icon_state = "cargo"
+"hkC" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_y = -32
},
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"hkG" = (
/obj/structure/sign/safety/ammunition{
pixel_y = -32
@@ -35975,6 +33374,23 @@
icon_state = "plate"
},
/area/almayer/engineering/lower)
+"hlI" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/recharger,
+/obj/structure/sign/safety/terminal{
+ pixel_y = 32
+ },
+/obj/structure/transmitter/rotary{
+ name = "Brig Wardens's Office Telephone";
+ phone_category = "MP Dept.";
+ phone_id = "Brig Warden's Office";
+ pixel_x = 15
+ },
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/warden_office)
"hlT" = (
/obj/effect/decal/warning_stripes{
icon_state = "SW-out";
@@ -36013,20 +33429,6 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south2)
-"hmc" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "laddernorthwest";
- name = "\improper North West Ladders Shutters"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"hme" = (
/obj/effect/decal/warning_stripes{
icon_state = "NW-out";
@@ -36049,6 +33451,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/upper/starboard)
+"hmv" = (
+/obj/structure/machinery/power/reactor,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/engineering/lower/engine_core)
"hmw" = (
/obj/structure/platform{
dir = 1
@@ -36073,6 +33481,16 @@
"hmA" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/maint/hull/upper/p_bow)
+"hmB" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/south{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"hmC" = (
/obj/structure/machinery/cm_vending/sorted/marine_food{
density = 0;
@@ -36097,20 +33515,6 @@
icon_state = "cargo_arrow"
},
/area/almayer/squads/alpha_bravo_shared)
-"hmG" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/door/airlock/almayer/security/glass{
- name = "\improper Brig Breakroom"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- layer = 1.9
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/main_office)
"hmS" = (
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer{
@@ -36168,6 +33572,22 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"hnE" = (
+/obj/structure/surface/table/almayer,
+/obj/item/storage/box/ids{
+ pixel_x = -6;
+ pixel_y = 8
+ },
+/obj/item/device/flash,
+/obj/structure/machinery/light{
+ dir = 8;
+ invisibility = 101
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"hnI" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -36181,6 +33601,32 @@
icon_state = "test_floor4"
},
/area/almayer/living/pilotbunks)
+"hnP" = (
+/obj/structure/barricade/handrail{
+ dir = 1;
+ pixel_y = 2
+ },
+/obj/structure/sign/safety/hazard{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/fire_haz{
+ pixel_y = -32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
+"hoc" = (
+/obj/structure/machinery/door/poddoor/railing{
+ dir = 2;
+ id = "vehicle_elevator_railing"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"hog" = (
/obj/structure/machinery/light/small,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -36190,30 +33636,30 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
-"hon" = (
-/obj/structure/sign/safety/medical{
- pixel_x = 8;
- pixel_y = 32
- },
+"hoK" = (
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
-"hop" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
+ dir = 8;
+ icon_state = "red"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+/area/almayer/shipboard/brig/starboard_hallway)
"hoT" = (
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_s)
+"hoW" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/adv,
+/obj/item/device/defibrillator,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "sterile_green_side"
+ },
+/area/almayer/shipboard/brig/medical)
"hpk" = (
/obj/structure/sign/safety/fire_haz{
pixel_x = 8;
@@ -36279,22 +33725,26 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_s)
+"hqp" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"hqu" = (
/obj/item/stack/sheet/metal,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
-"hqU" = (
-/obj/structure/bed/chair{
- dir = 8;
- pixel_y = 3
+"hqx" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "red"
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/area/almayer/shipboard/brig/main_office)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/stern_hallway)
"hqW" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{
name = "\improper Medical Bay";
@@ -36363,15 +33813,18 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
-"hrO" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply{
+"hsc" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/light{
dir = 8
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/main_office)
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"hsg" = (
/obj/structure/pipes/vents/pump{
dir = 4
@@ -36443,6 +33896,13 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/upper_engineering/starboard)
+"hte" = (
+/obj/structure/sign/safety/security{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/turf/closed/wall/almayer,
+/area/almayer/hallways/lower/starboard_umbilical)
"htg" = (
/obj/structure/sign/safety/hvac_old{
pixel_x = 8;
@@ -36461,6 +33921,11 @@
icon_state = "plate"
},
/area/almayer/maint/lower/cryo_cells)
+"htl" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"htq" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -36470,6 +33935,16 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_f_p)
+"htF" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/north{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"htG" = (
/obj/item/tool/soap,
/obj/structure/machinery/light/small{
@@ -36498,6 +33973,20 @@
icon_state = "greenfull"
},
/area/almayer/living/offices)
+"hux" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 8;
+ name = "ship-grade camera"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"huD" = (
/obj/structure/machinery/light{
dir = 1
@@ -36519,6 +34008,12 @@
icon_state = "silver"
},
/area/almayer/command/computerlab)
+"huP" = (
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"huU" = (
/obj/structure/machinery/door/airlock/almayer/security{
access_modified = 1;
@@ -36534,11 +34029,9 @@
icon_state = "test_floor4"
},
/area/almayer/living/briefing)
-"hvp" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+"hvd" = (
+/turf/closed/wall/almayer/reinforced,
+/area/almayer/shipboard/brig/interrogation)
"hvq" = (
/obj/structure/bed/chair{
dir = 8;
@@ -36588,19 +34081,15 @@
icon_state = "test_floor4"
},
/area/almayer/maint/hull/lower/l_f_p)
+"hvz" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"hvH" = (
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
-"hwd" = (
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/obj/structure/surface/table/almayer,
-/obj/item/fuelCell,
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/engineering/lower/engine_core)
"hwC" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22";
@@ -36610,6 +34099,19 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering)
+"hwH" = (
+/obj/structure/stairs{
+ dir = 4
+ },
+/obj/effect/projector{
+ name = "Almayer_Up2";
+ vector_x = -1;
+ vector_y = 100
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"hxe" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -36662,26 +34164,11 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_s)
-"hyc" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
"hyk" = (
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/squads/charlie_delta_shared)
-"hyt" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 2
- },
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
"hyw" = (
/obj/effect/decal/warning_stripes{
icon_state = "NW-out";
@@ -36709,6 +34196,27 @@
"hyQ" = (
/turf/closed/wall/almayer,
/area/almayer/living/synthcloset)
+"hyV" = (
+/obj/structure/machinery/power/apc/almayer{
+ dir = 4
+ },
+/obj/structure/sign/safety/rewire{
+ pixel_x = 32;
+ pixel_y = 24
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/interrogation)
+"hza" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"hzb" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4;
@@ -36750,6 +34258,15 @@
icon_state = "cargo"
},
/area/almayer/squads/delta)
+"hzG" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/starboard_hallway)
"hzL" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/poddoor/almayer/open{
@@ -36780,6 +34297,16 @@
icon_state = "cargo"
},
/area/almayer/squads/req)
+"hAf" = (
+/obj/structure/machinery/iv_drip,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "sterile_green_side"
+ },
+/area/almayer/shipboard/brig/medical)
+"hAh" = (
+/turf/closed/wall/almayer/outer,
+/area/almayer/hallways/lower/port_umbilical)
"hAz" = (
/obj/structure/pipes/vents/scrubber{
dir = 1
@@ -36788,6 +34315,19 @@
icon_state = "kitchen"
},
/area/almayer/living/grunt_rnr)
+"hAA" = (
+/obj/structure/machinery/status_display{
+ pixel_y = -30
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ dir = 8;
+ id = "laddersoutheast";
+ name = "\improper South East Ladders Shutters"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"hAG" = (
/obj/structure/closet/crate/internals,
/obj/item/handcuffs/cable/blue,
@@ -36822,6 +34362,14 @@
icon_state = "blue"
},
/area/almayer/squads/delta)
+"hBa" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = 28
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"hBc" = (
/obj/structure/pipes/vents/scrubber{
dir = 4
@@ -36830,6 +34378,30 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/lower_medical_medbay)
+"hBr" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_y = 1
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
+"hBy" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"hBz" = (
/obj/item/mortar_kit,
/turf/open/floor/almayer{
@@ -36837,26 +34409,40 @@
icon_state = "plating"
},
/area/almayer/squads/req)
-"hBC" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/sign/safety/stairs{
- pixel_x = 8;
- pixel_y = -32
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/port_hallway)
"hBF" = (
/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/hangar)
+"hBG" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/repair_bay)
"hBL" = (
/obj/structure/closet/emcloset,
/turf/open/floor/almayer{
icon_state = "cargo"
},
/area/almayer/command/lifeboat)
+"hBW" = (
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
+"hCf" = (
+/obj/structure/sign/safety/manualopenclose{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_y = -32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"hCk" = (
/obj/structure/largecrate/random/barrel/red,
/turf/open/floor/almayer{
@@ -36883,6 +34469,12 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
+"hCF" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"hCS" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/paper_bin/uscm{
@@ -36917,13 +34509,6 @@
},
/turf/open/floor/almayer,
/area/almayer/living/briefing)
-"hDL" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"hDR" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/storage/syringe_case{
@@ -36939,6 +34524,16 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/lower_medical_medbay)
+"hDU" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"hDV" = (
/obj/structure/surface/table/almayer,
/obj/effect/landmark/map_item,
@@ -36961,6 +34556,20 @@
icon_state = "plate"
},
/area/almayer/squads/bravo)
+"hEg" = (
+/obj/structure/machinery/door_control{
+ id = "laddersouthwest";
+ name = "South West Ladders Shutters";
+ pixel_x = 25;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"hEj" = (
/obj/structure/machinery/vending/hydronutrients,
/turf/open/floor/almayer{
@@ -36973,6 +34582,13 @@
},
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
+"hEm" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 2
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"hEr" = (
/obj/structure/filingcabinet{
density = 0;
@@ -37026,6 +34642,15 @@
icon_state = "test_floor4"
},
/area/almayer/medical/morgue)
+"hGo" = (
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"hGG" = (
/obj/effect/step_trigger/clone_cleaner,
/obj/effect/decal/warning_stripes{
@@ -37097,23 +34722,6 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south1)
-"hHJ" = (
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- id = "vehicle1door";
- name = "Vehicle Bay One"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
-"hHR" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/starboard_umbilical)
"hIp" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -37133,6 +34741,12 @@
icon_state = "dark_sterile"
},
/area/almayer/command/corporateliaison)
+"hIF" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"hIG" = (
/obj/structure/largecrate/random,
/turf/open/floor/plating/plating_catwalk,
@@ -37176,15 +34790,6 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
-"hJu" = (
-/obj/structure/sign/safety/stairs{
- pixel_x = -15
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"hJD" = (
/obj/structure/bed/sofa/south/grey/right{
pixel_y = 12
@@ -37197,6 +34802,15 @@
},
/turf/open/floor/almayer,
/area/almayer/engineering/lower/workshop/hangar)
+"hKe" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"hKl" = (
/obj/structure/pipes/vents/pump,
/obj/effect/decal/warning_stripes{
@@ -37211,15 +34825,18 @@
icon_state = "mono"
},
/area/almayer/medical/hydroponics)
-"hKq" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
+"hKJ" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
+ dir = 4;
+ icon_state = "silver"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/upper/aft_hallway)
"hKO" = (
/obj/structure/largecrate/random/barrel/green,
/obj/structure/sign/safety/maint{
@@ -37271,23 +34888,21 @@
icon_state = "test_floor4"
},
/area/almayer/living/briefing)
-"hMc" = (
-/obj/structure/bed/chair/comfy/orange{
- dir = 8
- },
-/turf/open/floor/almayer,
-/area/almayer/shipboard/brig/chief_mp_office)
"hMi" = (
/obj/structure/pipes/vents/scrubber,
/turf/open/floor/almayer,
/area/almayer/living/chapel)
-"hMs" = (
-/obj/structure/bed/stool,
+"hMk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
+ icon_state = "plate"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/lower/starboard_fore_hallway)
"hMG" = (
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer,
@@ -37310,17 +34925,15 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_f_p)
-"hNl" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_21";
- pixel_y = 16
+"hNv" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_x = 8;
+ pixel_y = -32
},
-/obj/structure/surface/table/almayer,
/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
+ icon_state = "green"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/lower/port_midship_hallway)
"hNw" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -37328,6 +34941,17 @@
/obj/structure/window/framed/almayer,
/turf/open/floor/plating,
/area/almayer/squads/charlie)
+"hNB" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ access_modified = 1;
+ req_one_access = null;
+ req_one_access_txt = "7;19"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"hNM" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/stack/sheet/metal{
@@ -37354,15 +34978,22 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/chief_mp_office)
-"hOR" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+"hOu" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
},
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+/obj/structure/machinery/door_control{
+ id = "hangarentrancenorth";
+ name = "North Hangar Podlocks";
+ pixel_y = -26;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"hOV" = (
/turf/closed/wall/almayer,
/area/almayer/maint/lower/constr)
@@ -37385,6 +35016,15 @@
icon_state = "silver"
},
/area/almayer/living/auxiliary_officer_office)
+"hPr" = (
+/obj/structure/machinery/status_display{
+ pixel_y = -30
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"hPu" = (
/obj/structure/largecrate/supply,
/obj/item/tool/crowbar,
@@ -37392,16 +35032,18 @@
icon_state = "cargo"
},
/area/almayer/maint/hull/upper/u_f_p)
-"hPI" = (
-/turf/closed/wall/almayer/outer,
-/area/almayer/shipboard/brig/perma)
-"hPK" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
+"hPD" = (
+/obj/structure/pipes/vents/scrubber{
+ dir = 8
+ },
/turf/open/floor/almayer{
- dir = 1;
+ dir = 4;
icon_state = "orange"
},
-/area/almayer/hallways/stern_hallway)
+/area/almayer/hallways/lower/starboard_umbilical)
+"hPI" = (
+/turf/closed/wall/almayer/outer,
+/area/almayer/shipboard/brig/perma)
"hPN" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/effect/decal/warning_stripes{
@@ -37426,6 +35068,10 @@
icon_state = "cargo_arrow"
},
/area/almayer/squads/charlie_delta_shared)
+"hQf" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"hQw" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -37518,6 +35164,9 @@
icon_state = "plate"
},
/area/almayer/living/numbertwobunks)
+"hRu" = (
+/turf/closed/wall/almayer/outer,
+/area/almayer/shipboard/brig/execution_storage)
"hRA" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -37552,9 +35201,7 @@
pixel_x = 14;
pixel_y = 38
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"hSb" = (
/obj/structure/largecrate/random/secure,
@@ -37621,13 +35268,6 @@
icon_state = "test_floor4"
},
/area/almayer/medical/morgue)
-"hSL" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/repair_bay)
"hTc" = (
/obj/structure/machinery/firealarm{
pixel_y = 28
@@ -37651,9 +35291,7 @@
pixel_y = 16
},
/obj/structure/pipes/standard/simple/hidden/supply/no_boom,
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"hTt" = (
/obj/structure/machinery/brig_cell/cell_1{
@@ -37729,6 +35367,14 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_s)
+"hUh" = (
+/obj/structure/machinery/medical_pod/bodyscanner{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/almayer/shipboard/brig/medical)
"hUk" = (
/turf/open/floor/almayer{
dir = 10;
@@ -37752,6 +35398,28 @@
icon_state = "plate"
},
/area/almayer/living/port_emb)
+"hUU" = (
+/obj/structure/surface/table/almayer,
+/obj/item/storage/box/bodybags{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/storage/box/bodybags,
+/obj/structure/machinery/light/small{
+ dir = 4;
+ pixel_y = -12
+ },
+/obj/structure/machinery/power/apc/almayer{
+ dir = 4
+ },
+/obj/structure/sign/safety/rewire{
+ pixel_x = 32;
+ pixel_y = 17
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/shipboard/brig/execution_storage)
"hUW" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -37834,6 +35502,10 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south1)
+"hWD" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"hWH" = (
/obj/structure/machinery/light/small{
dir = 4
@@ -37865,6 +35537,12 @@
icon_state = "blue"
},
/area/almayer/command/cichallway)
+"hWV" = (
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/upper/aft_hallway)
"hXb" = (
/turf/open/floor/almayer{
dir = 1;
@@ -37996,9 +35674,7 @@
icon_state = "N";
pixel_y = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"hZw" = (
/obj/effect/decal/warning_stripes{
@@ -38038,18 +35714,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
-"hZU" = (
-/obj/structure/transmitter{
- name = "Brig Offices Telephone";
- phone_category = "MP Dept.";
- phone_id = "Brig Main Offices";
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"hZZ" = (
/obj/structure/closet/firecloset,
/turf/open/floor/plating/plating_catwalk,
@@ -38211,6 +35875,12 @@
icon_state = "kitchen"
},
/area/almayer/living/grunt_rnr)
+"iea" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/stern_hallway)
"ied" = (
/obj/structure/machinery/power/apc/almayer{
dir = 1
@@ -38293,9 +35963,7 @@
dir = 1;
icon_state = "ramptop"
},
-/turf/open/floor/almayer/no_build{
- dir = 4
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"ieX" = (
/obj/structure/surface/table/almayer,
@@ -38321,6 +35989,15 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/north1)
+"ifz" = (
+/obj/structure/machinery/keycard_auth{
+ pixel_x = 25
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/warden_office)
"igb" = (
/obj/structure/disposalpipe/segment{
dir = 2;
@@ -38332,21 +36009,20 @@
/obj/effect/decal/warning_stripes{
icon_state = "SE-out"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
-"igt" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+"igs" = (
+/obj/structure/surface/table/almayer,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
},
/turf/open/floor/almayer{
- icon_state = "red"
+ icon_state = "cargo"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/engineering/lower/engine_core)
"igw" = (
/obj/structure/sign/poster/ad{
pixel_x = 30
@@ -38387,6 +36063,13 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/lower_medical_medbay)
+"ihI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"ihM" = (
/obj/structure/machinery/cm_vending/clothing/marine/delta{
density = 0;
@@ -38399,6 +36082,15 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
+"ihW" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/closet/firecloset,
+/turf/open/floor/almayer{
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"ihX" = (
/obj/structure/machinery/status_display{
pixel_y = -30
@@ -38448,16 +36140,6 @@
icon_state = "mono"
},
/area/almayer/medical/hydroponics)
-"iiC" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"iiZ" = (
/obj/structure/machinery/cm_vending/sorted/marine_food,
/turf/open/floor/almayer{
@@ -38473,6 +36155,14 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
+"ijn" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4;
+ icon_state = "pipe-j2"
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"ijr" = (
/obj/structure/pipes/vents/scrubber{
dir = 4
@@ -38500,6 +36190,11 @@
},
/turf/open/floor/wood/ship,
/area/almayer/shipboard/sea_office)
+"ikl" = (
+/turf/open/floor/almayer{
+ icon_state = "cargo_arrow"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"iks" = (
/obj/structure/pipes/binary/pump/high_power/on{
dir = 1
@@ -38691,12 +36386,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/general_equipment)
-"ioX" = (
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"ipa" = (
/obj/effect/decal/cleanable/generic,
/obj/effect/decal/warning_stripes{
@@ -38833,12 +36522,17 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south2)
-"irF" = (
-/obj/structure/closet/emcloset/legacy,
-/turf/open/floor/almayer{
- icon_state = "cargo"
+"irJ" = (
+/obj/item/tool/wirecutters{
+ pixel_y = -7
+ },
+/obj/structure/sign/poster{
+ desc = "You are becoming hysterical.";
+ icon_state = "poster11";
+ pixel_y = 30
},
-/area/almayer/shipboard/brig/main_office)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"irS" = (
/obj/effect/decal/cleanable/blood/oil,
/obj/structure/cable/heavyduty{
@@ -38890,9 +36584,7 @@
dir = 1;
icon_state = "ramptop"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"isI" = (
/obj/structure/sign/nosmoking_2{
@@ -38916,15 +36608,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/morgue)
-"isW" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "bluecorner"
- },
-/area/almayer/hallways/aft_hallway)
"itf" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -38947,9 +36630,9 @@
unacidable = 0;
unslashable = 0
},
-/turf/open/floor/almayer/no_build{
- dir = 8;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 8
},
/area/almayer/command/airoom)
"ito" = (
@@ -39072,12 +36755,6 @@
icon_state = "plate"
},
/area/almayer/living/port_emb)
-"ivB" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
"ivL" = (
/obj/structure/platform{
dir = 8
@@ -39099,6 +36776,12 @@
icon_state = "plate"
},
/area/almayer/engineering/lower)
+"ivV" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"iwf" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 10
@@ -39193,18 +36876,6 @@
icon_state = "plate"
},
/area/almayer/command/cic)
-"ixC" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/stern_hallway)
"ixD" = (
/obj/structure/machinery/light,
/obj/effect/decal/warning_stripes{
@@ -39231,6 +36902,18 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/req)
+"ixT" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
+"iyC" = (
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_aft_hallway)
"iyE" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -39257,9 +36940,7 @@
unacidable = 1;
unslashable = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"iyS" = (
/obj/structure/disposalpipe/segment{
@@ -39304,6 +36985,12 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
+"iAg" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "redcorner"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"iAw" = (
/obj/item/tool/warning_cone{
pixel_x = -12
@@ -39325,14 +37012,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/containment)
-"iAB" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = -25
- },
-/turf/open/floor/almayer{
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"iAE" = (
/obj/structure/pipes/vents/pump{
dir = 1
@@ -39341,16 +37020,6 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/engine_core)
-"iAT" = (
-/obj/structure/sign/safety/south{
- pixel_x = -17;
- pixel_y = 8
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "blue"
- },
-/area/almayer/hallways/port_hallway)
"iBl" = (
/obj/structure/machinery/power/apc/almayer{
dir = 4
@@ -39416,12 +37085,6 @@
icon_state = "green"
},
/area/almayer/living/offices)
-"iDd" = (
-/obj/structure/machinery/door/poddoor/railing{
- id = "vehicle_elevator_railing_aux"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
"iDk" = (
/obj/structure/closet/emcloset,
/turf/open/floor/almayer{
@@ -39434,28 +37097,12 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
-"iDN" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"iEa" = (
/obj/structure/machinery/light/small,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/maint/hull/upper/p_bow)
-"iEb" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"iEg" = (
/turf/open/floor/almayer{
dir = 9;
@@ -39499,6 +37146,17 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
+"iEM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"iFc" = (
/obj/structure/pipes/vents/pump,
/turf/open/floor/wood/ship,
@@ -39508,6 +37166,17 @@
icon_state = "bluefull"
},
/area/almayer/living/pilotbunks)
+"iFp" = (
+/obj/effect/projector{
+ name = "Almayer_Up1";
+ vector_x = -19;
+ vector_y = 98
+ },
+/turf/open/floor/almayer{
+ allow_construction = 0;
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"iFA" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 1
@@ -39547,6 +37216,15 @@
},
/turf/open/floor/almayer,
/area/almayer/living/offices)
+"iFK" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 6
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"iFM" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -39574,6 +37252,14 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_s)
+"iGi" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"iGn" = (
/obj/structure/surface/table/reinforced/prison,
/obj/structure/closet/secure_closet/surgical{
@@ -39584,6 +37270,12 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/operating_room_four)
+"iGE" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"iGQ" = (
/obj/structure/machinery/landinglight/ds2/delayone{
dir = 8
@@ -39595,6 +37287,15 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
+"iGZ" = (
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"iHc" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/upper_engineering/notunnel)
@@ -39655,6 +37356,15 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/port_emb)
+"iIQ" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"iIR" = (
/obj/structure/surface/table/almayer,
/obj/item/trash/USCMtray{
@@ -39790,17 +37500,15 @@
icon_state = "orangefull"
},
/area/almayer/living/briefing)
-"iLo" = (
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
+"iLm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/structure/surface/table/almayer,
-/obj/item/storage/donut_box,
-/turf/open/floor/almayer{
- icon_state = "red"
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
-/area/almayer/shipboard/brig/main_office)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"iLq" = (
/obj/structure/pipes/vents/scrubber{
dir = 1
@@ -39867,6 +37575,17 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
+"iNh" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
+ name = "\improper Brig Cells"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"iNk" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -39874,6 +37593,21 @@
/obj/structure/machinery/power/apc/almayer,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_f_s)
+"iNH" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/sign/safety/maint{
+ pixel_x = -17;
+ pixel_y = -8
+ },
+/obj/structure/sign/safety/storage{
+ pixel_x = -17;
+ pixel_y = 7
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "redcorner"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"iNR" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -39888,12 +37622,27 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
+"iOo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"iOD" = (
/obj/effect/decal/warning_stripes{
icon_state = "W"
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cells)
+"iOP" = (
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"iOX" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -39912,6 +37661,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_f_s)
+"iPt" = (
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"iPv" = (
/obj/structure/bed/chair/comfy,
/obj/structure/window/reinforced/ultra,
@@ -39939,6 +37694,18 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south1)
+"iPK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"iPN" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/station_alert,
@@ -39960,6 +37727,14 @@
icon_state = "cargo"
},
/area/almayer/squads/alpha)
+"iPU" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out"
+ },
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"iQd" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -40052,21 +37827,24 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_s)
-"iRr" = (
-/obj/structure/machinery/light{
- dir = 1
+"iRi" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = 32
},
/turf/open/floor/almayer{
- dir = 1;
+ dir = 4;
icon_state = "green"
},
-/area/almayer/hallways/port_hallway)
-"iRx" = (
-/obj/structure/machinery/light{
- dir = 1
+/area/almayer/hallways/upper/aft_hallway)
+"iRp" = (
+/obj/structure/window/framed/almayer,
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ dir = 8;
+ id = "Interrogation Shutters";
+ name = "\improper Privacy Shutters"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/plating,
+/area/almayer/shipboard/brig/interrogation)
"iRy" = (
/obj/structure/pipes/vents/pump/on,
/turf/open/floor/almayer,
@@ -40133,6 +37911,15 @@
icon_state = "dark_sterile"
},
/area/almayer/living/port_emb)
+"iSu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 8;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"iSB" = (
/obj/structure/platform_decoration{
dir = 8
@@ -40210,19 +37997,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/cells)
-"iTK" = (
-/obj/structure/disposalpipe/segment{
- dir = 1;
- icon_state = "pipe-c"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"iTQ" = (
/obj/structure/machinery/light/small{
dir = 1
@@ -40278,6 +38052,24 @@
icon_state = "mono"
},
/area/almayer/medical/hydroponics)
+"iUG" = (
+/obj/structure/closet/secure_closet/surgical{
+ pixel_x = -30
+ },
+/obj/structure/machinery/power/apc/almayer,
+/obj/structure/sign/safety/rewire{
+ pixel_y = -38
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "sterile_green_corner"
+ },
+/area/almayer/shipboard/brig/medical)
+"iUV" = (
+/turf/open/floor/almayer{
+ icon_state = "bluecorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"iUW" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -40288,6 +38080,22 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/starboard)
+"iUX" = (
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = -8;
+ pixel_y = 18
+ },
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = 8;
+ pixel_y = 18
+ },
+/obj/item/device/taperecorder,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/shipboard/brig/interrogation)
"iVy" = (
/turf/open/floor/almayer{
dir = 1;
@@ -40337,15 +38145,6 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/delta)
-"iWd" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
"iWx" = (
/obj/effect/decal/warning_stripes{
icon_state = "SW-out"
@@ -40376,19 +38175,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/s_bow)
-"iWL" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/almayer/hallways/vehiclehangar)
-"iWN" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"iWQ" = (
/obj/effect/landmark/start/researcher,
/obj/effect/landmark/late_join/researcher,
@@ -40476,16 +38262,6 @@
icon_state = "cargo_arrow"
},
/area/almayer/medical/hydroponics)
-"iYj" = (
-/obj/structure/machinery/firealarm{
- dir = 4;
- pixel_x = 24
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"iYm" = (
/obj/structure/largecrate/random/case/small,
/turf/open/floor/almayer{
@@ -40544,10 +38320,7 @@
/obj/structure/stairs{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- dir = 4;
- icon_state = "silver"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"iZE" = (
/obj/structure/machinery/cm_vending/sorted/tech/tool_storage,
@@ -40562,15 +38335,6 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop/hangar)
-"iZH" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "emerald"
- },
-/area/almayer/hallways/port_hallway)
"iZP" = (
/obj/structure/platform{
dir = 8
@@ -40604,6 +38368,12 @@
icon_state = "plate"
},
/area/almayer/squads/req)
+"jae" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/stern_hallway)
"jaf" = (
/obj/structure/bed/chair/comfy/bravo{
dir = 4
@@ -40620,6 +38390,33 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
+"jak" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
+"jao" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
+"jas" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"jay" = (
/obj/structure/surface/rack,
/obj/item/tool/shovel/etool{
@@ -40631,6 +38428,13 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_p)
+"jaz" = (
+/obj/structure/surface/table/almayer,
+/obj/effect/spawner/random/technology_scanner,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"jaH" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/paper_bin/uscm{
@@ -40648,15 +38452,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_p)
-"jaK" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W";
- pixel_x = -1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"jaM" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 1
@@ -40782,12 +38577,6 @@
icon_state = "plating_striped"
},
/area/almayer/engineering/upper_engineering/starboard)
-"jdk" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 6
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_umbilical)
"jdm" = (
/obj/structure/surface/table/almayer,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -40813,6 +38602,10 @@
/obj/structure/largecrate/random/case/small,
/turf/open/floor/plating,
/area/almayer/maint/lower/constr)
+"jdC" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"jdG" = (
/obj/structure/disposalpipe/segment{
dir = 8;
@@ -40823,6 +38616,12 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/operating_room_three)
+"jdZ" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 6
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"jeb" = (
/turf/closed/wall/almayer,
/area/almayer/squads/alpha_bravo_shared)
@@ -40913,18 +38712,6 @@
icon_state = "plate"
},
/area/almayer/shipboard/brig/perma)
-"jfD" = (
-/obj/structure/sign/safety/security{
- pixel_y = -32
- },
-/obj/structure/sign/safety/restrictedarea{
- pixel_x = 15;
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"jfK" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22";
@@ -41055,12 +38842,45 @@
icon_state = "test_floor4"
},
/area/almayer/maint/hull/lower/l_m_s)
-"jgU" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
+"jgR" = (
+/obj/structure/sign/safety/rewire{
+ pixel_y = 32
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
+/obj/item/bedsheet/brown{
+ layer = 3.1
+ },
+/obj/structure/window/reinforced{
+ dir = 4;
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/obj/structure/bed{
+ can_buckle = 0
+ },
+/obj/structure/window/reinforced{
+ dir = 8;
+ layer = 3.3;
+ pixel_y = 4
+ },
+/obj/structure/bed{
+ buckling_y = 13;
+ layer = 3.5;
+ pixel_y = 13
+ },
+/obj/item/bedsheet/brown{
+ pixel_y = 13
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
+"jgS" = (
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"jhb" = (
/obj/structure/sign/safety/cryo{
pixel_x = -6;
@@ -41068,12 +38888,27 @@
},
/turf/closed/wall/almayer,
/area/almayer/living/cryo_cells)
+"jhc" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_umbilical)
+"jhm" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"jhn" = (
/turf/open/floor/almayer{
dir = 1;
icon_state = "sterile_green_side"
},
/area/almayer/medical/operating_room_four)
+"jhs" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 5
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_aft_hallway)
"jht" = (
/obj/structure/machinery/vending/coffee{
density = 0;
@@ -41096,6 +38931,10 @@
icon_state = "green"
},
/area/almayer/living/offices)
+"jhA" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"jhD" = (
/obj/structure/machinery/firealarm{
pixel_y = -28
@@ -41126,6 +38965,12 @@
},
/turf/open/floor/almayer,
/area/almayer/maint/hull/upper/u_f_s)
+"jhS" = (
+/obj/structure/machinery/door/poddoor/railing{
+ id = "vehicle_elevator_railing_aux"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"jhW" = (
/obj/structure/machinery/cryopod/right,
/turf/open/floor/almayer{
@@ -41144,14 +38989,6 @@
icon_state = "redcorner"
},
/area/almayer/shipboard/brig/lobby)
-"jiw" = (
-/obj/structure/machinery/firealarm{
- pixel_y = 28
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"jiM" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -41182,19 +39019,13 @@
icon_state = "dark_sterile"
},
/area/almayer/living/port_emb)
-"jjm" = (
-/obj/structure/closet/secure_closet{
- name = "\improper Lethal Injection Locker"
- },
-/obj/item/reagent_container/ld50_syringe/choral,
-/obj/item/reagent_container/ld50_syringe/choral,
-/obj/item/reagent_container/ld50_syringe/choral,
-/obj/item/reagent_container/ld50_syringe/choral,
-/obj/item/reagent_container/ld50_syringe/choral,
-/turf/open/floor/almayer{
- icon_state = "plate"
+"jjl" = (
+/obj/structure/machinery/door/poddoor/railing{
+ dir = 8;
+ id = "vehicle_elevator_railing_aux"
},
-/area/almayer/shipboard/brig/execution)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"jjn" = (
/obj/structure/surface/table/reinforced/prison,
/obj/structure/machinery/door/window/eastright{
@@ -41210,13 +39041,6 @@
icon_state = "sterile_green"
},
/area/almayer/medical/lower_medical_medbay)
-"jjs" = (
-/obj/structure/machinery/door/poddoor/railing{
- dir = 4;
- id = "vehicle_elevator_railing_aux"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
"jjS" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -41230,36 +39054,6 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/medical_science)
-"jjT" = (
-/obj/structure/machinery/light,
-/obj/effect/projector{
- name = "Almayer_Up4";
- vector_x = -19;
- vector_y = 104
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
-"jjZ" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/obj/vehicle/powerloader{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "cargo"
- },
-/area/almayer/hallways/vehiclehangar)
-"jkd" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = 32
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/port_hallway)
"jkj" = (
/obj/structure/machinery/portable_atmospherics/powered/pump,
/obj/structure/machinery/light{
@@ -41352,6 +39146,28 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_s)
+"jkY" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/closet/secure_closet/engineering_welding{
+ req_one_access_txt = "7;23;27"
+ },
+/obj/structure/platform{
+ dir = 4
+ },
+/obj/structure/sign/safety/terminal{
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/fire_haz{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"jlc" = (
/turf/open/floor/almayer{
dir = 1;
@@ -41369,6 +39185,25 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/containment)
+"jlD" = (
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
+"jlE" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/surface/table/almayer,
+/obj/item/toy/deck/uno,
+/obj/item/toy/deck{
+ pixel_x = -9
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"jlG" = (
/obj/effect/decal/warning_stripes{
icon_state = "SE-out";
@@ -41462,6 +39297,17 @@
icon_state = "blue"
},
/area/almayer/command/cichallway)
+"jnc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"jne" = (
/turf/open/floor/almayer{
icon_state = "cargo"
@@ -41476,24 +39322,43 @@
icon_state = "plate"
},
/area/almayer/maint/upper/mess)
-"jnw" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+"jno" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"jnp" = (
+/obj/structure/surface/table/almayer,
+/obj/item/cell/high{
+ pixel_x = -8;
+ pixel_y = 8
},
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+/obj/item/ashtray/plastic{
+ icon_state = "ashtray_full_bl";
+ pixel_x = 5;
+ pixel_y = 1
},
-/obj/structure/sign/safety/bridge{
- pixel_y = 32
+/obj/item/trash/cigbutt{
+ pixel_x = -10;
+ pixel_y = 13
},
-/obj/structure/sign/safety/reception{
- pixel_x = 15;
- pixel_y = 32
+/obj/item/trash/cigbutt{
+ pixel_x = -6;
+ pixel_y = -9
},
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "mono"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/engineering/upper_engineering/port)
+"jnx" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 6
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"jnD" = (
/turf/open/floor/almayer{
dir = 1;
@@ -41566,6 +39431,12 @@
},
/turf/open/floor/almayer,
/area/almayer/living/gym)
+"jpW" = (
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"jqP" = (
/obj/structure/machinery/door/poddoor/shutters/almayer{
id = "ARES Interior";
@@ -41573,7 +39444,7 @@
plane = -7
},
/obj/effect/step_trigger/ares_alert/core,
-/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
+/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{
closed_layer = 3.2;
id = "ARES Emergency";
layer = 3.2;
@@ -41614,6 +39485,17 @@
icon_state = "plate"
},
/area/almayer/living/pilotbunks)
+"jru" = (
+/obj/structure/sign/safety/nonpress_0g{
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/press_area_ag{
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"jrB" = (
/obj/structure/bed/chair,
/turf/open/floor/almayer{
@@ -41644,6 +39526,17 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/medical_science)
+"jsa" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/effect/projector{
+ name = "Almayer_Up3";
+ vector_x = -1;
+ vector_y = 102
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"jss" = (
/obj/structure/bed/chair/comfy{
dir = 8
@@ -41691,30 +39584,51 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south1)
-"jtj" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
+"jsR" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_x = -1;
+ pixel_y = 2
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/vehiclehangar)
+"jtj" = (
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer/aicore/glowing/no_build{
+ icon_state = "ai_floor3"
},
/area/almayer/command/airoom)
-"jtJ" = (
-/obj/structure/machinery/door_control{
- id = "laddernorthwest";
- name = "North West Ladders Shutters";
- pixel_x = 25;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
+"jts" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "greencorner"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/port_aft_hallway)
"jtU" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_m_p)
+"jtZ" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "emerald"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
+"juo" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
+"jux" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "bluecorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"juD" = (
/obj/structure/bed/chair/comfy{
dir = 8
@@ -41722,6 +39636,17 @@
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/living/port_emb)
+"juS" = (
+/obj/structure/machinery/gear{
+ id = "vehicle_elevator_gears"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"juX" = (
/obj/structure/platform_decoration{
dir = 1
@@ -41742,6 +39667,12 @@
icon_state = "plate"
},
/area/almayer/medical/lower_medical_medbay)
+"jvc" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/mp_bunks)
"jvp" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -41778,12 +39709,30 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
+"jvz" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silvercorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"jvB" = (
/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer/no_build{
- dir = 4
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_plates"
},
/area/almayer/command/airoom)
+"jvD" = (
+/obj/structure/machinery/door_control{
+ id = "laddersouthwest";
+ name = "South West Ladders Shutters";
+ pixel_x = 25;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/turf/open/floor/almayer{
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"jvM" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -41851,6 +39800,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_f_p)
+"jwr" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"jwJ" = (
/obj/structure/platform_decoration,
/turf/open/floor/plating/plating_catwalk,
@@ -41868,6 +39823,13 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_p)
+"jwP" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out";
+ pixel_x = -1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"jxi" = (
/obj/structure/machinery/sleep_console,
/turf/open/floor/almayer{
@@ -41875,6 +39837,12 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
+"jxu" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = -25
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"jxx" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -41890,13 +39858,15 @@
},
/turf/open/floor/plating,
/area/almayer/living/bridgebunks)
-"jxP" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W";
- pixel_x = -1
+"jxX" = (
+/obj/structure/machinery/power/apc/almayer{
+ dir = 1
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/vehiclehangar)
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"jyb" = (
/turf/open/floor/almayer{
dir = 6;
@@ -41947,6 +39917,13 @@
icon_state = "plate"
},
/area/almayer/living/captain_mess)
+"jzT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"jzZ" = (
/obj/structure/platform_decoration,
/turf/open/floor/almayer{
@@ -41960,9 +39937,18 @@
icon_state = "plate"
},
/area/almayer/command/corporateliaison)
-"jAi" = (
-/turf/closed/wall/almayer/reinforced,
-/area/almayer/hallways/vehiclehangar)
+"jAj" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"jAz" = (
/obj/structure/platform,
/obj/structure/platform{
@@ -42048,6 +40034,12 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/s_bow)
+"jCx" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "bluecorner"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"jCK" = (
/obj/effect/decal/medical_decals{
icon_state = "triagedecalbottomleft";
@@ -42058,6 +40050,10 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
+"jCX" = (
+/obj/structure/pipes/vents/scrubber,
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/starboard_hallway)
"jDk" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 4
@@ -42075,6 +40071,15 @@
icon_state = "orange"
},
/area/almayer/engineering/lower/workshop/hangar)
+"jDz" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/barricade/handrail,
+/turf/open/floor/almayer{
+ icon_state = "test_floor5"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"jDO" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -42111,9 +40116,7 @@
pixel_x = 24;
req_one_access_txt = "90;91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"jEA" = (
/obj/structure/disposalpipe/segment{
@@ -42143,6 +40146,20 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/chief_mp_office)
+"jEV" = (
+/obj/structure/surface/table/almayer,
+/obj/item/paper_bin{
+ pixel_x = -7
+ },
+/obj/item/tool/pen,
+/obj/item/tool/pen{
+ pixel_y = 3
+ },
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"jFf" = (
/obj/structure/machinery/shower{
pixel_y = 16
@@ -42157,18 +40174,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/medical_science)
-"jFg" = (
-/obj/structure/pipes/standard/cap/hidden{
- dir = 4
- },
-/obj/structure/sign/safety/hvac_old{
- pixel_x = 15;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/stern_hallway)
"jFt" = (
/obj/structure/machinery/light/small,
/obj/effect/decal/warning_stripes{
@@ -42251,16 +40256,6 @@
icon_state = "dark_sterile"
},
/area/almayer/engineering/laundry)
-"jGN" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4;
- icon_state = "pipe-c"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"jGQ" = (
/obj/effect/decal/warning_stripes{
icon_state = "NE-out";
@@ -42282,15 +40277,6 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
-"jHe" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/junction{
- dir = 8
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"jHh" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -42306,21 +40292,15 @@
icon_state = "plate"
},
/area/almayer/maint/lower/s_bow)
+"jHt" = (
+/turf/closed/wall/almayer,
+/area/almayer/hallways/lower/repair_bay)
"jHC" = (
/turf/open/floor/almayer{
dir = 1;
icon_state = "silvercorner"
},
/area/almayer/command/computerlab)
-"jHG" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 8;
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"jHL" = (
/obj/structure/machinery/light/small{
dir = 8
@@ -42344,13 +40324,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_p)
-"jIo" = (
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/chief_mp_office)
"jIC" = (
/obj/structure/machinery/computer/working_joe{
dir = 4;
@@ -42361,19 +40334,6 @@
icon_state = "orange"
},
/area/almayer/maint/upper/mess)
-"jIH" = (
-/obj/structure/surface/rack,
-/obj/item/clothing/suit/straight_jacket,
-/obj/item/clothing/glasses/sunglasses/blindfold,
-/obj/item/clothing/mask/muzzle,
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 8;
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/shipboard/brig/execution)
"jIJ" = (
/obj/structure/largecrate/random/barrel/green,
/turf/open/floor/almayer{
@@ -42394,18 +40354,6 @@
icon_state = "plating"
},
/area/almayer/engineering/lower/engine_core)
-"jJe" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"jJk" = (
/obj/structure/machinery/power/apc/almayer{
dir = 4
@@ -42415,11 +40363,6 @@
icon_state = "blue"
},
/area/almayer/living/port_emb)
-"jJs" = (
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
"jKn" = (
/turf/open/floor/almayer{
dir = 5;
@@ -42442,14 +40385,6 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"jKA" = (
-/obj/structure/sign/safety/cryo{
- pixel_y = 26
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"jKF" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/poddoor/almayer/open{
@@ -42475,15 +40410,12 @@
icon_state = "cargo"
},
/area/almayer/engineering/port_atmos)
-"jKK" = (
-/obj/structure/machinery/light{
- dir = 1
- },
+"jLg" = (
+/obj/structure/closet/emcloset,
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "green"
+ icon_state = "cargo"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/lower/port_aft_hallway)
"jLj" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -42499,40 +40431,12 @@
icon_state = "kitchen"
},
/area/almayer/living/captain_mess)
-"jLv" = (
-/obj/structure/machinery/firealarm{
- dir = 1;
- pixel_y = -28
- },
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
"jLH" = (
/obj/structure/largecrate/supply/supplies/mre,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_p)
-"jLK" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "emerald"
- },
-/area/almayer/hallways/port_hallway)
-"jLM" = (
-/obj/structure/disposalpipe/segment{
- dir = 1;
- icon_state = "pipe-c"
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"jLS" = (
/obj/structure/bed/chair/comfy/charlie,
/obj/effect/decal/cleanable/dirt,
@@ -42540,12 +40444,18 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"jMb" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 32
+"jMa" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"jMm" = (
/obj/structure/closet/secure_closet/personal/cabinet{
req_access = null
@@ -42598,19 +40508,19 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering/starboard)
-"jMK" = (
+"jML" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/wood/ship,
+/area/almayer/command/corporateliaison)
+"jMP" = (
/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
pixel_y = 25
},
/turf/open/floor/almayer{
dir = 1;
- icon_state = "orange"
+ icon_state = "blue"
},
-/area/almayer/hallways/stern_hallway)
-"jML" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/wood/ship,
-/area/almayer/command/corporateliaison)
+/area/almayer/hallways/upper/aft_hallway)
"jMQ" = (
/obj/item/device/radio/intercom{
freerange = 1;
@@ -42670,6 +40580,22 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_s)
+"jNw" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1
+ },
+/obj/structure/pipes/vents/scrubber{
+ dir = 8
+ },
+/obj/structure/sign/safety/escapepod{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"jND" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -42854,6 +40780,20 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
+"jRg" = (
+/obj/effect/landmark/crap_item,
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
+"jRm" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"jRp" = (
/obj/structure/largecrate/supply/supplies/water,
/obj/item/toy/deck{
@@ -42973,12 +40913,41 @@
icon_state = "plating"
},
/area/almayer/medical/upper_medical)
+"jTt" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/machinery/door_control{
+ id = "laddernortheast";
+ name = "North East Ladders Shutters";
+ pixel_y = -25;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"jTB" = (
/turf/open/floor/almayer{
dir = 1;
icon_state = "orangecorner"
},
/area/almayer/engineering/lower)
+"jTH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/machinery/door/poddoor/almayer/open{
+ dir = 4;
+ id = "Hangar Lockdown";
+ name = "\improper Hangar Lockdown Blast Door"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"jTI" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
@@ -42986,6 +40955,11 @@
icon_state = "emerald"
},
/area/almayer/squads/charlie_delta_shared)
+"jTU" = (
+/obj/structure/bed,
+/obj/item/bedsheet/red,
+/turf/open/floor/wood/ship,
+/area/almayer/shipboard/brig/warden_office)
"jUb" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/toy/deck{
@@ -43107,13 +41081,6 @@
icon_state = "test_floor5"
},
/area/almayer/command/computerlab)
-"jVP" = (
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/execution)
"jWb" = (
/obj/structure/machinery/firealarm{
dir = 8;
@@ -43132,13 +41099,6 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/chapel)
-"jWt" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"jWu" = (
/obj/effect/decal/warning_stripes{
icon_state = "NW-out";
@@ -43148,13 +41108,19 @@
icon_state = "plate"
},
/area/almayer/living/offices)
-"jWU" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/floor/plating/almayer{
- allow_construction = 0
+"jXc" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = -17
+ },
+/obj/structure/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
},
-/area/almayer/hallways/starboard_hallway)
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"jXd" = (
/obj/structure/disposalpipe/segment{
dir = 1;
@@ -43172,18 +41138,17 @@
icon_state = "test_floor4"
},
/area/almayer/medical/lower_medical_medbay)
-"jXk" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/pipes/vents/scrubber{
- dir = 1
+"jXR" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/obj/structure/sign/safety/stairs{
+ pixel_x = 8;
+ pixel_y = 32
},
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
},
-/area/almayer/hallways/vehiclehangar)
+/area/almayer/hallways/lower/starboard_fore_hallway)
"jYc" = (
/obj/item/bedsheet/blue{
layer = 3.2
@@ -43226,14 +41191,6 @@
icon_state = "blue"
},
/area/almayer/living/port_emb)
-"jYd" = (
-/obj/structure/machinery/gear{
- id = "vehicle_elevator_gears"
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/vehiclehangar)
"jYm" = (
/obj/item/reagent_container/food/snacks/wrapped/chunk,
/obj/structure/surface/rack,
@@ -43264,9 +41221,7 @@
/obj/structure/machinery/camera/autoname/almayer/containment/ares{
dir = 4
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"jZd" = (
/obj/structure/pipes/vents/pump{
@@ -43277,6 +41232,15 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/operating_room_four)
+"jZe" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"jZj" = (
/obj/structure/surface/rack,
/obj/item/book/manual/orbital_cannon_manual,
@@ -43345,6 +41309,16 @@
},
/turf/open/floor/almayer,
/area/almayer/medical/containment/cell/cl)
+"jZW" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"jZY" = (
/obj/structure/closet/l3closet/virology,
/turf/open/floor/almayer{
@@ -43359,29 +41333,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/s_bow)
-"kag" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 16"
- },
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
-"kaj" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/aft_hallway)
"kam" = (
/obj/item/tool/screwdriver{
layer = 2.9;
@@ -43395,18 +41346,17 @@
"kan" = (
/turf/closed/wall/almayer/white,
/area/almayer/medical/lower_medical_medbay)
-"kaA" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
+"kaq" = (
+/obj/effect/projector{
+ name = "Almayer_Up2";
+ vector_x = -1;
+ vector_y = 100
},
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silver"
+ allow_construction = 0;
+ icon_state = "plate"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/lower/starboard_fore_hallway)
"kaB" = (
/obj/structure/machinery/cm_vending/gear/tl{
density = 0;
@@ -43418,17 +41368,6 @@
icon_state = "red"
},
/area/almayer/squads/alpha)
-"kaF" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/obj/structure/sign/safety/stairs{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/starboard_hallway)
"kaI" = (
/obj/structure/bed/chair{
dir = 4
@@ -43437,6 +41376,16 @@
icon_state = "bluefull"
},
/area/almayer/squads/charlie_delta_shared)
+"kaQ" = (
+/obj/structure/disposalpipe/junction,
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"kaS" = (
/obj/structure/bed/chair/office/dark{
dir = 8
@@ -43497,9 +41446,7 @@
/obj/structure/stairs{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"kbJ" = (
/obj/effect/decal/warning_stripes{
@@ -43512,6 +41459,16 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/containment)
+"kbT" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"kbV" = (
/obj/structure/platform{
dir = 1
@@ -43528,6 +41485,17 @@
/obj/structure/machinery/camera/autoname/almayer,
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cells)
+"kcg" = (
+/obj/structure/pipes/vents/pump{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"kcl" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -43617,6 +41585,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
+"keG" = (
+/obj/structure/machinery/door/airlock/almayer/security{
+ dir = 2;
+ name = "\improper Interrogation Observation"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/interrogation)
"keO" = (
/obj/structure/largecrate/random/secure,
/obj/effect/decal/warning_stripes{
@@ -43630,13 +41610,6 @@
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/engineering/upper_engineering/starboard)
-"kff" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"kfo" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -43679,12 +41652,6 @@
icon_state = "plate"
},
/area/almayer/engineering/lower)
-"kfP" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"kfU" = (
/turf/open/floor/plating,
/area/almayer/powered/agent)
@@ -43707,14 +41674,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/upper_medical)
-"kgr" = (
-/obj/structure/machinery/camera/autoname/almayer{
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"kgs" = (
/obj/structure/window/framed/almayer/white,
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
@@ -43727,6 +41686,12 @@
/obj/structure/machinery/door/poddoor/almayer/biohazard/white,
/turf/open/floor/plating,
/area/almayer/medical/medical_science)
+"kgt" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"kgD" = (
/obj/structure/sign/safety/cryo{
pixel_x = 35
@@ -43735,17 +41700,15 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_s)
-"kgQ" = (
-/obj/structure/surface/rack,
-/obj/item/storage/firstaid/adv{
- pixel_x = 6;
- pixel_y = 6
+"kgS" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/item/storage/firstaid/regular,
+/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/shipboard/brig/execution)
+/area/almayer/hallways/lower/vehiclehangar)
"khd" = (
/obj/structure/bed/chair{
dir = 4
@@ -43799,19 +41762,15 @@
/obj/structure/machinery/camera/autoname/almayer/containment/ares{
dir = 8
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
-"kij" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
+"kil" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
},
-/area/almayer/hallways/aft_hallway)
+/obj/item/storage/belt/utility,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"kio" = (
/obj/structure/machinery/firealarm{
pixel_y = 28
@@ -43824,6 +41783,24 @@
icon_state = "plate"
},
/area/almayer/living/port_emb)
+"kiq" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"kiy" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"kiG" = (
/obj/structure/machinery/power/smes/buildable,
/obj/structure/machinery/status_display{
@@ -43900,6 +41877,22 @@
icon_state = "cargo"
},
/area/almayer/shipboard/brig/cryo)
+"kjw" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 6
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"kjD" = (
/obj/structure/machinery/computer/demo_sim{
dir = 4;
@@ -43919,6 +41912,12 @@
icon_state = "orangecorner"
},
/area/almayer/engineering/lower/engine_core)
+"kjW" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"kjY" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/almayer{
@@ -43964,14 +41963,17 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south2)
-"kkE" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NE-out";
- pixel_x = 2;
- pixel_y = 3
+"kkI" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
+"kkN" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/manifold/fourway/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/lower/starboard_aft_hallway)
"kkW" = (
/obj/structure/surface/table/almayer,
/obj/item/book/manual/atmospipes,
@@ -43981,6 +41983,12 @@
icon_state = "orange"
},
/area/almayer/engineering/lower)
+"klr" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"klH" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 4
@@ -44002,12 +42010,6 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cells)
-"kmk" = (
-/obj/structure/closet/firecloset,
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/hallways/vehiclehangar)
"kmp" = (
/obj/structure/machinery/disposal,
/obj/structure/disposalpipe/trunk{
@@ -44021,6 +42023,16 @@
icon_state = "plate"
},
/area/almayer/living/offices)
+"kmx" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"kmE" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 5
@@ -44035,6 +42047,19 @@
icon_state = "plate"
},
/area/almayer/living/pilotbunks)
+"knl" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"knm" = (
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"knH" = (
/obj/structure/machinery/vending/coffee,
/obj/structure/sign/safety/coffee{
@@ -44057,23 +42082,6 @@
icon_state = "cargo"
},
/area/almayer/lifeboat_pumps/south2)
-"knO" = (
-/obj/structure/bed/chair{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
-"koc" = (
-/obj/structure/machinery/status_display{
- pixel_y = -30
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"kow" = (
/obj/structure/disposalpipe/segment{
dir = 1;
@@ -44147,6 +42155,21 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_p)
+"kqd" = (
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
+"kqm" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"kqt" = (
/obj/structure/machinery/door/poddoor/almayer/open{
dir = 4;
@@ -44230,11 +42253,6 @@
icon_state = "bluecorner"
},
/area/almayer/living/basketball)
-"kro" = (
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"krp" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/box/cups,
@@ -44326,6 +42344,10 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/processing)
+"ksm" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/starboard_hallway)
"ksp" = (
/obj/structure/machinery/cryopod/right{
pixel_y = 6
@@ -44342,6 +42364,35 @@
dir = 6
},
/area/almayer/living/briefing)
+"kti" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"ktl" = (
+/obj/structure/machinery/firealarm{
+ dir = 1;
+ pixel_y = -28
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"ktI" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"ktR" = (
/obj/item/trash/crushed_cup,
/turf/open/floor/almayer{
@@ -44423,6 +42474,16 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering)
+"kvL" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/computer/cameras/almayer_network{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/warden_office)
"kvU" = (
/obj/structure/surface/table/almayer,
/turf/open/floor/plating/plating_catwalk,
@@ -44456,6 +42517,12 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_f_s)
+"kwi" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"kwo" = (
/obj/structure/surface/rack,
/turf/open/floor/almayer,
@@ -44522,6 +42589,12 @@
icon_state = "test_floor4"
},
/area/almayer/squads/req)
+"kxP" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"kyh" = (
/obj/effect/decal/warning_stripes{
icon_state = "W"
@@ -44582,12 +42655,6 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/north1)
-"kyZ" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 5
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_umbilical)
"kzb" = (
/obj/structure/machinery/vending/walkman,
/turf/open/floor/almayer,
@@ -44685,12 +42752,15 @@
icon_state = "plating"
},
/area/almayer/engineering/lower/engine_core)
-"kzP" = (
+"kzR" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
+ dir = 4;
+ icon_state = "orange"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/stern_hallway)
"kzT" = (
/obj/structure/machinery/door_control{
id = "ARES StairsLower";
@@ -44699,9 +42769,9 @@
pixel_y = -8;
req_one_access_txt = "90;91;92"
},
-/turf/open/floor/almayer/no_build{
- dir = 8;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 8
},
/area/almayer/command/airoom)
"kAh" = (
@@ -44713,6 +42783,14 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/north1)
+"kAj" = (
+/obj/structure/machinery/firealarm{
+ pixel_y = 28
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"kAm" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/almayer{
@@ -44788,21 +42866,6 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south2)
-"kBh" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/machinery/door/airlock/almayer/security/reinforced{
- dir = 2;
- name = "\improper Execution Equipment"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/execution)
"kBo" = (
/obj/effect/decal/warning_stripes{
icon_state = "SE-out";
@@ -44820,13 +42883,6 @@
icon_state = "test_floor4"
},
/area/almayer/command/airoom)
-"kBK" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out";
- pixel_x = 2
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"kBP" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -44843,6 +42899,14 @@
icon_state = "cargo"
},
/area/almayer/living/tankerbunks)
+"kCd" = (
+/obj/structure/machinery/gear{
+ id = "vehicle_elevator_gears"
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"kCi" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/shipboard/port_missiles)
@@ -44864,6 +42928,9 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
+"kCo" = (
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"kCu" = (
/obj/structure/machinery/portable_atmospherics/powered/scrubber,
/turf/open/floor/almayer{
@@ -44885,10 +42952,14 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/containment)
-"kCS" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
+"kCY" = (
+/obj/structure/machinery/sleep_console{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/almayer/shipboard/brig/medical)
"kDd" = (
/obj/structure/sign/safety/water{
pixel_x = 8;
@@ -44931,12 +43002,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
-"kEb" = (
-/obj/structure/machinery/firealarm{
- pixel_y = 28
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"kEc" = (
/obj/structure/machinery/light/small{
dir = 8
@@ -44990,6 +43055,15 @@
icon_state = "redfull"
},
/area/almayer/living/briefing)
+"kEE" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_aft_hallway)
+"kEW" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"kFe" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/firealarm{
@@ -45053,6 +43127,12 @@
icon_state = "cargo"
},
/area/almayer/shipboard/brig/cryo)
+"kGw" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"kGF" = (
/obj/structure/reagent_dispensers/water_cooler/stacks{
density = 0;
@@ -45063,21 +43143,6 @@
icon_state = "emerald"
},
/area/almayer/squads/charlie)
-"kGI" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
-"kGL" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/aft_hallway)
"kGQ" = (
/obj/structure/pipes/standard/simple/hidden/supply/no_boom{
dir = 4
@@ -45086,9 +43151,11 @@
icon_state = "containment_corner_variant_2"
},
/area/almayer/medical/containment/cell)
-"kHa" = (
-/turf/closed/wall/almayer,
-/area/almayer/shipboard/brig/surgery)
+"kGS" = (
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"kHd" = (
/obj/structure/machinery/computer/arcade,
/obj/item/prop/helmetgarb/spacejam_tickets{
@@ -45100,14 +43167,22 @@
icon_state = "green"
},
/area/almayer/living/grunt_rnr)
-"kHj" = (
-/obj/effect/projector{
- name = "Almayer_Up2";
- vector_x = -1;
- vector_y = 100
+"kHo" = (
+/obj/item/device/camera{
+ pixel_x = 4;
+ pixel_y = 8
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
+/obj/structure/surface/table/almayer,
+/obj/item/device/camera_film{
+ pixel_x = 4;
+ pixel_y = -2
+ },
+/obj/item/device/camera_film,
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"kHS" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -45117,12 +43192,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/port)
-"kHT" = (
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"kHY" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 10
@@ -45151,15 +43220,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_s)
-"kIm" = (
-/obj/structure/pipes/vents/pump{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/starboard_umbilical)
"kIP" = (
/obj/structure/machinery/cryopod/right{
pixel_y = 6
@@ -45179,6 +43239,14 @@
},
/turf/open/floor/plating/almayer,
/area/almayer/maint/hull/lower/s_bow)
+"kJh" = (
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/obj/structure/disposalpipe/segment{
+ dir = 1;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"kJi" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -45191,18 +43259,6 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
-"kJn" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 17"
- },
-/obj/structure/sign/safety/rad_haz{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
"kJH" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -45224,13 +43280,6 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north1)
-"kJV" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"kJW" = (
/obj/structure/machinery/door/window/westright,
/obj/structure/machinery/shower{
@@ -45250,15 +43299,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_s)
-"kKb" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"kKk" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -45282,17 +43322,26 @@
dir = 1;
icon_state = "ramptop"
},
-/turf/open/floor/almayer/no_build{
- dir = 8;
- icon_state = "silver"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
+"kKB" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"kKR" = (
/obj/structure/pipes/vents/pump{
dir = 1
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south2)
+"kKY" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"kLc" = (
/obj/structure/machinery/door/airlock/almayer/maint{
req_one_access = null;
@@ -45321,24 +43370,21 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_p)
-"kLp" = (
-/obj/structure/sign/safety/stairs{
- pixel_x = -17;
- pixel_y = 7
- },
-/obj/structure/sign/safety/escapepod{
- pixel_x = -17;
- pixel_y = -8
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/hallways/starboard_hallway)
"kLB" = (
/obj/docking_port/stationary/escape_pod/east,
/turf/open/floor/plating,
/area/almayer/maint/hull/upper/u_m_s)
+"kLE" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/machinery/door/poddoor/almayer{
+ dir = 4;
+ id = "hangarentrancenorth";
+ name = "\improper North Hangar Podlock"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"kLP" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -45738,6 +43784,19 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/hangar)
+"kRU" = (
+/obj/vehicle/powerloader,
+/obj/structure/platform{
+ dir = 4
+ },
+/obj/structure/platform{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/oil,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/hallways/lower/repair_bay)
"kSn" = (
/obj/structure/machinery/camera/autoname/almayer{
dir = 4;
@@ -45765,10 +43824,19 @@
pixel_y = 24;
req_one_access_txt = "200;91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
+"kSA" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/machinery/door/poddoor/almayer{
+ dir = 4;
+ id = "hangarentrancesouth";
+ name = "\improper South Hangar Podlock"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"kSH" = (
/obj/structure/sign/prop1{
pixel_y = 32
@@ -45781,23 +43849,6 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
-"kSJ" = (
-/obj/structure/disposalpipe/junction{
- dir = 4;
- icon_state = "pipe-j2"
- },
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
-"kSN" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 32
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/hallways/aft_hallway)
"kSU" = (
/obj/structure/transmitter/no_dnd{
name = "Requisition Telephone";
@@ -45810,6 +43861,13 @@
icon_state = "plating"
},
/area/almayer/squads/req)
+"kTp" = (
+/obj/structure/window/framed/almayer,
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/turf/open/floor/plating,
+/area/almayer/shipboard/brig/medical)
"kTv" = (
/obj/structure/machinery/light{
dir = 4
@@ -45835,6 +43893,16 @@
},
/turf/open/floor/almayer,
/area/almayer/hallways/hangar)
+"kUg" = (
+/obj/structure/machinery/firealarm{
+ dir = 4;
+ pixel_x = 21
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/warden_office)
"kUh" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{
@@ -45847,24 +43915,28 @@
icon_state = "test_floor4"
},
/area/almayer/living/pilotbunks)
-"kUw" = (
-/obj/structure/surface/rack,
-/obj/item/storage/bag/trash{
- pixel_x = 2;
- pixel_y = 2
+"kUs" = (
+/obj/structure/machinery/firealarm{
+ pixel_y = 28
},
-/obj/item/storage/bag/trash{
- pixel_x = -8;
- pixel_y = 4
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
},
-/obj/item/storage/bag/trash{
- pixel_x = -3;
- pixel_y = -2
+/area/almayer/hallways/upper/aft_hallway)
+"kUA" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_umbilical)
+"kUI" = (
+/obj/structure/machinery/light{
+ dir = 1
},
/turf/open/floor/almayer{
- icon_state = "cargo"
+ dir = 9;
+ icon_state = "green"
},
-/area/almayer/engineering/upper_engineering/port)
+/area/almayer/hallways/lower/starboard_midship_hallway)
"kUL" = (
/obj/structure/machinery/light/small{
dir = 1
@@ -45911,6 +43983,14 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/cells)
+"kWc" = (
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/obj/structure/disposalpipe/segment{
+ dir = 8;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/stern_hallway)
"kWk" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 10
@@ -45996,9 +44076,9 @@
},
/area/almayer/command/computerlab)
"kXj" = (
-/turf/open/floor/almayer/no_build{
- dir = 4;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 4
},
/area/almayer/command/airoom)
"kXm" = (
@@ -46014,6 +44094,15 @@
icon_state = "plating"
},
/area/almayer/shipboard/stern_point_defense)
+"kXt" = (
+/obj/structure/closet/fireaxecabinet{
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"kXu" = (
/turf/open/floor/almayer{
dir = 8;
@@ -46035,6 +44124,12 @@
icon_state = "dark_sterile"
},
/area/almayer/engineering/laundry)
+"kYl" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"kYt" = (
/obj/structure/surface/table/woodentable/fancy,
/obj/item/storage/bible{
@@ -46071,28 +44166,15 @@
icon_state = "plating"
},
/area/almayer/engineering/lower/engine_core)
-"kYP" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 32
- },
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"kYU" = (
-/obj/structure/sign/safety/escapepod{
- pixel_y = 32
- },
-/obj/structure/sign/safety/east{
- pixel_x = 15;
- pixel_y = 32
+/obj/structure/machinery/firealarm{
+ pixel_y = 28
},
/turf/open/floor/almayer{
dir = 1;
- icon_state = "green"
+ icon_state = "red"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/shipboard/brig/starboard_hallway)
"kYV" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 6
@@ -46105,12 +44187,6 @@
icon_state = "plate"
},
/area/almayer/living/offices)
-"kZA" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/port_umbilical)
"kZN" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/prop/almayer/computer/PC{
@@ -46210,6 +44286,23 @@
},
/turf/open/floor/plating,
/area/almayer/command/cic)
+"lbc" = (
+/obj/structure/stairs{
+ dir = 8;
+ icon_state = "ramptop"
+ },
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/effect/projector{
+ name = "Almayer_Down2";
+ vector_x = 1;
+ vector_y = -100
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/upper/aft_hallway)
"lbf" = (
/obj/structure/machinery/cryopod{
pixel_y = 6
@@ -46281,9 +44374,23 @@
},
/turf/open/floor/wood/ship,
/area/almayer/shipboard/brig/chief_mp_office)
+"ldb" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"ldc" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/engineering/lower/workshop)
+"lde" = (
+/obj/structure/machinery/conveyor{
+ id = "req_belt"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"ldl" = (
/obj/structure/sign/safety/maint{
pixel_x = 32
@@ -46292,6 +44399,16 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north2)
+"ldq" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"ldt" = (
/obj/structure/machinery/conveyor{
dir = 8;
@@ -46302,12 +44419,6 @@
icon_state = "plate"
},
/area/almayer/living/gym)
-"ldu" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"ldC" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -46317,6 +44428,13 @@
"ldF" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/s_bow)
+"ldW" = (
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"lea" = (
/obj/structure/sink{
dir = 4;
@@ -46387,6 +44505,10 @@
"lfx" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
+"lfz" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"lfH" = (
/obj/structure/machinery/light{
dir = 4
@@ -46451,15 +44573,6 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"lgX" = (
-/obj/structure/sign/safety/storage{
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"lhj" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/safety/bulkhead_door{
@@ -46469,6 +44582,11 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/p_bow)
+"lhs" = (
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"lht" = (
/turf/open/floor/almayer{
dir = 6;
@@ -46556,9 +44674,7 @@
dir = 1;
icon_state = "ramptop"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"liF" = (
/obj/structure/machinery/light/small{
@@ -46782,6 +44898,12 @@
icon_state = "orange"
},
/area/almayer/hallways/hangar)
+"lma" = (
+/obj/structure/sign/safety/security{
+ pixel_x = 15
+ },
+/turf/closed/wall/almayer,
+/area/almayer/hallways/lower/starboard_umbilical)
"lmi" = (
/obj/structure/bed,
/obj/item/bedsheet/green,
@@ -46815,7 +44937,7 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/medical_science)
"lmz" = (
-/turf/closed/wall/almayer/white/hull,
+/turf/closed/wall/almayer/aicore/hull,
/area/space)
"lmA" = (
/obj/structure/flora/pottedplant{
@@ -46890,8 +45012,8 @@
pixel_y = -8;
req_one_access_txt = "90;91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
+/turf/open/floor/almayer/aicore/glowing/no_build{
+ icon_state = "ai_floor3"
},
/area/almayer/command/airoom)
"lok" = (
@@ -47045,33 +45167,17 @@
icon_state = "test_floor4"
},
/area/almayer/powered/agent)
-"lpD" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/effect/step_trigger/clone_cleaner,
+"lql" = (
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "greencorner"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/starboard_umbilical)
"lqF" = (
/turf/open/floor/almayer{
dir = 9;
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
-"lqJ" = (
-/obj/structure/sign/safety/escapepod{
- pixel_y = -32
- },
-/obj/structure/sign/safety/south{
- pixel_x = 15;
- pixel_y = -32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"lqK" = (
/obj/effect/decal/cleanable/ash,
/obj/item/trash/cigbutt/ucigbutt{
@@ -47093,6 +45199,13 @@
icon_state = "orange"
},
/area/almayer/living/port_emb)
+"lrd" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"lrq" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/shipboard/brig/armory)
@@ -47210,7 +45323,7 @@
"ltc" = (
/obj/effect/landmark/late_join/working_joe,
/obj/effect/landmark/start/working_joe,
-/turf/open/floor/plating/plating_catwalk,
+/turf/open/floor/plating/plating_catwalk/aicore,
/area/almayer/command/airoom)
"ltm" = (
/obj/structure/bed/chair/comfy/orange,
@@ -47224,6 +45337,25 @@
icon_state = "sterile_green"
},
/area/almayer/medical/containment)
+"ltt" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"ltv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"ltw" = (
/obj/structure/largecrate/supply,
/turf/open/floor/almayer,
@@ -47247,6 +45379,19 @@
icon_state = "emerald"
},
/area/almayer/squads/charlie)
+"ltO" = (
+/obj/structure/closet/secure_closet{
+ name = "\improper Lethal Injection Locker"
+ },
+/obj/item/reagent_container/ld50_syringe/choral,
+/obj/item/reagent_container/ld50_syringe/choral,
+/obj/item/reagent_container/ld50_syringe/choral,
+/obj/item/reagent_container/ld50_syringe/choral,
+/obj/item/reagent_container/ld50_syringe/choral,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/shipboard/brig/execution_storage)
"ltU" = (
/obj/structure/bed/chair{
dir = 8
@@ -47266,16 +45411,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/commandbunks)
-"luz" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"luE" = (
/obj/structure/sign/poster{
pixel_y = 32
@@ -47355,13 +45490,6 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"lwm" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"lwp" = (
/obj/item/device/radio/intercom{
freerange = 1;
@@ -47384,6 +45512,12 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/basketball)
+"lwG" = (
+/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"lwJ" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -47392,12 +45526,6 @@
icon_state = "emeraldfull"
},
/area/almayer/squads/charlie)
-"lwK" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/main_office)
"lwY" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
name = "\improper Port Viewing Room"
@@ -47406,6 +45534,12 @@
icon_state = "test_floor4"
},
/area/almayer/maint/hull/upper/u_f_p)
+"lxd" = (
+/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"lxo" = (
/obj/structure/sign/safety/hazard{
pixel_x = -17;
@@ -47419,14 +45553,6 @@
icon_state = "plate"
},
/area/almayer/living/auxiliary_officer_office)
-"lxy" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/main_office)
"lxE" = (
/obj/structure/machinery/cm_vending/clothing/commanding_officer,
/turf/open/floor/almayer{
@@ -47462,6 +45588,12 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_f_p)
+"lyq" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "emerald"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"lyw" = (
/obj/structure/bed/chair/comfy{
dir = 8
@@ -47523,16 +45655,6 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/processing)
-"lzj" = (
-/obj/structure/sign/safety/storage{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"lzq" = (
/obj/structure/disposalpipe/segment{
dir = 1;
@@ -47548,12 +45670,13 @@
icon_state = "mono"
},
/area/almayer/medical/medical_science)
-"lzY" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = -25
+"lzF" = (
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/chief_mp_office)
+/area/almayer/hallways/upper/aft_hallway)
"lAa" = (
/obj/structure/surface/table/almayer,
/obj/item/device/lightreplacer{
@@ -47591,13 +45714,6 @@
},
/turf/open/floor/carpet,
/area/almayer/command/cichallway)
-"lAO" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"lAQ" = (
/obj/structure/machinery/cm_vending/gear/tl{
density = 0;
@@ -47610,6 +45726,13 @@
icon_state = "emerald"
},
/area/almayer/squads/charlie)
+"lBf" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"lBg" = (
/obj/structure/bedsheetbin,
/turf/open/floor/almayer{
@@ -47645,13 +45768,6 @@
icon_state = "cargo"
},
/area/almayer/maint/hull/upper/u_m_p)
-"lBz" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"lBB" = (
/obj/structure/machinery/power/apc/almayer{
dir = 1
@@ -47660,6 +45776,18 @@
icon_state = "plate"
},
/area/almayer/maint/upper/u_m_s)
+"lCc" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"lCm" = (
/obj/structure/machinery/light/small{
dir = 1
@@ -47669,12 +45797,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/s_bow)
-"lCp" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/main_office)
"lCr" = (
/turf/open/floor/almayer{
icon_state = "redfull"
@@ -47709,20 +45831,22 @@
},
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
-"lDg" = (
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "laddernorthwest";
- name = "\improper North West Ladders Shutters"
+"lDk" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
},
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
+/obj/structure/machinery/door_control{
+ id = "laddersoutheast";
+ name = "South East Ladders Shutters";
+ pixel_y = 25;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
},
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/effect/step_trigger/clone_cleaner,
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ dir = 1;
+ icon_state = "green"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/port_midship_hallway)
"lDn" = (
/obj/effect/decal/warning_stripes{
icon_state = "NE-out";
@@ -47737,15 +45861,6 @@
},
/turf/open/floor/plating,
/area/almayer/maint/lower/constr)
-"lDJ" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/starboard_hallway)
"lDL" = (
/obj/structure/machinery/light{
dir = 4
@@ -47838,6 +45953,11 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/alpha_bravo_shared)
+"lEV" = (
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"lFe" = (
/obj/structure/bed/chair/comfy{
dir = 4
@@ -47895,6 +46015,17 @@
icon_state = "cargo"
},
/area/almayer/engineering/starboard_atmos)
+"lFw" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/effect/projector{
+ name = "Almayer_Up1";
+ vector_x = -19;
+ vector_y = 98
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"lFA" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/pouch/tools/tank,
@@ -47935,6 +46066,19 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south2)
+"lFL" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"lGg" = (
/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage,
/turf/open/floor/almayer{
@@ -47942,13 +46086,6 @@
icon_state = "orange"
},
/area/almayer/engineering/lower/workshop/hangar)
-"lGh" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/sign/safety/maint{
- pixel_x = -17
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"lHk" = (
/obj/structure/closet/firecloset,
/obj/effect/decal/warning_stripes{
@@ -47994,15 +46131,20 @@
},
/turf/open/floor/carpet,
/area/almayer/command/cichallway)
-"lIw" = (
+"lIu" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
},
+/obj/structure/machinery/door/poddoor/almayer{
+ dir = 4;
+ id = "hangarentrancenorth";
+ name = "\improper North Hangar Podlock"
+ },
/turf/open/floor/almayer{
icon_state = "test_floor4"
},
-/area/almayer/hallways/stern_hallway)
+/area/almayer/hallways/lower/starboard_fore_hallway)
"lII" = (
/obj/structure/bed/chair/office/dark{
dir = 1
@@ -48127,15 +46269,6 @@
icon_state = "test_floor4"
},
/area/almayer/squads/alpha_bravo_shared)
-"lKk" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 32
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"lKM" = (
/obj/structure/surface/table/almayer,
/turf/open/floor/almayer,
@@ -48147,10 +46280,29 @@
},
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
+"lLl" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/machinery/door_control{
+ id = "laddersouthwest";
+ name = "South West Ladders Shutters";
+ pixel_x = 25;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/turf/open/floor/almayer{
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"lLC" = (
/obj/structure/surface/table/almayer,
/turf/open/floor/almayer,
/area/almayer/squads/charlie)
+"lLO" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"lLS" = (
/obj/structure/sign/safety/galley{
pixel_x = 32
@@ -48226,12 +46378,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_p)
-"lNl" = (
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "red"
- },
-/area/almayer/hallways/stern_hallway)
"lNw" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -48247,17 +46393,20 @@
icon_state = "plate"
},
/area/almayer/squads/charlie)
-"lNN" = (
-/obj/structure/closet/secure_closet/medical2,
-/turf/open/floor/almayer{
- icon_state = "sterile_green_side"
- },
-/area/almayer/shipboard/brig/surgery)
"lNR" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/firedoor/border_only/almayer,
/turf/open/floor/plating,
/area/almayer/engineering/lower/workshop)
+"lOn" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"lOr" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/firedoor/border_only/almayer,
@@ -48277,16 +46426,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/operating_room_two)
-"lOI" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/pipes/vents/pump,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"lON" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
@@ -48384,6 +46523,14 @@
icon_state = "plate"
},
/area/almayer/squads/bravo)
+"lQB" = (
+/obj/structure/machinery/door/poddoor/almayer/open{
+ dir = 4;
+ id = "Hangar Lockdown";
+ name = "\improper Hangar Lockdown Blast Door"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"lQG" = (
/obj/structure/machinery/computer/tech_control,
/turf/open/floor/plating/plating_catwalk,
@@ -48402,24 +46549,6 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/operating_room_three)
-"lQQ" = (
-/obj/structure/pipes/vents/pump{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
-"lRe" = (
-/obj/structure/pipes/vents/pump,
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "sterile_green_side"
- },
-/area/almayer/shipboard/brig/surgery)
"lRs" = (
/obj/structure/surface/table/almayer,
/obj/item/trash/USCMtray{
@@ -48451,13 +46580,6 @@
/obj/item/prop/helmetgarb/chaplain_patch,
/turf/open/floor/wood/ship,
/area/almayer/living/chapel)
-"lRU" = (
-/obj/structure/sign/safety/conference_room{
- pixel_x = 14;
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"lRX" = (
/obj/structure/surface/table/almayer,
/obj/item/device/flashlight/lamp,
@@ -48536,6 +46658,16 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/brig/processing)
+"lUA" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"lUQ" = (
/obj/structure/machinery/light/small{
dir = 4
@@ -48605,6 +46737,12 @@
icon_state = "plate"
},
/area/almayer/command/cic)
+"lVZ" = (
+/obj/structure/platform_decoration{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"lWr" = (
/obj/structure/largecrate/random/case,
/turf/open/floor/almayer{
@@ -48668,11 +46806,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_p)
-"lYi" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"lYk" = (
/obj/item/trash/c_tube{
pixel_x = 16;
@@ -48767,6 +46900,26 @@
icon_state = "test_floor4"
},
/area/almayer/medical/hydroponics)
+"may" = (
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_21";
+ pixel_y = 16
+ },
+/obj/structure/surface/table/almayer,
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
+"maF" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"maI" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -48808,6 +46961,15 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/upper_medical)
+"mbu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/stern_hallway)
"mbx" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -48821,11 +46983,12 @@
/obj/docking_port/stationary/escape_pod/north,
/turf/open/floor/plating,
/area/almayer/maint/hull/lower/l_m_p)
-"mce" = (
+"mcp" = (
/turf/open/floor/almayer{
- icon_state = "greencorner"
+ dir = 1;
+ icon_state = "redcorner"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/shipboard/brig/starboard_hallway)
"mcL" = (
/obj/structure/machinery/vending/snack,
/obj/structure/sign/safety/maint{
@@ -48843,12 +47006,28 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/morgue)
+"mdk" = (
+/obj/structure/machinery/door/poddoor/railing{
+ dir = 4;
+ id = "vehicle_elevator_railing_aux"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"mdo" = (
/obj/structure/machinery/cm_vending/sorted/marine_food,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/squads/alpha)
+"mdC" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "emerald"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"mdW" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/effect/decal/warning_stripes{
@@ -48861,10 +47040,17 @@
},
/obj/item/folder/white,
/obj/item/folder/white,
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
+"mea" = (
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_21"
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"mem" = (
/obj/structure/machinery/light/small{
dir = 1
@@ -48892,16 +47078,24 @@
icon_state = "blue"
},
/area/almayer/squads/delta)
-"meJ" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = 8;
- pixel_y = 32
+"meE" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 32
},
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
+"meQ" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"meS" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer{
+ icon_state = "mono"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"meT" = (
/obj/structure/machinery/door/poddoor/almayer/open{
id = "Hangar Lockdown";
@@ -49073,6 +47267,17 @@
icon_state = "plate"
},
/area/almayer/squads/alpha)
+"miy" = (
+/obj/structure/machinery/optable,
+/obj/structure/sign/safety/medical{
+ pixel_x = 8;
+ pixel_y = 29
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "sterile_green_corner"
+ },
+/area/almayer/shipboard/brig/medical)
"miE" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 1
@@ -49097,11 +47302,6 @@
icon_state = "redfull"
},
/area/almayer/command/cic)
-"mji" = (
-/obj/structure/pipes/standard/manifold/fourway/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"mjs" = (
/obj/effect/decal/warning_stripes{
icon_state = "NW-out";
@@ -49209,6 +47409,24 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/lower/workshop/hangar)
+"mkw" = (
+/obj/structure/sign/safety/security{
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/restrictedarea{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
+"mkx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"mkF" = (
/obj/structure/largecrate/random/barrel/blue,
/turf/open/floor/almayer{
@@ -49280,9 +47498,7 @@
icon_state = "NE-out";
pixel_y = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"mlm" = (
/turf/open/floor/almayer{
@@ -49332,6 +47548,12 @@
/obj/structure/machinery/door/poddoor/almayer/biohazard/white,
/turf/open/floor/plating,
/area/almayer/medical/medical_science)
+"mnc" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 5
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_umbilical)
"mng" = (
/turf/open/floor/almayer{
icon_state = "redcorner"
@@ -49343,20 +47565,33 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
-"mnG" = (
-/obj/structure/machinery/status_display{
- pixel_y = -30
- },
+"mnC" = (
/turf/open/floor/almayer{
dir = 8;
- icon_state = "orange"
+ icon_state = "greencorner"
},
-/area/almayer/hallways/stern_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"mnI" = (
/turf/open/floor/almayer{
icon_state = "blue"
},
/area/almayer/living/briefing)
+"mnV" = (
+/obj/structure/sign/safety/refridgeration{
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/medical{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 1;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"mnW" = (
/obj/structure/surface/table/almayer,
/obj/item/device/reagent_scanner{
@@ -49479,12 +47714,27 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/lower)
+"mpV" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"mqb" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 8
},
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
+"mqd" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"mqg" = (
/obj/structure/bed/chair{
dir = 4
@@ -49498,15 +47748,18 @@
icon_state = "silver"
},
/area/almayer/shipboard/brig/cic_hallway)
-"mqo" = (
-/obj/structure/bed/chair/bolted{
- dir = 1
+"mqt" = (
+/turf/open/floor/almayer{
+ icon_state = "bluecorner"
},
+/area/almayer/hallways/lower/port_midship_hallway)
+"mqB" = (
+/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
dir = 8;
- icon_state = "red"
+ icon_state = "orange"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/lower/port_umbilical)
"mqK" = (
/obj/structure/machinery/cm_vending/gear/spec,
/obj/structure/sign/safety/hazard{
@@ -49520,6 +47773,18 @@
icon_state = "plate"
},
/area/almayer/squads/bravo)
+"mqR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"mqU" = (
/obj/structure/pipes/vents/pump{
dir = 8;
@@ -49529,13 +47794,12 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/operating_room_two)
-"mru" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out";
- pixel_x = 1
+"mqZ" = (
+/obj/structure/platform{
+ dir = 8
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"mrD" = (
/obj/structure/machinery/light{
dir = 1
@@ -49681,6 +47945,12 @@
icon_state = "plating"
},
/area/almayer/engineering/lower/engine_core)
+"mua" = (
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"mub" = (
/obj/structure/barricade/handrail{
dir = 4
@@ -49761,36 +48031,6 @@
icon_state = "bluecorner"
},
/area/almayer/squads/delta)
-"mvE" = (
-/obj/item/bedsheet/brown{
- pixel_y = 13
- },
-/obj/structure/window/reinforced{
- dir = 8;
- layer = 3.3;
- pixel_y = 4
- },
-/obj/structure/window/reinforced{
- dir = 4;
- pixel_x = -2;
- pixel_y = 4
- },
-/obj/structure/bed{
- can_buckle = 0
- },
-/obj/structure/bed{
- buckling_y = 13;
- layer = 3.5;
- pixel_y = 13
- },
-/obj/item/bedsheet/brown{
- layer = 3.1
- },
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"mvI" = (
/obj/structure/machinery/camera/autoname/almayer{
dir = 4;
@@ -49804,15 +48044,12 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
-"mvR" = (
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
- },
-/turf/open/floor/almayer{
- icon_state = "dark_sterile"
+"mww" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
-/area/almayer/shipboard/brig/surgery)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"mwA" = (
/obj/structure/disposalpipe/segment{
dir = 8;
@@ -49859,6 +48096,15 @@
/obj/structure/machinery/light,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/stair_clone/upper)
+"mxg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"mxT" = (
/obj/structure/surface/table/almayer,
/obj/item/device/flashlight/lamp,
@@ -49942,6 +48188,21 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/brig/armory)
+"mze" = (
+/obj/structure/machinery/door/poddoor/almayer/open{
+ dir = 4;
+ id = "Brig Lockdown Shutters";
+ name = "\improper Brig Lockdown Shutter"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
+ name = "\improper Brig";
+ closeOtherId = "brigmaint_n"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"mzg" = (
/turf/open/floor/almayer{
icon_state = "emerald"
@@ -49971,6 +48232,10 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/upper/port)
+"mzv" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"mzz" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer,
@@ -49988,13 +48253,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_s)
-"mzR" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = 8;
- pixel_y = -32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"mzS" = (
/turf/open/floor/almayer{
dir = 9;
@@ -50032,6 +48290,24 @@
icon_state = "cargo"
},
/area/almayer/squads/delta)
+"mAY" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
+"mBa" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"mBc" = (
/obj/structure/bed/chair{
dir = 8
@@ -50191,22 +48467,13 @@
icon_state = "test_floor4"
},
/area/almayer/living/commandbunks)
-"mEb" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
+"mDZ" = (
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/structure/machinery/door_control{
- id = "laddersoutheast";
- name = "South East Ladders Shutters";
- pixel_y = 25;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"mEE" = (
/obj/structure/platform{
dir = 4;
@@ -50243,6 +48510,16 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/medical_science)
+"mFL" = (
+/obj/effect/projector{
+ name = "Almayer_Up1";
+ vector_x = -19;
+ vector_y = 98
+ },
+/turf/open/floor/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"mFN" = (
/obj/effect/step_trigger/ares_alert/mainframe,
/obj/structure/machinery/door/poddoor/shutters/almayer{
@@ -50250,7 +48527,7 @@
name = "\improper ARES Mainframe Shutters";
plane = -7
},
-/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
+/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{
closed_layer = 3.2;
id = "ARES Emergency";
layer = 3.2;
@@ -50295,6 +48572,13 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/command/cichallway)
+"mGk" = (
+/obj/structure/disposalpipe/junction,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"mGu" = (
/turf/open/floor/almayer{
dir = 4;
@@ -50325,16 +48609,6 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/processing)
-"mHm" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_y = -32
- },
-/obj/structure/sign/safety/manualopenclose{
- pixel_x = 15;
- pixel_y = -32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"mHo" = (
/obj/structure/machinery/washing_machine,
/obj/structure/machinery/washing_machine{
@@ -50366,19 +48640,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/chief_mp_office)
-"mHA" = (
-/obj/structure/closet/secure_closet/surgical{
- pixel_x = -30
- },
-/obj/structure/machinery/power/apc/almayer,
-/obj/structure/sign/safety/rewire{
- pixel_y = -38
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "sterile_green_corner"
- },
-/area/almayer/shipboard/brig/surgery)
"mHD" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -50392,9 +48653,9 @@
},
/area/almayer/medical/hydroponics)
"mHE" = (
-/turf/open/floor/almayer/no_build{
- dir = 8;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 8
},
/area/almayer/command/airoom)
"mHF" = (
@@ -50449,16 +48710,6 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"mIJ" = (
-/obj/structure/sign/safety/ladder{
- pixel_x = -16
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 2
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/vehiclehangar)
"mIP" = (
/obj/structure/pipes/vents/pump,
/obj/effect/decal/warning_stripes{
@@ -50469,13 +48720,6 @@
icon_state = "dark_sterile"
},
/area/almayer/engineering/upper_engineering/port)
-"mIW" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"mJa" = (
/obj/structure/closet/crate/trashcart,
/obj/item/trash/boonie,
@@ -50513,6 +48757,15 @@
/obj/structure/window/framed/almayer,
/turf/open/floor/plating,
/area/almayer/squads/alpha)
+"mJp" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"mJu" = (
/turf/open/floor/almayer/uscm/directional,
/area/almayer/command/cic)
@@ -50649,14 +48902,6 @@
icon_state = "plate"
},
/area/almayer/living/port_emb)
-"mKY" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- icon_state = "pipe-c"
- },
-/obj/structure/pipes/standard/manifold/fourway/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"mLe" = (
/obj/structure/pipes/vents/pump{
dir = 8
@@ -50670,14 +48915,9 @@
},
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
-"mLu" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_umbilical)
+"mLg" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_umbilical)
"mLz" = (
/obj/structure/machinery/door_control{
id = "pobunk1";
@@ -50704,12 +48944,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/alpha)
-"mLJ" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/shipboard/brig/main_office)
"mLN" = (
/obj/structure/machinery/light/small,
/obj/structure/disposalpipe/segment{
@@ -50730,12 +48964,6 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/req)
-"mLU" = (
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"mMP" = (
/obj/effect/landmark/start/intel,
/turf/open/floor/plating/plating_catwalk,
@@ -50751,22 +48979,31 @@
icon_state = "silver"
},
/area/almayer/shipboard/brig/cic_hallway)
-"mMZ" = (
-/obj/structure/disposalpipe/junction,
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"mNm" = (
/obj/structure/platform{
dir = 8
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/hangar)
+"mNG" = (
+/obj/structure/sign/safety/stairs{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/west{
+ pixel_y = 32
+ },
+/obj/structure/machinery/door_control{
+ id = "laddernorthwest";
+ name = "North West Ladders Shutters";
+ pixel_y = 24;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"mNI" = (
/obj/structure/machinery/door/window/westleft{
dir = 2
@@ -50827,6 +49064,12 @@
"mOi" = (
/turf/closed/wall/almayer/outer,
/area/almayer/command/airoom)
+"mOw" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"mOE" = (
/obj/structure/sign/safety/water{
pixel_x = -17
@@ -50835,16 +49078,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
-"mOL" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"mOR" = (
/obj/structure/surface/rack,
/obj/item/roller,
@@ -50914,6 +49147,11 @@
icon_state = "green"
},
/area/almayer/squads/req)
+"mPM" = (
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"mPR" = (
/obj/structure/machinery/light{
dir = 8
@@ -50923,11 +49161,6 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"mPX" = (
-/turf/open/floor/almayer{
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"mQc" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 1
@@ -50937,6 +49170,14 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
+"mQd" = (
+/obj/structure/surface/rack,
+/obj/item/device/radio,
+/obj/item/tool/weldpack,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"mQn" = (
/obj/structure/sign/safety/rad_shield{
pixel_x = 32
@@ -50946,15 +49187,25 @@
icon_state = "orange"
},
/area/almayer/engineering/lower/engine_core)
+"mQx" = (
+/obj/effect/projector{
+ name = "Almayer_Up3";
+ vector_x = -1;
+ vector_y = 102
+ },
+/turf/open/floor/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"mQC" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/port_atmos)
-"mQH" = (
+"mQF" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "blue"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/upper/stern_hallway)
"mQY" = (
/obj/structure/machinery/door/airlock/almayer/maint{
dir = 1
@@ -50965,16 +49216,6 @@
icon_state = "test_floor4"
},
/area/almayer/maint/hull/lower/l_m_s)
-"mRl" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 8;
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"mRn" = (
/obj/structure/machinery/door/poddoor/shutters/almayer{
id = "ARES Interior";
@@ -50982,7 +49223,7 @@
plane = -7
},
/obj/effect/step_trigger/ares_alert/core,
-/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
+/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{
closed_layer = 3.2;
id = "ARES Emergency";
layer = 3.2;
@@ -51022,6 +49263,20 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
+"mRH" = (
+/obj/structure/machinery/cm_vending/sorted/tech/comp_storage{
+ req_access = null;
+ req_one_access = null;
+ req_one_access_txt = "7;23;27;102"
+ },
+/obj/item/reagent_container/food/drinks/coffee{
+ pixel_x = -3;
+ pixel_y = 18
+ },
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"mRI" = (
/obj/structure/machinery/door/airlock/almayer/maint,
/turf/open/floor/almayer{
@@ -51044,16 +49299,6 @@
icon_state = "red"
},
/area/almayer/command/lifeboat)
-"mRS" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"mRU" = (
/turf/closed/wall/almayer,
/area/almayer/maint/hull/upper/u_m_p)
@@ -51109,15 +49354,6 @@
icon_state = "blue"
},
/area/almayer/squads/charlie_delta_shared)
-"mTb" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"mTc" = (
/obj/structure/surface/table/woodentable/fancy,
/obj/structure/machinery/computer/emails{
@@ -51145,12 +49381,16 @@
icon_state = "red"
},
/area/almayer/shipboard/navigation)
-"mTn" = (
-/obj/structure/closet/firecloset,
+"mTo" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
/turf/open/floor/almayer{
- icon_state = "cargo"
+ dir = 4;
+ icon_state = "silver"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"mTp" = (
/obj/structure/window/reinforced{
dir = 4;
@@ -51179,14 +49419,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/processing)
-"mUa" = (
-/obj/structure/disposalpipe/junction{
- dir = 4;
- icon_state = "pipe-j2"
- },
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"mUq" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -51208,19 +49440,8 @@
dir = 8;
pixel_x = 17
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
-/area/almayer/command/airoom)
-"mUC" = (
-/obj/structure/machinery/light{
- dir = 4;
- invisibility = 101;
- unacidable = 1;
- unslashable = 1
- },
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
+/turf/open/floor/almayer/aicore/glowing/no_build{
+ icon_state = "ai_floor3"
},
/area/almayer/command/airoom)
"mUE" = (
@@ -51321,14 +49542,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/medical_science)
-"mWw" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/obj/structure/sign/safety/restrictedarea{
- pixel_x = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"mWy" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/airlock/multi_tile/almayer/marine/shared/alpha_bravo/yellow{
@@ -51386,37 +49599,58 @@
/obj/item/tool/wrench,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/p_bow)
-"mYv" = (
-/obj/structure/disposalpipe/sortjunction{
+"mXy" = (
+/obj/structure/machinery/power/apc/almayer{
+ dir = 1
+ },
+/obj/structure/sign/safety/rewire{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer{
dir = 4;
- negdir = 4;
- posdir = 1
+ icon_state = "orange"
},
-/turf/closed/wall/almayer,
-/area/almayer/squads/req)
-"mYw" = (
+/area/almayer/hallways/lower/port_aft_hallway)
+"mXP" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
+"mYd" = (
/obj/structure/sign/safety/escapepod{
- pixel_x = -17;
- pixel_y = -8
+ pixel_y = 32
},
-/obj/structure/sign/safety/stairs{
- pixel_x = -17;
- pixel_y = 7
+/obj/structure/sign/safety/east{
+ pixel_x = 15;
+ pixel_y = 32
},
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "blue"
+ dir = 1;
+ icon_state = "green"
},
-/area/almayer/hallways/port_hallway)
-"mYY" = (
+/area/almayer/hallways/upper/aft_hallway)
+"mYt" = (
/obj/effect/decal/warning_stripes{
- icon_state = "SW-out"
+ icon_state = "W";
+ pixel_x = -1
},
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/vehiclehangar)
+"mYv" = (
+/obj/structure/disposalpipe/sortjunction{
+ dir = 4;
+ negdir = 4;
+ posdir = 1
},
-/area/almayer/hallways/vehiclehangar)
+/turf/closed/wall/almayer,
+/area/almayer/squads/req)
"mZb" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22";
@@ -51502,6 +49736,18 @@
icon_state = "red"
},
/area/almayer/shipboard/navigation)
+"mZP" = (
+/obj/structure/surface/rack,
+/obj/item/tool/crowbar,
+/obj/item/tool/weldingtool,
+/obj/item/tool/wrench,
+/obj/structure/sign/safety/restrictedarea{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"mZQ" = (
/obj/structure/machinery/vending/security,
/obj/structure/machinery/light,
@@ -51513,6 +49759,15 @@
icon_state = "plate"
},
/area/almayer/shipboard/brig/general_equipment)
+"naa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"nac" = (
/obj/structure/stairs/perspective{
dir = 1;
@@ -51523,6 +49778,12 @@
icon_state = "plating"
},
/area/almayer/engineering/lower/engine_core)
+"naj" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"nar" = (
/obj/structure/toilet{
dir = 4
@@ -51587,14 +49848,24 @@
icon_state = "test_floor4"
},
/area/almayer/living/gym)
-"nbv" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 3"
+"nbu" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
+"nbW" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
},
-/area/almayer/engineering/lower/engine_core)
+/area/almayer/hallways/upper/stern_hallway)
"ncf" = (
/obj/structure/machinery/cryopod/right{
layer = 3.1;
@@ -51607,6 +49878,9 @@
icon_state = "cargo"
},
/area/almayer/shipboard/brig/cryo)
+"nci" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"ncl" = (
/turf/open/floor/almayer{
icon_state = "red"
@@ -51673,15 +49947,6 @@
icon_state = "plate"
},
/area/almayer/maint/lower/cryo_cells)
-"ndJ" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"ndZ" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/device/flashlight/lamp,
@@ -51702,6 +49967,15 @@
icon_state = "test_floor4"
},
/area/almayer/powered)
+"nef" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"new" = (
/obj/item/reagent_container/glass/bucket/janibucket,
/obj/item/reagent_container/glass/bucket/janibucket{
@@ -51773,13 +50047,6 @@
icon_state = "orangefull"
},
/area/almayer/living/briefing)
-"nfp" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/machinery/light,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/stern_hallway)
"ngf" = (
/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
pixel_y = 25
@@ -51873,6 +50140,20 @@
icon_state = "redcorner"
},
/area/almayer/living/briefing)
+"ngK" = (
+/obj/structure/machinery/door/poddoor/almayer/open{
+ id = "Hangar Lockdown";
+ name = "\improper Hangar Lockdown Blast Door"
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ id = "DeployWorkR";
+ name = "\improper Workshop Shutters"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/repair_bay)
"ngU" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -51939,6 +50220,16 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/charlie_delta_shared)
+"nhE" = (
+/obj/structure/sign/safety/maint{
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/storage{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"nhG" = (
/obj/item/newspaper{
name = "character sheet"
@@ -51966,6 +50257,13 @@
/obj/structure/surface/table/almayer,
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cells)
+"nhT" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"nhV" = (
/obj/structure/machinery/light/small,
/turf/open/floor/almayer{
@@ -52091,12 +50389,6 @@
"njn" = (
/turf/closed/wall/almayer,
/area/almayer/maint/upper/u_m_s)
-"njy" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"njD" = (
/obj/structure/closet/emcloset,
/turf/open/floor/almayer{
@@ -52116,31 +50408,22 @@
icon_state = "plate"
},
/area/almayer/living/grunt_rnr)
-"njL" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "emerald"
- },
-/area/almayer/hallways/port_hallway)
"njO" = (
/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun,
/turf/open/floor/almayer{
icon_state = "redfull"
},
/area/almayer/shipboard/panic)
-"nka" = (
-/obj/structure/machinery/door/poddoor/railing{
- dir = 2;
- id = "vehicle_elevator_railing"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+"njS" = (
+/obj/structure/sign/safety/rad_haz{
+ pixel_x = 8;
+ pixel_y = -32
},
+/obj/structure/machinery/power/reactor,
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "cargo_arrow"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/vehiclehangar)
+/area/almayer/engineering/lower/engine_core)
"nkj" = (
/obj/structure/sign/safety/hvac_old{
pixel_x = 8;
@@ -52261,26 +50544,16 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_f_s)
-"nmx" = (
+"nmH" = (
/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+ dir = 9
},
-/obj/structure/disposalpipe/junction{
- dir = 4
+/obj/structure/disposalpipe/segment{
+ dir = 8;
+ icon_state = "pipe-c"
},
/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
-"nmD" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/lower/port_aft_hallway)
"nmK" = (
/obj/structure/machinery/disposal,
/obj/structure/disposalpipe/trunk{
@@ -52311,6 +50584,18 @@
icon_state = "plate"
},
/area/almayer/command/cichallway)
+"nnr" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"nny" = (
/obj/structure/sign/safety/rewire{
pixel_x = -17;
@@ -52400,6 +50685,15 @@
},
/turf/open/floor/almayer,
/area/almayer/maint/hull/upper/u_f_p)
+"noI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 6
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"noP" = (
/obj/structure/machinery/light{
dir = 1
@@ -52417,17 +50711,6 @@
},
/turf/open/floor/plating,
/area/almayer/engineering/starboard_atmos)
-"npn" = (
-/obj/structure/surface/table/almayer,
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/obj/structure/machinery/camera/autoname/almayer{
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/engineering/lower/engine_core)
"npt" = (
/obj/effect/decal/warning_stripes{
icon_state = "SE-out";
@@ -52443,6 +50726,12 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/containment)
+"npw" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"npA" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -52532,22 +50821,6 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
-"nrt" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 6
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/almayer/hallways/vehiclehangar)
"nrw" = (
/obj/structure/bed/chair{
dir = 4
@@ -52587,6 +50860,13 @@
/obj/item/storage/box/lights/mixed,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_s)
+"nso" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"nsQ" = (
/obj/structure/sink{
dir = 4;
@@ -52633,17 +50913,6 @@
"ntj" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/command/computerlab)
-"ntt" = (
-/obj/item/stool,
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/almayer/hallways/vehiclehangar)
"ntx" = (
/obj/structure/machinery/door/airlock/almayer/generic{
id = "Alpha_2";
@@ -52709,6 +50978,20 @@
/obj/effect/landmark/late_join/alpha,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/alpha)
+"nuZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"nvd" = (
/turf/open/floor/almayer{
dir = 6;
@@ -52796,6 +51079,24 @@
dir = 4
},
/area/almayer/medical/containment/cell)
+"nwu" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/east{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"nww" = (
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"nwx" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
@@ -52898,29 +51199,6 @@
icon_state = "orange"
},
/area/almayer/engineering/lower)
-"nxK" = (
-/obj/structure/sign/safety/high_voltage{
- pixel_y = -32
- },
-/obj/structure/sign/safety/hazard{
- pixel_x = 15;
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
-"nxZ" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 10"
- },
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
"nyj" = (
/obj/effect/decal/medical_decals{
icon_state = "docdecal2"
@@ -52943,12 +51221,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/briefing)
-"nyG" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
"nyQ" = (
/turf/open/floor/almayer,
/area/almayer/squads/charlie_delta_shared)
@@ -52959,6 +51231,12 @@
icon_state = "red"
},
/area/almayer/hallways/upper/port)
+"nzt" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_aft_hallway)
"nzv" = (
/obj/structure/filingcabinet/filingcabinet,
/obj/item/clipboard,
@@ -52970,15 +51248,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/upper_medical)
-"nzA" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"nzD" = (
/obj/effect/step_trigger/clone_cleaner,
/turf/open/floor/almayer,
@@ -53042,6 +51311,15 @@
},
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
+"nBo" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "bluecorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"nBw" = (
/turf/open/floor/almayer{
dir = 1;
@@ -53069,15 +51347,21 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/north2)
-"nBW" = (
-/obj/structure/sign/safety/maint{
- pixel_x = -17
+"nBV" = (
+/obj/structure/surface/table/almayer,
+/obj/item/storage/firstaid/o2,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
+"nCe" = (
+/obj/structure/machinery/prop/almayer/computer{
+ pixel_y = 20
},
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
+ icon_state = "plate"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/lower/repair_bay)
"nCf" = (
/obj/effect/landmark/start/marine/tl/charlie,
/obj/effect/landmark/late_join/charlie,
@@ -53126,6 +51410,11 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
+"nCD" = (
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"nCM" = (
/obj/structure/largecrate/random/secure,
/turf/open/floor/almayer{
@@ -53167,6 +51456,13 @@
icon_state = "tcomms"
},
/area/almayer/engineering/lower/engine_core)
+"nDb" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_umbilical)
"nDo" = (
/obj/structure/closet/l3closet/general,
/obj/structure/window/reinforced{
@@ -53179,19 +51475,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/medical_science)
-"nDL" = (
-/obj/structure/barricade/handrail{
- dir = 4
- },
-/obj/structure/surface/rack,
-/obj/item/stack/tile/carpet{
- amount = 20
- },
-/obj/item/stack/sheet/wood/large_stack,
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/engineering/upper_engineering/port)
"nDM" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/disposalpipe/segment,
@@ -53217,12 +51500,6 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/charlie)
-"nEs" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_umbilical)
"nEF" = (
/obj/structure/machinery/conveyor_switch{
id = "gym_1";
@@ -53270,12 +51547,6 @@
icon_state = "plate"
},
/area/almayer/command/cichallway)
-"nFr" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "greencorner"
- },
-/area/almayer/hallways/aft_hallway)
"nFs" = (
/obj/structure/machinery/light/small{
dir = 4
@@ -53325,24 +51596,6 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/alpha_bravo_shared)
-"nFM" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 18"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
-"nFV" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"nFX" = (
/obj/structure/machinery/door/poddoor/shutters/almayer{
dir = 2;
@@ -53495,6 +51748,13 @@
icon_state = "plating"
},
/area/almayer/shipboard/port_missiles)
+"nIF" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"nIG" = (
/obj/structure/machinery/power/apc/almayer{
dir = 4
@@ -53531,12 +51791,6 @@
/obj/item/newspaper,
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
-"nJz" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "redcorner"
- },
-/area/almayer/shipboard/brig/main_office)
"nJH" = (
/obj/structure/machinery/computer/cameras/almayer{
dir = 8;
@@ -53566,17 +51820,6 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
-"nLg" = (
-/obj/effect/projector{
- name = "Almayer_Up2";
- vector_x = -1;
- vector_y = 100
- },
-/turf/open/floor/almayer{
- allow_construction = 0;
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"nLk" = (
/obj/effect/decal/cleanable/blood/oil,
/obj/structure/machinery/power/apc/almayer{
@@ -53620,21 +51863,15 @@
icon_state = "plating"
},
/area/almayer/engineering/upper_engineering)
-"nLZ" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/door_control{
- id = "laddernortheast";
- name = "North East Ladders Shutters";
- pixel_y = -25;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
+"nLM" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
},
/turf/open/floor/almayer{
- icon_state = "green"
+ dir = 1;
+ icon_state = "blue"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"nMe" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -53911,13 +52148,19 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
-"nQx" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"nQA" = (
/turf/open/floor/carpet,
/area/almayer/command/corporateliaison)
+"nRA" = (
+/obj/effect/projector{
+ name = "Almayer_Up4";
+ vector_x = -19;
+ vector_y = 104
+ },
+/turf/open/floor/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"nRE" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 9
@@ -54049,9 +52292,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/command/corporateliaison)
-"nTT" = (
-/turf/closed/wall/almayer/outer,
-/area/almayer/maint/hull/upper)
"nTZ" = (
/turf/open/floor/almayer{
dir = 5;
@@ -54138,24 +52378,30 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
-"nVe" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/sign/safety/bridge{
- pixel_x = 15;
- pixel_y = 32
+"nVi" = (
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
},
-/obj/structure/sign/safety/west{
+/area/almayer/living/briefing)
+"nVm" = (
+/obj/structure/machinery/door_control{
+ id = "firearm_storage_armory";
+ name = "Armory Lockdown";
+ pixel_y = 24;
+ req_access_txt = "4"
+ },
+/obj/structure/sign/safety/ammunition{
pixel_y = 32
},
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
+/obj/structure/sign/safety/restrictedarea{
+ pixel_x = 15;
+ pixel_y = 32
},
-/area/almayer/hallways/aft_hallway)
-"nVi" = (
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ dir = 1;
+ icon_state = "red"
},
-/area/almayer/living/briefing)
+/area/almayer/shipboard/brig/starboard_hallway)
"nVn" = (
/obj/effect/decal/warning_stripes{
icon_state = "NW-out";
@@ -54177,6 +52423,20 @@
icon_state = "silver"
},
/area/almayer/shipboard/brig/cic_hallway)
+"nVA" = (
+/obj/structure/stairs{
+ dir = 8;
+ icon_state = "ramptop"
+ },
+/obj/effect/projector{
+ name = "Almayer_Down3";
+ vector_x = 1;
+ vector_y = -102
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/upper/aft_hallway)
"nVB" = (
/turf/open/floor/almayer,
/area/almayer/command/securestorage)
@@ -54194,6 +52454,17 @@
icon_state = "cargo_arrow"
},
/area/almayer/living/offices)
+"nVQ" = (
+/obj/structure/machinery/light,
+/obj/structure/sign/safety/security{
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/restrictedarea{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"nVR" = (
/turf/closed/wall/almayer,
/area/almayer/shipboard/brig/perma)
@@ -54211,6 +52482,14 @@
/obj/structure/surface/table/almayer,
/turf/open/floor/wood/ship,
/area/almayer/engineering/ce_room)
+"nWS" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/almayer/shipboard/brig/medical)
"nXo" = (
/obj/item/storage/box/donkpockets,
/obj/structure/surface/rack,
@@ -54304,13 +52583,6 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"nYv" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out";
- pixel_x = -1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"nYD" = (
/obj/structure/closet/secure_closet/medical2,
/turf/open/floor/almayer{
@@ -54322,6 +52594,14 @@
dir = 8
},
/area/almayer/command/lifeboat)
+"nYR" = (
+/obj/structure/sign/safety/cryo{
+ pixel_y = 26
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"nZy" = (
/obj/structure/surface/table/almayer,
/obj/structure/disposalpipe/segment{
@@ -54434,17 +52714,6 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/charlie_delta_shared)
-"occ" = (
-/obj/structure/surface/table/almayer,
-/obj/item/weapon/gun/energy/taser,
-/obj/item/weapon/gun/energy/taser{
- pixel_y = 8
- },
-/obj/structure/machinery/recharger,
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"ocf" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 1
@@ -54491,9 +52760,7 @@
/obj/structure/sign/safety/rewire{
pixel_y = 38
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"ocI" = (
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -54501,6 +52768,16 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
+"ocX" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"odb" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -54522,6 +52799,16 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/upper_engineering/starboard)
+"odt" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = 28
+ },
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"odu" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -54641,6 +52928,9 @@
icon_state = "silver"
},
/area/almayer/command/computerlab)
+"oeZ" = (
+/turf/closed/wall/almayer/reinforced,
+/area/almayer/shipboard/brig/medical)
"ofH" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 1
@@ -54672,6 +52962,18 @@
icon_state = "red"
},
/area/almayer/hallways/upper/port)
+"ogd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"ogK" = (
/obj/structure/bed/bedroll{
desc = "A bed of cotton fabric, purposely made for a cat to comfortably sleep on.";
@@ -54781,6 +53083,13 @@
/obj/effect/landmark/yautja_teleport,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
+"oig" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"oih" = (
/obj/structure/bed{
icon_state = "abed"
@@ -54838,6 +53147,19 @@
icon_state = "redfull"
},
/area/almayer/shipboard/port_missiles)
+"oix" = (
+/obj/structure/machinery/power/apc/almayer,
+/obj/structure/sign/safety/rewire{
+ pixel_y = -38
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/warden_office)
+"oiB" = (
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"oiL" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -54856,6 +53178,10 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/bravo)
+"oiX" = (
+/obj/docking_port/stationary/vehicle_elevator/almayer,
+/turf/open/floor/almayer/empty/vehicle_bay,
+/area/almayer/hallways/lower/vehiclehangar)
"oiY" = (
/obj/effect/decal/warning_stripes{
icon_state = "W";
@@ -54907,22 +53233,6 @@
},
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
-"ojR" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
- },
-/obj/structure/machinery/door_control{
- id = "laddersoutheast";
- name = "South East Ladders Shutters";
- pixel_y = 25;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"ojZ" = (
/obj/structure/window/framed/almayer/white,
/obj/structure/machinery/door/firedoor/border_only/almayer,
@@ -54935,6 +53245,16 @@
icon_state = "plate"
},
/area/almayer/squads/charlie)
+"okd" = (
+/obj/structure/machinery/door/poddoor/almayer{
+ id = "n_umbilical";
+ name = "\improper Umbillical Airlock";
+ unacidable = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"okg" = (
/obj/structure/sign/safety/reception{
pixel_x = 8;
@@ -54951,6 +53271,12 @@
icon_state = "red"
},
/area/almayer/maint/hull/upper/u_a_p)
+"okx" = (
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"okD" = (
/obj/structure/prop/almayer/name_stencil{
icon_state = "almayer6"
@@ -54959,14 +53285,12 @@
icon_state = "outerhull_dir"
},
/area/space)
-"okQ" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 12"
- },
+"okO" = (
+/obj/structure/machinery/cm_vending/clothing/senior_officer,
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "mono"
},
-/area/almayer/engineering/lower/engine_core)
+/area/almayer/medical/upper_medical)
"old" = (
/obj/structure/machinery/light/small,
/obj/structure/largecrate/random/case/double,
@@ -55055,6 +53379,18 @@
/obj/structure/window/framed/almayer/white,
/turf/open/floor/plating,
/area/almayer/medical/lockerroom)
+"omp" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"omt" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -55092,21 +53428,22 @@
icon_state = "orange"
},
/area/almayer/hallways/hangar)
-"omW" = (
-/obj/structure/pipes/standard/manifold/fourway/hidden/supply,
+"onh" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
-"ond" = (
-/obj/structure/machinery/sleep_console{
- dir = 8
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
/turf/open/floor/almayer{
- icon_state = "dark_sterile"
+ dir = 8;
+ icon_state = "orange"
},
-/area/almayer/shipboard/brig/surgery)
+/area/almayer/hallways/upper/stern_hallway)
+"onn" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"onv" = (
/obj/structure/prop/invuln/overhead_pipe{
pixel_x = 12
@@ -55191,6 +53528,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
+"opd" = (
+/obj/structure/barricade/handrail,
+/turf/open/floor/almayer{
+ icon_state = "test_floor5"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"opC" = (
/obj/structure/machinery/door/airlock/almayer/command/reinforced{
name = "\improper Combat Information Center"
@@ -55218,27 +53561,44 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/engine_core)
-"opI" = (
-/obj/structure/closet/secure_closet,
-/obj/item/device/camera_film,
-/obj/item/device/camera_film,
-/obj/item/device/camera_film,
-/obj/item/storage/box/tapes,
-/obj/item/clothing/head/fedora,
-/obj/item/clothing/suit/storage/marine/light/reporter,
-/obj/item/clothing/head/helmet/marine/reporter,
-/obj/item/clothing/head/cmcap/reporter,
-/obj/item/device/flashlight,
-/obj/item/device/toner,
-/obj/item/device/toner,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/command/combat_correspondent)
"opJ" = (
/obj/docking_port/stationary/emergency_response/external/port4,
/turf/open/space/basic,
/area/space)
+"opN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/sign/safety/bridge{
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/reception{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"opV" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/machinery/door_control{
+ id = "laddersoutheast";
+ name = "South East Ladders Shutters";
+ pixel_y = 25;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"oqc" = (
/obj/structure/surface/rack,
/obj/item/storage/firstaid/toxin,
@@ -55409,13 +53769,10 @@
/area/almayer/hallways/hangar)
"osy" = (
/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/machinery/light{
- dir = 4
- },
/obj/structure/platform_decoration,
-/turf/open/floor/almayer/no_build{
- dir = 4;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 4
},
/area/almayer/command/airoom)
"osz" = (
@@ -55456,14 +53813,13 @@
icon_state = "orange"
},
/area/almayer/engineering/lower/workshop)
-"osM" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 8"
- },
+"osQ" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "plate"
},
-/area/almayer/engineering/lower/engine_core)
+/area/almayer/hallways/lower/starboard_midship_hallway)
"osT" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/prop/ice_colony/hula_girl{
@@ -55482,9 +53838,55 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
+"osX" = (
+/obj/structure/sign/safety/north{
+ pixel_x = -17;
+ pixel_y = -8
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"otp" = (
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/almayer/shipboard/brig/medical)
+"otq" = (
+/obj/structure/machinery/line_nexter{
+ dir = 1;
+ id = "MTline";
+ pixel_y = 3
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"otu" = (
/turf/closed/wall/almayer/research/containment/wall/connect_w,
/area/almayer/medical/containment/cell)
+"otC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/machinery/light,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"otE" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"otW" = (
/obj/structure/machinery/light/small,
/obj/structure/prop/invuln/overhead_pipe{
@@ -55526,12 +53928,7 @@
pixel_y = 6
},
/obj/item/tool/pen,
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"ouw" = (
/obj/structure/machinery/light/small{
@@ -55615,28 +54012,20 @@
dir = 4
},
/area/almayer/medical/containment/cell)
-"ovP" = (
-/obj/structure/sign/safety/security{
- pixel_x = 15
+"ovQ" = (
+/obj/structure/machinery/light{
+ dir = 1
},
-/turf/closed/wall/almayer,
-/area/almayer/hallways/starboard_umbilical)
+/obj/structure/sign/safety/maint{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"owg" = (
/turf/open/floor/almayer{
icon_state = "mono"
},
/area/almayer/engineering/upper_engineering/starboard)
-"owH" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/machinery/door/poddoor/almayer{
- dir = 4;
- id = "hangarentrancenorth";
- name = "\improper North Hangar Podlock"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
"owU" = (
/obj/structure/machinery/light/small{
dir = 8
@@ -55666,6 +54055,21 @@
/obj/item/bedsheet/orange,
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
+"oxe" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"oxg" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"oxi" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 10
@@ -55701,17 +54105,25 @@
"oxy" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_a_s)
+"oxz" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"oxU" = (
/obj/structure/machinery/photocopier,
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
-"oyy" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out";
- pixel_x = -1
+"oyC" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/starboard_hallway)
"oyE" = (
/obj/effect/landmark/start/intel,
/obj/structure/sign/poster{
@@ -55799,6 +54211,15 @@
icon_state = "emerald"
},
/area/almayer/squads/charlie)
+"oAa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"oAB" = (
/obj/structure/platform{
dir = 8;
@@ -55834,6 +54255,17 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"oAY" = (
+/obj/effect/projector{
+ name = "Almayer_Down3";
+ vector_x = 1;
+ vector_y = -102
+ },
+/turf/open/floor/almayer{
+ allow_construction = 0;
+ icon_state = "plate"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"oBq" = (
/obj/structure/bed,
/obj/structure/machinery/flasher{
@@ -55862,6 +54294,30 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
+"oCa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/safety/airlock{
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/hazard{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_umbilical)
+"oCb" = (
+/obj/structure/sign/safety/hvac_old{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"oCf" = (
/obj/structure/machinery/light{
unacidable = 1;
@@ -55985,6 +54441,15 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/medical_science)
+"oDU" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/obj/structure/barricade/handrail,
+/turf/open/floor/almayer{
+ icon_state = "test_floor5"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"oDY" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/recharger,
@@ -56099,6 +54564,15 @@
/obj/item/storage/firstaid/regular,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_s)
+"oGh" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"oGi" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -56113,6 +54587,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/s_bow)
+"oGm" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"oGx" = (
/obj/structure/closet/secure_closet/surgical{
pixel_x = 30
@@ -56137,10 +54617,28 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
+"oGF" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"oGJ" = (
/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/lower/engine_core)
+"oGL" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"oGP" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -56213,6 +54711,23 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/port)
+"oHs" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"oHt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/safety/cryo{
+ pixel_x = 8;
+ pixel_y = -26
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"oHx" = (
/obj/structure/machinery/door/airlock/almayer/maint{
dir = 1
@@ -56271,9 +54786,24 @@
"oIB" = (
/turf/closed/wall/almayer,
/area/almayer/command/combat_correspondent)
+"oJj" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"oJk" = (
/turf/closed/wall/almayer,
/area/almayer/engineering/lower/workshop)
+"oJm" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"oJp" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 1
@@ -56285,6 +54815,22 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/hangar)
+"oJL" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/structure/machinery/door_control{
+ id = "hangarentrancesouth";
+ name = "South Hangar Shutters";
+ pixel_y = 30;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"oJR" = (
/obj/effect/projector{
name = "Almayer_AresDown";
@@ -56304,9 +54850,7 @@
pixel_x = -24;
req_one_access_txt = "90;91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"oKb" = (
/obj/structure/machinery/status_display{
@@ -56346,6 +54890,17 @@
/obj/effect/landmark/late_join/bravo,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/alpha)
+"oLj" = (
+/obj/effect/projector{
+ name = "Almayer_Up2";
+ vector_x = -1;
+ vector_y = 100
+ },
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"oLm" = (
/obj/structure/machinery/door_control{
id = "ARES StairsLower";
@@ -56359,18 +54914,11 @@
pixel_y = -8
},
/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer/no_build{
- dir = 8;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 8
},
/area/almayer/command/airoom)
-"oLv" = (
-/obj/structure/sign/safety/medical{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"oLF" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/poddoor/almayer/open{
@@ -56402,15 +54950,6 @@
icon_state = "plating"
},
/area/almayer/shipboard/stern_point_defense)
-"oLT" = (
-/obj/structure/machinery/firealarm{
- pixel_y = 28
- },
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"oLU" = (
/turf/open/floor/almayer{
dir = 1;
@@ -56457,6 +54996,10 @@
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
+"oNa" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"oNb" = (
/obj/structure/surface/table/almayer,
/obj/structure/flora/pottedplant{
@@ -56519,6 +55062,15 @@
},
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
+"oOi" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 1
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"oOp" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/wirecutters,
@@ -56562,36 +55114,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/lifeboat)
-"oPk" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/door_control{
- id = "Interrogation Shutters";
- name = "\improper Shutters";
- pixel_x = -6;
- pixel_y = -6;
- req_access_txt = "3"
- },
-/obj/item/device/taperecorder{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/structure/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
-"oPp" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_21"
- },
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"oPy" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22";
@@ -56638,21 +55160,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_s)
-"oQj" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
- },
-/obj/structure/machinery/door_control{
- id = "laddernortheast";
- name = "North East Ladders Shutters";
- pixel_y = -25;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
+"oPT" = (
+/obj/structure/machinery/light{
+ dir = 1
},
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
+"oQn" = (
/turf/open/floor/almayer{
- icon_state = "green"
+ dir = 1;
+ icon_state = "greencorner"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/port_midship_hallway)
"oQs" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/book/manual/surgery{
@@ -56662,6 +55181,16 @@
icon_state = "plate"
},
/area/almayer/command/cichallway)
+"oQw" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"oQH" = (
/turf/open/floor/almayer{
icon_state = "cargo_arrow"
@@ -56744,9 +55273,7 @@
icon_state = "W";
pixel_x = -1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"oRW" = (
/obj/structure/surface/table/almayer,
@@ -56824,6 +55351,9 @@
icon_state = "plate"
},
/area/almayer/squads/alpha_bravo_shared)
+"oSM" = (
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"oSR" = (
/obj/structure/stairs{
icon_state = "ramptop"
@@ -56879,6 +55409,15 @@
icon_state = "cargo"
},
/area/almayer/squads/alpha)
+"oTH" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"oTO" = (
/obj/structure/stairs/perspective{
dir = 1;
@@ -56892,6 +55431,10 @@
icon_state = "plating"
},
/area/almayer/engineering/lower/engine_core)
+"oUi" = (
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"oUt" = (
/obj/structure/sign/safety/restrictedarea{
pixel_x = 8;
@@ -56905,6 +55448,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"oUz" = (
+/obj/structure/platform{
+ dir = 8
+ },
+/obj/structure/machinery/power/apc/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"oUG" = (
/obj/structure/machinery/light{
dir = 8
@@ -56914,6 +55469,12 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
+"oUO" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"oUZ" = (
/obj/structure/surface/rack,
/obj/item/tool/crowbar,
@@ -56940,6 +55501,22 @@
icon_state = "plate"
},
/area/almayer/shipboard/brig/general_equipment)
+"oVk" = (
+/obj/structure/stairs{
+ dir = 4
+ },
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/effect/projector{
+ name = "Almayer_Up3";
+ vector_x = -1;
+ vector_y = 102
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"oVY" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 9
@@ -56994,19 +55571,50 @@
icon_state = "plate"
},
/area/almayer/living/starboard_garden)
+"oWE" = (
+/obj/structure/stairs,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/effect/projector{
+ name = "Almayer_Up1";
+ vector_x = -19;
+ vector_y = 98
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"oWF" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
+"oWK" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
+"oWN" = (
+/obj/structure/pipes/vents/pump{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"oXb" = (
/obj/effect/landmark/start/marine/charlie,
/obj/effect/landmark/late_join/charlie,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/charlie)
-"oXd" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out"
- },
-/turf/open/floor/almayer{
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"oXp" = (
/obj/effect/decal/cleanable/ash,
/turf/open/floor/wood/ship,
@@ -57047,6 +55655,12 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
+"oYi" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"oYp" = (
/obj/structure/bed/chair/office/dark{
dir = 8
@@ -57079,6 +55693,26 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
+"oYA" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/dropship_equipment/fuel/cooling_system{
+ layer = 3.5
+ },
+/obj/item/clothing/glasses/welding{
+ layer = 3.6;
+ pixel_x = 2;
+ pixel_y = 7
+ },
+/obj/effect/decal/cleanable/blood/oil,
+/obj/structure/machinery/computer/working_joe{
+ dir = 4;
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"oZn" = (
/obj/structure/machinery/light/small{
dir = 8
@@ -57199,6 +55833,36 @@
dir = 1
},
/area/almayer/command/cic)
+"pbm" = (
+/obj/item/bedsheet/brown{
+ pixel_y = 13
+ },
+/obj/structure/window/reinforced{
+ dir = 8;
+ layer = 3.3;
+ pixel_y = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 4;
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/obj/structure/bed{
+ can_buckle = 0
+ },
+/obj/structure/bed{
+ buckling_y = 13;
+ layer = 3.5;
+ pixel_y = 13
+ },
+/obj/item/bedsheet/brown{
+ layer = 3.1
+ },
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"pbo" = (
/obj/structure/largecrate/random/barrel/white,
/turf/open/floor/almayer{
@@ -57339,9 +56003,32 @@
icon_state = "plating"
},
/area/almayer/engineering/lower/engine_core)
+"pdT" = (
+/obj/structure/pipes/vents/pump,
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "sterile_green_side"
+ },
+/area/almayer/shipboard/brig/medical)
"pek" = (
/turf/closed/wall/almayer,
/area/almayer/maint/hull/upper/s_bow)
+"peu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1;
+ icon_state = "pipe-c"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"peM" = (
/obj/structure/closet/firecloset,
/turf/open/floor/almayer{
@@ -57380,6 +56067,17 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/upper_engineering/starboard)
+"pfd" = (
+/obj/structure/window/framed/almayer,
+/obj/structure/machinery/door/poddoor/almayer/open{
+ id = "Brig Lockdown Shutters";
+ name = "\improper Brig Lockdown Shutter"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/turf/open/floor/plating,
+/area/almayer/shipboard/brig/starboard_hallway)
"pfp" = (
/obj/effect/step_trigger/teleporter_vector{
name = "Almayer_Up4";
@@ -57451,9 +56149,7 @@
dir = 1;
icon_state = "ramptop"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"pgJ" = (
/obj/structure/sign/safety/hvac_old{
@@ -57539,6 +56235,13 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/processing)
+"pij" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"piJ" = (
/obj/structure/prop/invuln/overhead_pipe{
pixel_x = 12
@@ -57565,9 +56268,6 @@
icon_state = "plate"
},
/area/almayer/shipboard/panic)
-"pji" = (
-/turf/closed/wall/almayer,
-/area/almayer/hallways/stern_hallway)
"pjj" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -57605,18 +56305,18 @@
icon_state = "plating_striped"
},
/area/almayer/squads/req)
-"pjM" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+"pjP" = (
+/obj/structure/machinery/firealarm{
+ pixel_y = 28
},
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"pjQ" = (
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
+ dir = 10;
+ icon_state = "silver"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"pjR" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -57627,13 +56327,15 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
-"pky" = (
-/obj/structure/largecrate/random/secure,
+"pjY" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
+ dir = 10;
+ icon_state = "red"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"pkz" = (
/turf/open/floor/almayer{
icon_state = "redfull"
@@ -57652,13 +56354,15 @@
"plv" = (
/turf/open/floor/plating,
/area/almayer/maint/hull/lower/l_m_p)
-"plI" = (
-/obj/structure/machinery/cm_vending/sorted/medical/blood,
+"pmd" = (
+/obj/structure/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "sterile_green_side"
+ icon_state = "plate"
},
-/area/almayer/shipboard/brig/surgery)
+/area/almayer/hallways/lower/port_aft_hallway)
"pmq" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -57697,9 +56401,7 @@
pixel_y = 16
},
/obj/structure/pipes/standard/simple/hidden/supply/no_boom,
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"pnh" = (
/obj/structure/ladder{
@@ -57711,12 +56413,6 @@
},
/turf/open/floor/plating/almayer,
/area/almayer/maint/hull/upper/p_bow)
-"pno" = (
-/obj/structure/sign/safety/escapepod{
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"pns" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 1
@@ -57812,6 +56508,12 @@
"ppM" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/stern)
+"ppV" = (
+/obj/structure/machinery/power/apc/almayer,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"pqc" = (
/turf/open/floor/almayer{
icon_state = "mono"
@@ -57836,6 +56538,19 @@
/obj/structure/window/framed/almayer/hull,
/turf/open/floor/plating,
/area/almayer/engineering/upper_engineering/port)
+"pqv" = (
+/obj/structure/pipes/vents/pump,
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
+"pqw" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"pqD" = (
/obj/structure/bed,
/obj/item/bedsheet/medical,
@@ -57859,6 +56574,16 @@
icon_state = "cargo"
},
/area/almayer/squads/bravo)
+"pqM" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 1;
+ name = "\improper Workshop Vendors"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/repair_bay)
"pqP" = (
/obj/structure/machinery/cm_vending/sorted/tech/comp_storage,
/obj/structure/machinery/light{
@@ -57868,12 +56593,6 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
-"pqQ" = (
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/almayer/hallways/vehiclehangar)
"pqX" = (
/obj/structure/bed/chair{
dir = 4
@@ -57895,6 +56614,18 @@
},
/turf/open/floor/almayer,
/area/almayer/maint/hull/upper/u_f_s)
+"prl" = (
+/obj/structure/machinery/power/apc/almayer{
+ dir = 1
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"prx" = (
/obj/structure/bed/chair/comfy{
dir = 4
@@ -57919,6 +56650,12 @@
},
/turf/open/floor/almayer,
/area/almayer/engineering/lower/workshop/hangar)
+"prV" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"prX" = (
/obj/structure/ladder{
height = 2;
@@ -58049,6 +56786,16 @@
icon_state = "plating"
},
/area/almayer/engineering/lower/engine_core)
+"pum" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"pun" = (
/obj/structure/window/framed/almayer/hull,
/turf/open/floor/plating,
@@ -58062,36 +56809,6 @@
icon_state = "silver"
},
/area/almayer/living/cryo_cells)
-"puv" = (
-/obj/structure/sign/safety/maint{
- pixel_x = -17
- },
-/obj/structure/machinery/disposal,
-/obj/structure/disposalpipe/trunk{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
-"puE" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/recharger,
-/obj/structure/sign/safety/terminal{
- pixel_y = 32
- },
-/obj/structure/transmitter/rotary{
- name = "Brig Wardens's Office Telephone";
- phone_category = "MP Dept.";
- phone_id = "Brig Warden's Office";
- pixel_x = 15
- },
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/chief_mp_office)
"puI" = (
/obj/structure/machinery/light{
dir = 4
@@ -58135,22 +56852,31 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/living/port_emb)
-"pvt" = (
-/obj/structure/sign/safety/refridgeration{
- pixel_y = -32
+"pvi" = (
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
},
-/obj/structure/sign/safety/medical{
- pixel_x = 15;
- pixel_y = -32
+/area/almayer/hallways/upper/aft_hallway)
+"pvE" = (
+/obj/structure/machinery/light{
+ dir = 1
},
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
+"pvI" = (
+/obj/structure/sign/safety/rad_haz{
+ pixel_x = 8;
+ pixel_y = 32
},
+/obj/structure/machinery/power/reactor,
/turf/open/floor/almayer{
- icon_state = "green"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/engineering/lower/engine_core)
"pvJ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -58190,6 +56916,23 @@
icon_state = "redcorner"
},
/area/almayer/shipboard/starboard_missiles)
+"pwd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"pwx" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"pwG" = (
/obj/structure/bed/chair/office/dark{
dir = 1
@@ -58279,6 +57022,12 @@
icon_state = "cargo_arrow"
},
/area/almayer/squads/bravo)
+"pym" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"pyx" = (
/obj/structure/machinery/door_display/research_cell{
dir = 4;
@@ -58354,6 +57103,16 @@
icon_state = "red"
},
/area/almayer/hallways/upper/port)
+"pzj" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ dir = 4;
+ id = "northcheckpoint";
+ name = "\improper Checkpoint Shutters"
+ },
+/turf/open/floor/almayer{
+ icon_state = "redfull"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"pzG" = (
/obj/docking_port/stationary/emergency_response/port1,
/turf/open/floor/almayer{
@@ -58379,18 +57138,12 @@
icon_state = "bluecorner"
},
/area/almayer/living/briefing)
+"pzW" = (
+/turf/closed/wall/almayer/reinforced,
+/area/almayer/hallways/lower/vehiclehangar)
"pAm" = (
/turf/open/floor/almayer,
/area/almayer/engineering/lower/engine_core)
-"pAR" = (
-/obj/structure/pipes/vents/scrubber{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/starboard_umbilical)
"pAV" = (
/obj/structure/platform{
dir = 1
@@ -58398,16 +57151,14 @@
/obj/item/tool/mop,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_a_p)
-"pBn" = (
-/obj/structure/sign/safety/escapepod{
- pixel_x = 8;
- pixel_y = -32
+"pBg" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 1
},
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "greencorner"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/stern_hallway)
"pBG" = (
/turf/closed/wall/almayer,
/area/almayer/command/corporateliaison)
@@ -58428,18 +57179,6 @@
icon_state = "plate"
},
/area/almayer/squads/req)
-"pCD" = (
-/obj/structure/pipes/standard/cap/hidden{
- dir = 4
- },
-/obj/structure/sign/safety/life_support{
- pixel_x = 14;
- pixel_y = -25
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/stern_hallway)
"pCQ" = (
/obj/structure/surface/table/almayer,
/obj/item/attachable/lasersight,
@@ -58529,6 +57268,12 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/chief_mp_office)
+"pEd" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"pEl" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -58580,6 +57325,18 @@
icon_state = "test_floor4"
},
/area/almayer/lifeboat_pumps/south1)
+"pFf" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"pFq" = (
/obj/structure/surface/table/almayer,
/obj/item/device/binoculars,
@@ -58628,12 +57385,6 @@
icon_state = "mono"
},
/area/almayer/medical/hydroponics)
-"pGM" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"pGT" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
@@ -58644,6 +57395,20 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
+"pHh" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = 28
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"pHp" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/perma)
@@ -58661,6 +57426,15 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"pHF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"pHG" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -58736,6 +57510,16 @@
icon_state = "test_floor4"
},
/area/almayer/lifeboat_pumps/north1)
+"pJq" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"pJr" = (
/obj/structure/pipes/vents/scrubber{
dir = 1
@@ -58744,19 +57528,6 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/engine_core)
-"pJv" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 5
- },
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "redcorner"
- },
-/area/almayer/shipboard/brig/main_office)
"pJD" = (
/obj/structure/pipes/vents/scrubber{
dir = 1
@@ -58776,12 +57547,6 @@
icon_state = "dark_sterile"
},
/area/almayer/living/port_emb)
-"pJJ" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"pJR" = (
/obj/effect/step_trigger/teleporter_vector{
name = "Almayer_AresUp";
@@ -58791,8 +57556,8 @@
/obj/structure/stairs{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- dir = 4
+/turf/open/floor/almayer/aicore/glowing/no_build{
+ icon_state = "ai_floor3"
},
/area/almayer/command/airoom)
"pKh" = (
@@ -58812,6 +57577,28 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/s_stern)
+"pKU" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/machinery/firealarm{
+ pixel_y = 28
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/mp_bunks)
+"pKW" = (
+/obj/structure/machinery/door/poddoor/almayer/open{
+ id = "Hangar Lockdown";
+ name = "\improper Hangar Lockdown Blast Door"
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ id = "DeployWorkR";
+ name = "\improper Workshop Shutters"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/repair_bay)
"pKZ" = (
/obj/structure/disposalpipe/segment{
dir = 2;
@@ -58928,28 +57715,6 @@
icon_state = "test_floor4"
},
/area/almayer/command/cichallway)
-"pNk" = (
-/obj/structure/surface/table/almayer,
-/obj/item/storage/box/bodybags{
- pixel_x = 6;
- pixel_y = 6
- },
-/obj/item/storage/box/bodybags,
-/obj/structure/machinery/light/small{
- dir = 4;
- pixel_y = -12
- },
-/obj/structure/machinery/power/apc/almayer{
- dir = 4
- },
-/obj/structure/sign/safety/rewire{
- pixel_x = 32;
- pixel_y = 17
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/shipboard/brig/execution)
"pNM" = (
/obj/structure/platform{
dir = 4
@@ -58986,6 +57751,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/s_bow)
+"pOC" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"pOD" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/disposalpipe/segment{
@@ -59011,6 +57788,12 @@
dir = 8
},
/area/almayer/command/cic)
+"pOW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"pOY" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/machinery/microwave{
@@ -59102,6 +57885,21 @@
icon_state = "red"
},
/area/almayer/shipboard/port_missiles)
+"pPQ" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
+"pPU" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"pQr" = (
/obj/structure/bed,
/turf/open/floor/almayer{
@@ -59125,6 +57923,16 @@
icon_state = "plate"
},
/area/almayer/squads/charlie_delta_shared)
+"pQI" = (
+/obj/structure/machinery/power/apc/almayer{
+ cell_type = /obj/item/cell/hyper;
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"pQN" = (
/obj/structure/surface/table/almayer,
/obj/item/reagent_container/food/condiment/hotsauce/franks,
@@ -59176,14 +57984,6 @@
dir = 4
},
/area/almayer/medical/containment/cell/cl)
-"pRL" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/aft_hallway)
"pRO" = (
/obj/structure/bed/chair{
dir = 4
@@ -59222,15 +58022,24 @@
},
/turf/open/floor/plating,
/area/almayer/engineering/lower/workshop)
-"pSL" = (
-/obj/structure/machinery/alarm/almayer{
- dir = 1
+"pSF" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "blue"
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
+"pSN" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out";
+ pixel_x = -1
},
-/area/almayer/hallways/aft_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"pSQ" = (
/obj/structure/reagent_dispensers/fueltank{
anchored = 1
@@ -59349,6 +58158,16 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_s)
+"pVr" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"pVx" = (
/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun,
/turf/open/floor/almayer{
@@ -59485,16 +58304,31 @@
/obj/effect/landmark/late_join/charlie,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/charlie)
-"pYi" = (
-/obj/structure/machinery/light{
- dir = 4
+"pYh" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 8;
+ name = "ship-grade camera"
+ },
+/obj/structure/sign/safety/one{
+ pixel_x = 32;
+ pixel_y = -8
+ },
+/obj/structure/sign/safety/ammunition{
+ pixel_x = 32;
+ pixel_y = 7
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
},
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"pYi" = (
/obj/structure/pipes/vents/pump/no_boom{
dir = 8
},
-/turf/open/floor/almayer/no_build{
- dir = 4;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 4
},
/area/almayer/command/airoom)
"pYo" = (
@@ -59516,6 +58350,17 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
+"pYN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"pYQ" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -59538,12 +58383,18 @@
icon_state = "silvercorner"
},
/area/almayer/shipboard/brig/cic_hallway)
-"pZo" = (
+"pZq" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
+ dir = 4
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_umbilical)
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"pZH" = (
/obj/structure/machinery/shower{
dir = 8
@@ -59589,6 +58440,24 @@
/obj/structure/largecrate/random/case/double,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_s)
+"qas" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"qax" = (
+/obj/structure/machinery/door/poddoor/almayer/open{
+ dir = 4;
+ id = "Hangar Lockdown";
+ name = "\improper Hangar Lockdown Blast Door"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/vehiclehangar)
"qaV" = (
/turf/open/floor/almayer{
dir = 10;
@@ -59653,12 +58522,6 @@
},
/turf/open/floor/carpet,
/area/almayer/living/commandbunks)
-"qcl" = (
-/obj/structure/sign/safety/conference_room{
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"qcy" = (
/obj/structure/sign/safety/bathunisex{
pixel_x = 8;
@@ -59668,6 +58531,13 @@
icon_state = "plate"
},
/area/almayer/living/auxiliary_officer_office)
+"qcL" = (
+/obj/structure/sign/safety/intercom{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"qdk" = (
/obj/structure/surface/table/almayer,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -59741,6 +58611,12 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
+"qdV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"qec" = (
/obj/effect/step_trigger/clone_cleaner,
/obj/effect/decal/warning_stripes{
@@ -59829,6 +58705,12 @@
icon_state = "plate"
},
/area/almayer/squads/alpha_bravo_shared)
+"qfq" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"qfy" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -59864,6 +58746,14 @@
},
/turf/open/floor/carpet,
/area/almayer/living/commandbunks)
+"qfI" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"qfQ" = (
/obj/structure/surface/rack,
/obj/item/stack/folding_barricade/three,
@@ -59896,16 +58786,6 @@
},
/turf/open/floor/carpet,
/area/almayer/living/commandbunks)
-"qgG" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- dir = 4;
- icon_state = "pipe-c"
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
"qgK" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/machinery/door/airlock/almayer/generic/press{
@@ -59945,12 +58825,6 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south1)
-"qhc" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/stern_hallway)
"qhx" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22"
@@ -60057,14 +58931,9 @@
/area/almayer/medical/lower_medical_lobby)
"qit" = (
/obj/structure/surface/table/reinforced/almayer_B,
-/obj/structure/machinery/light{
- dir = 8
- },
/obj/item/paper_bin/uscm,
/obj/item/tool/pen,
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"qiy" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
@@ -60088,6 +58957,12 @@
icon_state = "silvercorner"
},
/area/almayer/command/computerlab)
+"qjK" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"qjL" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -60126,16 +59001,6 @@
/obj/effect/landmark/late_join/charlie,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/charlie)
-"qkn" = (
-/obj/structure/machinery/power/apc/almayer{
- cell_type = /obj/item/cell/hyper;
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"qkP" = (
/obj/item/frame/light_fixture{
anchored = 1;
@@ -60172,13 +59037,6 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"qld" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_umbilical)
"qlm" = (
/obj/effect/decal/cleanable/blood/oil,
/obj/effect/decal/warning_stripes{
@@ -60219,21 +59077,16 @@
/obj/structure/disposalpipe/trunk,
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
-"qlS" = (
-/obj/structure/reagent_dispensers/water_cooler/stacks{
- density = 0;
- pixel_x = -7;
- pixel_y = 17
- },
-/obj/structure/sign/safety/cryo{
- pixel_x = 12;
- pixel_y = 28
- },
+"qlL" = (
+/obj/item/reagent_container/food/drinks/cans/souto,
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
+ icon_state = "cargo_arrow"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/lower/repair_bay)
+"qmh" = (
+/obj/structure/window/framed/almayer,
+/turf/open/floor/plating,
+/area/almayer/hallways/lower/repair_bay)
"qmk" = (
/obj/structure/surface/table/almayer,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -60304,21 +59157,6 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/medical_science)
-"qmC" = (
-/obj/structure/machinery/door/poddoor/almayer/open{
- dir = 4;
- id = "Brig Lockdown Shutters";
- name = "\improper Brig Lockdown Shutter"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
- name = "\improper Brig";
- closeOtherId = "brigmaint_n"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/main_office)
"qmD" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 5
@@ -60331,12 +59169,6 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/medical_science)
-"qmL" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"qmM" = (
/obj/structure/bed/chair{
dir = 8
@@ -60387,6 +59219,15 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/hangar)
+"qnf" = (
+/obj/structure/sign/safety/hvac_old{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"qnh" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -60510,6 +59351,13 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/chemistry)
+"qpH" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"qpQ" = (
/obj/item/reagent_container/glass/beaker/bluespace,
/obj/structure/machinery/chem_dispenser/medbay,
@@ -60527,6 +59375,19 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_p)
+"qqb" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"qqf" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"qqn" = (
/obj/structure/desertdam/decals/road_edge{
icon_state = "road_edge_decal3";
@@ -60549,17 +59410,6 @@
icon_state = "redcorner"
},
/area/almayer/command/lifeboat)
-"qqC" = (
-/obj/structure/window/framed/almayer,
-/obj/structure/machinery/door/poddoor/almayer/open{
- id = "Brig Lockdown Shutters";
- name = "\improper Brig Lockdown Shutter"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/plating,
-/area/almayer/shipboard/brig/main_office)
"qqK" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
@@ -60590,10 +59440,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/s_stern)
-"qqV" = (
-/obj/structure/machinery/cm_vending/clothing/military_police_warden,
-/turf/open/floor/wood/ship,
-/area/almayer/shipboard/brig/chief_mp_office)
"qra" = (
/obj/structure/reagent_dispensers/fueltank/custom,
/turf/open/floor/almayer{
@@ -60649,15 +59495,6 @@
icon_state = "test_floor4"
},
/area/almayer/hallways/upper/port)
-"qtn" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"qtv" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
@@ -60705,25 +59542,6 @@
icon_state = "test_floor4"
},
/area/almayer/command/lifeboat)
-"quI" = (
-/obj/structure/machinery/door_control{
- id = "laddersouthwest";
- name = "South West Ladders Shutters";
- pixel_y = -21;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
- },
-/obj/structure/sign/safety/stairs{
- pixel_x = 15;
- pixel_y = -32
- },
-/obj/structure/sign/safety/west{
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"quJ" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 6
@@ -60768,6 +59586,24 @@
},
/turf/open/floor/plating,
/area/almayer/living/port_emb)
+"qvE" = (
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out"
+ },
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"qvI" = (
/obj/structure/sign/safety/maint{
pixel_x = -17
@@ -60789,6 +59625,13 @@
icon_state = "test_floor4"
},
/area/almayer/command/corporateliaison)
+"qwf" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"qwo" = (
/obj/structure/machinery/washing_machine,
/obj/structure/machinery/washing_machine{
@@ -60830,9 +59673,9 @@
pixel_y = -8;
req_one_access_txt = "90;91;92"
},
-/turf/open/floor/almayer/no_build{
- dir = 8;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 8
},
/area/almayer/command/airoom)
"qwY" = (
@@ -60930,6 +59773,12 @@
/obj/structure/largecrate/random/case/double,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
+"qxK" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"qxL" = (
/obj/structure/machinery/medical_pod/autodoc,
/turf/open/floor/almayer{
@@ -60980,21 +59829,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
-"qyF" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
- pixel_y = 1
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/almayer/hallways/vehiclehangar)
"qyG" = (
/obj/structure/sign/safety/hazard{
desc = "A sign that warns of a hazardous environment nearby";
@@ -61009,6 +59843,21 @@
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/engineering/lower/workshop/hangar)
+"qyP" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"qyW" = (
/obj/structure/bed/chair{
dir = 4
@@ -61017,6 +59866,13 @@
icon_state = "emeraldfull"
},
/area/almayer/squads/charlie_delta_shared)
+"qyX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"qyZ" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/machinery/computer/view_objectives,
@@ -61055,6 +59911,16 @@
icon_state = "orange"
},
/area/almayer/engineering/lower/workshop)
+"qAy" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"qAA" = (
/obj/structure/machinery/power/monitor{
name = "Main Power Grid Monitoring"
@@ -61181,6 +60047,16 @@
/obj/effect/landmark/start/captain,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/bridgebunks)
+"qCA" = (
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
+ },
+/obj/structure/sign/safety/rewire{
+ pixel_y = -38
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/execution)
"qCG" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -61265,6 +60141,10 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"qEc" = (
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"qEk" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -61278,6 +60158,15 @@
icon_state = "plating"
},
/area/almayer/command/cic)
+"qEl" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"qEn" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/effect/decal/warning_stripes{
@@ -61299,6 +60188,25 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/processing)
+"qEz" = (
+/obj/structure/machinery/door_control{
+ id = "laddersouthwest";
+ name = "South West Ladders Shutters";
+ pixel_y = -21;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/obj/structure/sign/safety/stairs{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/west{
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"qEA" = (
/obj/structure/bed,
/obj/structure/machinery/flasher{
@@ -61323,6 +60231,16 @@
icon_state = "plate"
},
/area/almayer/engineering/lower)
+"qEM" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ id = "laddersouthwest";
+ name = "\improper South West Ladders Shutters"
+ },
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"qEZ" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -61335,14 +60253,6 @@
icon_state = "dark_sterile"
},
/area/almayer/maint/hull/upper/u_a_s)
-"qFb" = (
-/obj/structure/sign/safety/storage{
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
"qFi" = (
/obj/structure/bed/chair/comfy/black{
dir = 4
@@ -61396,6 +60306,9 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_s)
+"qFX" = (
+/turf/closed/wall/almayer,
+/area/almayer/shipboard/brig/mp_bunks)
"qGc" = (
/turf/open/floor/almayer{
dir = 1;
@@ -61431,31 +60344,33 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/operating_room_two)
+"qGP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/stern_hallway)
"qGU" = (
/obj/structure/closet/firecloset,
/turf/open/floor/almayer{
icon_state = "cargo"
},
/area/almayer/lifeboat_pumps/south2)
+"qGZ" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"qHg" = (
/turf/open/floor/almayer{
dir = 1;
icon_state = "cargo_arrow"
},
/area/almayer/squads/alpha_bravo_shared)
-"qHl" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = -28
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
"qHq" = (
/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
dir = 2;
@@ -61466,6 +60381,12 @@
icon_state = "test_floor4"
},
/area/almayer/powered)
+"qHu" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"qHG" = (
/obj/structure/machinery/light/small{
dir = 1
@@ -61492,6 +60413,15 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
+"qIf" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"qIx" = (
/obj/structure/machinery/door/airlock/almayer/maint{
access_modified = 1;
@@ -61572,14 +60502,6 @@
icon_state = "sterile_green"
},
/area/almayer/medical/hydroponics)
-"qJN" = (
-/obj/structure/surface/rack,
-/obj/item/device/radio,
-/obj/item/tool/weldpack,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"qJS" = (
/obj/structure/reagent_dispensers/water_cooler/stacks{
density = 0;
@@ -61673,20 +60595,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_p)
-"qKM" = (
-/obj/structure/machinery/door_control{
- id = "laddersouthwest";
- name = "South West Ladders Shutters";
- pixel_x = 25;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
- },
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "greencorner"
- },
-/area/almayer/hallways/port_hallway)
"qKY" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -61719,23 +60627,6 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/containment)
-"qLj" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out"
- },
-/turf/open/floor/almayer{
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
-"qLo" = (
-/obj/structure/machinery/light,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
-"qLp" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"qLs" = (
/obj/effect/landmark/start/maint,
/turf/open/floor/plating/plating_catwalk,
@@ -61769,20 +60660,10 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/port_emb)
-"qLK" = (
-/obj/structure/sign/safety/medical{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"qLS" = (
/obj/structure/pipes/standard/manifold/hidden/supply/no_boom,
-/turf/open/floor/almayer/no_build{
- dir = 4
+/turf/open/floor/almayer/aicore/glowing/no_build{
+ icon_state = "ai_floor3"
},
/area/almayer/command/airoom)
"qLV" = (
@@ -61898,6 +60779,19 @@
/obj/structure/disposalpipe/junction,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/gym)
+"qOS" = (
+/obj/structure/machinery/door_control{
+ id = "laddernorthwest";
+ name = "North West Ladders Shutters";
+ pixel_x = 25;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"qOY" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 1
@@ -61906,12 +60800,22 @@
icon_state = "test_floor4"
},
/area/almayer/maint/hull/upper/u_f_p)
+"qPk" = (
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"qPn" = (
/obj/structure/machinery/door/airlock/almayer/maint,
/turf/open/floor/almayer{
icon_state = "test_floor4"
},
/area/almayer/maint/hull/lower/l_a_s)
+"qPv" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"qPD" = (
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/perma)
@@ -61928,9 +60832,6 @@
icon_state = "silverfull"
},
/area/almayer/command/securestorage)
-"qPO" = (
-/turf/closed/wall/almayer/reinforced,
-/area/almayer/shipboard/brig/surgery)
"qPS" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -61940,6 +60841,10 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/lower_medical_lobby)
+"qPU" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"qPX" = (
/obj/structure/machinery/light,
/obj/effect/decal/warning_stripes{
@@ -61981,17 +60886,21 @@
},
/area/almayer/maint/hull/upper/u_a_p)
"qQS" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S";
- layer = 3.3
- },
-/obj/structure/machinery/light{
- dir = 8
+/turf/open/floor/almayer/aicore/no_build,
+/area/almayer/command/airoom)
+"qRb" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
+"qRd" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
},
-/area/almayer/command/airoom)
+/area/almayer/hallways/lower/starboard_aft_hallway)
"qRj" = (
/obj/structure/disposalpipe/segment{
dir = 1;
@@ -62021,6 +60930,15 @@
icon_state = "test_floor4"
},
/area/almayer/command/corporateliaison)
+"qRx" = (
+/obj/structure/sign/safety/stairs{
+ pixel_x = -15
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"qSm" = (
/obj/structure/pipes/vents/pump{
dir = 4
@@ -62037,6 +60955,14 @@
icon_state = "orangefull"
},
/area/almayer/living/briefing)
+"qSI" = (
+/obj/structure/surface/table/almayer,
+/obj/item/tank/oxygen/red,
+/obj/item/tool/screwdriver,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"qSK" = (
/obj/item/stack/sheet/metal{
layer = 2.9;
@@ -62058,6 +60984,14 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south1)
+"qTu" = (
+/obj/structure/machinery/power/apc/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"qTQ" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -62070,12 +61004,6 @@
/obj/structure/machinery/gibber,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/grunt_rnr)
-"qTZ" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_umbilical)
"qUh" = (
/obj/structure/sign/safety/distribution_pipes{
pixel_x = -17
@@ -62123,6 +61051,26 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/processing)
+"qUG" = (
+/obj/structure/surface/table/almayer,
+/obj/item/clothing/mask/cigarette/pipe{
+ pixel_x = 8
+ },
+/obj/structure/transmitter/rotary{
+ name = "Reporter Telephone";
+ phone_category = "Almayer";
+ phone_id = "Reporter";
+ pixel_x = -4;
+ pixel_y = 6
+ },
+/obj/item/device/toner{
+ pixel_y = -11;
+ pixel_x = -2
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/command/combat_correspondent)
"qUL" = (
/obj/structure/machinery/landinglight/ds1/delaythree{
dir = 4
@@ -62134,6 +61082,11 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
+"qUO" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"qUZ" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/door_control{
@@ -62199,12 +61152,27 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
+"qWx" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"qWI" = (
/obj/structure/machinery/status_display{
pixel_y = -30
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
+"qWK" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "emerald"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"qWL" = (
/obj/structure/prop/holidays/string_lights{
pixel_y = 27
@@ -62336,14 +61304,6 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"qYo" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 6"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
"qYq" = (
/turf/open/floor/almayer{
dir = 5;
@@ -62366,15 +61326,6 @@
allow_construction = 0
},
/area/almayer/stair_clone/upper)
-"qYt" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"qYu" = (
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer{
@@ -62485,6 +61436,14 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
+"qZT" = (
+/obj/structure/machinery/power/apc/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"qZX" = (
/obj/structure/machinery/cryopod{
pixel_y = 6
@@ -62499,6 +61458,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/lower/engine_core)
+"raE" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"raK" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -62517,22 +61482,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_f_p)
-"rbi" = (
-/obj/structure/surface/table/almayer,
-/obj/item/storage/box/ids{
- pixel_x = -6;
- pixel_y = 8
+"rbd" = (
+/obj/structure/barricade/handrail{
+ dir = 8
},
-/obj/item/device/flash,
-/obj/structure/machinery/light{
- dir = 8;
- invisibility = 101
+/obj/structure/barricade/handrail{
+ dir = 1;
+ pixel_y = 2
},
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
+ icon_state = "test_floor5"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/lower/starboard_midship_hallway)
"rbp" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -62548,9 +61509,7 @@
pixel_y = -24;
req_one_access_txt = "200;91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"rbB" = (
/turf/open/floor/almayer{
@@ -62590,16 +61549,6 @@
icon_state = "cargo"
},
/area/almayer/shipboard/brig/execution)
-"rbX" = (
-/obj/structure/sign/safety/manualopenclose{
- pixel_x = 15;
- pixel_y = -32
- },
-/obj/structure/sign/safety/distribution_pipes{
- pixel_y = -32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"rbY" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/firedoor/border_only/almayer{
@@ -62651,6 +61600,18 @@
},
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
+"rdo" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"rdt" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -62710,15 +61671,12 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
-"rdY" = (
-/obj/structure/machinery/light{
- dir = 8
- },
+"rdT" = (
+/obj/structure/machinery/power/apc/almayer,
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "blue"
+ icon_state = "plate"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/lower/port_fore_hallway)
"rec" = (
/obj/structure/bed/chair/comfy/bravo{
dir = 1
@@ -62739,6 +61697,11 @@
icon_state = "plate"
},
/area/almayer/living/gym)
+"reu" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"reH" = (
/obj/structure/noticeboard{
pixel_x = -10;
@@ -62810,6 +61773,10 @@
icon_state = "plate"
},
/area/almayer/shipboard/port_point_defense)
+"rfQ" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"rfT" = (
/obj/item/frame/camera{
desc = "The Staff Officer insisted he needed to monitor everyone at all times.";
@@ -62848,6 +61815,9 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_s)
+"rgt" = (
+/turf/closed/wall/almayer,
+/area/almayer/hallways/lower/port_umbilical)
"rgy" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 1
@@ -62881,17 +61851,6 @@
icon_state = "emeraldcorner"
},
/area/almayer/living/briefing)
-"rhl" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "redcorner"
- },
-/area/almayer/shipboard/brig/main_office)
"rhm" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 4
@@ -62938,6 +61897,16 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/port_emb)
+"rhX" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"rib" = (
/obj/structure/sink{
dir = 8;
@@ -63001,6 +61970,12 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/starboard)
+"riK" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silvercorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"riP" = (
/obj/structure/machinery/light,
/obj/structure/sign/safety/rewire{
@@ -63107,6 +62082,23 @@
/obj/structure/pipes/vents/scrubber,
/turf/open/floor/almayer,
/area/almayer/living/gym)
+"rkV" = (
+/obj/structure/window/framed/almayer/hull/hijack_bustable,
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ dir = 4;
+ id = "Warden Office Shutters";
+ name = "\improper Privacy Shutters"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 8
+ },
+/obj/structure/machinery/door/poddoor/almayer/open{
+ dir = 4;
+ id = "courtyard_cells";
+ name = "\improper Courtyard Lockdown Shutter"
+ },
+/turf/open/floor/plating,
+/area/almayer/shipboard/brig/warden_office)
"rlc" = (
/obj/structure/machinery/disposal,
/obj/structure/disposalpipe/trunk,
@@ -63143,6 +62135,15 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
+"rlD" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"rlQ" = (
/turf/open/floor/almayer{
dir = 1;
@@ -63174,18 +62175,15 @@
icon_state = "orangecorner"
},
/area/almayer/engineering/upper_engineering/starboard)
-"rmv" = (
-/obj/structure/machinery/door/airlock/almayer/security{
- dir = 2;
- name = "\improper Interrogation Observation"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 1
+"rmk" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 26
},
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ dir = 1;
+ icon_state = "red"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/shipboard/brig/starboard_hallway)
"rmx" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/recharger,
@@ -63194,6 +62192,18 @@
icon_state = "plate"
},
/area/almayer/shipboard/brig/general_equipment)
+"rmz" = (
+/obj/structure/sign/safety/conference_room{
+ pixel_x = 14;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
+"rmB" = (
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"rmD" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -63212,8 +62222,23 @@
},
/area/almayer/engineering/upper_engineering/port)
"rna" = (
-/turf/closed/wall/almayer/white,
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
+"rnd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"rnF" = (
/obj/structure/machinery/door/airlock/almayer/engineering{
dir = 2;
@@ -63236,9 +62261,7 @@
dir = 8;
pixel_x = 17
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"rnN" = (
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -63250,6 +62273,15 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/upper_medical)
+"rnO" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"rob" = (
/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
@@ -63300,36 +62332,19 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/grunt_rnr)
-"rpd" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
-"rph" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 8
+"roY" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = -17
},
/turf/open/floor/almayer{
- icon_state = "redfull"
+ dir = 9;
+ icon_state = "red"
},
-/area/almayer/hallways/stern_hallway)
+/area/almayer/hallways/upper/stern_hallway)
"rpp" = (
/obj/effect/landmark/start/executive,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/bridgebunks)
-"rpF" = (
-/obj/structure/machinery/body_scanconsole{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "sterile_green_side"
- },
-/area/almayer/shipboard/brig/surgery)
"rpG" = (
/obj/structure/machinery/door/airlock/almayer/maint{
dir = 1
@@ -63367,15 +62382,6 @@
/obj/structure/sign/poster/safety,
/turf/closed/wall/almayer,
/area/almayer/maint/lower/s_bow)
-"rqw" = (
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"rqz" = (
/obj/structure/sign/safety/autoopenclose{
pixel_y = 32
@@ -63415,6 +62421,13 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
+"rqQ" = (
+/obj/structure/machinery/door/poddoor/railing{
+ id = "vehicle_elevator_railing_aux"
+ },
+/obj/structure/machinery/light,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"rqS" = (
/obj/structure/surface/table/almayer,
/obj/item/folder/red{
@@ -63469,6 +62482,13 @@
icon_state = "test_floor4"
},
/area/almayer/living/bridgebunks)
+"rrG" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"rrK" = (
/obj/structure/bed/chair{
can_buckle = 0;
@@ -63494,21 +62514,25 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/offices)
-"rrV" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
+"rrU" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
},
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"rsK" = (
/obj/structure/sign/safety/hvac_old,
/turf/closed/wall/almayer,
/area/almayer/squads/req)
+"rsL" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"rsM" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -63547,6 +62571,23 @@
/obj/structure/machinery/light,
/turf/open/floor/plating,
/area/almayer/maint/lower/constr)
+"rtc" = (
+/obj/structure/surface/table/almayer,
+/obj/item/storage/photo_album{
+ pixel_x = -4;
+ pixel_y = 5
+ },
+/obj/item/folder/black{
+ pixel_x = 7;
+ pixel_y = -3
+ },
+/obj/item/device/camera_film{
+ pixel_x = -5
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/command/combat_correspondent)
"rtd" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -63681,6 +62722,25 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/p_bow)
+"rwf" = (
+/obj/structure/sign/safety/analysis_lab{
+ pixel_y = 26
+ },
+/obj/structure/sign/safety/terminal{
+ pixel_x = 15;
+ pixel_y = 26
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"rwj" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"rwq" = (
/obj/structure/sign/safety/cryo{
pixel_x = 7;
@@ -63736,15 +62796,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_p)
-"rxG" = (
-/obj/structure/sign/safety/medical{
- pixel_x = 8;
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"rxK" = (
/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
@@ -63755,11 +62806,6 @@
icon_state = "silverfull"
},
/area/almayer/command/computerlab)
-"rxV" = (
-/obj/structure/barricade/handrail,
-/obj/structure/largecrate/supply/generator,
-/turf/open/floor/almayer,
-/area/almayer/engineering/upper_engineering/port)
"ryt" = (
/obj/structure/pipes/standard/manifold/visible,
/turf/open/floor/almayer{
@@ -63795,20 +62841,16 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"rzy" = (
+/obj/structure/disposalpipe/junction,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"rzN" = (
/turf/open/floor/almayer{
icon_state = "dark_sterile"
},
/area/almayer/medical/containment)
-"rzY" = (
-/obj/structure/machinery/firealarm{
- pixel_y = 28
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"rAb" = (
/turf/open/floor/almayer{
icon_state = "bluecorner"
@@ -63878,20 +62920,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/starboard)
-"rAX" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out"
- },
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"rBa" = (
/obj/structure/machinery/cm_vending/clothing/synth,
/obj/structure/prop/invuln/overhead_pipe{
@@ -63915,16 +62943,6 @@
/obj/structure/machinery/processor,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/grunt_rnr)
-"rBk" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/vents/pump{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/almayer/hallways/port_umbilical)
"rBv" = (
/obj/structure/closet/toolcloset,
/turf/open/floor/almayer{
@@ -63956,13 +62974,6 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south1)
-"rBV" = (
-/obj/structure/bed/chair/bolted,
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"rCh" = (
/obj/structure/disposalpipe/segment{
dir = 1;
@@ -63976,9 +62987,7 @@
/obj/structure/machinery/camera/autoname/almayer/containment/ares{
dir = 8
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"rCl" = (
/obj/effect/decal/warning_stripes{
@@ -64002,9 +63011,7 @@
/obj/structure/stairs{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"rCD" = (
/obj/structure/machinery/light/small{
@@ -64028,22 +63035,6 @@
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/briefing)
-"rCU" = (
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- dir = 2;
- id = "Warden Office Shutters";
- name = "\improper Privacy Shutters"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
- dir = 1;
- name = "\improper Warden's Office";
- closeOtherId = "brigwarden"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/chief_mp_office)
"rDb" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 6
@@ -64076,6 +63067,15 @@
icon_state = "green"
},
/area/almayer/squads/req)
+"rDf" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_umbilical)
+"rDm" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"rDr" = (
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer{
@@ -64112,22 +63112,19 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
-"rDB" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 13"
- },
-/obj/structure/sign/safety/rad_haz{
- pixel_x = 8;
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
"rDH" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer,
/area/almayer/maint/hull/upper/u_f_p)
+"rDO" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"rDQ" = (
/turf/open/floor/almayer{
icon_state = "plate"
@@ -64149,20 +63146,18 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/medical_science)
-"rDY" = (
-/obj/item/stack/sheet/glass/reinforced{
- amount = 50
+"rEd" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ id = "laddersouthwest";
+ name = "\improper South West Ladders Shutters"
},
-/obj/effect/spawner/random/toolbox,
-/obj/effect/spawner/random/powercell,
-/obj/effect/spawner/random/powercell,
-/obj/structure/surface/rack,
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/chief_mp_office)
+/area/almayer/hallways/lower/port_fore_hallway)
"rEf" = (
/obj/structure/disposalpipe/segment{
dir = 2;
@@ -64198,12 +63193,6 @@
icon_state = "cargo"
},
/area/almayer/maint/hull/lower/l_f_s)
-"rEu" = (
-/obj/structure/largecrate/random/case/double,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"rEv" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -64236,22 +63225,6 @@
icon_state = "silverfull"
},
/area/almayer/command/computerlab)
-"rEO" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
-"rEQ" = (
-/obj/structure/machinery/iv_drip,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "sterile_green_side"
- },
-/area/almayer/shipboard/brig/surgery)
"rEY" = (
/obj/structure/machinery/disposal,
/obj/structure/disposalpipe/trunk{
@@ -64288,15 +63261,6 @@
icon_state = "orangecorner"
},
/area/almayer/engineering/upper_engineering/starboard)
-"rFB" = (
-/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_umbilical)
"rFH" = (
/obj/structure/machinery/body_scanconsole,
/obj/structure/disposalpipe/segment{
@@ -64310,21 +63274,15 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
-"rFY" = (
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
-"rGg" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 6
+"rGc" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = -17
},
/turf/open/floor/almayer{
- dir = 9;
- icon_state = "green"
+ dir = 10;
+ icon_state = "red"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/stern_hallway)
"rGj" = (
/turf/open/floor/almayer{
icon_state = "red"
@@ -64392,6 +63350,13 @@
icon_state = "plate"
},
/area/almayer/squads/alpha_bravo_shared)
+"rHn" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"rHo" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
layer = 1.9
@@ -64418,6 +63383,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
+"rHr" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"rHw" = (
/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
pixel_y = 25
@@ -64510,6 +63481,15 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
+"rIP" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"rIV" = (
/obj/structure/prop/invuln/overhead_pipe{
pixel_x = 12
@@ -64593,39 +63573,6 @@
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer,
/area/almayer/living/briefing)
-"rJN" = (
-/obj/structure/sign/safety/rewire{
- pixel_y = 32
- },
-/obj/item/bedsheet/brown{
- layer = 3.1
- },
-/obj/structure/window/reinforced{
- dir = 4;
- pixel_x = -2;
- pixel_y = 4
- },
-/obj/structure/bed{
- can_buckle = 0
- },
-/obj/structure/window/reinforced{
- dir = 8;
- layer = 3.3;
- pixel_y = 4
- },
-/obj/structure/bed{
- buckling_y = 13;
- layer = 3.5;
- pixel_y = 13
- },
-/obj/item/bedsheet/brown{
- pixel_y = 13
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"rJY" = (
/obj/item/book/manual/medical_diagnostics_manual,
/obj/structure/surface/rack,
@@ -64652,13 +63599,6 @@
icon_state = "rasputin15"
},
/area/almayer/powered/agent)
-"rKy" = (
-/obj/structure/machinery/firealarm{
- dir = 1;
- pixel_y = -28
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"rKA" = (
/obj/structure/bed{
can_buckle = 0
@@ -64743,6 +63683,12 @@
dir = 8
},
/area/almayer/medical/containment/cell/cl)
+"rMj" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"rMO" = (
/obj/structure/machinery/door/airlock/almayer/maint{
dir = 1
@@ -64811,9 +63757,7 @@
unacidable = 1;
unslashable = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"rNK" = (
/obj/structure/surface/table/almayer,
@@ -64830,15 +63774,6 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"rOj" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "blue"
- },
-/area/almayer/hallways/port_hallway)
"rOs" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/clipboard,
@@ -64848,6 +63783,14 @@
icon_state = "plate"
},
/area/almayer/living/bridgebunks)
+"rOv" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"rOC" = (
/obj/structure/machinery/light{
dir = 1
@@ -64890,6 +63833,11 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
+"rPF" = (
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"rPO" = (
/turf/open/floor/almayer{
dir = 10;
@@ -64986,23 +63934,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_s)
-"rRq" = (
-/turf/closed/wall/almayer,
-/area/almayer/lifeboat_pumps/south2)
-"rRr" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/surface/table/almayer,
-/obj/item/toy/deck/uno,
-/obj/item/toy/deck{
- pixel_x = -9
+"rRf" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = -17
},
/turf/open/floor/almayer{
- dir = 1;
+ dir = 4;
icon_state = "red"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/upper/aft_hallway)
+"rRq" = (
+/turf/closed/wall/almayer,
+/area/almayer/lifeboat_pumps/south2)
"rRz" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -65060,6 +64003,18 @@
},
/turf/open/floor/plating,
/area/almayer/maint/lower/constr)
+"rSA" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ id = "laddersouthwest";
+ name = "\improper South West Ladders Shutters"
+ },
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"rSG" = (
/obj/structure/toilet{
pixel_y = 16
@@ -65097,6 +64052,14 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cic_hallway)
+"rTA" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"rTJ" = (
/obj/effect/decal/cleanable/blood/oil/streak,
/turf/open/floor/almayer{
@@ -65137,16 +64100,6 @@
/obj/effect/landmark/late_join/nurse,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/offices)
-"rUs" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
"rUy" = (
/obj/structure/bed/chair/office/dark{
dir = 8
@@ -65155,6 +64108,11 @@
icon_state = "silver"
},
/area/almayer/command/computerlab)
+"rUN" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"rVc" = (
/obj/structure/bed/chair{
dir = 8;
@@ -65164,16 +64122,24 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_f_p)
-"rVm" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- icon_state = "pipe-c"
+"rVt" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
},
-/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/machinery/part_fabricator/dropship,
/turf/open/floor/almayer{
- icon_state = "redcorner"
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/repair_bay)
+"rVC" = (
+/obj/structure/pipes/vents/pump/on,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/lower/starboard_aft_hallway)
"rVN" = (
/turf/open/floor/almayer{
dir = 8;
@@ -65207,25 +64173,27 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/cic_hallway)
+"rWv" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"rWz" = (
/turf/open/floor/plating,
/area/almayer/maint/upper/u_m_s)
-"rWF" = (
-/obj/structure/machinery/firealarm{
- dir = 4;
- pixel_x = 21
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/chief_mp_office)
"rWL" = (
/obj/structure/barricade/metal,
/turf/open/floor/almayer{
icon_state = "cargo"
},
/area/almayer/living/cryo_cells)
+"rWP" = (
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"rWT" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/manifold/hidden/supply{
@@ -65265,6 +64233,25 @@
icon_state = "test_floor4"
},
/area/almayer/living/gym)
+"rXE" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/sign/safety/ammunition{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/hazard{
+ pixel_y = -32
+ },
+/obj/structure/machinery/power/apc/almayer{
+ dir = 8
+ },
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/execution)
"rXF" = (
/obj/structure/machinery/door/airlock/almayer/maint{
dir = 1
@@ -65307,6 +64294,15 @@
icon_state = "cargo"
},
/area/almayer/maint/hull/lower/l_f_s)
+"rXV" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 1;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"rYh" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -65322,13 +64318,6 @@
icon_state = "plate"
},
/area/almayer/living/gym)
-"rYj" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"rYp" = (
/obj/effect/landmark/start/marine/medic/delta,
/obj/effect/landmark/late_join/delta,
@@ -65348,6 +64337,26 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering/starboard)
+"rYG" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"rYI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"rYJ" = (
/obj/structure/surface/table/almayer,
/obj/item/device/taperecorder,
@@ -65355,17 +64364,25 @@
icon_state = "plate"
},
/area/almayer/living/offices/flight)
-"rZz" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 5
+"rZt" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
},
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = -30
+/obj/structure/machinery/door_control{
+ id = "hangarentrancesouth";
+ name = "South Hangar Shutters";
+ pixel_y = 30;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
},
/turf/open/floor/almayer{
- icon_state = "green"
+ icon_state = "plate"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/port_fore_hallway)
"rZB" = (
/obj/structure/pipes/standard/simple/visible{
dir = 9
@@ -65374,6 +64391,15 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/lower_medical_medbay)
+"rZC" = (
+/obj/structure/sign/safety/ladder{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"rZP" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/weldpack,
@@ -65387,6 +64413,13 @@
/obj/effect/landmark/late_join/doctor,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/offices)
+"sai" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"saL" = (
/obj/structure/machinery/door/airlock/almayer/generic/corporate{
name = "Corporate Liaison's Closet"
@@ -65395,6 +64428,13 @@
icon_state = "test_floor4"
},
/area/almayer/command/corporateliaison)
+"saT" = (
+/obj/structure/disposalpipe/junction,
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
"sbq" = (
/obj/structure/machinery/door/poddoor/almayer/locked{
icon_state = "almayer_pdoor";
@@ -65418,8 +64458,15 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/panic)
+"sbE" = (
+/obj/structure/sign/safety/medical{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"sbJ" = (
-/turf/closed/wall/almayer/white/hull,
+/turf/closed/wall/almayer/aicore/hull,
/area/almayer/powered/agent)
"sbP" = (
/obj/effect/landmark/start/police,
@@ -65439,6 +64486,19 @@
/obj/structure/surface/table/reinforced/black,
/turf/open/floor/carpet,
/area/almayer/command/cichallway)
+"sct" = (
+/obj/structure/surface/table/almayer,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 1;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/engineering/lower/engine_core)
"scu" = (
/obj/structure/stairs/perspective{
dir = 1;
@@ -65494,20 +64554,6 @@
icon_state = "orangefull"
},
/area/almayer/living/briefing)
-"scS" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/obj/structure/machinery/light{
- dir = 8;
- invisibility = 101;
- unacidable = 1;
- unslashable = 1
- },
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
-/area/almayer/command/airoom)
"scX" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/kitchen/tray,
@@ -65583,6 +64629,13 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
+"seL" = (
+/obj/structure/pipes/vents/pump{
+ dir = 8;
+ id_tag = "mining_outpost_pump"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"sfT" = (
/turf/open/floor/almayer,
/area/almayer/hallways/upper/port)
@@ -65670,19 +64723,6 @@
icon_state = "plating"
},
/area/almayer/shipboard/stern_point_defense)
-"sgw" = (
-/obj/structure/surface/table/almayer,
-/obj/item/prop/almayer/flight_recorder{
- pixel_x = 9
- },
-/obj/item/tool/weldingtool{
- pixel_x = -7;
- pixel_y = 3
- },
-/turf/open/floor/almayer{
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
"sgD" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -65702,6 +64742,16 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/cells)
+"sgL" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ dir = 4;
+ id = "southcheckpoint";
+ name = "\improper Checkpoint Shutters"
+ },
+/turf/open/floor/almayer{
+ icon_state = "redfull"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"sgR" = (
/obj/structure/surface/table/almayer,
/obj/item/toy/deck{
@@ -65794,6 +64844,16 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_f_s)
+"siy" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"siz" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/cameras/hangar{
@@ -65810,6 +64870,12 @@
icon_state = "redfull"
},
/area/almayer/living/offices/flight)
+"siC" = (
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"siN" = (
/obj/structure/machinery/light{
dir = 1
@@ -65825,6 +64891,15 @@
icon_state = "plate"
},
/area/almayer/engineering/lower)
+"siS" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"siT" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -65845,10 +64920,9 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
-"sjc" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/shipboard/brig/main_office)
+"sje" = (
+/turf/open/floor/almayer/empty/vehicle_bay,
+/area/almayer/hallways/lower/vehiclehangar)
"sjj" = (
/obj/structure/machinery/keycard_auth{
pixel_x = -7;
@@ -65917,13 +64991,6 @@
icon_state = "plating_striped"
},
/area/almayer/shipboard/sea_office)
-"skq" = (
-/obj/structure/machinery/cm_vending/sorted/medical,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "sterile_green_side"
- },
-/area/almayer/shipboard/brig/surgery)
"skC" = (
/obj/structure/pipes/standard/simple/visible{
dir = 6
@@ -65981,6 +65048,28 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/processing)
+"slo" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/sign/safety/maint{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"slv" = (
+/obj/structure/surface/table/almayer,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/engineering/lower/engine_core)
"slF" = (
/turf/open/floor/almayer{
dir = 9;
@@ -65992,12 +65081,6 @@
icon_state = "green"
},
/area/almayer/living/grunt_rnr)
-"smn" = (
-/obj/structure/sign/safety/escapepod{
- pixel_y = -32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"smw" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/machinery/computer/med_data/laptop{
@@ -66059,23 +65142,6 @@
},
/turf/open/floor/almayer,
/area/almayer/engineering/lower/workshop/hangar)
-"smZ" = (
-/obj/structure/window/framed/almayer/hull/hijack_bustable,
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- dir = 4;
- id = "Warden Office Shutters";
- name = "\improper Privacy Shutters"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 8
- },
-/obj/structure/machinery/door/poddoor/almayer/open{
- dir = 4;
- id = "courtyard_cells";
- name = "\improper Courtyard Lockdown Shutter"
- },
-/turf/open/floor/plating,
-/area/almayer/shipboard/brig/chief_mp_office)
"snb" = (
/obj/structure/ladder{
height = 1;
@@ -66089,18 +65155,6 @@
icon_state = "orange"
},
/area/almayer/command/cic)
-"snm" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
"snt" = (
/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage,
/turf/open/floor/almayer{
@@ -66202,27 +65256,6 @@
icon_state = "cargo"
},
/area/almayer/living/synthcloset)
-"sos" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
- },
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/obj/structure/sign/safety/stairs{
- pixel_x = 8;
- pixel_y = -32
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/port_hallway)
-"sou" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"sov" = (
/turf/open/floor/almayer{
dir = 1;
@@ -66333,6 +65366,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_s)
+"spW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"sqa" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -66386,6 +65431,15 @@
icon_state = "green"
},
/area/almayer/shipboard/brig/cells)
+"srh" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"srl" = (
/obj/structure/largecrate/random/barrel/red,
/turf/open/floor/almayer{
@@ -66396,6 +65450,20 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/upper/mess)
+"srR" = (
+/obj/structure/stairs{
+ dir = 4
+ },
+/obj/effect/projector{
+ name = "Almayer_Up2";
+ vector_x = -1;
+ vector_y = 100
+ },
+/obj/structure/machinery/light,
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"srT" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 8
@@ -66407,20 +65475,6 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/brig/evidence_storage)
-"ssa" = (
-/obj/structure/machinery/door/poddoor/almayer/open{
- id = "Hangar Lockdown";
- name = "\improper Hangar Lockdown Blast Door"
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "DeployWorkR";
- name = "\improper Workshop Shutters"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/repair_bay)
"ssk" = (
/obj/structure/surface/rack,
/obj/item/storage/backpack/marine/satchel{
@@ -66443,28 +65497,20 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_p)
-"ssD" = (
-/obj/structure/machinery/light/small{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
+"ssF" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = 32;
+ pixel_y = 6
},
-/area/almayer/shipboard/brig/main_office)
-"ssE" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/machinery/door_control{
- id = "laddersouthwest";
- name = "South West Ladders Shutters";
- pixel_x = 25;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
+/obj/structure/sign/safety/reduction{
+ pixel_x = 32;
+ pixel_y = -8
},
/turf/open/floor/almayer{
- icon_state = "greencorner"
+ dir = 8;
+ icon_state = "red"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"ssU" = (
/obj/structure/machinery/constructable_frame,
/turf/open/floor/almayer{
@@ -66496,6 +65542,15 @@
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer,
/area/almayer/shipboard/navigation)
+"stk" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"str" = (
/obj/effect/step_trigger/teleporter_vector{
name = "Almayer_Down3";
@@ -66538,45 +65593,37 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_f_s)
-"stY" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/door/poddoor/almayer{
- dir = 4;
- id = "hangarentrancenorth";
- name = "\improper North Hangar Podlock"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/starboard_hallway)
-"suc" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
+"stR" = (
/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
- dir = 2;
- name = "\improper Brig Armoury";
- req_access = null;
- req_one_access_txt = "1;3";
- closeOtherId = "brignorth"
+ dir = 8;
+ icon_state = "pipe-c"
},
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"sub" = (
+/obj/structure/closet/firecloset,
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "cargo"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/lower/vehiclehangar)
"suy" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 6
},
/turf/open/floor/almayer,
/area/almayer/command/computerlab)
+"suH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/safety/hvac_old{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"suJ" = (
/obj/structure/machinery/door/airlock/almayer/maint{
name = "\improper Core Hatch"
@@ -66589,10 +65636,18 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/lower/engine_core)
-"suV" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
+"suU" = (
+/obj/structure/stairs,
+/obj/effect/projector{
+ name = "Almayer_Up1";
+ vector_x = -19;
+ vector_y = 98
+ },
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"suY" = (
/obj/structure/platform_decoration,
/turf/open/floor/almayer{
@@ -66614,6 +65669,19 @@
icon_state = "plate"
},
/area/almayer/command/lifeboat)
+"svt" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
+"svw" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"svF" = (
/obj/structure/prop/invuln/overhead_pipe{
pixel_x = 12
@@ -66638,13 +65706,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_s)
-"swn" = (
-/obj/structure/window/framed/almayer,
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/plating,
-/area/almayer/shipboard/brig/surgery)
"swt" = (
/turf/open/floor/almayer{
icon_state = "greencorner"
@@ -66701,21 +65762,6 @@
icon_state = "cargo"
},
/area/almayer/engineering/upper_engineering)
-"sxu" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"sxD" = (
/obj/structure/machinery/door/airlock/almayer/generic{
dir = 2;
@@ -66753,6 +65799,12 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
+"syj" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"syH" = (
/obj/structure/machinery/firealarm{
pixel_y = -28
@@ -66762,13 +65814,13 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/delta)
-"syP" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
+"szb" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "orange"
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/stern_hallway)
"szf" = (
/obj/structure/disposalpipe/segment{
dir = 1;
@@ -66793,6 +65845,20 @@
icon_state = "test_floor4"
},
/area/almayer/living/offices)
+"szG" = (
+/obj/item/stack/sheet/glass/reinforced{
+ amount = 50
+ },
+/obj/effect/spawner/random/toolbox,
+/obj/effect/spawner/random/powercell,
+/obj/effect/spawner/random/powercell,
+/obj/structure/surface/rack,
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 1;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/warden_office)
"szM" = (
/obj/structure/flora/pottedplant{
desc = "It is made of Fiberbush(tm). It contains asbestos.";
@@ -66814,12 +65880,6 @@
icon_state = "plate"
},
/area/almayer/living/pilotbunks)
-"szR" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
- },
-/turf/open/floor/almayer,
-/area/almayer/shipboard/brig/main_office)
"szU" = (
/obj/structure/toilet{
dir = 8
@@ -66849,6 +65909,14 @@
icon_state = "orange"
},
/area/almayer/engineering/ce_room)
+"sAD" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
+/obj/structure/pipes/standard/manifold/fourway/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
"sAS" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating/plating_catwalk,
@@ -66859,6 +65927,14 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/general_equipment)
+"sBK" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "redfull"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"sBL" = (
/obj/structure/machinery/portable_atmospherics/hydroponics,
/obj/structure/machinery/light,
@@ -66874,6 +65950,12 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_s)
+"sCg" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"sCA" = (
/obj/structure/bed/chair/comfy/delta{
dir = 4
@@ -66935,12 +66017,42 @@
/obj/structure/surface/table/almayer,
/turf/open/floor/plating,
/area/almayer/maint/lower/constr)
+"sDe" = (
+/obj/structure/machinery/power/apc/almayer{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ layer = 3.33;
+ pixel_x = 2
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ layer = 3.33;
+ pixel_y = 2
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ layer = 3.3
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "S";
+ layer = 3.3
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"sDu" = (
/obj/item/clothing/under/marine/dress,
/turf/open/floor/almayer{
icon_state = "dark_sterile"
},
/area/almayer/engineering/laundry)
+"sDx" = (
+/turf/closed/wall/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"sDA" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/bed/chair/comfy/charlie{
@@ -66950,19 +66062,6 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"sDC" = (
-/obj/structure/sign/safety/analysis_lab{
- pixel_y = 26
- },
-/obj/structure/sign/safety/terminal{
- pixel_x = 15;
- pixel_y = 26
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"sDD" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
@@ -66976,17 +66075,6 @@
icon_state = "blue"
},
/area/almayer/squads/delta)
-"sDV" = (
-/obj/structure/machinery/firealarm{
- pixel_y = -28
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"sEd" = (
/obj/structure/machinery/cryopod/right,
/obj/structure/machinery/light{
@@ -67065,13 +66153,16 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_p)
+"sEz" = (
+/turf/open/floor/almayer{
+ allow_construction = 0
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"sEK" = (
/obj/effect/decal/warning_stripes{
icon_state = "E"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "tcomms"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
"sEM" = (
/obj/structure/surface/table/reinforced/almayer_B,
@@ -67122,22 +66213,17 @@
icon_state = "cargo"
},
/area/almayer/shipboard/starboard_missiles)
-"sFh" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+"sFu" = (
+/obj/structure/surface/table/almayer,
+/obj/item/paper_bin/uscm{
+ pixel_y = 7
},
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
-"sFC" = (
-/obj/structure/window/framed/almayer,
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+/obj/item/tool/pen,
+/turf/open/floor/almayer{
dir = 8;
- id = "Interrogation Shutters";
- name = "\improper Privacy Shutters"
+ icon_state = "red"
},
-/turf/open/floor/plating,
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/shipboard/brig/starboard_hallway)
"sGh" = (
/turf/open/floor/almayer/uscm/directional,
/area/almayer/command/lifeboat)
@@ -67238,9 +66324,7 @@
/obj/structure/stairs{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"sIr" = (
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -67270,6 +66354,14 @@
icon_state = "silver"
},
/area/almayer/engineering/port_atmos)
+"sIR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"sIU" = (
/obj/effect/decal/cleanable/blood/oil,
/turf/open/floor/almayer{
@@ -67282,10 +66374,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
-"sJm" = (
-/obj/structure/pipes/vents/pump,
-/turf/open/floor/almayer,
-/area/almayer/shipboard/brig/chief_mp_office)
"sJC" = (
/obj/structure/surface/table/almayer,
/obj/item/trash/USCMtray{
@@ -67351,9 +66439,7 @@
dir = 8;
layer = 3.25
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"sLk" = (
/obj/structure/ladder{
@@ -67388,12 +66474,12 @@
/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/processing)
-"sLE" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+"sLX" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "emeraldcorner"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/port_midship_hallway)
"sMu" = (
/obj/item/trash/uscm_mre,
/obj/structure/bed/chair/comfy/charlie{
@@ -67435,6 +66521,16 @@
icon_state = "bluefull"
},
/area/almayer/living/briefing)
+"sNL" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"sNO" = (
/obj/structure/desertdam/decals/road_edge{
icon_state = "road_edge_decal3"
@@ -67577,6 +66673,23 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
+"sPY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
+"sQu" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"sQF" = (
/turf/open/floor/almayer{
icon_state = "red"
@@ -67659,15 +66772,6 @@
icon_state = "plate"
},
/area/almayer/command/cic)
-"sSY" = (
-/obj/structure/pipes/vents/scrubber{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
- },
-/area/almayer/hallways/port_umbilical)
"sTd" = (
/turf/open/floor/almayer{
dir = 4;
@@ -67693,6 +66797,13 @@
},
/turf/open/floor/almayer,
/area/almayer/living/briefing)
+"sTU" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 6
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"sTV" = (
/obj/structure/machinery/power/apc/almayer/hardened{
cell_type = /obj/item/cell/hyper;
@@ -67726,6 +66837,15 @@
icon_state = "bluefull"
},
/area/almayer/squads/delta)
+"sUk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"sUs" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -67742,16 +66862,6 @@
icon_state = "bluefull"
},
/area/almayer/command/cichallway)
-"sUF" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
"sUO" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -67775,15 +66885,15 @@
icon_state = "green"
},
/area/almayer/shipboard/brig/cells)
-"sVf" = (
-/obj/structure/sign/safety/escapepod{
- pixel_x = 8;
- pixel_y = -32
+"sVA" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = -17
},
/turf/open/floor/almayer{
+ dir = 8;
icon_state = "green"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"sVT" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/toolbox/mechanical,
@@ -67894,6 +67004,15 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
+"sXC" = (
+/obj/structure/sign/safety/storage{
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"sXE" = (
/obj/structure/machinery/door/airlock/almayer/generic{
name = "\improper Auxiliary Support Officer's Room"
@@ -67919,25 +67038,37 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
-"sYi" = (
-/obj/structure/machinery/door_control{
- id = "firearm_storage_armory";
- name = "Armory Lockdown";
- pixel_y = 24;
- req_access_txt = "4"
+"sYj" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
},
-/obj/structure/sign/safety/ammunition{
- pixel_y = 32
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "green"
},
-/obj/structure/sign/safety/restrictedarea{
- pixel_x = 15;
- pixel_y = 32
+/area/almayer/hallways/upper/aft_hallway)
+"sYl" = (
+/obj/structure/machinery/body_scanconsole{
+ dir = 8
},
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
+ dir = 8;
+ icon_state = "sterile_green_side"
+ },
+/area/almayer/shipboard/brig/medical)
+"sYr" = (
+/obj/structure/machinery/door/airlock/almayer/maint,
+/obj/structure/machinery/door/poddoor/almayer/open{
+ dir = 4;
+ id = "Hangar Lockdown";
+ name = "\improper Hangar Lockdown Blast Door"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/lower/port_umbilical)
"sYw" = (
/obj/structure/platform{
dir = 8
@@ -67964,20 +67095,6 @@
icon_state = "plate"
},
/area/almayer/command/lifeboat)
-"sYE" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/status_display{
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"sYP" = (
/obj/structure/reagent_dispensers/fueltank/custom,
/turf/open/floor/almayer{
@@ -68001,6 +67118,11 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_s)
+"sZe" = (
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"sZq" = (
/obj/structure/machinery/cm_vending/sorted/marine_food{
density = 0;
@@ -68079,21 +67201,6 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"tak" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
-"tal" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
"tan" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 10
@@ -68129,15 +67236,6 @@
"taw" = (
/turf/closed/wall/almayer,
/area/almayer/maint/hull/upper/u_a_s)
-"taA" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/hallways/starboard_hallway)
"taH" = (
/obj/structure/machinery/door/airlock/almayer/research/glass/reinforced{
id = "Containment Cell 2";
@@ -68177,6 +67275,17 @@
icon_state = "plate"
},
/area/almayer/hallways/upper/starboard)
+"tbD" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/stern_hallway)
+"tbF" = (
+/turf/open/floor/almayer{
+ icon_state = "silvercorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"tcd" = (
/obj/structure/surface/table/almayer,
/obj/item/device/radio{
@@ -68197,6 +67306,12 @@
"tcO" = (
/turf/closed/wall/almayer/outer,
/area/almayer/maint/hull/lower/l_a_p)
+"tcS" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"tcZ" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -68233,6 +67348,14 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
+"tdi" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4;
+ icon_state = "pipe-j2"
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"tdv" = (
/obj/structure/surface/table/almayer,
/obj/structure/sign/safety/terminal{
@@ -68288,21 +67411,6 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/lower_medical_medbay)
-"tdK" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/sign/safety/airlock{
- pixel_y = -32
- },
-/obj/structure/sign/safety/hazard{
- pixel_x = 15;
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_umbilical)
"tdT" = (
/obj/structure/bed/chair/comfy/beige{
dir = 1
@@ -68325,6 +67433,15 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north1)
+"ter" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
"teu" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/weapon/gun/shotgun/pump{
@@ -68350,16 +67467,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/cells)
-"teH" = (
-/obj/structure/sign/safety/maint{
- pixel_y = 32
- },
-/obj/structure/sign/safety/storage{
- pixel_x = 15;
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"teY" = (
/obj/structure/machinery/light{
dir = 1
@@ -68381,29 +67488,17 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/lobby)
-"tfl" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/sign/safety/maint{
- pixel_x = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
-"tfw" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+"tfE" = (
+/obj/structure/surface/rack,
+/obj/item/storage/firstaid/adv{
+ pixel_x = 6;
+ pixel_y = 6
},
+/obj/item/storage/firstaid/regular,
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
+ icon_state = "plate"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/shipboard/brig/execution_storage)
"tfH" = (
/obj/structure/machinery/light/containment,
/obj/effect/decal/warning_stripes{
@@ -68417,6 +67512,21 @@
/obj/structure/machinery/light/small,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_p)
+"tfZ" = (
+/obj/structure/reagent_dispensers/water_cooler/stacks{
+ density = 0;
+ pixel_x = -7;
+ pixel_y = 17
+ },
+/obj/structure/sign/safety/cryo{
+ pixel_x = 12;
+ pixel_y = 28
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"tge" = (
/obj/structure/pipes/vents/scrubber{
dir = 4
@@ -68435,6 +67545,33 @@
/obj/structure/largecrate/random/case/double,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_p)
+"tgy" = (
+/obj/structure/machinery/light,
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{
+ req_one_access = null;
+ req_one_access_txt = "7;23;27;102"
+ },
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
+"tgz" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/manualopenclose{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
+"tgJ" = (
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/warden_office)
"tgK" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -68563,13 +67700,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/port)
-"tit" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
"tiE" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/firedoor/border_only/almayer,
@@ -68643,6 +67773,10 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"tiZ" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"tjj" = (
/turf/open/floor/almayer{
dir = 5;
@@ -68691,13 +67825,16 @@
icon_state = "orange"
},
/area/almayer/maint/hull/lower/l_m_s)
-"tki" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment{
- dir = 4
+"tkg" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = 8;
+ pixel_y = 32
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"tkn" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/toolbox/mechanical,
@@ -68810,6 +67947,12 @@
},
/turf/open/floor/almayer,
/area/almayer/living/briefing)
+"tmE" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"tmH" = (
/obj/structure/pipes/vents/pump,
/obj/structure/machinery/camera/autoname/almayer{
@@ -68875,16 +68018,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/operating_room_three)
-"tnl" = (
-/obj/structure/sign/safety/escapepod{
- pixel_y = 32
- },
-/obj/structure/sign/safety/north{
- pixel_x = 15;
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"tnY" = (
/obj/structure/machinery/cryopod{
pixel_y = 6
@@ -68962,6 +68095,20 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
+"toQ" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ id = "laddernorthwest";
+ name = "\improper North West Ladders Shutters"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"tpa" = (
/obj/structure/machinery/portable_atmospherics/hydroponics,
/obj/structure/window/reinforced{
@@ -68978,9 +68125,37 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/upper_engineering/port)
+"tpj" = (
+/obj/structure/stairs{
+ dir = 8;
+ icon_state = "ramptop"
+ },
+/obj/effect/projector{
+ name = "Almayer_Down2";
+ vector_x = 1;
+ vector_y = -100
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/upper/aft_hallway)
"tpn" = (
/turf/closed/wall/almayer,
/area/almayer/shipboard/brig/evidence_storage)
+"tpB" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/machinery/door/poddoor/almayer{
+ dir = 4;
+ id = "hangarentrancesouth";
+ name = "\improper South Hangar Podlock"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"tpD" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -68991,36 +68166,29 @@
icon_state = "silver"
},
/area/almayer/living/bridgebunks)
-"tqg" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out"
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out"
- },
-/obj/structure/machinery/door_control{
- id = "DeployWorkR";
- name = "Workshop Shutters";
- pixel_x = -7;
- pixel_y = -26;
- req_one_access_txt = "3;22;2;19;7"
- },
-/obj/structure/surface/rack,
-/obj/item/rappel_harness{
- pixel_y = 8
+"tpG" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
},
-/obj/item/rappel_harness,
-/obj/item/rappel_harness{
- pixel_y = -6
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
},
-/obj/structure/sign/safety/bulkhead_door{
- pixel_x = 15;
- pixel_y = -32
+/area/almayer/hallways/lower/port_umbilical)
+"tpR" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"tqf" = (
+/obj/structure/sign/safety/ladder{
+ pixel_x = -16
},
-/turf/open/floor/almayer{
- icon_state = "silverfull"
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 2
},
-/area/almayer/hallways/repair_bay)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"tqE" = (
/obj/structure/machinery/light{
dir = 8
@@ -69043,6 +68211,19 @@
icon_state = "red"
},
/area/almayer/hallways/upper/port)
+"tqQ" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/structure/pipes/vents/pump{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"tqV" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/toolbox/electrical{
@@ -69244,31 +68425,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_p)
-"ttE" = (
-/obj/structure/surface/table/almayer,
-/obj/item/paper_bin{
- pixel_x = -7
- },
-/obj/item/tool/pen,
-/obj/item/tool/pen{
- pixel_y = 3
- },
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
-"ttM" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/port_hallway)
"ttS" = (
/obj/structure/stairs/perspective{
icon_state = "p_stair_sn_full_cap"
@@ -69335,9 +68491,32 @@
icon_state = "green"
},
/area/almayer/living/grunt_rnr)
+"tup" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = -30
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"tuA" = (
/turf/closed/wall/almayer/outer,
/area/almayer/shipboard/port_missiles)
+"tuC" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"tuJ" = (
/obj/item/reagent_container/glass/bucket{
pixel_x = 4;
@@ -69363,6 +68542,13 @@
icon_state = "redcorner"
},
/area/almayer/shipboard/weapon_room)
+"tvl" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"tvr" = (
/obj/structure/machinery/disposal,
/obj/structure/disposalpipe/trunk{
@@ -69391,6 +68577,16 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_a_s)
+"tvJ" = (
+/obj/structure/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"tvM" = (
/obj/structure/bed/chair{
dir = 1
@@ -69488,16 +68684,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_f_p)
-"twT" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/sign/safety/cryo{
- pixel_x = 8;
- pixel_y = -26
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"twW" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 8
@@ -69512,26 +68698,19 @@
},
/turf/open/floor/almayer,
/area/almayer/living/port_emb)
-"txe" = (
+"txd" = (
/obj/structure/disposalpipe/segment{
- dir = 4
+ dir = 1;
+ icon_state = "pipe-c"
},
/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 6
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
-"txi" = (
-/obj/structure/machinery/light{
- dir = 8
+ dir = 5
},
-/obj/effect/projector{
- name = "Almayer_Up3";
- vector_x = -1;
- vector_y = 102
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "orange"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/stern_hallway)
"txp" = (
/obj/structure/largecrate/random/barrel/white,
/turf/open/floor/plating/plating_catwalk,
@@ -69544,6 +68723,16 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_f_s)
+"txE" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/sign/safety/stairs{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"txH" = (
/obj/structure/bed/stool,
/turf/open/floor/almayer{
@@ -69564,6 +68753,17 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
+"txS" = (
+/obj/structure/surface/table/almayer,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/structure/machinery/camera/autoname/almayer{
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/engineering/lower/engine_core)
"tyb" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -69595,11 +68795,12 @@
},
/turf/open/floor/plating,
/area/almayer/shipboard/brig/processing)
-"tzf" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
+"tzw" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/lower/port_fore_hallway)
"tzx" = (
/obj/structure/machinery/light{
unacidable = 1;
@@ -69610,6 +68811,12 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lockerroom)
+"tzF" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"tzL" = (
/obj/structure/sign/safety/waterhazard{
pixel_x = 8;
@@ -69626,6 +68833,14 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/lower_medical_lobby)
+"tAb" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/obj/structure/sign/safety/restrictedarea{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"tAq" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/clothing/mask/breath{
@@ -69669,6 +68884,13 @@
icon_state = "cargo"
},
/area/almayer/medical/lower_medical_medbay)
+"tAW" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"tBq" = (
/obj/item/tool/crowbar,
/turf/open/floor/plating/plating_catwalk,
@@ -69680,27 +68902,18 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south1)
-"tBz" = (
-/obj/structure/machinery/power/apc/almayer{
- dir = 1
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "SW-out"
+"tBP" = (
+/obj/structure/surface/table/almayer,
+/obj/item/storage/fancy/cigarettes/lucky_strikes,
+/obj/item/tool/lighter,
+/obj/item/clothing/glasses/sunglasses/blindfold,
+/obj/structure/machinery/light/small{
+ dir = 8
},
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+ icon_state = "plate"
},
-/area/almayer/hallways/vehiclehangar)
-"tBF" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
-"tBL" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/shipboard/brig/execution_storage)
"tBU" = (
/obj/structure/platform,
/obj/structure/largecrate/random/case/double{
@@ -69764,12 +68977,16 @@
icon_state = "orange"
},
/area/almayer/maint/hull/upper/u_a_s)
-"tCN" = (
+"tCD" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
/turf/open/floor/almayer{
dir = 8;
- icon_state = "orange"
+ icon_state = "cargo_arrow"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"tCT" = (
/obj/structure/bed/chair/comfy/blue{
dir = 8
@@ -69861,6 +69078,11 @@
icon_state = "test_floor4"
},
/area/almayer/command/airoom)
+"tFQ" = (
+/turf/open/floor/almayer{
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"tFS" = (
/obj/structure/machinery/computer/supplycomp,
/obj/structure/sign/safety/terminal{
@@ -69917,14 +69139,6 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north1)
-"tGq" = (
-/obj/effect/projector{
- name = "Almayer_Up4";
- vector_x = -19;
- vector_y = 104
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"tGG" = (
/obj/structure/bed/chair/comfy/alpha{
dir = 1
@@ -69940,14 +69154,14 @@
},
/turf/closed/wall/almayer,
/area/almayer/shipboard/panic)
-"tGO" = (
-/obj/effect/projector{
- name = "Almayer_Up3";
- vector_x = -1;
- vector_y = 102
+"tGS" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"tGT" = (
/obj/structure/machinery/light{
dir = 1
@@ -69960,15 +69174,12 @@
},
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
-"tHh" = (
-/obj/structure/sign/safety/ladder{
- pixel_x = 8;
- pixel_y = -32
- },
+"tGW" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
- icon_state = "blue"
+ icon_state = "red"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/upper/stern_hallway)
"tHk" = (
/obj/structure/surface/rack,
/obj/effect/spawner/random/toolbox,
@@ -70003,6 +69214,12 @@
icon_state = "orangecorner"
},
/area/almayer/living/briefing)
+"tHF" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"tHQ" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -70017,8 +69234,8 @@
/area/almayer/shipboard/brig/cells)
"tId" = (
/obj/structure/machinery/recharge_station,
-/turf/open/floor/almayer{
- icon_state = "cargo"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_cargo"
},
/area/almayer/command/airoom)
"tIe" = (
@@ -70030,6 +69247,15 @@
icon_state = "orange"
},
/area/almayer/engineering/lower/engine_core)
+"tIl" = (
+/obj/structure/pipes/vents/pump/on,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"tIp" = (
/obj/structure/machinery/door/airlock/almayer/generic{
name = "\improper Dorms"
@@ -70116,28 +69342,19 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/charlie_delta_shared)
-"tJM" = (
-/obj/structure/toilet{
- pixel_y = 13
- },
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
-/obj/structure/machinery/light/small{
- dir = 8
- },
+"tJH" = (
+/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
- icon_state = "dark_sterile"
+ icon_state = "mono"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/upper/stern_hallway)
"tJN" = (
/obj/structure/machinery/cryopod/right{
layer = 3.1;
pixel_y = 13
},
-/turf/open/floor/almayer{
- icon_state = "cargo"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_cargo"
},
/area/almayer/command/airoom)
"tJR" = (
@@ -70228,34 +69445,17 @@
icon_state = "green"
},
/area/almayer/living/grunt_rnr)
+"tLZ" = (
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"tMc" = (
/obj/structure/machinery/chem_master/industry_mixer,
/turf/open/floor/almayer{
icon_state = "orange"
},
/area/almayer/engineering/lower/workshop/hangar)
-"tMH" = (
-/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
- name = "\improper Warden's Office";
- closeOtherId = "brigwarden"
- },
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- dir = 4;
- id = "Warden Office Shutters";
- name = "\improper Privacy Shutters"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 8
- },
-/obj/structure/machinery/door/poddoor/almayer/open{
- dir = 4;
- id = "courtyard_cells";
- name = "\improper Courtyard Lockdown Shutter"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/chief_mp_office)
"tMT" = (
/obj/item/tool/weldingtool,
/obj/structure/surface/rack,
@@ -70340,6 +69540,13 @@
icon_state = "dark_sterile"
},
/area/almayer/engineering/laundry)
+"tON" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"tOW" = (
/turf/open/floor/almayer{
dir = 10;
@@ -70392,6 +69599,20 @@
icon_state = "bluefull"
},
/area/almayer/living/briefing)
+"tPz" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/aft_hallway)
+"tPB" = (
+/obj/effect/projector{
+ name = "Almayer_Down2";
+ vector_x = 1;
+ vector_y = -100
+ },
+/turf/open/floor/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/upper/aft_hallway)
"tPI" = (
/obj/structure/bed/chair{
dir = 4
@@ -70407,6 +69628,16 @@
},
/turf/open/floor/almayer,
/area/almayer/living/briefing)
+"tQe" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"tQi" = (
/obj/effect/landmark/start/warrant,
/obj/effect/decal/warning_stripes{
@@ -70415,29 +69646,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/cryo)
-"tQm" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "sterile_green_side"
- },
-/area/almayer/shipboard/brig/surgery)
-"tQo" = (
-/obj/structure/machinery/status_display{
- pixel_y = -30
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- dir = 8;
- id = "laddersoutheast";
- name = "\improper South East Ladders Shutters"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
"tQA" = (
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
dir = 1
@@ -70451,6 +69659,14 @@
/obj/structure/machinery/light,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/hangar)
+"tQO" = (
+/obj/structure/sign/safety/restrictedarea{
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"tQV" = (
/turf/closed/wall/almayer/outer,
/area/almayer/lifeboat_pumps/south1)
@@ -70492,12 +69708,6 @@
/obj/effect/decal/cleanable/blood,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/grunt_rnr)
-"tSw" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "redfull"
- },
-/area/almayer/hallways/stern_hallway)
"tSB" = (
/turf/open/floor/almayer{
dir = 1;
@@ -70510,6 +69720,15 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
+"tSY" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"tTk" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -70555,6 +69774,13 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_a_s)
+"tTO" = (
+/obj/structure/machinery/photocopier,
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"tUh" = (
/obj/structure/disposalpipe/segment{
dir = 8;
@@ -70571,6 +69797,17 @@
"tUx" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/cells)
+"tUK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"tUN" = (
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
access_modified = 1;
@@ -70634,10 +69871,24 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_f_p)
+"tVZ" = (
+/turf/open/floor/almayer{
+ icon_state = "cargo_arrow"
+ },
+/area/almayer/hallways/lower/repair_bay)
"tWd" = (
/obj/structure/largecrate/random/case,
/turf/open/floor/plating,
/area/almayer/maint/lower/constr)
+"tWf" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"tWi" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 8
@@ -70674,6 +69925,14 @@
icon_state = "test_floor4"
},
/area/almayer/maint/upper/mess)
+"tWL" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 5
+ },
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"tWM" = (
/obj/docking_port/stationary/escape_pod/north,
/turf/open/floor/plating,
@@ -70734,6 +69993,11 @@
icon_state = "test_floor4"
},
/area/almayer/squads/req)
+"tXo" = (
+/turf/open/floor/almayer{
+ icon_state = "redcorner"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"tXM" = (
/obj/structure/pipes/vents/pump{
dir = 8
@@ -70858,17 +70122,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_a_s)
-"tZP" = (
-/obj/structure/surface/rack,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/meson,
-/obj/structure/machinery/light/small{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/engineering/upper_engineering/port)
"tZZ" = (
/obj/structure/machinery/cryopod,
/obj/effect/decal/warning_stripes{
@@ -70936,6 +70189,9 @@
icon_state = "test_floor4"
},
/area/almayer/maint/hull/upper/u_f_s)
+"uaG" = (
+/turf/closed/wall/almayer,
+/area/almayer/hallways/lower/starboard_umbilical)
"uaI" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/processor{
@@ -70967,9 +70223,7 @@
icon_state = "E";
pixel_x = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"ubI" = (
/obj/structure/surface/table/almayer,
@@ -70984,6 +70238,27 @@
},
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliaison)
+"ubQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"uch" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"ucp" = (
/obj/structure/window/framed/almayer,
/turf/open/floor/plating,
@@ -71024,6 +70299,23 @@
icon_state = "plate"
},
/area/almayer/command/cic)
+"udf" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 6
+ },
+/obj/structure/sign/safety/maint{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/storage{
+ pixel_y = 32
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_y = 3
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"udi" = (
/turf/open/floor/almayer{
icon_state = "red"
@@ -71047,15 +70339,6 @@
icon_state = "bluefull"
},
/area/almayer/command/cichallway)
-"udF" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/starboard_hallway)
"udG" = (
/obj/structure/disposalpipe/segment,
/obj/effect/decal/warning_stripes{
@@ -71201,6 +70484,17 @@
/obj/structure/machinery/cm_vending/sorted/marine_food,
/turf/open/floor/almayer,
/area/almayer/living/briefing)
+"ugw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "redcorner"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"ugJ" = (
/obj/structure/largecrate/random/case/small,
/obj/structure/largecrate/random/mini/small_case{
@@ -71212,11 +70506,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/starboard)
-"ugT" = (
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"ugZ" = (
/obj/structure/closet/emcloset,
/turf/open/floor/almayer{
@@ -71242,6 +70531,28 @@
icon_state = "cargo_arrow"
},
/area/almayer/living/offices)
+"uhq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ dir = 4;
+ id = "northcheckpoint";
+ name = "\improper Checkpoint Shutters"
+ },
+/turf/open/floor/almayer{
+ icon_state = "redfull"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"uhA" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"uhE" = (
/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle,
/turf/open/floor/plating/plating_catwalk,
@@ -71260,18 +70571,6 @@
icon_state = "cargo_arrow"
},
/area/almayer/living/offices)
-"uhW" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "redcorner"
- },
-/area/almayer/shipboard/brig/main_office)
-"uif" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"uiC" = (
/obj/structure/machinery/alarm/almayer{
dir = 1
@@ -71345,16 +70644,13 @@
icon_state = "plate"
},
/area/almayer/living/grunt_rnr)
-"ukh" = (
-/obj/structure/sign/safety/rewire{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
+"uky" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
},
-/area/almayer/hallways/aft_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_umbilical)
"ukC" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/almayer{
@@ -71407,6 +70703,16 @@
icon_state = "plating_striped"
},
/area/almayer/squads/req)
+"ulH" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 8
+ },
+/obj/structure/disposalpipe/junction{
+ dir = 2;
+ icon_state = "pipe-j2"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_aft_hallway)
"ulZ" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -71447,6 +70753,22 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/starboard)
+"umD" = (
+/obj/structure/sign/safety/storage{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"umI" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"umS" = (
/obj/structure/bed/chair/comfy{
dir = 8
@@ -71656,17 +70978,6 @@
"uqo" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/armory)
-"uqy" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
- name = "\improper Brig Cells"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/main_office)
"uqA" = (
/obj/structure/machinery/firealarm{
dir = 8;
@@ -71692,6 +71003,22 @@
/obj/docking_port/stationary/escape_pod/east,
/turf/open/floor/plating,
/area/almayer/maint/hull/upper/u_m_p)
+"urk" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
+"urs" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"ury" = (
/obj/structure/bed/chair{
dir = 8
@@ -71735,14 +71062,6 @@
/obj/effect/landmark/late_join/charlie,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/charlie)
-"urW" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 7"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
"usm" = (
/obj/structure/machinery/light,
/obj/structure/sign/safety/waterhazard{
@@ -71866,6 +71185,14 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/bravo)
+"uun" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"uuu" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -71910,6 +71237,12 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/lower)
+"uuI" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"uuR" = (
/obj/structure/desertdam/decals/road_edge{
icon_state = "road_edge_decal8";
@@ -71933,6 +71266,25 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/basketball)
+"uuT" = (
+/obj/structure/pipes/vents/scrubber{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
+"uvh" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"uvp" = (
/obj/structure/largecrate/supply,
/obj/structure/sign/safety/bulkhead_door{
@@ -71942,6 +71294,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/s_bow)
+"uvq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"uvt" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -72027,24 +71391,6 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cic_hallway)
-"uwS" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
- dir = 2;
- name = "\improper Brig Armoury";
- req_access = null;
- req_one_access_txt = "1;3"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/main_office)
"uwZ" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -72129,18 +71475,6 @@
/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/engineering/lower/workshop/hangar)
-"uxZ" = (
-/obj/structure/machinery/door_control{
- id = "laddersouthwest";
- name = "South West Ladders Shutters";
- pixel_x = 25;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
- },
-/turf/open/floor/almayer{
- icon_state = "greencorner"
- },
-/area/almayer/hallways/port_hallway)
"uyd" = (
/obj/structure/machinery/camera/autoname/almayer{
dir = 4;
@@ -72191,12 +71525,37 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/ce_room)
+"uzH" = (
+/obj/structure/machinery/door/airlock/almayer/medical/glass{
+ name = "\improper Brig Medbay";
+ req_access = null;
+ req_one_access = null;
+ req_one_access_txt = "20;3";
+ closeOtherId = "brigmed"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/medical)
"uAb" = (
/obj/effect/decal/warning_stripes{
icon_state = "SE-out"
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/hangar)
+"uAi" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"uAj" = (
/obj/structure/bed/chair,
/obj/effect/decal/cleanable/dirt,
@@ -72277,17 +71636,13 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
-"uBn" = (
-/turf/open/floor/almayer{
- icon_state = "cargo_arrow"
- },
-/area/almayer/hallways/vehiclehangar)
-"uBw" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "green"
+"uBj" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_y = 3
},
-/area/almayer/hallways/starboard_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"uBx" = (
/obj/structure/prop/invuln/overhead_pipe{
dir = 4;
@@ -72312,16 +71667,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_m_p)
-"uBz" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "orange"
- },
-/area/almayer/hallways/stern_hallway)
"uBM" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 5
@@ -72361,6 +71706,20 @@
icon_state = "green"
},
/area/almayer/living/grunt_rnr)
+"uCt" = (
+/obj/structure/sign/safety/stairs{
+ pixel_x = -17;
+ pixel_y = 7
+ },
+/obj/structure/sign/safety/escapepod{
+ pixel_x = -17;
+ pixel_y = -8
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"uCw" = (
/obj/structure/closet/crate/freezer,
/obj/item/reagent_container/food/snacks/tomatomeat,
@@ -72428,6 +71787,36 @@
icon_state = "blue"
},
/area/almayer/squads/delta)
+"uEO" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 3
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
+"uES" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/structure/platform{
+ dir = 8
+ },
+/obj/structure/machinery/recharge_station{
+ layer = 2.9
+ },
+/obj/structure/sign/safety/high_voltage{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/hazard{
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"uFd" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -72479,21 +71868,6 @@
/obj/effect/landmark/map_item,
/turf/open/floor/almayer,
/area/almayer/living/briefing)
-"uFL" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/repair_bay)
-"uFP" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/port_hallway)
"uGc" = (
/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
/obj/structure/sign/safety/hazard{
@@ -72511,12 +71885,18 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering/port)
-"uGt" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out"
+"uGf" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"uGN" = (
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer,
@@ -72559,16 +71939,11 @@
icon_state = "plate"
},
/area/almayer/maint/lower/s_bow)
-"uId" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/effect/step_trigger/clone_cleaner,
+"uIa" = (
/turf/open/floor/almayer{
- dir = 9;
- icon_state = "green"
+ icon_state = "greencorner"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"uIv" = (
/turf/open/floor/almayer{
icon_state = "orange"
@@ -72600,6 +71975,19 @@
icon_state = "test_floor4"
},
/area/almayer/squads/alpha_bravo_shared)
+"uJb" = (
+/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
+/obj/structure/sign/safety/airlock{
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/hazard{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"uJk" = (
/obj/structure/prop/almayer/name_stencil{
icon_state = "almayer4"
@@ -72608,15 +71996,13 @@
icon_state = "outerhull_dir"
},
/area/space)
-"uJs" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+"uJM" = (
+/obj/structure/sign/safety/medical{
+ pixel_x = 8;
+ pixel_y = -32
},
/turf/open/floor/almayer,
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/lower/starboard_fore_hallway)
"uJU" = (
/obj/structure/machinery/cryopod/right{
pixel_y = 6
@@ -72666,13 +72052,6 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/alpha_bravo_shared)
-"uKA" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"uKH" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -72694,22 +72073,13 @@
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
/area/almayer/shipboard/starboard_point_defense)
-"uLu" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/stern_hallway)
-"uLv" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_y = -32
- },
-/obj/structure/sign/safety/manualopenclose{
- pixel_x = 15;
- pixel_y = -32
+"uLE" = (
+/obj/structure/machinery/cm_vending/sorted/medical/blood,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "sterile_green_side"
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/shipboard/brig/medical)
"uLG" = (
/obj/structure/closet/crate/freezer{
desc = "A freezer crate. Someone has written 'open on christmas' in marker on the top."
@@ -72766,12 +72136,24 @@
icon_state = "blue"
},
/area/almayer/squads/delta)
+"uNf" = (
+/obj/structure/sign/safety/conference_room{
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"uNg" = (
/obj/structure/machinery/cryopod,
/turf/open/floor/almayer{
icon_state = "cargo"
},
/area/almayer/living/bridgebunks)
+"uNp" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = -30
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"uNq" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/machinery/light{
@@ -72811,22 +72193,23 @@
icon_state = "blue"
},
/area/almayer/living/basketball)
+"uNQ" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"uNV" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22"
},
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
-"uOc" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/almayer/hallways/vehiclehangar)
"uOi" = (
/turf/closed/wall/almayer/outer,
/area/almayer/lifeboat_pumps/south2)
@@ -72850,14 +72233,9 @@
icon_state = "blue"
},
/area/almayer/living/basketball)
-"uPI" = (
-/obj/structure/pipes/vents/pump{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
+"uPE" = (
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"uPN" = (
/obj/item/tool/wirecutters/clippers,
/turf/open/floor/almayer{
@@ -72889,19 +72267,23 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/living/port_emb)
+"uPX" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"uQi" = (
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"uQm" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/perma)
-"uQn" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
- pixel_y = 3
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"uQo" = (
/obj/structure/machinery/disposal,
/obj/item/reagent_container/food/drinks/cans/beer{
@@ -72914,22 +72296,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/port_emb)
-"uQU" = (
-/obj/structure/stairs{
- dir = 1
- },
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/effect/projector{
- name = "Almayer_Up4";
- vector_x = -19;
- vector_y = 104
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/port_hallway)
"uRo" = (
/obj/structure/surface/table/almayer,
/obj/item/trash/USCMtray{
@@ -72962,6 +72328,12 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/upper_medical)
+"uRD" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"uRM" = (
/obj/structure/bed{
can_buckle = 0
@@ -73010,15 +72382,6 @@
icon_state = "red"
},
/area/almayer/hallways/upper/port)
-"uSB" = (
-/obj/structure/machinery/keycard_auth{
- pixel_x = 25
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/chief_mp_office)
"uSH" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/reagent_dispensers/water_cooler{
@@ -73054,6 +72417,16 @@
icon_state = "plating"
},
/area/almayer/engineering/lower/engine_core)
+"uSZ" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"uTk" = (
/obj/structure/largecrate/random/secure,
/turf/open/floor/plating,
@@ -73091,6 +72464,16 @@
icon_state = "mono"
},
/area/almayer/living/pilotbunks)
+"uTP" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_aft_hallway)
"uTU" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -73115,13 +72498,6 @@
icon_state = "orangefull"
},
/area/almayer/engineering/lower/workshop)
-"uTY" = (
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"uTZ" = (
/obj/structure/machinery/light/small,
/turf/open/floor/almayer{
@@ -73144,6 +72520,28 @@
icon_state = "cargo"
},
/area/almayer/engineering/upper_engineering/port)
+"uUf" = (
+/obj/structure/surface/table/almayer,
+/obj/item/prop/helmetgarb/prescription_bottle{
+ pixel_x = -7;
+ pixel_y = 9
+ },
+/obj/item/prop/helmetgarb/prescription_bottle{
+ pixel_x = 9
+ },
+/obj/item/prop/helmetgarb/prescription_bottle{
+ pixel_x = -9;
+ pixel_y = -4
+ },
+/obj/item/prop/helmetgarb/prescription_bottle{
+ pixel_y = -2
+ },
+/obj/item/reagent_container/pill/happy,
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"uUi" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 5
@@ -73210,6 +72608,15 @@
icon_state = "silver"
},
/area/almayer/shipboard/brig/cic_hallway)
+"uVg" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"uVh" = (
/obj/structure/filingcabinet/seeds,
/turf/open/floor/almayer{
@@ -73229,9 +72636,7 @@
/obj/structure/pipes/standard/manifold/hidden/supply/no_boom{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"uVA" = (
/turf/open/floor/almayer{
@@ -73264,21 +72669,29 @@
icon_state = "plate"
},
/area/almayer/living/pilotbunks)
+"uVZ" = (
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"uWc" = (
/obj/structure/surface/table/almayer,
/turf/open/floor/almayer{
icon_state = "emeraldfull"
},
/area/almayer/living/briefing)
-"uWC" = (
-/obj/structure/sign/safety/maint{
- pixel_x = -17
+"uWm" = (
+/obj/effect/projector{
+ name = "Almayer_Up4";
+ vector_x = -19;
+ vector_y = 104
},
/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
+ allow_construction = 0;
+ icon_state = "plate"
},
-/area/almayer/hallways/stern_hallway)
+/area/almayer/hallways/lower/port_midship_hallway)
"uWV" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -73339,14 +72752,21 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_p)
"uXu" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ id = "Interrogation Shutters";
+ name = "\improper Privacy Shutters"
},
-/obj/structure/pipes/standard/manifold/hidden/supply{
+/obj/structure/machinery/door/airlock/almayer/security{
+ dir = 2;
+ name = "\improper Interrogation"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 1
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/interrogation)
"uXL" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -73395,6 +72815,22 @@
icon_state = "orange"
},
/area/almayer/engineering/lower)
+"uYM" = (
+/obj/structure/machinery/status_display{
+ pixel_y = -30
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
+"uZm" = (
+/obj/effect/projector{
+ name = "Almayer_Up2";
+ vector_x = -1;
+ vector_y = 100
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"uZo" = (
/obj/structure/bed/stool,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -73420,10 +72856,12 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/starboard)
-"uZQ" = (
-/obj/structure/window/framed/almayer,
-/turf/open/floor/plating,
-/area/almayer/hallways/repair_bay)
+"uZI" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "bluecorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"uZV" = (
/obj/structure/reagent_dispensers/fueltank/gas/methane{
anchored = 1
@@ -73447,13 +72885,33 @@
icon_state = "test_floor4"
},
/area/almayer/living/basketball)
-"vak" = (
-/obj/structure/sign/safety/security{
+"vaq" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4;
+ icon_state = "pipe-j2"
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
+"vaM" = (
+/obj/structure/machinery/power/apc/almayer{
+ dir = 1
+ },
+/obj/structure/sign/safety/hazard{
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/airlock{
pixel_x = 15;
pixel_y = 32
},
-/turf/closed/wall/almayer,
-/area/almayer/hallways/starboard_umbilical)
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"vaQ" = (
/obj/structure/machinery/door/airlock/almayer/medical{
dir = 1;
@@ -73463,6 +72921,9 @@
icon_state = "test_floor4"
},
/area/almayer/medical/lower_medical_medbay)
+"vaS" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/mp_bunks)
"vaV" = (
/obj/structure/sign/safety/hvac_old{
pixel_x = 8;
@@ -73563,6 +73024,18 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/lower_medical_medbay)
+"vbZ" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/pipes/vents/scrubber{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"vcm" = (
/obj/structure/reagent_dispensers/peppertank{
pixel_x = -30
@@ -73600,6 +73073,15 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_f_s)
+"vcO" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"vdl" = (
/obj/structure/window/reinforced/ultra{
pixel_y = -12
@@ -73612,24 +73094,6 @@
icon_state = "plating_striped"
},
/area/almayer/shipboard/brig/execution)
-"vdJ" = (
-/obj/structure/surface/table/almayer,
-/obj/item/pipe{
- dir = 9
- },
-/obj/item/tool/screwdriver{
- layer = 3.6;
- pixel_x = 9;
- pixel_y = 8
- },
-/obj/item/tool/crowbar/red{
- pixel_x = 17
- },
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
"vdL" = (
/obj/structure/sign/safety/reception{
pixel_x = -17;
@@ -73673,15 +73137,6 @@
icon_state = "plate"
},
/area/almayer/maint/upper/u_m_s)
-"vdW" = (
-/obj/structure/disposalpipe/junction{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
"ven" = (
/obj/structure/bed/chair,
/turf/open/floor/almayer{
@@ -73747,15 +73202,6 @@
icon_state = "test_floor4"
},
/area/almayer/powered)
-"vfw" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/firealarm{
- pixel_y = 28
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/main_office)
"vfx" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -73772,11 +73218,6 @@
icon_state = "orange"
},
/area/almayer/squads/bravo)
-"vfB" = (
-/turf/open/floor/almayer/no_build{
- dir = 4
- },
-/area/almayer/command/airoom)
"vfP" = (
/turf/open/floor/almayer/research/containment/corner{
dir = 1
@@ -73796,17 +73237,6 @@
/obj/structure/pipes/vents/scrubber,
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/general_equipment)
-"vgk" = (
-/obj/structure/closet/firecloset,
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 8;
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "greencorner"
- },
-/area/almayer/hallways/port_hallway)
"vgn" = (
/obj/structure/surface/table/almayer,
/obj/effect/decal/cleanable/dirt,
@@ -73875,22 +73305,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/medical_science)
-"vgC" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/machinery/door_control{
- id = "hangarentrancenorth";
- name = "North Hangar Podlocks";
- pixel_y = -26;
- req_one_access_txt = "2;3;12;19";
- throw_range = 15
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/starboard_hallway)
"vgD" = (
/obj/structure/machinery/status_display{
pixel_y = 30
@@ -73900,36 +73314,9 @@
icon_state = "red"
},
/area/almayer/command/lifeboat)
-"vgF" = (
-/obj/structure/stairs{
- dir = 4
- },
-/obj/effect/projector{
- name = "Almayer_Up2";
- vector_x = -1;
- vector_y = 100
- },
-/obj/structure/machinery/light,
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/starboard_hallway)
"vgO" = (
/turf/closed/wall/almayer/research/containment/wall/east,
/area/almayer/medical/containment/cell)
-"vgW" = (
-/obj/structure/sign/safety/security{
- pixel_x = 15;
- pixel_y = 32
- },
-/obj/structure/sign/safety/restrictedarea{
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"vhe" = (
/obj/structure/filingcabinet{
density = 0;
@@ -73944,9 +73331,7 @@
/obj/item/folder/white,
/obj/item/folder/white,
/obj/item/folder/white,
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"vhw" = (
/obj/structure/disposalpipe/trunk{
@@ -74045,19 +73430,8 @@
/obj/structure/pipes/standard/manifold/hidden/supply/no_boom{
dir = 1
},
-/turf/open/floor/plating/plating_catwalk{
- allow_construction = 0
- },
+/turf/open/floor/plating/plating_catwalk/aicore,
/area/almayer/command/airoom)
-"viH" = (
-/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 1;
- name = "Bathroom"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/main_office)
"viJ" = (
/obj/structure/machinery/door/airlock/almayer/maint,
/turf/open/floor/almayer{
@@ -74109,6 +73483,29 @@
icon_state = "plating"
},
/area/almayer/shipboard/port_missiles)
+"vjk" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ name = "ship-grade camera"
+ },
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
+ },
+/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
+/obj/structure/sign/safety/hazard{
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/airlock{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_umbilical)
"vjv" = (
/obj/effect/decal/cleanable/blood/oil,
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -74116,6 +73513,12 @@
},
/turf/open/floor/almayer,
/area/almayer/engineering/lower/workshop/hangar)
+"vjB" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/starboard_hallway)
"vjC" = (
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -74132,6 +73535,16 @@
icon_state = "green"
},
/area/almayer/living/grunt_rnr)
+"vjG" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/vents/pump{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"vjK" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer,
@@ -74152,6 +73565,15 @@
icon_state = "test_floor4"
},
/area/almayer/maint/lower/constr)
+"vjT" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"vjW" = (
/obj/structure/reagent_dispensers/watertank{
anchored = 1
@@ -74234,6 +73656,12 @@
icon_state = "plate"
},
/area/almayer/maint/lower/s_bow)
+"vkQ" = (
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"vkR" = (
/obj/structure/machinery/power/apc/almayer{
dir = 1
@@ -74282,12 +73710,6 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cells)
-"vlN" = (
-/obj/structure/pipes/vents/pump,
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"vlO" = (
/obj/structure/window/reinforced{
dir = 4;
@@ -74322,6 +73744,13 @@
icon_state = "plate"
},
/area/almayer/living/port_emb)
+"vlR" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"vlX" = (
/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep,
/turf/open/floor/almayer{
@@ -74391,6 +73820,12 @@
icon_state = "red"
},
/area/almayer/shipboard/port_missiles)
+"vno" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"vnD" = (
/obj/structure/barricade/handrail{
dir = 1;
@@ -74400,6 +73835,28 @@
icon_state = "plate"
},
/area/almayer/living/gym)
+"vnY" = (
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
+"vnZ" = (
+/obj/structure/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
+"vop" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silvercorner"
+ },
+/area/almayer/hallways/lower/repair_bay)
"vor" = (
/obj/effect/decal/cleanable/blood,
/obj/structure/prop/broken_arcade,
@@ -74480,6 +73937,19 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/brig/processing)
+"vqz" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"vqC" = (
/obj/structure/pipes/vents/pump{
dir = 4
@@ -74627,6 +74097,21 @@
icon_state = "cargo"
},
/area/almayer/living/offices)
+"vsf" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
+ },
+/obj/structure/machinery/door_control{
+ id = "laddernortheast";
+ name = "North East Ladders Shutters";
+ pixel_y = -25;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"vsh" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/plating/plating_catwalk,
@@ -74655,19 +74140,6 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"vsM" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/storage/firstaid/toxin{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/adv,
-/obj/item/device/defibrillator,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "sterile_green_side"
- },
-/area/almayer/shipboard/brig/surgery)
"vta" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -74706,29 +74178,6 @@
icon_state = "test_floor4"
},
/area/almayer/medical/upper_medical)
-"vtB" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- dir = 8;
- id = "laddersoutheast";
- name = "\improper South East Ladders Shutters"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/port_hallway)
-"vtD" = (
-/obj/structure/extinguisher_cabinet{
- pixel_y = 26
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"vtG" = (
/obj/structure/toilet{
dir = 4
@@ -74764,6 +74213,16 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
+"vuE" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"vuF" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
access_modified = 1;
@@ -74797,6 +74256,15 @@
icon_state = "blue"
},
/area/almayer/squads/delta)
+"vuV" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_aft_hallway)
"vuZ" = (
/obj/structure/pipes/vents/scrubber{
dir = 4
@@ -74931,28 +74399,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_p)
-"vwP" = (
-/obj/structure/surface/table/almayer,
-/obj/item/prop/helmetgarb/prescription_bottle{
- pixel_x = -7;
- pixel_y = 9
- },
-/obj/item/prop/helmetgarb/prescription_bottle{
- pixel_x = 9
- },
-/obj/item/prop/helmetgarb/prescription_bottle{
- pixel_x = -9;
- pixel_y = -4
- },
-/obj/item/prop/helmetgarb/prescription_bottle{
- pixel_y = -2
- },
-/obj/item/reagent_container/pill/happy,
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "silver"
- },
-/area/almayer/hallways/repair_bay)
"vwU" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
@@ -74974,6 +74420,22 @@
/obj/structure/machinery/light,
/turf/open/floor/almayer,
/area/almayer/hallways/hangar)
+"vxh" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ dir = 2;
+ id = "Warden Office Shutters";
+ name = "\improper Privacy Shutters"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
+ dir = 1;
+ name = "\improper Warden's Office";
+ closeOtherId = "brigwarden"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/warden_office)
"vxu" = (
/obj/structure/machinery/meter,
/obj/structure/pipes/standard/simple/visible{
@@ -75019,6 +74481,17 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/alpha_bravo_shared)
+"vxY" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"vyg" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/secure_data,
@@ -75068,6 +74541,9 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
+"vyB" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/vehiclehangar)
"vyH" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -75077,6 +74553,13 @@
"vyI" = (
/turf/open/floor/almayer,
/area/almayer/engineering/upper_engineering/port)
+"vzi" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 3
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"vzj" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 8
@@ -75097,19 +74580,19 @@
"vzp" = (
/turf/open/floor/almayer/research/containment/entrance,
/area/almayer/medical/containment/cell/cl)
-"vzq" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 3
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
-"vzu" = (
+"vzy" = (
/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
+ dir = 5
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "redcorner"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"vzz" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
dir = 1;
@@ -75233,20 +74716,14 @@
},
/area/almayer/medical/medical_science)
"vAU" = (
-/obj/structure/machinery/light{
- dir = 8
- },
/obj/structure/pipes/vents/scrubber/no_boom{
dir = 4
},
-/turf/open/floor/almayer/no_build{
- dir = 8;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 8
},
/area/almayer/command/airoom)
-"vBm" = (
-/turf/closed/wall/almayer/reinforced,
-/area/almayer/shipboard/brig/main_office)
"vBp" = (
/obj/structure/bed/chair/comfy{
dir = 1
@@ -75345,6 +74822,19 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/s_bow)
+"vDo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"vDt" = (
/obj/item/stool,
/obj/effect/landmark/yautja_teleport,
@@ -75398,6 +74888,16 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/medical_science)
+"vEv" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer{
+ id = "laddernorthwest";
+ name = "\improper North West Ladders Shutters"
+ },
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"vEx" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -75442,6 +74942,15 @@
icon_state = "plating"
},
/area/almayer/shipboard/stern_point_defense)
+"vFp" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"vFv" = (
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer{
@@ -75457,6 +74966,19 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north1)
+"vFy" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out"
+ },
+/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/sign/safety/stairs{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"vFH" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/almayer{
@@ -75476,6 +74998,12 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_f_p)
+"vGn" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/interrogation)
"vGA" = (
/obj/structure/bed/sofa/south/grey/right,
/turf/open/floor/almayer{
@@ -75523,6 +75051,30 @@
"vHn" = (
/turf/closed/wall/almayer/outer,
/area/almayer/maint/hull/upper/u_m_s)
+"vHp" = (
+/obj/structure/surface/table/almayer,
+/obj/item/reagent_container/food/drinks/cans/waterbottle{
+ pixel_x = 9;
+ pixel_y = 3
+ },
+/obj/item/prop/helmetgarb/flair_io{
+ pixel_x = -10;
+ pixel_y = 6
+ },
+/obj/item/prop/magazine/boots/n160{
+ pixel_x = -6;
+ pixel_y = -5
+ },
+/obj/structure/transmitter/rotary{
+ name = "Flight Deck Telephone";
+ phone_category = "Almayer";
+ phone_id = "Flight Deck";
+ pixel_y = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/repair_bay)
"vHq" = (
/obj/item/device/assembly/mousetrap/armed,
/obj/structure/pipes/standard/manifold/hidden/supply{
@@ -75540,13 +75092,6 @@
icon_state = "dark_sterile"
},
/area/almayer/living/port_emb)
-"vHs" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 2
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
"vHt" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/machinery/door_control{
@@ -75642,36 +75187,26 @@
icon_state = "test_floor4"
},
/area/almayer/maint/hull/lower/l_a_s)
-"vIm" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
+"vIr" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
+ icon_state = "test_floor4"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"vIu" = (
/obj/structure/machinery/light{
dir = 4
},
/turf/open/floor/almayer,
/area/almayer/command/cichallway)
-"vIN" = (
-/obj/structure/sign/safety/distribution_pipes{
- pixel_x = 15;
- pixel_y = 32
- },
-/obj/structure/sign/safety/intercom{
- pixel_y = 32
- },
+"vJc" = (
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
+ dir = 4;
+ icon_state = "red"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/shipboard/brig/warden_office)
"vJg" = (
/obj/structure/machinery/light/small,
/turf/open/floor/almayer{
@@ -75743,22 +75278,12 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/armory)
"vKF" = (
-/obj/structure/stairs{
- dir = 8;
- icon_state = "ramptop"
- },
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/effect/projector{
- name = "Almayer_Down2";
- vector_x = 1;
- vector_y = -100
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
+/obj/structure/machinery/cm_vending/sorted/medical,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "sterile_green_side"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/shipboard/brig/medical)
"vKI" = (
/obj/structure/machinery/light{
dir = 1
@@ -75787,6 +75312,15 @@
icon_state = "test_floor4"
},
/area/almayer/medical/upper_medical)
+"vLp" = (
+/obj/structure/sign/safety/storage{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"vLA" = (
/obj/effect/decal/warning_stripes{
icon_state = "W";
@@ -75815,13 +75349,15 @@
/obj/effect/landmark/start/otech,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/offices)
-"vMx" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
+"vMA" = (
+/obj/structure/machinery/firealarm{
+ pixel_y = 28
+ },
+/obj/structure/machinery/light{
+ dir = 1
},
/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/lower/port_midship_hallway)
"vME" = (
/turf/open/floor/almayer{
dir = 9;
@@ -75854,6 +75390,20 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
+"vMJ" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/machinery/door/airlock/almayer/security/glass{
+ name = "\improper Brig Breakroom"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ layer = 1.9
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"vMM" = (
/obj/structure/machinery/light,
/obj/effect/decal/cleanable/dirt,
@@ -75865,6 +75415,16 @@
/obj/docking_port/stationary/escape_pod/north,
/turf/open/floor/plating,
/area/almayer/maint/hull/upper/u_m_p)
+"vMU" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "redcorner"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"vNp" = (
/obj/structure/sign/safety/three{
pixel_x = -17
@@ -75882,6 +75442,16 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/charlie)
+"vNT" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
"vNW" = (
/turf/open/floor/almayer/uscm/directional{
dir = 9
@@ -75891,6 +75461,17 @@
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north2)
+"vOu" = (
+/obj/structure/surface/table/almayer,
+/obj/item/weapon/gun/energy/taser,
+/obj/item/weapon/gun/energy/taser{
+ pixel_y = 8
+ },
+/obj/structure/machinery/recharger,
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"vOw" = (
/obj/structure/surface/rack,
/obj/effect/spawner/random/toolbox,
@@ -75933,6 +75514,12 @@
icon_state = "test_floor4"
},
/area/almayer/medical/upper_medical)
+"vOV" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_umbilical)
"vOY" = (
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
access_modified = 1;
@@ -75948,6 +75535,17 @@
icon_state = "test_floor4"
},
/area/almayer/maint/upper/mess)
+"vOZ" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"vPf" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/poddoor/almayer/locked{
@@ -76021,6 +75619,15 @@
icon_state = "redfull"
},
/area/almayer/engineering/lower/workshop/hangar)
+"vPW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/vehiclehangar)
"vQe" = (
/obj/effect/step_trigger/teleporter_vector{
name = "Almayer_Down2";
@@ -76228,6 +75835,13 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering)
+"vTM" = (
+/obj/structure/surface/rack,
+/obj/effect/spawner/random/toolbox,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"vTS" = (
/obj/structure/machinery/light{
pixel_x = 16
@@ -76258,6 +75872,16 @@
icon_state = "orange"
},
/area/almayer/engineering/lower/workshop/hangar)
+"vTX" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/manualopenclose{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"vUb" = (
/obj/effect/landmark/start/marine/alpha,
/obj/effect/landmark/late_join/alpha,
@@ -76277,6 +75901,12 @@
/obj/structure/machinery/light,
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
+"vUI" = (
+/obj/structure/bed/chair/comfy/orange{
+ dir = 8
+ },
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/warden_office)
"vUJ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -76292,27 +75922,18 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_p)
-"vUP" = (
-/turf/closed/wall/almayer/reinforced,
-/area/almayer/shipboard/brig/cic_hallway)
-"vUU" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 8;
- name = "ship-grade camera"
- },
-/obj/structure/sign/safety/three{
- pixel_x = 31;
- pixel_y = -8
- },
-/obj/structure/sign/safety/ammunition{
- pixel_x = 32;
- pixel_y = 7
+"vUO" = (
+/obj/structure/machinery/light{
+ dir = 8
},
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "emerald"
+ dir = 8;
+ icon_state = "green"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/upper/aft_hallway)
+"vUP" = (
+/turf/closed/wall/almayer/reinforced,
+/area/almayer/shipboard/brig/cic_hallway)
"vVb" = (
/obj/structure/machinery/cm_vending/gear/tl{
density = 0;
@@ -76348,6 +75969,14 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering/port)
+"vVy" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = 28
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"vVI" = (
/obj/structure/sign/safety/nonpress_0g{
pixel_x = 8;
@@ -76367,23 +75996,18 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
-"vVX" = (
-/obj/structure/surface/table/almayer,
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/obj/item/fuelCell,
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
- },
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
-/area/almayer/engineering/lower/engine_core)
"vVY" = (
/turf/open/floor/plating,
/area/almayer/maint/hull/upper/u_m_s)
+"vVZ" = (
+/obj/structure/machinery/door/airlock/almayer/maint,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"vWc" = (
/obj/structure/surface/table/almayer,
/obj/item/device/radio/intercom/normandy{
@@ -76393,6 +76017,19 @@
icon_state = "redfull"
},
/area/almayer/living/offices/flight)
+"vWs" = (
+/obj/structure/largecrate/random/barrel/red,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/sign/safety/fire_haz{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"vWt" = (
/obj/structure/surface/table/almayer,
/obj/item/reagent_container/glass/beaker/large,
@@ -76514,10 +76151,14 @@
dir = 4;
pixel_x = -17
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/glowing/no_build,
/area/almayer/command/airoom)
+"vXk" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"vXo" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -76540,12 +76181,21 @@
icon_state = "mono"
},
/area/almayer/medical/upper_medical)
-"vYi" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 5
+"vXF" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
+"vYd" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/vehiclehangar)
"vYm" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
@@ -76681,15 +76331,17 @@
icon_state = "red"
},
/area/almayer/hallways/upper/port)
-"wbh" = (
-/obj/structure/machinery/light{
- dir = 4
+"waV" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1;
+ pixel_y = 1
},
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orange"
+ dir = 8;
+ icon_state = "red"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/hallways/upper/aft_hallway)
"wbu" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/camera/autoname/almayer{
@@ -76800,6 +76452,12 @@
icon_state = "orange"
},
/area/almayer/engineering/lower)
+"wcD" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"wcJ" = (
/obj/structure/machinery/light/small{
dir = 4
@@ -76830,16 +76488,6 @@
icon_state = "plate"
},
/area/almayer/command/lifeboat)
-"wdb" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/sign/safety/stairs{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/starboard_hallway)
"wdf" = (
/obj/structure/bed/chair{
dir = 1
@@ -76924,6 +76572,12 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering/starboard)
+"wdQ" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 6
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_umbilical)
"wdW" = (
/obj/structure/machinery/light/small,
/turf/open/floor/almayer{
@@ -76956,6 +76610,14 @@
icon_state = "test_floor4"
},
/area/almayer/medical/hydroponics)
+"wer" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/repair_bay)
"wes" = (
/obj/structure/machinery/cm_vending/sorted/medical/marinemed,
/obj/structure/sign/safety/medical{
@@ -77013,24 +76675,6 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
-"wfB" = (
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out"
- },
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"wfE" = (
/turf/closed/wall/almayer,
/area/almayer/living/gym)
@@ -77056,14 +76700,6 @@
icon_state = "silver"
},
/area/almayer/living/briefing)
-"wgd" = (
-/obj/structure/sign/safety/restrictedarea{
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"wgf" = (
/obj/structure/sign/safety/nonpress_0g{
pixel_x = 32
@@ -77073,9 +76709,6 @@
icon_state = "plating"
},
/area/almayer/shipboard/stern_point_defense)
-"wgi" = (
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/main_office)
"wgk" = (
/obj/structure/disposalpipe/segment{
dir = 2;
@@ -77132,6 +76765,15 @@
icon_state = "silver"
},
/area/almayer/command/cichallway)
+"whQ" = (
+/obj/structure/closet/secure_closet/personal/cabinet{
+ req_access = null
+ },
+/obj/item/storage/donut_box{
+ pixel_y = 8
+ },
+/turf/open/floor/wood/ship,
+/area/almayer/shipboard/brig/warden_office)
"wid" = (
/turf/closed/wall/almayer/outer,
/area/almayer/maint/hull/lower/p_bow)
@@ -77187,6 +76829,16 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"wiQ" = (
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ id = "vehicle1door";
+ name = "Vehicle Bay One"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"wiW" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -77243,6 +76895,11 @@
icon_state = "test_floor4"
},
/area/almayer/hallways/upper/starboard)
+"wjL" = (
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/repair_bay)
"wjP" = (
/obj/structure/sign/safety/storage{
pixel_x = 8;
@@ -77337,7 +76994,7 @@
alert_message = "Caution: Movement detected in ARES Core.";
cooldown_duration = 1200
},
-/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
+/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{
closed_layer = 3.2;
id = "ARES Emergency";
layer = 3.2;
@@ -77371,22 +77028,27 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"wld" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out"
+"wlg" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/door_control{
+ id = "Interrogation Shutters";
+ name = "\improper Shutters";
+ pixel_x = -6;
+ pixel_y = -6;
+ req_access_txt = "3"
},
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 5
+/obj/item/device/taperecorder{
+ pixel_x = 3;
+ pixel_y = 3
},
-/obj/structure/sign/safety/ammunition{
- pixel_x = 15;
- pixel_y = -32
+/obj/structure/machinery/light/small{
+ dir = 8
},
-/obj/structure/sign/safety/hazard{
- pixel_y = -32
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "red"
},
-/turf/open/floor/almayer,
-/area/almayer/shipboard/brig/execution)
+/area/almayer/shipboard/brig/interrogation)
"wlh" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -77403,6 +77065,16 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_m_p)
+"wlD" = (
+/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"wlE" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -77446,6 +77118,12 @@
icon_state = "orangefull"
},
/area/almayer/living/briefing)
+"wmH" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"wmK" = (
/obj/structure/surface/table/almayer,
/obj/item/clipboard,
@@ -77480,7 +77158,7 @@
},
/area/almayer/living/bridgebunks)
"wnh" = (
-/obj/structure/window/framed/almayer/white/hull,
+/obj/structure/window/framed/almayer/aicore/hull,
/turf/open/floor/plating,
/area/almayer/command/airoom)
"wnw" = (
@@ -77636,12 +77314,6 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
-"wqq" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/stern_hallway)
"wqr" = (
/obj/structure/sign/safety/terminal{
pixel_x = 7;
@@ -77652,15 +77324,15 @@
icon_state = "plate"
},
/area/almayer/command/combat_correspondent)
-"wqA" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
+"wqO" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4
},
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
-/area/almayer/hallways/aft_hallway)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"wqW" = (
/obj/structure/closet/secure_closet/CMO,
/obj/structure/machinery/light{
@@ -77679,12 +77351,47 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_a_p)
+"wrr" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1
+ },
+/obj/structure/machinery/door_control/railings{
+ pixel_y = 24
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
+"wru" = (
+/obj/structure/machinery/light,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"wrC" = (
/obj/structure/sign/safety/distribution_pipes{
pixel_x = -17
},
/turf/open/floor/almayer,
/area/almayer/living/gym)
+"wrN" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 1;
+ name = "ship-grade camera"
+ },
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/obj/structure/sign/safety/stairs{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"wrQ" = (
/obj/structure/sign/safety/storage{
pixel_x = 8;
@@ -77741,16 +77448,6 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/processing)
-"wst" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
"wsw" = (
/obj/structure/machinery/light/small{
dir = 1
@@ -77780,6 +77477,11 @@
icon_state = "test_floor4"
},
/area/almayer/squads/bravo)
+"wsS" = (
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"wtk" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -77855,22 +77557,6 @@
icon_state = "mono"
},
/area/almayer/medical/upper_medical)
-"wuc" = (
-/obj/structure/machinery/door/airlock/almayer/medical/glass{
- name = "\improper Brig Medbay";
- req_access = null;
- req_one_access = null;
- req_one_access_txt = "20;3";
- closeOtherId = "brigmed"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/surgery)
"wud" = (
/obj/effect/decal/warning_stripes{
icon_state = "NE-out";
@@ -77998,15 +77684,18 @@
icon_state = "cargo"
},
/area/almayer/squads/charlie)
-"wwu" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
+"wwv" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
+"wwE" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"wwJ" = (
/obj/structure/surface/table/almayer,
/obj/item/paper,
@@ -78046,6 +77735,11 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/starboard)
+"wxp" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"wxq" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -78064,6 +77758,27 @@
"wxy" = (
/turf/closed/wall/almayer/outer,
/area/almayer/maint/hull/upper/p_stern)
+"wxD" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
+"wxF" = (
+/obj/structure/closet/secure_closet/cmdcabinet{
+ desc = "A bulletproof cabinet containing communications equipment.";
+ name = "communications cabinet";
+ pixel_y = 24;
+ req_access = null;
+ req_one_access_txt = "3"
+ },
+/obj/item/device/radio/listening_bug/radio_linked/mp{
+ pixel_y = 8
+ },
+/obj/item/device/radio/listening_bug/radio_linked/mp,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/warden_office)
"wxU" = (
/obj/item/ashtray/bronze{
pixel_x = 7;
@@ -78104,6 +77819,16 @@
},
/turf/open/floor/plating,
/area/almayer/maint/lower/constr)
+"wyE" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silvercorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"wyG" = (
/obj/structure/disposalpipe/segment,
/obj/structure/machinery/door/airlock/almayer/maint{
@@ -78126,6 +77851,27 @@
icon_state = "plating"
},
/area/almayer/command/airoom)
+"wzy" = (
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_fore_hallway)
+"wzJ" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
+"wzL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"wzZ" = (
/obj/structure/machinery/door/airlock/almayer/medical/glass{
dir = 1;
@@ -78139,17 +77885,12 @@
icon_state = "test_floor4"
},
/area/almayer/medical/lower_medical_medbay)
-"wAR" = (
+"wAK" = (
/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
+ icon_state = "S"
},
-/area/almayer/hallways/port_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_umbilical)
"wBd" = (
/obj/structure/machinery/status_display{
pixel_x = 32
@@ -78164,6 +77905,16 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/lobby)
+"wBw" = (
+/obj/structure/pipes/vents/pump,
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"wBI" = (
/obj/effect/step_trigger/clone_cleaner,
/obj/structure/sign/safety/maint{
@@ -78205,9 +77956,7 @@
/obj/structure/stairs{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"wDg" = (
/obj/effect/decal/warning_stripes{
@@ -78219,13 +77968,6 @@
icon_state = "red"
},
/area/almayer/hallways/upper/starboard)
-"wDp" = (
-/obj/structure/machinery/photocopier,
-/turf/open/floor/almayer{
- dir = 10;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"wDq" = (
/obj/structure/largecrate/random/case/small,
/obj/structure/machinery/light/small{
@@ -78275,6 +78017,15 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/cells)
+"wDG" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"wDH" = (
/obj/structure/morgue,
/obj/structure/machinery/light{
@@ -78347,6 +78098,12 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering/port)
+"wEK" = (
+/obj/structure/machinery/firealarm{
+ pixel_y = 28
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"wEO" = (
/obj/structure/platform_decoration{
dir = 4
@@ -78377,6 +78134,9 @@
icon_state = "redfull"
},
/area/almayer/command/cic)
+"wFs" = (
+/turf/closed/wall/almayer,
+/area/almayer/shipboard/brig/starboard_hallway)
"wFz" = (
/obj/item/prop{
desc = "Predecessor to the M56 the M38 was known for its extreme reliability in the field. This particular M38D is fondly remembered for its stalwart defence of the hangar bay during the Arcturian commando raid of the USS Almayer on Io.";
@@ -78400,6 +78160,12 @@
icon_state = "plate"
},
/area/almayer/shipboard/panic)
+"wFQ" = (
+/obj/structure/machinery/cm_vending/clothing/maintenance_technician,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/engineering/upper_engineering/port)
"wFR" = (
/turf/open/floor/almayer,
/area/almayer/living/gym)
@@ -78438,14 +78204,6 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_f_p)
-"wGA" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/starboard_hallway)
"wGE" = (
/obj/structure/disposalpipe/segment,
/obj/effect/landmark/start/marine/leader/delta,
@@ -78478,6 +78236,13 @@
icon_state = "emerald"
},
/area/almayer/living/port_emb)
+"wHn" = (
+/obj/structure/sign/safety/autoopenclose{
+ pixel_x = 7;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"wHo" = (
/turf/open/floor/almayer{
icon_state = "emerald"
@@ -78490,17 +78255,6 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
-"wHM" = (
-/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
- name = "\improper Warden's Office"
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 8
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/shipboard/brig/chief_mp_office)
"wIr" = (
/obj/structure/machinery/cm_vending/clothing/senior_officer{
req_access = list();
@@ -78550,9 +78304,29 @@
icon_state = "silvercorner"
},
/area/almayer/shipboard/brig/cic_hallway)
+"wIX" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/structure/disposalpipe/up/almayer{
+ dir = 8;
+ id = "almayerlink"
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"wJb" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/lower_medical_medbay)
+"wJd" = (
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"wJh" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -78572,20 +78346,10 @@
icon_state = "test_floor4"
},
/area/almayer/medical/upper_medical)
-"wJw" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
-/obj/structure/machinery/computer/supplycomp/vehicle,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/vehiclehangar)
"wJB" = (
/obj/structure/machinery/cryopod/right,
-/turf/open/floor/almayer{
- icon_state = "cargo"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_cargo"
},
/area/almayer/command/airoom)
"wJC" = (
@@ -78619,6 +78383,26 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_f_s)
+"wKc" = (
+/obj/effect/decal/cleanable/vomit,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_21"
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/engineering/upper_engineering/port)
+"wKm" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = 28
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"wKF" = (
/obj/structure/machinery/power/apc/almayer{
cell_type = /obj/item/cell/hyper;
@@ -78637,6 +78421,15 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cells)
+"wKN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"wKP" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -78737,6 +78530,38 @@
icon_state = "sterile_green"
},
/area/almayer/medical/containment)
+"wLS" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/brig/starboard_hallway)
+"wMl" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 8;
+ name = "ship-grade camera"
+ },
+/obj/structure/sign/safety/two{
+ pixel_x = 32;
+ pixel_y = -8
+ },
+/obj/structure/sign/safety/ammunition{
+ pixel_x = 32;
+ pixel_y = 7
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"wMv" = (
/obj/effect/decal/warning_stripes{
icon_state = "W"
@@ -78745,6 +78570,15 @@
icon_state = "dark_sterile"
},
/area/almayer/living/auxiliary_officer_office)
+"wMB" = (
+/obj/structure/barricade/handrail{
+ dir = 1;
+ pixel_y = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor5"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"wMF" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/almayer{
@@ -78759,6 +78593,17 @@
icon_state = "cargo"
},
/area/almayer/squads/alpha)
+"wMI" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = 28
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"wMO" = (
/obj/structure/machinery/door/poddoor/almayer/biohazard/white{
dir = 4
@@ -78798,6 +78643,27 @@
icon_state = "redcorner"
},
/area/almayer/shipboard/brig/processing)
+"wNz" = (
+/obj/structure/stairs,
+/obj/effect/projector{
+ name = "Almayer_Up1";
+ vector_x = -19;
+ vector_y = 98
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"wNG" = (
+/obj/effect/projector{
+ name = "Almayer_Up2";
+ vector_x = -1;
+ vector_y = 100
+ },
+/turf/open/floor/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"wNS" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -78810,13 +78676,6 @@
/obj/structure/platform,
/turf/open/floor/almayer,
/area/almayer/living/briefing)
-"wOh" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
"wOt" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 4
@@ -78859,6 +78718,27 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south1)
+"wPi" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "cargo_arrow"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
+"wPm" = (
+/obj/structure/pipes/standard/cap/hidden{
+ dir = 4
+ },
+/obj/structure/sign/safety/life_support{
+ pixel_x = 8;
+ pixel_y = -25
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"wPz" = (
/turf/open/floor/almayer{
icon_state = "mono"
@@ -78894,12 +78774,17 @@
/obj/item/clothing/head/beret/cm,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_a_s)
-"wQg" = (
+"wQu" = (
+/obj/effect/projector{
+ name = "Almayer_Up3";
+ vector_x = -1;
+ vector_y = 102
+ },
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "greencorner"
+ allow_construction = 0;
+ icon_state = "plate"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/lower/port_fore_hallway)
"wQA" = (
/obj/structure/pipes/standard/simple/visible{
dir = 5
@@ -78913,6 +78798,19 @@
icon_state = "orange"
},
/area/almayer/engineering/lower/engine_core)
+"wRf" = (
+/obj/structure/machinery/light/small,
+/obj/structure/sign/safety/nonpress_0g{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/press_area_ag{
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/lower/port_umbilical)
"wRN" = (
/obj/structure/machinery/portable_atmospherics/hydroponics,
/obj/item/seeds/goldappleseed,
@@ -78952,15 +78850,6 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"wSk" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
- },
-/turf/open/floor/almayer{
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
"wSm" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -78994,13 +78883,12 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
-"wSK" = (
-/obj/structure/janitorialcart,
-/obj/item/tool/mop,
+"wSQ" = (
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 1;
+ icon_state = "silver"
},
-/area/almayer/shipboard/brig/execution)
+/area/almayer/hallways/lower/repair_bay)
"wSR" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 1
@@ -79091,14 +78979,20 @@
icon_state = "test_floor4"
},
/area/almayer/lifeboat_pumps/south1)
-"wTJ" = (
-/obj/structure/barricade/handrail,
-/obj/structure/barricade/handrail{
- dir = 4
+"wTB" = (
+/obj/structure/surface/table/almayer,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = 28
},
-/obj/structure/largecrate/random,
-/turf/open/floor/almayer,
-/area/almayer/engineering/upper_engineering/port)
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/engineering/lower/engine_core)
"wTM" = (
/turf/closed/wall/almayer/research/containment/wall/south,
/area/almayer/medical/containment/cell)
@@ -79119,13 +79013,6 @@
/obj/item/storage/fancy/candle_box,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/morgue)
-"wUz" = (
-/obj/structure/sign/safety/life_support{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"wUJ" = (
/obj/structure/largecrate/random/barrel/white,
/turf/open/floor/almayer{
@@ -79167,6 +79054,20 @@
icon_state = "plate"
},
/area/almayer/living/grunt_rnr)
+"wVh" = (
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/warden_office)
+"wVm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
"wVt" = (
/obj/effect/step_trigger/clone_cleaner,
/turf/open/floor/plating/plating_catwalk,
@@ -79228,12 +79129,6 @@
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer,
/area/almayer/living/chapel)
-"wWk" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"wWl" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/general_air_control/large_tank_control{
@@ -79255,6 +79150,14 @@
icon_state = "plate"
},
/area/almayer/engineering/upper_engineering/port)
+"wWt" = (
+/obj/effect/projector{
+ name = "Almayer_Up1";
+ vector_x = -19;
+ vector_y = 98
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"wWz" = (
/turf/closed/wall/almayer/research/containment/wall/north,
/area/almayer/medical/containment/cell)
@@ -79271,12 +79174,6 @@
icon_state = "test_floor5"
},
/area/almayer/squads/req)
-"wWQ" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = -25
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/port_hallway)
"wWR" = (
/obj/structure/machinery/medical_pod/bodyscanner{
dir = 8
@@ -79307,6 +79204,12 @@
icon_state = "plate"
},
/area/almayer/maint/hull/upper/u_a_p)
+"wXz" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/starboard_hallway)
"wXH" = (
/obj/structure/bed/chair{
dir = 1
@@ -79391,6 +79294,30 @@
},
/turf/open/floor/plating,
/area/almayer/engineering/ce_room)
+"wZk" = (
+/obj/structure/stairs{
+ dir = 8;
+ icon_state = "ramptop"
+ },
+/obj/effect/projector{
+ name = "Almayer_Down3";
+ vector_x = 1;
+ vector_y = -102
+ },
+/obj/structure/machinery/light,
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"wZp" = (
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/stern_hallway)
"wZv" = (
/obj/structure/prop/invuln{
desc = "An inflated membrane. This one is puncture proof. Wow!";
@@ -79419,26 +79346,6 @@
/obj/structure/pipes/vents/pump,
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/perma)
-"wZM" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/almayer{
- icon_state = "blue"
- },
-/area/almayer/hallways/aft_hallway)
-"wZN" = (
-/obj/structure/surface/table/almayer,
-/obj/item/storage/fancy/cigarettes/lucky_strikes,
-/obj/item/tool/lighter,
-/obj/item/clothing/glasses/sunglasses/blindfold,
-/obj/structure/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/shipboard/brig/execution)
"wZX" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -79592,6 +79499,28 @@
icon_state = "plate"
},
/area/almayer/shipboard/panic)
+"xcY" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 8;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"xdf" = (
+/obj/structure/pipes/standard/manifold/fourway/hidden/supply,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/port_midship_hallway)
+"xdl" = (
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"xdx" = (
/obj/structure/surface/rack,
/obj/item/storage/firstaid/regular/empty,
@@ -79661,6 +79590,16 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
+"xeq" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"xer" = (
/obj/structure/machinery/power/apc/almayer,
/turf/open/floor/plating/plating_catwalk,
@@ -79677,6 +79616,12 @@
/obj/structure/window/framed/almayer,
/turf/open/floor/plating,
/area/almayer/living/cafeteria_officer)
+"xfo" = (
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"xfq" = (
/obj/structure/sign/safety/hvac_old{
pixel_x = 8;
@@ -79751,6 +79696,13 @@
icon_state = "sterile_green"
},
/area/almayer/medical/lower_medical_lobby)
+"xgk" = (
+/obj/structure/pipes/vents/scrubber,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"xgm" = (
/obj/structure/reagent_dispensers/fueltank/oxygentank,
/turf/open/floor/almayer{
@@ -79768,25 +79720,16 @@
},
/turf/open/floor/plating/almayer,
/area/almayer/maint/hull/lower/l_a_p)
-"xgx" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out";
- pixel_x = 1
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/almayer/hallways/vehiclehangar)
-"xgI" = (
-/obj/structure/closet/secure_closet/personal/cabinet{
- req_access = null
+"xgE" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
},
-/obj/item/storage/donut_box{
- pixel_y = 8
+/obj/structure/disposalpipe/segment{
+ dir = 8;
+ icon_state = "pipe-c"
},
-/turf/open/floor/wood/ship,
-/area/almayer/shipboard/brig/chief_mp_office)
+/turf/open/floor/almayer,
+/area/almayer/hallways/upper/aft_hallway)
"xgJ" = (
/obj/structure/machinery/light{
dir = 1
@@ -79837,6 +79780,11 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_p)
+"xhi" = (
+/turf/open/floor/almayer{
+ icon_state = "orangecorner"
+ },
+/area/almayer/hallways/upper/stern_hallway)
"xhn" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/almayer{
@@ -79850,12 +79798,6 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cells)
-"xhE" = (
-/obj/structure/bed/chair/bolted{
- dir = 8
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/main_office)
"xhO" = (
/turf/open/floor/almayer{
icon_state = "plate"
@@ -79867,6 +79809,17 @@
icon_state = "plate"
},
/area/almayer/squads/bravo)
+"xhU" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/starboard_hallway)
+"xhW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"xhZ" = (
/obj/structure/bed/chair/comfy/beige{
dir = 4
@@ -79962,23 +79915,12 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/processing)
-"xjG" = (
-/obj/structure/machinery/door_control{
- id = "Interrogation Shutters";
- name = "\improper Shutters";
- pixel_x = 24;
- pixel_y = 12;
- req_access_txt = "3"
- },
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 8;
- name = "ship-grade camera"
- },
+"xjI" = (
/turf/open/floor/almayer{
- dir = 5;
+ dir = 4;
icon_state = "red"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/hallways/upper/stern_hallway)
"xjK" = (
/obj/structure/sign/safety/hazard{
pixel_y = 32
@@ -80020,6 +79962,16 @@
"xkd" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/shipboard/brig/cells)
+"xky" = (
+/obj/structure/sign/safety/maint{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"xkB" = (
/obj/structure/bed/chair/comfy/charlie{
dir = 1
@@ -80029,15 +79981,20 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
-"xkC" = (
-/obj/structure/machinery/light{
- dir = 8
+"xkN" = (
+/obj/structure/machinery/door_control{
+ id = "laddernorthwest";
+ name = "North West Ladders Shutters";
+ pixel_x = 25;
+ req_one_access_txt = "2;3;12;19";
+ throw_range = 15
},
+/obj/effect/step_trigger/clone_cleaner,
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "emerald"
+ dir = 4;
+ icon_state = "greencorner"
},
-/area/almayer/hallways/port_hallway)
+/area/almayer/hallways/lower/starboard_fore_hallway)
"xlk" = (
/obj/structure/surface/table/almayer,
/turf/open/floor/almayer,
@@ -80110,11 +80067,6 @@
icon_state = "cargo"
},
/area/almayer/medical/lower_medical_medbay)
-"xmX" = (
-/turf/open/floor/almayer{
- icon_state = "dark_sterile"
- },
-/area/almayer/shipboard/brig/surgery)
"xns" = (
/obj/structure/machinery/door_control{
id = "ARES JoeCryo";
@@ -80125,7 +80077,7 @@
},
/obj/effect/landmark/late_join/working_joe,
/obj/effect/landmark/start/working_joe,
-/turf/open/floor/plating/plating_catwalk,
+/turf/open/floor/plating/plating_catwalk/aicore,
/area/almayer/command/airoom)
"xnz" = (
/obj/effect/decal/warning_stripes{
@@ -80168,9 +80120,25 @@
icon_state = "bluecorner"
},
/area/almayer/squads/delta)
+"xog" = (
+/obj/effect/step_trigger/clone_cleaner,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"xoj" = (
/turf/open/floor/almayer,
/area/almayer/engineering/lower/workshop)
+"xos" = (
+/obj/structure/machinery/firealarm{
+ pixel_y = 28
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_fore_hallway)
"xoB" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/maint/hull/upper/u_f_s)
@@ -80188,6 +80156,15 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/port)
+"xpc" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 1;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"xpi" = (
/obj/structure/sink{
dir = 8;
@@ -80205,36 +80182,32 @@
icon_state = "dark_sterile"
},
/area/almayer/living/commandbunks)
-"xpo" = (
-/obj/structure/closet/secure_closet/cmdcabinet{
- desc = "A bulletproof cabinet containing communications equipment.";
- name = "communications cabinet";
- pixel_y = 24;
- req_access = null;
- req_one_access_txt = "3"
+"xpl" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 8;
+ name = "ship-grade camera"
},
-/obj/item/device/radio/listening_bug/radio_linked/mp{
- pixel_y = 8
+/obj/structure/sign/safety/four{
+ pixel_x = 31;
+ pixel_y = -8
},
-/obj/item/device/radio/listening_bug/radio_linked/mp,
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "red"
+/obj/structure/sign/safety/ammunition{
+ pixel_x = 32;
+ pixel_y = 7
},
-/area/almayer/shipboard/brig/chief_mp_office)
-"xpI" = (
-/obj/structure/stairs{
- dir = 4
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "blue"
},
-/obj/effect/projector{
- name = "Almayer_Up2";
- vector_x = -1;
- vector_y = 100
+/area/almayer/hallways/lower/port_midship_hallway)
+"xpw" = (
+/obj/structure/machinery/medical_pod/sleeper{
+ dir = 8
},
-/turf/open/floor/plating/almayer{
- allow_construction = 0
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
},
-/area/almayer/hallways/starboard_hallway)
+/area/almayer/shipboard/brig/medical)
"xpL" = (
/obj/structure/machinery/light/small{
dir = 4
@@ -80280,12 +80253,6 @@
icon_state = "mono"
},
/area/almayer/medical/medical_science)
-"xqs" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/chief_mp_office)
"xqv" = (
/obj/structure/bed/sofa/south/white/right,
/turf/open/floor/almayer{
@@ -80341,12 +80308,6 @@
icon_state = "cargo"
},
/area/almayer/command/lifeboat)
-"xrr" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/stern_hallway)
"xrt" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 5
@@ -80373,6 +80334,17 @@
},
/turf/open/floor/almayer,
/area/almayer/engineering/lower/workshop/hangar)
+"xrC" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"xrI" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -80381,10 +80353,16 @@
icon_state = "plate"
},
/area/almayer/engineering/lower/workshop)
-"xsg" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/shipboard/brig/main_office)
+"xrT" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/repair_bay)
"xsl" = (
/obj/structure/machinery/alarm/almayer{
dir = 1
@@ -80439,12 +80417,13 @@
/obj/item/weapon/dart/green,
/turf/open/floor/plating,
/area/almayer/maint/lower/constr)
-"xsW" = (
-/obj/structure/machinery/cm_vending/gear/vehicle_crew,
-/turf/open/floor/almayer{
- icon_state = "cargo"
+"xsX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/area/almayer/hallways/vehiclehangar)
+/obj/structure/machinery/light,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/upper/stern_hallway)
"xtM" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -80452,6 +80431,26 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_lobby)
+"xtO" = (
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = 28
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
+"xub" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_midship_hallway)
"xuc" = (
/obj/structure/disposalpipe/segment{
dir = 1;
@@ -80459,6 +80458,23 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cic_hallway)
+"xui" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_aft_hallway)
+"xuy" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/structure/machinery/status_display{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"xuE" = (
/obj/structure/machinery/door/airlock/almayer/research/glass/reinforced{
dir = 1;
@@ -80505,13 +80521,6 @@
icon_state = "silver"
},
/area/almayer/shipboard/brig/cic_hallway)
-"xvh" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/hallways/aft_hallway)
"xvE" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/airlock/multi_tile/almayer/marine/charlie{
@@ -80530,11 +80539,21 @@
req_one_access_txt = "90;91;92"
},
/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer/no_build{
- dir = 4;
- icon_state = "silver"
+/turf/open/floor/almayer/aicore/no_build{
+ icon_state = "ai_silver";
+ dir = 4
},
/area/almayer/command/airoom)
+"xvO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"xvQ" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/sentencing{
@@ -80573,6 +80592,18 @@
icon_state = "cargo_arrow"
},
/area/almayer/squads/alpha_bravo_shared)
+"xwm" = (
+/obj/structure/sign/safety/security{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/restrictedarea{
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"xwp" = (
/obj/item/storage/box/matches{
pixel_x = -11;
@@ -80603,6 +80634,15 @@
icon_state = "plate"
},
/area/almayer/living/briefing)
+"xwU" = (
+/obj/structure/sign/safety/medical{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"xwX" = (
/turf/open/floor/almayer{
dir = 9;
@@ -80647,14 +80687,6 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/basketball)
-"xxl" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 2"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
"xxm" = (
/obj/structure/bed{
can_buckle = 0
@@ -80756,9 +80788,6 @@
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/carpet,
/area/almayer/living/commandbunks)
-"xys" = (
-/turf/closed/wall/almayer,
-/area/almayer/shipboard/brig/main_office)
"xyt" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/toolbox/mechanical{
@@ -80803,6 +80832,15 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south2)
+"xyN" = (
+/turf/closed/wall/almayer/reinforced,
+/area/almayer/shipboard/brig/execution_storage)
+"xyQ" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silvercorner"
+ },
+/area/almayer/hallways/lower/repair_bay)
"xyY" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/effect/decal/warning_stripes{
@@ -80835,30 +80873,18 @@
"xzB" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_s)
-"xzO" = (
-/obj/structure/closet/secure_closet{
- name = "\improper Execution Firearms"
+"xzI" = (
+/obj/structure/machinery/firealarm{
+ pixel_y = 28
},
-/obj/item/weapon/gun/rifle/m4ra,
-/obj/item/weapon/gun/rifle/m4ra,
-/obj/item/weapon/gun/rifle/m4ra,
-/obj/item/ammo_box/magazine/m4ra,
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 1;
+ icon_state = "green"
},
-/area/almayer/shipboard/brig/execution)
+/area/almayer/hallways/lower/port_midship_hallway)
"xAe" = (
/turf/closed/wall/almayer/research/containment/wall/corner,
/area/almayer/medical/containment/cell)
-"xAj" = (
-/obj/structure/bed/chair/bolted{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"xAt" = (
/obj/structure/bed/chair/comfy/charlie{
dir = 8
@@ -80997,9 +81023,7 @@
/area/almayer/shipboard/brig/cic_hallway)
"xDC" = (
/obj/structure/pipes/standard/simple/hidden/supply/no_boom,
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"xDF" = (
/obj/structure/machinery/autolathe,
@@ -81060,22 +81084,18 @@
"xFt" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_p)
-"xFw" = (
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "silver"
- },
-/area/almayer/hallways/aft_hallway)
"xFP" = (
/turf/open/floor/almayer{
dir = 5;
icon_state = "red"
},
/area/almayer/shipboard/starboard_missiles)
+"xFW" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"xFZ" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/manifold/hidden/supply{
@@ -81093,16 +81113,6 @@
icon_state = "green"
},
/area/almayer/shipboard/brig/cells)
-"xGk" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 10
- },
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
"xGm" = (
/obj/structure/platform_decoration{
dir = 8
@@ -81184,6 +81194,12 @@
/obj/effect/spawner/random/powercell,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_a_p)
+"xHl" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"xHp" = (
/turf/open/floor/almayer{
icon_state = "orange"
@@ -81261,14 +81277,6 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/processing)
-"xIO" = (
-/obj/structure/machinery/power/fusion_engine{
- name = "\improper S-52 fusion reactor 11"
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/engineering/lower/engine_core)
"xIQ" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -81407,6 +81415,18 @@
/obj/structure/largecrate/random/barrel/red,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/upper/u_m_s)
+"xLX" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4;
+ icon_state = "pipe-j2"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"xMf" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -81425,21 +81445,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
-"xMk" = (
-/obj/structure/stairs{
- dir = 8;
- icon_state = "ramptop"
- },
-/obj/effect/projector{
- name = "Almayer_Down3";
- vector_x = 1;
- vector_y = -102
- },
-/obj/structure/machinery/light,
-/turf/open/floor/plating/almayer{
- allow_construction = 0
- },
-/area/almayer/hallways/aft_hallway)
"xMl" = (
/obj/structure/disposalpipe/segment{
dir = 8;
@@ -81574,6 +81579,12 @@
icon_state = "cargo"
},
/area/almayer/hallways/hangar)
+"xNl" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"xNu" = (
/obj/structure/toilet{
dir = 1
@@ -81607,25 +81618,12 @@
icon_state = "plate"
},
/area/almayer/living/auxiliary_officer_office)
-"xNB" = (
-/obj/structure/machinery/light,
-/obj/structure/sign/safety/security{
- pixel_y = -32
- },
-/obj/structure/sign/safety/restrictedarea{
- pixel_x = 15;
- pixel_y = -32
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/starboard_hallway)
-"xNL" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
- pixel_x = -1;
- pixel_y = 2
+"xNM" = (
+/obj/structure/machinery/cm_vending/gear/vehicle_crew,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/vehiclehangar)
+/area/almayer/hallways/lower/vehiclehangar)
"xOs" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -81667,6 +81665,26 @@
dir = 4
},
/area/almayer/medical/containment/cell)
+"xPn" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_y = 1
+ },
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/almayer/hallways/lower/repair_bay)
"xPq" = (
/obj/structure/filingcabinet,
/obj/item/folder/yellow,
@@ -81735,11 +81753,17 @@
dir = 1
},
/area/almayer/medical/containment/cell)
+"xQz" = (
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/port_aft_hallway)
"xQV" = (
/obj/effect/step_trigger/clone_cleaner,
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"xQW" = (
/obj/structure/sign/safety/bathunisex{
@@ -81782,6 +81806,12 @@
icon_state = "silver"
},
/area/almayer/command/computerlab)
+"xRn" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "greencorner"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"xRw" = (
/turf/open/floor/almayer/uscm/directional{
dir = 1
@@ -81807,15 +81837,16 @@
icon_state = "orangefull"
},
/area/almayer/living/briefing)
-"xRU" = (
-/obj/structure/sign/safety/maint{
- pixel_x = -17
+"xSl" = (
+/obj/structure/machinery/firealarm{
+ dir = 4;
+ pixel_x = 24
},
/turf/open/floor/almayer{
- dir = 10;
- icon_state = "green"
+ dir = 4;
+ icon_state = "red"
},
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hallways/upper/stern_hallway)
"xSw" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -81826,6 +81857,12 @@
},
/turf/open/floor/plating,
/area/almayer/squads/charlie)
+"xSx" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"xSz" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/status_display{
@@ -81836,15 +81873,6 @@
icon_state = "silver"
},
/area/almayer/shipboard/brig/cic_hallway)
-"xSI" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/computer/emails{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/repair_bay)
"xSM" = (
/obj/structure/machinery/light{
dir = 8
@@ -81875,18 +81903,6 @@
icon_state = "sterile_green_corner"
},
/area/almayer/medical/containment)
-"xTt" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
-/area/almayer/hallways/stern_hallway)
"xTu" = (
/obj/structure/pipes/vents/scrubber{
dir = 1
@@ -82019,9 +82035,7 @@
pixel_y = 24;
req_one_access_txt = "90;91;92"
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"xVe" = (
/obj/effect/decal/warning_stripes{
@@ -82038,11 +82052,6 @@
"xVk" = (
/turf/open/space,
/area/space/almayer/lifeboat_dock)
-"xVl" = (
-/turf/open/floor/almayer{
- allow_construction = 0
- },
-/area/almayer/shipboard/brig/main_office)
"xVF" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -82072,6 +82081,12 @@
},
/turf/closed/wall/almayer,
/area/almayer/living/tankerbunks)
+"xVY" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/port_midship_hallway)
"xWd" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
@@ -82210,16 +82225,6 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south1)
-"xYS" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/pipes/standard/manifold/hidden/supply,
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"xYZ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -82229,6 +82234,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/upper_engineering)
+"xZf" = (
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "blue"
+ },
+/area/almayer/hallways/upper/aft_hallway)
"xZk" = (
/obj/item/prop/helmetgarb/gunoil{
layer = 4.2;
@@ -82274,6 +82285,22 @@
},
/turf/open/floor/almayer,
/area/almayer/maint/hull/upper/u_f_p)
+"xZM" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_umbilical)
+"xZR" = (
+/obj/structure/sign/safety/distribution_pipes{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
"xZU" = (
/obj/structure/machinery/cryopod{
pixel_y = 6
@@ -82294,6 +82321,18 @@
icon_state = "red"
},
/area/almayer/lifeboat_pumps/south1)
+"yap" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/starboard_fore_hallway)
"yaz" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{
name = "\improper Officer's Study"
@@ -82324,28 +82363,43 @@
/obj/structure/pipes/standard/simple/hidden/supply/no_boom{
dir = 9
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
-"yaZ" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S";
- layer = 3.3
+"yaR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
-/area/almayer/command/airoom)
-"ybf" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 25
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hallways/upper/stern_hallway)
+"yaX" = (
+/obj/structure/machinery/door/poddoor/railing{
+ dir = 2;
+ id = "vehicle_elevator_railing"
+ },
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
},
/turf/open/floor/almayer{
dir = 1;
- icon_state = "blue"
+ icon_state = "cargo_arrow"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
+"yaZ" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S";
+ layer = 3.3
},
-/area/almayer/hallways/aft_hallway)
+/turf/open/floor/almayer/aicore/no_build,
+/area/almayer/command/airoom)
+"ybk" = (
+/turf/closed/wall/almayer,
+/area/almayer/hallways/upper/stern_hallway)
"ybm" = (
/obj/structure/surface/table/almayer,
/obj/item/clothing/head/hardhat{
@@ -82370,16 +82424,14 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/processing)
-"ybU" = (
-/obj/structure/machinery/disposal,
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "red"
+"ybP" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
},
-/area/almayer/shipboard/brig/main_office)
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_umbilical)
"ybZ" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/transmitter{
@@ -82486,6 +82538,19 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north2)
+"ydA" = (
+/obj/structure/stairs{
+ dir = 4
+ },
+/obj/effect/projector{
+ name = "Almayer_Up3";
+ vector_x = -1;
+ vector_y = 102
+ },
+/turf/open/floor/plating/almayer{
+ allow_construction = 0
+ },
+/area/almayer/hallways/lower/port_fore_hallway)
"ydE" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -82500,9 +82565,7 @@
icon_state = "W";
pixel_x = -1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"ydM" = (
/obj/structure/window{
@@ -82535,15 +82598,6 @@
icon_state = "plate"
},
/area/almayer/command/lifeboat)
-"yeu" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 6
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/shipboard/brig/main_office)
"yeH" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
@@ -82580,6 +82634,12 @@
},
/turf/open/floor/wood/ship,
/area/almayer/shipboard/brig/chief_mp_office)
+"yfd" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hallways/lower/vehiclehangar)
"yff" = (
/obj/structure/machinery/cm_vending/clothing/dress{
density = 0;
@@ -82592,6 +82652,13 @@
icon_state = "cargo"
},
/area/almayer/command/cic)
+"yfg" = (
+/obj/structure/pipes/standard/manifold/hidden/supply,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"yfm" = (
/obj/effect/landmark/start/marine/delta,
/obj/effect/landmark/late_join/delta,
@@ -82599,24 +82666,13 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
-"yfv" = (
-/obj/structure/sign/safety/maint{
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
-"yfw" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
+"yfy" = (
+/obj/structure/barricade/handrail{
+ dir = 1;
+ pixel_y = 2
},
-/area/almayer/hallways/starboard_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/port_fore_hallway)
"yfG" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -82642,6 +82698,28 @@
icon_state = "silver"
},
/area/almayer/maint/hull/upper/u_m_p)
+"yfO" = (
+/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
+ name = "\improper Warden's Office";
+ closeOtherId = "brigwarden"
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ dir = 4;
+ id = "Warden Office Shutters";
+ name = "\improper Privacy Shutters"
+ },
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 8
+ },
+/obj/structure/machinery/door/poddoor/almayer/open{
+ dir = 4;
+ id = "courtyard_cells";
+ name = "\improper Courtyard Lockdown Shutter"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/warden_office)
"yfS" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/firedoor/border_only/almayer{
@@ -82658,6 +82736,11 @@
icon_state = "plate"
},
/area/almayer/command/lifeboat)
+"ygp" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_midship_hallway)
"ygv" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -82671,6 +82754,26 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_f_p)
+"ygB" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "green"
+ },
+/area/almayer/hallways/lower/starboard_midship_hallway)
+"ygP" = (
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/structure/surface/table/almayer,
+/obj/item/fuel_cell,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/engineering/lower/engine_core)
"yhg" = (
/obj/structure/machinery/camera/autoname/almayer{
dir = 4;
@@ -82700,6 +82803,15 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/maint/hull/lower/l_m_s)
+"yhV" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 1;
+ name = "Bathroom"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/shipboard/brig/mp_bunks)
"yhZ" = (
/turf/closed/wall/almayer/reinforced,
/area/almayer/maint/hull/lower/p_bow)
@@ -82715,26 +82827,11 @@
icon_state = "plate"
},
/area/almayer/maint/hull/lower/l_m_s)
-"yiq" = (
-/obj/structure/sign/safety/north{
- pixel_x = -17;
- pixel_y = -8
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/hallways/starboard_hallway)
"yit" = (
-/obj/structure/machinery/light{
- dir = 4
- },
/obj/structure/pipes/vents/pump/no_boom{
dir = 1
},
-/turf/open/floor/almayer/no_build{
- icon_state = "ai_floors"
- },
+/turf/open/floor/almayer/aicore/no_build,
/area/almayer/command/airoom)
"yiW" = (
/obj/structure/machinery/cryopod/right{
@@ -82819,6 +82916,18 @@
icon_state = "test_floor4"
},
/area/almayer/living/grunt_rnr)
+"yko" = (
+/obj/vehicle/powerloader,
+/obj/structure/platform{
+ dir = 4
+ },
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/hallways/lower/repair_bay)
"ykv" = (
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
id = "InnerShutter";
@@ -82834,22 +82943,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/engineering/lower)
-"ykP" = (
-/obj/structure/filingcabinet{
- density = 0;
- pixel_x = -8;
- pixel_y = 18
- },
-/obj/structure/filingcabinet{
- density = 0;
- pixel_x = 8;
- pixel_y = 18
- },
-/obj/item/device/taperecorder,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/shipboard/brig/main_office)
"ykY" = (
/obj/structure/machinery/light/small{
dir = 1
@@ -82939,16 +83032,13 @@
icon_state = "test_floor5"
},
/area/almayer/engineering/lower/engine_core)
-"ylJ" = (
-/obj/structure/sign/safety/maint{
+"ylN" = (
+/obj/structure/sign/safety/galley{
pixel_x = 8;
pixel_y = 32
},
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "orangecorner"
- },
-/area/almayer/hallways/stern_hallway)
+/turf/open/floor/almayer,
+/area/almayer/hallways/lower/starboard_aft_hallway)
"ymg" = (
/obj/effect/decal/warning_stripes{
icon_state = "NW-out";
@@ -90320,13 +90410,13 @@ dhd
oog
jNT
fag
-jVP
-feb
-feb
-feb
-feb
-feb
+qCA
feb
+hRu
+hRu
+hRu
+hRu
+hRu
ajZ
aaa
aaa
@@ -90524,12 +90614,12 @@ nPb
fZX
dBS
nSu
-wld
-mtl
-jjm
-wZN
-kgQ
-feb
+rXE
+xyN
+ltO
+tBP
+tfE
+hRu
aag
aaf
ajY
@@ -90728,11 +90818,11 @@ qVF
xdJ
kzr
jqY
-kBh
-jNT
-jNT
-wSK
-feb
+elV
+dJJ
+dJJ
+glP
+hRu
xiV
xiV
ajZ
@@ -90931,11 +91021,11 @@ mtl
mtl
mtl
ewI
-mtl
-xzO
-pNk
-jIH
-mtl
+xyN
+hdQ
+hUU
+cXD
+xyN
igS
xiV
xiV
@@ -91134,11 +91224,11 @@ tul
mNK
gtU
bjk
-mtl
-mtl
-mtl
-mtl
-mtl
+xyN
+xyN
+xyN
+xyN
+xyN
iuf
pnh
xiV
@@ -91724,13 +91814,13 @@ uDg
uDg
gkr
xkc
-vBm
-vBm
-vBm
-vBm
-vBm
-qmC
-vBm
+hvd
+hvd
+hvd
+hvd
+hvd
+mze
+eyD
naB
kry
pHp
@@ -91927,13 +92017,13 @@ uDg
pOp
gkr
cth
-vBm
-rBV
-oPk
-mqo
-vBm
-eRL
-puv
+hvd
+ddj
+wlg
+fuY
+hvd
+cQG
+jXc
naB
pQr
bsp
@@ -92130,13 +92220,13 @@ uDg
lDT
xkc
xyZ
-vBm
-ldu
-wgi
-wgi
-ckS
-eRL
-sDV
+hvd
+vGn
+ehl
+ehl
+uXu
+cQG
+alp
naB
naB
naB
@@ -92332,20 +92422,20 @@ aag
uDg
xkc
gkr
-vBm
-vBm
-sFC
-sFC
-sFC
-vBm
-lOI
-pJv
-jLM
-btn
-cMb
-rbi
-wDp
-xys
+hvd
+hvd
+iRp
+iRp
+iRp
+hvd
+cyc
+vzy
+fqQ
+kHo
+sFu
+hnE
+tTO
+wFs
nkX
iQB
cmv
@@ -92535,20 +92625,20 @@ aag
lrE
xkc
gkr
-vBm
-ykP
-xAj
-xhE
-xhE
-vBm
-hKq
-lwK
-hrO
-xsg
-xsg
-grF
-xVl
-uqy
+hvd
+iUX
+gii
+gIO
+gIO
+hvd
+gYx
+oyC
+bKI
+xhU
+xhU
+jCX
+sEz
+iNh
wdF
wdF
wdF
@@ -92738,20 +92828,20 @@ aag
lrE
gkr
xkc
-vBm
-ykP
-xjG
-ssD
-gcT
-rmv
-eRL
-eRL
-rhl
-gcT
-gcT
-xVl
-gcT
-lxy
+hvd
+iUX
+gJE
+cKJ
+hyV
+keG
+cQG
+cQG
+ugw
+cwC
+cwC
+sEz
+cwC
+uun
oRk
oRk
oRk
@@ -92948,8 +93038,8 @@ lrq
lrq
lrq
lrq
-cxA
-uwS
+uhA
+aaP
tpn
tpn
srT
@@ -93151,8 +93241,8 @@ cAy
uhE
vKB
lrq
-szR
-cZj
+vjB
+gIz
tpn
eVR
cak
@@ -93354,8 +93444,8 @@ nqe
nqe
nqe
tLa
-eRL
-igt
+cQG
+gfd
tpn
rqS
cak
@@ -93557,8 +93647,8 @@ pId
qMD
uqo
lrq
-sYi
-sYE
+nVm
+dRA
tpn
gIU
xIq
@@ -93760,8 +93850,8 @@ nqe
nqe
nqe
mza
-eRL
-wfB
+cQG
+qvE
tpn
tpn
tpn
@@ -93963,13 +94053,13 @@ fxJ
fAr
qmU
lrq
-hZU
-cWs
-fAE
-kHa
-frX
-mHA
-kHa
+dmr
+wLS
+aVm
+cmM
+miy
+iUG
+cmM
snX
oIh
oIh
@@ -94166,13 +94256,13 @@ iwV
iwV
lrq
lrq
-gob
-cWs
-irF
-kHa
-rEQ
-xmX
-eGr
+kXt
+wLS
+eBx
+cmM
+hAf
+cNI
+bbi
wdF
wdF
wdF
@@ -94369,13 +94459,13 @@ bvH
evR
cQv
cQv
-vtD
-rAX
-kHa
-kHa
-lRe
-mvR
-kHa
+rmk
+nuZ
+cmM
+cmM
+pdT
+otp
+cmM
tzd
tzd
sgi
@@ -94572,13 +94662,13 @@ kde
ajj
mZQ
cQv
-vgW
-igt
-swn
-rpF
-tQm
-ond
-swn
+dFl
+tUK
+kTp
+sYl
+fgt
+kCY
+kTp
gHt
oIh
eNR
@@ -94775,13 +94865,13 @@ quj
vgi
rXd
cqJ
-ldu
-igt
-swn
-dfO
-dQv
-doj
-swn
+oJm
+tUK
+kTp
+hUh
+nWS
+xpw
+kTp
neC
mjt
vqc
@@ -94978,13 +95068,13 @@ lEe
pGT
pGT
vkM
-sjc
-xYS
-kHa
-qPO
-wuc
-qPO
-qPO
+ksm
+bxE
+cmM
+oeZ
+uzH
+oeZ
+oeZ
ptq
oRk
eNR
@@ -95181,13 +95271,13 @@ vyH
ajj
rXd
cqJ
-ldu
-igt
-swn
-plI
-dQv
-lNN
-qPO
+oJm
+tUK
+kTp
+uLE
+nWS
+cTy
+oeZ
emp
emp
emp
@@ -95384,13 +95474,13 @@ sBg
uGN
rXd
cQv
-gax
-igt
-swn
-vsM
-dQv
-ebv
-qPO
+mAY
+tUK
+kTp
+hoW
+nWS
+aIY
+oeZ
cFC
oIh
lUm
@@ -95499,13 +95589,13 @@ cmJ
alU
alU
alU
-jAi
-jAi
-jAi
-jAi
-aib
-jAi
-jAi
+pzW
+pzW
+pzW
+pzW
+hNB
+pzW
+pzW
ipB
mVh
sGK
@@ -95587,13 +95677,13 @@ kde
ajj
tuk
cQv
-rzY
-igt
-swn
-skq
-dQv
-hhW
-qPO
+kYU
+tUK
+kTp
+vKF
+nWS
+glG
+oeZ
ehX
mTN
hZJ
@@ -95702,15 +95792,15 @@ aoi
grG
bXY
alU
-xsW
-uBn
-wJw
-bEz
-bzA
-dRw
-bzy
-bzy
-bzy
+xNM
+ikl
+eLp
+dFM
+lEV
+mZP
+sDx
+sDx
+sDx
mVh
sGK
wid
@@ -95790,13 +95880,13 @@ ioV
cQv
tlk
cQv
-cxA
-suc
-qPO
-qPO
-wuc
-qPO
-qPO
+uhA
+bKN
+oeZ
+oeZ
+uzH
+oeZ
+oeZ
mFc
eKa
emp
@@ -95810,12 +95900,12 @@ bQc
pgP
uVV
iBl
-wIC
-smZ
-smZ
-wIC
-tMH
-wIC
+cHk
+rkV
+rkV
+cHk
+yfO
+cHk
pRs
pdp
xiV
@@ -95905,15 +95995,15 @@ aoi
bNk
ecZ
alU
-bNW
-uBn
-fut
-pqQ
-pqQ
-pqQ
-bzA
-rEu
-bzy
+odt
+ikl
+qAy
+mua
+mua
+mua
+lEV
+eQz
+sDx
mVh
fJu
mVh
@@ -95991,11 +96081,11 @@ rdM
gUg
cov
cqJ
-hNl
-tak
-uhW
-uJs
-tsX
+may
+hoK
+mcp
+hzG
+eyD
ngr
cDN
peO
@@ -96013,12 +96103,12 @@ emp
lFJ
emp
emp
-wIC
-puE
-crp
-dco
-dqZ
-wIC
+cHk
+hlI
+ekZ
+kvL
+oix
+cHk
uxb
oDh
pdp
@@ -96108,15 +96198,15 @@ cmJ
alU
alU
alU
-bOe
-nrt
-qyF
-ecR
-uOc
-uOc
-uOc
-bPj
-bzy
+wrr
+kjw
+hBr
+tqQ
+hgp
+hgp
+hgp
+nef
+sDx
mXm
mVh
sGK
@@ -96194,11 +96284,11 @@ vxM
vxM
vxM
vxM
-qlS
-eRL
-eRL
-uJs
-tsX
+tfZ
+cQG
+cQG
+hzG
+eyD
tdy
cDN
oFY
@@ -96216,13 +96306,13 @@ qUz
ksg
oIh
iTl
-wIC
-cBZ
-hMc
-vAG
-jIo
-wIC
-wIC
+cHk
+frt
+vUI
+tgJ
+wVh
+cHk
+cHk
oDh
pdp
xiV
@@ -96302,23 +96392,23 @@ bTS
lxo
qcy
kcp
-kmk
-kmk
-mIJ
-bLt
-bXX
-bKh
-egq
-bKh
-bNp
-fsd
-bKj
-jjs
-jjs
-jjs
-jjs
-jjs
-jYd
+sub
+sub
+tqf
+pHF
+vYd
+ghF
+eSp
+ghF
+aFG
+pPQ
+juS
+mdk
+mdk
+mdk
+mdk
+mdk
+kCd
bSv
bSv
bSv
@@ -96397,11 +96487,11 @@ kGu
iqR
fyp
wJh
-ldu
-eRL
-eRL
-uJs
-diP
+oJm
+cQG
+cQG
+hzG
+asC
tff
cDN
oFY
@@ -96419,13 +96509,13 @@ oDy
wsq
vxK
gwj
-rCU
-jPS
-jPS
-sJm
-dqZ
-rDY
-wIC
+vxh
+csy
+csy
+bWQ
+deH
+szG
+cHk
pdp
kIf
xiV
@@ -96505,23 +96595,23 @@ oQM
aqI
aqI
kcp
-jaK
-jxP
-xNL
-bLu
-bBB
-bBB
-bBB
-bBB
-bNp
-mYY
-nka
-afz
-afz
-afz
-afz
-afz
-iDd
+bOw
+mYt
+jsR
+vPW
+vyB
+vyB
+vyB
+vyB
+aFG
+vFp
+yaX
+sje
+sje
+sje
+sje
+sje
+jhS
qih
bTH
foN
@@ -96600,11 +96690,11 @@ wee
wee
fRS
wJh
-yeu
-sjc
-rVm
-mMZ
-aDM
+iFK
+ksm
+haY
+kaQ
+vNT
oSC
uFq
wsl
@@ -96622,13 +96712,13 @@ mBx
utZ
pyj
jPP
-wIC
-xpo
-xqs
-rWF
-uSB
-lzY
-wIC
+cHk
+wxF
+vJc
+kUg
+ifz
+fyI
+cHk
pdp
ome
xiV
@@ -96708,23 +96798,23 @@ wGX
bFr
ppe
kcp
-bzA
-bKh
-bKh
-hcs
-kCS
-kCS
-kCS
-kCS
-hHJ
-iWL
-bkD
-afz
-afz
-afz
-afz
-afz
-iDd
+lEV
+ghF
+ghF
+jak
+jdC
+jdC
+jdC
+jdC
+wiQ
+dEo
+fGd
+sje
+sje
+sje
+sje
+sje
+jhS
bSv
tjw
bTH
@@ -96803,11 +96893,11 @@ rDQ
rDQ
rDQ
ctT
-mLJ
-bua
-ybU
-vBm
-tsX
+wXz
+aNW
+tvJ
+eyD
+eyD
tsX
tsX
epu
@@ -96828,10 +96918,10 @@ lnh
wIC
rWn
rWn
-wIC
-wIC
-wHM
-wIC
+cHk
+cHk
+gxt
+cHk
dJy
aCA
xiV
@@ -96911,23 +97001,23 @@ rgK
hbu
iYe
bJl
-bKa
-bKa
-bKa
-gCl
-bzA
-bzA
-bzA
-bzA
-bNp
-pqQ
-nka
-afz
-afz
-afC
-afz
-afz
-bRx
+yfd
+yfd
+yfd
+kgS
+lEV
+lEV
+lEV
+lEV
+aFG
+mua
+yaX
+sje
+sje
+oiX
+sje
+sje
+rqQ
bSv
ifb
bTH
@@ -97006,10 +97096,10 @@ sbP
sbP
sbP
wJh
-ekF
-uif
-vBm
-vBm
+oWK
+jwr
+eyD
+eyD
tHr
mqg
udR
@@ -97032,9 +97122,9 @@ dgx
fKi
vxG
wIC
-xgI
-dBQ
-wIC
+whQ
+bHu
+cHk
oLf
hIG
xiV
@@ -97114,23 +97204,23 @@ bTS
bTS
niR
kcp
-bzA
-bKh
-bKh
-bLt
-bzA
-bKh
-bKh
-bKh
-bNp
-pqQ
-fti
-afz
-afz
-afz
-afz
-afz
-iDd
+lEV
+ghF
+ghF
+pHF
+lEV
+ghF
+ghF
+ghF
+aFG
+mua
+hoc
+sje
+sje
+sje
+sje
+sje
+jhS
bSv
aIX
aIX
@@ -97209,9 +97299,9 @@ ncf
kjk
qxr
wJh
-ekF
-ugT
-qqC
+oWK
+rPF
+pfd
ceZ
jnD
hUW
@@ -97235,9 +97325,9 @@ jPS
jPS
xrt
wIC
-qqV
-nNg
-wIC
+aDt
+jTU
+cHk
oDh
xas
xiV
@@ -97317,23 +97407,23 @@ sXE
kcp
kcp
kcp
-bzA
-bBB
-bBB
-bLt
-bzA
-bKh
-bBB
-bBB
-bNp
-xgx
-nka
-afz
-afz
-afz
-afz
-afz
-iDd
+lEV
+vyB
+vyB
+pHF
+lEV
+ghF
+vyB
+vyB
+aFG
+pJq
+yaX
+sje
+sje
+sje
+sje
+sje
+jhS
bSv
cop
cop
@@ -97412,9 +97502,9 @@ vxM
vxM
vxM
gaJ
-hmG
-xys
-vBm
+vMJ
+qFX
+cAR
vGA
hUW
dHd
@@ -97438,9 +97528,9 @@ qFi
vAG
hsj
wIC
-wIC
-wIC
-wIC
+cHk
+cHk
+cHk
oDh
nEc
xiV
@@ -97520,23 +97610,23 @@ gZK
bTS
lyX
kcp
-bAr
-bKh
-bBB
-bLt
-bzA
-bKh
-bBB
-bKh
-bNp
-fsd
-bKj
-eGg
-eGg
-eGg
-eGg
-eGg
-jYd
+rMj
+ghF
+vyB
+pHF
+lEV
+ghF
+vyB
+ghF
+aFG
+pPQ
+juS
+jjl
+jjl
+jjl
+jjl
+jjl
+kCd
bSv
kBY
bTn
@@ -97612,12 +97702,12 @@ xkc
ode
xkc
gNg
-vBm
-tJM
-viH
-lCp
-ttE
-vBm
+cAR
+dRj
+yhV
+jvc
+jEV
+cAR
iuE
uwN
vka
@@ -97723,23 +97813,23 @@ wdf
bTS
kcp
kcp
-bzy
-bKh
-bBB
-bLt
-bzA
-bKh
-bBB
-bKh
-bzy
-tBz
-fBD
-ntt
-jXk
-hdh
-hdh
-hdh
-bRD
+sDx
+ghF
+vyB
+pHF
+lEV
+ghF
+vyB
+ghF
+sDx
+prl
+gNy
+fbU
+vbZ
+qEl
+qEl
+qEl
+vWs
bSv
bSv
bSv
@@ -97815,12 +97905,12 @@ cYo
ode
gkr
gkr
-vBm
-vBm
-vBm
-vfw
-occ
-vBm
+cAR
+cAR
+cAR
+pKU
+vOu
+cAR
udK
mwA
lnt
@@ -97926,24 +98016,24 @@ utK
rKA
kcp
kcp
-bzy
-bXs
-bBB
-bLt
-bzA
-bKh
-bBB
-bXZ
-bzy
-bAg
-bBB
-qJN
-jjZ
-bzH
-bBB
-bzA
-cBl
-bRU
+sDx
+hIF
+vyB
+pHF
+lEV
+ghF
+vyB
+kEW
+sDx
+xHl
+vyB
+mQd
+akn
+vTM
+vyB
+lEV
+meE
+gGw
mVh
iBu
sGK
@@ -98018,12 +98108,12 @@ akC
akC
uvp
gkr
-vBm
-mvE
-tak
-lCp
-iLo
-vBm
+cAR
+pbm
+qjK
+jvc
+dGT
+cAR
bmz
wSR
mMV
@@ -98110,16 +98200,16 @@ aaa
aaa
aaa
aaa
-aPy
-aPY
-aQv
-aQv
-aQv
-aQv
-aQv
-aQv
-aQv
-aQv
+fwK
+cZB
+uaG
+uaG
+uaG
+uaG
+uaG
+uaG
+uaG
+uaG
bcm
bcm
kcp
@@ -98129,34 +98219,34 @@ kcp
kcp
kcp
kcp
-bzy
-bZL
-cat
-caC
-caD
-bZL
-cat
-bZL
-bzy
-bzy
-bzy
-bzy
-bzy
-bzy
-bzy
-bzy
-bzy
-bzy
-bJh
-bJh
-cmH
-bJh
-bJh
-bJh
-bJh
-bJh
-ces
-bSg
+sDx
+lQB
+qax
+jTH
+gPU
+lQB
+qax
+lQB
+sDx
+sDx
+sDx
+sDx
+sDx
+sDx
+sDx
+sDx
+sDx
+sDx
+rgt
+rgt
+sYr
+rgt
+rgt
+rgt
+rgt
+rgt
+ctw
+hAh
aaa
aaa
aaa
@@ -98221,12 +98311,12 @@ bzz
akC
pzc
gkr
-vBm
-qkn
-eRL
-lwK
-vlN
-vBm
+cAR
+pQI
+gym
+gSz
+cNJ
+cAR
pZS
pEB
jUY
@@ -98313,16 +98403,16 @@ aaa
aaa
aaa
aaa
-aPy
-dhZ
-aQv
-bbn
-bmu
-bot
-bpU
-rFB
-bmu
-aQv
+fwK
+elY
+uaG
+vjk
+lxd
+dPk
+nBV
+dyq
+lxd
+uaG
lYN
byr
aXh
@@ -98350,16 +98440,16 @@ aXj
qUh
xyw
ccG
-bJh
-cax
-cet
-cfx
-cgG
-cex
-dfc
-bJh
-bJO
-bSg
+rgt
+gMS
+vXF
+hsc
+epk
+lwG
+uJb
+rgt
+wRf
+hAh
aaa
aaa
aaa
@@ -98424,12 +98514,12 @@ aHZ
akC
lDT
gkr
-vBm
-rJN
-nJz
-wgi
-rEO
-vBm
+cAR
+jgR
+iAg
+vaS
+bsF
+cAR
vkR
wsD
jUY
@@ -98516,16 +98606,16 @@ aaa
aaa
aaa
aaa
-bhh
-aPZ
-bhh
-bjL
-bmw
-kIm
-bmw
-brO
-bmx
-bvT
+okd
+lql
+okd
+urk
+fmZ
+ePq
+fmZ
+cqd
+jhc
+eml
btO
aYt
bzQ
@@ -98553,16 +98643,16 @@ bVM
bVM
bwn
bVM
-cdb
-cdw
-bGp
-cfy
-rBk
-cfy
-cim
-cjl
-bRz
-cjm
+oTH
+kUA
+gRJ
+mqB
+vjG
+mqB
+oQw
+avp
+oAa
+efk
aaa
aaa
aaa
@@ -98627,12 +98717,12 @@ btv
akC
lCm
gkr
-vBm
-vBm
-knO
-wgi
-ugT
-vBm
+cAR
+cAR
+eLX
+vaS
+nCD
+cAR
kfE
wsD
jUY
@@ -98719,16 +98809,16 @@ aaa
aaa
aaa
aaa
-bhh
-aPZ
-bhh
-bjM
-bmx
-eBC
-aZB
-qld
-kyZ
-bvT
+okd
+lql
+okd
+nDb
+jhc
+ccL
+rDf
+xZM
+mnc
+eml
btO
aYt
aYt
@@ -98756,16 +98846,16 @@ aYt
aYt
aYt
btO
-cdc
-jdk
-mLu
-erS
-pZo
-cdx
-cin
-cjm
-bRA
-cjm
+tpG
+wdQ
+ybP
+dhQ
+dcx
+mLg
+wAK
+efk
+bTz
+efk
aaa
aaa
aaa
@@ -98831,11 +98921,11 @@ akC
jdn
lgk
hMM
-vBm
-rRr
-dFU
-fnC
-vBm
+cAR
+jlE
+cXV
+kqd
+cAR
xDn
pEB
jUY
@@ -98922,16 +99012,16 @@ aaa
aaa
aaa
aaa
-bhh
-aPZ
-bhh
-bjM
-bmx
-bmx
-bmx
-brP
-qTZ
-bvT
+okd
+lql
+okd
+nDb
+jhc
+jhc
+jhc
+vOV
+eAm
+eml
btO
aYu
aYu
@@ -98959,16 +99049,16 @@ aYu
aYu
aYu
btO
-cdc
-nEs
-cev
-cdx
-cdx
-cdx
-cin
-cjm
-bRA
-cjm
+tpG
+hbA
+uky
+mLg
+mLg
+mLg
+wAK
+efk
+bTz
+efk
aaa
aaa
aaa
@@ -99034,11 +99124,11 @@ akC
pek
rir
pek
-vBm
-hqU
-gcT
-oPp
-vBm
+cAR
+gdG
+kxP
+mea
+cAR
nNv
pEB
jUY
@@ -99125,16 +99215,16 @@ aaa
aaa
aaa
aaa
-bhh
-aPZ
-bhh
-bjN
-bmy
-pAR
-hHR
-brQ
-btp
-bvV
+okd
+lql
+okd
+bRt
+oGm
+hPD
+aIy
+ekR
+gWm
+mpV
bvf
bdL
bvf
@@ -99162,16 +99252,16 @@ bvf
bvf
bdL
bvf
-cdd
-cdy
-cew
-cfz
-sSY
-kZA
-cio
-cjm
-bRA
-cjm
+srh
+gKo
+fsf
+fuU
+cnI
+qfq
+vjT
+efk
+bTz
+efk
aaa
aaa
aaa
@@ -99237,11 +99327,11 @@ akC
ibP
loE
cmr
-vBm
-vBm
-vBm
-vBm
-vBm
+cAR
+cAR
+cAR
+cAR
+cAR
xSz
pEB
jUY
@@ -99328,16 +99418,16 @@ aaa
aaa
aaa
aaa
-aPy
-hhe
-aQv
-bjO
-bmu
-bou
-bpW
-rFB
-bmu
-aQv
+fwK
+jru
+uaG
+vaM
+lxd
+cif
+jaz
+dyq
+lxd
+uaG
vCg
bHB
xyw
@@ -99365,16 +99455,16 @@ xyw
xyw
bHB
osx
-bJh
-cdz
-aTq
-cfA
-cgH
-cex
-dfc
-bJh
-tdK
-bSg
+rgt
+qTu
+wlD
+gTk
+qSI
+lwG
+uJb
+rgt
+oCa
+hAh
aaa
aaa
aaa
@@ -99531,16 +99621,16 @@ aaa
aaa
aaa
aaa
-aPy
-aPY
-aQv
-aQv
-aQv
-aQv
-aQv
-aQv
-vak
-ovP
+fwK
+cZB
+uaG
+uaG
+uaG
+uaG
+uaG
+uaG
+hte
+lma
xyw
bHB
xyw
@@ -99576,8 +99666,8 @@ hOV
hOV
hOV
hOV
-cjK
-bSg
+vVZ
+hAh
aaa
aaa
aaa
@@ -101661,8 +101751,8 @@ aaa
aaa
aaa
aad
-nTT
-nTT
+cZe
+cZe
cZe
vfS
cmr
@@ -102173,13 +102263,13 @@ sGw
dvD
xzB
eWs
-aas
-alI
-agw
-anB
-ajp
-vdJ
-bJo
+kRU
+dON
+oJj
+vLp
+oYA
+gWt
+jHt
amo
bHB
aZP
@@ -102376,13 +102466,13 @@ sGw
dvD
xzB
eWs
-aga
-alQ
-amR
-adg
-cdF
-sgw
-bJo
+irJ
+bKk
+kil
+vnY
+fCG
+gYg
+jHt
gRP
bHB
aZQ
@@ -102579,13 +102669,13 @@ sGw
fzx
dWJ
eWs
-aav
-amj
-agG
-anD
-adg
-ajB
-bJo
+yko
+qlL
+oxz
+gnB
+vnY
+mRH
+jHt
xjK
bHB
btO
@@ -102782,13 +102872,13 @@ sGw
dvD
nsd
eWs
-aay
-adg
-amU
-anK
-ccJ
-ajL
-bJo
+kqm
+vnY
+wjL
+oGF
+gKK
+dBR
+jHt
bwl
bHB
xyw
@@ -102985,13 +103075,13 @@ sGw
dvD
kFU
eWs
-aaD
-ahB
-ahB
-anL
-ajz
-aBC
-cfM
+oUz
+mqZ
+mqZ
+lVZ
+ctQ
+wer
+pKW
wqh
bHB
vpW
@@ -103188,13 +103278,13 @@ sGw
xzB
xer
eWs
-aaK
-cfN
-afe
-adg
-ajz
-aBC
-cfM
+uES
+xrT
+gYj
+vnY
+ctQ
+wer
+pKW
wqh
bHB
xyw
@@ -103391,13 +103481,13 @@ sGw
nkj
dvD
eWs
-ceQ
-ceU
-aff
-adg
-ajz
-aBC
-cfM
+rVt
+tVZ
+bkS
+vnY
+ctQ
+wer
+pKW
wqh
bHB
ezQ
@@ -103594,13 +103684,13 @@ sGw
vEI
dvD
eWs
-ceR
-ceU
-aff
-agy
-ajx
-tqg
-bJo
+nCe
+tVZ
+bkS
+bfO
+tWL
+aLx
+jHt
mVE
rgy
baN
@@ -103797,13 +103887,13 @@ sGw
oGf
dvD
eWs
-abd
-adk
-afu
-anT
-eLz
-uFL
-ssa
+jkY
+ktI
+xPn
+xyQ
+ixT
+hBG
+ngK
sqa
hBF
hCt
@@ -104000,13 +104090,13 @@ sGw
fzT
dvD
eWs
-uZQ
-uZQ
-bJo
-aoH
-aoF
-aBC
-cfM
+qmh
+qmh
+jHt
+wSQ
+rOv
+wer
+pKW
wqh
bHB
xyw
@@ -104203,13 +104293,13 @@ sGw
iPf
klT
eWs
-cdE
-xSI
-uZQ
-aoH
-aoF
-aBC
-cfM
+vHp
+gJp
+qmh
+wSQ
+rOv
+wer
+pKW
wqh
bHB
vpW
@@ -104406,13 +104496,13 @@ sGw
cqp
xzB
smH
-adg
-amp
-uZQ
-aoH
-gds
-aky
-bJo
+vnY
+asE
+qmh
+wSQ
+vop
+tgy
+jHt
vPM
bHB
xyw
@@ -104609,13 +104699,13 @@ sGw
jOq
xzB
eWs
-hSL
-agn
-afx
-agX
-ajy
-vwP
-bJo
+nso
+jdZ
+pqM
+bZS
+rlD
+uUf
+jHt
kCm
bHB
btO
@@ -105948,9 +106038,9 @@ awY
kOB
awZ
aiX
-jnw
-aBq
-pRL
+opN
+bDi
+vIr
awF
aEM
aGV
@@ -106151,9 +106241,9 @@ pXx
jrm
evg
aiX
-asj
-aAW
-aCl
+dCb
+dDc
+rdo
awF
aFg
aGY
@@ -106354,9 +106444,9 @@ wWC
auZ
aiX
aiX
-asl
-amO
-aGO
+mJp
+bNT
+cbK
awF
hRk
aGY
@@ -106557,9 +106647,9 @@ pQV
apq
ana
aiX
-asp
-amO
-avj
+glc
+bNT
+rmB
awF
xTL
lmA
@@ -106760,9 +106850,9 @@ xQg
wWC
szO
aiX
-atU
-amO
-qLj
+nLM
+bNT
+iPU
awF
awF
aEW
@@ -106963,10 +107053,10 @@ yjM
qbO
aqw
hnI
-bYe
-amO
-wZM
-aPm
+kGS
+bNT
+gFN
+bMi
awF
nvG
vGI
@@ -107166,10 +107256,10 @@ aqy
nBE
pOD
bZa
-ahM
-aEf
-wZM
-ejp
+nIF
+duR
+gFN
+mqd
awF
aHn
szU
@@ -107369,9 +107459,9 @@ aiX
aiX
aiX
aiX
-atV
-amO
-oXd
+eFI
+bNT
+sQu
tsr
tsr
tsr
@@ -107572,9 +107662,9 @@ aiX
aKG
amb
aiX
-ayT
-amO
-avj
+eWN
+bNT
+rmB
tsr
sOL
jIC
@@ -107775,9 +107865,9 @@ aqz
aKH
and
aiX
-lzj
-amO
-bYe
+umD
+bNT
+kGS
fyT
xIV
xIV
@@ -107978,9 +108068,9 @@ aiX
aiX
aiX
aiX
-ukh
-amO
-nxK
+cwi
+bNT
+fBA
tsr
iPN
dbX
@@ -108181,9 +108271,9 @@ aqz
mBe
atT
aiX
-ayU
-amO
-avm
+fXf
+bNT
+hCF
tsr
tsr
vOY
@@ -108384,9 +108474,9 @@ aiX
asf
atT
aiX
-mQH
-amT
-ioX
+cKW
+mqR
+xZf
lIj
tBY
gkE
@@ -108473,9 +108563,9 @@ wfE
wfE
wfE
wfE
-bsk
-sxu
-cBI
+yap
+bqg
+eIO
bkA
eFG
bej
@@ -108497,9 +108587,9 @@ bnS
fdZ
tzx
gfW
-bLT
-cbQ
-ccq
+rZt
+qyP
+tuC
lFp
lGg
aId
@@ -108587,9 +108677,9 @@ aiX
aiX
aiX
aiX
-nVe
-akV
-bRs
+dRo
+fsu
+enz
lIj
lIj
dvZ
@@ -108676,9 +108766,9 @@ bqm
bsD
btr
wfE
-owH
-stY
-owH
+kLE
+lIu
+kLE
bkA
bcC
bej
@@ -108700,9 +108790,9 @@ ixj
fdZ
bET
gfW
-bGT
-bHH
-bGT
+kSA
+tpB
+kSA
lFp
xDF
eRS
@@ -108779,31 +108869,31 @@ awW
awW
fSm
hiy
-apl
-bbL
-bbL
-kij
-bbL
-bYe
-bYe
-yfv
-bbL
-aWl
-bbL
-bbL
-bax
-bbL
-bbL
-aWl
-afv
-yfv
-bbL
-bbL
-bbL
-bbL
-kij
-bbL
-xRU
+ddp
+fCP
+fCP
+stk
+fCP
+kGS
+kGS
+sVA
+fCP
+vUO
+fCP
+fCP
+wzL
+fCP
+fCP
+vUO
+pwd
+sVA
+fCP
+fCP
+fCP
+fCP
+stk
+fCP
+uVg
pEY
jsP
baw
@@ -108879,9 +108969,9 @@ wFR
wFR
xbk
aWw
-bys
-bxd
-vgC
+cJK
+oGL
+hOu
bkA
eUn
bcD
@@ -108903,9 +108993,9 @@ nTo
bqN
bwR
gfW
-bUe
-cbR
-ccr
+oJL
+jMa
+cVt
sHm
ddM
hZe
@@ -108982,31 +109072,31 @@ ajf
ajf
oAO
pIZ
-aod
-qgG
-amC
-amC
-amC
-fXB
-amC
-amC
-hyc
-all
-all
-amC
-bYh
-amC
-fXB
-fXB
-fBL
-bYc
-bYc
-suV
-bYc
-bYc
-bYc
-qgG
-dqN
+qwf
+jRm
+gDQ
+gDQ
+gDQ
+rUN
+gDQ
+gDQ
+dFd
+rDm
+rDm
+gDQ
+saT
+gDQ
+rUN
+rUN
+bxt
+tPz
+tPz
+tiZ
+tPz
+tPz
+tPz
+jRm
+rHn
tFW
dGC
aZz
@@ -109082,9 +109172,9 @@ esM
uUi
xbk
aWw
-aNO
-sLE
-qLo
+gtD
+uRD
+wru
bkA
nvM
bgG
@@ -109106,10 +109196,10 @@ gfW
uFo
omo
gfW
-iRx
-iEb
-bHa
-apm
+eWx
+lLO
+juo
+otq
gJO
pwG
aId
@@ -109185,31 +109275,31 @@ awW
awW
aSJ
isI
-dtM
-aii
-mce
-avn
-mTb
-avn
-avn
-gyy
-avn
-avn
-avn
-avn
-mRl
-avn
-gyy
-avn
-avn
-avn
-avn
-avn
-mTb
-avn
-nFr
-aii
-ajC
+dgP
+jao
+uIa
+qxK
+rYG
+qxK
+qxK
+iRi
+qxK
+qxK
+qxK
+qxK
+xcY
+qxK
+iRi
+qxK
+qxK
+qxK
+qxK
+qxK
+rYG
+qxK
+bTD
+jao
+uQi
dCD
aXe
baw
@@ -109285,9 +109375,9 @@ wFR
soA
xbk
wfE
-kEb
-sLE
-aLG
+xos
+uRD
+qPk
bCd
iey
baf
@@ -109309,10 +109399,10 @@ bPk
bsj
byb
bCd
-buH
-iEb
-buH
-app
+knm
+lLO
+knm
+yfy
ruL
qUZ
aId
@@ -109388,9 +109478,9 @@ njn
njn
njn
njn
-dtM
-aii
-ajC
+dgP
+jao
+uQi
aoe
aoe
aoe
@@ -109410,9 +109500,9 @@ aoe
aoe
aoe
aoe
-aEI
-aii
-aik
+maF
+jao
+mOw
nIN
nIN
nIN
@@ -109488,9 +109578,9 @@ qtv
xFZ
btx
naV
-bxk
-aYI
-aLG
+pij
+kJh
+qPk
bCd
tmg
qjN
@@ -109512,10 +109602,10 @@ qjN
tzP
wYK
bCd
-buH
-iEb
-buH
-app
+knm
+lLO
+knm
+yfy
ruL
gsd
aId
@@ -109591,9 +109681,9 @@ deA
olC
ujf
njn
-mOL
-aii
-ajC
+xky
+jao
+uQi
aoe
aoh
jHQ
@@ -109613,9 +109703,9 @@ cnV
isN
cnZ
aoe
-dtM
-aii
-ajC
+dgP
+jao
+uQi
nIN
cHn
cHn
@@ -109691,9 +109781,9 @@ esM
jpt
xbk
aWw
-aLG
-aZi
-cOM
+qPk
+hKe
+uJM
baZ
bep
qjN
@@ -109715,10 +109805,10 @@ qjN
qjN
imo
baZ
-oLv
-iEb
-buH
-app
+sbE
+lLO
+knm
+yfy
ruL
xPq
aId
@@ -109794,9 +109884,9 @@ tey
cGR
jsA
tQA
-bYe
-akU
-ajC
+kGS
+lOn
+uQi
aoe
vbS
arb
@@ -109816,9 +109906,9 @@ cnW
aEi
coa
aoe
-ahr
-akU
-bYe
+tWf
+lOn
+kGS
aZv
gNo
xzh
@@ -109894,9 +109984,9 @@ nEF
tXi
pcE
aWw
-aLG
-aZi
-aLG
+qPk
+hKe
+qPk
hqW
qjN
qjN
@@ -109918,10 +110008,10 @@ hDX
qjN
qjN
jpp
-buH
-iEb
-buH
-eDG
+knm
+lLO
+knm
+hnP
lFp
xlO
aId
@@ -109997,9 +110087,9 @@ gxm
gxm
gxm
gxm
-ahr
-akU
-ajC
+tWf
+lOn
+uQi
aoe
qQc
fXg
@@ -110019,9 +110109,9 @@ jBy
aEi
fFh
aoe
-dtM
-akU
-ajC
+dgP
+lOn
+uQi
gxm
gxm
gxm
@@ -110097,9 +110187,9 @@ ljf
maL
uKe
aWw
-aLG
-avX
-tzf
+qPk
+ckh
+gyn
vcq
qPS
qPS
@@ -110121,10 +110211,10 @@ iaF
bqL
bqL
ocf
-bFu
-mKY
-hvp
-mWw
+wwE
+sAD
+cIO
+tAb
vpe
dxT
olN
@@ -110192,17 +110282,17 @@ sqP
tVs
tVs
gxm
-aax
-aax
-aax
+tPB
+tPB
+tPB
dkO
aps
aps
aps
gxm
-vIm
-aii
-ajC
+xtO
+jao
+uQi
aoe
vbS
koB
@@ -110222,17 +110312,17 @@ aoe
hFF
aoe
aoe
-dtM
-aii
-ajC
+dgP
+jao
+uQi
gxm
aiJ
aiJ
aiJ
qYr
-atj
-atj
-atj
+cJV
+cJV
+cJV
gxm
ear
aGm
@@ -110300,9 +110390,9 @@ wDr
wDr
wDr
wDr
-aLG
-aZi
-cOM
+qPk
+hKe
+uJM
baZ
eyQ
qjN
@@ -110324,9 +110414,9 @@ qjN
qjN
xtM
baZ
-oLv
-hop
-vMx
+sbE
+jZe
+cbL
wDr
wDr
wDr
@@ -110395,17 +110485,17 @@ vdT
jsA
jsA
gxm
-aax
-aax
-aax
+tPB
+tPB
+tPB
vQe
aps
aps
aps
gxm
-ahq
-akU
-ajC
+hGo
+lOn
+uQi
aoe
aop
koB
@@ -110425,17 +110515,17 @@ uRt
aQz
aRJ
ajl
-dtM
-akU
-ajC
+dgP
+lOn
+uQi
gxm
aiJ
aiJ
aiJ
str
-atj
-atj
-atj
+cJV
+cJV
+cJV
gxm
aGm
xzh
@@ -110498,14 +110588,14 @@ wDr
aeL
aeL
aeL
-aqM
-arO
-arO
-arO
+oLj
+wNG
+wNG
+wNG
wDr
-beB
-byI
-beB
+qZT
+pSF
+eZC
bCd
mlH
bqR
@@ -110527,14 +110617,14 @@ cle
bCe
sdO
bCd
-bJz
-rrV
-bJz
+hBW
+dxJ
+rdT
wDr
-aue
-aue
-aue
-txi
+mQx
+mQx
+mQx
+jsa
azy
azy
azy
@@ -110598,17 +110688,17 @@ lBB
cGR
mOR
gxm
-acV
-acV
-acV
+gHX
+gHX
+gHX
vQe
aps
aps
aps
gxm
-dtM
-nmx
-cpw
+dgP
+hBy
+dlT
hSI
pMp
gzK
@@ -110628,17 +110718,17 @@ akw
aQz
aRK
ajl
-aDk
-akU
-ajC
+kUs
+lOn
+uQi
gxm
aiJ
aiJ
aiJ
str
-atl
-atl
-atl
+oAY
+oAY
+oAY
gxm
rTe
xzh
@@ -110701,14 +110791,14 @@ wDr
aeL
aeL
aeL
-kHj
-arO
-arO
-arO
+uZm
+wNG
+wNG
+wNG
wDr
-aLG
-aZi
-aLG
+qPk
+hKe
+qPk
bCd
bmn
knH
@@ -110730,14 +110820,14 @@ kan
iXW
iLs
bCd
-buH
-hop
-buH
+knm
+jZe
+knm
wDr
-aue
-aue
-aue
-tGO
+mQx
+mQx
+mQx
+guK
azy
azy
azy
@@ -110801,17 +110891,17 @@ cGR
fwP
mOR
gxm
-adb
-adb
-adb
+tpj
+tpj
+tpj
gxm
asm
asm
asm
gxm
-dtM
-ajt
-pvt
+dgP
+mxg
+mnV
aoe
pjF
wUd
@@ -110831,17 +110921,17 @@ akw
fOL
aRS
ajl
-ahq
-aii
-ajC
+hGo
+jao
+uQi
gxm
alW
alW
alW
gxm
-atI
-atI
-atI
+nVA
+nVA
+nVA
gxm
aGm
ear
@@ -110904,14 +110994,14 @@ wDr
aeL
aeL
aeL
-kHj
-nLg
-nLg
-nLg
+uZm
+kaq
+kaq
+kaq
wDr
-aLG
-aZi
-bad
+qPk
+hKe
+qqf
kan
kan
kan
@@ -110933,14 +111023,14 @@ kan
kan
kan
kan
-bGe
-bHL
-buH
+tzw
+sPY
+knm
wDr
-auk
-auk
-auk
-tGO
+wQu
+wQu
+wQu
+guK
azy
azy
azy
@@ -111004,17 +111094,17 @@ njn
njn
njn
gxm
-adb
-adb
-adb
+tpj
+tpj
+tpj
gxm
asm
asm
asm
gxm
-dtM
-akU
-wgd
+dgP
+lOn
+tQO
sqf
sqf
sqf
@@ -111034,17 +111124,17 @@ upM
akw
alD
vEx
-bYe
-akU
-ajC
+kGS
+lOn
+uQi
gxm
alW
alW
alW
gxm
-atI
-atI
-atI
+nVA
+nVA
+nVA
gxm
nIN
nIN
@@ -111108,13 +111198,13 @@ aiR
aiR
aiR
wDr
-xpI
-xpI
-xpI
+hwH
+hwH
+hwH
wDr
-aLG
-aZi
-aLG
+qPk
+hKe
+qPk
kan
qWS
oDJ
@@ -111136,13 +111226,13 @@ kan
psO
gjK
kan
-buH
-bHL
-buH
+knm
+sPY
+knm
wDr
-aul
-aul
-aul
+ydA
+ydA
+ydA
wDr
azD
azD
@@ -111207,17 +111297,17 @@ rWz
rWz
tWM
gxm
-adb
-adb
-adb
+tpj
+tpj
+tpj
gxm
asm
asm
asm
gxm
-dtM
-akU
-ajC
+dgP
+lOn
+uQi
sqf
anp
wjz
@@ -111226,7 +111316,7 @@ jZY
jZY
sqf
wpu
-cGp
+okO
ajl
ajl
ajl
@@ -111237,17 +111327,17 @@ ajl
onQ
alD
ajl
-hon
-akU
-ajC
+bNI
+lOn
+uQi
gxm
alW
alW
alW
gxm
-atI
-atI
-atI
+nVA
+nVA
+nVA
gxm
rgL
rgL
@@ -111311,13 +111401,13 @@ aiR
aiR
aiR
wDr
-xpI
-xpI
-xpI
+hwH
+hwH
+hwH
wDr
-aLG
-aZi
-aLG
+qPk
+hKe
+qPk
kan
kAp
dYU
@@ -111339,13 +111429,13 @@ wzZ
tdI
vbV
kan
-buH
-hop
-buH
+knm
+jZe
+knm
wDr
-aul
-aul
-aul
+ydA
+ydA
+ydA
wDr
azD
azD
@@ -111410,17 +111500,17 @@ rWz
rWz
rWz
gxm
-vKF
-adb
-adb
+lbc
+tpj
+tpj
gxm
asm
asm
asm
gxm
-dtM
-aii
-ajC
+dgP
+jao
+uQi
sqf
sOZ
oNJ
@@ -111440,17 +111530,17 @@ ajl
aCp
alD
ajl
-wqA
-aii
-ajC
+kiq
+jao
+uQi
gxm
alW
alW
alW
gxm
-atI
-atI
-xMk
+nVA
+nVA
+wZk
gxm
rgL
rgL
@@ -111514,13 +111604,13 @@ aiR
aiR
aiR
wDr
-xpI
-xpI
-xpI
+hwH
+hwH
+hwH
wDr
-bxD
-byI
-beB
+iGi
+pSF
+eZC
bst
bst
bst
@@ -111542,13 +111632,13 @@ biA
biA
biA
biA
-bJz
-bHT
-koc
+hBW
+ltv
+uYM
wDr
-aul
-aul
-aul
+ydA
+ydA
+ydA
wDr
azD
azD
@@ -111613,17 +111703,17 @@ rWz
rWz
rWz
gxm
-adb
-adb
-adb
+tpj
+tpj
+tpj
gxm
asm
asm
asm
gxm
-dtM
-ajt
-aik
+dgP
+mxg
+mOw
sqf
anq
awn
@@ -111643,17 +111733,17 @@ fQu
akx
alD
gWG
-dtM
-aii
-ajC
+dgP
+jao
+uQi
gxm
alW
alW
alW
gxm
-atI
-atI
-atI
+nVA
+nVA
+nVA
gxm
rgL
rgL
@@ -111717,13 +111807,13 @@ aiR
aiR
aiR
wDr
-xpI
-xpI
-vgF
+hwH
+hwH
+srR
wDr
-jgU
-aZi
-aLG
+cvg
+hKe
+qPk
bst
bui
bvz
@@ -111745,13 +111835,13 @@ bsQ
bmj
caS
biA
-buH
-bHL
-wWQ
+knm
+sPY
+jxu
wDr
-aun
-aul
-aul
+oVk
+ydA
+ydA
wDr
azD
azD
@@ -111816,17 +111906,17 @@ rWz
rWz
rWz
gxm
-adb
-adb
-adb
+tpj
+tpj
+tpj
gxm
asm
asm
asm
gxm
-dtM
-aii
-ajC
+dgP
+jao
+uQi
sqf
anr
awn
@@ -111846,17 +111936,17 @@ fQu
akx
alD
gWG
-dtM
-aii
-ajC
+dgP
+jao
+uQi
gxm
alW
alW
alW
gxm
-atI
-atI
-atI
+nVA
+nVA
+nVA
gxm
rgL
rgL
@@ -111920,13 +112010,13 @@ aiR
aiR
aiR
wDr
-xpI
-xpI
-xpI
+hwH
+hwH
+hwH
wDr
-aLG
-aZi
-aLG
+qPk
+hKe
+qPk
bst
bcR
bev
@@ -111948,13 +112038,13 @@ bCl
bsz
caT
biA
-buH
-bHL
-buH
+knm
+sPY
+knm
wDr
-aul
-aul
-aul
+ydA
+ydA
+ydA
wDr
azD
azD
@@ -112019,17 +112109,17 @@ rWz
rWz
rWz
gxm
-adb
-adb
-adb
+tpj
+tpj
+tpj
gxm
asm
asm
asm
gxm
-aEI
-aii
-ajC
+maF
+jao
+uQi
sqf
sqf
awp
@@ -112049,17 +112139,17 @@ ajl
hVz
alD
ajl
-ahr
-aii
-ajC
+tWf
+jao
+uQi
gxm
alW
alW
alW
gxm
-atI
-atI
-atI
+nVA
+nVA
+nVA
gxm
rgL
rgL
@@ -112123,13 +112213,13 @@ aiR
aiR
aiR
wDr
-xpI
-xpI
-xpI
+hwH
+hwH
+hwH
wDr
-aLG
-aZi
-mzR
+qPk
+hKe
+tON
bst
bcS
bag
@@ -112151,13 +112241,13 @@ bCm
bsP
hgZ
biA
-buH
-bHL
-buH
+knm
+sPY
+knm
wDr
-aul
-aul
-aul
+ydA
+ydA
+ydA
wDr
azD
azD
@@ -112222,17 +112312,17 @@ njn
njn
njn
gxm
-adc
-adc
-adc
+hWV
+hWV
+hWV
gxm
gxm
gxm
gxm
gxm
-kYU
-akU
-rxG
+mYd
+lOn
+xwU
ajl
qhx
akw
@@ -112252,17 +112342,17 @@ ajl
nMV
vIf
ajl
-aEI
-akU
-gMa
+maF
+lOn
+nwu
gxm
gxm
gxm
gxm
gxm
-adc
-adc
-adc
+hWV
+hWV
+hWV
gxm
nIN
nIN
@@ -112326,13 +112416,13 @@ aiR
aiR
aiR
wDr
-xpI
-xpI
-xpI
+hwH
+hwH
+hwH
wDr
-aLG
-aZi
-aLG
+qPk
+hKe
+qPk
bst
buj
bev
@@ -112354,13 +112444,13 @@ bCn
bsz
hMN
biA
-buH
-bHL
-buH
+knm
+sPY
+knm
wDr
-aul
-aul
-aul
+ydA
+ydA
+ydA
wDr
azD
azD
@@ -112424,18 +112514,18 @@ cWv
cWv
cWv
cWv
-kaj
-uId
-adH
-adH
-fMA
-atC
-bbL
-aWl
-bbL
-wQg
-akU
-bYe
+omp
+kmx
+xog
+xog
+vFy
+ltt
+fCP
+vUO
+fCP
+xRn
+lOn
+kGS
bVE
aos
akw
@@ -112455,23 +112545,23 @@ ans
aos
alE
bVE
-bYe
-akU
-aGd
-aWl
-hJu
-bbL
-atC
-aAa
-aww
-aww
-wst
-axs
-bbL
-bbL
-bYe
-bbL
-bit
+kGS
+lOn
+mnC
+vUO
+qRx
+fCP
+ltt
+cuI
+ocX
+ocX
+sYj
+fvj
+fCP
+fCP
+kGS
+fCP
+oiB
baw
baw
qYC
@@ -112529,13 +112619,13 @@ wDr
wDr
wDr
wDr
-kaF
-jWU
-jWU
+jXR
+enK
+enK
wDr
-pGM
-aZi
-aLG
+kgt
+hKe
+qPk
bst
aYQ
bbd
@@ -112557,13 +112647,13 @@ bnT
btX
byc
biA
-buH
-bHL
-bIR
+knm
+sPY
+qPU
wDr
-cyG
-cyG
-sos
+sai
+sai
+wrN
wDr
wDr
wDr
@@ -112627,18 +112717,18 @@ boL
boL
boL
boL
-kGL
-uTY
-azY
-azY
-azY
-atC
-abx
-abx
-abx
-abx
-tal
-ait
+fGD
+bfb
+qEc
+qEc
+qEc
+ltt
+gfv
+gfv
+gfv
+gfv
+aPC
+tzF
aEe
akA
akA
@@ -112658,23 +112748,23 @@ akA
oap
aSb
aEe
-ait
-bjJ
-abx
-abx
-abx
-abx
-atC
-azY
-azY
-azY
-fad
-kGL
-abg
-abg
-abg
-abg
-ajC
+tzF
+lzF
+gfv
+gfv
+gfv
+gfv
+ltt
+qEc
+qEc
+qEc
+rWP
+fGD
+acQ
+acQ
+acQ
+acQ
+uQi
baw
vbB
ley
@@ -112729,16 +112819,16 @@ mzI
olQ
oCK
eob
-lGh
-aQt
-lDg
-lpD
-wGA
-lpD
-hmc
-tBF
-jWt
-aLG
+gMk
+qRb
+axY
+xrC
+oWF
+xrC
+toQ
+exl
+qyX
+qPk
bst
bst
bst
@@ -112760,22 +112850,22 @@ biA
biA
biA
biA
-ghD
-vdW
-hvp
-ayE
-azE
-ajd
-azS
-chE
-azI
-ciT
-cjw
-cjS
-ckl
-ckI
-cla
-cly
+wHn
+rDO
+cIO
+rEd
+fml
+fqU
+bIO
+rSA
+cIm
+emw
+bvD
+gZW
+lUA
+bwv
+hDU
+iNH
cDx
ndl
iDk
@@ -112830,18 +112920,18 @@ dux
iYr
dux
ado
-atC
-kHT
-avn
-avn
-mTb
-atC
-avn
-avn
-avn
-nFr
-ajt
-ajC
+ltt
+uVZ
+qxK
+qxK
+rYG
+ltt
+qxK
+qxK
+qxK
+bTD
+mxg
+uQi
vOy
vOy
vOy
@@ -112861,23 +112951,23 @@ vOy
wMO
wky
sqf
-hon
-ajt
-mce
-avn
-avn
-avn
-atC
-mTb
-avn
-avn
-aim
-atC
-avn
-bYe
-cre
-avn
-aim
+bNI
+mxg
+uIa
+qxK
+qxK
+qxK
+ltt
+rYG
+qxK
+qxK
+fdf
+ltt
+qxK
+kGS
+ftZ
+qxK
+fdf
baw
dBp
gVA
@@ -112932,16 +113022,16 @@ yih
kgD
deq
bwG
-aNn
-aNO
-asO
-apC
-apC
-apC
-aqx
-aLG
-aYO
-aLG
+vVy
+gtD
+vEv
+cvI
+cvI
+cvI
+aza
+qPk
+wKN
+qPk
kan
ihw
beW
@@ -112963,22 +113053,22 @@ tAU
xmT
tAU
kan
-buH
-bHL
-buH
-azB
-azT
-azT
-azT
-azG
-bHa
-ccU
-kzP
-cjT
-ckm
-bHa
-clb
-clz
+knm
+sPY
+knm
+qEM
+wzy
+wzy
+wzy
+qEM
+juo
+seL
+siC
+jNw
+xuy
+juo
+vqz
+vMU
mJO
vDN
xbg
@@ -113042,9 +113132,9 @@ abE
abE
abE
abE
-jKK
-pjM
-aim
+bff
+rnd
+fdf
vOy
nos
fcy
@@ -113064,9 +113154,9 @@ ayX
kXw
pxo
sqf
-kHT
-pjM
-aim
+uVZ
+rnd
+fdf
mRU
mRU
mRU
@@ -113135,16 +113225,16 @@ aQF
aQF
szE
aQF
-bBb
-jtJ
-asO
-asP
-uKA
-asP
-aqx
-aLG
-aZi
-aLG
+ihW
+qOS
+vEv
+xkN
+dwj
+xkN
+aza
+qPk
+hKe
+qPk
kan
iMI
rlZ
@@ -113166,16 +113256,16 @@ wJb
wJb
bPu
kan
-buH
-bHL
-buH
-azB
-qKM
-rYj
-ssE
-azG
-uxZ
-vgk
+knm
+sPY
+knm
+qEM
+hEg
+ewc
+lLl
+qEM
+jvD
+cBV
mJO
mJO
mJO
@@ -113245,9 +113335,9 @@ gwo
aed
aeG
abE
-atL
-akV
-atL
+umI
+fsu
+umI
vOy
oNp
aSn
@@ -113267,9 +113357,9 @@ niL
kXw
pxo
sqf
-atL
-bkQ
-atL
+umI
+uch
+umI
mRU
qSw
qSw
@@ -113345,9 +113435,9 @@ aQF
aQF
aQF
aQF
-esi
-byI
-beB
+mNG
+pSF
+eZC
kan
avW
bZn
@@ -113369,9 +113459,9 @@ xIk
cLA
xIk
kan
-bJz
-bHT
-quI
+hBW
+ltv
+qEz
bJt
bJt
bJt
@@ -113448,9 +113538,9 @@ adF
aef
dWw
agA
-ago
-snm
-cwJ
+okx
+hgA
+xfo
vOy
anz
vgx
@@ -113470,9 +113560,9 @@ aCC
kXw
pxo
asn
-ago
-asW
-cwJ
+okx
+cFH
+xfo
mRU
qSw
qSw
@@ -113548,9 +113638,9 @@ eKT
wan
cTC
aQF
-pno
-aYO
-bad
+syj
+wKN
+qqf
xMs
xMs
xMs
@@ -113572,9 +113662,9 @@ vMo
vMo
vMo
vMo
-bGe
-bHL
-smn
+tzw
+sPY
+hkC
bJt
xOL
gGI
@@ -113651,9 +113741,9 @@ adF
aef
aef
uZZ
-bYe
-amO
-avj
+kGS
+bNT
+rmB
vOy
awQ
oLU
@@ -113673,9 +113763,9 @@ edv
kXw
pxo
asn
-ayT
-akU
-avj
+eWN
+lOn
+rmB
mRU
qSw
qSw
@@ -113751,9 +113841,9 @@ aRy
aRy
nIj
aQF
-aWM
-aZi
-aLG
+rWv
+hKe
+qPk
xMs
aSO
feY
@@ -113775,9 +113865,9 @@ wZE
iGn
byd
vMo
-buH
-bHL
-buH
+knm
+sPY
+knm
lhB
pOY
bDs
@@ -113854,9 +113944,9 @@ adF
bls
aeH
agq
-ahM
-kSJ
-avj
+nIF
+ijn
+rmB
vOy
hng
dnC
@@ -113876,9 +113966,9 @@ aCt
kXw
pxo
asn
-ayT
-aii
-avm
+eWN
+jao
+hCF
mRU
qSw
qSw
@@ -113954,9 +114044,9 @@ bQU
bQU
bjD
dqE
-aem
-mUa
-uLv
+htl
+vaq
+vTX
xMs
lOH
dUS
@@ -113978,9 +114068,9 @@ bof
vit
dxu
vMo
-buH
-bHL
-buH
+knm
+sPY
+knm
lhB
xCb
bDs
@@ -114057,9 +114147,9 @@ adF
aef
kqN
agA
-ayT
-ajt
-avm
+eWN
+mxg
+hCF
vOy
xyt
wiW
@@ -114079,9 +114169,9 @@ vOy
mFq
vqW
sqf
-ybf
-aii
-avj
+jMP
+jao
+rmB
mRU
pBG
pBG
@@ -114157,9 +114247,9 @@ brb
cpp
buv
aWF
-aLG
-aZi
-aLG
+qPk
+hKe
+qPk
xMs
akE
qGF
@@ -114181,9 +114271,9 @@ ggz
dka
bye
vMo
-buH
-bHL
-buH
+knm
+sPY
+knm
lhB
aQW
bDs
@@ -114260,9 +114350,9 @@ aef
aef
tRD
abE
-aTL
-ajt
-avj
+ciI
+mxg
+rmB
vOy
iYf
bIM
@@ -114282,10 +114372,10 @@ hPe
sdu
btC
vLj
-ahM
-kSJ
-avj
-cGr
+nIF
+ijn
+rmB
+dyJ
pBG
gqQ
cHG
@@ -114360,9 +114450,9 @@ aTY
iCF
gJP
aQF
-qcl
-aZi
-aLG
+uNf
+hKe
+qPk
xMs
aYR
dUS
@@ -114384,9 +114474,9 @@ jZd
vit
bzo
vMo
-buH
-bHL
-buH
+knm
+sPY
+knm
lhB
pxD
bDs
@@ -114463,9 +114553,9 @@ adF
aef
afs
agA
-ayT
-akU
-avj
+eWN
+lOn
+rmB
vOy
mTp
wiW
@@ -114485,10 +114575,10 @@ lON
dVu
oDR
vOP
-bYe
-bnD
-aWH
-aYn
+kGS
+fAW
+vlR
+qPv
qvL
wmP
wmP
@@ -114563,9 +114653,9 @@ qZH
bsN
buB
aWD
-aLG
-aZi
-aLG
+qPk
+hKe
+qPk
xMs
bXw
eiw
@@ -114587,9 +114677,9 @@ boh
qDP
wbP
vMo
-buH
-bHL
-vMx
+knm
+sPY
+cbL
bJt
qom
bDs
@@ -114666,9 +114756,9 @@ adD
sOw
afs
agA
-ayT
-akU
-avj
+eWN
+lOn
+rmB
vOy
axn
dRh
@@ -114688,10 +114778,10 @@ vOy
aRd
aIo
vOy
-qLK
-akU
-avj
-eAT
+gyb
+lOn
+rmB
+aRl
pBG
lvb
eAN
@@ -114766,9 +114856,9 @@ fHF
bml
buB
aWD
-beB
-byI
-beB
+eZC
+pSF
+eZC
xMs
xMs
xMs
@@ -114790,9 +114880,9 @@ vMo
vMo
vMo
vMo
-bJz
-bHT
-uFP
+hBW
+ltv
+kGw
bJt
bJt
nFI
@@ -114869,9 +114959,9 @@ adF
aef
afs
agA
-ayT
-akU
-avj
+eWN
+lOn
+rmB
vOy
aAr
pGK
@@ -114891,9 +114981,9 @@ aCD
hFC
qmy
vOy
-ayT
-akU
-avj
+eWN
+lOn
+rmB
pBG
pBG
hEl
@@ -114969,9 +115059,9 @@ htL
aUL
buB
aWD
-aLG
-aZi
-aLG
+qPk
+hKe
+qPk
nyw
iXU
hDw
@@ -114993,9 +115083,9 @@ vEH
uFH
tQd
nyw
-buH
-bHL
-buH
+knm
+sPY
+knm
yfS
sEi
dck
@@ -115072,9 +115162,9 @@ aef
aef
pHG
abE
-aTL
-aii
-avj
+ciI
+jao
+rmB
vOy
aID
gLc
@@ -115094,9 +115184,9 @@ aoM
aoM
vgB
kgs
-ayT
-aii
-avj
+eWN
+jao
+rmB
bvX
ojQ
eAN
@@ -115172,9 +115262,9 @@ aTZ
aUM
gJP
aQF
-lRU
-aYO
-aLG
+rmz
+wKN
+qPk
nyw
beH
dcd
@@ -115196,9 +115286,9 @@ beH
beH
beH
nyw
-buH
-bHL
-buH
+knm
+sPY
+knm
yfS
hgL
swt
@@ -115275,9 +115365,9 @@ adF
aef
aGS
agA
-ayT
-aii
-avj
+eWN
+jao
+rmB
vOy
aMd
pGK
@@ -115297,9 +115387,9 @@ prx
fpT
eVT
kgs
-ayT
-aii
-avj
+eWN
+jao
+rmB
bvX
kVV
vQR
@@ -115375,9 +115465,9 @@ eXr
iFH
buv
aWE
-aLG
-avX
-aem
+qPk
+ckh
+htl
aum
emr
emr
@@ -115399,9 +115489,9 @@ rCO
rCO
rCO
eVv
-bFu
-lAO
-buH
+wwE
+mDZ
+knm
ykj
rlQ
ven
@@ -115478,9 +115568,9 @@ adF
aef
nIS
uZZ
-bYe
-aii
-avj
+kGS
+jao
+rmB
vOy
aMg
aSo
@@ -115500,9 +115590,9 @@ ger
aoM
aFf
mmN
-ayT
-aii
-avj
+eWN
+jao
+rmB
bvX
maO
lPm
@@ -115578,9 +115668,9 @@ pOi
pOi
nVF
aWF
-aLG
-aYO
-aLG
+qPk
+wKN
+qPk
nyw
eGZ
ieX
@@ -115602,9 +115692,9 @@ bhq
dcd
eTd
nyw
-buH
-vdW
-qLp
+knm
+rDO
+hqp
kKk
rDt
gpI
@@ -115681,9 +115771,9 @@ adF
aef
nIS
eWF
-bYe
-aii
-avj
+kGS
+jao
+rmB
vOy
aQZ
bkT
@@ -115703,9 +115793,9 @@ qMP
kBP
aSl
vOy
-aTL
-aii
-avm
+ciI
+jao
+hCF
pBG
pBG
pBG
@@ -115781,9 +115871,9 @@ tou
tou
jhy
aQF
-beB
-aYT
-jfD
+eZC
+hMk
+mkw
bdd
bdd
bdd
@@ -115805,9 +115895,9 @@ bdd
bdd
bdd
bdd
-fZx
-bHT
-bJz
+xwm
+ltv
+hBW
yfS
ape
ven
@@ -115884,9 +115974,9 @@ adF
aef
kqN
agA
-ayT
-akU
-avj
+eWN
+lOn
+rmB
vOy
dVd
lea
@@ -115906,9 +115996,9 @@ vti
vti
aEZ
vOy
-ayT
-akU
-avj
+eWN
+lOn
+rmB
fKh
gQk
trU
@@ -115984,9 +116074,9 @@ dVO
bsR
aQr
aQF
-aLG
-aYO
-aLG
+qPk
+wKN
+qPk
tda
ngI
dkq
@@ -116008,9 +116098,9 @@ qby
btY
bAJ
huU
-buH
-bHL
-buH
+knm
+sPY
+knm
yfS
ape
ven
@@ -116087,9 +116177,9 @@ fcE
aef
uNN
abE
-giB
-akU
-avj
+iGZ
+lOn
+rmB
vOy
vOy
vOy
@@ -116109,9 +116199,9 @@ nPE
oqZ
uaI
vOy
-atV
-akU
-avj
+eFI
+lOn
+rmB
fKh
iuG
sOv
@@ -116187,9 +116277,9 @@ aQF
aQF
aQF
aQF
-ePA
-akO
-bwd
+ldb
+rYI
+fzc
bdg
vyg
bni
@@ -116211,9 +116301,9 @@ snb
xbd
bAU
bdg
-bCi
-bCo
-ivB
+jlD
+pYN
+raE
bJt
wbC
lHu
@@ -116290,11 +116380,11 @@ aeI
eva
xzf
abE
-aTL
-aii
-ali
-amD
-cwJ
+ciI
+jao
+uZI
+cSM
+xfo
vOy
vOy
vOy
@@ -116312,9 +116402,9 @@ vOy
vOy
vOy
vOy
-vIN
-aii
-avj
+czJ
+jao
+rmB
fKh
ubI
nQA
@@ -116390,9 +116480,9 @@ wYG
yhR
gHi
bwG
-aeb
-alx
-aeb
+pzj
+uhq
+pzj
bdg
apz
dyd
@@ -116414,9 +116504,9 @@ vPw
bvr
bBQ
bdg
-bCj
-bDx
-bCj
+sgL
+aRL
+sgL
rde
vjC
iMm
@@ -116493,11 +116583,11 @@ aNi
aNi
aNi
aNi
-atV
-aii
-abx
-abx
-avj
+eFI
+jao
+gfv
+gfv
+rmB
vOy
elR
xXh
@@ -116515,9 +116605,9 @@ dMK
vOy
vOy
vOy
-ayT
-aii
-avj
+eWN
+jao
+rmB
pBG
mGT
nQA
@@ -116593,9 +116683,9 @@ hCk
deq
nRN
bwG
-bwd
-auv
-bwd
+wsS
+vxY
+wsS
bdg
auj
bbf
@@ -116617,9 +116707,9 @@ bpv
tMW
bBY
bCh
-bCi
-bCo
-bCi
+mPM
+esd
+mPM
ejw
xML
iMm
@@ -116696,11 +116786,11 @@ bhx
vif
aOR
bsw
-ayT
-xGk
-all
-amK
-avj
+eWN
+uSZ
+rDm
+ldq
+rmB
vOy
wWz
vHO
@@ -116716,11 +116806,11 @@ ruc
xOY
wTM
vOy
-nzA
-amD
-ajr
-aii
-avm
+qqb
+cSM
+fvE
+jao
+hCF
pBG
tGT
nQA
@@ -116796,9 +116886,9 @@ lka
kpj
kpj
mQY
-aem
-mUa
-aLG
+ygp
+tdi
+fZE
tda
mng
wTm
@@ -116820,9 +116910,9 @@ mng
wTm
wCI
tda
-buH
-bHL
-buH
+oSM
+ter
+oSM
bJt
swE
wpI
@@ -116899,11 +116989,11 @@ aco
aco
dYu
bsw
-mQH
-hee
-aEX
-aii
-avm
+cKW
+xNl
+dpS
+jao
+hCF
vOy
wWz
anw
@@ -116919,11 +117009,11 @@ wLy
eiE
wTM
vOy
-ayT
-akT
-amC
-bKe
-avj
+eWN
+gFL
+gDQ
+xgE
+rmB
fKh
eYn
nQA
@@ -116999,9 +117089,9 @@ bdd
bdd
bdd
bdd
-teH
-aYO
-xNB
+nhE
+naa
+nVQ
bdd
vuA
vuA
@@ -117023,9 +117113,9 @@ vuA
vuA
vuA
bdd
-bSj
-bHL
-bIR
+fvV
+ter
+gvK
bdd
bdd
bdd
@@ -117104,9 +117194,9 @@ cCa
aNi
aNi
aNi
-ybf
-ajt
-avj
+jMP
+mxg
+rmB
vOy
wWz
ovG
@@ -117122,11 +117212,11 @@ gxP
aOe
wTM
vOy
-atU
-akU
-abg
-abg
-avj
+nLM
+lOn
+acQ
+acQ
+rmB
fKh
wvo
nQA
@@ -117202,9 +117292,9 @@ eYj
aSp
mho
bdg
-aLG
-awb
-aLG
+fZE
+iLm
+fZE
bdg
bqZ
bqZ
@@ -117226,9 +117316,9 @@ bqZ
bqZ
bqZ
bdg
-buH
-hOR
-buH
+oSM
+xub
+oSM
bdg
lCE
oZD
@@ -117307,9 +117397,9 @@ qiy
ahR
ahR
egt
-ait
-ani
-avj
+tzF
+gIN
+rmB
vOy
woh
vgO
@@ -117325,11 +117415,11 @@ qxm
vgO
xAe
vOy
-aOP
-aii
-aow
-hee
-ioX
+oxg
+jao
+iUV
+xNl
+xZf
fKh
lDa
eAN
@@ -117405,9 +117495,9 @@ tGG
bpA
mho
bdg
-aLG
-aYO
-aLG
+fZE
+naa
+fZE
bdg
bqZ
beH
@@ -117429,9 +117519,9 @@ beH
beH
bqZ
bdg
-buH
-bHL
-buH
+oSM
+ter
+oSM
bdg
lCE
uek
@@ -117510,9 +117600,9 @@ hpY
aOR
aOR
bgK
-bYe
-ajt
-avj
+kGS
+mxg
+rmB
vOy
vOy
vOy
@@ -117528,9 +117618,9 @@ aoK
vOy
vOy
vOy
-asp
-aii
-avj
+glc
+jao
+rmB
mRU
mRU
pBG
@@ -117608,9 +117698,9 @@ tGG
lJD
mho
bdg
-aLG
-aYO
-aLG
+fZE
+naa
+fZE
bdg
bqZ
beH
@@ -117632,9 +117722,9 @@ gBo
beH
bqZ
bdg
-buH
-bHL
-buH
+oSM
+ter
+oSM
bdg
lCE
fMe
@@ -117713,9 +117803,9 @@ aOR
aOR
agr
aNi
-ayT
-amO
-avj
+eWN
+bNT
+rmB
vOy
vOy
vOy
@@ -117731,9 +117821,9 @@ vOy
vOy
vOy
vOy
-meJ
-amO
-avj
+kbT
+bNT
+rmB
mRU
vpf
pBG
@@ -117811,9 +117901,9 @@ lCr
mpn
pZR
bdd
-beB
-aYT
-beB
+atH
+iEM
+atH
bCx
bqZ
beH
@@ -117835,9 +117925,9 @@ bgO
beH
bqZ
bCx
-buH
-bHL
-buH
+oSM
+ter
+oSM
bdd
tSF
lsn
@@ -117916,9 +118006,9 @@ aNi
aNi
aNi
aNi
-asp
-amO
-avj
+glc
+bNT
+rmB
bPF
aqG
ata
@@ -117934,9 +118024,9 @@ vOy
jyJ
niF
bPF
-aTL
-akU
-avj
+ciI
+lOn
+rmB
mRU
vpf
pBG
@@ -118014,9 +118104,9 @@ nYp
fZG
phd
pmv
-tBF
-fSK
-aLG
+mzv
+yfg
+fZE
nyw
bqZ
beH
@@ -118038,9 +118128,9 @@ tmB
eBg
vKe
eVv
-bFu
-omW
-bFu
+cVZ
+xdf
+cVZ
hLS
vKe
vKe
@@ -118119,9 +118209,9 @@ hoT
tob
tob
fkK
-bYe
-amO
-bYe
+kGS
+bNT
+kGS
cbg
aqG
atb
@@ -118137,9 +118227,9 @@ vOy
sLk
niF
cbg
-bYe
-akU
-bYe
+kGS
+lOn
+kGS
rXF
jtU
jtU
@@ -118217,9 +118307,9 @@ bdd
bdd
bdd
bdd
-aLG
-awb
-aLG
+fZE
+iLm
+fZE
bdg
bqZ
beH
@@ -118241,9 +118331,9 @@ bgO
beH
bqZ
bdg
-buH
-hOR
-buH
+oSM
+xub
+oSM
bdd
bdd
bdd
@@ -118322,9 +118412,9 @@ aej
aej
aej
aej
-iiC
-amO
-tHh
+jZW
+bNT
+rZC
vOy
vOy
vOy
@@ -118340,9 +118430,9 @@ vOy
vOy
vOy
vOy
-apv
-akU
-jHG
+bxV
+lOn
+uAi
mRU
mRU
mRU
@@ -118420,9 +118510,9 @@ mPR
osU
vKe
dYX
-tBF
-lBz
-aLG
+mzv
+xhW
+fZE
bdg
bqZ
beH
@@ -118444,9 +118534,9 @@ bgO
beH
bqZ
bdg
-buH
-uXu
-bFu
+oSM
+iOo
+cVZ
iUk
cIx
fUC
@@ -118525,9 +118615,9 @@ aeO
afG
ags
aej
-ayT
-amO
-avj
+eWN
+bNT
+rmB
vOy
elR
xXh
@@ -118543,9 +118633,9 @@ xXh
xXh
dMK
vOy
-ayT
-akU
-avj
+eWN
+lOn
+rmB
mRU
bnF
lBw
@@ -118623,9 +118713,9 @@ cHB
hDV
vmP
bdd
-aLG
-awb
-aLG
+fZE
+iLm
+fZE
bdg
bqZ
bqZ
@@ -118647,9 +118737,9 @@ bgO
bqZ
bqZ
bdg
-buH
-hOR
-buH
+oSM
+xub
+oSM
bdd
oNP
tge
@@ -118728,9 +118818,9 @@ aeP
agI
aia
yaz
-bYe
-ajt
-avj
+kGS
+mxg
+rmB
vOy
wWz
vHO
@@ -118746,9 +118836,9 @@ uXj
rdt
wTM
vOy
-ayT
-aii
-avj
+eWN
+jao
+rmB
eyI
jtU
jaW
@@ -118826,9 +118916,9 @@ wmz
rhy
rec
bdg
-aLG
-aYO
-bad
+fZE
+naa
+onn
bdd
bdd
bDQ
@@ -118850,9 +118940,9 @@ bgO
cab
bdd
bdd
-bGe
-bHL
-buH
+tmE
+ter
+oSM
bdg
jLS
xdP
@@ -118931,9 +119021,9 @@ aeQ
agK
agu
eup
-bYe
-ajt
-avj
+kGS
+mxg
+rmB
vOy
wWz
uwZ
@@ -118949,9 +119039,9 @@ coZ
sNz
wTM
vOy
-ayT
-aii
-avj
+eWN
+jao
+rmB
eyI
yfL
sjw
@@ -119029,10 +119119,10 @@ wmz
vbI
rec
bdg
-beB
-aYT
-beB
-beB
+atH
+iEM
+atH
+ppV
bdd
bqZ
bgO
@@ -119052,10 +119142,10 @@ gAj
bgO
bqZ
bdd
-bJz
-bJz
-bHT
-bJz
+eoy
+brq
+jnc
+brq
bdg
jLS
frb
@@ -119134,9 +119224,9 @@ aeR
agK
agu
aej
-pSL
-amT
-mIW
+ftb
+mqR
+djd
vOy
wWz
pEJ
@@ -119152,9 +119242,9 @@ xQm
tfH
wTM
vOy
-aEK
-aSv
-ioX
+ddx
+pFf
+xZf
eyI
byH
jtU
@@ -119232,10 +119322,10 @@ xgN
vgn
xgN
bdg
-aLG
-aYO
-aLG
-aLG
+fZE
+naa
+fZE
+fZE
bdg
bqZ
qMR
@@ -119255,10 +119345,10 @@ tXb
fOk
bqZ
bdg
-buH
-buH
-bHL
-buH
+oSM
+oSM
+ter
+oSM
bdg
vLg
loy
@@ -119337,9 +119427,9 @@ aej
agO
aid
aej
-atL
-akV
-atL
+umI
+fsu
+umI
vOy
wWz
uwZ
@@ -119355,9 +119445,9 @@ vfP
sNz
wTM
vOy
-atL
-akV
-atL
+umI
+fsu
+umI
mRU
mRU
veW
@@ -119435,10 +119525,10 @@ bdd
bdd
bdd
bdd
-hDL
-aYO
-aNO
-aLG
+tvl
+naa
+meQ
+fZE
bdg
bqZ
beH
@@ -119458,10 +119548,10 @@ gAj
beH
bqZ
bdg
-buH
-bHa
-bHL
-bIR
+oSM
+awE
+ter
+gvK
bdd
bdd
bdd
@@ -119535,14 +119625,14 @@ cuN
cQW
lQa
wjE
-aeU
-bUE
-bYe
-bYe
-aaO
-alp
-aio
-baB
+vuE
+bkb
+kGS
+kGS
+pvi
+bgh
+spW
+pjQ
vOy
wWz
qxP
@@ -119558,14 +119648,14 @@ gxP
nMe
wTM
vOy
-alp
-aio
-baB
-aEV
-bUE
-bYe
-nBW
-bWP
+bgh
+spW
+pjQ
+eJg
+bkb
+kGS
+rRf
+pOC
qtj
fpA
qUx
@@ -119618,30 +119708,30 @@ bwG
bwG
bwG
bwG
-aLB
-acF
-heb
-cqa
-bBh
-aMV
-dRG
-aMV
-yiq
-kLp
-aMV
-bBh
-tCN
-lDJ
-tCN
-tCN
-yfw
-tCN
-bBh
-aLG
-aLG
-aYO
-aNO
-aLG
+bwG
+kUI
+bFB
+iPt
+atH
+sCg
+hgs
+sCg
+osX
+uCt
+sCg
+atH
+eUf
+pwx
+eUf
+eUf
+rIP
+eUf
+atH
+fZE
+fZE
+naa
+meQ
+fZE
bdg
bqZ
beH
@@ -119661,29 +119751,29 @@ beH
beH
bqZ
bdg
-buH
-bHa
-bHL
-buH
-buH
-cbD
-iZH
-xkC
-njL
-njL
-njL
-njL
-cbD
-bUM
-bUM
-mYw
-iAT
-rdY
-bUM
-cbD
-rGg
-qtn
-kJV
+oSM
+awE
+ter
+oSM
+oSM
+brq
+mdC
+qWK
+lyq
+lyq
+lyq
+lyq
+brq
+eMI
+eMI
+gjg
+bom
+kiy
+eMI
+brq
+cSP
+cSH
+svt
mJO
mJO
mJO
@@ -119738,14 +119828,14 @@ jlc
kbv
dTn
ngE
-abg
-abg
-abg
-abg
-acC
-iWN
-amO
-dLE
+acQ
+acQ
+acQ
+acQ
+xdl
+klr
+bNT
+dOW
vOy
woh
vgO
@@ -119761,14 +119851,14 @@ vgO
vgO
xAe
vOy
-aIS
-alq
-wWk
-chu
-aZE
-aZE
-aZE
-aZE
+gTV
+mGk
+xFW
+lrd
+kkI
+kkI
+kkI
+kkI
usL
gsC
cMz
@@ -119821,30 +119911,30 @@ ycl
ycl
ycl
jCg
-aLB
-nyG
-iDN
-tit
-nFV
-tBL
-tBL
-tBL
-tBL
-tBL
-tBL
-mRS
-tBL
-tBL
-tBL
-tBL
-tBL
-tBL
-luz
-tzf
-tBL
-fau
-aNO
-aLG
+bwG
+eNL
+pVr
+oHs
+osQ
+tpR
+tpR
+tpR
+tpR
+tpR
+tpR
+osQ
+tpR
+tpR
+tpR
+tpR
+tpR
+tpR
+osQ
+wxp
+tpR
+baW
+meQ
+fZE
bdg
bqZ
beH
@@ -119864,30 +119954,30 @@ beH
beH
bqZ
bdg
-buH
-bHa
-wwu
-buI
-bFu
-cbE
-buI
-buI
-buI
-buI
-buI
-buI
-rpd
-buI
-buI
-buI
-buI
-buI
-buI
-rpd
-fkO
-bHY
-kro
-bGb
+oSM
+awE
+jas
+jhA
+cVZ
+qWx
+jhA
+jhA
+jhA
+jhA
+jhA
+jhA
+qWx
+jhA
+jhA
+jhA
+jhA
+jhA
+jhA
+qWx
+ldW
+mkx
+eWv
+mJO
plv
plv
plv
@@ -119941,14 +120031,14 @@ sdv
xMO
wDg
vHA
-aaL
-aJs
-bYe
-bYe
-aaE
-afD
-kaA
-anh
+waV
+iGE
+kGS
+kGS
+pjY
+gqv
+hKJ
+nww
vOy
vOy
vOy
@@ -119964,14 +120054,14 @@ vOy
vOy
vOy
vOy
-xFw
-iTK
-anh
-aFF
-cjo
-bYe
-kSN
-aTQ
+xvO
+peu
+nww
+vcO
+ssF
+kGS
+bij
+hux
kfo
rCl
ePM
@@ -120024,30 +120114,30 @@ ycl
ycl
ycl
ycl
-aLB
-csl
-gjn
-jJs
-bBh
-aMM
-aMM
-aNG
-bga
-taA
-aSr
-bBh
-gyC
-wbh
-bsX
-bAa
-bKE
-eBj
-bBh
-aLG
-aNO
-aYT
-aNO
-bad
+bwG
+xgk
+oUi
+tLZ
+atH
+xSx
+xSx
+fBi
+tXo
+mBa
+pYh
+atH
+wMl
+aAU
+dkP
+dsY
+rwj
+xZR
+atH
+fZE
+meQ
+iEM
+meQ
+onn
bdd
bDQ
mng
@@ -120067,30 +120157,30 @@ vUe
kuw
cab
bdd
-bGe
-bHa
-bHT
-bHa
-buH
-cbD
-bMt
-bMt
-bOv
-bOX
-jLK
-vUU
-cbD
-ciU
-rOj
-bUd
-bUF
-clR
-clR
-cbD
-dQs
-sFh
-guc
-bGb
+tmE
+awE
+jnc
+awE
+oSM
+brq
+gOS
+gOS
+sLX
+bIj
+jtZ
+eLu
+brq
+xpl
+exc
+jCx
+mqt
+vno
+vno
+brq
+wDG
+ihI
+fnc
+mJO
plv
plv
plv
@@ -120149,27 +120239,27 @@ ael
agQ
aih
ael
-tnl
-amO
-anc
-atC
-apJ
-apJ
-aMl
-apJ
-apJ
-apJ
-apJ
-apJ
-apJ
-apJ
-aMl
-apJ
-apJ
-atC
-cnv
-amO
-lqJ
+htF
+bNT
+jvz
+ltt
+pPU
+pPU
+ecz
+pPU
+pPU
+pPU
+pPU
+pPU
+pPU
+pPU
+ecz
+pPU
+pPU
+ltt
+riK
+bNT
+hmB
mRU
mRU
gBs
@@ -120228,9 +120318,9 @@ ycl
ycl
ycl
jUx
-aLG
-qmL
-rZz
+fZE
+bBR
+tup
jeb
jeb
jeb
@@ -120246,11 +120336,11 @@ mWy
jeb
jeb
jeb
-aLG
-aNO
-aYT
-aNO
-aLG
+fZE
+meQ
+iEM
+meQ
+fZE
bdg
bqZ
udi
@@ -120270,11 +120360,11 @@ veu
mDW
bqZ
bdg
-buH
-bHa
-bHT
-bHa
-buH
+oSM
+awE
+jnc
+awE
+oSM
vra
vra
vra
@@ -120290,9 +120380,9 @@ rJx
vra
vra
vra
-jJe
-bHY
-buH
+uGf
+mkx
+oSM
vfo
plv
plv
@@ -120352,27 +120442,27 @@ afE
agT
agT
ael
-cZm
-akU
-abg
-atC
-abg
-abx
-abx
-abx
-abg
-abx
-abx
-abx
-abg
-abx
-abx
-abx
-avD
-atC
-abg
-amO
-nQx
+oPT
+lOn
+acQ
+ltt
+acQ
+gfv
+gfv
+gfv
+acQ
+gfv
+gfv
+gfv
+acQ
+gfv
+gfv
+gfv
+jRg
+ltt
+acQ
+bNT
+oNa
mRU
tih
vpf
@@ -120430,10 +120520,10 @@ ycl
ycl
ycl
ycl
-aLB
-dEC
-aNO
-qHl
+bwG
+hiP
+meQ
+czN
jeb
vlX
aNx
@@ -120449,11 +120539,11 @@ xHp
hmF
vlX
jeb
-aNn
-aNO
-aYT
-aNO
-aLG
+bMf
+meQ
+iEM
+meQ
+fZE
bdg
bqZ
udi
@@ -120473,11 +120563,11 @@ fIZ
mDW
bqZ
bdg
-buH
-bHa
-bHT
-bHa
-deH
+oSM
+awE
+jnc
+awE
+eOx
vra
asX
chf
@@ -120493,10 +120583,10 @@ lpt
mgF
asX
vra
-tfw
-bHY
-sVf
-bGb
+pHh
+mkx
+hNv
+mJO
plv
plv
plv
@@ -120555,27 +120645,27 @@ afH
agV
ain
ael
-eGl
-aii
-anf
-atC
-apK
-anf
-apK
-arf
-auG
-azb
-azb
-azb
-auG
-aDp
-apK
-cbr
-apK
-atC
-cbr
-amO
-uGt
+bMV
+jao
+tbF
+ltt
+dZP
+tbF
+dZP
+eQh
+mTo
+tCD
+tCD
+tCD
+mTo
+wyE
+dZP
+dKD
+dZP
+ltt
+dKD
+bNT
+enF
mRU
mRU
jtU
@@ -120633,10 +120723,10 @@ ycl
ycl
ycl
ycl
-aLB
-udF
-aNO
-nLZ
+bwG
+cVf
+meQ
+jTt
jeb
obE
tdE
@@ -120652,11 +120742,11 @@ xHp
xwl
rHf
jeb
-jgU
-aNO
-aYT
-aNO
-aLG
+rrU
+meQ
+iEM
+meQ
+fZE
bdg
bqZ
ngI
@@ -120676,11 +120766,11 @@ xAt
nNH
bqZ
bdg
-buH
-bHa
-bHT
-bHa
-bKc
+oSM
+awE
+jnc
+awE
+uNp
vra
bMq
qUq
@@ -120696,10 +120786,10 @@ lpt
qYQ
ptj
vra
-mEb
-bHY
-haT
-bGb
+opV
+mkx
+xVY
+mJO
plv
plv
plv
@@ -120758,9 +120848,9 @@ afI
agY
oxi
xfm
-als
-ani
-anc
+jux
+gIN
+jvz
mOi
mOi
mOi
@@ -120776,10 +120866,10 @@ aHq
aHq
aHq
aHq
-iWN
-ajt
-kGI
-aPm
+klr
+mxg
+qGZ
+bMi
mRU
jtU
vpf
@@ -120836,10 +120926,10 @@ bwG
bwG
bwG
bwG
-aLB
-dzF
-dzF
-dac
+bwG
+dTd
+dTd
+div
jeb
vlX
thA
@@ -120855,11 +120945,11 @@ gAA
fFD
vlX
jeb
-kEb
-aNO
-aYT
-aNO
-aLG
+wEK
+meQ
+iEM
+meQ
+fZE
bdg
bqZ
beH
@@ -120879,11 +120969,11 @@ beH
beH
bqZ
bdg
-buH
-bHa
-bHT
-bHa
-rKy
+oSM
+awE
+jnc
+awE
+dNW
vra
asX
drj
@@ -120899,10 +120989,10 @@ cgo
hQc
asX
vra
-cwQ
-vtB
-tQo
-bGb
+crc
+goo
+hAA
+mJO
mJO
mJO
mJO
@@ -120961,9 +121051,9 @@ afJ
agY
aiq
ajJ
-aEX
-ajt
-aow
+dpS
+mxg
+iUV
mOi
rCw
rCw
@@ -120972,17 +121062,17 @@ oJR
tFe
asD
xQV
-avK
+qQS
aqU
aCZ
dgg
xRk
bti
aHq
-sDC
-ajt
-kGI
-ejp
+rwf
+mxg
+qGZ
+mqd
mRU
jtU
vzB
@@ -121039,10 +121129,10 @@ ycl
ycl
ycl
jCg
-aLB
-enx
-aQt
-oQj
+bwG
+wBw
+bZo
+vsf
jeb
vlX
tdE
@@ -121058,11 +121148,11 @@ xHp
xwl
vlX
jeb
-pGM
-aNO
-aYT
-aNO
-bad
+dQV
+meQ
+iEM
+meQ
+onn
bdd
bDQ
lnm
@@ -121082,11 +121172,11 @@ sCA
bVw
cab
bdd
-bGe
-bHa
-bHT
-bHa
-bIR
+tmE
+awE
+jnc
+awE
+gvK
vra
asX
qUq
@@ -121102,10 +121192,10 @@ lpt
qYQ
asX
vra
-ojR
-tki
-lQQ
-bGb
+lDk
+dEK
+oWN
+mJO
plv
plv
plv
@@ -121164,9 +121254,9 @@ afK
ahc
air
ael
-isW
-ajt
-ali
+nBo
+mxg
+uZI
mOi
wCT
sIf
@@ -121182,9 +121272,9 @@ oqv
iqd
rUy
cnS
-iWN
-ajt
-nYv
+klr
+mxg
+pSN
mRU
mRU
jtU
@@ -121242,10 +121332,10 @@ ycl
ycl
ycl
ycl
-aLB
-ewo
-aNO
-jLv
+bwG
+tQe
+meQ
+ktl
jeb
obE
thA
@@ -121261,11 +121351,11 @@ xHp
diJ
rHf
jeb
-aLG
-aNO
-aYT
-aNO
-aLG
+fZE
+meQ
+iEM
+meQ
+fZE
bCx
bqZ
cNf
@@ -121285,11 +121375,11 @@ nuK
dVe
bqZ
bCx
-buH
-bHa
-rrV
-bHa
-buH
+oSM
+awE
+vOZ
+awE
+oSM
vra
bMq
drj
@@ -121305,10 +121395,10 @@ lpt
eBV
ptj
vra
-fsH
-bHY
-pBn
-bGb
+xzI
+mkx
+hdV
+mJO
plv
plv
plv
@@ -121367,9 +121457,9 @@ afL
ahe
aij
ael
-abg
-akU
-abg
+acQ
+lOn
+acQ
mOi
kbH
kbH
@@ -121385,9 +121475,9 @@ wDy
aGN
dxv
cnS
-cnv
-ajt
-bYe
+riK
+mxg
+kGS
rXF
vpf
vpf
@@ -121446,9 +121536,9 @@ ycl
ycl
ycl
cmC
-aLG
-aNO
-uBw
+fZE
+meQ
+hvz
jeb
vlX
tdE
@@ -121464,11 +121554,11 @@ xHp
xwl
vlX
jeb
-aLG
-aNO
-aYV
-bai
-bbg
+fZE
+meQ
+cmL
+czR
+jzT
bCy
bDS
cNf
@@ -121488,11 +121578,11 @@ qnC
dVe
cac
bCy
-bzK
-bHb
-bHV
-bHa
-rbX
+hQf
+sTU
+xLX
+awE
+hCf
vra
asX
qUq
@@ -121508,9 +121598,9 @@ lpt
qYQ
asX
vra
-pJJ
-bHY
-buH
+wcD
+mkx
+oSM
cnd
plv
plv
@@ -121570,9 +121660,9 @@ adO
adO
adO
adO
-lwm
-akU
-nQx
+frI
+lOn
+oNa
mOi
mOi
mOi
@@ -121588,9 +121678,9 @@ nTs
pje
pje
cnT
-xvh
-fNC
-cKY
+meS
+gUk
+naj
mRU
mRU
mRU
@@ -121648,10 +121738,10 @@ ycl
ycl
ycl
ycl
-aLB
-fTU
-bbO
-cmg
+bwG
+lFL
+sNL
+ygB
jeb
jeb
hfa
@@ -121667,11 +121757,11 @@ xWd
oSL
jeb
jeb
-aLG
-aNO
-aYW
-sLE
-bbh
+fZE
+meQ
+dAm
+fEF
+otC
bdd
bDT
tHv
@@ -121691,11 +121781,11 @@ iXb
pzV
cad
bdd
-oLT
-iEb
-bHW
-bHa
-buH
+vMA
+oYi
+sIR
+awE
+oSM
vra
vra
eUh
@@ -121711,10 +121801,10 @@ mSU
wVy
vra
vra
-cmd
-cmh
-wAR
-bGb
+siy
+wIX
+aCu
+mJO
plv
plv
plv
@@ -121773,16 +121863,16 @@ afM
fpR
ahf
adO
-wUz
-aii
-abg
+dni
+jao
+acQ
aqU
sdl
mLE
bUx
mLE
tmK
-avK
+qQS
aug
avL
aqU
@@ -121791,9 +121881,9 @@ rsO
aGN
rbB
cnS
-cbr
-ajt
-anc
+dKD
+mxg
+jvz
aUH
aXx
jKI
@@ -121851,10 +121941,10 @@ ycl
ycl
ycl
ycl
-aLB
-ahj
-ahj
-ahj
+bwG
+bwP
+bwP
+bwP
jeb
tkN
qHg
@@ -121870,11 +121960,11 @@ gAA
cGV
tkN
jeb
-aWM
-aNO
-aYX
-gjn
-bbi
+hjQ
+meQ
+fNd
+oUi
+qdV
bdd
bDU
bqZ
@@ -121894,11 +121984,11 @@ bqZ
bqZ
cae
bdd
-bGg
-bHd
-bHX
-bHa
-buH
+huP
+nbu
+kcg
+awE
+oSM
vra
gNq
hXb
@@ -121914,10 +122004,10 @@ cgo
skF
gNq
vra
-ajX
-ajX
-ajX
-bGb
+fqA
+fqA
+fqA
+mJO
plv
plv
plv
@@ -121976,9 +122066,9 @@ afN
ahh
aiw
ahG
-bYe
-ajt
-abg
+kGS
+mxg
+acQ
aqU
xbN
gfE
@@ -121994,9 +122084,9 @@ liJ
pTj
cnq
cnS
-iWN
-aii
-abg
+klr
+jao
+acQ
aUH
oyE
mMP
@@ -122055,9 +122145,9 @@ wDr
wDr
wDr
wDr
-wdb
-ahj
-ahj
+txE
+bwP
+bwP
jeb
aMx
qHg
@@ -122073,11 +122163,11 @@ xHp
cGV
nBa
jeb
-beB
-beB
-aYW
-bzV
-cBA
+atH
+atH
+dAm
+aCX
+suH
bdd
beQ
beQ
@@ -122097,11 +122187,11 @@ beQ
beQ
beQ
bdd
-bRQ
-cbS
-bHW
-bJz
-bJz
+oCb
+wwv
+sIR
+brq
+brq
vra
bMu
hXb
@@ -122117,9 +122207,9 @@ lpt
skF
pQF
vra
-ajX
-ajX
-hBC
+fqA
+fqA
+gzM
wDr
wDr
wDr
@@ -122179,9 +122269,9 @@ afO
ahh
aiw
adO
-aEp
-xTt
-aEp
+mQF
+yaR
+mQF
lmK
lmK
lmK
@@ -122197,9 +122287,9 @@ cnH
kzk
cnR
aHq
-aEp
-xTt
-aEp
+mQF
+yaR
+mQF
aUH
sIA
gSj
@@ -122248,19 +122338,19 @@ kyw
deq
iGc
wDr
-bbB
-bbB
-arn
-ajO
-ajO
-ajO
-clC
-ajO
-ajO
-cno
-ahj
-ahj
-ahj
+mFL
+mFL
+iFp
+wNz
+wNz
+wNz
+oWE
+wNz
+wNz
+suU
+bwP
+bwP
+bwP
jeb
iow
aMO
@@ -122276,11 +122366,11 @@ xHp
aUi
iow
jeb
-aLG
-aNO
-aYY
-bal
-bbj
+fZE
+meQ
+rTA
+tAW
+stR
bCz
bDV
bGw
@@ -122300,11 +122390,11 @@ bGw
bGw
bGw
bCz
-buH
-iEb
-bHW
-bHa
-vMx
+oSM
+oYi
+sIR
+awE
+dnP
vra
wTw
bNE
@@ -122320,19 +122410,19 @@ bUi
bUT
wTw
vra
-ajX
-ajX
-ajX
-amS
-aoc
-aoc
-uQU
-aoc
-aoc
-aoc
-aAv
-eZi
-eZi
+fqA
+fqA
+fqA
+dBg
+aqL
+aqL
+buY
+aqL
+aqL
+aqL
+uWm
+nRA
+nRA
wDr
jPx
wdW
@@ -122382,9 +122472,9 @@ jkj
ahh
aiw
adO
-uLu
-anC
-aiC
+ebV
+mbu
+kCo
ioU
pvK
qPE
@@ -122400,9 +122490,9 @@ liJ
hgB
cbn
aHq
-uLu
-aQo
-aTS
+ebV
+qGP
+pym
aUd
ckK
iKM
@@ -122451,19 +122541,19 @@ kyw
lfx
gSH
wDr
-bbB
-bbB
-arn
-ajO
-ajO
-ajO
-ajO
-ajO
-ajO
-cno
-ahj
-ahj
-ahj
+mFL
+mFL
+iFp
+wNz
+wNz
+wNz
+wNz
+wNz
+wNz
+suU
+bwP
+bwP
+bwP
aLT
aLT
aLT
@@ -122479,11 +122569,11 @@ aQL
aQL
aQL
aQL
-pGM
-aNO
-aYW
-sLE
-aLG
+dQV
+meQ
+dAm
+fEF
+fZE
bCA
bCA
bdj
@@ -122503,11 +122593,11 @@ bCA
bdj
bCA
bCA
-buH
-iEb
-bHW
-bHa
-bIR
+oSM
+oYi
+sIR
+awE
+gvK
bJC
bJC
bJC
@@ -122523,19 +122613,19 @@ bSJ
bSJ
bSJ
bSJ
-ajX
-ajX
-ajX
-amS
-aoc
-aoc
-aoc
-aoc
-aoc
-aoc
-aAv
-eZi
-eZi
+fqA
+fqA
+fqA
+dBg
+aqL
+aqL
+aqL
+aqL
+aqL
+aqL
+uWm
+nRA
+nRA
wDr
nEl
mgb
@@ -122585,9 +122675,9 @@ lFt
ahh
aiw
adO
-aSz
-anG
-aiC
+qHu
+hqx
+kCo
ioU
qyZ
wTd
@@ -122603,9 +122693,9 @@ liJ
qmP
uoH
aHq
-aiC
-anC
-aiC
+kCo
+mbu
+kCo
aUH
dbv
lII
@@ -122654,19 +122744,19 @@ kyw
oif
nRN
wDr
-bbB
-bbB
-arn
-ajO
-ajO
-ajO
-ajO
-ajO
-ajO
-cno
-ahj
-ahj
-ahj
+mFL
+mFL
+iFp
+wNz
+wNz
+wNz
+wNz
+wNz
+wNz
+suU
+bwP
+bwP
+bwP
aLT
kaB
vVb
@@ -122682,11 +122772,11 @@ aQL
mJP
bSn
aQL
-vHs
-ehH
-aYZ
-sLE
-bAV
+hEm
+kti
+eFa
+fEF
+exQ
bCB
bCB
bCB
@@ -122706,11 +122796,11 @@ bCB
bCB
bCB
bCB
-cbv
-iEb
-bHY
-mru
-syP
+uuI
+oYi
+mkx
+bIW
+eMZ
bJC
jSp
lAQ
@@ -122726,19 +122816,19 @@ bSJ
hII
iJS
bSJ
-ajX
-ajX
-ajX
-amS
-aoc
-aoc
-aoc
-aoc
-aoc
-aoc
-aAv
-eZi
-eZi
+fqA
+fqA
+fqA
+dBg
+aqL
+aqL
+aqL
+aqL
+aqL
+aqL
+uWm
+nRA
+nRA
wDr
xgS
svF
@@ -122788,9 +122878,9 @@ aiw
ahh
aiw
nph
-aiC
-ajF
-aiC
+kCo
+tSY
+kCo
ioU
mSz
nIG
@@ -122806,9 +122896,9 @@ iKf
aGN
qrv
aHq
-cgJ
-ajG
-aiC
+hBa
+gft
+kCo
aGz
ckd
mQC
@@ -122857,9 +122947,9 @@ kyw
vaV
qxJ
wDr
-bbC
-aan
-aan
+lFw
+wWt
+wWt
wDr
wDr
wDr
@@ -122885,11 +122975,11 @@ aTw
aUj
kLk
aQL
-mTn
-aiy
-aYZ
-sLE
-bbk
+npw
+vzi
+eFa
+fEF
+rbd
bdk
bdk
bgR
@@ -122909,11 +122999,11 @@ myJ
eKI
bdk
bdk
-bGh
-iEb
-bHY
-njy
-hkE
+cxF
+oYi
+mkx
+fic
+kjW
bJC
ojF
bNG
@@ -122939,9 +123029,9 @@ wDr
wDr
wDr
wDr
-tGq
-tGq
-jjT
+fCg
+fCg
+geu
wDr
wtk
mgb
@@ -122991,9 +123081,9 @@ afP
ahh
aiw
nph
-aiC
-anG
-aiC
+kCo
+hqx
+kCo
ioU
ioU
ioU
@@ -123009,9 +123099,9 @@ aGN
aGN
pSU
aHq
-czM
-ajG
-aiC
+qcL
+gft
+kCo
aGz
drk
mQC
@@ -123089,10 +123179,10 @@ aQL
aQL
aQL
aQL
-uQn
-aYZ
-sLE
-bbl
+uBj
+eFa
+fEF
+wMB
bdl
bdl
bdl
@@ -123112,10 +123202,10 @@ bdl
bdl
bdl
bdl
-bGi
-iEb
-bHY
-oyy
+opd
+oYi
+mkx
+jwP
bJC
bJC
bJC
@@ -123194,9 +123284,9 @@ afQ
aiw
aiw
nph
-aiC
-anG
-aiC
+kCo
+hqx
+kCo
ioU
lPO
vJg
@@ -123212,9 +123302,9 @@ eEo
aGN
rub
aHq
-cES
-ajG
-aiC
+gar
+gft
+kCo
aGz
eqB
obC
@@ -123292,10 +123382,10 @@ brn
aRT
buM
aQL
-aLG
-aYZ
-sLE
-bbl
+fZE
+eFa
+fEF
+wMB
bdl
bEr
bEs
@@ -123315,10 +123405,10 @@ bYu
nmK
caf
bdl
-bGj
-iEb
-bHY
-buH
+oDU
+oYi
+mkx
+oSM
bJC
cdT
cfo
@@ -123397,9 +123487,9 @@ ahJ
ahJ
ahJ
adO
-aiC
-ajF
-aiC
+kCo
+tSY
+kCo
ioU
dnS
viN
@@ -123415,9 +123505,9 @@ aRi
aGN
qrv
aHq
-aOS
-ajG
-aiC
+oUO
+gft
+kCo
aUH
aGz
aGz
@@ -123495,10 +123585,10 @@ aQL
aUY
buN
aQL
-aLG
-aYZ
-sLE
-bbl
+fZE
+eFa
+fEF
+wMB
bdl
bDX
bCA
@@ -123518,10 +123608,10 @@ rIH
tUh
cag
bdl
-bGk
-iEb
-bHY
-buH
+jDz
+oYi
+mkx
+oSM
bJC
cdU
bMy
@@ -123596,13 +123686,13 @@ ily
cGd
moK
cGd
-aWd
-aWd
-aWd
-pji
-aiC
-ajF
-aiC
+fiH
+fiH
+fiH
+ybk
+kCo
+tSY
+kCo
ioU
pPM
qKz
@@ -123618,13 +123708,13 @@ xNv
iLO
bUa
aHq
-aSz
-anC
-aiC
-pji
-aWd
-aWd
-aWd
+qHu
+mbu
+kCo
+ybk
+fiH
+fiH
+fiH
mRU
gBs
mRU
@@ -123698,10 +123788,10 @@ aQL
aQL
aQL
aQL
-pGM
-aYZ
-sLE
-bbm
+dQV
+eFa
+fEF
+fNH
bdl
bDY
bCA
@@ -123721,10 +123811,10 @@ jac
bCA
cah
bdl
-bGl
-iEb
-bHY
-bIR
+wPi
+oYi
+mkx
+gvK
bJC
bJC
bJC
@@ -123796,16 +123886,16 @@ aeC
aeC
ajs
aeC
-aGD
-aWd
-eTO
-anR
-anR
-lNl
-aFW
-aSy
-anH
-aoB
+bZq
+fiH
+rGc
+xjI
+xjI
+fzm
+pBg
+gmZ
+dpN
+txd
alL
alL
alL
@@ -123821,16 +123911,16 @@ jvY
alL
alL
alL
-aSy
-aoS
-dZd
-aFW
-aIe
-anR
-anR
-uWC
-aHQ
-apj
+gmZ
+onh
+wJd
+pBg
+iOP
+xjI
+xjI
+roY
+vXk
+jgS
vcE
kUV
vcE
@@ -123901,10 +123991,10 @@ brr
aUZ
buO
aQL
-aLG
-aYZ
-sLE
-jJs
+fZE
+eFa
+fEF
+tLZ
bdl
bDZ
bdj
@@ -123924,10 +124014,10 @@ jac
xxa
cai
bdl
-bII
-iEb
-bHY
-buH
+tkg
+oYi
+mkx
+oSM
bJC
cdV
bMx
@@ -123999,16 +124089,16 @@ wXh
aeC
ydz
ayb
-aGC
-tSw
-agJ
-aXE
-aXE
-agJ
-aFV
-hPK
-aXE
-akH
+rrG
+gBZ
+tGW
+rfQ
+rfQ
+tGW
+oOi
+szb
+rfQ
+vnZ
jvY
jvY
jvY
@@ -124024,16 +124114,16 @@ jvY
jvY
jvY
jvY
-aSB
-iWd
-elA
-aFV
-aGC
-aXE
-aXE
-aGC
-rph
-agJ
+urs
+eEF
+wmH
+oOi
+rrG
+rfQ
+rfQ
+rrG
+sBK
+tGW
sSl
kkx
vcE
@@ -124104,10 +124194,10 @@ brr
aRT
buO
aQL
-aLG
-aYZ
-sLE
-bkY
+fZE
+eFa
+fEF
+xpc
bdl
lOr
lOr
@@ -124127,10 +124217,10 @@ bYv
tiE
tiE
bdl
-rqw
-iEb
-bHY
-buH
+fJt
+oYi
+mkx
+oSM
bJC
cdV
cfo
@@ -124202,16 +124292,16 @@ ngl
aeA
ajk
aeA
-aIe
-aWd
-kYP
-aHQ
-aHQ
-apj
-aFW
-rFY
-aVY
-akI
+iOP
+fiH
+dwJ
+vXk
+vXk
+jgS
+pBg
+vkQ
+brm
+aOw
jvY
arg
atf
@@ -124227,16 +124317,16 @@ jvY
aMm
aOq
jvY
-aDx
-dsk
-mLU
-aFW
-aGD
-aHQ
-aHQ
-lKk
-kKb
-lNl
+biB
+uvq
+cVT
+pBg
+bZq
+vXk
+vXk
+siS
+aRr
+fzm
lJY
xVS
lJY
@@ -124307,10 +124397,10 @@ brs
aRT
bew
aQL
-beB
-aYW
-bzV
-beB
+atH
+dAm
+aCX
+atH
mCo
iwZ
jFy
@@ -124330,10 +124420,10 @@ eHa
cmo
xAB
mCo
-bJz
-cbS
-bHW
-bJz
+brq
+wwv
+sIR
+brq
bJC
bKX
cfo
@@ -124408,13 +124498,13 @@ ily
taw
mRI
taw
-blb
-aWd
-aXT
-pji
-aEp
-aEp
-akJ
+qnf
+fiH
+wPm
+ybk
+mQF
+mQF
+nbW
jvY
arh
atm
@@ -124430,13 +124520,13 @@ jvY
nSG
aOs
jvY
-aEp
-ixC
-aEp
-pji
-jFg
-aWd
-pCD
+mQF
+pZq
+mQF
+ybk
+dJF
+fiH
+dAr
kNq
cWo
kNq
@@ -124510,10 +124600,10 @@ brr
aRT
buO
aQL
-aXS
-aYZ
-kfP
-tBF
+jpW
+eFa
+svw
+mzv
bmv
bEg
bGU
@@ -124533,10 +124623,10 @@ bYw
nDM
bWL
sSa
-qLp
-lYi
-bIb
-mHm
+bRo
+dOG
+gKw
+tgz
bJC
cdV
cfo
@@ -124615,9 +124705,9 @@ ggQ
ggQ
aME
aep
-aiB
-ajN
-akK
+ivV
+jnx
+iPK
jvY
ari
aoP
@@ -124633,9 +124723,9 @@ axo
atm
aOr
jvY
-aiB
-aWf
-aiB
+ivV
+otE
+ivV
aep
aME
ggQ
@@ -124713,10 +124803,10 @@ brr
aUY
buO
aQL
-aLG
-aYZ
-sLE
-jJs
+fZE
+eFa
+fEF
+tLZ
mCo
bEh
bNQ
@@ -124736,10 +124826,10 @@ bKA
cXR
cal
mCo
-pJJ
-iEb
-bHY
-buH
+wcD
+oYi
+mkx
+oSM
bJC
cdV
bMy
@@ -124818,9 +124908,9 @@ afj
afk
agM
aep
-alG
-aYj
-aoD
+pEd
+tbD
+fDk
jvY
arj
atm
@@ -124836,9 +124926,9 @@ bzD
atm
aOs
jvY
-alG
-anG
-apd
+pEd
+hqx
+xhi
aep
aHS
afk
@@ -124916,10 +125006,10 @@ aQL
aQL
aQL
aQL
-aLG
-aYZ
-sLE
-qFb
+fZE
+eFa
+fEF
+bNr
bdl
bEi
bZr
@@ -124939,10 +125029,10 @@ bKA
cir
bdl
bdl
-lgX
-iEb
-bHY
-buH
+sXC
+oYi
+mkx
+oSM
bJC
bJC
bJC
@@ -125021,9 +125111,9 @@ afk
afk
afk
aep
-alG
-aYj
-aoD
+pEd
+tbD
+fDk
jvY
ark
atm
@@ -125039,9 +125129,9 @@ axo
atm
thv
jvY
-alG
-anG
-apd
+pEd
+hqx
+xhi
aep
afk
aHl
@@ -125119,10 +125209,10 @@ brt
aUZ
buS
aQL
-aLG
-aYZ
-sLE
-jJs
+fZE
+eFa
+fEF
+tLZ
bdl
brp
bZr
@@ -125141,11 +125231,11 @@ bNQ
bNQ
bNQ
bGz
-hMs
-cbw
-iEb
-bHY
-buH
+egD
+oQn
+oYi
+mkx
+oSM
bJC
cdX
bMx
@@ -125224,9 +125314,9 @@ aep
aep
aep
aep
-alJ
-aYj
-aoD
+pvE
+tbD
+fDk
jvY
alL
atk
@@ -125242,9 +125332,9 @@ jvY
aAy
alL
jvY
-alG
-anG
-apd
+pEd
+hqx
+xhi
aep
aep
aep
@@ -125322,10 +125412,10 @@ brt
bpC
buS
aQL
-aNn
-aYZ
-sLE
-jJs
+bMf
+eFa
+fEF
+tLZ
bdl
bEl
wup
@@ -125344,11 +125434,11 @@ krN
krN
krN
oqY
-can
-buH
-iEb
-bHY
-buH
+lde
+oSM
+oYi
+mkx
+oSM
bJC
cdX
cfo
@@ -125427,9 +125517,9 @@ aep
aep
aep
aep
-alG
-aYj
-aoD
+pEd
+tbD
+fDk
jvY
arl
atm
@@ -125445,13 +125535,13 @@ alL
aMo
aOt
jvY
-alG
-anG
-apf
+pEd
+hqx
+jhm
oIB
jgr
-gGp
-dMf
+qUG
+rtc
oIB
vmu
kNq
@@ -125525,10 +125615,10 @@ brs
bpC
abT
aQL
-beB
-aYW
-bzV
-beB
+atH
+dAm
+aCX
+atH
bdl
buz
bZr
@@ -125547,11 +125637,11 @@ ibc
uly
bNN
vbR
-pky
-cbv
-cbS
-bHW
-bJz
+eGq
+uuI
+wwv
+sIR
+brq
bJC
ack
cfo
@@ -125630,9 +125720,9 @@ taw
taw
taw
taw
-alG
-aYj
-aoD
+pEd
+tbD
+fDk
jvY
abF
atm
@@ -125648,9 +125738,9 @@ aIT
atm
aVF
jvY
-alG
-aYD
-uPI
+pEd
+wZp
+amc
oIB
fXE
kaS
@@ -125728,10 +125818,10 @@ brt
aUY
buS
aQL
-aLG
-aYZ
-sLE
-uBw
+fZE
+eFa
+fEF
+hvz
bdl
bEm
bZr
@@ -125751,10 +125841,10 @@ uys
uys
uys
uys
-iRr
-iEb
-bHY
-buH
+bfd
+oYi
+mkx
+oSM
bJC
cdX
bMy
@@ -125833,9 +125923,9 @@ taw
oQL
oQL
taw
-alK
-ajP
-aoD
+pqv
+gqf
+fDk
jvY
jvY
jvY
@@ -125851,9 +125941,9 @@ jvY
jvY
jvY
jvY
-sUF
-anG
-apd
+xeq
+hqx
+xhi
oIB
wqr
bZw
@@ -125931,10 +126021,10 @@ aQL
aQL
aQL
aQL
-bxx
-byF
-bzW
-bxx
+edn
+qRd
+gtH
+edn
bdl
bpT
bNN
@@ -125954,10 +126044,10 @@ dyx
eYr
bUo
uys
-cbz
-cbU
-ccu
-cbz
+kKB
+rsL
+jts
+kKB
bJC
bJC
bJC
@@ -126036,9 +126126,9 @@ mfH
nwT
nwT
mfH
-aTS
-ajP
-aoD
+pym
+gqf
+fDk
alL
urM
dBG
@@ -126054,9 +126144,9 @@ jvY
wjv
fDG
alL
-alG
-aYD
-aTS
+pEd
+wZp
+pym
qgK
tEB
uBM
@@ -126134,10 +126224,10 @@ aQL
bsS
mqK
aQL
-aLG
-aYZ
-sLE
-jJs
+bqc
+tcS
+mww
+sZe
bdl
bEp
bCA
@@ -126157,10 +126247,10 @@ dyx
hGN
pVx
uys
-ttM
-iEb
-ccv
-bIS
+wKm
+ekM
+aVM
+wVm
bJC
cfp
cgu
@@ -126239,9 +126329,9 @@ taw
oQL
oQL
taw
-uBz
-aYj
-aoE
+gbR
+tbD
+chC
aqe
amw
anO
@@ -126257,9 +126347,9 @@ arq
anO
qaV
kwd
-aSB
-anG
-mPX
+urs
+hqx
+tFQ
oIB
wKF
hzb
@@ -126337,10 +126427,10 @@ ihY
bpC
dnE
aQL
-kgr
-aYW
-bzV
-beB
+qfI
+dpA
+ggo
+lhs
bdl
ycp
ycp
@@ -126360,10 +126450,10 @@ uys
uys
uys
uys
-bJz
-cbS
-bJz
-bHW
+gyw
+bFX
+gyw
+hza
bJC
bMA
cfo
@@ -126442,9 +126532,9 @@ taw
oQL
hja
taw
-jMK
-ajR
-aoG
+bwN
+gxR
+lCc
aqg
arr
atn
@@ -126460,9 +126550,9 @@ atn
atn
aOB
aRj
-aSC
-aZH
-iAB
+dZR
+kWc
+cwL
oIB
phj
vEf
@@ -126540,10 +126630,10 @@ aQL
aQL
aQL
aQL
-pGM
-aYZ
-sLE
-jJs
+oxe
+tcS
+mww
+sZe
bdl
fKT
bGy
@@ -126563,10 +126653,10 @@ sgc
xCa
bUy
bdl
-qYt
-iEb
-bHa
-bIT
+eTx
+ekM
+cJs
+pOW
bJC
bJC
bJC
@@ -126645,9 +126735,9 @@ taw
cap
fiN
taw
-rFY
-ctC
-aoQ
+vkQ
+kzR
+mXP
kwd
amA
atq
@@ -126663,11 +126753,11 @@ atq
atq
aoT
kwd
-rFY
-ctC
-gPF
+vkQ
+kzR
+oig
oIB
-opI
+cHC
dha
pxj
oIB
@@ -126743,10 +126833,10 @@ mUx
bpC
dnE
aQL
-aLG
-aYZ
-sLE
-jJs
+bqc
+tcS
+mww
+sZe
bdl
fgm
bdj
@@ -126766,10 +126856,10 @@ fYZ
vYC
noj
hpS
-pJJ
-iEb
-bHa
-bIT
+gyE
+ekM
+cJs
+pOW
bJC
bMA
cfo
@@ -126848,9 +126938,9 @@ taw
taw
taw
taw
-aEp
-lIw
-aoR
+mQF
+rnO
+ogd
alO
ars
amx
@@ -126866,9 +126956,9 @@ amx
amx
aOC
alO
-aEp
-lIw
-aEp
+mQF
+rnO
+mQF
loP
loP
loP
@@ -126946,10 +127036,10 @@ aQL
bsW
xvX
aQL
-aLG
-txe
-baq
-jJs
+bqc
+noI
+dJG
+sZe
bdl
ntd
hgO
@@ -126969,10 +127059,10 @@ scH
nzO
kxL
hpS
-pJJ
-vzu
-vYi
-bIT
+gyE
+nzt
+jhs
+pOW
bJC
cfq
cgv
@@ -127051,9 +127141,9 @@ taw
liF
wPR
taw
-ndJ
-anJ
-aoS
+cui
+fQU
+onh
inw
amA
amx
@@ -127069,9 +127159,9 @@ atq
amx
aoT
inw
-aiB
-anJ
-mnG
+ivV
+fQU
+hPr
loP
iwB
tOC
@@ -127149,10 +127239,10 @@ aQL
aQL
aQL
aQL
-aLG
-aYO
-kBK
-hyt
+bqc
+ubQ
+fpM
+bEk
bdl
tFS
bdj
@@ -127172,10 +127262,10 @@ jaR
mJa
wWP
rsK
-aGc
-kkE
-iEb
-bIT
+cBC
+feo
+ekM
+pOW
bJC
bJC
bJC
@@ -127254,9 +127344,9 @@ taw
oQL
oQL
taw
-alG
-aDZ
-aoU
+pEd
+gBg
+bLg
aqj
arw
anP
@@ -127272,9 +127362,9 @@ atq
atq
wwJ
inw
-alG
-aYj
-apd
+pEd
+tbD
+xhi
loP
joG
sDu
@@ -127352,10 +127442,10 @@ aUZ
uqA
bES
kcl
-aLG
-aYO
-sou
-bAX
+bqc
+ubQ
+uPX
+rHr
bdl
wIr
aQy
@@ -127375,10 +127465,10 @@ nPT
bdl
bdl
bdl
-dhU
-vzq
-iEb
-bIT
+jLg
+uEO
+ekM
+pOW
hNw
wos
bMC
@@ -127457,9 +127547,9 @@ taw
oQL
oQL
taw
-ylJ
-aDZ
-aoD
+rhX
+gBg
+fDk
inw
qHM
emn
@@ -127475,9 +127565,9 @@ amx
amx
aBs
inw
-alG
-aYj
-apd
+pEd
+tbD
+xhi
loP
kxo
wSn
@@ -127555,9 +127645,9 @@ aSE
aVf
bES
kcl
-aLG
-aZg
-bar
+bqc
+sUk
+slo
bdl
bdl
bdl
@@ -127579,9 +127669,9 @@ htk
dEp
bdl
bdl
-cbV
-fpO
-bIT
+udf
+iyC
+pOW
hNw
sZq
jZv
@@ -127660,9 +127750,9 @@ kiR
oxy
oxy
kiR
-aWd
-aDZ
-nfp
+fiH
+gBg
+xsX
alO
alO
alO
@@ -127678,9 +127768,9 @@ atq
atq
aBs
alO
-alG
-aDZ
-aWd
+pEd
+gBg
+fiH
fTF
xBY
xBY
@@ -127758,9 +127848,9 @@ iIR
aVf
bES
kcl
-aLG
-aYO
-bZK
+bqc
+ubQ
+kwi
lZM
rSR
xss
@@ -127782,9 +127872,9 @@ dXb
xss
xss
lZM
-cbW
-iEb
-bIT
+kYl
+ekM
+pOW
hNw
sZq
jZv
@@ -127863,9 +127953,9 @@ taw
oQL
oQL
lnD
-alG
-aDZ
-xrr
+pEd
+gBg
+iea
alO
gKZ
vTv
@@ -127881,9 +127971,9 @@ atq
atq
aBs
alO
-alJ
-aYj
-apd
+pvE
+tbD
+xhi
gdS
wSn
kXN
@@ -127961,9 +128051,9 @@ chp
aVf
aQL
aQL
-beB
-aYT
-bzY
+lhs
+bww
+tHF
cvx
cvx
bKJ
@@ -127985,9 +128075,9 @@ bKJ
cvx
cvx
cvx
-cbX
-cbS
-ccO
+xQz
+bFX
+pmd
bJC
bJC
bMD
@@ -128066,9 +128156,9 @@ taw
kLZ
tty
lnD
-alG
-aDZ
-xrr
+pEd
+gBg
+iea
alO
arz
atq
@@ -128084,9 +128174,9 @@ auB
atc
aOF
alO
-alG
-aYj
-apd
+pEd
+tbD
+xhi
gdS
lBg
dXd
@@ -128164,9 +128254,9 @@ brA
aVf
lQz
aQL
-aLG
-aZi
-aLG
+bqc
+qIf
+bqc
bbs
cbh
xYP
@@ -128188,9 +128278,9 @@ tez
gsm
bCM
bbr
-buH
-iEb
-bIT
+uPE
+ekM
+pOW
bJC
jht
jZv
@@ -128269,9 +128359,9 @@ taw
taw
taw
taw
-alG
-aDZ
-xrr
+pEd
+gBg
+iea
alO
arz
atq
@@ -128287,9 +128377,9 @@ aIU
aMq
aOG
alO
-alG
-aDZ
-apd
+pEd
+gBg
+xhi
loP
loP
loP
@@ -128367,9 +128457,9 @@ bOG
aVf
iaq
aQL
-aLG
-aZi
-aLG
+bqc
+qIf
+bqc
bbs
bKD
vTS
@@ -128391,9 +128481,9 @@ tez
ccQ
bCN
bbr
-buH
-iEb
-bIT
+uPE
+ekM
+pOW
bJC
cjC
jZv
@@ -128472,9 +128562,9 @@ aYU
uxs
iDs
taw
-alG
-aDZ
-xrr
+pEd
+gBg
+iea
alO
arz
atq
@@ -128490,9 +128580,9 @@ xBe
xBe
xBe
xBe
-alG
-aDZ
-apd
+pEd
+gBg
+xhi
jWh
eFK
wGd
@@ -128570,9 +128660,9 @@ bRg
aVf
aQL
aQL
-fvK
-aZi
-aLG
+ylN
+qIf
+bqc
bbs
ydM
xYP
@@ -128594,9 +128684,9 @@ tez
ccQ
cdn
bbr
-buH
-iEb
-bIT
+uPE
+ekM
+pOW
bJC
bJC
kGF
@@ -128675,9 +128765,9 @@ oQL
oQL
keE
taw
-alJ
-aDZ
-xrr
+pvE
+gBg
+iea
xnR
arm
ats
@@ -128693,9 +128783,9 @@ aIV
qqr
arH
xBe
-alG
-aDZ
-apd
+pEd
+gBg
+xhi
vXd
duF
hSk
@@ -128773,9 +128863,9 @@ jOi
aVf
bES
kcl
-aLG
-aZi
-aLG
+bqc
+qIf
+bqc
bbs
dvs
xYP
@@ -128797,9 +128887,9 @@ tez
ccQ
bCM
bbr
-buH
-iEb
-bIT
+uPE
+ekM
+pOW
hNw
sZq
lef
@@ -128878,9 +128968,9 @@ gNQ
gNQ
gNQ
xDG
-alP
-ajW
-apc
+tJH
+qpH
+iSu
alO
arA
att
@@ -128896,9 +128986,9 @@ azo
aJg
abR
xBe
-alG
-aDZ
-apf
+pEd
+gBg
+jhm
jWh
oih
khE
@@ -128976,9 +129066,9 @@ vfx
aVf
bES
kcl
-beB
-byI
-beB
+lhs
+uvh
+lhs
kFY
jmK
bDL
@@ -129000,9 +129090,9 @@ tez
ccQ
bCN
jhb
-jiw
-cbS
-bHW
+kAj
+bFX
+hza
hNw
sZq
ltI
@@ -129081,9 +129171,9 @@ taw
taw
taw
taw
-ylJ
-aDZ
-apd
+rhX
+gBg
+xhi
wDM
wDM
wDM
@@ -129099,9 +129189,9 @@ atv
auV
amE
xBe
-alG
-aDZ
-apd
+pEd
+gBg
+xhi
jWh
jWh
uUz
@@ -129179,9 +129269,9 @@ bRV
bSe
bES
kcl
-aLG
-aZi
-aLG
+bqc
+qIf
+bqc
bBd
aPr
bfl
@@ -129203,9 +129293,9 @@ bSb
bEa
bFp
bBd
-buH
-iEb
-bIT
+uPE
+ekM
+pOW
hNw
sZq
lwJ
@@ -129284,9 +129374,9 @@ tfb
tfb
tfb
ptK
-alG
-aYj
-apd
+pEd
+tbD
+xhi
wDM
aOM
aoW
@@ -129302,9 +129392,9 @@ atv
auV
amE
xBe
-alG
-aYj
-apd
+pEd
+tbD
+xhi
jWh
xXa
xXa
@@ -129382,9 +129472,9 @@ csZ
odB
aQL
aQL
-aLG
-aZg
-tBF
+bqc
+sUk
+ade
bBe
bFq
bfm
@@ -129406,9 +129496,9 @@ bCD
bEb
bFq
bBe
-bFu
-fpO
-bIT
+hWD
+iyC
+pOW
bJC
bJC
rbH
@@ -129487,9 +129577,9 @@ jhx
jhx
dnH
gpc
-aWd
-aYj
-apd
+fiH
+tbD
+xhi
wDM
uto
aoX
@@ -129505,9 +129595,9 @@ nNY
qKi
abR
xBe
-alJ
-ajR
-aTS
+pvE
+gxR
+pym
dEt
soP
pDr
@@ -129585,9 +129675,9 @@ vil
bpC
qZX
aQL
-kEb
-aZi
-bad
+pjP
+qIf
+lfz
bbs
cdp
cdp
@@ -129609,9 +129699,9 @@ fJO
fJO
fJO
bbs
-nmD
-iEb
-twT
+wMI
+ekM
+oHt
bJC
lbf
cft
@@ -129690,9 +129780,9 @@ nwU
owg
owg
ptK
-wOh
-ajP
-apd
+nhT
+gqf
+xhi
wDM
aOQ
fxI
@@ -129708,9 +129798,9 @@ azp
qJf
anV
xBe
-alG
-aYj
-apd
+pEd
+tbD
+xhi
jWh
iqH
khE
@@ -129788,9 +129878,9 @@ vil
bpC
qDq
kbc
-aLG
-aYO
-aLG
+bqc
+ubQ
+bqc
bbs
bdw
bfo
@@ -129812,9 +129902,9 @@ lJu
bEd
bFs
bbs
-buH
-iEb
-bIT
+uPE
+ekM
+pOW
fzq
oXb
cft
@@ -129893,9 +129983,9 @@ eNi
eNi
eNi
eNi
-alG
-aDZ
-apf
+pEd
+gBg
+jhm
wDM
aOH
aJf
@@ -129911,9 +130001,9 @@ xBe
xBe
xBe
xBe
-alG
-aYj
-wSk
+pEd
+tbD
+rXV
jWh
jWh
jlQ
@@ -129991,9 +130081,9 @@ ngA
koC
koC
xGE
-aem
-mUa
-aLG
+jno
+fqw
+bqc
lgy
ccb
xYP
@@ -130015,9 +130105,9 @@ rXk
xYP
jew
laU
-buH
-jGN
-bJb
+uPE
+dEL
+rzy
uCM
lNw
eFj
@@ -130096,9 +130186,9 @@ olO
wiG
nWN
eNi
-alG
-aYj
-apd
+pEd
+tbD
+xhi
wDM
wDM
wDM
@@ -130114,9 +130204,9 @@ aJh
arq
ufx
alR
-alG
-aYj
-apf
+pEd
+tbD
+jhm
jWh
hSk
hSk
@@ -130194,9 +130284,9 @@ jOx
bpC
qDq
aQL
-jKA
-aYT
-beB
+nYR
+bww
+lhs
lgy
bsG
xYP
@@ -130218,9 +130308,9 @@ lJu
xYP
hLI
laU
-bJz
-rrV
-bJz
+gyw
+uNQ
+gyw
bJC
oXb
cfo
@@ -130299,9 +130389,9 @@ ueG
rPt
jyE
eNi
-alG
-aYj
-apd
+pEd
+tbD
+xhi
hwC
rcS
amx
@@ -130317,9 +130407,9 @@ aJi
azs
atq
alR
-alG
-aYj
-apd
+pEd
+tbD
+xhi
jlQ
tst
uUe
@@ -130397,9 +130487,9 @@ jOx
bpC
ksp
aQL
-aLG
-bSY
-aWR
+bqc
+wqO
+wxD
cau
bCG
cgE
@@ -130421,9 +130511,9 @@ hcw
cgE
yht
blq
-buJ
-jHe
-buH
+ddL
+eZR
+uPE
bJC
kIP
cfo
@@ -130502,9 +130592,9 @@ iKD
rPt
rPt
eNi
-alG
-aYj
-apd
+pEd
+tbD
+xhi
alR
amA
atq
@@ -130520,9 +130610,9 @@ aJj
aMD
atq
alR
-alG
-aYj
-apd
+pEd
+tbD
+xhi
jlQ
tZZ
gLz
@@ -130600,9 +130690,9 @@ pyl
pDt
aQL
aQL
-aLG
-aYO
-aLG
+bqc
+ubQ
+bqc
lgy
ccN
xYP
@@ -130624,9 +130714,9 @@ lJu
xYP
wbV
laU
-buH
-hop
-buH
+uPE
+vuV
+uPE
bJC
bJC
vLA
@@ -130705,9 +130795,9 @@ eNi
eNi
gIh
eNi
-geH
-aDZ
-apd
+iIQ
+gBg
+xhi
alR
amA
atq
@@ -130723,9 +130813,9 @@ amA
ayl
amx
alR
-alG
-aYj
-apd
+pEd
+tbD
+xhi
jWh
jmQ
vcu
@@ -130803,9 +130893,9 @@ jOx
bpC
qZX
aQL
-aLG
-aYO
-aLG
+bqc
+ubQ
+bqc
lgy
ccb
xYP
@@ -130827,9 +130917,9 @@ rXk
xYP
jew
laU
-buH
-hop
-buH
+uPE
+vuV
+uPE
bJC
lbf
cfo
@@ -130908,9 +130998,9 @@ aWb
dyK
vzK
wYY
-alG
-aDZ
-apd
+pEd
+gBg
+xhi
alR
amA
atq
@@ -130926,9 +131016,9 @@ aJl
amx
atq
alR
-alG
-aYj
-apd
+pEd
+tbD
+xhi
jlQ
snE
sGL
@@ -131006,9 +131096,9 @@ jOx
bpC
qDq
bTb
-aLG
-aYO
-aLG
+bqc
+ubQ
+bqc
bbs
ccd
ccN
@@ -131030,9 +131120,9 @@ lJu
huK
jeQ
bbs
-buH
-hop
-buH
+uPE
+vuV
+uPE
xSw
oXb
cfo
@@ -131111,9 +131201,9 @@ tii
eJX
sAC
wYY
-alG
-aDZ
-apd
+pEd
+gBg
+xhi
alR
amA
amx
@@ -131129,9 +131219,9 @@ aJk
amx
atq
alR
-alG
-aYj
-apd
+pEd
+tbD
+xhi
jlQ
tZZ
cBj
@@ -131209,9 +131299,9 @@ osA
cHl
cHl
bTb
-beB
-aYT
-beB
+lhs
+bww
+lhs
bbs
cdp
cdp
@@ -131233,9 +131323,9 @@ fJO
fJO
fJO
bbs
-bJz
-rrV
-bJz
+gyw
+uNQ
+gyw
xSw
ejo
ejo
@@ -131314,9 +131404,9 @@ sjj
fzP
sAC
wYY
-alG
-aYj
-apd
+pEd
+tbD
+xhi
alR
amA
atq
@@ -131332,9 +131422,9 @@ xEO
xEO
lnP
alR
-alG
-aYj
-apf
+pEd
+tbD
+jhm
jWh
qLs
qLs
@@ -131412,33 +131502,33 @@ qDq
qDq
qDq
bTb
-aLG
-aYO
-aLG
-bBh
-aLG
-aLG
-aLG
-aLG
-byC
-aLG
-beB
-aLG
-aLG
-bsT
-buH
-buH
-bJz
-buH
-bSd
-buH
-buH
-buH
-buH
-cbD
-buH
-hop
-buH
+bqc
+ubQ
+bqc
+bqc
+bqc
+bqc
+bqc
+bqc
+dYb
+bqc
+fpI
+bqc
+bqc
+tGS
+uPE
+uPE
+uuT
+uPE
+fRL
+uPE
+uPE
+uPE
+uPE
+uPE
+uPE
+vuV
+uPE
xSw
oXb
oXb
@@ -131517,9 +131607,9 @@ fcM
uzE
qsL
nim
-qhc
-ajP
-apd
+prV
+gqf
+xhi
alR
amA
atq
@@ -131535,9 +131625,9 @@ iWR
iWR
kbx
alR
-alG
-aYj
-apd
+pEd
+tbD
+xhi
jWh
jWh
jlQ
@@ -131615,33 +131705,33 @@ ksp
rou
ksp
aQL
-aLG
-aZl
-tzf
-mRS
-tzf
-tBL
-bhn
-tBL
-tBL
-tBL
-crW
-tBL
-tBL
-mji
-ftx
-ftx
-bUz
-ftx
-ftx
-ftx
-bCE
-ftx
-hvp
-rUs
-hvp
-bIl
-bIR
+bqc
+qas
+qUO
+qUO
+qUO
+reu
+fLf
+reu
+reu
+reu
+kkN
+reu
+reu
+uTP
+kEE
+kEE
+dCM
+kEE
+kEE
+kEE
+ulH
+kEE
+wzJ
+wzJ
+wzJ
+nmH
+xui
bJC
kIP
qer
@@ -131720,9 +131810,9 @@ xlC
gyO
kTN
eNi
-alJ
-aYj
-apd
+pvE
+tbD
+xhi
alR
amA
atq
@@ -131738,14 +131828,14 @@ xEO
xEO
aOV
alR
-alG
-aYj
-apd
+pEd
+tbD
+xhi
jWh
-kUw
-dod
-eNv
-rxV
+wFQ
+bop
+vyI
+jnp
thV
fCL
uIv
@@ -131818,33 +131908,33 @@ oBr
oBr
oBr
oBr
-tfl
-aLG
-aLG
-bBh
-aLG
-aNO
-sLE
-aNO
-aNO
-aLG
-beB
-aLG
-aLG
-bsV
-buH
-buH
-bJz
-buH
-bHa
-bHa
-hop
-bHa
-buH
-cbD
-buH
-buH
-jMb
+ovQ
+bqc
+bqc
+bqc
+bqc
+nci
+mww
+nci
+nci
+bqc
+rVC
+bqc
+bqc
+tGS
+uPE
+uPE
+tIl
+uPE
+cJs
+cJs
+vuV
+cJs
+uPE
+uPE
+uPE
+uPE
+pqw
bJC
bJC
bJC
@@ -131923,9 +132013,9 @@ oNb
iFC
qAA
eNi
-alG
-aDZ
-apd
+pEd
+gBg
+xhi
alR
arK
atc
@@ -131941,15 +132031,15 @@ aJq
aMG
aOW
alR
-alG
-aYj
-apd
+pEd
+tbD
+xhi
jWh
-tZP
-hSk
-hSk
+bXy
+bop
+vyI
+vyI
vyI
-thV
fCL
uIv
hSk
@@ -132025,25 +132115,25 @@ oBr
qPn
oBr
oBr
-bCW
-bEH
-bHt
-bJi
-bKE
-bKE
+jxX
+knl
+pum
+jAj
+kKY
+kKY
oJk
lNR
lNR
-lNR
+oJk
lNR
lNR
oJk
-bWV
-jkd
-bYE
-bZz
-cav
-bBa
+mXy
+oGh
+far
+vDo
+nnr
+cNm
ljv
ljv
sUi
@@ -132126,9 +132216,9 @@ eNi
eNi
eNi
eNi
-aEp
-lIw
-aEp
+mQF
+rnO
+mQF
alO
alO
alO
@@ -132144,14 +132234,14 @@ alO
alO
alO
alO
-aEp
-lIw
-aEp
+mQF
+rnO
+mQF
jWh
-nDL
+wFQ
+bop
vyI
-vyI
-wTJ
+wKc
thV
uWV
uIv
@@ -132329,9 +132419,9 @@ dWX
owg
owg
ptK
-aGD
-aPb
-apj
+bZq
+hfc
+jgS
aqq
aPa
eky
@@ -132347,9 +132437,9 @@ eky
eky
aPa
aqq
-aGD
-aPb
-kff
+bZq
+hfc
+lBf
jWh
xXa
xXa
@@ -132532,9 +132622,9 @@ keR
jhx
keR
dwI
-aTS
-wqq
-agJ
+pym
+jae
+tGW
hal
uYg
nau
@@ -132550,9 +132640,9 @@ uYg
nau
uYg
hal
-aGC
-wqq
-aTS
+rrG
+jae
+pym
mPh
soP
tWi
@@ -132735,9 +132825,9 @@ kPG
kPG
cVw
ptK
-aIe
-anR
-lNl
+iOP
+xjI
+fzm
aqq
eky
aNl
@@ -132753,9 +132843,9 @@ eky
aNl
eky
aqq
-aIe
-iYj
-lNl
+iOP
+xSl
+fzm
jWh
tim
uWV
@@ -132938,9 +133028,9 @@ ucp
cIW
ptK
ptK
-pji
-dKm
-pji
+ybk
+sDe
+ybk
aHe
jlT
exi
@@ -134873,13 +134963,13 @@ shL
uXk
mlF
hsy
-hgV
-osM
-ghX
+ckZ
+hmv
+hmv
dTS
-okQ
-xIO
-nxZ
+hmv
+hmv
+ckZ
hsy
tos
uXk
@@ -135275,7 +135365,7 @@ nic
tmQ
ppM
hsy
-npn
+txS
bVN
oGJ
xpZ
@@ -135289,7 +135379,7 @@ coH
oTO
uqh
iAE
-gNG
+sct
hsy
iWa
fZR
@@ -135478,21 +135568,21 @@ nic
aIh
aIh
hsy
-cGe
+fCT
uXk
rae
jIV
pzM
mtZ
-bqP
-fyd
-qYo
+hmv
+hmv
+hmv
fQn
pzM
nac
xNf
uXk
-fbH
+slv
hsy
aIh
aIh
@@ -135681,21 +135771,21 @@ nic
ppM
ppM
hsy
-ebt
+igs
nCn
oGJ
uSW
kzO
vaZ
kYL
-dLi
+hmv
sCV
rjO
suY
pdK
uqh
pJr
-fbH
+slv
hsy
aIh
aIh
@@ -135885,19 +135975,19 @@ aIh
ppM
hsy
hsy
-vVX
+wTB
mlF
uXk
hmw
gSa
mtZ
-nbv
+hmv
fQn
wSV
ulp
uXk
tos
-fbH
+slv
hsy
hsy
ppM
@@ -136088,19 +136178,19 @@ aIh
aIh
aIh
hsy
-hwd
+ygP
mlF
hsy
-kag
+hcX
fQn
mtZ
-xxl
+hmv
fQn
mtZ
-dKc
+hmv
hsy
beL
-hwd
+ygP
hsy
cWb
aIh
@@ -136294,13 +136384,13 @@ hsy
ylh
opH
hsy
-kJn
+pvI
fQn
qoR
aPU
rjO
mtZ
-rDB
+njS
hsy
iEw
ylh
@@ -136497,13 +136587,13 @@ hsy
ylh
mlF
hsy
-nFM
+hmv
eZp
kzO
pzM
hip
ptZ
-urW
+hmv
hsy
tos
ylh
@@ -139703,8 +139793,8 @@ fEN
cqm
gTH
qit
-rna
-qQS
+ebN
+cxc
gwn
pfT
jYR
@@ -139901,11 +139991,11 @@ sbJ
sbJ
sbJ
daz
-jtj
-avK
-avK
+rna
+clw
+qQS
sKY
-avK
+qQS
bIp
fKe
dDp
@@ -140307,12 +140397,12 @@ daz
daz
kfU
daz
-rna
-rna
+ebN
+ebN
lnS
uVv
yit
-rna
+ebN
cxc
kBy
kBy
@@ -140502,7 +140592,7 @@ lmz
lmz
daz
daz
-scS
+eKJ
yaZ
ffE
hZj
@@ -140511,8 +140601,8 @@ daz
daz
daz
sGZ
-rna
-rna
+ebN
+ebN
roH
ebN
ebN
@@ -140916,14 +141006,14 @@ ffE
ffE
jqP
cLo
-vfB
+clw
viB
dIi
qLS
-vfB
+erN
wkM
jvB
-jvB
+jtj
ieF
ieF
pJR
@@ -141318,13 +141408,13 @@ eKJ
yaZ
ffE
hZj
-mUC
+clw
daz
daz
daz
tHu
-rna
-rna
+ebN
+ebN
gXs
ebN
ebN
@@ -141525,13 +141615,13 @@ daz
daz
sTV
daz
-rna
-rna
+ebN
+ebN
gbg
uVv
-erN
-rna
-qQS
+yit
+ebN
+cxc
kBy
kBy
gfu
@@ -141931,11 +142021,11 @@ sbJ
sbJ
sbJ
daz
-jtj
-avK
-avK
+rna
+clw
+qQS
aCd
-avK
+qQS
mFN
igr
sEK
@@ -142139,7 +142229,7 @@ rCi
gba
mUz
our
-rna
+ebN
cxc
kBy
kBy
diff --git a/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm b/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm
index b593cfbd943a..5a4ce7045021 100644
--- a/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm
+++ b/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm
@@ -700,6 +700,13 @@
/obj/item/stool,
/turf/open/gm/dirtgrassborder/west,
/area/whiskey_outpost/outside/lane/two_south)
+"cB" = (
+/obj/structure/machinery/fuelcell_recycler/full,
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "floor_plate"
+ },
+/area/whiskey_outpost/inside/engineering)
"cC" = (
/obj/structure/sign/poster,
/turf/closed/wall/r_wall,
@@ -1397,76 +1404,6 @@
"fj" = (
/turf/open/floor/prison,
/area/whiskey_outpost/inside/bunker)
-"fk" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/storage/firstaid/rad,
-/obj/item/storage/firstaid/rad,
-/obj/item/storage/firstaid/rad,
-/obj/item/storage/firstaid/rad,
-/obj/item/storage/firstaid/toxin{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/toxin{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/toxin{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/toxin{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/fire,
-/obj/item/storage/firstaid/fire,
-/obj/item/storage/firstaid/fire,
-/obj/item/storage/firstaid/fire,
-/obj/item/storage/firstaid/regular{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/regular{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/regular{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/regular{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/o2,
-/obj/item/storage/firstaid/o2,
-/obj/item/storage/firstaid/o2,
-/obj/item/storage/firstaid/o2,
-/obj/item/storage/firstaid/adv{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/adv{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/adv{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/adv{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/effect/landmark/wo_supplies/storage/belts/lifesaver,
-/obj/effect/landmark/wo_supplies/storage/belts/lifesaver,
-/obj/effect/landmark/wo_supplies/storage/belts/lifesaver,
-/turf/open/floor{
- dir = 5;
- icon_state = "whitegreen"
- },
-/area/whiskey_outpost/inside/hospital)
"fl" = (
/obj/structure/surface/rack,
/obj/item/ammo_magazine/sentry,
@@ -1929,13 +1866,6 @@
icon_state = "floor_plate"
},
/area/whiskey_outpost/inside/cic)
-"gX" = (
-/obj/structure/machinery/gel_refiller,
-/turf/open/floor{
- dir = 4;
- icon_state = "whitegreen"
- },
-/area/whiskey_outpost/inside/hospital)
"gZ" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/reagent_container/glass/beaker/bluespace,
@@ -2177,6 +2107,13 @@
icon_state = "whitegreen"
},
/area/whiskey_outpost/inside/hospital)
+"hH" = (
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "floor_plate"
+ },
+/area/whiskey_outpost/inside/engineering)
"hI" = (
/turf/open/gm/grass/gbcorner/south_west,
/area/whiskey_outpost/outside/lane/one_north)
@@ -4286,6 +4223,13 @@
/obj/effect/landmark/start/whiskey/engineer,
/turf/open/gm/dirtgrassborder/north,
/area/whiskey_outpost/outside/lane/two_south)
+"pk" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "floor_plate"
+ },
+/area/whiskey_outpost/inside/engineering)
"pm" = (
/obj/effect/decal/cleanable/blood/writing,
/obj/item/weapon/gun/pistol/m4a3,
@@ -4898,6 +4842,10 @@
"rp" = (
/turf/open/jungle,
/area/whiskey_outpost/outside/north/northwest)
+"rq" = (
+/obj/effect/landmark/start/whiskey/engineering,
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/whiskey_outpost/inside/engineering)
"rs" = (
/obj/item/storage/toolbox/emergency,
/turf/open/floor/plating/plating_catwalk/prison,
@@ -5058,16 +5006,6 @@
},
/turf/open/gm/dirt,
/area/whiskey_outpost/outside/north/beach)
-"rR" = (
-/obj/structure/closet/hydrant{
- pixel_x = -32
- },
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "floor_plate"
- },
-/area/whiskey_outpost/inside/engineering)
"rS" = (
/obj/structure/filingcabinet,
/turf/open/floor/prison{
@@ -5446,13 +5384,6 @@
/obj/item/tool/pen,
/turf/open/gm/dirt,
/area/whiskey_outpost/outside/mortar_pit)
-"tt" = (
-/obj/structure/machinery/power/geothermal,
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "floor_plate"
- },
-/area/whiskey_outpost/inside/engineering)
"tu" = (
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -5485,14 +5416,6 @@
icon_state = "darkyellowfull2"
},
/area/whiskey_outpost/inside/supply)
-"ty" = (
-/obj/structure/machinery/power/geothermal,
-/obj/structure/machinery/light/small,
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "floor_plate"
- },
-/area/whiskey_outpost/inside/engineering)
"tz" = (
/turf/open/floor{
dir = 1;
@@ -5898,6 +5821,13 @@
},
/turf/open/floor/prison,
/area/whiskey_outpost/inside/supply)
+"uM" = (
+/obj/structure/closet/firecloset/full,
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "floor_plate"
+ },
+/area/whiskey_outpost/inside/engineering)
"uN" = (
/obj/structure/disposalpipe/sortjunction/untagged/flipped{
dir = 1
@@ -6554,6 +6484,14 @@
"xb" = (
/turf/closed/wall/r_wall/unmeltable,
/area/whiskey_outpost/outside/north/beach)
+"xc" = (
+/obj/structure/machinery/light/small,
+/obj/structure/machinery/power/reactor/colony,
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "floor_plate"
+ },
+/area/whiskey_outpost/inside/engineering)
"xg" = (
/turf/open/floor/prison{
dir = 4;
@@ -7438,6 +7376,13 @@
},
/turf/open/floor/plating/plating_catwalk/prison,
/area/whiskey_outpost/inside/bunker)
+"Ay" = (
+/obj/structure/machinery/gel_refiller,
+/turf/open/floor{
+ dir = 4;
+ icon_state = "whitegreen"
+ },
+/area/whiskey_outpost/inside/hospital)
"AA" = (
/turf/open/jungle,
/area/whiskey_outpost/outside/south/far)
@@ -9779,6 +9724,14 @@
/obj/item/tool/crowbar,
/turf/open/gm/dirt,
/area/whiskey_outpost/outside/lane/three_south)
+"JA" = (
+/obj/structure/machinery/power/reactor/colony,
+/obj/structure/machinery/light/small,
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "floor_plate"
+ },
+/area/whiskey_outpost/inside/engineering)
"JB" = (
/obj/structure/disposalpipe/sortjunction{
dir = 1;
@@ -11094,6 +11047,17 @@
},
/turf/open/gm/river,
/area/whiskey_outpost/outside/river/west)
+"PR" = (
+/obj/structure/surface/rack,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "floor_plate"
+ },
+/area/whiskey_outpost/inside/engineering)
"PT" = (
/obj/structure/machinery/medical_pod/sleeper,
/turf/open/floor{
@@ -12545,6 +12509,76 @@
icon_state = "floor_plate"
},
/area/whiskey_outpost/inside/bunker/pillbox/one)
+"Wj" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/firstaid/rad,
+/obj/item/storage/firstaid/rad,
+/obj/item/storage/firstaid/rad,
+/obj/item/storage/firstaid/rad,
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/fire,
+/obj/item/storage/firstaid/fire,
+/obj/item/storage/firstaid/fire,
+/obj/item/storage/firstaid/fire,
+/obj/item/storage/firstaid/regular{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/regular{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/regular{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/regular{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/o2,
+/obj/item/storage/firstaid/o2,
+/obj/item/storage/firstaid/o2,
+/obj/item/storage/firstaid/o2,
+/obj/item/storage/firstaid/adv{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/adv{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/adv{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/adv{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/effect/landmark/wo_supplies/storage/belts/lifesaver,
+/obj/effect/landmark/wo_supplies/storage/belts/lifesaver,
+/obj/effect/landmark/wo_supplies/storage/belts/lifesaver,
+/turf/open/floor{
+ dir = 5;
+ icon_state = "whitegreen"
+ },
+/area/whiskey_outpost/inside/hospital)
"Wk" = (
/obj/structure/machinery/light/small{
dir = 1
@@ -19565,13 +19599,13 @@ WK
ak
ak
ak
-ak
-mT
-mT
-mT
-mT
-mT
-mT
+nK
+nK
+nK
+nK
+nK
+nK
+nK
mT
mT
mT
@@ -19767,13 +19801,13 @@ aC
qe
ih
Nr
-ak
-mT
-mT
-mT
-mT
-mT
-mT
+nK
+uM
+rq
+fG
+rq
+PR
+nK
mT
mT
mT
@@ -19970,11 +20004,11 @@ PB
PM
Ed
nK
-nK
-nK
-nK
-nK
-nK
+pk
+sP
+rV
+sP
+cB
nK
nK
nK
@@ -20174,9 +20208,9 @@ PM
nK
qu
re
-rR
+rV
sP
-tt
+hH
nK
vl
vR
@@ -20376,9 +20410,9 @@ uI
nK
qx
ri
-rf
+rV
sP
-ty
+JA
nK
vl
rV
@@ -20578,9 +20612,9 @@ mh
nK
qu
re
-rf
+rV
sP
-tt
+hH
nK
vl
rV
@@ -20780,9 +20814,9 @@ nI
Kr
qC
rs
-fG
+rV
sP
-ty
+xc
nK
vl
rV
@@ -26217,8 +26251,8 @@ bG
cb
pq
qz
-fk
-gX
+Wj
+Ay
hD
im
iO
diff --git a/maps/shuttles/dropship_alamo.dmm b/maps/shuttles/dropship_alamo.dmm
index d23036afdea3..dd799ca7cd6e 100644
--- a/maps/shuttles/dropship_alamo.dmm
+++ b/maps/shuttles/dropship_alamo.dmm
@@ -18,14 +18,6 @@
/obj/structure/shuttle/part/dropship1/transparent/nose_center,
/turf/template_noop,
/area/shuttle/drop1/sulaco)
-"bc" = (
-/obj/effect/attach_point/electronics/dropship1{
- dir = 1;
- attach_id = 5
- },
-/obj/structure/shuttle/part/dropship1/transparent/inner_left_weapons,
-/turf/template_noop,
-/area/shuttle/drop1/sulaco)
"be" = (
/obj/structure/shuttle/part/dropship1/transparent/upper_right_wing,
/turf/template_noop,
@@ -81,15 +73,6 @@
icon_state = "floor8"
},
/area/shuttle/drop1/sulaco)
-"ed" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{
- dir = 1;
- id = "starboard_door"
- },
-/turf/open/shuttle/dropship{
- icon_state = "rasputin15"
- },
-/area/shuttle/drop1/sulaco)
"eD" = (
/obj/structure/shuttle/part/dropship1/transparent/engine_right_cap,
/turf/template_noop,
@@ -101,7 +84,7 @@
/area/shuttle/drop1/sulaco)
"if" = (
/obj/structure/shuttle/part/dropship1/left_outer_wing_connector,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop1/sulaco)
"ig" = (
/turf/closed/shuttle/dropship1{
@@ -218,7 +201,7 @@
/area/shuttle/drop1/sulaco)
"rl" = (
/obj/structure/shuttle/part/dropship1/lower_right_wall,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop1/sulaco)
"rr" = (
/turf/closed/shuttle/dropship1/transparent{
@@ -229,17 +212,9 @@
/obj/structure/shuttle/part/dropship1/transparent/left_outer_bottom_wing,
/turf/template_noop,
/area/shuttle/drop1/sulaco)
-"sm" = (
-/obj/effect/attach_point/fuel/dropship1{
- attach_id = 10
- },
-/turf/closed/shuttle/dropship1/transparent{
- icon_state = "28"
- },
-/area/shuttle/drop1/sulaco)
"sA" = (
/obj/structure/shuttle/part/dropship1/lower_left_wall,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop1/sulaco)
"tR" = (
/obj/item/device/radio/intercom/alamo{
@@ -279,7 +254,7 @@
/area/shuttle/drop1/sulaco)
"xM" = (
/obj/structure/shuttle/part/dropship1/bottom_right_wall,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop1/sulaco)
"yQ" = (
/turf/closed/shuttle/dropship1/transparent{
@@ -288,7 +263,7 @@
/area/shuttle/drop1/sulaco)
"yU" = (
/obj/structure/shuttle/part/dropship1/bottom_left_wall,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop1/sulaco)
"zw" = (
/obj/structure/shuttle/part/dropship1/transparent/upper_left_wing,
@@ -319,6 +294,14 @@
icon_state = "63"
},
/area/shuttle/drop1/sulaco)
+"BM" = (
+/obj/effect/attach_point/crew_weapon/dropship1/floor{
+ attach_id = 9
+ },
+/turf/open/shuttle/dropship{
+ icon_state = "rasputin15"
+ },
+/area/shuttle/drop1/sulaco)
"BS" = (
/turf/closed/shuttle/dropship1{
icon_state = "48"
@@ -358,7 +341,7 @@
/area/shuttle/drop1/sulaco)
"EN" = (
/obj/structure/shuttle/part/dropship1/transparent/engine_left_exhaust,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop1/sulaco)
"FA" = (
/obj/structure/shuttle/part/dropship1/transparent/engine_left_cap,
@@ -369,6 +352,15 @@
icon_state = "39"
},
/area/shuttle/drop1/sulaco)
+"GQ" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{
+ dir = 1;
+ id = "starboard_door"
+ },
+/turf/open/shuttle/dropship{
+ icon_state = "rasputin15"
+ },
+/area/shuttle/drop1/sulaco)
"Ho" = (
/obj/structure/machinery/computer/dropship_weapons/dropship1,
/obj/structure/transmitter/rotary{
@@ -401,6 +393,23 @@
icon_state = "35"
},
/area/shuttle/drop1/sulaco)
+"Iu" = (
+/obj/effect/attach_point/fuel/dropship1{
+ dir = 1;
+ pixel_x = -32
+ },
+/turf/closed/shuttle/dropship1/transparent{
+ icon_state = "33"
+ },
+/area/shuttle/drop1/sulaco)
+"IP" = (
+/obj/effect/attach_point/electronics/dropship1{
+ dir = 1;
+ attach_id = 6
+ },
+/obj/structure/shuttle/part/dropship1/transparent/inner_right_weapons,
+/turf/template_noop,
+/area/shuttle/drop1/sulaco)
"Jb" = (
/turf/closed/shuttle/dropship1/transparent{
icon_state = "80"
@@ -408,23 +417,17 @@
/area/shuttle/drop1/sulaco)
"Jm" = (
/obj/structure/shuttle/part/dropship1/transparent/engine_right_exhaust,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop1/sulaco)
"JP" = (
/turf/closed/shuttle/dropship1{
icon_state = "62"
},
/area/shuttle/drop1/sulaco)
-"Kk" = (
-/obj/effect/attach_point/crew_weapon/dropship1/floor{
- attach_id = 7
- },
-/turf/open/shuttle/dropship{
- icon_state = "rasputin15"
+"Kt" = (
+/obj/structure/machinery/door/airlock/hatch/cockpit{
+ dir = 1
},
-/area/shuttle/drop1/sulaco)
-"KC" = (
-/obj/structure/machinery/door/airlock/hatch/cockpit,
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/shuttle/dropship{
icon_state = "rasputin15"
@@ -442,30 +445,13 @@
/area/shuttle/drop1/sulaco)
"Me" = (
/obj/structure/shuttle/part/dropship1/left_inner_wing_connector,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop1/sulaco)
"MP" = (
/turf/closed/shuttle/dropship1{
icon_state = "64"
},
/area/shuttle/drop1/sulaco)
-"Nv" = (
-/obj/effect/attach_point/crew_weapon/dropship1/floor{
- attach_id = 8
- },
-/turf/open/shuttle/dropship{
- icon_state = "rasputin15"
- },
-/area/shuttle/drop1/sulaco)
-"ND" = (
-/obj/effect/attach_point/fuel/dropship1{
- pixel_x = -32;
- attach_id = 11
- },
-/turf/closed/shuttle/dropship1/transparent{
- icon_state = "33"
- },
-/area/shuttle/drop1/sulaco)
"NQ" = (
/obj/structure/shuttle/part/dropship1/transparent/left_inner_bottom_wing,
/turf/template_noop,
@@ -506,9 +492,9 @@
icon_state = "rasputin15"
},
/area/shuttle/drop1/sulaco)
-"PV" = (
+"PA" = (
/obj/effect/attach_point/crew_weapon/dropship1/floor{
- attach_id = 9
+ attach_id = 7
},
/turf/open/shuttle/dropship{
icon_state = "rasputin15"
@@ -539,7 +525,7 @@
/area/shuttle/drop1/sulaco)
"Ta" = (
/obj/structure/shuttle/part/dropship1/right_inner_wing_connector,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop1/sulaco)
"Te" = (
/obj/structure/shuttle/part/dropship1/transparent/right_inner_bottom_wing,
@@ -598,6 +584,14 @@
icon_state = "rasputin15"
},
/area/shuttle/drop1/sulaco)
+"UN" = (
+/obj/effect/attach_point/electronics/dropship1{
+ dir = 1;
+ attach_id = 5
+ },
+/obj/structure/shuttle/part/dropship1/transparent/inner_left_weapons,
+/turf/template_noop,
+/area/shuttle/drop1/sulaco)
"Vm" = (
/turf/closed/shuttle/dropship1/transparent{
icon_state = "78"
@@ -609,7 +603,7 @@
/area/shuttle/drop1/sulaco)
"Wg" = (
/obj/structure/shuttle/part/dropship1/right_outer_wing_connector,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop1/sulaco)
"WQ" = (
/turf/closed/shuttle/dropship1{
@@ -634,7 +628,15 @@
icon_state = "rasputin7"
},
/area/shuttle/drop1/sulaco)
-"XP" = (
+"XH" = (
+/obj/effect/attach_point/fuel/dropship1{
+ dir = 1
+ },
+/turf/closed/shuttle/dropship1/transparent{
+ icon_state = "28"
+ },
+/area/shuttle/drop1/sulaco)
+"XI" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{
id = "port_door";
dir = 2
@@ -643,13 +645,13 @@
icon_state = "rasputin15"
},
/area/shuttle/drop1/sulaco)
-"Ye" = (
-/obj/effect/attach_point/electronics/dropship1{
- dir = 1;
- attach_id = 6
+"YV" = (
+/obj/effect/attach_point/crew_weapon/dropship1/floor{
+ attach_id = 8
+ },
+/turf/open/shuttle/dropship{
+ icon_state = "rasputin15"
},
-/obj/structure/shuttle/part/dropship1/transparent/inner_right_weapons,
-/turf/template_noop,
/area/shuttle/drop1/sulaco)
"Za" = (
/turf/closed/shuttle/dropship1{
@@ -683,7 +685,7 @@ mb
mb
FA
Oq
-sm
+XH
iz
EN
mb
@@ -700,7 +702,7 @@ Et
iI
JP
il
-XP
+XI
mW
qn
sA
@@ -717,7 +719,7 @@ NQ
mb
mb
mb
-bc
+UN
oo
TK
ws
@@ -787,7 +789,7 @@ ax
EB
Py
tR
-KC
+Kt
dU
Ph
BB
@@ -796,11 +798,11 @@ BB
OK
OU
il
-Kk
+PA
il
-Nv
+YV
il
-PV
+BM
il
mb
mb
@@ -855,7 +857,7 @@ Wg
mb
mb
mb
-Ye
+IP
oo
TK
cr
@@ -884,7 +886,7 @@ iv
zV
MP
il
-ed
+GQ
nC
nE
rl
@@ -913,7 +915,7 @@ mb
mb
eD
Gw
-ND
+Iu
qy
Jm
mb
diff --git a/maps/shuttles/dropship_normandy.dmm b/maps/shuttles/dropship_normandy.dmm
index e64fbe62372d..969e5927d3f8 100644
--- a/maps/shuttles/dropship_normandy.dmm
+++ b/maps/shuttles/dropship_normandy.dmm
@@ -15,6 +15,16 @@
icon_state = "rasputin15"
},
/area/shuttle/drop2/sulaco)
+"ba" = (
+/obj/effect/attach_point/fuel/dropship2{
+ dir = 1;
+ pixel_x = -32;
+ attach_id = 11
+ },
+/turf/closed/shuttle/dropship2/transparent{
+ icon_state = "33"
+ },
+/area/shuttle/drop2/sulaco)
"bc" = (
/obj/structure/shuttle/part/dropship2/transparent/left_outer_bottom_wing,
/turf/template_noop,
@@ -36,6 +46,14 @@
/obj/structure/shuttle/part/dropship2/transparent/right_outer_bottom_wing,
/turf/template_noop,
/area/shuttle/drop2/sulaco)
+"db" = (
+/obj/effect/attach_point/crew_weapon/dropship2/floor{
+ attach_id = 7
+ },
+/turf/open/shuttle/dropship{
+ icon_state = "rasputin3"
+ },
+/area/shuttle/drop2/sulaco)
"eu" = (
/turf/closed/shuttle/dropship2{
icon_state = "75"
@@ -51,6 +69,14 @@
icon_state = "29"
},
/area/shuttle/drop2/sulaco)
+"ft" = (
+/obj/effect/attach_point/crew_weapon/dropship2/floor{
+ attach_id = 8
+ },
+/turf/open/shuttle/dropship{
+ icon_state = "rasputin3"
+ },
+/area/shuttle/drop2/sulaco)
"fx" = (
/turf/closed/shuttle/dropship2{
icon_state = "69"
@@ -63,7 +89,7 @@
/area/shuttle/drop2/sulaco)
"fQ" = (
/obj/structure/shuttle/part/dropship2/left_inner_wing_connector,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop2/sulaco)
"gD" = (
/turf/closed/shuttle/dropship2/transparent{
@@ -79,14 +105,6 @@
icon_state = "54"
},
/area/shuttle/drop2/sulaco)
-"gH" = (
-/obj/effect/attach_point/electronics/dropship2{
- dir = 1;
- attach_id = 6
- },
-/obj/structure/shuttle/part/dropship2/transparent/inner_right_weapons,
-/turf/template_noop,
-/area/shuttle/drop2/sulaco)
"gP" = (
/obj/structure/bed/chair/dropship/pilot{
dir = 1
@@ -95,12 +113,22 @@
icon_state = "rasputin15"
},
/area/shuttle/drop2/sulaco)
-"hn" = (
-/obj/effect/attach_point/crew_weapon/dropship2/floor{
- attach_id = 8
+"gV" = (
+/obj/effect/attach_point/fuel/dropship2{
+ dir = 1;
+ attach_id = 10
+ },
+/turf/closed/shuttle/dropship2/transparent{
+ icon_state = "28"
+ },
+/area/shuttle/drop2/sulaco)
+"he" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{
+ dir = 1;
+ id = "starboard_door"
},
/turf/open/shuttle/dropship{
- icon_state = "rasputin3"
+ icon_state = "rasputin15"
},
/area/shuttle/drop2/sulaco)
"it" = (
@@ -118,7 +146,7 @@
/area/shuttle/drop2/sulaco)
"iI" = (
/obj/structure/shuttle/part/dropship2/right_inner_wing_connector,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop2/sulaco)
"jc" = (
/obj/item/device/radio/intercom/normandy{
@@ -151,6 +179,15 @@
icon_state = "26"
},
/area/shuttle/drop2/sulaco)
+"lj" = (
+/obj/structure/machinery/door/airlock/hatch/cockpit/two{
+ dir = 1
+ },
+/obj/structure/blocker/forcefield/multitile_vehicles,
+/turf/open/shuttle/dropship{
+ icon_state = "rasputin15"
+ },
+/area/shuttle/drop2/sulaco)
"lz" = (
/obj/effect/attach_point/weapon/dropship2/right_fore,
/obj/structure/shuttle/part/dropship2/transparent/outer_right_weapons,
@@ -175,14 +212,6 @@
icon_state = "62"
},
/area/shuttle/drop2/sulaco)
-"mn" = (
-/obj/effect/attach_point/fuel/dropship2{
- attach_id = 10
- },
-/turf/closed/shuttle/dropship2/transparent{
- icon_state = "28"
- },
-/area/shuttle/drop2/sulaco)
"mz" = (
/obj/structure/machinery/camera/autoname/almayer/dropship_two{
dir = 4;
@@ -200,15 +229,6 @@
icon_state = "rasputin15"
},
/area/shuttle/drop2/sulaco)
-"mA" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{
- id = "port_door";
- dir = 2
- },
-/turf/open/shuttle/dropship{
- icon_state = "rasputin15"
- },
-/area/shuttle/drop2/sulaco)
"nq" = (
/obj/effect/attach_point/weapon/dropship2/left_fore,
/obj/structure/shuttle/part/dropship2/transparent/outer_left_weapons,
@@ -216,7 +236,7 @@
/area/shuttle/drop2/sulaco)
"nS" = (
/obj/structure/shuttle/part/dropship2/lower_left_wall,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop2/sulaco)
"oc" = (
/obj/structure/shuttle/part/dropship2/transparent/nose_top_right,
@@ -267,18 +287,26 @@
/obj/structure/shuttle/part/dropship2/transparent/upper_left_wing,
/turf/template_noop,
/area/shuttle/drop2/sulaco)
-"vd" = (
+"ut" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{
+ id = "port_door";
+ dir = 2
+ },
/turf/open/shuttle/dropship{
- icon_state = "rasputin3"
+ icon_state = "rasputin15"
},
/area/shuttle/drop2/sulaco)
-"vh" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{
- dir = 1;
- id = "starboard_door"
+"uC" = (
+/obj/effect/attach_point/crew_weapon/dropship2/floor{
+ attach_id = 9
},
/turf/open/shuttle/dropship{
- icon_state = "rasputin15"
+ icon_state = "rasputin3"
+ },
+/area/shuttle/drop2/sulaco)
+"vd" = (
+/turf/open/shuttle/dropship{
+ icon_state = "rasputin3"
},
/area/shuttle/drop2/sulaco)
"wX" = (
@@ -325,14 +353,6 @@
icon_state = "56"
},
/area/shuttle/drop2/sulaco)
-"Bg" = (
-/obj/effect/attach_point/crew_weapon/dropship2/floor{
- attach_id = 7
- },
-/turf/open/shuttle/dropship{
- icon_state = "rasputin3"
- },
-/area/shuttle/drop2/sulaco)
"Bi" = (
/turf/closed/shuttle/dropship2/transparent{
icon_state = "97"
@@ -362,6 +382,14 @@
icon_state = "rasputin4"
},
/area/shuttle/drop2/sulaco)
+"Dq" = (
+/obj/effect/attach_point/electronics/dropship2{
+ dir = 1;
+ attach_id = 6
+ },
+/obj/structure/shuttle/part/dropship2/transparent/inner_right_weapons,
+/turf/template_noop,
+/area/shuttle/drop2/sulaco)
"Dy" = (
/turf/closed/shuttle/dropship2/transparent{
icon_state = "35"
@@ -477,14 +505,6 @@
/obj/structure/shuttle/part/dropship2/transparent/nose_top_left,
/turf/template_noop,
/area/shuttle/drop2/sulaco)
-"MA" = (
-/obj/effect/attach_point/crew_weapon/dropship2/floor{
- attach_id = 9
- },
-/turf/open/shuttle/dropship{
- icon_state = "rasputin3"
- },
-/area/shuttle/drop2/sulaco)
"ME" = (
/turf/closed/shuttle/dropship2/transparent{
icon_state = "96"
@@ -514,16 +534,7 @@
/area/shuttle/drop2/sulaco)
"NM" = (
/obj/structure/shuttle/part/dropship2/left_outer_wing_connector,
-/turf/open/space/basic,
-/area/shuttle/drop2/sulaco)
-"Od" = (
-/obj/effect/attach_point/fuel/dropship2{
- pixel_x = -32;
- attach_id = 11
- },
-/turf/closed/shuttle/dropship2/transparent{
- icon_state = "33"
- },
+/turf/template_noop,
/area/shuttle/drop2/sulaco)
"Ov" = (
/obj/structure/shuttle/part/dropship2/transparent/right_inner_bottom_wing,
@@ -587,7 +598,7 @@
/area/shuttle/drop2/sulaco)
"QK" = (
/obj/structure/shuttle/part/dropship2/lower_right_wall,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop2/sulaco)
"Rr" = (
/turf/template_noop,
@@ -607,7 +618,7 @@
/area/shuttle/drop2/sulaco)
"RJ" = (
/obj/structure/shuttle/part/dropship2/right_outer_wing_connector,
-/turf/open/space/basic,
+/turf/template_noop,
/area/shuttle/drop2/sulaco)
"SB" = (
/obj/structure/shuttle/part/dropship2/nose_front_left,
@@ -672,13 +683,6 @@
icon_state = "25"
},
/area/shuttle/drop2/sulaco)
-"VW" = (
-/obj/structure/machinery/door/airlock/hatch/cockpit/two,
-/obj/structure/blocker/forcefield/multitile_vehicles,
-/turf/open/shuttle/dropship{
- icon_state = "rasputin15"
- },
-/area/shuttle/drop2/sulaco)
"VZ" = (
/obj/item/device/radio/intercom/normandy{
layer = 3.5;
@@ -715,7 +719,7 @@ Rr
Rr
BG
SQ
-mn
+gV
sk
Xr
Rr
@@ -732,7 +736,7 @@ OI
GE
lJ
PJ
-mA
+ut
jc
pU
nS
@@ -819,7 +823,7 @@ LY
Bi
MQ
VZ
-VW
+lj
GN
bJ
ZK
@@ -828,11 +832,11 @@ Bb
Iv
rc
vd
-Bg
+db
vd
-hn
+ft
vd
-MA
+uC
PJ
Rr
Rr
@@ -887,7 +891,7 @@ RJ
Rr
Rr
Rr
-gH
+Dq
yl
SY
it
@@ -916,7 +920,7 @@ fI
fx
Tp
PJ
-vh
+he
gG
RG
QK
@@ -945,7 +949,7 @@ Rr
Rr
yh
UP
-Od
+ba
zt
Uu
Rr
diff --git a/maps/shuttles/escape_shuttle_e.dmm b/maps/shuttles/escape_shuttle_e.dmm
index 0ba589df217e..65efffe43619 100644
--- a/maps/shuttles/escape_shuttle_e.dmm
+++ b/maps/shuttles/escape_shuttle_e.dmm
@@ -9,10 +9,10 @@
icon_state = "wall2"
},
/area/shuttle/escape_pod)
-"e" = (
-/obj/docking_port/mobile/crashable/escape_shuttle/e,
-/turf/closed/shuttle/escapepod{
- icon_state = "wall9"
+"f" = (
+/turf/open/shuttle/escapepod{
+ icon_state = "floor0";
+ dir = 8
},
/area/shuttle/escape_pod)
"i" = (
@@ -53,10 +53,6 @@
icon_state = "wall13"
},
/area/shuttle/escape_pod)
-"z" = (
-/obj/structure/machinery/cryopod/evacuation,
-/turf/open/shuttle/escapepod,
-/area/shuttle/escape_pod)
"E" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall10"
@@ -67,16 +63,16 @@
icon_state = "wall11"
},
/area/shuttle/escape_pod)
-"L" = (
+"M" = (
/obj/structure/machinery/cryopod/evacuation,
-/obj/structure/sign/safety/cryo{
- pixel_x = -18
+/turf/open/shuttle/escapepod{
+ icon_state = "floor4"
},
-/turf/open/shuttle/escapepod,
/area/shuttle/escape_pod)
-"N" = (
-/turf/open/shuttle/escapepod{
- icon_state = "floor10"
+"O" = (
+/obj/docking_port/mobile/crashable/escape_shuttle/e,
+/turf/closed/shuttle/escapepod{
+ icon_state = "wall9"
},
/area/shuttle/escape_pod)
"Q" = (
@@ -87,6 +83,15 @@
icon_state = "floor0"
},
/area/shuttle/escape_pod)
+"T" = (
+/obj/structure/machinery/cryopod/evacuation,
+/obj/structure/sign/safety/cryo{
+ pixel_x = -18
+ },
+/turf/open/shuttle/escapepod{
+ icon_state = "floor4"
+ },
+/area/shuttle/escape_pod)
"W" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall4"
@@ -98,20 +103,20 @@ w
t
I
E
-e
+O
"}
(2,1,1) = {"
k
-z
-L
-z
+M
+T
+M
s
"}
(3,1,1) = {"
d
Q
o
-N
+f
s
"}
(4,1,1) = {"
diff --git a/maps/shuttles/escape_shuttle_e_cl.dmm b/maps/shuttles/escape_shuttle_e_cl.dmm
index 490f0abdfa95..4b605503d7de 100644
--- a/maps/shuttles/escape_shuttle_e_cl.dmm
+++ b/maps/shuttles/escape_shuttle_e_cl.dmm
@@ -25,31 +25,24 @@
icon_state = "wall13"
},
/area/shuttle/escape_pod)
-"i" = (
-/obj/structure/machinery/cryopod/evacuation,
-/obj/structure/sign/safety/cryo{
- pixel_x = -18
+"n" = (
+/turf/open/shuttle/escapepod{
+ icon_state = "floor0";
+ dir = 8
},
-/turf/open/shuttle/escapepod,
/area/shuttle/escape_pod)
"s" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall2"
},
/area/shuttle/escape_pod)
-"u" = (
+"z" = (
/obj/structure/machinery/cryopod/evacuation,
-/turf/open/shuttle/escapepod,
-/area/shuttle/escape_pod)
-"v" = (
-/obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison{
- pixel_y = 30
- },
/turf/open/shuttle/escapepod{
- icon_state = "floor0"
+ icon_state = "floor4"
},
/area/shuttle/escape_pod)
-"y" = (
+"D" = (
/obj/structure/machinery/door/airlock/evacuation/liaison{
name = "\improper Evacuation Airlock CL-1";
id_tag = "cl_evac"
@@ -68,11 +61,6 @@
icon_state = "wall6"
},
/area/shuttle/escape_pod)
-"K" = (
-/turf/open/shuttle/escapepod{
- icon_state = "floor10"
- },
-/area/shuttle/escape_pod)
"O" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall4"
@@ -88,11 +76,28 @@
icon_state = "wall12"
},
/area/shuttle/escape_pod)
+"T" = (
+/obj/structure/machinery/cryopod/evacuation,
+/obj/structure/sign/safety/cryo{
+ pixel_x = -18
+ },
+/turf/open/shuttle/escapepod{
+ icon_state = "floor4"
+ },
+/area/shuttle/escape_pod)
"X" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall10"
},
/area/shuttle/escape_pod)
+"Z" = (
+/obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison{
+ pixel_y = 30
+ },
+/turf/open/shuttle/escapepod{
+ icon_state = "floor0"
+ },
+/area/shuttle/escape_pod)
(1,1,1) = {"
h
@@ -103,22 +108,22 @@ a
"}
(2,1,1) = {"
Q
-u
-i
-u
+z
+T
+z
E
"}
(3,1,1) = {"
s
-v
+Z
b
-K
+n
E
"}
(4,1,1) = {"
g
O
O
-y
+D
I
"}
diff --git a/maps/shuttles/escape_shuttle_n.dmm b/maps/shuttles/escape_shuttle_n.dmm
index 71f8515daba8..a7a4e9a69252 100644
--- a/maps/shuttles/escape_shuttle_n.dmm
+++ b/maps/shuttles/escape_shuttle_n.dmm
@@ -1,23 +1,4 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/closed/shuttle/escapepod{
- icon_state = "wall6"
- },
-/area/shuttle/escape_pod)
-"c" = (
-/obj/docking_port/mobile/crashable/escape_shuttle/n,
-/turf/closed/shuttle/escapepod{
- icon_state = "wall9"
- },
-/area/shuttle/escape_pod)
-"f" = (
-/obj/structure/machinery/computer/shuttle/escape_pod_panel{
- pixel_y = 30
- },
-/turf/open/shuttle/escapepod{
- icon_state = "floor7"
- },
-/area/shuttle/escape_pod)
"g" = (
/turf/closed/shuttle/escapepod,
/area/shuttle/escape_pod)
@@ -26,11 +7,6 @@
icon_state = "wall1"
},
/area/shuttle/escape_pod)
-"j" = (
-/turf/open/shuttle/escapepod{
- icon_state = "floor9"
- },
-/area/shuttle/escape_pod)
"k" = (
/obj/structure/machinery/door/airlock/evacuation{
dir = 2;
@@ -45,36 +21,64 @@
icon_state = "wall2"
},
/area/shuttle/escape_pod)
-"F" = (
-/turf/closed/shuttle/escapepod{
- icon_state = "wall3"
+"n" = (
+/turf/open/shuttle/escapepod{
+ icon_state = "floor0"
},
/area/shuttle/escape_pod)
-"H" = (
-/obj/structure/machinery/cryopod/evacuation,
-/turf/open/shuttle/escapepod,
+"p" = (
+/obj/structure/machinery/computer/shuttle/escape_pod_panel{
+ pixel_y = 30
+ },
+/turf/open/shuttle/escapepod{
+ icon_state = "floor2"
+ },
/area/shuttle/escape_pod)
-"L" = (
+"v" = (
+/obj/docking_port/mobile/crashable/escape_shuttle/n,
/turf/closed/shuttle/escapepod{
- icon_state = "wall7"
+ icon_state = "wall9"
},
/area/shuttle/escape_pod)
-"Q" = (
-/turf/closed/shuttle/escapepod{
- icon_state = "wall11"
+"x" = (
+/obj/structure/machinery/cryopod/evacuation,
+/turf/open/shuttle/escapepod{
+ icon_state = "floor4"
},
/area/shuttle/escape_pod)
-"V" = (
+"z" = (
/obj/structure/machinery/cryopod/evacuation,
/obj/structure/sign/safety/cryo{
pixel_x = 8;
pixel_y = -35
},
-/turf/open/shuttle/escapepod,
+/turf/open/shuttle/escapepod{
+ icon_state = "floor4"
+ },
/area/shuttle/escape_pod)
-"W" = (
+"D" = (
/turf/open/shuttle/escapepod{
- icon_state = "floor8"
+ dir = 4
+ },
+/area/shuttle/escape_pod)
+"F" = (
+/turf/closed/shuttle/escapepod{
+ icon_state = "wall3"
+ },
+/area/shuttle/escape_pod)
+"K" = (
+/turf/closed/shuttle/escapepod{
+ icon_state = "wall6"
+ },
+/area/shuttle/escape_pod)
+"L" = (
+/turf/closed/shuttle/escapepod{
+ icon_state = "wall7"
+ },
+/area/shuttle/escape_pod)
+"Q" = (
+/turf/closed/shuttle/escapepod{
+ icon_state = "wall11"
},
/area/shuttle/escape_pod)
"Y" = (
@@ -87,29 +91,29 @@
g
Q
Q
-c
+v
"}
(2,1,1) = {"
i
-f
-H
+p
+x
L
"}
(3,1,1) = {"
k
-W
-V
+D
+z
L
"}
(4,1,1) = {"
l
-j
-H
+n
+x
L
"}
(5,1,1) = {"
F
Y
Y
-a
+K
"}
diff --git a/maps/shuttles/escape_shuttle_s.dmm b/maps/shuttles/escape_shuttle_s.dmm
index 82391a5218d5..db3f602bdb5a 100644
--- a/maps/shuttles/escape_shuttle_s.dmm
+++ b/maps/shuttles/escape_shuttle_s.dmm
@@ -4,20 +4,29 @@
icon_state = "wall1"
},
/area/shuttle/escape_pod)
-"f" = (
+"c" = (
+/obj/structure/machinery/cryopod/evacuation,
/turf/open/shuttle/escapepod{
- icon_state = "floor12"
+ icon_state = "floor4"
},
/area/shuttle/escape_pod)
-"g" = (
-/obj/structure/machinery/cryopod/evacuation,
-/turf/open/shuttle/escapepod,
-/area/shuttle/escape_pod)
"n" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall2"
},
/area/shuttle/escape_pod)
+"o" = (
+/obj/docking_port/mobile/crashable/escape_shuttle/s,
+/turf/closed/shuttle/escapepod{
+ icon_state = "wall9"
+ },
+/area/shuttle/escape_pod)
+"q" = (
+/turf/open/shuttle/escapepod{
+ icon_state = "floor0";
+ dir = 1
+ },
+/area/shuttle/escape_pod)
"v" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall15"
@@ -33,11 +42,26 @@
icon_state = "wall6"
},
/area/shuttle/escape_pod)
+"B" = (
+/obj/structure/machinery/cryopod/evacuation,
+/obj/structure/sign/safety/cryo{
+ pixel_x = 8;
+ pixel_y = 28
+ },
+/turf/open/shuttle/escapepod{
+ icon_state = "floor4"
+ },
+/area/shuttle/escape_pod)
"D" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall10"
},
/area/shuttle/escape_pod)
+"I" = (
+/turf/open/shuttle/escapepod{
+ dir = 8
+ },
+/area/shuttle/escape_pod)
"J" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall14"
@@ -48,9 +72,13 @@
icon_state = "wall4"
},
/area/shuttle/escape_pod)
-"P" = (
+"N" = (
+/obj/structure/machinery/computer/shuttle/escape_pod_panel{
+ pixel_x = 30
+ },
/turf/open/shuttle/escapepod{
- icon_state = "floor11"
+ icon_state = "floor0";
+ dir = 8
},
/area/shuttle/escape_pod)
"Q" = (
@@ -58,14 +86,6 @@
icon_state = "wall13"
},
/area/shuttle/escape_pod)
-"R" = (
-/obj/structure/machinery/computer/shuttle/escape_pod_panel{
- pixel_x = 30
- },
-/turf/open/shuttle/escapepod{
- icon_state = "floor2"
- },
-/area/shuttle/escape_pod)
"T" = (
/obj/structure/machinery/door/airlock/evacuation{
dir = 2;
@@ -75,43 +95,29 @@
icon_state = "test_floor4"
},
/area/shuttle/escape_pod)
-"U" = (
-/obj/docking_port/mobile/crashable/escape_shuttle/s,
-/turf/closed/shuttle/escapepod{
- icon_state = "wall9"
- },
-/area/shuttle/escape_pod)
-"V" = (
-/obj/structure/machinery/cryopod/evacuation,
-/obj/structure/sign/safety/cryo{
- pixel_x = 8;
- pixel_y = 28
- },
-/turf/open/shuttle/escapepod,
-/area/shuttle/escape_pod)
(1,1,1) = {"
Q
D
D
-U
+o
"}
(2,1,1) = {"
n
-g
-f
+c
+q
v
"}
(3,1,1) = {"
a
-V
-P
+B
+I
T
"}
(4,1,1) = {"
n
-g
-R
+c
+N
J
"}
(5,1,1) = {"
diff --git a/maps/shuttles/escape_shuttle_w.dmm b/maps/shuttles/escape_shuttle_w.dmm
index 8f81c83b500b..b6b7452c798f 100644
--- a/maps/shuttles/escape_shuttle_w.dmm
+++ b/maps/shuttles/escape_shuttle_w.dmm
@@ -1,20 +1,25 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/docking_port/mobile/crashable/escape_shuttle/w,
-/turf/closed/shuttle/escapepod{
- icon_state = "wall9"
- },
-/area/shuttle/escape_pod)
"b" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall8"
},
/area/shuttle/escape_pod)
+"d" = (
+/turf/open/shuttle/escapepod{
+ dir = 1
+ },
+/area/shuttle/escape_pod)
"e" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall6"
},
/area/shuttle/escape_pod)
+"g" = (
+/obj/docking_port/mobile/crashable/escape_shuttle/w,
+/turf/closed/shuttle/escapepod{
+ icon_state = "wall9"
+ },
+/area/shuttle/escape_pod)
"j" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall7"
@@ -30,6 +35,12 @@
icon_state = "wall2"
},
/area/shuttle/escape_pod)
+"r" = (
+/obj/structure/machinery/cryopod/evacuation,
+/turf/open/shuttle/escapepod{
+ icon_state = "floor4"
+ },
+/area/shuttle/escape_pod)
"B" = (
/turf/closed/shuttle/escapepod{
icon_state = "wall10"
@@ -45,21 +56,19 @@
icon_state = "wall4"
},
/area/shuttle/escape_pod)
-"H" = (
+"N" = (
+/obj/structure/machinery/computer/shuttle/escape_pod_panel{
+ pixel_y = 30
+ },
/turf/open/shuttle/escapepod{
- icon_state = "floor5"
+ icon_state = "floor2"
},
/area/shuttle/escape_pod)
-"I" = (
-/obj/structure/machinery/cryopod/evacuation,
-/obj/structure/sign/safety/cryo{
- pixel_x = 36
+"O" = (
+/turf/open/shuttle/escapepod{
+ icon_state = "floor0";
+ dir = 1
},
-/turf/open/shuttle/escapepod,
-/area/shuttle/escape_pod)
-"M" = (
-/obj/structure/machinery/cryopod/evacuation,
-/turf/open/shuttle/escapepod,
/area/shuttle/escape_pod)
"P" = (
/turf/closed/shuttle/escapepod{
@@ -74,39 +83,35 @@
icon_state = "test_floor4"
},
/area/shuttle/escape_pod)
-"V" = (
-/obj/structure/machinery/computer/shuttle/escape_pod_panel{
- pixel_y = 30
+"T" = (
+/obj/structure/machinery/cryopod/evacuation,
+/obj/structure/sign/safety/cryo{
+ pixel_x = 36
},
/turf/open/shuttle/escapepod{
icon_state = "floor4"
},
/area/shuttle/escape_pod)
-"W" = (
-/turf/open/shuttle/escapepod{
- icon_state = "floor12"
- },
-/area/shuttle/escape_pod)
(1,1,1) = {"
P
B
S
B
-a
+g
"}
(2,1,1) = {"
F
-V
-H
-W
+N
+d
+O
b
"}
(3,1,1) = {"
p
-M
-I
-M
+r
+T
+r
j
"}
(4,1,1) = {"
diff --git a/maps/shuttles/lifeboat-port.dmm b/maps/shuttles/lifeboat-port.dmm
index 0117730f6971..61b4b6ce54f6 100644
--- a/maps/shuttles/lifeboat-port.dmm
+++ b/maps/shuttles/lifeboat-port.dmm
@@ -320,7 +320,8 @@
/area/shuttle/lifeboat)
"Jg" = (
/turf/open/shuttle/escapepod{
- icon_state = "floor8"
+ icon_state = "floor1";
+ dir = 4
},
/area/shuttle/lifeboat)
"Jw" = (
diff --git a/maps/shuttles/lifeboat-starboard.dmm b/maps/shuttles/lifeboat-starboard.dmm
index 57e302923131..d4ee3702ff37 100644
--- a/maps/shuttles/lifeboat-starboard.dmm
+++ b/maps/shuttles/lifeboat-starboard.dmm
@@ -446,7 +446,8 @@
/area/shuttle/lifeboat)
"VZ" = (
/turf/open/shuttle/escapepod{
- icon_state = "floor8"
+ icon_state = "floor1";
+ dir = 4
},
/area/shuttle/lifeboat)
"Xj" = (
diff --git a/maps/templates/Chinook.dmm b/maps/templates/Chinook.dmm
index 077729447e29..bc16f23270fa 100644
--- a/maps/templates/Chinook.dmm
+++ b/maps/templates/Chinook.dmm
@@ -10,6 +10,23 @@
icon_state = "dark_sterile"
},
/area/adminlevel/chinook/medical)
+"ad" = (
+/obj/structure/sign/safety/east{
+ pixel_x = 12;
+ pixel_y = 25
+ },
+/obj/structure/sign/safety/medical{
+ pixel_y = 25
+ },
+/obj/structure/sign/safety/security{
+ pixel_x = -12;
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"af" = (
/turf/open/floor/almayer_hull{
icon_state = "outerhull_dir"
@@ -54,11 +71,9 @@
/area/adminlevel/chinook)
"ap" = (
/obj/structure/closet/secure_closet/securecom{
- name = "general's secure box"
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
+ name = "secure box"
},
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"aq" = (
/obj/structure/surface/table/almayer,
@@ -69,10 +84,24 @@
/obj/item/reagent_container/food/drinks/cans/waterbottle{
pixel_y = 7
},
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_17";
+ pixel_x = 11;
+ pixel_y = 10
+ },
/turf/open/floor/almayer{
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
+"ar" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/cargo)
"au" = (
/turf/open/floor/almayer_hull{
dir = 4;
@@ -81,25 +110,51 @@
/area/space)
"av" = (
/obj/structure/machinery/cm_vending/sorted/boozeomat,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
+"aw" = (
+/turf/closed/wall/almayer/white/reinforced,
+/area/adminlevel/chinook/medical)
"ax" = (
/obj/structure/machinery/light{
dir = 1
},
/obj/structure/machinery/vending/cola,
+/turf/open/floor/kutjevo/plate,
+/area/adminlevel/chinook/offices)
+"ay" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/obj/structure/platform_decoration{
+ dir = 4
+ },
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 5;
+ icon_state = "plating"
},
-/area/adminlevel/chinook/offices)
+/area/adminlevel/chinook/cargo)
"aA" = (
/obj/structure/machinery/vending/coffee,
/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
+"aB" = (
+/obj/structure/sign/safety/bathmens{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "blue"
+ },
+/area/adminlevel/chinook)
"aC" = (
-/obj/structure/closet/secure_closet/military_police,
+/obj/structure/closet/secure_closet/military_officer_spare{
+ name = "provost uniform locker"
+ },
+/obj/item/clothing/under/marine/mp/provost,
+/obj/item/clothing/under/marine/mp/provost,
+/obj/item/clothing/under/marine/mp/provost,
+/obj/item/clothing/under/marine/mp/provost,
/turf/open/floor/almayer{
dir = 4;
icon_state = "red"
@@ -109,8 +164,8 @@
/obj/structure/machinery/light{
dir = 8
},
-/obj/structure/filingcabinet,
-/turf/open/floor/almayer,
+/obj/structure/displaycase,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"aE" = (
/obj/structure/machinery/light{
@@ -133,12 +188,12 @@
/area/adminlevel/chinook)
"aG" = (
/obj/structure/surface/table/almayer,
-/obj/item/storage/fancy/cigarettes/kpack{
- pixel_x = -4
- },
/obj/structure/machinery/light{
dir = 1
},
+/obj/item/storage/fancy/cigarettes/kpack{
+ pixel_x = -4
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -192,17 +247,15 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
"aP" = (
-/obj/structure/machinery/vending/cola,
-/turf/open/floor/almayer{
- icon_state = "plate"
+/obj/structure/flora/pottedplant/random,
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
},
-/area/adminlevel/chinook/cargo)
+/area/adminlevel/chinook/offices)
"aQ" = (
-/obj/structure/machinery/cryopod,
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "sterile_green_side"
- },
+/obj/structure/machinery/light,
+/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/medical)
"aR" = (
/obj/structure/machinery/door_control{
@@ -239,17 +292,36 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
-"aW" = (
+"aV" = (
+/obj/structure/surface/table/reinforced/black,
/obj/structure/machinery/light{
- dir = 1
+ dir = 8
},
-/obj/structure/machinery/disposal,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/item/reagent_container/food/drinks/coffeecup/uscm{
+ pixel_x = -7;
+ pixel_y = 6
+ },
+/obj/item/prop/tableflag/uscm{
+ pixel_x = 9;
+ pixel_y = 3
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
+"aW" = (
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_21"
+ },
+/obj/structure/sign/safety/biolab{
+ pixel_x = 3;
+ pixel_y = -25
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook)
"aX" = (
/obj/structure/machinery/door/airlock/almayer/security{
name = "\improper Security Armory"
@@ -264,6 +336,16 @@
icon_state = "plating"
},
/area/adminlevel/chinook/sec)
+"aY" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 2
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"aZ" = (
/obj/structure/machinery/door/airlock/almayer/secure{
dir = 1;
@@ -282,7 +364,7 @@
pixel_x = 3;
pixel_y = 8
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"bb" = (
/obj/structure/machinery/light{
@@ -301,6 +383,14 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
+"bd" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/corsat{
+ icon_state = "squares"
+ },
+/area/adminlevel/chinook/cargo)
"be" = (
/obj/structure/bed/chair/comfy/black{
dir = 8
@@ -326,6 +416,9 @@
pixel_x = -11;
pixel_y = 3
},
+/obj/structure/prop/ice_colony/hula_girl{
+ pixel_x = 10
+ },
/turf/open/floor/carpet{
desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
name = "\improper carpet"
@@ -336,8 +429,17 @@
dir = 4
},
/obj/structure/bed/chair/comfy,
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
+"bi" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "blue"
+ },
+/area/adminlevel/chinook)
"bj" = (
/obj/structure/surface/table/almayer,
/obj/item/roller,
@@ -359,79 +461,99 @@
},
/area/adminlevel/chinook)
"bl" = (
-/obj/structure/bed/sofa/south/grey/left,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/surface/table/reinforced/black,
+/obj/structure/noticeboard{
+ pixel_y = 27
+ },
+/obj/item/clothing/accessory/medal/gold/service{
+ pixel_y = 21;
+ pixel_x = -6
+ },
+/obj/item/clothing/accessory/medal/gold/service{
+ pixel_y = 21;
+ pixel_x = -2
},
+/obj/item/clothing/accessory/medal/gold/service{
+ pixel_y = 21;
+ pixel_x = 2
+ },
+/obj/item/clothing/accessory/medal/gold/service{
+ pixel_y = 21;
+ pixel_x = 6
+ },
+/obj/item/tool/lighter/zippo/gold{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/obj/item/prop/tableflag{
+ pixel_x = -9;
+ pixel_y = -2
+ },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"bm" = (
-/obj/structure/bed/sofa/south/grey/right,
-/obj/item/reagent_container/food/drinks/cans/beer,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/surface/table/reinforced/black,
+/obj/item/paper_bin/uscm{
+ pixel_x = -8;
+ pixel_y = 8
+ },
+/obj/item/tool/pen/fountain{
+ pixel_y = 4;
+ pixel_x = -8
+ },
+/obj/item/device/flashlight/lamp{
+ pixel_y = 8;
+ pixel_x = 6
},
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"bn" = (
-/obj/structure/sign/prop1{
- pixel_y = 32
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/clothing/glasses/sunglasses{
+ pixel_y = 9;
+ pixel_x = -3
},
-/obj/structure/machinery/cm_vending/clothing/dress,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/item/clothing/mask/rebreather/scarf/tacticalmask/red{
+ pixel_y = -5
},
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"bp" = (
/obj/structure/machinery/light,
/obj/structure/closet,
/turf/open/floor/almayer,
/area/adminlevel/chinook/cryo)
-"bu" = (
-/obj/structure/machinery/cm_vending/clothing/dress,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+"bq" = (
+/obj/structure/filingcabinet,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
-"bv" = (
+"bu" = (
/obj/structure/surface/table/reinforced/black,
-/obj/item/clothing/head/helmet/marine/pilot{
- pixel_x = 6;
- pixel_y = 3
+/obj/structure/machinery/light{
+ dir = 8
},
-/obj/item/clothing/suit/armor/vest/pilot{
- pixel_x = -5
+/obj/item/toy/beach_ball/holoball{
+ pixel_y = 4
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
+"bv" = (
+/obj/structure/surface/table/reinforced/black,
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"bx" = (
-/obj/structure/surface/table/reinforced/almayer_B,
-/obj/item/tool/weldingtool{
- pixel_x = -9;
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
pixel_y = 4
},
-/obj/item/stack/cable_coil{
- pixel_x = 7
- },
-/obj/item/stack/cable_coil{
- pixel_x = 13;
- pixel_y = 5
- },
-/obj/item/tool/weldingtool{
- pixel_x = -2;
- pixel_y = 6
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal7";
+ pixel_x = 2
},
-/turf/open/floor/plating/plating_catwalk,
+/turf/open/floor/wood,
/area/adminlevel/chinook)
"bz" = (
/turf/open/floor/almayer{
@@ -444,16 +566,17 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
"bB" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/toy/deck/uno{
- pixel_x = 3;
- pixel_y = 8
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = 8;
+ pixel_y = 16
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = -8;
+ pixel_y = 16
},
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"bC" = (
/turf/closed/wall/almayer/outer,
@@ -467,6 +590,29 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
+"bE" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal8";
+ pixel_x = -16;
+ pixel_y = -16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal5";
+ pixel_x = -16;
+ pixel_y = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal6";
+ pixel_x = 16;
+ pixel_y = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal7";
+ pixel_x = 16;
+ pixel_y = -16
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"bF" = (
/obj/item/paper_bin/uscm,
/obj/item/tool/pen,
@@ -491,8 +637,11 @@
"bH" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/storage/box/bodybags,
-/obj/item/reagent_container/food/drinks/bottle/whiskey,
-/turf/open/floor/almayer,
+/obj/item/paper,
+/obj/item/reagent_container/food/drinks/bottle/whiskey{
+ pixel_y = -7
+ },
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"bI" = (
/obj/structure/surface/table/reinforced/black,
@@ -501,6 +650,10 @@
pixel_y = 5
},
/obj/item/reagent_container/food/drinks/h_chocolate,
+/obj/item/prop/tableflag{
+ pixel_x = -9;
+ pixel_y = 12
+ },
/turf/open/floor/carpet{
desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
name = "\improper carpet"
@@ -521,26 +674,39 @@
},
/area/adminlevel/chinook/medical)
"bL" = (
-/obj/structure/machinery/light,
-/obj/structure/machinery/disposal,
-/turf/open/floor/almayer,
-/area/adminlevel/chinook)
-"bO" = (
-/obj/structure/surface/table/almayer,
-/obj/item/device/radio/marine,
-/obj/structure/machinery/light{
- dir = 4
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_x = 6;
+ pixel_y = 4
},
-/turf/open/floor/almayer{
- dir = 4;
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_x = -9;
+ pixel_y = 4
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
+"bN" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_x = -6
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_x = 9
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
+"bO" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/fueltank/custom,
+/turf/open/floor/almayer{
+ dir = 4;
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
-"bP" = (
-/turf/open/floor/almayer/uscm/directional{
- dir = 6
- },
-/area/adminlevel/chinook/shuttle)
"bQ" = (
/obj/item/book/manual/marine_law{
pixel_x = 1;
@@ -551,10 +717,7 @@
/area/adminlevel/chinook/sec)
"bR" = (
/obj/structure/surface/table/reinforced/black,
-/obj/item/storage/mateba_case/general{
- pixel_y = 4
- },
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"bS" = (
/obj/structure/surface/table/reinforced/black,
@@ -566,21 +729,26 @@
"bV" = (
/obj/item/device/flashlight/lamp/green,
/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"bY" = (
-/obj/structure/machinery/cryopod,
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "sterile_green_corner"
+ dir = 1;
+ icon_state = "blue"
},
-/area/adminlevel/chinook/medical)
+/area/adminlevel/chinook)
+"bZ" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/kutjevo/plate,
+/area/adminlevel/chinook/offices)
"ca" = (
/obj/structure/filingcabinet,
/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
pixel_y = 25
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"ce" = (
/turf/open/floor/almayer{
@@ -589,10 +757,7 @@
},
/area/adminlevel/chinook/cargo)
"cf" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/machinery/cm_vending/sorted/medical/blood,
+/obj/structure/machinery/cm_vending/sorted/medical,
/turf/open/floor/almayer{
dir = 1;
icon_state = "sterile_green_side"
@@ -613,10 +778,10 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
"cj" = (
-/obj/structure/surface/table/almayer,
-/obj/item/storage/surgical_tray,
+/obj/structure/machinery/optable,
/turf/open/floor/almayer{
- icon_state = "sterile_green_corner"
+ dir = 1;
+ icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/offices)
"ck" = (
@@ -631,7 +796,6 @@
},
/area/adminlevel/chinook/offices)
"cl" = (
-/obj/structure/machinery/iv_drip,
/turf/open/floor/almayer{
dir = 8;
icon_state = "sterile_green_side"
@@ -650,18 +814,36 @@
},
/area/adminlevel/chinook/engineering)
"cp" = (
-/obj/structure/surface/table/almayer,
-/obj/item/roller,
-/obj/item/roller,
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "sterile_green_side"
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal8";
+ pixel_x = -16;
+ pixel_y = -16
},
-/area/adminlevel/chinook/offices)
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal5";
+ pixel_x = -16;
+ pixel_y = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal6";
+ pixel_x = 16;
+ pixel_y = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal7";
+ pixel_x = 16;
+ pixel_y = -16
+ },
+/obj/item/toy/beach_ball/holoball,
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 2
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"cr" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/storage/fancy/cigar,
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"cs" = (
/obj/structure/machinery/light{
@@ -673,7 +855,7 @@
/obj/structure/machinery/light{
dir = 4
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo,
/area/adminlevel/chinook/offices)
"cu" = (
/obj/structure/machinery/disposal,
@@ -694,9 +876,18 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/sec)
+"cx" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "emerald"
+ },
+/area/adminlevel/chinook/shuttle)
"cy" = (
/obj/structure/surface/table/almayer,
-/obj/item/tool/weldingtool,
+/obj/item/tool/weldingtool/largetank,
/turf/open/floor/almayer{
dir = 1;
icon_state = "orange"
@@ -710,12 +901,27 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
+"cA" = (
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/cell/super{
+ pixel_x = 3;
+ pixel_y = 4
+ },
+/obj/item/cell/super{
+ pixel_x = 3
+ },
+/obj/item/tool/screwdriver{
+ pixel_x = -1;
+ pixel_y = 6
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
"cB" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/storage/fancy/cigarettes/arcturian_ace{
pixel_y = 6
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo,
/area/adminlevel/chinook/offices)
"cC" = (
/obj/structure/machinery/door/window/eastleft{
@@ -729,37 +935,23 @@
/area/adminlevel/chinook/cargo)
"cE" = (
/obj/structure/surface/table/reinforced/black,
-/obj/item/ammo_magazine/revolver/mateba/highimpact{
- pixel_x = -5;
- pixel_y = 6
- },
-/obj/item/clothing/head/cmcap/co/formal/black{
- pixel_x = 4;
- pixel_y = 5
+/obj/structure/noticeboard{
+ pixel_y = 27
},
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+/obj/item/book/manual/marine_law{
+ pixel_y = 10
},
-/area/adminlevel/chinook/offices)
-"cG" = (
-/obj/structure/machinery/disposal,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/item/tool/pen{
+ pixel_y = 8
},
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"cL" = (
/obj/structure/bed/chair/comfy{
dir = 1;
name = "defense chair"
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/event)
"cM" = (
/obj/structure/machinery/power/terminal{
@@ -771,13 +963,15 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
"cN" = (
-/obj/item/device/flashlight/lamp/green,
-/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 16
},
-/area/adminlevel/chinook/offices)
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = 4
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"cQ" = (
/obj/structure/sign/poster{
pixel_y = 32
@@ -799,42 +993,17 @@
},
/area/adminlevel/chinook/sec)
"cT" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/reagent_container/food/drinks/cans/souto/classic{
- pixel_x = 5;
- pixel_y = 4
- },
-/obj/item/reagent_container/food/drinks/cans/souto/cranberry{
- pixel_x = -4;
- pixel_y = 2
- },
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 27
},
-/area/adminlevel/chinook/offices)
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
"cU" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/reagent_container/food/drinks/cans/souto/classic{
- pixel_x = -18;
- pixel_y = 3
- },
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
- },
-/area/adminlevel/chinook/offices)
-"cV" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/paper_bin/uscm{
- pixel_y = 6
- },
-/obj/item/tool/pen,
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+/obj/structure/sign/poster{
+ pixel_y = 32
},
-/area/adminlevel/chinook/offices)
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
"cW" = (
/obj/structure/machinery/autolathe/medilathe/full,
/turf/open/floor/almayer{
@@ -850,16 +1019,23 @@
/obj/item/device/defibrillator,
/obj/item/device/defibrillator,
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "sterile_green_corner"
+ icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
+"cY" = (
+/obj/structure/machinery/door/airlock/almayer/maint{
+ dir = 1;
+ name = "\improper Janitorial Closet";
+ req_access = null;
+ req_one_access = null
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/offices)
"cZ" = (
/obj/structure/bed,
/obj/item/bedsheet/medical,
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "sterile_green_side"
+ icon_state = "sterile_green"
},
/area/adminlevel/chinook/offices)
"db" = (
@@ -867,7 +1043,7 @@
/obj/structure/machinery/light{
dir = 8
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"dc" = (
/obj/structure/surface/table/reinforced/black,
@@ -911,6 +1087,14 @@
"dh" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/paper,
+/obj/item/reagent_container/food/drinks/drinkingglass/cola{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/obj/item/tool/lighter/zippo{
+ pixel_x = 7;
+ pixel_y = 5
+ },
/turf/open/floor/carpet{
desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
name = "\improper carpet"
@@ -932,24 +1116,16 @@
},
/area/adminlevel/chinook/offices)
"dk" = (
-/obj/structure/machinery/light{
- dir = 4
+/obj/structure/machinery/cm_vending/sorted/medical{
+ layer = 3.5
},
-/obj/structure/bed,
-/obj/item/bedsheet/medical,
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "sterile_green_side"
+ icon_state = "silverfull"
},
-/area/adminlevel/chinook/offices)
+/area/adminlevel/chinook)
"dl" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/book/manual/marine_law{
- pixel_x = 1;
- pixel_y = 6
- },
-/obj/item/folder/black,
-/turf/open/floor/almayer,
+/obj/structure/machinery/cm_vending/sorted/marine_food,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"dn" = (
/obj/structure/closet/crate,
@@ -966,7 +1142,7 @@
/obj/item/paper/crumpled{
pixel_y = 2
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"dq" = (
/obj/structure/machinery/door/airlock/almayer/engineering{
@@ -990,7 +1166,7 @@
pixel_y = 3
},
/obj/item/tool/pen,
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"dt" = (
/obj/structure/closet/firecloset,
@@ -1000,9 +1176,7 @@
},
/area/adminlevel/chinook/sec)
"du" = (
-/obj/structure/barricade/handrail/kutjevo{
- dir = 1
- },
+/obj/structure/surface/table/reinforced/black,
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
"dw" = (
@@ -1017,8 +1191,14 @@
/area/adminlevel/chinook/medical)
"dy" = (
/obj/structure/machinery/cm_vending/clothing/dress,
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
+"dz" = (
+/obj/structure/cargo_container/arious/rightmid,
+/turf/open/floor/corsat{
+ icon_state = "squares"
+ },
+/area/adminlevel/chinook/cargo)
"dA" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/device/multitool,
@@ -1026,6 +1206,18 @@
icon_state = "tcomms"
},
/area/adminlevel/chinook/engineering)
+"dB" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{
+ name = "\improper Engineering";
+ dir = 1
+ },
+/obj/structure/machinery/door/poddoor/almayer/open{
+ id = "chinookengilock";
+ name = "Engineering Sector Lockdown";
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/cryo)
"dC" = (
/obj/structure/bed/chair/comfy,
/turf/open/floor/carpet{
@@ -1055,11 +1247,13 @@
},
/area/adminlevel/chinook/offices)
"dH" = (
-/obj/structure/machinery/light,
+/obj/structure/sign/poster{
+ pixel_y = -32
+ },
/turf/open/floor/almayer{
- icon_state = "dark_sterile"
+ icon_state = "red"
},
-/area/adminlevel/chinook/medical)
+/area/adminlevel/chinook/sec)
"dJ" = (
/obj/structure/bed/stool,
/obj/structure/machinery/light/small{
@@ -1070,27 +1264,50 @@
icon_state = "blue"
},
/area/adminlevel/chinook)
-"dM" = (
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
+"dK" = (
+/obj/structure/closet/secure_closet/personal,
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook)
+"dL" = (
+/obj/structure/closet/secure_closet/freezer/meat,
+/obj/item/reagent_container/food/snacks/carpmeat,
+/obj/item/reagent_container/food/snacks/carpmeat,
+/obj/item/reagent_container/food/snacks/carpmeat,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
},
-/area/adminlevel/chinook/sec)
+/area/adminlevel/chinook/event)
"dN" = (
/turf/open/floor/almayer{
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/offices)
"dO" = (
-/obj/structure/machinery/cm_vending/sorted/medical,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/machinery/medical_pod/bodyscanner,
/turf/open/floor/almayer{
dir = 8;
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/offices)
-"dR" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "NW-out";
+"dQ" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_29";
+ layer = 5;
+ pixel_x = 1;
+ pixel_y = 10
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook/event)
+"dR" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
layer = 2.5
},
/turf/open/floor/almayer{
@@ -1113,9 +1330,9 @@
"dU" = (
/obj/structure/machinery/door/airlock/almayer/command{
dir = 1;
- name = "\improper 2BG Command Meeting Room"
+ name = "\improper Meeting Room"
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"dW" = (
/obj/structure/largecrate/supply/supplies/flares,
@@ -1125,20 +1342,20 @@
},
/area/adminlevel/chinook/cargo)
"dY" = (
-/obj/structure/machinery/light{
- dir = 1
- },
+/obj/structure/reagent_dispensers/water_cooler/stacks,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/adminlevel/chinook)
"dZ" = (
-/obj/structure/machinery/door/airlock/almayer/command{
- dir = 1;
- name = "\improper Colonel, Fifth Division"
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 16
},
-/turf/open/floor/almayer,
-/area/adminlevel/chinook/offices)
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3"
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"ea" = (
/obj/structure/machinery/light{
dir = 8
@@ -1146,10 +1363,47 @@
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/sec)
"eb" = (
-/turf/open/floor/prison{
- icon_state = "kitchen"
+/obj/structure/surface/table/almayer,
+/obj/item/storage/surgical_tray,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "sterile_green_side"
},
-/area/space)
+/area/adminlevel/chinook/offices)
+"ee" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal8";
+ pixel_x = -16;
+ pixel_y = -16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal5";
+ pixel_x = -16;
+ pixel_y = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal6";
+ pixel_x = 16;
+ pixel_y = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal7";
+ pixel_x = 16;
+ pixel_y = -16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = -12
+ },
+/obj/structure/barricade/handrail/wire{
+ dir = 8
+ },
+/obj/structure/holohoop{
+ dir = 4;
+ id = "chinook";
+ side = "left"
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"eh" = (
/obj/structure/largecrate/supply/supplies/mre,
/turf/open/floor/almayer,
@@ -1162,6 +1416,11 @@
/obj/structure/surface/table/reinforced/black,
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
+"ek" = (
+/turf/open/floor/almayer{
+ icon_state = "bluecorner"
+ },
+/area/adminlevel/chinook)
"em" = (
/obj/structure/surface/table/almayer,
/obj/item/pizzabox/meat{
@@ -1170,14 +1429,16 @@
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/sec)
"en" = (
-/obj/structure/machinery/medical_pod/sleeper{
- dir = 8
- },
+/obj/structure/surface/table/almayer,
+/obj/item/roller,
/turf/open/floor/almayer{
- dir = 4;
icon_state = "sterile_green_corner"
},
/area/adminlevel/chinook/offices)
+"eo" = (
+/obj/structure/machinery/disposal,
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"ep" = (
/obj/structure/machinery/door/airlock/almayer/medical/glass{
dir = 1;
@@ -1189,6 +1450,22 @@
icon_state = "dark_sterile"
},
/area/adminlevel/chinook/offices)
+"eq" = (
+/obj/structure/stairs/perspective{
+ dir = 8;
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform/strata/metal,
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
+"er" = (
+/obj/structure/closet/fireaxecabinet{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/offices)
"es" = (
/obj/structure/machinery/light{
dir = 4
@@ -1206,6 +1483,15 @@
icon_state = "test_floor5"
},
/area/adminlevel/chinook/cryo)
+"eu" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/adminlevel/chinook/offices)
"ew" = (
/obj/structure/closet/secure_closet{
name = "secure evidence locker";
@@ -1225,17 +1511,16 @@
},
/area/adminlevel/chinook/offices)
"ey" = (
-/obj/structure/bed/sofa/south/grey,
/obj/structure/machinery/light{
dir = 1
},
+/obj/structure/bed/sofa/south/grey/left,
/turf/open/floor/almayer{
dir = 1;
icon_state = "blue"
},
/area/adminlevel/chinook/offices)
"ez" = (
-/obj/structure/bed/sofa/south/grey,
/obj/structure/sign/safety/coffee{
pixel_x = 12;
pixel_y = 25
@@ -1243,19 +1528,20 @@
/obj/structure/sign/safety/south{
pixel_y = 25
},
+/obj/structure/bed/sofa/south/grey/right,
/turf/open/floor/almayer{
dir = 1;
icon_state = "blue"
},
/area/adminlevel/chinook/offices)
"eA" = (
-/obj/structure/machinery/power/fusion_engine,
/obj/structure/machinery/light{
dir = 8
},
/obj/structure/platform{
dir = 8
},
+/obj/structure/prop/invuln/fusion_reactor,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -1278,7 +1564,7 @@
/area/adminlevel/chinook/sec)
"eD" = (
/obj/structure/machinery/cm_vending/sorted/attachments,
-/turf/closed/wall/almayer,
+/turf/closed/wall/almayer/reinforced,
/area/adminlevel/chinook/cargo)
"eE" = (
/obj/item/stack/sheet/wood/medium_stack{
@@ -1291,17 +1577,20 @@
},
/area/adminlevel/chinook/sec)
"eF" = (
-/obj/structure/machinery/cryopod,
+/obj/structure/surface/rack,
+/obj/item/storage/box/bodybags,
+/obj/item/storage/box/bodybags,
+/obj/item/storage/box/bodybags,
+/obj/item/storage/box/bodybags,
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "sterile_green_corner"
+ icon_state = "plate"
},
/area/adminlevel/chinook/medical)
"eG" = (
-/obj/structure/machinery/power/fusion_engine,
/obj/structure/platform{
dir = 4
},
+/obj/structure/prop/invuln/fusion_reactor,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -1320,10 +1609,10 @@
},
/area/adminlevel/chinook/offices)
"eJ" = (
-/obj/structure/machinery/medical_pod/bodyscanner,
/obj/structure/machinery/light{
dir = 8
},
+/obj/structure/machinery/medical_pod/bodyscanner,
/turf/open/floor/almayer{
dir = 8;
icon_state = "sterile_green_side"
@@ -1342,21 +1631,27 @@
icon_state = "blue"
},
/area/adminlevel/chinook/offices)
-"eL" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer{
+"eM" = (
+/obj/structure/sink{
dir = 1;
- icon_state = "blue"
+ pixel_y = -10
},
-/area/adminlevel/chinook/offices)
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/event)
"eN" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
icon_state = "blue"
},
/area/adminlevel/chinook/offices)
+"eO" = (
+/obj/structure/platform/strata/metal{
+ dir = 4
+ },
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
"eP" = (
/obj/structure/bed/chair/comfy{
dir = 8
@@ -1376,7 +1671,7 @@
},
/area/adminlevel/chinook/offices)
"eS" = (
-/obj/structure/surface/table/reinforced/almayer_B,
+/obj/structure/surface/table/reinforced/black,
/turf/open/floor/almayer{
icon_state = "blue"
},
@@ -1401,9 +1696,29 @@
},
/area/adminlevel/chinook/engineering)
"eV" = (
-/obj/structure/bed/chair,
+/obj/structure/bed/sofa/south/grey/left,
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
+"eW" = (
+/obj/structure/surface/table/almayer,
+/obj/item/toy/deck,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook)
+"fb" = (
+/obj/structure/machinery/door_control{
+ id = "chinookengilock";
+ name = "Engineering Lockdown";
+ pixel_x = 22;
+ pixel_y = -3;
+ req_one_access_txt = "2;3;12;19"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "orange"
+ },
+/area/adminlevel/chinook/engineering)
"fd" = (
/obj/effect/decal/warning_stripes{
icon_state = "N"
@@ -1414,6 +1729,27 @@
icon_state = "plating"
},
/area/adminlevel/chinook/engineering)
+"fe" = (
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/reagent_container/food/drinks/bottle/wine{
+ pixel_y = 14;
+ pixel_x = 7
+ },
+/obj/item/reagent_container/food/drinks/bottle/cognac{
+ pixel_y = 13;
+ pixel_x = -6
+ },
+/obj/item/reagent_container/food/drinks/drinkingglass{
+ pixel_y = -3;
+ pixel_x = -3
+ },
+/obj/item/reagent_container/food/drinks/drinkingglass{
+ pixel_x = 6
+ },
+/turf/open/floor/almayer{
+ icon_state = "ai_floors"
+ },
+/area/adminlevel/chinook/offices)
"fg" = (
/obj/structure/sign/safety/storage{
pixel_y = -28
@@ -1422,6 +1758,11 @@
icon_state = "blue"
},
/area/adminlevel/chinook/offices)
+"fh" = (
+/turf/open/floor/almayer/uscm/directional{
+ dir = 8
+ },
+/area/adminlevel/chinook/shuttle)
"fi" = (
/obj/effect/decal/cleanable/liquid_fuel,
/turf/open/floor/almayer{
@@ -1474,9 +1815,15 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
"fs" = (
-/obj/structure/machinery/disposal,
-/turf/open/floor/plating/plating_catwalk,
-/area/adminlevel/chinook/sec)
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/machinery/iv_drip,
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/chinook/medical)
"fu" = (
/obj/structure/window/framed/almayer/hull,
/turf/open/floor/plating,
@@ -1517,55 +1864,41 @@
/area/adminlevel/chinook/offices)
"fz" = (
/obj/structure/surface/table/reinforced/black,
-/obj/item/tool/lighter/zippo{
- pixel_x = 8;
- pixel_y = 7
+/obj/item/clothing/suit/storage/bomber{
+ name = "custom bomber jacket"
},
-/obj/item/storage/fancy/cigar,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/item/prop/flower_vase/redwhiteflowers{
+ pixel_x = 7;
+ pixel_y = 11
},
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"fA" = (
-/obj/structure/sign/prop1{
- pixel_y = 32
- },
-/obj/structure/surface/table/reinforced/black,
-/obj/item/paper/photograph,
-/obj/item/storage/box/evidence{
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/item/book/manual/security_space_law{
- pixel_x = -9;
- pixel_y = 5
- },
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/machinery/vending/cola,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
},
-/area/adminlevel/chinook/offices)
+/area/adminlevel/chinook)
"fB" = (
-/obj/structure/machinery/light{
- dir = 1
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 2;
+ pixel_y = 23
},
-/obj/structure/machinery/cm_vending/clothing/dress,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal7";
+ pixel_x = 2;
+ pixel_y = -4
},
-/area/adminlevel/chinook/offices)
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"fC" = (
-/obj/structure/machinery/photocopier,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/surface/table/reinforced/black,
+/obj/item/paper_bin/uscm,
+/obj/item/tool/pen/fountain{
+ pixel_y = -3
},
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"fD" = (
/turf/closed/shuttle/ert{
@@ -1573,37 +1906,14 @@
},
/area/adminlevel/chinook/shuttle/unpowered)
"fE" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/paper{
- pixel_x = -2;
- pixel_y = 7
- },
-/obj/item/paper{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/paper/crumpled{
- pixel_x = 6;
- pixel_y = 3
- },
-/obj/item/paper/crumpled{
- pixel_x = -6;
- pixel_y = 2
- },
-/obj/item/tool/lighter,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/machinery/light{
+ dir = 4
},
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"fF" = (
/obj/structure/bed/chair/comfy,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/sec)
"fG" = (
/obj/item/trash/cigbutt,
@@ -1615,25 +1925,22 @@
/obj/structure/surface/table/almayer,
/obj/structure/machinery/recharger,
/obj/item/clothing/glasses/hud/health,
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 27
+ },
/turf/open/floor/almayer{
dir = 1;
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
"fI" = (
-/obj/structure/sign/prop1{
- pixel_y = 32
- },
-/obj/structure/closet/secure_closet/commander{
- name = "colonel's locker"
+/obj/structure/barricade/metal{
+ dir = 4
},
-/obj/item/clothing/head/beret/marine/commander/council,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/turf/open/floor/almayer{
+ icon_state = "cargo"
},
-/area/adminlevel/chinook/offices)
+/area/adminlevel/chinook)
"fJ" = (
/obj/structure/machinery/autolathe/full,
/turf/open/floor/almayer{
@@ -1642,15 +1949,22 @@
},
/area/adminlevel/chinook/engineering)
"fK" = (
-/obj/structure/closet/secure_closet/securecom{
- name = "colonel's secure box"
- },
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/surface/table/reinforced/black,
+/obj/structure/machinery/computer/card{
+ dir = 4
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
+"fL" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/adminlevel/chinook)
"fM" = (
/obj/structure/machinery/body_scanconsole,
/turf/open/floor/almayer{
@@ -1659,12 +1973,19 @@
/area/adminlevel/chinook/sec)
"fO" = (
/obj/structure/surface/table/reinforced/black,
-/obj/structure/machinery/computer/card,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/item/paper_bin/uscm{
+ pixel_x = -8;
+ pixel_y = 8
+ },
+/obj/item/device/flashlight/lamp{
+ pixel_y = 8;
+ pixel_x = 6
},
+/obj/item/tool/pen/fountain{
+ pixel_x = -8;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"fP" = (
/turf/closed/shuttle/ert{
@@ -1681,32 +2002,12 @@
},
/area/adminlevel/chinook/engineering)
"fR" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/closet/secure_closet/securecom{
- name = "colonel's secure box"
- },
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/obj/structure/machinery/photocopier,
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"fS" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/storage/fancy/cigarettes/blackpack{
- pixel_x = -6;
- pixel_y = 10
- },
-/obj/item/clothing/mask/cigarette/bcigarette{
- pixel_y = 3
- },
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/obj/structure/machinery/cm_vending/clothing/dress,
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"fU" = (
/obj/structure/closet/emcloset,
@@ -1744,28 +2045,24 @@
},
/area/adminlevel/chinook/offices)
"fY" = (
-/obj/structure/largecrate/random/case/double,
-/turf/open/floor/almayer{
- icon_state = "cargo"
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/folder/yellow{
+ pixel_y = 7
},
+/turf/open/floor/almayer,
/area/adminlevel/chinook)
"fZ" = (
-/obj/structure/machinery/cm_vending/gear/synth,
/turf/open/floor/almayer{
- icon_state = "cargo"
+ dir = 1;
+ icon_state = "green"
},
/area/adminlevel/chinook)
"ga" = (
-/obj/structure/machinery/cm_vending/clothing/synth,
-/turf/open/floor/almayer{
- icon_state = "cargo"
- },
+/obj/structure/bed/chair,
+/turf/open/floor/almayer,
/area/adminlevel/chinook)
"gb" = (
-/obj/structure/machinery/cm_vending/clothing/synth/snowflake,
-/obj/structure/machinery/light{
- dir = 1
- },
+/obj/structure/machinery/cm_vending/clothing/synth,
/turf/open/floor/almayer{
icon_state = "cargo"
},
@@ -1784,48 +2081,31 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
"ge" = (
-/obj/structure/machinery/recharge_station,
/turf/open/floor/almayer{
- icon_state = "cargo"
+ dir = 4;
+ icon_state = "green"
},
/area/adminlevel/chinook)
-"gh" = (
-/obj/structure/closet/firecloset,
-/turf/open/floor/almayer{
- icon_state = "cargo"
+"gg" = (
+/turf/closed/shuttle/elevator{
+ dir = 4
},
-/area/adminlevel/chinook)
+/area/adminlevel/chinook/cargo)
+"gh" = (
+/turf/closed/wall/almayer/reinforced,
+/area/adminlevel/chinook/cryo)
"gi" = (
-/obj/structure/reagent_dispensers/water_cooler/stacks,
+/obj/structure/machinery/disposal,
/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/adminlevel/chinook)
-"gj" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/ashtray/glass{
- pixel_y = 4
- },
-/obj/item/storage/fancy/cigarettes/kpack{
- pixel_x = -11;
- pixel_y = 7
- },
-/obj/item/clothing/mask/cigarette{
- pixel_x = 5;
- pixel_y = 3
- },
-/obj/item/clothing/mask/cigarette,
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+ dir = 4;
+ icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/offices)
-"gk" = (
-/obj/structure/sign/goldenplaque{
- pixel_y = 27
- },
+"gj" = (
+/obj/structure/barricade/handrail/strata,
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 8;
+ icon_state = "blue"
},
/area/adminlevel/chinook)
"gl" = (
@@ -1849,6 +2129,13 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/offices)
+"gp" = (
+/obj/structure/largecrate/supply/supplies/metal,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/cargo)
"gq" = (
/obj/item/storage/box/drinkingglasses,
/obj/structure/surface/table/reinforced/black,
@@ -1877,12 +2164,14 @@
},
/area/adminlevel/chinook/event)
"gw" = (
-/obj/effect/decal/cleanable/ash,
+/obj/structure/bed/chair/comfy{
+ dir = 1
+ },
/turf/open/floor/carpet{
desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
name = "\improper carpet"
},
-/area/adminlevel/chinook/offices)
+/area/adminlevel/chinook)
"gy" = (
/turf/closed/shuttle/ert{
icon_state = "stan20"
@@ -1896,10 +2185,13 @@
/obj/item/reagent_container/food/snacks/fishandchips,
/obj/item/reagent_container/food/snacks/grilledcheese,
/obj/item/reagent_container/food/snacks/grilledcheese,
+/obj/structure/machinery/light{
+ dir = 8
+ },
/turf/open/floor/prison{
icon_state = "kitchen"
},
-/area/space)
+/area/adminlevel/chinook/event)
"gA" = (
/turf/open/floor/almayer{
dir = 8;
@@ -1919,6 +2211,31 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook)
+"gD" = (
+/obj/structure/machinery/disposal,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
+"gF" = (
+/obj/structure/machinery/door/airlock/almayer/security/glass{
+ name = "\improper Provost Offices"
+ },
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/adminlevel/chinook/sec)
+"gG" = (
+/obj/structure/sign/safety/security{
+ pixel_y = -25
+ },
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"gH" = (
/obj/structure/sign/safety/press_area_ag{
pixel_y = 24
@@ -1942,17 +2259,23 @@
},
/area/adminlevel/chinook/engineering)
"gK" = (
-/obj/structure/kitchenspike,
-/turf/open/floor/prison{
- icon_state = "kitchen"
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "blue"
},
-/area/space)
+/area/adminlevel/chinook)
"gL" = (
/turf/open/floor/almayer{
dir = 9;
icon_state = "red"
},
/area/adminlevel/chinook)
+"gM" = (
+/obj/structure/platform_decoration/strata/metal,
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
"gN" = (
/obj/structure/machinery/cm_vending/sorted/marine_food,
/turf/open/floor/almayer{
@@ -1960,6 +2283,14 @@
icon_state = "red"
},
/area/adminlevel/chinook/sec)
+"gO" = (
+/obj/structure/machinery/door/poddoor/almayer/open{
+ id = "chinookengilock";
+ name = "Engineering Sector Lockdown";
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/cryo)
"gP" = (
/turf/open/floor/almayer{
dir = 5;
@@ -1982,11 +2313,15 @@
},
/area/adminlevel/chinook/engineering)
"gT" = (
-/obj/structure/machinery/telecomms/relay/preset/centcom,
+/obj/structure/machinery/telecomms/relay,
/turf/open/floor/almayer{
icon_state = "tcomms"
},
/area/adminlevel/chinook/engineering)
+"gU" = (
+/obj/item/stack/sheet/metal/large_stack,
+/turf/open/floor/plating,
+/area/adminlevel/chinook/engineering)
"gV" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/almayer{
@@ -2011,6 +2346,10 @@
pixel_y = 8
},
/obj/structure/machinery/light,
+/obj/item/stack/cable_coil{
+ pixel_x = 20;
+ pixel_y = 5
+ },
/turf/open/floor/almayer{
icon_state = "orange"
},
@@ -2026,6 +2365,17 @@
icon_state = "orange"
},
/area/adminlevel/chinook/offices)
+"ha" = (
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_29";
+ pixel_x = 1;
+ pixel_y = 10
+ },
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/chinook/event)
"hc" = (
/turf/open/shuttle/dropship{
icon_state = "rasputin6"
@@ -2033,14 +2383,43 @@
/area/adminlevel/chinook/shuttle/unpowered)
"hd" = (
/obj/structure/largecrate/random,
+/obj/item/circuitboard/airlock,
/turf/open/floor/almayer{
icon_state = "orange"
},
/area/adminlevel/chinook/engineering)
"he" = (
-/obj/structure/machinery/vending/cigarette/colony,
-/turf/open/floor/almayer,
+/obj/structure/displaycase,
+/turf/open/floor/kutjevo,
+/area/adminlevel/chinook/offices)
+"hf" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/folder/yellow{
+ pixel_y = 9;
+ pixel_x = -3
+ },
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/item/prop/tableflag/uscm2{
+ pixel_y = 6;
+ pixel_x = 10
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
/area/adminlevel/chinook/offices)
+"hg" = (
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = -12
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"hh" = (
/obj/structure/bed/chair/comfy,
/turf/open/floor/kutjevo/tan/plate,
@@ -2058,40 +2437,31 @@
/obj/structure/surface/rack,
/obj/item/reagent_container/spray/cleaner,
/obj/item/reagent_container/spray/cleaner,
-/turf/open/floor/almayer,
-/area/adminlevel/chinook)
-"hl" = (
-/obj/structure/bed/chair/office/dark{
- dir = 4
+/obj/structure/machinery/light{
+ dir = 8
},
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook)
-"hm" = (
-/obj/structure/surface/table/reinforced/almayer_B,
-/obj/structure/machinery/computer/emails{
- dir = 8;
- pixel_x = -3;
- pixel_y = 6
- },
-/turf/open/floor/almayer,
-/area/adminlevel/chinook)
-"ho" = (
-/obj/structure/closet{
- name = "boxing attire"
+"hl" = (
+/obj/structure/closet/secure_closet/personal/patient{
+ name = "morgue closet"
},
-/obj/item/clothing/under/shorts/blue,
-/obj/item/clothing/under/shorts/blue,
-/obj/item/clothing/under/shorts/red,
-/obj/item/clothing/under/shorts/red,
-/obj/item/clothing/under/shorts/green,
-/obj/item/clothing/under/shorts/green,
-/obj/item/clothing/under/shorts/black,
-/obj/item/clothing/under/shorts/black,
-/obj/item/clothing/under/shorts/grey,
-/obj/item/clothing/under/shorts/grey,
/turf/open/floor/almayer{
icon_state = "plate"
},
+/area/adminlevel/chinook/medical)
+"hm" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/adminlevel/chinook/event)
+"ho" = (
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 2
+ },
+/turf/open/floor/wood,
/area/adminlevel/chinook)
"hp" = (
/obj/structure/machinery/disposal,
@@ -2104,6 +2474,7 @@
/obj/structure/machinery/light{
dir = 1
},
+/obj/structure/machinery/cm_vending/sorted/marine_food,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -2117,14 +2488,33 @@
icon_state = "plate"
},
/area/adminlevel/chinook)
-"hw" = (
-/obj/structure/machinery/door_control{
- id = "provostinterrog";
- name = "Interrogation Shutters";
- pixel_x = -25;
- req_one_access_txt = "2;3;12;19"
+"ht" = (
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 2
},
-/turf/open/floor/almayer{
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = -12
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
+"hv" = (
+/obj/structure/bed/chair/comfy{
+ dir = 1
+ },
+/obj/structure/sign/safety/galley{
+ pixel_x = 32
+ },
+/turf/open/floor/kutjevo/tan,
+/area/adminlevel/chinook/event)
+"hw" = (
+/obj/structure/machinery/door_control{
+ id = "provostinterrog";
+ name = "Interrogation Shutters";
+ pixel_x = -25;
+ req_one_access_txt = "2;3;12;19"
+ },
+/turf/open/floor/almayer{
icon_state = "plate"
},
/area/adminlevel/chinook/sec)
@@ -2173,6 +2563,12 @@
icon_state = "blue"
},
/area/adminlevel/chinook/offices)
+"hF" = (
+/obj/structure/sign/safety/bathunisex{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/cargo)
"hG" = (
/obj/structure/machinery/light{
dir = 1
@@ -2187,7 +2583,9 @@
},
/area/adminlevel/chinook/offices)
"hI" = (
-/obj/structure/machinery/microwave,
+/obj/structure/machinery/microwave{
+ pixel_y = 6
+ },
/obj/structure/surface/table/reinforced/almayer_B,
/turf/open/floor/almayer{
dir = 5;
@@ -2198,10 +2596,7 @@
/obj/structure/sign/safety/coffee{
pixel_x = -16
},
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "blue"
- },
+/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/offices)
"hK" = (
/obj/structure/surface/table/reinforced/black,
@@ -2217,31 +2612,21 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
-"hL" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/clothing/mask/cigarette/pipe{
- pixel_y = 5
- },
-/obj/item/reagent_container/food/drinks/cans/waterbottle{
- pixel_x = 5;
- pixel_y = 5
- },
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+"hM" = (
+/obj/structure/machinery/door/poddoor/almayer{
+ id = "chinookairlock1";
+ name = "\improper Chinook Shuttle Airlock"
},
-/area/adminlevel/chinook/offices)
+/turf/open/floor/plating,
+/area/adminlevel/chinook/shuttle)
"hN" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/tool/lighter/zippo{
- pixel_x = 8;
- pixel_y = 7
+/obj/structure/barricade/metal{
+ dir = 8
},
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+/turf/open/floor/almayer{
+ icon_state = "cargo"
},
-/area/adminlevel/chinook/offices)
+/area/adminlevel/chinook)
"hP" = (
/turf/open/floor/almayer{
dir = 10;
@@ -2341,12 +2726,14 @@
icon_state = "plating"
},
/area/adminlevel/chinook/offices)
-"ie" = (
-/obj/structure/machinery/light{
- dir = 8
+"id" = (
+/obj/structure/sign/safety/biohazard{
+ pixel_x = -18
},
-/turf/open/floor/almayer,
-/area/adminlevel/chinook)
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/chinook/medical)
"ih" = (
/obj/structure/machinery/light{
dir = 4
@@ -2376,10 +2763,7 @@
icon_state = "p_stair_ew_full_cap";
layer = 2.1
},
-/obj/structure/platform{
- dir = 1;
- layer = 2
- },
+/obj/structure/platform/stair_cut/alt,
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
"ip" = (
@@ -2402,7 +2786,15 @@
},
/area/adminlevel/chinook)
"is" = (
-/obj/structure/machinery/disposal,
+/obj/structure/surface/table/reinforced/black,
+/obj/item/storage/box/cups{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/box/cups{
+ pixel_x = 3;
+ pixel_y = 3
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -2413,12 +2805,24 @@
icon_state = "p_stair_ew_full_cap";
layer = 2.1
},
-/obj/structure/platform{
- dir = 1;
- layer = 2
- },
+/obj/structure/platform/stair_cut,
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
+"iw" = (
+/obj/structure/platform/stair_cut,
+/obj/structure/stairs/perspective{
+ dir = 8;
+ icon_state = "p_stair_ew_full_cap";
+ layer = 3.5
+ },
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/engineering)
"ix" = (
/obj/structure/machinery/door_control{
id = "chinookarmory1";
@@ -2440,18 +2844,36 @@
icon_state = "plate"
},
/area/adminlevel/chinook/engineering)
+"iA" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = 16
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"iC" = (
-/obj/structure/target{
- name = "punching bag"
+/obj/structure/morgue,
+/obj/structure/machinery/light{
+ dir = 8
},
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/adminlevel/chinook)
+/area/adminlevel/chinook/medical)
"iD" = (
/obj/structure/platform_decoration,
/turf/open/floor/kutjevo,
/area/adminlevel/chinook/event)
+"iF" = (
+/obj/structure/sign/prop2{
+ pixel_y = 30
+ },
+/turf/open/floor/strata{
+ desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
+ icon = 'icons/turf/floors/floors.dmi';
+ icon_state = "wood"
+ },
+/area/adminlevel/chinook/offices)
"iG" = (
/obj/structure/platform,
/obj/structure/stairs/perspective{
@@ -2465,6 +2887,15 @@
dir = 4
},
/area/adminlevel/chinook/event)
+"iK" = (
+/obj/structure/largecrate/machine/autodoc,
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"iL" = (
/obj/structure/platform,
/obj/structure/stairs/perspective{
@@ -2480,16 +2911,12 @@
/turf/open/floor/kutjevo,
/area/adminlevel/chinook/event)
"iO" = (
-/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/trash/USCMtray{
pixel_x = 6;
pixel_y = 4
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/obj/structure/surface/table/reinforced/black,
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"iP" = (
/obj/effect/decal/warning_stripes{
@@ -2521,12 +2948,8 @@
/obj/item/pizzabox/meat{
pixel_y = 8
},
-/obj/structure/surface/table/reinforced/almayer_B,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/obj/structure/surface/table/reinforced/black,
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"iW" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{
@@ -2537,14 +2960,18 @@
/area/adminlevel/chinook/offices)
"iY" = (
/obj/structure/sign/safety/medical{
- pixel_y = 25
+ pixel_x = 32
},
-/obj/structure/sign/safety/east{
- pixel_x = 12;
- pixel_y = 25
+/obj/structure/sign/safety/south{
+ pixel_x = 32;
+ pixel_y = -12
+ },
+/obj/structure/sign/safety/security{
+ pixel_x = 32;
+ pixel_y = 12
},
/turf/open/floor/almayer{
- dir = 1;
+ dir = 4;
icon_state = "silver"
},
/area/adminlevel/chinook)
@@ -2578,15 +3005,12 @@
"jc" = (
/obj/structure/machinery/door/airlock/almayer/command{
dir = 1;
- name = "\improper Colonel, Third Division"
+ name = "Office of LtCol. Misti Rockwell"
},
-/turf/open/floor/almayer,
-/area/adminlevel/chinook/offices)
-"jd" = (
-/turf/open/floor/almayer/uscm/directional{
- dir = 4
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/area/adminlevel/chinook/shuttle)
+/area/adminlevel/chinook/offices)
"je" = (
/obj/item/clothing/head/welding,
/turf/open/floor/almayer,
@@ -2600,9 +3024,11 @@
"jg" = (
/obj/structure/machinery/door/airlock/almayer/command{
dir = 1;
- name = "\improper Colonel, First Division"
+ name = "Office of LtCol. Karl Walz"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
"ji" = (
/obj/structure/machinery/door/airlock/almayer/command{
@@ -2665,9 +3091,7 @@
icon_state = "p_stair_ew_full_cap";
layer = 3.5
},
-/obj/structure/platform{
- dir = 1
- },
+/obj/structure/platform/stair_cut/alt,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -2677,12 +3101,18 @@
/turf/closed/wall/almayer/outer,
/area/adminlevel/chinook/shuttle/unpowered)
"jr" = (
-/obj/structure/machinery/light,
-/obj/structure/machinery/medical_pod/bodyscanner,
-/turf/open/floor/almayer{
- icon_state = "sterile_green_side"
+/obj/structure/cargo_container/arious/right,
+/turf/open/floor/corsat{
+ icon_state = "squares"
},
-/area/adminlevel/chinook/medical)
+/area/adminlevel/chinook/cargo)
+"js" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/reagent_container/food/condiment/enzyme,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/chinook/event)
"ju" = (
/obj/structure/machinery/door/airlock/almayer/generic{
name = "\improper Gym"
@@ -2700,12 +3130,19 @@
/turf/open/floor/prison{
icon_state = "kitchen"
},
-/area/space)
+/area/adminlevel/chinook/event)
"jy" = (
/obj/structure/sign/safety/fridge{
pixel_x = 7;
pixel_y = 24
},
+/obj/structure/machinery/microwave{
+ pixel_y = -4
+ },
+/obj/structure/machinery/microwave{
+ layer = 2.83;
+ pixel_y = 10
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -2722,6 +3159,19 @@
icon_state = "plate"
},
/area/adminlevel/chinook/event)
+"jA" = (
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = -8;
+ pixel_y = 16
+ },
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = 8;
+ pixel_y = 16
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"jC" = (
/obj/structure/machinery/space_heater{
pixel_x = -1;
@@ -2732,11 +3182,16 @@
icon_state = "plate"
},
/area/adminlevel/chinook/event)
-"jE" = (
-/obj/structure/machinery/vending/dinnerware,
-/turf/open/floor/almayer{
- icon_state = "plate"
+"jD" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = -12
},
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
+"jE" = (
+/obj/structure/machinery/seed_extractor,
+/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/event)
"jF" = (
/turf/closed/wall/almayer,
@@ -2749,15 +3204,9 @@
},
/area/adminlevel/chinook/event)
"jI" = (
-/obj/structure/machinery/computer/card{
- dir = 4
- },
-/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
- },
-/area/adminlevel/chinook/offices)
+/obj/item/stack/sheet/wood/large_stack,
+/turf/open/floor/plating,
+/area/adminlevel/chinook/engineering)
"jJ" = (
/obj/structure/surface/rack,
/obj/item/device/lightreplacer,
@@ -2768,10 +3217,6 @@
"jK" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/device/multitool,
-/obj/item/fuelCell{
- pixel_x = 5;
- pixel_y = 7
- },
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
"jN" = (
@@ -2791,9 +3236,6 @@
pixel_x = 12;
pixel_y = 25
},
-/obj/structure/sign/safety/west{
- pixel_y = 25
- },
/turf/open/floor/almayer{
dir = 1;
icon_state = "silver"
@@ -2805,18 +3247,11 @@
},
/area/adminlevel/chinook/shuttle/unpowered)
"jS" = (
-/obj/structure/sign/safety/coffee{
- pixel_x = 12;
- pixel_y = 25
- },
-/obj/structure/sign/safety/west{
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
pixel_y = 25
},
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
- },
-/area/adminlevel/chinook/offices)
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook/engineering)
"jT" = (
/obj/structure/sign/safety/ammunition{
pixel_x = 32;
@@ -2880,11 +3315,9 @@
},
/area/adminlevel/chinook)
"kf" = (
-/obj/item/tool/kitchen/tray,
-/obj/item/tool/kitchen/utensil/fork,
-/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/kutjevo/tan,
-/area/adminlevel/chinook/event)
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"kg" = (
/obj/structure/machinery/cm_vending/sorted/medical,
/turf/open/floor/almayer{
@@ -2894,9 +3327,11 @@
"ki" = (
/obj/structure/machinery/door/airlock/almayer/command{
dir = 1;
- name = "\improper Colonel, Second Division"
+ name = "Office of LtCol. Hunter Stanford"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
"kj" = (
/obj/structure/machinery/shower{
@@ -2906,7 +3341,7 @@
dir = 4
},
/obj/structure/window/reinforced/tinted/frosted,
-/turf/open/floor/almayer,
+/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/offices)
"kk" = (
/obj/structure/machinery/cm_vending/sorted/attachments,
@@ -2914,13 +3349,6 @@
icon_state = "cargo"
},
/area/adminlevel/chinook/sec)
-"kl" = (
-/obj/structure/machinery/body_scanconsole,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "sterile_green_side"
- },
-/area/adminlevel/chinook/offices)
"km" = (
/obj/structure/machinery/light{
dir = 1
@@ -2969,9 +3397,7 @@
},
/area/adminlevel/chinook)
"kr" = (
-/obj/structure/machinery/medical_pod/sleeper{
- dir = 8
- },
+/obj/structure/machinery/medical_pod/sleeper,
/turf/open/floor/almayer{
dir = 4;
icon_state = "sterile_green_side"
@@ -2984,14 +3410,13 @@
},
/area/adminlevel/chinook/offices)
"ku" = (
-/obj/structure/machinery/medical_pod/bodyscanner,
+/obj/structure/machinery/cm_vending/sorted/medical/blood,
/turf/open/floor/almayer{
dir = 1;
icon_state = "sterile_green_corner"
},
/area/adminlevel/chinook/offices)
"kv" = (
-/obj/structure/machinery/light,
/obj/structure/largecrate/random/barrel/red,
/turf/open/floor/almayer{
dir = 5;
@@ -3073,12 +3498,22 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/event)
+"kI" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/kutjevo,
+/area/adminlevel/chinook/event)
"kJ" = (
-/obj/item/tool/lighter/zippo,
/obj/structure/surface/table/reinforced/black,
-/obj/item/reagent_container/food/drinks/drinkingglass/cola{
+/obj/structure/machinery/computer/communications{
+ dir = 8;
pixel_x = -3;
- pixel_y = 6
+ pixel_y = 13
+ },
+/obj/item/prop/tableflag/uscm{
+ pixel_x = -9;
+ pixel_y = -11
},
/turf/open/floor/carpet{
desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
@@ -3154,24 +3589,30 @@
},
/area/adminlevel/chinook/event)
"kU" = (
-/obj/structure/closet/secure_closet/commander{
- name = "colonel's locker"
- },
-/obj/item/clothing/head/beret/marine/commander/council,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/surface/table/reinforced/black,
+/obj/item/clothing/accessory/patch{
+ pixel_x = -3;
+ pixel_y = 6
},
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"kW" = (
/obj/structure/surface/table/reinforced/almayer_B,
-/obj/item/ammo_box/magazine/m4ra,
+/obj/item/ammo_box/magazine/l42a,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
},
/area/adminlevel/chinook/sec)
+"kX" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"kY" = (
/obj/structure/closet/secure_closet/freezer/fridge/full,
/turf/open/floor/almayer{
@@ -3216,6 +3657,10 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
+"lg" = (
+/obj/structure/machinery/light,
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"lh" = (
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/sec)
@@ -3236,7 +3681,19 @@
},
/area/adminlevel/chinook/medical)
"ll" = (
-/obj/structure/machinery/cm_vending/sorted/medical,
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/surface/table/almayer,
+/obj/item/roller{
+ pixel_y = 6
+ },
+/obj/item/roller{
+ pixel_y = 6
+ },
+/obj/item/roller{
+ pixel_y = 6
+ },
/turf/open/floor/almayer{
dir = 1;
icon_state = "sterile_green_corner"
@@ -3296,6 +3753,26 @@
icon_state = "red"
},
/area/adminlevel/chinook/offices)
+"ly" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/cargo)
+"lz" = (
+/obj/structure/sign/safety/firingrange{
+ pixel_x = 2;
+ pixel_y = 25
+ },
+/obj/structure/sign/safety/hazard{
+ pixel_x = 14;
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"lC" = (
/turf/closed/wall/almayer/reinforced,
/area/adminlevel/chinook/event)
@@ -3315,6 +3792,7 @@
/area/adminlevel/chinook/event)
"lE" = (
/obj/effect/decal/cleanable/flour,
+/obj/structure/surface/table/reinforced/prison,
/turf/open/floor/prison{
icon_state = "kitchen"
},
@@ -3325,11 +3803,21 @@
name = "\improper Cargo Bay";
req_one_access_txt = "1;26"
},
+/obj/structure/machinery/door/poddoor/almayer{
+ id = "chinookreq";
+ name = "Requisitions Lockdown"
+ },
/turf/open/floor/almayer{
dir = 4;
icon_state = "plating_striped"
},
/area/adminlevel/chinook/cargo)
+"lH" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 27
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook/engineering)
"lK" = (
/obj/structure/machinery/light{
dir = 4
@@ -3384,6 +3872,12 @@
icon_state = "dark_sterile"
},
/area/adminlevel/chinook/medical)
+"lS" = (
+/obj/structure/bed/chair/comfy{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"lV" = (
/obj/effect/decal/warning_stripes{
icon_state = "W"
@@ -3400,6 +3894,12 @@
},
/turf/open/floor/kutjevo/multi_tiles,
/area/adminlevel/chinook/event)
+"lZ" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"ma" = (
/obj/structure/machinery/vending/coffee,
/turf/open/floor/almayer{
@@ -3407,6 +3907,17 @@
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
+"mc" = (
+/obj/structure/surface/table/almayer,
+/obj/item/pizzabox/mushroom,
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/cargo)
+"md" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/adminlevel/chinook)
"me" = (
/obj/structure/surface/rack,
/obj/effect/spawner/random/attachment,
@@ -3497,15 +4008,17 @@
},
/area/adminlevel/chinook/offices)
"mt" = (
-/obj/structure/machinery/light{
- dir = 8
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 26
},
-/obj/structure/machinery/cryopod,
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "sterile_green_side"
+ dir = 5;
+ icon_state = "plating"
},
-/area/adminlevel/chinook/medical)
+/area/adminlevel/chinook/engineering)
"mu" = (
/obj/structure/machinery/vending/security,
/turf/open/floor/almayer{
@@ -3518,6 +4031,12 @@
icon_state = "plating_striped"
},
/area/adminlevel/chinook)
+"mw" = (
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/cargo)
"mz" = (
/obj/structure/bed/chair/comfy{
dir = 4
@@ -3540,6 +4059,23 @@
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
+"mC" = (
+/obj/structure/platform_decoration/strata/metal{
+ dir = 8
+ },
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
+"mD" = (
+/obj/structure/platform/strata/metal{
+ dir = 4
+ },
+/obj/structure/platform/strata/metal,
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
"mF" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/pizzabox/meat{
@@ -3576,11 +4112,7 @@
pixel_x = -6;
pixel_y = 2
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"mK" = (
/turf/open/floor/almayer{
@@ -3592,11 +4124,7 @@
/obj/item/device/flashlight/lamp/green{
pixel_y = 7
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"mO" = (
/obj/structure/extinguisher_cabinet{
@@ -3619,23 +4147,23 @@
/area/adminlevel/chinook/medical)
"mU" = (
/obj/structure/filingcabinet,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
+"mV" = (
+/obj/effect/decal/medical_decals{
+ icon_state = "cryocell2deval"
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/chinook/medical)
"mW" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/reagent_container/food/drinks/cans/waterbottle{
pixel_x = 2;
pixel_y = 7
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"mX" = (
/turf/open/shuttle/dropship{
@@ -3651,12 +4179,16 @@
/obj/structure/machinery/light{
dir = 1
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
+"mZ" = (
+/obj/structure/machinery/door/airlock/almayer/command{
+ name = "\improper Female Locker Room"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook)
"na" = (
/obj/structure/bed/chair/comfy,
/turf/open/floor/almayer{
@@ -3664,15 +4196,25 @@
icon_state = "emerald"
},
/area/adminlevel/chinook/shuttle)
+"nb" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 2
+ },
+/obj/structure/machinery/scoreboard{
+ id = "chinook";
+ pixel_y = 30
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"nd" = (
/obj/structure/bed/chair/office/dark{
dir = 8
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"ne" = (
/obj/structure/bed/sofa/south/grey/left,
@@ -3711,6 +4253,12 @@
icon_state = "plating"
},
/area/adminlevel/chinook/engineering)
+"nk" = (
+/obj/structure/platform/strata/metal,
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
"nl" = (
/obj/structure/surface/table/reinforced/black,
/obj/structure/sign/prop1{
@@ -3723,11 +4271,7 @@
/obj/item/tool/pen{
pixel_y = 3
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"nm" = (
/obj/structure/surface/table/almayer,
@@ -3769,9 +4313,7 @@
},
/area/adminlevel/chinook/medical)
"ns" = (
-/obj/structure/closet/secure_closet/freezer/kitchen,
-/obj/item/reagent_container/food/condiment/enzyme,
-/obj/item/reagent_container/food/condiment/enzyme,
+/obj/structure/machinery/vending/dinnerware,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -3811,15 +4353,6 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
-"nx" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E"
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "emerald"
- },
-/area/adminlevel/chinook/shuttle)
"ny" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/ashtray/glass{
@@ -3863,6 +4396,9 @@
pixel_y = 7
},
/obj/structure/surface/table/reinforced/black,
+/obj/structure/sign/poster/propaganda{
+ pixel_y = 30
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -3877,15 +4413,24 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/sec)
"nF" = (
-/obj/item/storage/fancy/cigar,
/obj/structure/surface/table/reinforced/black,
/obj/structure/sign/prop2{
pixel_y = 30
},
+/obj/structure/machinery/faxmachine/uscm/command/highcom{
+ name = "Chinook Fax Machine";
+ department = "Chinook 91 GSO Station";
+ pixel_y = 5
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/adminlevel/chinook/offices)
+"nG" = (
+/obj/structure/surface/table/almayer,
+/obj/item/ashtray/glass,
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/cargo)
"nH" = (
/obj/structure/surface/table/reinforced/almayer_B,
/turf/open/floor/almayer,
@@ -3900,6 +4445,15 @@
icon_state = "wood"
},
/area/adminlevel/chinook/offices)
+"nL" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/chinook/medical)
"nN" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/door_control{
@@ -3927,11 +4481,7 @@
pixel_y = 6
},
/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/event)
"nS" = (
/obj/structure/closet/secure_closet/guncabinet/red,
@@ -3954,21 +4504,8 @@
/obj/item/storage/fancy/cigarettes/emeraldgreen{
pixel_y = 6
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/event)
-"nW" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "silver"
- },
-/area/adminlevel/chinook)
"nX" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/reagent_container/food/drinks/coffee{
@@ -3979,11 +4516,7 @@
name = "Courtroom Procedures";
pixel_y = 10
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/event)
"nY" = (
/obj/item/paper_bin/uscm{
@@ -3991,11 +4524,7 @@
},
/obj/item/tool/pen,
/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/event)
"nZ" = (
/obj/structure/target,
@@ -4044,11 +4573,7 @@
pixel_x = -2
},
/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"og" = (
/obj/structure/stairs/perspective{
@@ -4087,11 +4612,7 @@
},
/area/adminlevel/chinook/event)
"om" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/ashtray/glass{
- pixel_y = 4
- },
-/obj/item/clothing/glasses/sunglasses,
+/obj/structure/surface/table/reinforced/almayer_B,
/turf/open/floor/carpet{
desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
name = "\improper carpet"
@@ -4120,20 +4641,17 @@
},
/area/adminlevel/chinook/medical)
"or" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/reagent_container/food/drinks/coffee{
- pixel_x = 12;
- pixel_y = 7
- },
-/obj/item/reagent_container/food/drinks/cans/waterbottle{
- pixel_x = 5;
- pixel_y = 5
+/obj/structure/machinery/door/airlock/almayer/medical/glass{
+ id = "medcryobeds";
+ id_tag = "medcryobeds";
+ name = "Medical Hypersleep Access";
+ req_access = null;
+ req_one_access = null
},
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
},
-/area/adminlevel/chinook/event)
+/area/adminlevel/chinook/medical)
"os" = (
/obj/item/tool/wirecutters{
pixel_y = -7
@@ -4154,25 +4672,42 @@
/area/adminlevel/chinook/engineering)
"ou" = (
/turf/open/floor/almayer/uscm/directional{
- dir = 9
+ dir = 1
},
/area/adminlevel/chinook/shuttle)
"ov" = (
/turf/open/floor/almayer/uscm/directional{
- dir = 1
+ dir = 5
},
/area/adminlevel/chinook/shuttle)
"ow" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/reagent_container/food/drinks/drinkingglass{
- pixel_x = -6;
- pixel_y = 6
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper Pool"
},
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
+"ox" = (
+/obj/structure/machinery/light,
+/obj/structure/machinery/disposal,
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/area/adminlevel/chinook/event)
+/area/adminlevel/chinook/cargo)
+"oy" = (
+/obj/structure/surface/table/almayer,
+/obj/item/reagent_container/food/drinks/coffee{
+ pixel_x = 7;
+ pixel_y = 7
+ },
+/obj/item/toy/crayon/blue,
+/obj/item/stack/cable_coil{
+ pixel_x = -8
+ },
+/obj/item/device/lightreplacer,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/offices)
"oz" = (
/obj/structure/platform{
dir = 8
@@ -4235,6 +4770,23 @@
icon_state = "red"
},
/area/adminlevel/chinook/sec)
+"oF" = (
+/obj/structure/surface/rack,
+/obj/item/toy/beach_ball/holoball,
+/obj/item/toy/beach_ball/holoball,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/adminlevel/chinook)
+"oG" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "blue"
+ },
+/area/adminlevel/chinook)
"oH" = (
/obj/structure/stairs/perspective{
dir = 4;
@@ -4242,6 +4794,12 @@
},
/turf/open/floor/kutjevo,
/area/adminlevel/chinook/event)
+"oI" = (
+/obj/structure/machinery/vending/cola,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/cargo)
"oJ" = (
/obj/item/storage/surgical_tray,
/obj/structure/surface/table/almayer,
@@ -4271,9 +4829,6 @@
/area/adminlevel/chinook/event)
"oO" = (
/obj/structure/surface/table/almayer,
-/obj/structure/machinery/computer/cameras/almayer_network{
- dir = 1
- },
/turf/open/floor/almayer{
icon_state = "red"
},
@@ -4283,10 +4838,10 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/cryo)
"oU" = (
-/obj/structure/machinery/medical_pod/autodoc,
/obj/structure/sign/safety/autodoc{
pixel_x = -16
},
+/obj/structure/machinery/medical_pod/autodoc,
/turf/open/floor/almayer{
dir = 8;
icon_state = "sterile_green_side"
@@ -4312,6 +4867,25 @@
/obj/structure/bed/stool,
/turf/open/floor/kutjevo/tan/alt_edge,
/area/adminlevel/chinook/event)
+"oY" = (
+/obj/structure/bed/chair{
+ can_buckle = 0;
+ dir = 8
+ },
+/obj/structure/bed/chair{
+ can_buckle = 0;
+ dir = 8;
+ pixel_x = -1;
+ pixel_y = 3
+ },
+/obj/structure/bed/chair{
+ can_buckle = 0;
+ dir = 8;
+ pixel_x = -2;
+ pixel_y = 6
+ },
+/turf/open/floor/kutjevo/plate,
+/area/adminlevel/chinook/event)
"oZ" = (
/obj/structure/machinery/vending/dinnerware,
/turf/open/floor/kutjevo/plate,
@@ -4345,11 +4919,7 @@
dir = 1;
name = "prosecution chair"
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/event)
"pg" = (
/obj/structure/stairs/perspective{
@@ -4416,11 +4986,11 @@
/turf/open/floor/plating,
/area/adminlevel/chinook/engineering)
"pq" = (
-/obj/structure/sign/safety/med_cryo{
- pixel_y = -25
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -26
},
/turf/open/floor/almayer{
- icon_state = "sterile_green_side"
+ icon_state = "plate"
},
/area/adminlevel/chinook/medical)
"pr" = (
@@ -4438,6 +5008,14 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/sec)
+"pv" = (
+/obj/structure/platform/strata/metal{
+ dir = 1
+ },
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
"pw" = (
/turf/open/floor/almayer{
dir = 5;
@@ -4459,21 +5037,21 @@
pixel_x = 8;
pixel_y = 7
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
+"pz" = (
+/obj/structure/machinery/vending/snack,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/cargo)
"pA" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/folder/blue{
- pixel_x = -6;
- pixel_y = 6
+/obj/structure/machinery/door/airlock/almayer/command{
+ dir = 1;
+ name = "Office of LtCol. Booker Peralta"
},
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
/area/adminlevel/chinook/offices)
"pB" = (
@@ -4482,15 +5060,16 @@
pixel_y = 4
},
/obj/structure/machinery/light,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"pC" = (
-/obj/structure/flora/pottedplant/random,
/obj/structure/machinery/light,
+/obj/structure/surface/table/almayer,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_29";
+ pixel_x = 1;
+ pixel_y = 10
+ },
/turf/open/floor/almayer,
/area/adminlevel/chinook)
"pD" = (
@@ -4498,14 +5077,12 @@
/obj/item/storage/fancy/cigar{
pixel_y = 8
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"pE" = (
-/turf/open/floor/almayer/uscm/directional,
+/turf/open/floor/almayer/uscm/directional{
+ dir = 6
+ },
/area/adminlevel/chinook/shuttle)
"pF" = (
/obj/structure/surface/table/reinforced/black,
@@ -4534,6 +5111,21 @@
icon_state = "plate"
},
/area/adminlevel/chinook/offices)
+"pI" = (
+/obj/structure/sign/safety/bridge{
+ desc = "A sign signifying the Courtroom";
+ name = "\improper Courtroom";
+ pixel_x = 12;
+ pixel_y = 25
+ },
+/obj/structure/sign/safety/north{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/adminlevel/chinook/sec)
"pJ" = (
/obj/structure/machinery/computer/secure_data{
dir = 4
@@ -4578,6 +5170,11 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/event)
+"pQ" = (
+/turf/closed/shuttle/elevator{
+ dir = 6
+ },
+/area/adminlevel/chinook/cargo)
"pR" = (
/obj/structure/machinery/disposal,
/turf/open/floor/kutjevo,
@@ -4589,13 +5186,13 @@
/turf/open/floor/kutjevo,
/area/adminlevel/chinook/event)
"pT" = (
-/obj/structure/machinery/power/fusion_engine,
/obj/structure/machinery/light{
dir = 4
},
/obj/structure/platform{
dir = 4
},
+/obj/structure/prop/invuln/fusion_reactor,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -4619,25 +5216,19 @@
/turf/open/floor/kutjevo,
/area/adminlevel/chinook/event)
"pW" = (
+/obj/structure/barricade/handrail/kutjevo{
+ dir = 1
+ },
/obj/structure/machinery/light{
dir = 8
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
"pX" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/obj/structure/machinery/cm_vending/sorted/medical,
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "sterile_green_side"
+/turf/open/gm/river{
+ name = "pool"
},
-/area/adminlevel/chinook/medical)
+/area/adminlevel/chinook)
"pY" = (
/obj/structure/extinguisher_cabinet{
pixel_x = 26
@@ -4652,23 +5243,16 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/sec)
"qa" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/book/manual/marine_law{
- pixel_x = 3;
- pixel_y = 8
- },
-/obj/item/book/manual/marine_law{
- pixel_x = 1;
- pixel_y = 2
- },
-/obj/item/tool/pen{
- pixel_y = 3
+/obj/structure/filingcabinet{
+ pixel_x = 8;
+ pixel_y = 16
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = -8;
+ pixel_y = 16
},
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"qb" = (
/obj/structure/machinery/vending/cigarette/colony,
@@ -4678,15 +5262,19 @@
},
/area/adminlevel/chinook)
"qc" = (
+/obj/structure/barricade/handrail/kutjevo{
+ dir = 1
+ },
/obj/structure/machinery/light{
dir = 4
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
+"qd" = (
+/turf/closed/shuttle/elevator{
+ dir = 10
+ },
+/area/adminlevel/chinook/offices)
"qe" = (
/obj/structure/machinery/door/airlock/almayer/command{
dir = 1;
@@ -4717,6 +5305,19 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
+"ql" = (
+/obj/structure/machinery/vending/coffee,
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/cargo)
+"qm" = (
+/obj/structure/sign/poster{
+ pixel_y = -32
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/sec)
"qn" = (
/turf/open/floor/almayer{
dir = 10;
@@ -4725,11 +5326,12 @@
/area/adminlevel/chinook/sec)
"qo" = (
/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/machinery/computer/communications{
+ dir = 4;
+ pixel_x = 1;
+ pixel_y = 6
},
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"qp" = (
/obj/structure/bed/chair/office/dark{
@@ -4740,6 +5342,11 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
+"qq" = (
+/turf/open/floor/corsat{
+ icon_state = "squares"
+ },
+/area/adminlevel/chinook/cargo)
"qr" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/reagent_container/food/drinks/coffee{
@@ -4752,11 +5359,21 @@
},
/area/adminlevel/chinook/offices)
"qu" = (
-/obj/structure/surface/table/reinforced/almayer_B,
-/obj/item/folder/yellow{
- pixel_y = 7
+/obj/item/toy/inflatable_duck,
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
+"qv" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_sn_full_cap"
+ },
+/obj/structure/platform/strata/metal{
+ dir = 8
+ },
+/turf/open/gm/river{
+ name = "pool"
},
-/turf/open/floor/almayer,
/area/adminlevel/chinook)
"qw" = (
/obj/item/storage/box/m56d/m2c,
@@ -4769,18 +5386,14 @@
/obj/structure/bed/chair/comfy{
dir = 8
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/sec)
"qz" = (
/obj/structure/bed/chair/comfy{
desc = "A chair with leather padding and adjustable headrest. You could probably sit in one of these for ages. This one looks fit for a secretary to sit in.";
name = "secretary's comfy chair"
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo,
/area/adminlevel/chinook/offices)
"qA" = (
/obj/structure/surface/table/almayer,
@@ -4798,6 +5411,25 @@
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
+"qB" = (
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/tool/weldingtool/largetank{
+ pixel_x = -9;
+ pixel_y = 4
+ },
+/obj/item/stack/cable_coil{
+ pixel_x = 7
+ },
+/obj/item/stack/cable_coil{
+ pixel_x = 13;
+ pixel_y = 5
+ },
+/obj/item/tool/weldingtool/largetank{
+ pixel_x = -2;
+ pixel_y = 6
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook)
"qC" = (
/obj/item/ashtray/glass{
pixel_y = 4
@@ -4849,12 +5481,12 @@
icon_state = "plate"
},
/area/adminlevel/chinook)
-"qJ" = (
-/obj/structure/machinery/light{
- dir = 4
+"qI" = (
+/obj/structure/largecrate/random/case/double,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
},
-/turf/open/floor/kutjevo,
-/area/adminlevel/chinook/event)
+/area/adminlevel/chinook)
"qK" = (
/obj/structure/machinery/door/airlock/almayer/security/glass{
name = "\improper Provost Offices"
@@ -4863,12 +5495,6 @@
icon_state = "plate"
},
/area/adminlevel/chinook/sec)
-"qL" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
- },
-/area/adminlevel/chinook/engineering)
"qM" = (
/turf/open/floor/kutjevo/tan/alt_edge{
dir = 8
@@ -4878,6 +5504,15 @@
/obj/structure/machinery/cm_vending/sorted/marine_food,
/turf/open/floor/kutjevo/tan/plate,
/area/adminlevel/chinook/event)
+"qO" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/cargo)
"qP" = (
/obj/structure/bed/chair/comfy{
dir = 4
@@ -4930,9 +5565,15 @@
/obj/structure/surface/table/reinforced/black,
/turf/open/floor/kutjevo/tan,
/area/adminlevel/chinook/event)
-"rc" = (
-/obj/structure/closet/crate,
-/obj/item/storage/briefcase/inflatable,
+"rb" = (
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook)
+"rc" = (
+/obj/structure/closet/crate,
+/obj/item/storage/briefcase/inflatable,
/obj/item/storage/briefcase/inflatable,
/obj/item/storage/briefcase/inflatable,
/obj/item/storage/briefcase/inflatable,
@@ -5017,6 +5658,11 @@
icon_state = "kitchen"
},
/area/adminlevel/chinook/event)
+"rp" = (
+/turf/closed/shuttle/elevator{
+ dir = 6
+ },
+/area/adminlevel/chinook/offices)
"rq" = (
/obj/structure/machinery/light{
dir = 1
@@ -5028,19 +5674,7 @@
/turf/open/floor/kutjevo/tan/plate,
/area/adminlevel/chinook/event)
"ru" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/surface/table/almayer,
-/obj/item/roller{
- pixel_y = 6
- },
-/obj/item/roller{
- pixel_y = 6
- },
-/obj/item/roller{
- pixel_y = 6
- },
+/obj/structure/machinery/cm_vending/sorted/medical,
/turf/open/floor/almayer{
dir = 1;
icon_state = "sterile_green_side"
@@ -5061,6 +5695,12 @@
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
+"ry" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "cargo_arrow"
+ },
+/area/adminlevel/chinook/cargo)
"rA" = (
/obj/item/stack/sheet/wood/medium_stack,
/turf/open/floor/almayer{
@@ -5068,6 +5708,18 @@
icon_state = "plating"
},
/area/adminlevel/chinook/cargo)
+"rC" = (
+/obj/structure/sign/safety/hazard{
+ pixel_x = 32;
+ pixel_y = 6
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/almayer{
+ icon_state = "silvercorner"
+ },
+/area/adminlevel/chinook)
"rD" = (
/turf/open/floor/almayer{
dir = 4;
@@ -5081,6 +5733,12 @@
icon_state = "sterile_green"
},
/area/adminlevel/chinook/medical)
+"rF" = (
+/obj/structure/sign/safety/bathmens{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
"rG" = (
/turf/open/floor/almayer{
dir = 1;
@@ -5114,6 +5772,18 @@
/obj/structure/surface/table/reinforced/black,
/turf/open/floor/kutjevo/tan/plate,
/area/adminlevel/chinook/event)
+"rK" = (
+/obj/structure/sign/safety/bathmens{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
+"rM" = (
+/obj/structure/barricade/handrail/kutjevo{
+ dir = 1
+ },
+/turf/open/floor/kutjevo/plate,
+/area/adminlevel/chinook/event)
"rN" = (
/turf/open/floor/almayer{
dir = 1;
@@ -5121,9 +5791,8 @@
},
/area/adminlevel/chinook)
"rO" = (
-/obj/structure/machinery/door/airlock/almayer/engineering{
- dir = 1;
- name = "\improper Engineering Workshop"
+/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{
+ name = "\improper Engineering"
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
@@ -5140,6 +5809,10 @@
},
/area/adminlevel/chinook/offices)
"rV" = (
+/obj/item/reagent_container/food/drinks/drinkingglass{
+ pixel_x = 5;
+ pixel_y = 8
+ },
/obj/structure/surface/table/reinforced/black,
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
@@ -5151,9 +5824,11 @@
"rX" = (
/obj/structure/machinery/door/airlock/almayer/command{
dir = 1;
- name = "\improper Colonel, Fourth Division"
+ name = "Office of LtCol. Braden Stephenson"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
"rY" = (
/obj/structure/machinery/power/smes,
@@ -5173,6 +5848,14 @@
},
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
+"se" = (
+/obj/structure/sign/safety/storage{
+ pixel_x = -18
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/chinook/medical)
"sg" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/reagent_container/food/drinks/drinkingglass,
@@ -5192,7 +5875,7 @@
dir = 4
},
/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo,
/area/adminlevel/chinook/offices)
"sk" = (
/obj/structure/machinery/cm_vending/sorted/boozeomat,
@@ -5208,19 +5891,11 @@
},
/area/adminlevel/chinook/engineering)
"sm" = (
-/obj/item/reagent_container/food/drinks/drinkingglass{
- pixel_x = 5;
- pixel_y = 8
- },
-/obj/structure/surface/table/reinforced/black,
+/obj/structure/machinery/disposal,
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
"sn" = (
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/sec)
"so" = (
/obj/structure/machinery/light{
@@ -5250,7 +5925,7 @@
pixel_x = 1;
pixel_y = 6
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo,
/area/adminlevel/chinook/offices)
"st" = (
/obj/structure/machinery/portable_atmospherics/canister/air,
@@ -5259,10 +5934,17 @@
icon_state = "plating"
},
/area/adminlevel/chinook/engineering)
+"sw" = (
+/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep,
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook/offices)
"sx" = (
-/obj/structure/machinery/vending/snack,
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 5;
+ icon_state = "plating"
},
/area/adminlevel/chinook/cargo)
"sz" = (
@@ -5286,6 +5968,25 @@
icon_state = "blue"
},
/area/adminlevel/chinook/offices)
+"sD" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/tool/kitchen/tray{
+ pixel_y = 7
+ },
+/obj/item/reagent_container/food/drinks/cans/waterbottle{
+ pixel_x = -8;
+ pixel_y = 11
+ },
+/obj/item/reagent_container/food/drinks/cans/waterbottle{
+ pixel_x = -2;
+ pixel_y = 11
+ },
+/obj/item/reagent_container/food/drinks/cans/waterbottle{
+ pixel_x = 10;
+ pixel_y = 11
+ },
+/turf/open/floor/kutjevo/tan/plate,
+/area/adminlevel/chinook/event)
"sE" = (
/obj/structure/machinery/door_control{
id = "chinookofficelock";
@@ -5354,21 +6055,52 @@
},
/obj/structure/surface/rack,
/obj/item/clothing/head/welding,
+/obj/item/stack/sheet/metal/large_stack,
/turf/open/floor/almayer{
icon_state = "orange"
},
/area/adminlevel/chinook/engineering)
+"sP" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal8";
+ pixel_x = -16;
+ pixel_y = -16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal5";
+ pixel_x = -16;
+ pixel_y = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal6";
+ pixel_x = 16;
+ pixel_y = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal7";
+ pixel_x = 16;
+ pixel_y = -16
+ },
+/obj/structure/holohoop{
+ dir = 8;
+ id = "chinook";
+ side = "right"
+ },
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 16
+ },
+/obj/structure/barricade/handrail/wire{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"sQ" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/reagent_container/food/drinks/coffee{
pixel_x = 12;
pixel_y = 7
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"sR" = (
/obj/structure/machinery/light,
@@ -5418,16 +6150,10 @@
/obj/item/device/flashlight/lamp/green{
pixel_y = 6
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"sW" = (
-/obj/structure/platform{
- dir = 1
- },
+/obj/structure/platform/stair_cut,
/obj/structure/stairs/perspective{
dir = 8;
icon_state = "p_stair_ew_full_cap";
@@ -5459,6 +6185,12 @@
icon_state = "plating"
},
/area/adminlevel/chinook)
+"ta" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/adminlevel/chinook/cryo)
"tb" = (
/obj/item/device/lightreplacer,
/obj/structure/surface/table/reinforced/black,
@@ -5506,20 +6238,31 @@
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/sec)
"tn" = (
-/obj/item/ashtray/glass,
/obj/structure/surface/table/reinforced/black,
+/obj/item/trash/plate,
+/obj/item/ashtray/glass{
+ pixel_y = 4
+ },
/turf/open/floor/kutjevo/tan,
/area/adminlevel/chinook/event)
+"to" = (
+/obj/structure/platform/strata/metal{
+ dir = 8
+ },
+/obj/structure/platform/strata/metal,
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
"tp" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/book/manual/barman_recipes{
- pixel_y = 6
+/obj/structure/machinery/light{
+ dir = 1
},
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
},
-/area/adminlevel/chinook/offices)
+/area/adminlevel/chinook)
"tq" = (
/obj/structure/machinery/door/airlock/almayer/generic{
name = "Bathroom"
@@ -5541,18 +6284,9 @@
},
/area/adminlevel/chinook/medical)
"tu" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/surface/table/almayer,
-/obj/item/reagent_container/food/drinks/cans/waterbottle{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/item/trash/boonie,
+/obj/structure/morgue,
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "sterile_green_side"
+ icon_state = "plate"
},
/area/adminlevel/chinook/medical)
"tv" = (
@@ -5566,16 +6300,12 @@
},
/area/adminlevel/chinook/cargo)
"tw" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/reagent_container/food/drinks/tea{
- pixel_y = 6
- },
-/obj/item/reagent_container/food/snacks/plumphelmetbiscuit,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/structure/closet/secure_closet/personal,
+/obj/structure/closet/secure_closet/personal,
+/obj/structure/sign/poster{
+ pixel_y = 32
},
+/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook)
"tx" = (
/obj/structure/machinery/light,
@@ -5584,6 +6314,15 @@
icon_state = "orange"
},
/area/adminlevel/chinook/engineering)
+"ty" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/cargo)
"tz" = (
/obj/structure/surface/rack,
/obj/effect/spawner/random/toolbox,
@@ -5640,11 +6379,9 @@
},
/area/adminlevel/chinook/sec)
"tJ" = (
-/obj/structure/closet/boxinggloves,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/adminlevel/chinook)
+/obj/structure/flora/pottedplant/random,
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/offices)
"tK" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/storage/box/drinkingglasses,
@@ -5653,20 +6390,11 @@
},
/area/adminlevel/chinook/event)
"tL" = (
-/obj/structure/surface/table/reinforced/almayer_B,
-/obj/item/cell/super{
- pixel_x = 3;
- pixel_y = 4
- },
-/obj/item/cell/super{
- pixel_x = 3
- },
-/obj/item/tool/screwdriver{
- pixel_x = -1;
- pixel_y = 6
+/obj/structure/machinery/body_scanconsole,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
},
-/turf/open/floor/almayer,
-/area/adminlevel/chinook)
+/area/adminlevel/chinook/offices)
"tM" = (
/obj/structure/barricade/handrail{
dir = 8
@@ -5709,6 +6437,9 @@
icon_state = "plating_striped"
},
/area/adminlevel/chinook/engineering)
+"tT" = (
+/turf/closed/wall/almayer/reinforced,
+/area/adminlevel/chinook/shuttle)
"tU" = (
/turf/open/floor/almayer{
dir = 8;
@@ -5742,22 +6473,19 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
-"tY" = (
+"tZ" = (
/obj/structure/machinery/light{
- dir = 4
+ dir = 1
+ },
+/obj/structure/machinery/scoreboard_button{
+ pixel_y = 24;
+ id = "chinook";
+ name = "scoreboard reset button"
},
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silver"
+ icon_state = "cargo"
},
/area/adminlevel/chinook)
-"tZ" = (
-/obj/item/reagent_container/food/drinks/bottle/sake{
- pixel_x = -5
- },
-/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/kutjevo/tan,
-/area/adminlevel/chinook/event)
"ud" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{
dir = 2;
@@ -5769,9 +6497,7 @@
/area/adminlevel/chinook/event)
"ue" = (
/obj/structure/surface/table/reinforced/almayer_B,
-/obj/structure/machinery/chem_dispenser/soda{
- pixel_y = 6
- },
+/obj/structure/machinery/chem_dispenser/soda,
/obj/structure/machinery/light{
dir = 4
},
@@ -5788,9 +6514,14 @@
},
/area/adminlevel/chinook/shuttle)
"ug" = (
-/obj/structure/machinery/disposal,
-/turf/open/floor/kutjevo/plate,
-/area/adminlevel/chinook/event)
+/obj/structure/sign/safety/bathwomens{
+ pixel_x = 15;
+ pixel_y = -25
+ },
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/adminlevel/chinook/offices)
"uh" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_21"
@@ -5816,12 +6547,6 @@
icon_state = "cargo"
},
/area/adminlevel/chinook/cargo)
-"uk" = (
-/obj/structure/bed/chair{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/adminlevel/chinook/cargo)
"uo" = (
/obj/structure/sign/safety/opens_up{
pixel_x = 15;
@@ -5833,24 +6558,11 @@
/turf/open/space,
/area/space)
"up" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/clothing/mask/cigarette/pipe,
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
- },
-/area/adminlevel/chinook/event)
+/obj/structure/flora/pottedplant/random,
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"uq" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/structure/machinery/computer/emails{
- dir = 8;
- pixel_x = -3;
- pixel_y = -1
- },
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"ur" = (
/obj/structure/bed/sofa/south/grey/left,
@@ -5869,12 +6581,12 @@
dir = 1;
name = "\improper Courtroom"
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
+"uu" = (
+/obj/structure/bed/chair/comfy,
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"uv" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/paper{
@@ -5888,7 +6600,7 @@
/area/adminlevel/chinook/event)
"uw" = (
/obj/structure/bed/chair/comfy,
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"ux" = (
/obj/structure/bed/chair/comfy{
@@ -5900,26 +6612,16 @@
},
/area/adminlevel/chinook/event)
"uy" = (
-/obj/structure/closet/secure_closet/guncabinet/blue{
- name = "sidearm storage"
- },
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/weapon/gun/pistol/m4a3,
-/obj/item/weapon/gun/pistol/m4a3,
-/obj/item/weapon/gun/pistol/m4a3,
-/turf/open/floor/almayer{
- icon_state = "cargo"
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = 4
},
-/area/adminlevel/chinook/sec)
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal8";
+ pixel_x = -2
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"uz" = (
/obj/structure/machinery/light{
dir = 8
@@ -5998,6 +6700,9 @@
/area/adminlevel/chinook/sec)
"uK" = (
/obj/structure/bed/chair/comfy,
+/obj/structure/machinery/light{
+ dir = 1
+ },
/turf/open/floor/almayer{
dir = 5;
icon_state = "blue"
@@ -6013,15 +6718,6 @@
icon_state = "orange"
},
/area/adminlevel/chinook/engineering)
-"uN" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "blue"
- },
-/area/adminlevel/chinook/offices)
"uO" = (
/obj/structure/sign/prop1{
pixel_y = 32
@@ -6049,16 +6745,19 @@
/turf/open/floor/plating,
/area/adminlevel/chinook/shuttle/unpowered)
"uS" = (
-/obj/structure/cargo_container/wy/left,
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 2;
+ pixel_y = -21
},
-/area/adminlevel/chinook/cargo)
-"uT" = (
-/obj/structure/machinery/medical_pod/bodyscanner{
- dir = 8
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal5";
+ pixel_x = -2;
+ pixel_y = 4
},
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
+"uT" = (
+/obj/structure/machinery/medical_pod/bodyscanner,
/turf/open/floor/almayer{
dir = 4;
icon_state = "sterile_green_corner"
@@ -6073,15 +6772,6 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/sec)
-"uV" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E"
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "emerald"
- },
-/area/adminlevel/chinook/shuttle)
"uW" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/device/lightreplacer,
@@ -6090,12 +6780,9 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
"uX" = (
-/obj/structure/machinery/vending/coffee,
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/adminlevel/chinook/cargo)
+/obj/structure/machinery/disposal,
+/turf/closed/wall/almayer,
+/area/adminlevel/chinook/sec)
"uY" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/reagent_container/food/drinks/cans/beer{
@@ -6203,27 +6890,32 @@
/area/adminlevel/chinook/event)
"vp" = (
/obj/structure/closet/firecloset,
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo,
/area/adminlevel/chinook/offices)
"vq" = (
/obj/structure/largecrate/random/case/small,
+/obj/item/circuitboard/airlock,
/turf/open/floor/almayer{
dir = 1;
icon_state = "orange"
},
/area/adminlevel/chinook/engineering)
"vs" = (
-/obj/structure/closet/secure_closet/commander{
- name = "colonel's locker"
- },
-/obj/item/clothing/head/beret/marine/commander/council,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
+/obj/structure/closet/secure_closet/commander,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
+"vt" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/toy/deck,
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook)
"vu" = (
/turf/open/floor/almayer/uscm/directional{
- dir = 8
+ dir = 8;
+ icon_state = "logo_c"
},
/area/adminlevel/chinook/shuttle)
"vv" = (
@@ -6233,7 +6925,18 @@
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
+"vw" = (
+/obj/structure/sign/safety/bathmens{
+ pixel_x = 15;
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"vx" = (
+/obj/structure/flora/pottedplant/random,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -6273,12 +6976,6 @@
icon_state = "rasputin7"
},
/area/adminlevel/chinook/shuttle/unpowered)
-"vD" = (
-/turf/closed/wall/almayer/outer{
- desc = "A heavily reinforced metal wall. Nothing gets through here.";
- name = "ultra-reinforced hull"
- },
-/area/adminlevel/chinook)
"vE" = (
/obj/structure/sign/safety/ammunition{
pixel_x = 32;
@@ -6327,11 +7024,7 @@
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_21"
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook)
"vK" = (
/obj/item/storage/fancy/cigar,
@@ -6377,6 +7070,18 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook)
+"vS" = (
+/obj/structure/sign/safety/med_cryo{
+ pixel_y = -25
+ },
+/obj/structure/sign/safety/south{
+ pixel_x = 12;
+ pixel_y = -25
+ },
+/turf/open/floor/almayer{
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/chinook/medical)
"vT" = (
/obj/item/trash/barcardine,
/turf/open/floor/almayer,
@@ -6392,11 +7097,7 @@
},
/area/adminlevel/chinook/cargo)
"vW" = (
-/obj/structure/machinery/telecomms/processor/preset_cent{
- autolinkers = list("chinook");
- freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455);
- listening_level = 9
- },
+/obj/structure/machinery/telecomms/processor,
/turf/open/floor/almayer{
icon_state = "tcomms"
},
@@ -6409,7 +7110,7 @@
},
/area/adminlevel/chinook/medical)
"vZ" = (
-/obj/structure/cargo_container/arious/rightmid,
+/obj/structure/cargo_container/seegson/mid,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -6459,21 +7160,25 @@
/area/adminlevel/chinook/event)
"wl" = (
/obj/structure/surface/rack,
-/obj/item/explosive/grenade/high_explosive/training,
-/obj/item/explosive/grenade/high_explosive/training,
-/obj/item/explosive/grenade/high_explosive/training,
-/obj/item/explosive/grenade/high_explosive/training,
-/obj/item/explosive/grenade/high_explosive/training,
-/obj/item/explosive/grenade/high_explosive/training,
/turf/open/floor/almayer{
icon_state = "redfull"
},
/area/adminlevel/chinook)
+"wm" = (
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = -12
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = -12
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"wo" = (
-/obj/structure/bed/sofa/south/grey,
/obj/structure/machinery/light{
dir = 1
},
+/obj/structure/bed/sofa/south/grey/right,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -6483,6 +7188,10 @@
pixel_x = 32;
pixel_y = 6
},
+/obj/structure/sign/safety/firingrange{
+ pixel_x = 32;
+ pixel_y = -6
+ },
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -6498,6 +7207,15 @@
icon_state = "wood"
},
/area/adminlevel/chinook/offices)
+"wr" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"wt" = (
/obj/structure/sign/safety/synth_storage{
pixel_x = 31;
@@ -6529,25 +7247,20 @@
/obj/structure/bed/chair/office/dark{
dir = 1
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"wz" = (
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook)
"wA" = (
-/obj/item/tool/kitchen/tray,
+/obj/structure/surface/table/reinforced/black,
+/obj/item/trash/plate{
+ pixel_x = 2;
+ pixel_y = -1
+ },
/obj/item/reagent_container/food/snacks/sandwich{
pixel_y = 6
},
-/obj/structure/surface/table/reinforced/black,
/turf/open/floor/kutjevo/tan,
/area/adminlevel/chinook/event)
"wB" = (
@@ -6570,7 +7283,7 @@
/turf/open/floor/prison{
icon_state = "kitchen"
},
-/area/space)
+/area/adminlevel/chinook/event)
"wE" = (
/obj/structure/machinery/disposal,
/turf/open/floor/almayer{
@@ -6602,14 +7315,6 @@
icon_state = "kitchen"
},
/area/adminlevel/chinook/event)
-"wK" = (
-/obj/structure/surface/table/reinforced/black,
-/obj/item/paper,
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
- },
-/area/adminlevel/chinook/event)
"wL" = (
/obj/structure/machinery/cm_vending/sorted/medical/blood,
/turf/open/floor/almayer{
@@ -6635,6 +7340,11 @@
icon_state = "plate"
},
/area/adminlevel/chinook/engineering)
+"wS" = (
+/turf/closed/shuttle/elevator{
+ dir = 5
+ },
+/area/adminlevel/chinook/cargo)
"wT" = (
/obj/structure/machinery/cm_vending/clothing/dress,
/turf/open/floor/almayer{
@@ -6650,11 +7360,7 @@
/area/adminlevel/chinook/event)
"wV" = (
/obj/structure/bed/chair/comfy,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook)
"wW" = (
/turf/open/floor/almayer{
@@ -6662,12 +7368,31 @@
icon_state = "sterile_green_corner"
},
/area/adminlevel/chinook/medical)
+"wX" = (
+/obj/structure/platform/strata/metal{
+ dir = 8
+ },
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
"wY" = (
-/obj/structure/closet/secure_closet/freezer/fridge/full,
-/turf/open/floor/prison{
- icon_state = "kitchen"
+/obj/structure/machinery/light{
+ dir = 1
},
-/area/space)
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/adminlevel/chinook)
+"xa" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "blue"
+ },
+/area/adminlevel/chinook/offices)
"xd" = (
/obj/structure/machinery/door/airlock/almayer/security/glass{
dir = 1;
@@ -6693,6 +7418,27 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/event)
+"xf" = (
+/obj/structure/platform/strata/metal{
+ dir = 1
+ },
+/obj/structure/platform/strata/metal{
+ dir = 4
+ },
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
+"xg" = (
+/obj/structure/closet/secure_closet/guncabinet/red,
+/obj/item/ammo_magazine/shotgun/buckshot,
+/obj/item/weapon/gun/shotgun/combat,
+/obj/item/ammo_magazine/shotgun/buckshot,
+/obj/structure/machinery/door/window/brigdoor/southleft,
+/turf/open/floor/almayer{
+ icon_state = "redfull"
+ },
+/area/adminlevel/chinook/offices)
"xh" = (
/obj/structure/machinery/light/small,
/turf/open/floor/almayer{
@@ -6701,10 +7447,8 @@
},
/area/adminlevel/chinook/engineering)
"xi" = (
-/turf/closed/wall/almayer/outer{
- desc = "A heavily reinforced metal wall. Nothing gets through here.";
- name = "ultra-reinforced hull"
- },
+/obj/structure/surface/table/reinforced/almayer_B,
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"xj" = (
/obj/item/book/manual/chef_recipes,
@@ -6714,6 +7458,25 @@
icon_state = "kitchen"
},
/area/adminlevel/chinook/event)
+"xk" = (
+/obj/structure/sign/safety/bathmens{
+ pixel_y = -25
+ },
+/obj/structure/sign/safety/bathwomens{
+ pixel_x = 12;
+ pixel_y = -25
+ },
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
+"xm" = (
+/obj/structure/machinery/portable_atmospherics/hydroponics,
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook/event)
"xn" = (
/obj/structure/closet/secure_closet/brig,
/obj/structure/extinguisher_cabinet{
@@ -6723,6 +7486,17 @@
icon_state = "cargo"
},
/area/adminlevel/chinook/sec)
+"xq" = (
+/obj/structure/platform/strata/metal{
+ dir = 1
+ },
+/obj/structure/platform/strata/metal{
+ dir = 8
+ },
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
"xr" = (
/obj/structure/machinery/door/airlock/almayer/security/glass{
dir = 2;
@@ -6745,6 +7519,14 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
+"xv" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"xw" = (
/obj/structure/bed/sofa/south/grey,
/turf/open/floor/kutjevo/tan,
@@ -6759,6 +7541,14 @@
icon_state = "dark_sterile"
},
/area/adminlevel/chinook/sec)
+"xA" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 27
+ },
+/turf/open/floor/almayer{
+ icon_state = "tcomms"
+ },
+/area/adminlevel/chinook/engineering)
"xC" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/folder/black,
@@ -6774,8 +7564,8 @@
},
/area/adminlevel/chinook/offices)
"xF" = (
-/obj/structure/filingcabinet,
-/turf/open/floor/almayer,
+/obj/structure/surface/rack,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
"xG" = (
/obj/structure/flora/pottedplant{
@@ -6786,13 +7576,23 @@
"xH" = (
/obj/structure/machinery/door/airlock/almayer/command{
dir = 1;
- name = "\improper SCO Offices"
+ name = "\improper Offices"
},
-/turf/open/floor/almayer,
-/area/adminlevel/chinook/offices)
-"xK" = (
-/turf/closed/shuttle/ert{
- icon_state = "stan23"
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/offices)
+"xI" = (
+/obj/structure/sign/safety/bathunisex{
+ pixel_y = -25
+ },
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/adminlevel/chinook/sec)
+"xK" = (
+/turf/closed/shuttle/ert{
+ icon_state = "stan23"
},
/area/adminlevel/chinook/shuttle/unpowered)
"xL" = (
@@ -6827,8 +7627,18 @@
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_21"
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
+"xU" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = -12
+ },
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 2
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"xV" = (
/obj/structure/machinery/autolathe/full,
/turf/open/floor/almayer{
@@ -6849,17 +7659,24 @@
},
/area/adminlevel/chinook/offices)
"xZ" = (
-/obj/structure/machinery/body_scanconsole,
-/turf/open/floor/almayer{
- icon_state = "sterile_green_side"
+/obj/structure/surface/table/reinforced/black,
+/obj/item/ashtray/glass{
+ pixel_y = 4;
+ pixel_x = -13
},
-/area/adminlevel/chinook/medical)
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook/offices)
"ya" = (
/obj/structure/machinery/door/airlock/almayer/command{
dir = 1;
- name = "\improper General, 3rd Fleet 2nd Battlegroup"
+ name = "Office of Col. Samantha Maverick"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
"yb" = (
/obj/structure/machinery/chem_dispenser,
@@ -6889,6 +7706,12 @@
icon_state = "stan27"
},
/area/adminlevel/chinook/shuttle/unpowered)
+"yi" = (
+/obj/structure/prop/ice_colony/tiger_rug{
+ pixel_x = -16
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"yj" = (
/obj/structure/machinery/vending/cola,
/turf/open/floor/kutjevo/plate,
@@ -6902,12 +7725,24 @@
icon_state = "red"
},
/area/adminlevel/chinook/event)
+"yn" = (
+/obj/structure/machinery/door/airlock/almayer/medical{
+ name = "\improper Morgue"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"yo" = (
/obj/structure/bed/chair/comfy{
dir = 1
},
/turf/open/floor/kutjevo/tan/plate,
/area/adminlevel/chinook/event)
+"yp" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/event)
"yr" = (
/obj/structure/machinery/medical_pod/autodoc,
/turf/open/floor/almayer{
@@ -6943,6 +7778,15 @@
},
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook)
+"yy" = (
+/obj/structure/closet/secure_closet/guncabinet/red{
+ name = "provost armor rack"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/sec)
"yz" = (
/obj/structure/surface/table/almayer,
/obj/item/stack/sheet/metal/large_stack,
@@ -6963,12 +7807,19 @@
/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
pixel_y = 25
},
-/turf/open/floor/almayer,
+/obj/structure/bed/sofa/south/grey/left,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
"yF" = (
/obj/item/trash/cigbutt,
/turf/open/floor/kutjevo/multi_tiles,
/area/adminlevel/chinook/event)
+"yJ" = (
+/obj/structure/cargo_container/arious/mid,
+/turf/open/floor/corsat{
+ icon_state = "squares"
+ },
+/area/adminlevel/chinook/cargo)
"yK" = (
/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
pixel_x = -30
@@ -6977,6 +7828,21 @@
icon_state = "cargo"
},
/area/adminlevel/chinook)
+"yL" = (
+/obj/structure/cargo_container/arious/leftmid,
+/turf/open/floor/corsat{
+ icon_state = "squares"
+ },
+/area/adminlevel/chinook/cargo)
+"yM" = (
+/obj/structure/machinery/cryopod,
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "sterile_green"
+ },
+/area/adminlevel/chinook/medical)
"yN" = (
/turf/open/floor/almayer{
icon_state = "cargo"
@@ -6989,7 +7855,7 @@
icon_state = "p_stair_full"
},
/obj/structure/barricade/handrail/strata{
- layer = 3.5
+ layer = 4.5
},
/turf/open/floor/almayer{
dir = 5;
@@ -7005,16 +7871,35 @@
icon_state = "plate"
},
/area/adminlevel/chinook/offices)
+"yQ" = (
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = -12
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = 4
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
+"yR" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
"yS" = (
/obj/structure/bed/chair/comfy{
dir = 4
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/sec)
+"yT" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/reagent_container/food/snacks/plumphelmetbiscuit{
+ pixel_y = 6
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"yV" = (
/obj/structure/machinery/door_control{
id = "chinookrange";
@@ -7036,11 +7921,7 @@
/obj/structure/machinery/light{
dir = 8
},
-/obj/structure/machinery/telecomms/broadcaster/preset_cent{
- autolinkers = list("chinook");
- freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455);
- listening_level = 9
- },
+/obj/structure/machinery/telecomms/broadcaster,
/turf/open/floor/almayer{
icon_state = "tcomms"
},
@@ -7067,15 +7948,14 @@
},
/area/adminlevel/chinook)
"zd" = (
-/obj/structure/bed/chair/comfy{
- dir = 4
+/obj/structure/sign/safety/med_cryo{
+ pixel_x = 31
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "sterile_green_side"
},
-/area/adminlevel/chinook)
+/area/adminlevel/chinook/medical)
"zf" = (
/obj/structure/machinery/autodoc_console,
/turf/open/floor/almayer{
@@ -7083,6 +7963,29 @@
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
+"zg" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/reagent_container/food/drinks/coffee{
+ pixel_x = -7;
+ pixel_y = 11
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook/event)
+"zi" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 27
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/engineering)
"zj" = (
/obj/structure/bed/chair/comfy{
dir = 4
@@ -7092,6 +7995,12 @@
icon_state = "red"
},
/area/adminlevel/chinook/sec)
+"zl" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/chinook/offices)
"zm" = (
/obj/structure/machinery/door_control{
id = "chinook_solitary3";
@@ -7112,6 +8021,10 @@
/obj/item/tool/pen{
pixel_y = -6
},
+/obj/item/toy/deck/uno{
+ pixel_x = 3;
+ pixel_y = 8
+ },
/turf/open/floor/carpet{
desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
name = "\improper carpet"
@@ -7140,17 +8053,13 @@
},
/area/adminlevel/chinook/offices)
"zw" = (
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/event)
"zC" = (
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
"zD" = (
-/obj/structure/bed/sofa/south/grey,
+/obj/structure/machinery/disposal,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -7205,11 +8114,22 @@
name = "\improper Cargo Bay";
req_one_access_txt = "1;26"
},
+/obj/structure/machinery/door/poddoor/almayer{
+ id = "chinookreq";
+ name = "Requisitions Lockdown"
+ },
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
},
/area/adminlevel/chinook/cargo)
+"zM" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/reagent_container/food/drinks/bottle/sake{
+ pixel_x = -5
+ },
+/turf/open/floor/kutjevo/tan,
+/area/adminlevel/chinook/event)
"zO" = (
/obj/structure/machinery/door_control{
id = "chinook_tcomms";
@@ -7228,9 +8148,7 @@
},
/area/adminlevel/chinook/sec)
"zR" = (
-/obj/structure/machinery/medical_pod/sleeper{
- dir = 8
- },
+/obj/structure/machinery/medical_pod/sleeper,
/turf/open/floor/almayer{
dir = 4;
icon_state = "sterile_green_corner"
@@ -7259,7 +8177,7 @@
icon_state = "p_stair_full"
},
/obj/structure/barricade/handrail/strata{
- layer = 3.5
+ layer = 4.5
},
/turf/open/floor/almayer{
dir = 5;
@@ -7270,8 +8188,8 @@
/turf/closed/wall/almayer/reinforced,
/area/adminlevel/chinook/engineering)
"zX" = (
-/obj/structure/machinery/power/fusion_engine,
/obj/structure/platform,
+/obj/structure/prop/invuln/fusion_reactor,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -7368,6 +8286,7 @@
/area/adminlevel/chinook/offices)
"Ao" = (
/obj/structure/largecrate/random/barrel/green,
+/obj/structure/machinery/light,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -7399,12 +8318,12 @@
},
/area/adminlevel/chinook/engineering)
"Ax" = (
-/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/storage/box/cups{
pixel_x = 3;
pixel_y = 3
},
/obj/structure/machinery/light,
+/obj/structure/surface/table/reinforced/black,
/turf/open/floor/almayer{
icon_state = "blue"
},
@@ -7438,6 +8357,15 @@
icon_state = "sterile_green"
},
/area/adminlevel/chinook/medical)
+"AC" = (
+/obj/structure/surface/table/reinforced/prison,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/chinook/event)
+"AD" = (
+/turf/closed/shuttle/elevator,
+/area/adminlevel/chinook/offices)
"AE" = (
/obj/structure/bed/chair/office/dark{
dir = 8
@@ -7485,8 +8413,8 @@
},
/area/adminlevel/chinook/event)
"AJ" = (
-/obj/structure/surface/table/reinforced/almayer_B,
-/turf/open/floor/almayer,
+/obj/structure/bed/sofa/south/grey,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
"AK" = (
/obj/item/trash/cigbutt/cigarbutt,
@@ -7521,8 +8449,15 @@
icon_state = "redfull"
},
/area/adminlevel/chinook)
+"AR" = (
+/obj/structure/machinery/door/airlock/almayer/command{
+ dir = 1;
+ name = "\improper Courtroom"
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/event)
"AS" = (
-/obj/structure/bed/sofa/south/grey/right,
+/obj/structure/reagent_dispensers/water_cooler/stacks,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -7533,10 +8468,10 @@
},
/area/adminlevel/chinook/shuttle/unpowered)
"AV" = (
-/obj/structure/machinery/power/fusion_engine,
/obj/structure/platform{
dir = 8
},
+/obj/structure/prop/invuln/fusion_reactor,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -7549,6 +8484,13 @@
icon_state = "cargo"
},
/area/adminlevel/chinook/cargo)
+"AY" = (
+/obj/structure/closet/secure_closet/personal,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook)
"AZ" = (
/obj/effect/decal/warning_stripes{
icon_state = "N"
@@ -7573,6 +8515,15 @@
"Bc" = (
/turf/closed/wall/almayer/outer,
/area/adminlevel/chinook/sec)
+"Bd" = (
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = -12
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3"
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"Be" = (
/obj/effect/decal/warning_stripes{
icon_state = "N"
@@ -7584,6 +8535,7 @@
/obj/item/device/flashlight/lamp/green{
pixel_y = 7
},
+/obj/item/toy/deck,
/turf/open/floor/carpet{
desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
name = "\improper carpet"
@@ -7600,19 +8552,23 @@
},
/area/adminlevel/chinook/sec)
"Bh" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/closet/secure_closet/commander{
- name = "colonel's locker"
+/obj/structure/surface/table/reinforced/black,
+/obj/item/folder/black{
+ pixel_y = 6;
+ pixel_x = -6
},
-/obj/item/clothing/head/beret/marine/commander/council,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/obj/item/folder/white{
+ pixel_x = 2;
+ pixel_y = 2
},
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
+"Bi" = (
+/turf/closed/wall/almayer/white/hull{
+ desc = "A reinforced white hull. Nothing gets through here.";
+ name = "ultra-reinforced hull"
+ },
+/area/adminlevel/chinook/medical)
"Bj" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/storage/fancy/cigarettes/kpack{
@@ -7624,6 +8580,17 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
+"Bk" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/reagent_container/food/drinks/cans/waterbottle{
+ pixel_x = -7;
+ pixel_y = 11
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook/event)
"Bn" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/belt/utility/full,
@@ -7641,10 +8608,7 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/sec)
"Br" = (
-/turf/closed/wall/almayer/outer{
- desc = "A heavily reinforced metal wall. Nothing gets through here.";
- name = "ultra-reinforced hull"
- },
+/turf/closed/wall/almayer/reinforced,
/area/adminlevel/chinook/sec)
"Bt" = (
/obj/structure/surface/rack,
@@ -7655,15 +8619,10 @@
},
/area/adminlevel/chinook/engineering)
"Bu" = (
-/obj/structure/sign/safety/coffee{
- pixel_x = 12;
- pixel_y = 25
- },
-/obj/structure/sign/safety/west{
- pixel_y = 25
+/turf/open/floor/almayer/uscm/directional{
+ dir = 10
},
-/turf/open/floor/plating/plating_catwalk,
-/area/adminlevel/chinook/sec)
+/area/adminlevel/chinook/shuttle)
"Bx" = (
/obj/structure/surface/table/reinforced/black,
/obj/structure/machinery/computer/emails{
@@ -7721,12 +8680,6 @@
icon_state = "plating"
},
/area/adminlevel/chinook/cargo)
-"BE" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/kutjevo/plate,
-/area/adminlevel/chinook/event)
"BF" = (
/obj/structure/machinery/photocopier,
/turf/open/floor/almayer{
@@ -7754,12 +8707,14 @@
pixel_y = 6
},
/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
+"BJ" = (
+/obj/item/toy/beach_ball,
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
"BK" = (
/turf/open/floor/almayer{
dir = 5;
@@ -7787,6 +8742,12 @@
},
/turf/open/floor/kutjevo,
/area/adminlevel/chinook/event)
+"BR" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/chinook/medical)
"BS" = (
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/shuttle)
@@ -7812,6 +8773,7 @@
/obj/structure/machinery/light{
dir = 4
},
+/obj/structure/machinery/disposal,
/turf/open/floor/almayer{
dir = 6;
icon_state = "red"
@@ -7836,15 +8798,17 @@
},
/area/adminlevel/chinook/engineering)
"BZ" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 2;
+ pixel_y = 21
},
-/obj/item/fuelCell,
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "plating_striped"
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal8";
+ pixel_x = -2;
+ pixel_y = -4
},
-/area/adminlevel/chinook/engineering)
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"Cb" = (
/turf/closed/shuttle/ert{
icon_state = "leftengine_3";
@@ -7866,6 +8830,14 @@
},
/area/adminlevel/chinook)
"Cf" = (
+/obj/structure/sign/safety/firingrange{
+ pixel_x = -17;
+ pixel_y = 6
+ },
+/obj/structure/sign/safety/hazard{
+ pixel_x = -17;
+ pixel_y = -6
+ },
/turf/open/floor/almayer{
dir = 8;
icon_state = "red"
@@ -7877,6 +8849,13 @@
},
/turf/open/floor/kutjevo,
/area/adminlevel/chinook/event)
+"Ch" = (
+/turf/closed/shuttle/elevator,
+/area/adminlevel/chinook/cargo)
+"Ci" = (
+/obj/structure/machinery/vending/coffee,
+/turf/open/floor/kutjevo/plate,
+/area/adminlevel/chinook/offices)
"Cj" = (
/obj/structure/sign/safety/cryo{
pixel_x = -18
@@ -7887,7 +8866,7 @@
},
/area/adminlevel/chinook)
"Ck" = (
-/obj/structure/surface/table/reinforced/almayer_B,
+/obj/structure/surface/table/reinforced/black,
/turf/open/floor/strata{
desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
icon = 'icons/turf/floors/floors.dmi';
@@ -7914,16 +8893,36 @@
/obj/structure/machinery/vending/coffee,
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook)
-"Cr" = (
-/obj/structure/bed/sofa/south/grey/left,
-/turf/open/floor/kutjevo/plate,
-/area/adminlevel/chinook)
-"Cs" = (
-/obj/structure/surface/table/almayer,
+"Cp" = (
+/obj/structure/platform_decoration{
+ dir = 8
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/cargo)
+"Cq" = (
+/obj/structure/machinery/portable_atmospherics/hydroponics,
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook/event)
+"Cr" = (
+/obj/structure/bed/sofa/south/grey/left,
+/turf/open/floor/kutjevo/plate,
+/area/adminlevel/chinook)
+"Cs" = (
+/obj/structure/surface/table/almayer,
/obj/item/paper_bin/uscm{
pixel_y = 6
},
/obj/item/tool/pen,
+/obj/item/storage/box/matches{
+ pixel_x = -2;
+ pixel_y = 23
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -7932,19 +8931,27 @@
/obj/structure/machinery/fuelcell_recycler,
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
+"Cu" = (
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/device/motiondetector{
+ pixel_y = 9
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"Cw" = (
-/obj/structure/machinery/light{
- dir = 4
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/structure/sign/goldenplaque{
+ pixel_x = 32;
+ desc = "The plaque reads, 'This plaque is awarded to: KARL WALZ, For superior and unrivaled strategic prowess during the 2173 War Games, scoring a decisive and triumphant victory for their side.'";
+ name = "2173 Commanding Excellence Award"
},
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+/turf/open/floor/almayer{
+ icon_state = "ai_floors"
},
/area/adminlevel/chinook/offices)
"Cx" = (
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "emeraldcorner"
+/turf/open/floor/almayer/uscm/directional{
+ dir = 9
},
/area/adminlevel/chinook/shuttle)
"Cz" = (
@@ -7956,7 +8963,7 @@
/area/adminlevel/chinook)
"CA" = (
/obj/structure/machinery/disposal,
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo,
/area/adminlevel/chinook/offices)
"CC" = (
/obj/structure/bed/chair/comfy/black,
@@ -7966,12 +8973,20 @@
},
/area/adminlevel/chinook/offices)
"CE" = (
-/obj/structure/machinery/light,
/obj/structure/bed/chair/comfy{
dir = 1
},
+/obj/structure/machinery/light{
+ dir = 8
+ },
/turf/open/floor/kutjevo/tan,
/area/adminlevel/chinook/event)
+"CF" = (
+/obj/structure/barricade/handrail/strata,
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/adminlevel/chinook)
"CH" = (
/obj/structure/machinery/light,
/turf/open/floor/kutjevo/plate,
@@ -7993,19 +9008,11 @@
/area/adminlevel/chinook/cryo)
"CM" = (
/obj/structure/machinery/light,
-/obj/structure/machinery/medical_pod/sleeper{
- dir = 8
- },
+/obj/structure/machinery/medical_pod/sleeper,
/turf/open/floor/almayer{
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
-"CN" = (
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "cargo_arrow"
- },
-/area/adminlevel/chinook)
"CP" = (
/turf/open/shuttle/dropship{
icon_state = "rasputin8"
@@ -8018,6 +9025,20 @@
icon_state = "plating"
},
/area/adminlevel/chinook/engineering)
+"CS" = (
+/obj/structure/machinery/cryopod,
+/turf/open/floor/almayer{
+ icon_state = "sterile_green"
+ },
+/area/adminlevel/chinook/medical)
+"CT" = (
+/obj/effect/decal/medical_decals{
+ icon_state = "triagedecaldir"
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/chinook/medical)
"CU" = (
/obj/structure/machinery/vending/snack,
/turf/open/floor/kutjevo/plate,
@@ -8054,12 +9075,17 @@
},
/area/adminlevel/chinook/event)
"Db" = (
-/obj/structure/machinery/cryopod,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{
+ name = "\improper Engineering"
+ },
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "sterile_green_corner"
+ dir = 8;
+ icon_state = "orange"
},
-/area/adminlevel/chinook/medical)
+/area/adminlevel/chinook/engineering)
"Dc" = (
/obj/structure/toilet{
dir = 4
@@ -8067,21 +9093,31 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
"De" = (
-/obj/structure/machinery/computer/secure_data{
- dir = 4
+/obj/structure/surface/rack,
+/obj/item/storage/bag/plants{
+ pixel_x = -3
+ },
+/obj/item/storage/bag/plants{
+ pixel_x = 3
+ },
+/obj/item/storage/bag/plants{
+ pixel_y = -3
+ },
+/obj/item/tool/scythe,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
},
-/obj/structure/surface/table/reinforced/almayer_B,
-/turf/open/floor/almayer,
/area/adminlevel/chinook/event)
"Df" = (
-/obj/structure/bed/chair/comfy{
- dir = 8
+/obj/structure/bed/chair/comfy/black{
+ dir = 1
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
"Dg" = (
-/obj/structure/surface/rack,
-/turf/open/floor/almayer,
+/obj/structure/bed/sofa/south/grey/right,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
"Dh" = (
/obj/structure/machinery/light,
@@ -8130,6 +9166,15 @@
},
/turf/open/floor/kutjevo/tan/plate,
/area/adminlevel/chinook/event)
+"Dq" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 27
+ },
+/obj/structure/bed/chair/wheelchair,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"Dr" = (
/obj/structure/closet/secure_closet{
name = "\improper Lethal Injection Locker"
@@ -8164,23 +9209,53 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
+"Dv" = (
+/turf/closed/shuttle/elevator{
+ dir = 10
+ },
+/area/adminlevel/chinook/cargo)
"Dw" = (
/obj/structure/surface/table/reinforced/black,
/obj/structure/machinery/computer/emails{
dir = 8;
pixel_x = -2
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
+"Dx" = (
+/obj/structure/closet/fireaxecabinet{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
"Dy" = (
/turf/closed/shuttle/ert{
icon_state = "rightengine_2"
},
/area/adminlevel/chinook/shuttle/unpowered)
+"Dz" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal8";
+ pixel_x = -16;
+ pixel_y = -16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal7";
+ pixel_x = 16;
+ pixel_y = -16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal6";
+ pixel_x = 16;
+ pixel_y = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal5";
+ pixel_x = -16;
+ pixel_y = 16
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"DC" = (
/obj/structure/machinery/light{
dir = 8
@@ -8234,6 +9309,15 @@
icon_state = "orange"
},
/area/adminlevel/chinook/engineering)
+"DN" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 27
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/engineering)
"DO" = (
/turf/open/floor/almayer{
dir = 5;
@@ -8255,6 +9339,14 @@
icon_state = "orange"
},
/area/adminlevel/chinook/engineering)
+"DS" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/corsat{
+ icon_state = "squares"
+ },
+/area/adminlevel/chinook/offices)
"DT" = (
/obj/structure/machinery/cryopod,
/obj/structure/machinery/light{
@@ -8266,9 +9358,6 @@
/area/adminlevel/chinook/cryo)
"DV" = (
/obj/structure/surface/rack,
-/obj/item/explosive/grenade/high_explosive/training,
-/obj/item/explosive/grenade/high_explosive/training,
-/obj/item/explosive/grenade/high_explosive/training,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -8289,6 +9378,15 @@
icon_state = "red"
},
/area/adminlevel/chinook/sec)
+"Ea" = (
+/obj/structure/sign/safety/security{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"Ed" = (
/obj/structure/machinery/cm_vending/clothing/dress,
/turf/open/floor/almayer{
@@ -8333,12 +9431,31 @@
icon_state = "plate"
},
/area/adminlevel/chinook/sec)
+"Ek" = (
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/reagent_container/food/drinks/bottle/whiskey{
+ pixel_x = -2;
+ pixel_y = 16
+ },
+/obj/item/reagent_container/food/drinks/drinkingglass{
+ pixel_x = 4;
+ pixel_y = 5
+ },
+/obj/item/reagent_container/food/drinks/drinkingglass{
+ pixel_y = 1;
+ pixel_x = -6
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"El" = (
/obj/structure/bed/chair/dropship/passenger,
/turf/open/shuttle/dropship{
icon_state = "rasputin15"
},
/area/adminlevel/chinook/shuttle/unpowered)
+"Em" = (
+/turf/open/floor/kutjevo,
+/area/adminlevel/chinook/offices)
"En" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/recharger,
@@ -8357,14 +9474,29 @@
/turf/open/floor/kutjevo/tan/alt_inner_edge,
/area/adminlevel/chinook)
"Ep" = (
-/obj/structure/bed/chair/comfy{
+/obj/structure/stairs/perspective{
+ dir = 4;
+ icon_state = "p_stair_sn_full_cap"
+ },
+/obj/structure/platform/strata/metal{
+ dir = 4
+ },
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
+"Eq" = (
+/obj/structure/machinery/vending/hydronutrients,
+/obj/structure/machinery/light{
dir = 8
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook/event)
+"Es" = (
+/obj/structure/sign/poster{
+ pixel_y = -32
},
+/turf/open/floor/almayer,
/area/adminlevel/chinook)
"Et" = (
/turf/open/floor/strata{
@@ -8385,6 +9517,13 @@
dir = 1
},
/area/adminlevel/chinook)
+"Ex" = (
+/obj/structure/largecrate/random/barrel/blue,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/cargo)
"Ey" = (
/turf/open/floor/kutjevo/tan/alt_inner_edge{
dir = 1
@@ -8418,10 +9557,21 @@
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook)
"EE" = (
-/turf/open/floor/almayer/uscm/directional{
- dir = 5
+/obj/effect/decal/warning_stripes{
+ icon_state = "E"
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "emerald"
},
/area/adminlevel/chinook/shuttle)
+"EG" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 2;
+ name = "\improper Men's Bathroom"
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/offices)
"EJ" = (
/obj/structure/surface/table/reinforced/black,
/turf/open/floor/kutjevo/tan/plate,
@@ -8458,7 +9608,7 @@
/turf/open/floor/prison{
icon_state = "kitchen"
},
-/area/space)
+/area/adminlevel/chinook/event)
"ET" = (
/obj/structure/machinery/vending/security,
/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
@@ -8475,6 +9625,12 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/event)
+"EV" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/adminlevel/chinook)
"EZ" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -8482,6 +9638,16 @@
icon_state = "plating"
},
/area/adminlevel/chinook)
+"Fa" = (
+/obj/structure/closet/secure_closet/guncabinet/red,
+/obj/item/ammo_magazine/shotgun/buckshot,
+/obj/item/weapon/gun/shotgun/combat,
+/obj/item/ammo_magazine/shotgun/buckshot,
+/obj/structure/machinery/door/window/brigdoor/southright,
+/turf/open/floor/almayer{
+ icon_state = "redfull"
+ },
+/area/adminlevel/chinook/offices)
"Fb" = (
/obj/structure/bed/chair/office/dark{
dir = 1
@@ -8498,6 +9664,7 @@
/obj/structure/sign/safety/ammunition{
pixel_x = -16
},
+/obj/structure/flora/pottedplant/random,
/turf/open/floor/almayer{
icon_state = "red"
},
@@ -8513,6 +9680,18 @@
icon_state = "red"
},
/area/adminlevel/chinook)
+"Fi" = (
+/obj/structure/surface/rack,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/adminlevel/chinook)
"Fk" = (
/obj/structure/sign/ROsign{
desc = "A metal plaque discussing firearms safety. Its rules say: \n 1. Always keep firearms pointed in a safe direction away from anyone.\n 2. Keep your finger off the trigger until ready to shoot.\n 3. Do not take any firearms outside of the range.\n 4. No smoking, eating or drinking is allowed while on the firing range.";
@@ -8536,8 +9715,20 @@
icon_state = "red"
},
/area/adminlevel/chinook)
+"Fn" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/corsat{
+ icon_state = "squares"
+ },
+/area/adminlevel/chinook/offices)
"Fq" = (
/obj/structure/surface/table/reinforced/black,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_27";
+ pixel_y = 12
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -8551,6 +9742,15 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/sec)
+"Ft" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"Fu" = (
/obj/structure/closet/toolcloset,
/turf/open/floor/almayer{
@@ -8566,6 +9766,9 @@
icon_state = "plating"
},
/area/adminlevel/chinook/engineering)
+"Fx" = (
+/turf/closed/shuttle/elevator/gears,
+/area/adminlevel/chinook/offices)
"Fy" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/extinguisher,
@@ -8584,24 +9787,22 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/sec)
-"FB" = (
-/obj/structure/cargo_container/grant/right,
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/adminlevel/chinook/cargo)
-"FD" = (
+"FD" = (
/turf/open/floor/almayer{
dir = 1;
icon_state = "emerald"
},
/area/adminlevel/chinook/shuttle)
"FE" = (
-/turf/open/floor/almayer{
- icon_state = "sterile_green"
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = -12
},
-/area/adminlevel/chinook/sec)
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = 16
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"FF" = (
/obj/structure/sign/prop3{
pixel_y = 28
@@ -8624,6 +9825,14 @@
icon_state = "plate"
},
/area/adminlevel/chinook/engineering)
+"FK" = (
+/obj/structure/morgue{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"FL" = (
/obj/structure/machinery/body_scanconsole{
dir = 8
@@ -8653,7 +9862,7 @@
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/sec)
"FQ" = (
-/obj/structure/machinery/telecomms/hub/preset_cent,
+/obj/structure/machinery/telecomms/hub,
/turf/open/floor/almayer{
icon_state = "tcomms"
},
@@ -8689,6 +9898,16 @@
dir = 8
},
/area/adminlevel/chinook)
+"FW" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3"
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal6";
+ pixel_x = 2
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"FX" = (
/obj/structure/machinery/light{
dir = 8
@@ -8731,13 +9950,18 @@
icon_state = "redcorner"
},
/area/adminlevel/chinook/sec)
+"Gc" = (
+/obj/structure/machinery/door/airlock/multi_tile/elevator/freight,
+/turf/open/floor/corsat{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/cargo)
"Gf" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/storage/box/drinkingglasses,
/obj/item/reagent_container/food/snacks/sandwich{
pixel_y = 22
},
-/obj/item/ashtray/glass,
/turf/open/floor/prison{
icon_state = "kitchen"
},
@@ -8775,6 +9999,10 @@
pixel_x = 24;
pixel_y = 25
},
+/obj/structure/sign/safety/security{
+ pixel_x = -12;
+ pixel_y = 25
+ },
/turf/open/floor/almayer{
dir = 1;
icon_state = "silver"
@@ -8802,12 +10030,15 @@
},
/area/adminlevel/chinook)
"Gu" = (
-/obj/structure/cargo_container/wy/mid,
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3"
},
-/area/adminlevel/chinook/cargo)
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal5";
+ pixel_x = -2
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"Gv" = (
/obj/structure/surface/rack,
/obj/item/device/binoculars,
@@ -8838,14 +10069,15 @@
},
/area/adminlevel/chinook/sec)
"Gz" = (
-/obj/structure/machinery/light{
- dir = 8
+/obj/structure/bed/chair/comfy{
+ dir = 1
},
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+/turf/open/floor/strata{
+ desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
+ icon = 'icons/turf/floors/floors.dmi';
+ icon_state = "wood"
},
-/area/adminlevel/chinook/cargo)
+/area/adminlevel/chinook/offices)
"GA" = (
/turf/open/floor/almayer{
icon_state = "plate"
@@ -8872,6 +10104,12 @@
icon_state = "rasputin3"
},
/area/adminlevel/chinook/shuttle/unpowered)
+"GE" = (
+/obj/structure/largecrate/supply/medicine/blood,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"GF" = (
/obj/structure/sign/safety/conference_room{
pixel_y = 25
@@ -8886,11 +10124,8 @@
/turf/open/floor/kutjevo/tan/alt_edge,
/area/adminlevel/chinook)
"GH" = (
-/obj/structure/machinery/door/airlock/almayer/security/glass{
- dir = 1;
- name = "Firing Range";
- req_access = null;
- req_one_access_txt = "2;4;7;9;21"
+/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
+ name = "Firing Range"
},
/turf/open/floor/almayer,
/area/adminlevel/chinook)
@@ -9014,14 +10249,6 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
-"GY" = (
-/obj/structure/sign/poster{
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "silver"
- },
-/area/adminlevel/chinook)
"Ha" = (
/obj/structure/window/framed/almayer,
/turf/open/floor/plating,
@@ -9033,6 +10260,13 @@
icon_state = "orange"
},
/area/adminlevel/chinook/engineering)
+"Hd" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/flora/pottedplant/random,
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"Hf" = (
/obj/structure/bed/chair/comfy/black{
dir = 4
@@ -9050,10 +10284,6 @@
pixel_x = 12;
pixel_y = -28
},
-/obj/structure/sign/safety/west{
- pixel_x = -12;
- pixel_y = -28
- },
/obj/effect/decal/warning_stripes{
icon_state = "W"
},
@@ -9090,7 +10320,7 @@
},
/area/adminlevel/chinook/engineering)
"Hn" = (
-/obj/structure/machinery/power/fusion_engine,
+/obj/structure/prop/invuln/fusion_reactor,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -9144,7 +10374,7 @@
/obj/effect/decal/warning_stripes{
icon_state = "W"
},
-/obj/item/tool/weldingtool{
+/obj/item/tool/weldingtool/largetank{
pixel_x = 14;
pixel_y = -14
},
@@ -9160,6 +10390,26 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/event)
+"HA" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_ew_full_cap";
+ layer = 3.5
+ },
+/obj/structure/platform/strata/metal{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
+"HC" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 8;
+ name = "Freezer";
+ req_access_txt = "30"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/event)
"HE" = (
/obj/structure/bed/chair/comfy{
dir = 4
@@ -9173,11 +10423,11 @@
},
/area/adminlevel/chinook)
"HG" = (
-/obj/structure/stairs/perspective{
- icon_state = "p_stair_full"
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_x = -30
},
-/turf/open/floor/almayer,
-/area/adminlevel/chinook/cargo)
+/turf/open/floor/kutjevo,
+/area/adminlevel/chinook/offices)
"HH" = (
/obj/item/stack/sheet/metal/large_stack,
/turf/open/floor/almayer,
@@ -9193,6 +10443,36 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/sec)
+"HK" = (
+/obj/structure/surface/rack,
+/obj/item/tool/minihoe{
+ pixel_x = -4
+ },
+/obj/item/tool/minihoe{
+ pixel_x = 4
+ },
+/obj/item/tool/minihoe{
+ pixel_y = -4
+ },
+/obj/item/tool/wirecutters/clippers{
+ pixel_y = -4
+ },
+/obj/item/tool/wirecutters/clippers{
+ pixel_y = -2
+ },
+/obj/item/tool/wirecutters/clippers,
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/adminlevel/chinook/event)
+"HL" = (
+/obj/structure/bed/chair,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/offices)
"HM" = (
/obj/structure/surface/table/reinforced/almayer_B,
/turf/open/floor/almayer{
@@ -9243,11 +10523,19 @@
/area/adminlevel/chinook/cargo)
"HR" = (
/obj/structure/largecrate/random/case/double,
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
},
/area/adminlevel/chinook/cargo)
+"HT" = (
+/turf/closed/shuttle/elevator{
+ dir = 4
+ },
+/area/adminlevel/chinook/offices)
"HU" = (
/obj/structure/surface/table/almayer,
/obj/item/roller{
@@ -9269,6 +10557,12 @@
icon_state = "plate"
},
/area/adminlevel/chinook/engineering)
+"HW" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/adminlevel/chinook/engineering)
"HX" = (
/obj/structure/machinery/light{
dir = 8
@@ -9294,26 +10588,35 @@
icon_state = "red"
},
/area/adminlevel/chinook/sec)
+"Ic" = (
+/obj/structure/machinery/door/poddoor/almayer/open{
+ id = "chinookengilock";
+ name = "Engineering Sector Lockdown"
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/engineering)
+"Id" = (
+/turf/closed/wall/almayer/reinforced,
+/area/adminlevel/chinook/cargo)
"Ie" = (
/turf/open/floor/prison{
icon_state = "kitchen"
},
/area/adminlevel/chinook/event)
+"If" = (
+/obj/structure/sign/safety/bathmens{
+ pixel_y = -25
+ },
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/adminlevel/chinook/offices)
"Ig" = (
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/engineering)
"Ih" = (
-/turf/open/floor/almayer/uscm/directional{
- dir = 10
- },
+/turf/open/floor/almayer/uscm/directional,
/area/adminlevel/chinook/shuttle)
-"Ii" = (
-/obj/structure/machinery/light,
-/obj/structure/machinery/disposal,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/adminlevel/chinook/cargo)
"Ij" = (
/obj/structure/bed/chair{
dir = 4
@@ -9373,16 +10676,12 @@
/area/adminlevel/chinook)
"It" = (
/obj/structure/bed/chair/office/dark,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"Iu" = (
/obj/structure/machinery/door/airlock/almayer/generic{
dir = 2;
- name = "\improper Bathroom"
+ name = "\improper Men's Bathroom"
},
/turf/open/floor/almayer{
icon_state = "plate"
@@ -9423,10 +10722,6 @@
icon_state = "red"
},
/area/adminlevel/chinook/event)
-"IE" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer,
-/area/adminlevel/chinook/event)
"IF" = (
/obj/structure/bed/chair,
/obj/structure/sign/nosmoking_1{
@@ -9452,6 +10747,13 @@
icon_state = "rightengine_1"
},
/area/adminlevel/chinook/shuttle/unpowered)
+"IL" = (
+/obj/structure/machinery/disposal,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/adminlevel/chinook/event)
"IM" = (
/obj/structure/bed/chair/comfy{
dir = 1;
@@ -9466,17 +10768,14 @@
/obj/structure/closet/crate,
/obj/item/storage/briefcase/inflatable,
/obj/item/storage/briefcase/inflatable,
+/obj/item/stack/cable_coil,
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
"IQ" = (
/obj/structure/bed/chair/office/dark{
dir = 4
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"IR" = (
/turf/open/floor/almayer{
@@ -9489,11 +10788,7 @@
/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
pixel_y = 25
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"IT" = (
/obj/structure/bed/chair/comfy{
@@ -9502,13 +10797,12 @@
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook)
"IW" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E"
- },
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "emerald"
+/obj/structure/machinery/door/poddoor/almayer/open{
+ dir = 4;
+ id = "chinookinnerairlock";
+ name = "Chinook Interior Airlock"
},
+/turf/open/floor/plating/almayer,
/area/adminlevel/chinook/shuttle)
"IX" = (
/obj/structure/machinery/light{
@@ -9519,6 +10813,25 @@
icon_state = "plating"
},
/area/adminlevel/chinook/sec)
+"IY" = (
+/obj/structure/surface/rack,
+/obj/item/tool/wet_sign,
+/obj/item/tool/wet_sign{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/offices)
+"IZ" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/storage/box/drinkingglasses{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/turf/open/floor/kutjevo/tan/plate,
+/area/adminlevel/chinook/event)
"Jc" = (
/turf/open/floor/almayer_hull{
dir = 9;
@@ -9559,13 +10872,6 @@
icon_state = "blue"
},
/area/adminlevel/chinook)
-"Jl" = (
-/obj/structure/cargo_container/grant/left,
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/adminlevel/chinook/cargo)
"Jm" = (
/obj/structure/bed/sofa/south/grey/left,
/turf/open/floor/kutjevo/tan,
@@ -9580,6 +10886,26 @@
icon_state = "red"
},
/area/adminlevel/chinook)
+"Jo" = (
+/obj/structure/machinery/door/poddoor/almayer/open{
+ id = "chinookofficelock";
+ name = "Command Office Lockdown";
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/offices)
+"Jp" = (
+/obj/structure/sign/safety/bathwomens{
+ pixel_x = 32
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
+"Jq" = (
+/obj/structure/closet/boxinggloves,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook)
"Jr" = (
/obj/structure/machinery/door_control{
id = "chinookbriglock";
@@ -9598,13 +10924,11 @@
},
/area/adminlevel/chinook/sec)
"Ju" = (
-/obj/structure/machinery/sleep_console{
- dir = 8
- },
+/obj/structure/bed/chair/wheelchair,
/turf/open/floor/almayer{
- icon_state = "sterile_green_side"
+ icon_state = "plate"
},
-/area/adminlevel/chinook/offices)
+/area/adminlevel/chinook/medical)
"Jx" = (
/obj/structure/surface/rack,
/turf/open/floor/almayer{
@@ -9614,28 +10938,37 @@
/area/adminlevel/chinook/sec)
"Jy" = (
/obj/structure/surface/table/almayer,
+/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool/largetank,
+/obj/item/stack/cable_coil,
+/obj/item/stack/cable_coil,
+/obj/item/stack/cable_coil,
+/obj/item/clothing/head/welding,
+/obj/item/clothing/head/welding,
+/obj/item/clothing/head/welding,
/turf/open/floor/almayer{
dir = 1;
icon_state = "sterile_green_corner"
},
/area/adminlevel/chinook/medical)
"Jz" = (
-/obj/structure/sign/safety/coffee{
- pixel_x = 12;
- pixel_y = 25
- },
-/obj/structure/sign/safety/west{
- pixel_y = 25
- },
-/obj/structure/sign/safety/conference_room{
- pixel_x = 24;
- pixel_y = 25
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -26
},
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "blue"
+ dir = 8;
+ icon_state = "sterile_green_side"
},
-/area/adminlevel/chinook/offices)
+/area/adminlevel/chinook/medical)
+"JA" = (
+/obj/structure/target{
+ name = "punching bag"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook)
"JB" = (
/obj/structure/platform_decoration{
dir = 8
@@ -9645,6 +10978,25 @@
icon_state = "plating"
},
/area/adminlevel/chinook/cargo)
+"JC" = (
+/obj/structure/machinery/vending/hydroseeds,
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook/event)
+"JD" = (
+/obj/structure/machinery/cm_vending/gear/synth,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/adminlevel/chinook)
+"JE" = (
+/obj/structure/sign/safety/autodoc{
+ pixel_x = 12;
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/chinook/medical)
"JG" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/storage/fancy/cigarettes/emeraldgreen,
@@ -9653,6 +11005,13 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/sec)
+"JH" = (
+/obj/structure/machinery/cryopod,
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "sterile_green"
+ },
+/area/adminlevel/chinook/medical)
"JI" = (
/obj/structure/platform,
/obj/structure/stairs/perspective{
@@ -9671,6 +11030,28 @@
"JK" = (
/turf/open/floor/kutjevo/tan,
/area/adminlevel/chinook/event)
+"JM" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook/offices)
+"JN" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 2;
+ name = "\improper Women's Bathroom"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook)
"JO" = (
/obj/structure/surface/rack,
/obj/item/device/lightreplacer,
@@ -9685,6 +11066,24 @@
"JR" = (
/turf/open/floor/kutjevo/tan/alt_edge,
/area/adminlevel/chinook/event)
+"JS" = (
+/obj/structure/closet{
+ name = "boxing attire"
+ },
+/obj/item/clothing/under/shorts/blue,
+/obj/item/clothing/under/shorts/blue,
+/obj/item/clothing/under/shorts/red,
+/obj/item/clothing/under/shorts/red,
+/obj/item/clothing/under/shorts/green,
+/obj/item/clothing/under/shorts/green,
+/obj/item/clothing/under/shorts/black,
+/obj/item/clothing/under/shorts/black,
+/obj/item/clothing/under/shorts/grey,
+/obj/item/clothing/under/shorts/grey,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook)
"JU" = (
/obj/structure/platform_decoration,
/turf/open/floor/almayer{
@@ -9711,12 +11110,15 @@
dir = 8
},
/area/adminlevel/chinook/event)
-"Kb" = (
-/obj/structure/closet/emcloset,
+"JY" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
/turf/open/floor/almayer{
- icon_state = "cargo"
+ dir = 5;
+ icon_state = "plating"
},
-/area/adminlevel/chinook)
+/area/adminlevel/chinook/cargo)
"Kd" = (
/obj/structure/stairs/perspective{
icon_state = "p_stair_full"
@@ -9724,16 +11126,41 @@
/obj/structure/platform{
dir = 4
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
/area/adminlevel/chinook/cargo)
"Ke" = (
/obj/structure/window/framed/almayer/hull,
/turf/open/floor/plating,
/area/adminlevel/chinook/cargo)
+"Kf" = (
+/obj/structure/sign/safety/security{
+ pixel_x = 32;
+ pixel_y = 8
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"Ki" = (
/obj/structure/barricade/handrail/strata,
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
+"Kj" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/cargo)
"Kl" = (
/obj/structure/platform_decoration{
dir = 1
@@ -9797,9 +11224,17 @@
"Ku" = (
/obj/structure/surface/table/almayer,
/obj/item/paper_bin/uscm{
+ pixel_x = -4;
pixel_y = 6
},
-/obj/item/tool/pen,
+/obj/item/tool/pen{
+ pixel_x = -5
+ },
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_17";
+ pixel_x = 8;
+ pixel_y = 10
+ },
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
"Kv" = (
@@ -9852,8 +11287,16 @@
/area/adminlevel/chinook/sec)
"KD" = (
/obj/item/trash/cigbutt/cigarbutt,
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
+"KE" = (
+/obj/effect/decal/medical_decals{
+ icon_state = "cryocell1decal"
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/chinook/medical)
"KG" = (
/obj/structure/machinery/cm_vending/sorted/medical,
/turf/open/floor/almayer{
@@ -9861,14 +11304,28 @@
icon_state = "sterile_green_corner"
},
/area/adminlevel/chinook/medical)
+"KH" = (
+/obj/structure/sink{
+ pixel_y = 24
+ },
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/chinook/event)
+"KI" = (
+/obj/structure/machinery/door/airlock/almayer/medical{
+ name = "\improper Misc Storage"
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/chinook/medical)
"KJ" = (
-/obj/structure/closet/emcloset,
+/obj/structure/closet/secure_closet/personal,
/obj/structure/machinery/light{
dir = 4
},
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
+/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook)
"KK" = (
/obj/structure/closet/crate,
@@ -9892,10 +11349,10 @@
},
/area/adminlevel/chinook)
"KN" = (
-/obj/structure/machinery/medical_pod/bodyscanner,
/obj/structure/machinery/light{
dir = 8
},
+/obj/structure/machinery/medical_pod/bodyscanner,
/turf/open/floor/almayer{
dir = 8;
icon_state = "sterile_green_side"
@@ -9911,10 +11368,10 @@
},
/area/adminlevel/chinook)
"KP" = (
-/obj/structure/bed/chair,
/obj/structure/machinery/light{
dir = 1
},
+/obj/structure/bed/sofa/south/grey/right,
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
"KT" = (
@@ -9923,12 +11380,46 @@
icon_state = "silver"
},
/area/adminlevel/chinook)
+"KV" = (
+/obj/structure/machinery/door/poddoor/almayer{
+ dir = 4;
+ id = "chinookreq";
+ name = "Requisitions Lockdown"
+ },
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/adminlevel/chinook)
"KW" = (
/turf/open/floor/almayer{
dir = 4;
icon_state = "green"
},
/area/adminlevel/chinook/cargo)
+"KX" = (
+/obj/structure/surface/rack,
+/obj/item/tool/shovel/spade{
+ pixel_x = -4
+ },
+/obj/item/tool/shovel/spade{
+ pixel_x = 4
+ },
+/obj/item/tool/shovel/spade,
+/obj/item/reagent_container/glass/bucket{
+ pixel_x = -4;
+ pixel_y = -3
+ },
+/obj/item/reagent_container/glass/bucket{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/obj/item/reagent_container/glass/bucket,
+/obj/item/reagent_container/glass/watertank,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/adminlevel/chinook/event)
"KY" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -9997,6 +11488,12 @@
icon_state = "plate"
},
/area/adminlevel/chinook/engineering)
+"Lg" = (
+/obj/structure/machinery/cm_vending/sorted/medical/marinemed,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/chinook/medical)
"Li" = (
/turf/open/floor/almayer,
/area/adminlevel/chinook/shuttle)
@@ -10016,12 +11513,15 @@
},
/area/adminlevel/chinook/sec)
"Ll" = (
-/obj/structure/surface/table/almayer,
-/obj/item/tool/hand_labeler,
-/obj/item/spacecash/c200,
/obj/structure/machinery/light{
dir = 4
},
+/obj/structure/machinery/door_control{
+ id = "chinookreq";
+ name = "Requisitions Lockdown";
+ req_one_access_txt = "1;21"
+ },
+/obj/structure/surface/table/reinforced/black,
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
"Lm" = (
@@ -10042,6 +11542,19 @@
icon_state = "plate"
},
/area/adminlevel/chinook/engineering)
+"Lp" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/reagent_container/food/drinks/golden_cup{
+ name = "No. 1 Baller Award";
+ desc = "A trophy given to the winner of the annual Baller competition. Such a competition has, in fact, nothing to do with basketball and is so elusive, nobody knows what it actually is or what winning it symbolizes. But at least it has a nice trophy."
+ },
+/turf/open/floor/almayer{
+ icon_state = "ai_floors"
+ },
+/area/adminlevel/chinook/offices)
"Ls" = (
/obj/structure/machinery/iv_drip,
/turf/open/floor/almayer{
@@ -10069,6 +11582,17 @@
},
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook)
+"Lx" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/prop/tableflag/uscm{
+ pixel_x = -9;
+ pixel_y = 6
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook/offices)
"Ly" = (
/obj/structure/machinery/light{
dir = 1
@@ -10104,6 +11628,16 @@
icon_state = "red"
},
/area/adminlevel/chinook/sec)
+"LC" = (
+/obj/structure/sign/safety/cryo{
+ pixel_x = 32;
+ pixel_y = -8
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"LD" = (
/obj/structure/machinery/vending/snack,
/turf/open/floor/kutjevo/plate,
@@ -10168,6 +11702,9 @@
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22"
},
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 27
+ },
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -10205,6 +11742,12 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/sec)
+"LS" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper Basketball Court"
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
"LT" = (
/obj/structure/bed/chair/comfy/black{
dir = 1
@@ -10215,8 +11758,8 @@
},
/area/adminlevel/chinook/event)
"LU" = (
-/obj/structure/machinery/light{
- dir = 4
+/obj/structure/sign/safety/bathwomens{
+ pixel_x = 32
},
/turf/open/floor/almayer{
dir = 4;
@@ -10226,6 +11769,20 @@
"LV" = (
/turf/open/floor/almayer,
/area/adminlevel/chinook/event)
+"LW" = (
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/adminlevel/chinook)
+"LX" = (
+/obj/structure/target{
+ name = "punching bag"
+ },
+/obj/structure/sign/goldenplaque{
+ pixel_y = 27
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
"Mb" = (
/turf/open/floor/kutjevo/tan/plate,
/area/adminlevel/chinook/event)
@@ -10292,6 +11849,18 @@
icon_state = "orange"
},
/area/adminlevel/chinook/engineering)
+"Mn" = (
+/obj/structure/sign/safety/fire_haz{
+ pixel_y = 25
+ },
+/obj/structure/sign/safety/biohazard{
+ pixel_y = 25;
+ pixel_x = 12
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"Mp" = (
/obj/structure/prop/almayer/name_stencil{
icon_state = "chinook4";
@@ -10306,18 +11875,6 @@
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
-"Mr" = (
-/obj/structure/machinery/door_control{
- id = "chinookcargo";
- name = "Shuttlebay Cargo Access";
- pixel_y = 25;
- req_one_access_txt = "1;21"
- },
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "cargo_arrow"
- },
-/area/adminlevel/chinook/shuttle)
"Ms" = (
/turf/closed/shuttle/ert{
icon_state = "stan5"
@@ -10335,9 +11892,9 @@
},
/area/adminlevel/chinook/sec)
"Mv" = (
-/obj/structure/surface/table/almayer,
/obj/effect/spawner/random/tool,
/obj/item/clothing/gloves/marine/insulated,
+/obj/structure/surface/table/reinforced/black,
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
"Mw" = (
@@ -10394,13 +11951,36 @@
icon_state = "red"
},
/area/adminlevel/chinook/sec)
-"MG" = (
-/obj/structure/surface/rack,
-/obj/effect/spawner/random/tool,
-/turf/open/floor/almayer{
- icon_state = "cargo"
+"MD" = (
+/obj/structure/platform_decoration{
+ dir = 8
},
-/area/adminlevel/chinook/sec)
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/engineering)
+"ME" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/book/manual/marine_law{
+ pixel_x = 1;
+ pixel_y = 6
+ },
+/obj/item/folder/black,
+/turf/open/floor/kutjevo/plate,
+/area/adminlevel/chinook/offices)
+"MF" = (
+/turf/closed/shuttle/elevator{
+ dir = 5
+ },
+/area/adminlevel/chinook/offices)
+"MG" = (
+/obj/structure/surface/rack,
+/obj/effect/spawner/random/tool,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/adminlevel/chinook/sec)
"MH" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/almayer{
@@ -10431,9 +12011,8 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook)
"MN" = (
-/obj/structure/machinery/door/airlock/almayer/engineering{
- dir = 1;
- name = "\improper Engineering Reception"
+/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{
+ name = "\improper Engineering"
},
/obj/structure/machinery/door/poddoor/almayer/open{
id = "chinookengilock";
@@ -10441,6 +12020,12 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
+"MO" = (
+/obj/structure/machinery/recharge_station,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/adminlevel/chinook)
"MQ" = (
/obj/structure/machinery/iv_drip,
/turf/open/floor/almayer{
@@ -10486,6 +12071,13 @@
icon_state = "plate"
},
/area/adminlevel/chinook/engineering)
+"Nb" = (
+/obj/structure/largecrate/random/case/double,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/cargo)
"Nc" = (
/obj/structure/largecrate/supply/medicine/blood,
/turf/open/floor/almayer{
@@ -10556,9 +12148,7 @@
},
/area/adminlevel/chinook/engineering)
"Np" = (
-/obj/structure/cargo_container/arious/right{
- indestructible = 1
- },
+/obj/structure/cargo_container/seegson/right,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -10584,16 +12174,13 @@
/obj/structure/bed/chair/comfy{
dir = 1
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"Nt" = (
/obj/structure/closet/crate,
/obj/item/stack/sheet/plasteel/large_stack,
/obj/item/stack/sheet/metal/medium_stack,
+/obj/item/stack/sheet/metal/large_stack,
/turf/open/floor/almayer{
icon_state = "cargo"
},
@@ -10628,9 +12215,7 @@
},
/area/adminlevel/chinook/sec)
"Ny" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22"
- },
+/obj/structure/flora/pottedplant/random,
/turf/open/floor/almayer{
dir = 1;
icon_state = "blue"
@@ -10657,11 +12242,13 @@
},
/area/adminlevel/chinook/medical)
"ND" = (
-/obj/structure/closet/secure_closet/freezer/fridge/groceries,
-/turf/open/floor/prison{
- icon_state = "kitchen"
+/obj/structure/machinery/sleep_console{
+ dir = 8
},
-/area/space)
+/turf/open/floor/almayer{
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/chinook/offices)
"NE" = (
/obj/structure/machinery/door/airlock/almayer/security{
dir = 1;
@@ -10727,17 +12314,50 @@
icon_state = "sterile_green"
},
/area/adminlevel/chinook/medical)
-"NW" = (
-/obj/structure/surface/table/reinforced/almayer_B,
-/obj/structure/machinery/computer/cameras/almayer_network{
+"NU" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/kutjevo/plate,
+/area/adminlevel/chinook/event)
+"NV" = (
+/obj/structure/sink{
dir = 4;
- network = list("almayer","vehicle")
+ pixel_x = 11
},
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
+ icon_state = "plate"
},
-/area/adminlevel/chinook/sec)
+/area/adminlevel/chinook/offices)
+"NW" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/item/tool/lighter/zippo/gold{
+ pixel_x = 10;
+ pixel_y = 11
+ },
+/obj/item/device/flashlight/lamp/green{
+ pixel_y = 7;
+ pixel_x = -5
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook/offices)
+"NX" = (
+/obj/structure/bed/chair/comfy{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
+"NZ" = (
+/turf/closed/shuttle/elevator{
+ dir = 9
+ },
+/area/adminlevel/chinook/offices)
"Ob" = (
/obj/structure/machinery/door/airlock/almayer/command{
name = "\improper Event Corridor"
@@ -10753,27 +12373,12 @@
},
/area/adminlevel/chinook/sec)
"Od" = (
-/obj/structure/surface/table/almayer,
-/obj/item/tool/weldingtool,
-/obj/item/tool/weldingtool,
-/obj/item/tool/weldingtool,
-/obj/item/stack/cable_coil,
-/obj/item/stack/cable_coil,
-/obj/item/stack/cable_coil,
-/obj/item/clothing/head/welding,
-/obj/item/clothing/head/welding,
-/obj/item/clothing/head/welding,
+/obj/structure/reagent_dispensers/fueltank/custom,
/turf/open/floor/almayer{
dir = 4;
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
-"Oe" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer,
-/area/adminlevel/chinook)
"Of" = (
/obj/structure/machinery/door/airlock/almayer/security/glass{
dir = 1;
@@ -10824,6 +12429,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/sec)
+"Or" = (
+/obj/structure/reagent_dispensers/fueltank/custom,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"Os" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/crowbar{
@@ -10844,13 +12455,6 @@
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
-"Ou" = (
-/obj/structure/bed/sofa/south/grey/right,
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/adminlevel/chinook)
"Ow" = (
/obj/structure/bed/chair/comfy{
dir = 4
@@ -10886,11 +12490,18 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/sec)
"OB" = (
-/obj/structure/machinery/cryopod,
/turf/open/floor/almayer{
- icon_state = "sterile_green_corner"
+ icon_state = "plate"
},
/area/adminlevel/chinook/medical)
+"OC" = (
+/obj/structure/sign/safety/bathunisex{
+ pixel_y = -25
+ },
+/turf/open/floor/almayer{
+ icon_state = "orange"
+ },
+/area/adminlevel/chinook/engineering)
"OD" = (
/obj/structure/sign/poster{
desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE.";
@@ -10939,6 +12550,12 @@
icon_state = "plating"
},
/area/adminlevel/chinook/cargo)
+"OK" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/cargo)
"OL" = (
/obj/structure/reagent_dispensers/watertank,
/obj/item/reagent_container/glass/bucket,
@@ -10961,6 +12578,7 @@
/obj/item/trash/burger{
pixel_x = -20
},
+/obj/structure/machinery/seed_extractor,
/turf/open/floor/almayer{
dir = 1;
icon_state = "green"
@@ -10977,18 +12595,28 @@
/area/adminlevel/chinook)
"OR" = (
/obj/structure/machinery/vending/snack,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"OS" = (
-/obj/structure/machinery/computer/shuttle/ert/broken,
+/obj/structure/prop/pred_flight{
+ icon_state = "syndishuttle";
+ name = "shuttle control console"
+ },
/turf/open/shuttle/dropship{
icon_state = "rasputin15"
},
/area/adminlevel/chinook/shuttle/unpowered)
+"OT" = (
+/obj/structure/machinery/cm_vending/clothing/synth/snowflake,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/adminlevel/chinook)
"OU" = (
-/obj/structure/sign/safety/reception{
+/obj/structure/sign/safety/debark_lounge{
pixel_x = 32
},
/turf/open/floor/almayer{
@@ -11034,7 +12662,7 @@
"OZ" = (
/obj/structure/platform,
/obj/structure/barricade/handrail/strata{
- layer = 3.5
+ layer = 4.5
},
/turf/open/floor/almayer{
dir = 5;
@@ -11043,6 +12671,13 @@
/area/adminlevel/chinook/engineering)
"Pa" = (
/obj/structure/surface/table/almayer,
+/obj/item/storage/fancy/cigarettes/emeraldgreen{
+ pixel_y = 10
+ },
+/obj/item/tool/lighter/zippo{
+ pixel_x = 4;
+ pixel_y = 7
+ },
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/sec)
"Pb" = (
@@ -11065,11 +12700,25 @@
icon_state = "red"
},
/area/adminlevel/chinook/sec)
+"Pe" = (
+/obj/structure/platform_decoration/strata/metal{
+ dir = 4
+ },
+/turf/open/gm/river{
+ name = "pool"
+ },
+/area/adminlevel/chinook)
"Pf" = (
/turf/open/floor/kutjevo/colors/blue/edge{
dir = 4
},
/area/adminlevel/chinook)
+"Pg" = (
+/obj/structure/closet/secure_closet/freezer/fridge/groceries,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/chinook/event)
"Ph" = (
/obj/structure/filingcabinet/seeds,
/turf/open/floor/almayer{
@@ -11078,12 +12727,9 @@
},
/area/adminlevel/chinook)
"Pi" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22"
- },
-/turf/open/floor/almayer{
- icon_state = "blue"
- },
+/obj/structure/machinery/light,
+/obj/structure/flora/pottedplant/random,
+/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
"Pj" = (
/obj/effect/decal/warning_stripes{
@@ -11101,7 +12747,7 @@
"Pl" = (
/obj/structure/machinery/door/airlock/almayer/generic{
dir = 2;
- name = "\improper Bathroom"
+ name = "\improper Women's Bathroom"
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
@@ -11116,6 +12762,18 @@
icon_state = "plate"
},
/area/adminlevel/chinook/engineering)
+"Po" = (
+/obj/structure/platform{
+ dir = 8
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/cargo)
"Pp" = (
/obj/item/reagent_container/glass/bucket/janibucket,
/turf/open/floor/almayer{
@@ -11139,6 +12797,16 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/sec)
+"Ps" = (
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 16
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_y = 16
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"Pt" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/machinery/recharger,
@@ -11162,11 +12830,23 @@
},
/area/adminlevel/chinook/sec)
"Pw" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_x = -30
+/obj/structure/machinery/door/airlock/multi_tile/elevator/access{
+ desc = "An elevator hatch to take you to different levels of the station. This elevator seems to be disabled.";
+ name = "\improper Elevator Hatch"
+ },
+/turf/open/floor/corsat{
+ icon_state = "squares"
},
-/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
+"Px" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/cargo)
"Pz" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22"
@@ -11191,6 +12871,11 @@
name = "\improper Cargo Bay";
req_one_access_txt = "1;26"
},
+/obj/structure/machinery/door/poddoor/almayer{
+ dir = 4;
+ id = "chinookreq";
+ name = "Requisitions Lockdown"
+ },
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
"PC" = (
@@ -11257,15 +12942,6 @@
icon_state = "green"
},
/area/adminlevel/chinook)
-"PO" = (
-/obj/structure/platform_decoration{
- dir = 8
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
-/area/adminlevel/chinook/engineering)
"PP" = (
/turf/open/floor/almayer{
icon_state = "green"
@@ -11275,6 +12951,9 @@
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/storage/toolbox/mechanical,
/obj/item/circuitboard/apc,
+/obj/item/stack/cable_coil{
+ pixel_x = -8
+ },
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
"PT" = (
@@ -11287,13 +12966,6 @@
icon_state = "green"
},
/area/adminlevel/chinook)
-"PU" = (
-/obj/structure/surface/table/almayer,
-/obj/item/pizzabox/meat{
- pixel_y = 8
- },
-/turf/open/floor/almayer,
-/area/adminlevel/chinook/cargo)
"PV" = (
/obj/structure/window/framed/almayer/hull,
/turf/open/floor/plating,
@@ -11304,6 +12976,12 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
+"PX" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
"PY" = (
/obj/structure/surface/table/almayer,
/obj/structure/bedsheetbin{
@@ -11375,6 +13053,12 @@
icon_state = "plating"
},
/area/adminlevel/chinook/offices)
+"Qg" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/chinook/event)
"Qh" = (
/obj/structure/largecrate/random,
/turf/open/floor/almayer{
@@ -11437,14 +13121,21 @@
},
/area/adminlevel/chinook/engineering)
"Qs" = (
-/obj/item/tool/pen,
+/obj/item/tool/pen/fountain{
+ pixel_x = 3;
+ pixel_y = -1
+ },
/obj/item/paper_bin/uscm,
/obj/structure/sign/prop1{
pixel_x = -32;
pixel_y = 2
},
/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/almayer,
+/obj/item/tool/pen/fountain{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"Qt" = (
/obj/structure/sign/prop1{
@@ -11489,17 +13180,45 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/sec)
+"QA" = (
+/obj/structure/closet/secure_closet/freezer/fridge/full,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/chinook/event)
"QB" = (
-/obj/structure/cargo_container/wy/right,
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+/obj/structure/surface/table/reinforced/black,
+/obj/structure/machinery/light{
+ dir = 8
},
-/area/adminlevel/chinook/cargo)
-"QD" = (
-/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/paper_bin/uscm{
- pixel_y = 6
+ pixel_y = 8;
+ pixel_x = 12
+ },
+/obj/item/prop/tableflag/uscm{
+ pixel_x = -7;
+ pixel_y = 1
+ },
+/obj/item/prop/tableflag/uscm2{
+ pixel_y = 1;
+ pixel_x = 1
+ },
+/obj/item/tool/pen/fountain{
+ pixel_x = 10;
+ pixel_y = 6
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook/offices)
+"QD" = (
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/paper_bin/uscm{
+ pixel_y = 6
},
/turf/open/floor/almayer{
dir = 8;
@@ -11544,6 +13263,14 @@
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
+"QJ" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/corsat{
+ icon_state = "squares"
+ },
+/area/adminlevel/chinook/cargo)
"QL" = (
/obj/structure/bed/chair/comfy/black{
dir = 1
@@ -11587,6 +13314,20 @@
icon_state = "plate"
},
/area/adminlevel/chinook)
+"QS" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{
+ dir = 2;
+ name = "\improper Medical Bay";
+ req_access = null;
+ req_one_access = null
+ },
+/obj/structure/machinery/door/poddoor/almayer/open{
+ id = "chinookofficelock";
+ name = "Command Office Lockdown";
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook/offices)
"QT" = (
/obj/structure/machinery/portable_atmospherics/hydroponics,
/turf/open/floor/plating/plating_catwalk,
@@ -11600,6 +13341,25 @@
icon_state = "green"
},
/area/adminlevel/chinook)
+"QV" = (
+/obj/structure/bed/chair/comfy{
+ dir = 1
+ },
+/turf/open/floor/kutjevo/plate,
+/area/adminlevel/chinook/offices)
+"QW" = (
+/obj/structure/bed/chair/office/dark{
+ dir = 8
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook)
+"Rc" = (
+/obj/structure/machinery/portable_atmospherics/hydroponics,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook/event)
"Rd" = (
/obj/structure/surface/table/reinforced/black,
/obj/structure/machinery/computer/emails{
@@ -11612,19 +13372,18 @@
name = "\improper carpet"
},
/area/adminlevel/chinook/offices)
-"Rf" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E"
- },
-/turf/open/floor/almayer,
-/area/adminlevel/chinook/cargo)
"Ri" = (
-/obj/structure/surface/table/almayer,
-/obj/item/fuelCell,
-/turf/open/floor/almayer{
- icon_state = "orange"
+/obj/structure/desertdam/decals/road_edge{
+ pixel_x = 2;
+ pixel_y = -22
},
-/area/adminlevel/chinook/engineering)
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal6";
+ pixel_x = 2;
+ pixel_y = 4
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"Rj" = (
/obj/structure/machinery/door/airlock/almayer/generic{
name = "\improper Bathroom"
@@ -11659,6 +13418,15 @@
dir = 8
},
/area/adminlevel/chinook)
+"Ro" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/machinery/cm_vending/sorted/tech/tool_storage,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/offices)
"Rp" = (
/obj/structure/platform{
dir = 4
@@ -11677,8 +13445,16 @@
icon_state = "plating"
},
/area/adminlevel/chinook/sec)
+"Rs" = (
+/obj/structure/sign/safety/bathwomens{
+ pixel_y = 25
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"Rt" = (
-/obj/structure/machinery/power/fusion_engine,
/obj/structure/platform{
dir = 8
},
@@ -11690,22 +13466,17 @@
pixel_x = -15;
pixel_y = -7
},
+/obj/structure/prop/invuln/fusion_reactor,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
},
/area/adminlevel/chinook/engineering)
"Rw" = (
-/obj/structure/machinery/door/airlock/almayer/medical/glass{
- dir = 1;
- id = "medcryobeds";
- id_tag = "medcryobeds";
- name = "Medical Hypersleep Access";
- req_access = null;
- req_one_access = null
- },
+/obj/structure/machinery/disposal,
/turf/open/floor/almayer{
- icon_state = "dark_sterile"
+ dir = 4;
+ icon_state = "sterile_green_corner"
},
/area/adminlevel/chinook/medical)
"Rx" = (
@@ -11714,12 +13485,24 @@
icon_state = "cargo"
},
/area/adminlevel/chinook/sec)
+"Ry" = (
+/obj/structure/barricade/handrail/strata{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "blue"
+ },
+/area/adminlevel/chinook)
"RA" = (
-/turf/closed/wall/almayer/outer{
- desc = "A heavily reinforced metal wall. Nothing gets through here.";
- name = "ultra-reinforced hull"
+/obj/structure/noticeboard{
+ pixel_y = 27
},
-/area/adminlevel/chinook/engineering)
+/obj/item/weapon/gun/rifle/sniper/XM43E1{
+ pixel_y = 27
+ },
+/turf/open/floor/kutjevo/plate,
+/area/adminlevel/chinook/offices)
"RB" = (
/obj/structure/sign/safety/storage{
pixel_x = 13;
@@ -11731,14 +13514,27 @@
},
/area/adminlevel/chinook/sec)
"RD" = (
-/obj/structure/machinery/power/fusion_engine,
/obj/structure/machinery/light,
/obj/structure/platform,
+/obj/structure/prop/invuln/fusion_reactor,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
},
/area/adminlevel/chinook/engineering)
+"RE" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 26
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/engineering)
+"RF" = (
+/turf/open/floor/corsat{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/cargo)
"RH" = (
/obj/structure/toilet{
dir = 8
@@ -11775,11 +13571,7 @@
pixel_x = 1;
pixel_y = -4
},
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
"RM" = (
/turf/open/floor/almayer{
@@ -11794,6 +13586,17 @@
/obj/structure/machinery/photocopier,
/turf/open/floor/kutjevo/tan/plate,
/area/adminlevel/chinook/event)
+"RP" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook/medical)
+"RQ" = (
+/obj/structure/janitorialcart,
+/obj/item/tool/mop,
+/obj/item/reagent_container/glass/bucket/mopbucket,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/offices)
"RR" = (
/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
pixel_y = 25
@@ -11859,27 +13662,15 @@
},
/area/adminlevel/chinook/cargo)
"Se" = (
-/obj/structure/closet/secure_closet/guncabinet/blue{
- name = "sidearm storage"
- },
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/ammo_magazine/pistol,
-/obj/item/weapon/gun/pistol/m4a3,
-/obj/item/weapon/gun/pistol/m4a3,
-/obj/item/weapon/gun/pistol/m4a3,
/obj/structure/machinery/light{
dir = 4
},
+/obj/structure/closet/secure_closet/guncabinet/red{
+ name = "provost armor rack"
+ },
/turf/open/floor/almayer{
- icon_state = "cargo"
+ dir = 5;
+ icon_state = "plating"
},
/area/adminlevel/chinook/sec)
"Sg" = (
@@ -11889,6 +13680,17 @@
icon_state = "tcomms"
},
/area/adminlevel/chinook/engineering)
+"Sh" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/toy/deck/uno{
+ pixel_x = 3;
+ pixel_y = 8
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook)
"Si" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -11928,10 +13730,7 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook/sec)
"So" = (
-/obj/structure/machinery/telecomms/bus/preset_cent{
- autolinkers = list("chinook");
- freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455)
- },
+/obj/structure/machinery/telecomms/bus,
/turf/open/floor/almayer{
icon_state = "tcomms"
},
@@ -12022,18 +13821,18 @@
"SF" = (
/obj/structure/surface/rack,
/obj/item/reagent_container/spray/cleaner,
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 27
+ },
/turf/open/floor/almayer{
dir = 1;
icon_state = "green"
},
/area/adminlevel/chinook)
"SH" = (
-/obj/item/tool/pen,
-/obj/item/paper_bin/uscm,
-/obj/structure/surface/table/reinforced/black,
-/turf/open/floor/carpet{
- desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
- name = "\improper carpet"
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
/area/adminlevel/chinook/offices)
"SI" = (
@@ -12058,11 +13857,28 @@
"SL" = (
/turf/open/floor/kutjevo,
/area/adminlevel/chinook/event)
+"SM" = (
+/obj/structure/sign/ROsign,
+/turf/closed/wall/almayer/reinforced,
+/area/adminlevel/chinook)
+"SN" = (
+/obj/structure/sign/safety/debark_lounge{
+ pixel_x = 32
+ },
+/obj/structure/sign/safety/south{
+ pixel_x = 32;
+ pixel_y = -12
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"SP" = (
/turf/closed/wall/almayer/outer,
/area/adminlevel/chinook)
"SQ" = (
-/obj/structure/machinery/telecomms/server/presets/centcomm,
+/obj/structure/machinery/telecomms/server,
/turf/open/floor/almayer{
icon_state = "tcomms"
},
@@ -12071,6 +13887,18 @@
/obj/structure/window/framed/almayer/hull,
/turf/open/floor/plating,
/area/adminlevel/chinook/event)
+"SS" = (
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/reagent_container/food/condiment/saltshaker{
+ pixel_x = -4
+ },
+/obj/item/reagent_container/food/condiment/peppermill{
+ pixel_x = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/chinook/event)
"ST" = (
/obj/structure/largecrate/supply/supplies/water,
/obj/item/reagent_container/spray/cleaner{
@@ -12098,9 +13926,7 @@
},
/area/adminlevel/chinook)
"SV" = (
-/obj/structure/platform{
- dir = 1
- },
+/obj/structure/platform/stair_cut/alt,
/obj/structure/stairs/perspective{
icon_state = "p_stair_ew_full_cap";
layer = 3.5
@@ -12116,6 +13942,15 @@
icon_state = "test_floor5"
},
/area/adminlevel/chinook/engineering)
+"SY" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 27
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "orange"
+ },
+/area/adminlevel/chinook/engineering)
"Ta" = (
/obj/structure/surface/table/almayer,
/obj/item/folder/white,
@@ -12143,6 +13978,13 @@
icon_state = "sterile_green_side"
},
/area/adminlevel/chinook/medical)
+"Tg" = (
+/obj/structure/machinery/door/airlock/multi_tile/elevator/freight,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/chinook/cargo)
"Th" = (
/obj/effect/decal/warning_stripes{
icon_state = "W"
@@ -12157,6 +13999,12 @@
icon_state = "rasputin15"
},
/area/adminlevel/chinook/shuttle/unpowered)
+"Tj" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "bluecorner"
+ },
+/area/adminlevel/chinook)
"Tl" = (
/obj/structure/window/framed/almayer,
/turf/open/floor/plating,
@@ -12173,10 +14021,10 @@
},
/area/adminlevel/chinook/medical)
"Tp" = (
-/obj/structure/machinery/medical_pod/autodoc,
/obj/structure/sign/safety/autodoc{
pixel_x = -16
},
+/obj/structure/machinery/medical_pod/autodoc,
/turf/open/floor/almayer{
dir = 8;
icon_state = "sterile_green_side"
@@ -12188,6 +14036,12 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/engineering)
+"Tr" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer,
+/area/adminlevel/chinook)
"Ts" = (
/obj/effect/decal/warning_stripes{
icon_state = "E"
@@ -12219,7 +14073,7 @@
},
/area/adminlevel/chinook/sec)
"TA" = (
-/obj/structure/cargo_container/arious/leftmid,
+/obj/structure/cargo_container/seegson/left,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -12251,9 +14105,9 @@
/area/adminlevel/chinook/engineering)
"TG" = (
/obj/structure/machinery/door/airlock/almayer/command{
- name = "\improper General, 3rd Fleet 2nd Battlegroup"
+ name = "Office of Col. Samantha Maverick"
},
-/turf/open/floor/almayer,
+/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/offices)
"TH" = (
/obj/structure/machinery/light{
@@ -12263,6 +14117,20 @@
icon_state = "plating_striped"
},
/area/adminlevel/chinook/sec)
+"TJ" = (
+/turf/open/floor/corsat{
+ icon_state = "squares"
+ },
+/area/adminlevel/chinook/offices)
+"TK" = (
+/obj/structure/bed/chair/comfy{
+ dir = 4
+ },
+/obj/structure/sign/poster{
+ pixel_y = 32
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook/sec)
"TL" = (
/obj/structure/closet/crate,
/obj/structure/machinery/light{
@@ -12274,8 +14142,11 @@
},
/area/adminlevel/chinook/engineering)
"TM" = (
-/obj/structure/closet/emcloset,
+/obj/effect/decal/warning_stripes{
+ icon_state = "E"
+ },
/turf/open/floor/almayer{
+ dir = 6;
icon_state = "emerald"
},
/area/adminlevel/chinook/shuttle)
@@ -12291,14 +14162,38 @@
/turf/open/floor/almayer,
/area/adminlevel/chinook)
"TP" = (
-/obj/structure/closet/secure_closet/freezer/meat,
-/turf/open/floor/prison{
- icon_state = "kitchen"
+/obj/structure/machinery/light{
+ dir = 4
},
-/area/space)
+/obj/structure/machinery/medical_pod/sleeper,
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "sterile_green_corner"
+ },
+/area/adminlevel/chinook/offices)
"TQ" = (
/turf/open/floor/kutjevo/plate,
/area/adminlevel/chinook/event)
+"TT" = (
+/obj/structure/machinery/door/airlock/almayer/security/glass{
+ name = "\improper Provost Offices"
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/adminlevel/chinook/sec)
+"TU" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/reagent_container/food/snacks/monkeysdelight{
+ pixel_y = 9;
+ desc = "Morbidly pickled and preserved as a conversation piece. Somehow, doesn't smell like anything."
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook/offices)
"TV" = (
/obj/structure/sign/safety/conference_room{
pixel_y = -24
@@ -12374,6 +14269,7 @@
/area/adminlevel/chinook/medical)
"Uf" = (
/obj/structure/surface/table/almayer,
+/obj/item/storage/surgical_tray,
/turf/open/floor/almayer{
dir = 8;
icon_state = "sterile_green_corner"
@@ -12395,9 +14291,6 @@
/area/adminlevel/chinook/sec)
"Uj" = (
/obj/structure/machinery/light,
-/obj/effect/decal/warning_stripes{
- icon_state = "E"
- },
/obj/structure/machinery/door_control{
id = "chinookcargo";
name = "Shuttlebay Cargo Access";
@@ -12406,7 +14299,18 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
-"Ul" = (
+"Uk" = (
+/obj/structure/machinery/light,
+/obj/structure/surface/table/almayer,
+/obj/item/trash/USCMtray{
+ pixel_x = -4;
+ pixel_y = 10
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/offices)
+"Ul" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/paper_bin/uscm{
pixel_y = 6
@@ -12432,12 +14336,6 @@
icon_state = "cargo"
},
/area/adminlevel/chinook/sec)
-"Us" = (
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "green"
- },
-/area/adminlevel/chinook)
"Ut" = (
/obj/structure/surface/rack,
/obj/item/tool/shovel/spade{
@@ -12484,9 +14382,19 @@
icon_state = "plate"
},
/area/adminlevel/chinook/cryo)
+"Uy" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silvercorner"
+ },
+/area/adminlevel/chinook)
"Uz" = (
/obj/structure/surface/rack,
/obj/item/clothing/suit/storage/hazardvest,
+/obj/item/device/lightreplacer,
/turf/open/floor/almayer{
icon_state = "cargo"
},
@@ -12571,7 +14479,10 @@
},
/area/adminlevel/chinook/sec)
"UQ" = (
-/obj/structure/machinery/optable,
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/machinery/iv_drip,
/turf/open/floor/almayer{
dir = 1;
icon_state = "sterile_green_side"
@@ -12609,18 +14520,22 @@
},
/area/adminlevel/chinook/shuttle/unpowered)
"UW" = (
-/obj/structure/closet/secure_closet{
- name = "secure evidence locker";
- req_access_txt = "3"
+/obj/structure/surface/table/reinforced/black,
+/obj/item/reagent_container/food/drinks/coffeecup/uscm{
+ pixel_y = 9;
+ pixel_x = -11
},
-/obj/item/ammo_magazine/rifle/l42a/abr40,
-/turf/open/floor/almayer{
- icon_state = "cargo"
+/obj/item/device/flashlight/lamp{
+ pixel_y = 12;
+ pixel_x = 3
},
-/area/adminlevel/chinook/sec)
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook/offices)
"UX" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/book/manual/surgery,
+/obj/structure/machinery/disposal,
/turf/open/floor/almayer{
dir = 8;
icon_state = "sterile_green_corner"
@@ -12669,6 +14584,16 @@
icon_state = "sterile_green_corner"
},
/area/adminlevel/chinook/medical)
+"Vd" = (
+/obj/structure/closet/crate{
+ name = "prosthetics printer materials crate"
+ },
+/obj/item/stack/sheet/metal/large_stack,
+/obj/item/stack/sheet/metal/large_stack,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"Ve" = (
/obj/structure/surface/table/reinforced/black,
/turf/open/floor/almayer{
@@ -12712,6 +14637,11 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/offices)
+"Vo" = (
+/turf/closed/shuttle/elevator{
+ dir = 9
+ },
+/area/adminlevel/chinook/cargo)
"Vq" = (
/turf/open/floor/almayer,
/area/adminlevel/chinook/cargo)
@@ -12732,6 +14662,9 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook/sec)
+"Vt" = (
+/turf/open/floor/kutjevo/plate,
+/area/adminlevel/chinook/offices)
"Vu" = (
/obj/structure/machinery/disposal,
/turf/open/floor/almayer{
@@ -12754,6 +14687,12 @@
icon_state = "red"
},
/area/adminlevel/chinook/sec)
+"Vx" = (
+/obj/structure/largecrate/supply/generator,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"Vz" = (
/turf/open/floor/almayer{
dir = 8;
@@ -12787,12 +14726,14 @@
/area/adminlevel/chinook)
"VH" = (
/obj/structure/target,
-/turf/open/floor/strata{
- desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means.";
- icon = 'icons/turf/floors/floors.dmi';
- icon_state = "wood"
- },
+/turf/open/floor/wood,
/area/adminlevel/chinook/offices)
+"VI" = (
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "red"
+ },
+/area/adminlevel/chinook/sec)
"VJ" = (
/obj/structure/machinery/light{
dir = 4
@@ -12803,14 +14744,10 @@
},
/area/adminlevel/chinook/sec)
"VK" = (
-/obj/structure/machinery/telecomms/receiver/preset_cent{
- autolinkers = list("chinook");
- freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455);
- listening_level = 9
- },
/obj/structure/machinery/light{
dir = 8
},
+/obj/structure/machinery/telecomms/receiver,
/turf/open/floor/almayer{
icon_state = "tcomms"
},
@@ -12825,6 +14762,27 @@
icon_state = "plating"
},
/area/adminlevel/chinook/cargo)
+"VO" = (
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/prop/tableflag{
+ pixel_x = -9;
+ pixel_y = 4
+ },
+/obj/item/prop/tableflag/uscm{
+ pixel_y = 4
+ },
+/obj/item/prop/tableflag/uscm2{
+ pixel_y = 4;
+ pixel_x = 9
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
+"VP" = (
+/obj/structure/machinery/cm_vending/sorted/medical,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/medical)
"VQ" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -12854,6 +14812,19 @@
},
/turf/open/floor/almayer,
/area/adminlevel/chinook)
+"VT" = (
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_x = -9;
+ pixel_y = 4
+ },
+/obj/structure/desertdam/decals/road_edge{
+ icon_state = "road_edge_decal3";
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/turf/open/floor/wood,
+/area/adminlevel/chinook)
"VU" = (
/obj/structure/machinery/door/airlock/almayer/security/glass{
dir = 1;
@@ -12889,15 +14860,30 @@
icon_state = "sterile_green"
},
/area/adminlevel/chinook/medical)
-"Wd" = (
+"Wc" = (
/obj/structure/machinery/light{
- dir = 4
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E"
+ dir = 1
},
+/obj/structure/surface/table/reinforced/black,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
+/obj/item/device/binoculars,
/turf/open/floor/almayer,
-/area/adminlevel/chinook/cargo)
+/area/adminlevel/chinook)
+"Wd" = (
+/obj/structure/sign/poster{
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/adminlevel/chinook)
"Wf" = (
/turf/open/space,
/area/space)
@@ -12971,25 +14957,42 @@
/obj/structure/window/reinforced/ultra,
/obj/structure/machinery/door/window/ultra{
dir = 8;
- name = "M4RA execution rifles";
+ name = "L42A execution rifles";
req_access_txt = "2;3;12;19"
},
-/obj/item/weapon/gun/rifle/m4ra,
-/obj/item/weapon/gun/rifle/m4ra,
-/obj/item/weapon/gun/rifle/m4ra,
+/obj/item/weapon/gun/rifle/l42a,
+/obj/item/weapon/gun/rifle/l42a,
+/obj/item/weapon/gun/rifle/l42a,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
},
/area/adminlevel/chinook/sec)
+"Wt" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 26
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/adminlevel/chinook/engineering)
+"Wu" = (
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/structure/machinery/computer/emails{
+ dir = 4;
+ pixel_x = 2
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/chinook)
"Ww" = (
-/obj/structure/closet/fireaxecabinet{
- pixel_x = -32
+/obj/structure/machinery/disposal,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
},
-/turf/open/floor/almayer,
/area/adminlevel/chinook)
"Wx" = (
-/obj/structure/bed/sofa/south/grey/left,
+/obj/structure/machinery/computer/arcade,
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -13085,6 +15088,18 @@
/obj/structure/window/framed/almayer/hull,
/turf/open/floor/plating,
/area/adminlevel/chinook/engineering)
+"WM" = (
+/obj/structure/closet,
+/obj/item/reagent_container/spray/cleaner,
+/obj/item/reagent_container/spray/cleaner,
+/obj/item/reagent_container/spray/cleaner,
+/obj/item/tool/soap,
+/obj/item/tool/soap,
+/obj/item/tool/soap,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook/offices)
"WN" = (
/obj/structure/machinery/iv_drip,
/turf/open/floor/almayer{
@@ -13197,11 +15212,12 @@
},
/area/adminlevel/chinook/engineering)
"Xe" = (
-/obj/structure/machinery/light{
- dir = 4
+/obj/structure/closet/secure_closet/personal,
+/obj/structure/sign/poster{
+ pixel_y = 32
},
/turf/open/floor/plating/plating_catwalk,
-/area/adminlevel/chinook/engineering)
+/area/adminlevel/chinook)
"Xf" = (
/obj/structure/machinery/door/poddoor/almayer{
id = "chinook_tcomms";
@@ -13342,11 +15358,6 @@
icon_state = "plating"
},
/area/adminlevel/chinook/sec)
-"XB" = (
-/obj/structure/surface/table/almayer,
-/obj/item/ashtray/glass,
-/turf/open/floor/almayer,
-/area/adminlevel/chinook/cargo)
"XC" = (
/obj/structure/bed/chair/office/dark{
dir = 4
@@ -13371,15 +15382,11 @@
},
/area/adminlevel/chinook/offices)
"XJ" = (
-/obj/structure/machinery/door/airlock/almayer/engineering{
- dir = 1;
- name = "\improper Reactor Bay"
- },
+/obj/structure/largecrate/supply/medicine/optable,
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "orange"
+ icon_state = "plate"
},
-/area/adminlevel/chinook/engineering)
+/area/adminlevel/chinook/medical)
"XK" = (
/obj/vehicle/powerloader,
/obj/structure/platform{
@@ -13403,14 +15410,6 @@
icon_state = "red"
},
/area/adminlevel/chinook/sec)
-"XM" = (
-/obj/structure/surface/table/almayer,
-/obj/item/storage/backpack/marine{
- pixel_y = 8
- },
-/obj/item/storage/firstaid/regular,
-/turf/open/floor/almayer,
-/area/adminlevel/chinook/cargo)
"XN" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/paper{
@@ -13434,11 +15433,10 @@
pixel_x = 27;
serial_number = 11
},
-/obj/structure/machinery/door/airlock/almayer/engineering{
- dir = 1;
- name = "\improper Reactor Bay"
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
},
-/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/engineering)
"XP" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
@@ -13488,6 +15486,13 @@
icon_state = "red"
},
/area/adminlevel/chinook/sec)
+"XW" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/adminlevel/chinook)
"XZ" = (
/obj/structure/machinery/chem_dispenser,
/turf/open/floor/almayer{
@@ -13496,12 +15501,13 @@
},
/area/adminlevel/chinook/medical)
"Ya" = (
-/obj/structure/machinery/light{
- dir = 4
- },
/obj/effect/decal/warning_stripes{
icon_state = "NE-out"
},
+/obj/structure/sign/safety/hazard{
+ pixel_x = 32;
+ pixel_y = 7
+ },
/turf/open/floor/almayer{
dir = 4;
icon_state = "red"
@@ -13560,9 +15566,6 @@
/area/adminlevel/chinook/engineering)
"Yh" = (
/obj/structure/surface/table/reinforced/black,
-/obj/item/device/flashlight/lamp/green{
- pixel_y = 7
- },
/obj/item/reagent_container/food/snacks/monkeyburger{
pixel_x = -5;
pixel_y = 5
@@ -13575,9 +15578,6 @@
"Yi" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/effect/spawner/random/tool,
-/obj/item/fuelCell{
- pixel_y = 10
- },
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -13601,6 +15601,9 @@
icon_state = "sterile_green_corner"
},
/area/adminlevel/chinook/medical)
+"Yn" = (
+/turf/closed/shuttle/elevator/gears,
+/area/adminlevel/chinook/cargo)
"Yo" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/storage/fancy/egg_box{
@@ -13610,12 +15613,20 @@
icon_state = "kitchen"
},
/area/adminlevel/chinook/event)
-"Yq" = (
+"Yp" = (
/turf/open/floor/almayer{
dir = 8;
- icon_state = "cargo_arrow"
+ icon_state = "red"
},
-/area/adminlevel/chinook/shuttle)
+/area/adminlevel/chinook/sec)
+"Yq" = (
+/obj/structure/machinery/door/airlock/almayer/command{
+ name = "\improper Male Locker Room"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/adminlevel/chinook)
"Yr" = (
/turf/open/floor/almayer_hull{
dir = 5;
@@ -13638,20 +15649,13 @@
/obj/item/clothing/head/welding{
pixel_y = 7
},
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 25
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/adminlevel/chinook/engineering)
-"Yw" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/reagent_dispensers/water_cooler/stacks,
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "sterile_green_corner"
- },
-/area/adminlevel/chinook/medical)
"Yx" = (
/obj/structure/machinery/smartfridge/chemistry,
/turf/open/floor/almayer{
@@ -13806,12 +15810,7 @@
},
/area/adminlevel/chinook/medical)
"YU" = (
-/obj/structure/machinery/telecomms/allinone{
- autolinkers = list("chinook");
- freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455);
- listening_level = 9;
- name = "Chinook Telecommunications Mainframe"
- },
+/obj/structure/machinery/telecomms/allinone,
/turf/open/floor/almayer{
icon_state = "tcomms"
},
@@ -13869,7 +15868,7 @@
/obj/structure/machinery/door/airlock/almayer/medical/glass{
id = "medcryobeds";
id_tag = "medcryobeds";
- name = "Medical Hypersleep Access";
+ name = "Medical Equipment Room";
req_access = null;
req_one_access = null
},
@@ -13877,6 +15876,25 @@
icon_state = "dark_sterile"
},
/area/adminlevel/chinook/medical)
+"Zd" = (
+/obj/structure/surface/table/reinforced/black,
+/obj/item/device/flashlight/lamp{
+ pixel_y = 5;
+ pixel_x = -8
+ },
+/obj/item/paper_bin/uscm{
+ pixel_y = 8;
+ pixel_x = 5
+ },
+/obj/item/tool/pen/fountain{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/chinook/offices)
"Zf" = (
/obj/structure/sign/poster{
pixel_y = -32
@@ -13887,7 +15905,10 @@
/area/adminlevel/chinook/cryo)
"Zg" = (
/obj/structure/surface/table/almayer,
-/obj/item/reagent_container/glass/beaker/cryoxadone,
+/obj/item/reagent_container/glass/beaker/cryoxadone{
+ pixel_x = 7;
+ pixel_y = 10
+ },
/obj/item/reagent_container/glass/beaker/cryoxadone,
/obj/structure/sign/nosmoking_1{
pixel_y = 30
@@ -13900,7 +15921,11 @@
"Zh" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/folder/black,
-/turf/open/floor/almayer,
+/obj/item/prop/tableflag{
+ pixel_x = -9;
+ pixel_y = 10
+ },
+/turf/open/floor/kutjevo,
/area/adminlevel/chinook/offices)
"Zi" = (
/turf/open/floor/plating/plating_catwalk,
@@ -14050,9 +16075,16 @@
icon_state = "dark_sterile"
},
/area/adminlevel/chinook/medical)
+"ZF" = (
+/obj/structure/sign/prop1{
+ pixel_y = 32
+ },
+/obj/structure/closet/secure_closet/commander,
+/turf/open/floor/wood,
+/area/adminlevel/chinook/offices)
"ZH" = (
/obj/structure/machinery/power/port_gen/pacman,
-/obj/item/tool/weldingtool,
+/obj/item/tool/weldingtool/largetank,
/obj/structure/sign/safety/high_voltage{
pixel_y = 25
},
@@ -14078,6 +16110,9 @@
/area/adminlevel/chinook/sec)
"ZK" = (
/obj/structure/machinery/cryo_cell,
+/obj/effect/decal/medical_decals{
+ icon_state = "cryotop"
+ },
/turf/open/floor/almayer{
dir = 1;
icon_state = "sterile_green_side"
@@ -14113,7 +16148,18 @@
icon_state = "plating"
},
/area/adminlevel/chinook/engineering)
-"ZP" = (
+"ZO" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/reagentgrinder{
+ pixel_y = 3
+ },
+/obj/item/device/analyzer/plant_analyzer,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/adminlevel/chinook/event)
+"ZP" = (
/obj/structure/machinery/vending/snack,
/turf/open/floor/almayer{
icon_state = "plate"
@@ -14146,8 +16192,7 @@
/area/adminlevel/chinook/engineering)
"ZV" = (
/turf/open/floor/almayer/uscm/directional{
- dir = 8;
- icon_state = "logo_c"
+ dir = 4
},
/area/adminlevel/chinook/shuttle)
"ZW" = (
@@ -14159,6 +16204,9 @@
pixel_x = 6;
pixel_y = 4
},
+/obj/item/stack/cable_coil{
+ pixel_x = -8
+ },
/turf/open/floor/plating/plating_catwalk,
/area/adminlevel/chinook/engineering)
"ZX" = (
@@ -14377,34 +16425,9 @@ oi
oi
oi
oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
-oi
oi
oi
oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
oi
oi
oi
@@ -14427,8 +16450,6 @@ oi
oi
oi
oi
-"}
-(3,1,1) = {"
oi
oi
oi
@@ -14454,6 +16475,8 @@ oi
oi
oi
oi
+"}
+(3,1,1) = {"
oi
oi
oi
@@ -14504,34 +16527,10 @@ oi
oi
oi
oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
oi
oi
oi
oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
oi
oi
oi
@@ -14554,8 +16553,6 @@ oi
oi
oi
oi
-"}
-(4,1,1) = {"
oi
oi
oi
@@ -14605,6 +16602,8 @@ oi
oi
oi
oi
+"}
+(4,1,1) = {"
oi
oi
oi
@@ -14631,34 +16630,6 @@ oi
oi
oi
oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-al
-al
-al
-al
-al
-al
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
oi
oi
oi
@@ -14681,8 +16652,6 @@ oi
oi
oi
oi
-"}
-(5,1,1) = {"
oi
oi
oi
@@ -14758,34 +16727,10 @@ oi
oi
oi
oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
oi
-Zu
-af
oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
+"}
+(5,1,1) = {"
oi
oi
oi
@@ -14808,8 +16753,6 @@ oi
oi
oi
oi
-"}
-(6,1,1) = {"
oi
oi
oi
@@ -14885,34 +16828,8 @@ oi
oi
oi
oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
oi
-Zu
-af
oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
oi
oi
oi
@@ -14935,12 +16852,12 @@ oi
oi
oi
oi
-"}
-(7,1,1) = {"
oi
oi
oi
oi
+"}
+(6,1,1) = {"
oi
oi
oi
@@ -15024,10 +16941,23 @@ oi
oi
oi
oi
+Jc
+Yt
+Yt
+Yt
+ai
oi
-Zu
-af
+Jc
+Yt
+Yt
+Yt
+ai
oi
+Jc
+Yt
+Yt
+Yt
+ai
oi
oi
oi
@@ -15053,6 +16983,8 @@ oi
oi
oi
oi
+"}
+(7,1,1) = {"
oi
oi
oi
@@ -15062,8 +16994,6 @@ oi
oi
oi
oi
-"}
-(8,1,1) = {"
oi
oi
oi
@@ -15138,35 +17068,26 @@ oi
oi
oi
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
+Zu
+Pk
+Pk
+Pk
+af
oi
Zu
+Pk
+Pk
+Pk
af
oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
+oi
+oi
oi
oi
oi
@@ -15190,7 +17111,15 @@ oi
oi
oi
"}
-(9,1,1) = {"
+(8,1,1) = {"
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
oi
oi
oi
@@ -15270,26 +17199,15 @@ Zu
Pk
Pk
Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
-oi
-Zu
af
oi
Zu
Pk
Pk
Pk
-Pk
-Pk
-Pk
-Pk
+af
+oi
+Zu
Pk
Pk
Pk
@@ -15316,25 +17234,11 @@ oi
oi
oi
oi
-"}
-(10,1,1) = {"
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
oi
oi
oi
+"}
+(9,1,1) = {"
oi
oi
oi
@@ -15390,6 +17294,31 @@ oi
oi
oi
oi
+Jc
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+ai
oi
oi
oi
@@ -15397,26 +17326,15 @@ Zu
Pk
Pk
Pk
+af
+oi
+Zu
Pk
Pk
Pk
-Pk
-Pk
-Pk
-Pk
-al
-al
-al
-al
-al
-al
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
+af
+oi
+Zu
Pk
Pk
Pk
@@ -15443,11 +17361,11 @@ oi
oi
oi
oi
-"}
-(11,1,1) = {"
oi
oi
oi
+"}
+(10,1,1) = {"
oi
oi
oi
@@ -15492,24 +17410,6 @@ oi
oi
oi
oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
oi
oi
oi
@@ -15520,30 +17420,48 @@ oi
oi
oi
oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
oi
Zu
+al
+al
+SP
+fu
+fu
+fu
+SP
+SP
+fu
+fu
+fu
+SP
+SP
+fu
+fu
+SP
+SP
+fu
+fu
+fu
+SP
+SP
+SP
af
oi
+oi
+oi
Zu
Pk
Pk
Pk
+af
+oi
+Zu
Pk
Pk
Pk
-Pk
+af
+oi
+Zu
Pk
Pk
Pk
@@ -15570,8 +17488,11 @@ oi
oi
oi
oi
+oi
+oi
+oi
"}
-(12,1,1) = {"
+(11,1,1) = {"
oi
oi
oi
@@ -15619,62 +17540,62 @@ oi
oi
oi
oi
-Zu
-al
-al
-al
-al
-al
-al
-al
-al
-al
-al
-al
-al
-al
+Jc
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
al
al
al
+SP
+Wq
+qZ
+ZI
+Tl
+PX
+ZZ
+ek
+gK
+gK
+bi
+gK
+gK
+gK
+gK
+gK
+gK
+gK
+gK
+ZZ
+SP
af
oi
oi
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
-oi
-oi
-oi
-oi
-oi
-oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
+Zu
+Pk
+Pk
+Pk
+af
oi
Zu
+Pk
+Pk
+Pk
af
oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
+oi
+oi
oi
oi
oi
@@ -15698,7 +17619,7 @@ oi
oi
oi
"}
-(13,1,1) = {"
+(12,1,1) = {"
oi
oi
oi
@@ -15748,27 +17669,57 @@ oi
oi
Zu
al
-SP
-SP
-SP
-SP
-SP
-SP
-SP
-SP
-SP
-SP
al
al
al
al
al
+al
+al
+al
+al
+SP
+Wq
+qZ
+ZZ
+ow
+lO
+ZZ
+CF
+xq
+wX
+wX
+wX
+wX
+wX
+wX
+wX
+wX
+wX
+to
+bY
+fu
af
oi
oi
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
oi
oi
@@ -15787,8 +17738,6 @@ oi
oi
oi
oi
-Zu
-af
oi
oi
oi
@@ -15796,6 +17745,8 @@ oi
oi
oi
oi
+"}
+(13,1,1) = {"
oi
oi
oi
@@ -15824,8 +17775,6 @@ oi
oi
oi
oi
-"}
-(14,1,1) = {"
oi
oi
oi
@@ -15845,11 +17794,59 @@ oi
oi
oi
oi
+Zu
+al
+SP
+SP
+SP
+SP
+SP
+SP
+SP
+SP
+SP
+SP
+Wq
+qZ
+ZZ
+ZZ
+lO
+ZZ
+CF
+pv
+pX
+pX
+pX
+pX
+pX
+pX
+BJ
+pX
+pX
+nk
+bY
+fu
+af
oi
oi
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
oi
oi
@@ -15873,24 +17870,25 @@ oi
oi
oi
oi
-Zu
-al
-SP
-pk
-uz
-wl
-wl
-ah
-AP
-ah
-ah
-SP
-al
-al
-al
-al
-al
-af
+oi
+oi
+"}
+(14,1,1) = {"
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
oi
oi
oi
@@ -15912,18 +17910,6 @@ Yt
Yt
Yt
Yt
-ai
-oi
-Zu
-af
-oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
Yt
Yt
Yt
@@ -15935,11 +17921,59 @@ oi
oi
oi
oi
+Zu
+al
+SP
+pk
+uz
+wl
+wl
+ah
+AP
+ah
+ah
+SP
+Wq
+qZ
+ZZ
+Tl
+lO
+qZ
+qv
+Pe
+pX
+pX
+pX
+pX
+pX
+pX
+pX
+pX
+pX
+nk
+bY
+fu
+af
oi
oi
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
oi
oi
@@ -15951,12 +17985,6 @@ oi
oi
oi
oi
-"}
-(15,1,1) = {"
-oi
-oi
-oi
-oi
oi
oi
oi
@@ -15971,6 +17999,8 @@ oi
oi
oi
oi
+"}
+(15,1,1) = {"
oi
oi
oi
@@ -15993,7 +18023,25 @@ oi
oi
oi
oi
-Jc
+Yc
+Yc
+Yc
+Yc
+Yc
+Yc
+Yc
+Xm
+Xm
+Xm
+Yc
+Yc
+Yc
+Yc
+Yc
+Yc
+Yc
+al
+al
Yt
Yt
Yt
@@ -16012,46 +18060,43 @@ ag
ag
EZ
SP
-al
-al
-al
-al
-al
+Wq
+qZ
+ZZ
+Tl
+lO
+qZ
+Ep
+mC
+pX
+pX
+pX
+pX
+qu
+pX
+pX
+pX
+pX
+nk
+bY
+SP
af
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
Zu
Pk
Pk
Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
af
oi
Zu
-af
-oi
-Zu
-Pk
-Pk
-Pk
-Pk
Pk
Pk
Pk
+af
+oi
+Zu
Pk
Pk
Pk
@@ -16078,26 +18123,11 @@ oi
oi
oi
oi
-"}
-(16,1,1) = {"
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
oi
oi
oi
+"}
+(16,1,1) = {"
oi
oi
oi
@@ -16120,7 +18150,25 @@ oi
oi
oi
oi
-Zu
+Yc
+NZ
+AD
+AD
+AD
+qd
+jF
+sr
+vl
+Xx
+jF
+NZ
+AD
+AD
+AD
+qd
+Yc
+al
+al
al
al
al
@@ -16139,19 +18187,27 @@ ag
ag
vn
SP
-al
-al
-al
-al
-al
-af
-oi
-oi
-oi
-oi
-oi
-oi
-oi
+Wq
+qZ
+ZZ
+ow
+lO
+ZZ
+CF
+pv
+pX
+BJ
+pX
+pX
+pX
+pX
+pX
+pX
+pX
+nk
+fL
+SP
+af
oi
oi
oi
@@ -16159,26 +18215,15 @@ Zu
Pk
Pk
Pk
+af
+oi
+Zu
Pk
Pk
Pk
-Pk
-Pk
-Pk
-Pk
-al
-al
-al
-al
-al
-al
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
+af
+oi
+Zu
Pk
Pk
Pk
@@ -16205,26 +18250,11 @@ oi
oi
oi
oi
-"}
-(17,1,1) = {"
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
oi
oi
oi
+"}
+(17,1,1) = {"
oi
oi
oi
@@ -16247,74 +18277,84 @@ oi
oi
oi
oi
-Zu
+Yc
+Fx
+DS
+TJ
+DS
+Fx
+jF
+eu
+Zi
+eN
+jF
+Fx
+DS
+TJ
+DS
+Fx
+Yc
+al
+al
al
SP
-vD
-vD
-vD
-vD
-vD
-vD
-vD
+Ys
+Ys
+Ys
+Ys
+Ys
+Ys
+Ys
fu
uD
-vD
-vD
-vD
-vD
+Ys
+Ys
+Ys
+Ys
uD
-vD
-SP
-SP
-SP
+Ys
SP
+Wq
+qZ
+ZZ
+ZZ
+lO
+ZZ
+CF
+xf
+eO
+eO
+eO
+eO
+eO
+eO
+mC
+gM
+eO
+mD
+bY
SP
-al
-al
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
-oi
-oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
-oi
-Zu
-af
-oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
af
oi
oi
oi
+Yr
+au
+al
+au
+WY
oi
+Yr
+au
+al
+au
+WY
oi
+Yr
+au
+al
+au
+WY
oi
oi
oi
@@ -16332,18 +18372,6 @@ oi
oi
oi
oi
-"}
-(18,1,1) = {"
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
oi
oi
oi
@@ -16352,6 +18380,8 @@ oi
oi
oi
oi
+"}
+(18,1,1) = {"
oi
oi
oi
@@ -16374,7 +18404,25 @@ oi
oi
oi
oi
-Zu
+Yc
+HT
+TJ
+TJ
+TJ
+Pw
+Pw
+sr
+Zi
+vl
+Pw
+Pw
+TJ
+TJ
+TJ
+HT
+Yc
+al
+al
al
SP
mn
@@ -16396,60 +18444,42 @@ fu
Wq
qZ
ZI
-SP
-al
-al
-al
-al
-al
-al
-al
-al
-al
+Tl
+lO
+Tr
+Tj
+Vb
+Vb
+Vb
+oG
+Vb
+Vb
+gj
+HA
+eq
+Ry
+Vb
+ZZ
+fu
af
oi
oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
-oi
-Zu
-af
-oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
oi
oi
oi
+al
oi
oi
oi
oi
oi
+al
oi
oi
oi
oi
oi
+al
oi
oi
oi
@@ -16459,8 +18489,6 @@ oi
oi
oi
oi
-"}
-(19,1,1) = {"
oi
oi
oi
@@ -16479,6 +18507,8 @@ oi
oi
oi
oi
+"}
+(19,1,1) = {"
oi
oi
oi
@@ -16501,7 +18531,25 @@ oi
oi
oi
oi
-Zu
+Yc
+HT
+TJ
+TJ
+TJ
+TJ
+TJ
+sr
+Zi
+vl
+TJ
+TJ
+TJ
+TJ
+TJ
+HT
+Yc
+al
+al
al
SP
mo
@@ -16523,42 +18571,42 @@ fu
Wq
qZ
Xv
-SP
-SP
-fu
-fu
-fu
-fu
+WF
+WF
+WF
+Tl
+Tl
+Tl
+Tl
+WF
+WF
+ZZ
+ZZ
+qZ
+qZ
+ZZ
+ZZ
+ZZ
fu
-SP
-SP
al
-af
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-af
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
+Yt
+Yt
+Yt
+Yt
+Yt
+al
+Yt
+Yt
+Yt
+Yt
+Yt
+al
+Yt
+Yt
+Yt
+Yt
+Yt
+al
oi
oi
oi
@@ -16610,25 +18658,25 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
+Yc
+HT
+TJ
+TJ
+TJ
+TJ
+TJ
+sr
+Zi
+vl
+TJ
+TJ
+TJ
+TJ
+TJ
+HT
+Yc
+al
+al
al
SP
mv
@@ -16647,63 +18695,45 @@ Be
ZZ
Fg
Ys
-Wq
+lz
qZ
ZI
-lO
-SP
+WF
OE
wz
+wz
vA
oM
sZ
vJ
-SP
-al
-af
-oi
-oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
-oi
-Zu
-af
-oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
+WF
+cT
+ZZ
+ZZ
+ZZ
+ZZ
+ZZ
+ZZ
+fu
+al
+au
+au
+au
+au
+au
+al
+au
+au
+au
+au
+au
+al
+au
+au
+au
+au
+au
+al
oi
oi
oi
@@ -16713,8 +18743,6 @@ oi
oi
oi
oi
-"}
-(21,1,1) = {"
oi
oi
oi
@@ -16733,6 +18761,8 @@ oi
oi
oi
oi
+"}
+(21,1,1) = {"
oi
oi
oi
@@ -16755,7 +18785,25 @@ oi
oi
oi
oi
-Zu
+Yc
+HT
+TJ
+TJ
+TJ
+TJ
+TJ
+sr
+Zi
+vl
+TJ
+TJ
+TJ
+TJ
+TJ
+HT
+Yc
+al
+al
al
SP
ZZ
@@ -16768,8 +18816,8 @@ ZZ
ZZ
qZ
UN
-WF
-Oe
+Ys
+yR
Be
ZZ
Ff
@@ -16777,62 +18825,42 @@ GH
ZZ
ZZ
ZI
-Sx
Tl
qb
wz
+wz
OY
OY
OY
wz
-fu
-al
-af
-oi
-oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
-oi
-Zu
-af
-oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
+ow
+qZ
+lO
+qZ
+qZ
+lO
+qZ
+lO
+SP
af
oi
oi
oi
oi
oi
+al
oi
oi
oi
oi
oi
+al
oi
oi
oi
oi
oi
+al
oi
oi
oi
@@ -16840,10 +18868,6 @@ oi
oi
oi
oi
-"}
-(22,1,1) = {"
-oi
-oi
oi
oi
oi
@@ -16864,6 +18888,8 @@ oi
oi
oi
oi
+"}
+(22,1,1) = {"
oi
oi
oi
@@ -16882,7 +18908,29 @@ oi
oi
oi
oi
-Zu
+Jc
+Yt
+Yt
+Yt
+Yc
+Fx
+Fn
+TJ
+Fn
+Fx
+jF
+eu
+Zi
+eN
+jF
+Fx
+Fn
+TJ
+Fn
+Fx
+Yc
+al
+al
al
SP
ZZ
@@ -16895,61 +18943,53 @@ ZZ
ZZ
qZ
ZZ
-WF
+Ys
yV
Be
ZZ
Ff
-GH
+ZZ
ZZ
ZZ
ZI
-Sx
Tl
-Wx
+fA
+wz
wz
Ow
Ow
OY
wz
-fu
-al
-af
-oi
-oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-al
-al
-al
-al
-al
-al
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
+ZZ
+qZ
+lO
+qZ
+qZ
+lO
+qZ
+KY
+SP
af
oi
oi
oi
+Jc
+Yt
+al
+Yt
+ai
oi
+Jc
+Yt
+al
+Yt
+ai
oi
+Jc
+Yt
+al
+Yt
+ai
oi
oi
oi
@@ -16967,22 +19007,6 @@ oi
oi
oi
oi
-"}
-(23,1,1) = {"
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
oi
oi
oi
@@ -16991,6 +19015,8 @@ oi
oi
oi
oi
+"}
+(23,1,1) = {"
oi
oi
oi
@@ -17011,6 +19037,28 @@ oi
oi
Zu
al
+al
+al
+Yc
+MF
+AD
+AD
+AD
+rp
+jF
+sr
+Zi
+Xx
+jF
+MF
+AD
+AD
+AD
+rp
+Yc
+al
+al
+al
SP
mn
mn
@@ -17031,43 +19079,40 @@ Ys
Wq
qZ
ZI
-KJ
Tl
-Ou
+Wx
wz
+wV
wB
Yh
-OY
+gw
wz
fu
-al
+rK
+ZZ
+ZZ
+Tr
+ZZ
+ZZ
+Jp
+SP
af
oi
oi
+oi
Zu
Pk
Pk
Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
-oi
-Zu
af
oi
Zu
Pk
Pk
Pk
-Pk
-Pk
-Pk
-Pk
+af
+oi
+Zu
Pk
Pk
Pk
@@ -17094,12 +19139,11 @@ oi
oi
oi
oi
-"}
-(24,1,1) = {"
-oi
oi
oi
oi
+"}
+(24,1,1) = {"
oi
oi
oi
@@ -17114,30 +19158,34 @@ oi
oi
oi
oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
oi
oi
oi
oi
Zu
al
+al
+Yc
+Yc
+jF
+jF
+jF
+jF
+jF
+jF
+sr
+Zi
+Xx
+jF
+jF
+jF
+jF
+jF
+Yc
+Yc
+al
+al
+al
SP
mo
mo
@@ -17159,46 +19207,46 @@ Wq
qZ
ZI
WF
-WF
VE
wz
-RZ
-RZ
-OY
-zd
+wV
+vt
+Sh
+gw
+wz
fu
-al
+WF
+Yq
+WF
+WF
+WF
+mZ
+WF
+SP
af
oi
oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
oi
Zu
+Pk
+Pk
+Pk
+af
+oi
+Zu
+Pk
+Pk
+Pk
+af
+oi
+Zu
+Pk
+Pk
+Pk
af
oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
+oi
+oi
oi
oi
oi
@@ -17244,27 +19292,27 @@ oi
Zu
al
al
+Yc
+aE
+xY
+Ck
+Gz
+HG
+Ci
+jF
+sL
+vl
+Xx
+jF
+IY
+RQ
+HL
+oy
+Yc
al
al
al
al
-al
-al
-al
-al
-al
-al
-al
-al
-al
-al
-af
-oi
-oi
-oi
-oi
-Zu
-al
SP
mv
mv
@@ -17289,40 +19337,40 @@ KM
XP
wz
wz
+RZ
+RZ
OY
-OY
-OY
-tw
-fu
-al
+wz
+WF
+AY
+lO
+dK
+WF
+AY
+lO
+dK
+SP
af
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
Zu
+Pk
+Pk
+Pk
af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
+Zu
+Pk
+Pk
+Pk
+af
oi
oi
oi
@@ -17372,39 +19420,39 @@ Zu
al
al
Yc
+iF
+xY
+Ck
+Gz
+Em
+dl
+jF
+sr
+Zi
+vl
+cY
+vl
+Zi
+Zi
+Uk
Yc
-Yc
-Yc
-Yc
-Yc
-Yc
-Yc
-al
-al
al
al
al
al
-af
-oi
-oi
-oi
-oi
-Zu
-al
Yc
-xi
-xi
-xi
-xi
-xi
-xi
-xi
+YC
+YC
+YC
+YC
+YC
+YC
+YC
Xm
Xm
-xi
-xi
-jF
+YC
+YC
+YC
Xm
Dt
YC
@@ -17419,40 +19467,40 @@ wz
OY
OY
OY
-Ep
-fu
-al
+lS
+WF
+Xe
+qZ
+dK
+WF
+dK
+lO
+dK
+SP
af
oi
oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
oi
Zu
+Pk
+Pk
+Pk
af
oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
+Zu
+Pk
+Pk
+Pk
+af
+oi
+Zu
+Pk
+Pk
+Pk
+af
+oi
+oi
+oi
oi
oi
oi
@@ -17499,31 +19547,31 @@ Zu
al
al
Yc
-aE
Et
Et
Et
-Pw
-dl
+Et
+Em
+ME
+jF
+sr
+vl
+Xx
+jF
+Ro
+NV
+zJ
+zJ
Yc
al
al
al
al
-al
-al
-al
-Yt
-Yt
-Yt
-Yt
-al
-al
Yc
vl
vl
vl
-pt
+Pi
jF
rU
Qm
@@ -17545,37 +19593,34 @@ LN
wV
Cd
Mj
-ag
-wz
+vA
+yT
+WF
+dK
+lO
+KJ
+WF
+tw
+lO
+KJ
SP
-al
af
oi
oi
+oi
Zu
Pk
Pk
Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
-oi
-Zu
af
oi
Zu
Pk
Pk
Pk
-Pk
-Pk
-Pk
-Pk
+af
+oi
+Zu
Pk
Pk
Pk
@@ -17602,6 +19647,9 @@ oi
oi
oi
oi
+oi
+oi
+oi
"}
(28,1,1) = {"
oi
@@ -17630,18 +19678,18 @@ vI
bD
vI
Et
-vl
+Em
dp
+jF
+sr
+Zi
+Xx
+jF
+jF
+jF
+jF
+er
Yc
-Yc
-Yc
-Yc
-Yc
-Yc
-Yc
-Yc
-al
-al
al
al
al
@@ -17649,17 +19697,17 @@ al
Yc
mz
mz
-vl
+Zi
vl
PW
sr
XI
RU
-uN
+xa
RU
RU
RU
-uN
+xa
RU
YC
GJ
@@ -17667,6 +19715,14 @@ Wq
qZ
ZI
lO
+WF
+WF
+WF
+WF
+WF
+WF
+WF
+SP
SP
SP
SP
@@ -17675,34 +19731,23 @@ SP
SP
SP
SP
-al
af
oi
oi
+oi
Zu
Pk
Pk
Pk
+af
+oi
+Zu
Pk
Pk
Pk
-Pk
-Pk
-Pk
-Pk
-al
-al
-al
-al
-al
-al
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
+af
+oi
+Zu
Pk
Pk
Pk
@@ -17729,6 +19774,9 @@ oi
oi
oi
oi
+oi
+oi
+oi
"}
(29,1,1) = {"
oi
@@ -17757,26 +19805,26 @@ aJ
bF
di
Et
-vl
+Em
ds
jF
-eL
+eu
Zi
Xx
jF
Am
go
+jF
+WM
Yc
al
al
al
al
-al
-al
Yc
mF
nt
-vl
+Zi
vl
vl
sr
@@ -17788,7 +19836,7 @@ jF
jF
jF
jF
-jF
+YC
YC
Wq
ZZ
@@ -17803,33 +19851,30 @@ QT
QT
SP
al
-af
+al
+au
+au
+au
+au
+au
+au
+WY
+oi
oi
oi
Zu
Pk
Pk
Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
af
oi
Zu
-af
-oi
-Zu
-Pk
-Pk
-Pk
-Pk
Pk
Pk
Pk
+af
+oi
+Zu
Pk
Pk
Pk
@@ -17856,6 +19901,9 @@ oi
oi
oi
oi
+oi
+oi
+oi
"}
(30,1,1) = {"
oi
@@ -17884,23 +19932,23 @@ aU
bG
ck
Et
-vl
-vl
+Em
+Vt
dU
vl
Zi
Xx
jF
fx
-vl
-Yc
-Yc
+Zi
+jF
+jF
Yc
Xm
Xm
Xm
Yc
-jF
+Yc
mH
mH
vl
@@ -17920,7 +19968,7 @@ YC
Gk
ZZ
ZI
-Nu
+eW
Tl
OG
ZZ
@@ -17933,34 +19981,34 @@ al
af
oi
oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
+oi
+oi
+oi
+oi
+oi
+oi
+oi
oi
Zu
+Pk
+Pk
+Pk
af
oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
+Zu
+Pk
+Pk
+Pk
+af
+oi
+Zu
+Pk
+Pk
+Pk
+af
+oi
+oi
+oi
oi
oi
oi
@@ -18011,15 +20059,15 @@ GX
GX
GX
Et
-vl
-dw
+Em
+bq
jF
ex
vl
vl
fq
vl
-vl
+Zi
jF
hp
sr
@@ -18028,9 +20076,9 @@ aM
aA
kM
jF
-cG
-Et
-Et
+eo
+uq
+uq
VH
Ix
sr
@@ -18068,23 +20116,23 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
Zu
+Pk
+Pk
+Pk
af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
+Zu
+Pk
+Pk
+Pk
+af
oi
oi
oi
@@ -18134,25 +20182,25 @@ al
al
al
Yc
-aW
+aE
Et
Et
Et
-vl
+CA
xR
jF
sr
Zi
-Xx
+ug
jF
jF
jF
jF
hq
sr
-Et
-Et
-Et
+uq
+uq
+uq
Xx
jF
mI
@@ -18186,35 +20234,35 @@ fu
al
af
oi
-oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+Zu
+Pk
+Pk
+Pk
+af
+oi
+Zu
+Pk
+Pk
+Pk
+af
oi
Zu
+Pk
+Pk
+Pk
af
oi
-Jc
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
+oi
+oi
oi
oi
oi
@@ -18277,7 +20325,7 @@ vl
jF
hB
sr
-xY
+uu
iO
Ns
Xx
@@ -18287,7 +20335,7 @@ qj
qj
pB
jF
-eL
+eu
sC
jF
dw
@@ -18296,7 +20344,7 @@ xu
zE
Bj
DH
-vl
+tJ
YC
Wq
qZ
@@ -18314,34 +20362,34 @@ al
af
oi
oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
oi
-Zu
-af
oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
+oi
+oi
+oi
+oi
+oi
+oi
+Yr
+au
+au
+au
+WY
+oi
+Yr
+au
+au
+au
+WY
+oi
+Yr
+au
+au
+au
+WY
+oi
+oi
+oi
oi
oi
oi
@@ -18399,12 +20447,12 @@ sr
Zi
eN
jF
-fy
+JM
gs
jF
hC
sr
-xY
+uu
iV
Ns
eN
@@ -18441,34 +20489,34 @@ al
af
oi
oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-al
-al
-al
-al
-al
-al
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
oi
oi
oi
@@ -18512,8 +20560,8 @@ oi
Zu
al
al
-Xm
-zJ
+Yc
+RA
Et
qj
qj
@@ -18531,21 +20579,21 @@ jF
jF
hD
sr
-xY
-Ck
+uu
+bv
Ns
Xx
jF
mU
nv
qj
-Et
+kf
Ix
sr
Xx
Xm
vb
-nW
+wr
Vz
Vz
Vz
@@ -18568,34 +20616,34 @@ al
af
oi
oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
oi
-Zu
-af
oi
-Zu
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-Pk
-af
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
oi
oi
oi
@@ -18652,23 +20700,23 @@ jF
sr
vl
vl
-Pl
+EG
vl
vl
jF
hG
sr
-Et
-Et
-Et
+uq
+uq
+uq
Xx
jF
mW
EB
qj
-Et
+uq
jF
-sr
+fm
Xx
Xm
Wq
@@ -18682,8 +20730,8 @@ qZ
ZZ
ZZ
ZI
-gl
-Tl
+aW
+WF
Ph
PT
QU
@@ -18695,34 +20743,34 @@ al
af
oi
oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
oi
-Zu
-af
oi
-Yr
-au
-au
-au
-au
-au
-au
-au
-au
-au
-au
-WY
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
+oi
oi
oi
oi
@@ -18778,9 +20826,9 @@ Et
jF
sr
Zi
-Xx
+If
jF
-fy
+JM
gs
jF
hI
@@ -18793,7 +20841,7 @@ jF
mY
ny
qj
-Et
+uq
PW
vl
Xx
@@ -18804,7 +20852,7 @@ jY
zH
zH
zH
-tY
+Ft
zH
zH
zH
@@ -18835,8 +20883,8 @@ oi
oi
oi
oi
-Zu
-af
+oi
+oi
oi
oi
oi
@@ -18903,7 +20951,7 @@ GX
qj
dD
jF
-ZS
+sr
Zi
Xx
jF
@@ -18918,9 +20966,9 @@ Ix
jF
jF
nd
-Et
-Et
-Et
+uq
+uq
+uq
vl
vl
eN
@@ -18928,12 +20976,12 @@ YC
Wq
qZ
ZI
-zW
-zW
-zW
-zW
-zW
-zW
+UK
+UK
+UK
+UK
+UK
+UK
UK
UK
La
@@ -18942,7 +20990,7 @@ Pn
PY
UK
SI
-Us
+ge
Wz
SP
al
@@ -18962,26 +21010,6 @@ oi
oi
oi
oi
-Zu
-af
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
oi
oi
oi
@@ -18994,9 +21022,29 @@ oi
oi
oi
oi
+Jc
+Yt
+Yt
+Yt
+ai
oi
+Jc
+Yt
+Yt
+Yt
+ai
oi
+Jc
+Yt
+Yt
+Yt
+ai
oi
+Jc
+Yt
+Yt
+Yt
+ai
oi
oi
"}
@@ -19035,10 +21083,10 @@ vl
eR
cR
Qm
-Qm
-Qm
+rG
+Zi
hJ
-Qm
+eR
Qm
Qm
Qm
@@ -19055,7 +21103,7 @@ tV
ZZ
ZZ
ZI
-zW
+UK
Bn
DL
Fu
@@ -19089,8 +21137,6 @@ XH
XH
XH
XH
-Zu
-af
oi
oi
oi
@@ -19101,29 +21147,31 @@ oi
oi
oi
oi
-Jc
-Yt
-Yt
-Yt
-ai
oi
-Jc
-Yt
-Yt
-Yt
-ai
oi
-Jc
-Yt
-Yt
-Yt
-ai
+Zu
+Pk
+Pk
+Pk
+af
oi
-Jc
-Yt
-Yt
-Yt
-ai
+Zu
+Pk
+Pk
+Pk
+af
+oi
+Zu
+Pk
+Pk
+Pk
+af
+oi
+Zu
+Pk
+Pk
+Pk
+af
oi
oi
"}
@@ -19148,13 +21196,13 @@ Zu
al
al
Xm
-GJ
-zJ
+Ci
+Vt
uw
bR
-Vm
-vl
-vl
+QV
+Em
+Em
CA
jF
ez
@@ -19162,11 +21210,11 @@ vl
XI
RU
RU
-RU
-RU
-RU
-RU
-uN
+rD
+Zi
+Zi
+XI
+xa
RU
rD
Xx
@@ -19194,15 +21242,15 @@ Ld
Ig
Il
Qa
-UK
-UK
-UK
-UK
+zW
+zW
+zW
+zW
XH
XH
Zp
Zp
-RA
+zW
YU
VK
So
@@ -19216,8 +21264,8 @@ Lc
Lc
Lc
XH
-Zu
-af
+oi
+oi
oi
oi
oi
@@ -19275,16 +21323,16 @@ Zu
al
al
Xm
-zJ
-zJ
+Vt
+Vt
bh
bV
-Vm
+QV
ct
-vl
+Em
he
jF
-kL
+sr
Zi
Xx
jF
@@ -19309,7 +21357,7 @@ Xm
Wq
qZ
ZI
-zW
+UK
Bt
zC
zC
@@ -19321,7 +21369,7 @@ Lf
MS
Pp
Qd
-UK
+zW
SX
Uu
SX
@@ -19329,8 +21377,8 @@ SX
XH
Zr
xh
-RA
-am
+zW
+xA
am
am
am
@@ -19343,8 +21391,8 @@ pN
Ig
xC
XH
-Zu
-af
+oi
+oi
oi
oi
oi
@@ -19403,8 +21451,8 @@ al
Yc
Yc
tq
-jF
-jF
+YC
+YC
jF
jF
jF
@@ -19416,11 +21464,11 @@ Zi
Xx
jF
fz
-qj
-qj
-Cm
-Et
-ks
+fK
+QB
+DE
+uq
+eo
jF
sr
vl
@@ -19428,7 +21476,7 @@ vl
RU
RU
RU
-uN
+xa
RU
RU
sE
@@ -19436,19 +21484,19 @@ Xm
Wq
qZ
ZI
-zW
+UK
Bz
DR
Fy
GL
GW
-UK
-UK
-UK
-UK
-UK
+zW
+zW
+zW
+zW
+zW
Qi
-UK
+zW
Th
Th
Th
@@ -19456,7 +21504,7 @@ Th
XH
Zp
Zp
-RA
+zW
gT
am
am
@@ -19470,8 +21518,8 @@ LH
Fb
qU
XH
-Zu
-af
+oi
+oi
oi
oi
oi
@@ -19530,11 +21578,11 @@ al
Yc
kj
vl
-jF
-nS
-vl
-vl
-vl
+YC
+xg
+Vt
+Em
+Em
qj
qj
jF
@@ -19542,12 +21590,12 @@ sr
Zi
Xx
jF
-qa
-qj
-jI
-Zy
-Ns
-Xx
+fR
+CC
+Kx
+DE
+uq
+uq
jF
sr
eN
@@ -19563,27 +21611,27 @@ YC
Wq
qZ
Xv
-UK
-UK
-UK
-UK
-UK
-UK
-UK
+zW
+zW
+zW
+zW
+zW
+zW
+zW
HP
Lo
MX
-UK
-UK
-UK
-Ts
+zW
+zW
+zW
+zi
Ts
Ts
Ts
Yg
Zx
Hg
-RA
+zW
SQ
am
Ds
@@ -19597,8 +21645,8 @@ Ug
Ig
Ap
XH
-al
-al
+Yt
+Yt
Yt
Yt
Yt
@@ -19657,9 +21705,9 @@ al
Yc
fy
gs
-jF
-nS
-vl
+YC
+Fa
+Vt
si
Zh
qj
@@ -19669,37 +21717,37 @@ sr
Zi
Xx
jF
-fA
+ZF
qj
-CC
-hK
-Ns
-Xx
+UW
+DE
+uq
+uq
jc
vl
Xx
jF
wE
-Et
+uq
qj
Cm
qj
YC
ir
Ys
-Wq
+vw
ZZ
ZI
-UK
+zW
BF
Ei
FR
GM
UK
Hl
-qL
-qL
-qL
+HW
+HW
+HW
GP
Qn
UK
@@ -19710,18 +21758,18 @@ SX
UK
ZA
gm
-RA
-RA
+zW
+zW
WL
WL
WL
WL
-RA
-RA
+zW
+zW
zO
Lc
Lc
-Lc
+RE
Lc
XH
al
@@ -19785,8 +21833,8 @@ Yc
Yc
Yc
Yc
-jF
-fx
+YC
+bZ
qz
ss
qj
@@ -19796,18 +21844,18 @@ vl
vl
Xx
jF
-fB
-qj
-Rd
-hL
-Ns
-Xx
+cE
+uq
+uq
+uq
+uq
+uq
jF
sr
Xx
jF
fm
-Et
+uq
vI
vI
qj
@@ -19819,8 +21867,8 @@ ZZ
ZI
Ay
BG
-qL
-qL
+HW
+HW
GP
Ha
bz
@@ -19835,21 +21883,21 @@ UK
UK
UK
UK
-bz
+SY
Ig
-RA
+zW
fJ
rY
rY
rY
rY
Sl
-RA
-RA
+zW
+zW
Mx
TE
-RA
-RA
+zW
+zW
XH
WL
WL
@@ -19924,17 +21972,17 @@ Zi
eS
jF
kU
-qj
-qj
-Cw
-Et
-Pi
+uq
+fE
+Cu
+Ek
+fS
jF
sr
vl
lf
vl
-Et
+uq
Zy
MA
qj
@@ -19981,7 +22029,7 @@ Nq
yf
sT
NA
-qL
+HW
sl
XH
al
@@ -20061,17 +22109,17 @@ sr
Xx
jF
hE
-Et
+uq
oe
UI
qj
YC
Iw
-Iu
+JN
Wq
ZZ
ZI
-UK
+zW
BK
Mm
Mm
@@ -20167,38 +22215,38 @@ al
al
Yc
bl
-qj
-qj
-Cm
-Et
-ks
+fK
+bu
+DE
+uq
+eo
jF
eB
Zi
Sj
jF
fC
-gw
-qj
-Cm
-Et
-ks
+fK
+NW
+DE
+uq
+eo
jF
sr
Xx
jF
Ny
-Et
+uq
hK
Zb
qk
YC
Xu
Ys
-Wq
+Rs
ZZ
ZI
-UK
+zW
UK
Ha
Ha
@@ -20224,7 +22272,7 @@ UK
UK
UK
UK
-sW
+iw
yO
ZX
Ig
@@ -20294,24 +22342,24 @@ al
al
Yc
bm
-qj
-jI
-cE
-Ns
-Xx
+CC
+Kx
+DE
+uq
+uq
jF
sr
Zi
-Xx
+ks
jF
-fE
-qj
-jI
-pA
-Ns
-Xx
+fR
+CC
+Kx
+DE
+uq
+uq
jF
-jS
+sr
Xx
jF
YC
@@ -20327,10 +22375,10 @@ lO
mK
MN
BY
-qL
-qL
+HW
+HW
GS
-tj
+rO
zC
zC
zC
@@ -20371,29 +22419,29 @@ af
oi
oi
oi
-Zu
-Pk
-Pk
-Pk
-af
+Yr
+au
+al
+au
+WY
oi
-Zu
-Pk
-Pk
-Pk
-af
+Yr
+au
+al
+au
+WY
oi
-Zu
-Pk
-Pk
-Pk
-af
+Yr
+au
+al
+au
+WY
oi
-Zu
-Pk
-Pk
-Pk
-af
+Yr
+au
+al
+au
+WY
oi
oi
"}
@@ -20420,30 +22468,30 @@ Zu
al
al
Yc
-bn
+ZF
qj
-CC
-Kx
-Ns
-Xx
-dZ
+xZ
+DE
+uq
+uq
+jg
vl
vl
Xx
jF
-fI
+ZF
qj
-CC
-Kx
-Ns
-Xx
+TU
+DE
+uq
+yi
ki
vl
Xx
hp
YC
nC
-Et
+uq
RL
qo
It
@@ -20452,12 +22500,12 @@ YC
fV
lO
mK
-MN
+Ic
Mm
Mm
Mm
Mm
-tj
+zC
zC
IJ
LI
@@ -20473,11 +22521,11 @@ YG
bz
Ki
Gi
-PO
+MD
+no
no
no
no
-BZ
UE
OZ
jk
@@ -20490,7 +22538,7 @@ vT
je
pm
Ig
-Ri
+Pu
XH
al
al
@@ -20498,29 +22546,29 @@ af
oi
oi
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
-Zu
-Pk
-Pk
-Pk
-af
+al
+oi
+oi
+oi
+oi
+oi
+al
+oi
+oi
+oi
+oi
+oi
+al
+oi
+oi
+oi
+oi
+oi
+al
+oi
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
oi
"}
@@ -20547,47 +22595,47 @@ Zu
al
al
Yc
-Bh
-qj
-SH
-cN
-Ns
-Xx
-jF
-sr
-Zi
-Xx
-jF
-fB
-qj
-SH
-cN
-Ns
+jA
+uq
+uq
+uq
+uq
+uq
+jF
+sr
+Zi
Xx
jF
-eL
+bv
+uq
+uq
+uq
+uq
+uq
+jF
+eu
Xx
jm
YC
Fq
-Et
+uq
AE
qj
qj
sR
YC
-iY
+Wq
qZ
vd
-WF
-WF
-WF
-WF
-WF
-WF
-WF
-WF
-WF
+Ys
+Ys
+Ys
+Ys
+Ys
+Ys
+Ys
+Ys
+Ys
bz
RM
wQ
@@ -20608,9 +22656,9 @@ mA
iP
zX
UK
-Ig
+jS
RM
-rO
+zC
zC
Mm
UH
@@ -20621,33 +22669,33 @@ RM
WL
al
al
-af
-oi
-oi
-oi
-Zu
-Pk
-Pk
-Pk
-af
-oi
-Zu
-Pk
-Pk
-Pk
-af
+al
+Yt
+Yt
+Yt
+Yt
+Yt
+al
+Yt
+Yt
+Yt
+Yt
+Yt
+al
+Yt
+Yt
+Yt
+Yt
+Yt
+al
+Yt
+Yt
+Yt
+Yt
+Yt
+al
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
oi
"}
@@ -20674,23 +22722,23 @@ Zu
al
al
Yc
-fK
-qj
-qj
+fS
+uq
+Lp
Cw
-Et
-Pi
+up
+eo
jF
-Jz
+sr
Zi
Xx
jF
-fK
-qj
-qj
-Cw
-Et
-Pi
+fS
+uq
+fE
+NX
+bn
+VO
jF
sr
Xx
@@ -20703,27 +22751,27 @@ qj
qj
sS
YC
-Wq
+ad
qZ
Xv
WF
vb
Vz
Vz
-nW
+wr
Vz
Vz
IR
-WF
-bz
+Ys
+SY
Pq
-qL
-GS
-qL
-qL
+HW
+Db
+HW
+HW
Xd
-XJ
-qL
+HW
+HW
ZB
Il
Rl
@@ -20743,38 +22791,38 @@ UK
UK
bz
nU
-nU
+gU
RM
WL
al
al
-af
-oi
-oi
-oi
-Yr
-au
+al
+al
+al
+al
+al
+al
+al
+al
al
au
-WY
-oi
-Yr
+au
au
al
au
-WY
-oi
-Yr
au
-al
au
-WY
-oi
-Yr
+au
au
al
au
-WY
+au
+au
+au
+au
+al
+oi
+oi
oi
oi
"}
@@ -20824,7 +22872,7 @@ Xx
on
YC
nF
-Et
+uq
qj
qp
qj
@@ -20841,14 +22889,14 @@ Ir
Ir
Ho
ZI
-WF
-BK
-Mm
-Ig
-Ig
-Ig
+Ys
+fb
+zC
+zC
Ig
-Xe
+Mm
+Mm
+kn
XO
Mm
Nv
@@ -20875,15 +22923,15 @@ RM
WL
al
al
-af
-oi
-oi
-oi
-oi
-oi
al
-oi
-oi
+al
+al
+al
+al
+al
+al
+al
+af
oi
oi
oi
@@ -20928,30 +22976,30 @@ Zu
al
al
Yc
-bu
-qj
-qj
-Cm
-Et
-ks
+bv
+fK
+aV
+DE
+uq
+eo
jF
sr
Zi
Xx
jF
-bu
-qj
-qj
-Cm
-Et
-ks
+Bh
+fK
+hf
+DE
+uq
+eo
jF
sr
Xx
-jF
YC
-zJ
-Et
+YC
+SH
+uq
Zy
EB
qj
@@ -20968,15 +23016,15 @@ Zk
Zk
Be
ZI
-WF
-UA
-UA
-UA
-UA
-UA
-UA
-UA
-UA
+Ys
+gh
+gO
+dB
+gh
+gh
+gh
+gh
+gh
et
bz
Ig
@@ -20989,46 +23037,46 @@ lV
iP
zX
UK
-Ig
+lH
RM
sG
Ig
Ig
UK
bz
-nU
+jI
pp
RM
-WL
-al
-al
-al
-Yt
-Yt
-Yt
-Yt
-Yt
-al
-Yt
-Yt
-Yt
-Yt
-Yt
-al
-Yt
-Yt
-Yt
-Yt
+XH
+df
+df
+df
+df
+df
+df
+df
+df
+df
+df
+af
+oi
+Jc
Yt
al
Yt
+ai
+oi
+Jc
Yt
+al
Yt
-Yt
+ai
+oi
+Jc
Yt
al
-oi
-oi
+Yt
+ai
oi
oi
"}
@@ -21056,29 +23104,29 @@ al
al
Yc
bv
-qj
-jI
-cT
-Ns
-Xx
+CC
+Kx
+DE
+uq
+uq
jF
sr
Zi
Xx
jF
fO
-qj
-Bx
-tp
-Ns
-Xx
+CC
+Kx
+DE
+uq
+uq
jF
sr
Xx
xH
zJ
vl
-Et
+uq
Bx
qr
qj
@@ -21097,13 +23145,13 @@ Be
Xv
WF
WB
-Yj
-UB
+ta
+ta
WB
WB
UB
oQ
-UA
+gh
YI
bz
Ki
@@ -21117,45 +23165,45 @@ UE
OZ
jK
Ig
-RM
+OC
UK
Tq
dd
UK
mj
-Mm
+Wt
kn
la
XH
-al
-al
-al
-au
-au
-au
-au
-au
-al
-au
-au
-au
-au
-au
-al
-au
-au
-au
-au
-au
-al
-au
-au
-au
-au
-au
-al
+Bi
+Bi
+Bi
+Bi
+Bi
+Bi
+Bi
+Bi
+Bi
+df
+af
oi
+Zu
+Pk
+Pk
+Pk
+af
+oi
+Zu
+Pk
+Pk
+Pk
+af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
oi
"}
@@ -21182,34 +23230,34 @@ Zu
al
al
Yc
-fI
+ZF
qj
-CC
-cU
-Ns
-Xx
+Zd
+DE
+uq
+uq
rX
vl
vl
Xx
jF
-fI
+ZF
qj
-CC
-hN
-Ns
-Xx
-jg
+Lx
+DE
+uq
+uq
+pA
vl
Xx
Ix
ne
vl
-Et
+uq
AE
qj
qj
-qj
+aP
YC
Wq
qZ
@@ -21230,7 +23278,7 @@ ve
ve
UB
oQ
-UA
+gh
UF
bz
Ki
@@ -21240,7 +23288,7 @@ eG
pT
eG
eG
-PO
+MD
OZ
cv
zC
@@ -21254,35 +23302,35 @@ UK
UK
UK
XH
-al
-al
+Iv
+hl
+pq
+iC
+tu
+tu
+tu
+tu
+Bi
+df
af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
-oi
-oi
-al
-oi
-oi
-oi
-oi
-oi
-al
-oi
-oi
-oi
-oi
-oi
-al
-oi
-oi
-oi
-oi
-oi
-al
-oi
-oi
+Zu
+Pk
+Pk
+Pk
+af
oi
oi
"}
@@ -21310,22 +23358,22 @@ al
al
Yc
fR
-qj
uq
-cV
-Ns
-Xx
+uq
+uq
+uq
+uq
jF
sr
Zi
Xx
jF
-fR
-qj
-SH
-gj
-Ns
-Xx
+qa
+uq
+uq
+uq
+uq
+uq
jF
sL
Xx
@@ -21333,10 +23381,10 @@ Ix
ni
vl
IQ
-Et
-Et
+uq
+uq
IQ
-dD
+lg
YC
Wq
qZ
@@ -21357,7 +23405,7 @@ UB
UB
UB
bp
-UA
+gh
YK
bz
Ki
@@ -21380,36 +23428,36 @@ Iv
Iv
Iv
Iv
+Iv
+Iv
+hl
+OB
+RP
+RP
+RP
+RP
+aQ
+Bi
df
-al
-al
af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
+Zu
+Pk
+Pk
+Pk
+af
oi
-Jc
-Yt
-al
-Yt
-ai
-oi
-Jc
-Yt
-al
-Yt
-ai
-oi
-Jc
-Yt
-al
-Yt
-ai
-oi
-Jc
-Yt
-al
-Yt
-ai
+Zu
+Pk
+Pk
+Pk
+af
oi
oi
"}
@@ -21437,22 +23485,22 @@ al
al
Yc
bB
-qj
-qj
-Cw
-Et
-Pi
+uq
+fE
+uq
+uq
+up
jF
ZS
Zi
Xx
jF
fS
-qj
-qj
-Cw
-Et
-Pi
+uq
+Hd
+fe
+xi
+fR
jF
sr
Xx
@@ -21484,16 +23532,16 @@ WB
WB
UB
Yj
-UA
+gh
hQ
bz
zC
Ig
Ig
-qL
-qL
-qL
-qL
+HW
+HW
+HW
+HW
zC
zC
zC
@@ -21503,21 +23551,21 @@ UK
Iv
cW
Kv
-tu
wd
Ta
Iv
+Or
+OB
+Iv
+hl
+OB
+RP
+RP
+RP
+RP
+RP
+Bi
df
-al
-al
-af
-oi
-oi
-oi
-Zu
-Pk
-Pk
-Pk
af
oi
Zu
@@ -21560,8 +23608,8 @@ oi
oi
oi
Yr
-au
-au
+al
+al
Yc
Yc
jF
@@ -21583,14 +23631,14 @@ jF
jF
sr
eN
-jF
-jF
+YC
+YC
nI
Ix
-jF
+YC
Ix
Ix
-jF
+YC
YC
Wq
lO
@@ -21607,11 +23655,11 @@ WF
TD
Yj
UB
-ve
TD
+ve
UB
Yj
-UA
+gh
YN
BK
kn
@@ -21630,21 +23678,21 @@ Iv
Iv
wW
uF
-uF
ZE
rk
Iv
+Or
+lZ
+Iv
+Iv
+xv
+FK
+FK
+FK
+FK
+FK
+Bi
df
-al
-al
-af
-oi
-oi
-oi
-Zu
-Pk
-Pk
-Pk
af
oi
Zu
@@ -21687,9 +23735,9 @@ oi
oi
oi
oi
-oi
-oi
Zu
+al
+al
Yc
ku
cl
@@ -21738,16 +23786,16 @@ UA
UA
Ux
Ux
-UA
-UA
-UK
-UK
+gh
+gh
+zW
+zW
UL
-UK
-UK
-UK
-UK
-wN
+zW
+zW
+zW
+zW
+DN
wN
wN
wN
@@ -21756,22 +23804,22 @@ UK
Iv
NT
rx
-ph
-rx
+uF
uF
NF
Iv
+Dq
+OB
+Vx
+Iv
+Mn
+tu
+tu
+tu
+tu
+tu
+Bi
df
-al
-al
-af
-oi
-oi
-oi
-Zu
-Pk
-Pk
-Pk
af
oi
Zu
@@ -21814,13 +23862,13 @@ oi
oi
oi
oi
-oi
-oi
Zu
-Yc
-kl
-VY
+al
+al
+Xm
+cf
VY
+tL
dj
dN
Ix
@@ -21836,7 +23884,7 @@ XI
RU
vl
jT
-uN
+xa
RU
RU
RU
@@ -21845,7 +23893,7 @@ zJ
sr
Zi
Vm
-jF
+YC
Wq
qZ
ZI
@@ -21873,7 +23921,7 @@ UE
UE
CJ
Kw
-UK
+zW
sJ
UE
UE
@@ -21883,22 +23931,22 @@ UK
Iv
oq
rx
-ph
-rx
+uF
uF
Xp
Iv
+iK
+OB
+Ju
+Iv
+OB
+RP
+RP
+RP
+RP
+RP
+Bi
df
-al
-al
-af
-oi
-oi
-oi
-Zu
-Pk
-Pk
-Pk
af
oi
Zu
@@ -21941,11 +23989,11 @@ oi
oi
oi
oi
-oi
-oi
Zu
-Yc
-cf
+al
+al
+Xm
+zl
VY
VY
VY
@@ -21958,12 +24006,12 @@ jF
fU
fU
gQ
-xi
-xi
-xi
+YC
+YC
+YC
ji
-xi
-xi
+YC
+YC
li
Ix
Ix
@@ -21998,9 +24046,9 @@ ZH
fQ
UE
Sr
-CJ
+mt
Ss
-UK
+zW
CQ
CQ
mp
@@ -22012,20 +24060,20 @@ Wb
rx
uF
uF
-uF
AM
Iv
+GE
+OB
+Vd
+Iv
+OB
+RP
+RP
+RP
+RP
+aQ
+Bi
df
-al
-al
-af
-oi
-oi
-oi
-Zu
-Pk
-Pk
-Pk
af
oi
Zu
@@ -22068,15 +24116,15 @@ oi
oi
oi
oi
-oi
-oi
Zu
+al
+al
Yc
UQ
VY
+cZ
VY
-VY
-Ju
+dN
jF
eK
Zi
@@ -22085,20 +24133,20 @@ jF
jF
jF
jF
-xi
+YC
ia
ix
Si
jU
-xi
+YC
vl
nm
zY
YC
IS
-Et
-Et
-dD
+uq
+uq
+lg
YC
Gg
qZ
@@ -22127,7 +24175,7 @@ UK
UK
UK
UK
-UK
+zW
UK
UK
UK
@@ -22138,21 +24186,21 @@ Iv
wF
yW
uF
-pX
us
xV
Iv
+VP
+OB
+XJ
+Iv
+eF
+eF
+OB
+gD
+FK
+FK
+Bi
df
-df
-al
-af
-oi
-oi
-oi
-Zu
-Pk
-Pk
-Pk
af
oi
Zu
@@ -22195,16 +24243,16 @@ oi
oi
oi
oi
-oi
-oi
Zu
-Yc
+al
+al
+Xm
cj
-cp
+VY
cZ
-dk
-en
-jF
+VY
+dN
+Ix
sr
Zi
fg
@@ -22212,12 +24260,12 @@ jF
fW
gA
gV
-xi
+YC
uQ
Qf
Si
-uQ
-xi
+sw
+YC
lm
nn
Ac
@@ -22225,7 +24273,7 @@ Ix
qj
qj
qj
-Et
+uq
YC
Wq
qZ
@@ -22269,17 +24317,17 @@ Iv
Iv
Iv
Iv
+KI
Iv
+Iv
+Iv
+Iv
+yn
+Bi
+Bi
+Bi
+Bi
df
-al
-af
-oi
-oi
-oi
-Zu
-Pk
-Pk
-Pk
af
oi
Zu
@@ -22322,29 +24370,29 @@ oi
oi
oi
oi
-oi
-oi
Zu
-Yc
-Yc
-Xm
-Xm
+al
+al
Xm
-Yc
-Yc
-eL
+eb
+VY
+VY
+VY
+ND
+Ix
+sr
Zi
fk
fr
vl
vl
gX
-xi
+YC
hT
Qf
Si
-uQ
-xi
+sw
+YC
lu
nn
oO
@@ -22352,7 +24400,7 @@ Ix
pJ
qC
qj
-Et
+uq
Xm
Wq
qZ
@@ -22369,8 +24417,8 @@ WF
TD
Yj
UB
-ve
TD
+ve
UB
Yj
TD
@@ -22390,42 +24438,42 @@ Ot
Uf
Iv
By
+BB
uF
-dH
-Iv
-Db
-mt
-bY
-Iv
+BB
+BB
+BB
+BB
+BB
+se
+nL
+Jz
+id
+uF
+Bi
+df
+df
+df
df
-al
-al
-Yt
-ai
-oi
-Zu
-Pk
-Pk
-Pk
af
oi
-Zu
-Pk
-Pk
-Pk
-af
+Yr
+au
+au
+au
+WY
oi
-Zu
-Pk
-Pk
-Pk
-af
+Yr
+au
+au
+au
+WY
oi
-Zu
-Pk
-Pk
-Pk
-af
+Yr
+au
+au
+au
+WY
oi
oi
"}
@@ -22449,16 +24497,16 @@ oi
oi
oi
oi
-oi
-oi
-Yr
-au
-au
-au
-au
-au
+Zu
+al
al
Yc
+en
+gi
+VY
+VY
+TP
+jF
uK
Ve
fp
@@ -22466,12 +24514,12 @@ jF
fX
gB
gZ
-xi
+YC
ic
Qf
jl
jW
-xi
+YC
xP
vl
nN
@@ -22479,7 +24527,7 @@ Ix
pK
qD
qj
-Et
+uq
tX
Wq
lO
@@ -22517,46 +24565,30 @@ uF
HU
Iv
ZK
+KE
uF
uF
-Rw
-rx
uF
-ph
-Iv
+uF
+uF
+uF
+uF
+uF
+uF
+uF
+BR
+Bi
df
al
al
al
af
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
oi
-"}
-(67,1,1) = {"
oi
oi
oi
@@ -22571,6 +24603,8 @@ oi
oi
oi
oi
+"}
+(67,1,1) = {"
oi
oi
oi
@@ -22584,21 +24618,35 @@ oi
oi
oi
oi
-Zu
-Yc
-Xm
-Xm
-Xm
+oi
+oi
+oi
+SP
+SP
+fu
+fu
+fu
SP
+Yc
+YC
+YC
+Jo
+QS
+YC
+YC
+YC
Ys
Ys
Ys
-vD
-vD
-vD
-vD
-vD
-xi
+Ys
+Ys
+Ys
+Ys
+Ys
+Ys
+Ys
+Ys
+YC
lw
vl
Ae
@@ -22606,7 +24654,7 @@ YC
pM
qF
qj
-Et
+uq
tW
Wq
lO
@@ -22645,45 +24693,29 @@ vX
Iv
Zg
uF
-pq
-Iv
-OB
-aQ
-eF
-Iv
-df
-df
+uF
+sY
+us
+Mi
+us
+us
+us
+us
+zd
+uF
+Rw
+Bi
df
al
+al
+al
af
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
-Zu
-Pk
-Pk
-Pk
-af
oi
oi
-"}
-(68,1,1) = {"
oi
oi
oi
@@ -22698,6 +24730,11 @@ oi
oi
oi
oi
+"}
+(68,1,1) = {"
+oi
+oi
+oi
oi
oi
oi
@@ -22711,17 +24748,28 @@ oi
oi
oi
oi
-Zu
-al
-al
-al
-al
SP
+oF
+PM
+PM
+PM
+PM
+PM
+PM
+PM
+ZZ
+ZZ
+PM
+PM
+Fi
+WF
+qB
+Wu
fY
Ww
hk
tz
-Ys
+WF
Su
Sx
Ys
@@ -22733,7 +24781,7 @@ xr
qj
qj
qj
-Ns
+uq
Xm
Wq
qZ
@@ -22771,8 +24819,9 @@ uF
KG
Iv
ZK
+mV
uF
-ph
+vS
Iv
Iv
Iv
@@ -22780,40 +24829,25 @@ Iv
Iv
Iv
Iv
+or
+Iv
+Bi
df
al
-af
-oi
-Zu
-Pk
-Pk
-Pk
-af
-oi
-Zu
-Pk
-Pk
-Pk
-af
-oi
-Zu
-Pk
-Pk
-Pk
-af
-oi
-Zu
-Pk
-Pk
-Pk
-af
-oi
-oi
-"}
-(69,1,1) = {"
-oi
-oi
-oi
+al
+al
+al
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+Yt
+ai
oi
oi
oi
@@ -22823,6 +24857,8 @@ oi
oi
oi
oi
+"}
+(69,1,1) = {"
oi
oi
oi
@@ -22838,16 +24874,28 @@ oi
oi
oi
oi
-Yr
-au
-al
-al
-al
-SP
+oi
+fu
fZ
+ZZ
+UN
+WF
+tZ
+yN
+fI
+yN
+md
+WF
+yR
+ZZ
+Wy
+WF
+cA
+QW
+ZZ
+ZZ
qZ
-qZ
-qZ
+ZZ
dq
ZZ
Xv
@@ -22857,12 +24905,12 @@ RS
np
Al
YC
-cG
-Et
-Et
-Ns
+eo
+up
+NX
+NX
YC
-jQ
+Wq
qZ
Xv
WF
@@ -22907,42 +24955,27 @@ Ko
To
UX
Iv
+CS
+uF
+CS
+Bi
df
al
+al
+df
+df
+df
+df
+df
+df
+bC
+bC
+bC
+bC
+bC
+al
af
oi
-Zu
-Pk
-Pk
-Pk
-af
-oi
-Zu
-Pk
-Pk
-Pk
-af
-oi
-Zu
-Pk
-Pk
-Pk
-af
-oi
-Zu
-Pk
-Pk
-Pk
-af
-oi
-oi
-"}
-(70,1,1) = {"
-oi
-oi
-oi
-oi
-oi
oi
oi
oi
@@ -22951,6 +24984,8 @@ oi
oi
oi
oi
+"}
+(70,1,1) = {"
oi
oi
oi
@@ -22967,15 +25002,28 @@ oi
oi
oi
oi
-Zu
-al
-al
-SP
+fu
+fZ
ga
+ga
+bY
+FE
+yQ
+ee
+Bd
+wm
+LW
+vR
+vR
+PP
+WF
+Dx
+qZ
ZZ
ZZ
-bL
-Ys
+qZ
+ZZ
+WF
bk
ZI
Ys
@@ -23011,7 +25059,7 @@ Qv
UA
UA
Iv
-Yw
+By
mQ
ma
Kv
@@ -23034,42 +25082,27 @@ uF
uF
ph
Iv
+yM
+uF
+JH
+Bi
+df
+al
+al
df
+Vo
+Ch
+Ch
+Ch
+Dv
+bC
+OK
+Vq
+Vq
+bC
al
af
oi
-Yr
-au
-au
-au
-WY
-oi
-Yr
-au
-au
-au
-WY
-oi
-Yr
-au
-au
-au
-WY
-oi
-Yr
-au
-au
-au
-WY
-oi
-oi
-"}
-(71,1,1) = {"
-oi
-oi
-oi
-oi
-oi
oi
oi
oi
@@ -23078,6 +25111,8 @@ oi
oi
oi
oi
+"}
+(71,1,1) = {"
oi
oi
oi
@@ -23094,19 +25129,32 @@ oi
oi
oi
oi
-Zu
-al
-al
SP
+fZ
+ga
+ga
+bY
+aY
+uy
+wz
+Gu
+xU
+LW
+vR
+vR
+PP
+WF
+qI
+OT
gb
-ZZ
-ZZ
-tL
-Ys
+JD
+MO
+MO
+WF
Wq
tU
Vz
-nW
+wr
Vz
Vz
Vz
@@ -23127,12 +25175,12 @@ Vz
Vz
EA
Jf
-nW
+wr
Cj
ZZ
ZZ
Vz
-nW
+wr
ZZ
ZZ
Cj
@@ -23142,7 +25190,7 @@ rx
uF
uF
uF
-MQ
+ph
Iv
ru
YT
@@ -23161,8 +25209,25 @@ uF
AB
MQ
Iv
+CS
+us
+CS
+Bi
df
al
+al
+df
+Yn
+bd
+qq
+bd
+gg
+bC
+Px
+Vq
+Vq
+Ke
+al
af
oi
oi
@@ -23173,23 +25238,6 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
"}
(72,1,1) = {"
oi
@@ -23208,28 +25256,28 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
SP
-ge
-qZ
-hl
-bx
-Ys
+tp
+ga
+ga
+bY
+iA
+bL
+wz
+bN
+jD
+LW
+vR
+vR
+PP
+WF
+WF
+WF
+WF
+WF
+WF
+WF
+WF
Wq
qZ
ZZ
@@ -23269,7 +25317,7 @@ uF
uF
uF
uF
-uF
+CT
YR
uF
uF
@@ -23286,43 +25334,28 @@ YP
uF
uF
uF
-FL
-Iv
-df
-al
-al
-Yt
-Yt
-Yt
-Yt
-ai
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-"}
-(73,1,1) = {"
-oi
-oi
-oi
-oi
+FL
+aw
+aw
+aw
+aw
+Bi
+df
+al
+al
+df
+gg
+qq
+yL
+qq
+Gc
+Tg
+ry
+Go
+Vq
+Ke
+al
+af
oi
oi
oi
@@ -23332,6 +25365,8 @@ oi
oi
oi
oi
+"}
+(73,1,1) = {"
oi
oi
oi
@@ -23348,16 +25383,29 @@ oi
oi
oi
oi
-Zu
-al
-al
SP
-gh
+fZ
+ga
+ga
+bY
+iA
+Ri
+bE
+fB
+jD
+LW
+vR
+vR
ZZ
-hm
-qu
-Ys
-Wq
+LS
+Uy
+Vz
+Vz
+wr
+Vz
+Vz
+Vz
+rN
qZ
jY
zH
@@ -23365,17 +25413,17 @@ zH
zH
zH
zH
-tY
+Ft
zH
zH
zH
zH
zH
rf
-vg
-zH
+LC
+iY
zH
-tY
+Ft
ZZ
zH
ZZ
@@ -23396,7 +25444,7 @@ uF
uF
uF
uF
-uF
+CT
uF
sY
us
@@ -23414,14 +25462,26 @@ tF
oA
Mi
uT
-Iv
-bC
-bC
+aw
+As
+As
+As
+As
bC
Ke
-Ke
bC
bC
+gg
+qq
+yJ
+qq
+qq
+pw
+ry
+Go
+Vq
+Ke
+al
af
oi
oi
@@ -23432,18 +25492,6 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
"}
(74,1,1) = {"
oi
@@ -23462,29 +25510,29 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
-SP
-Ys
-Ys
-Ys
-Ys
-Ys
-Gg
+fu
+fZ
+ga
+ga
+bY
+iA
+wz
+wz
+wz
+jD
+LW
+vR
+vR
+ZZ
+ZZ
+rC
+zH
+zH
+zH
+zH
+zH
+zH
+Xw
qZ
ZI
Tm
@@ -23535,20 +25583,32 @@ uF
uF
uF
uF
-jr
-Iv
+BR
Iv
Iv
Iv
Iv
Iv
+aw
Dc
As
eV
-XB
-uk
-Ii
+Vq
+Vq
+Vq
+ox
+As
+gg
+qq
+dz
+qq
+qq
+pw
+ry
+Go
+Vq
bC
+al
af
oi
oi
@@ -23559,18 +25619,6 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
"}
(75,1,1) = {"
oi
@@ -23589,37 +25637,37 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
-SP
-gi
-tJ
-ho
-tJ
-Tl
-KT
+fu
+fZ
+ZZ
+ZZ
+bY
+iA
+wz
+wz
+wz
+jD
+LW
+ZZ
+ZZ
+Wy
+WF
+WF
+WF
+WF
+WF
+WF
+WF
+WF
+kX
ZZ
jZ
Tm
-BE
-TQ
+NU
TQ
og
SL
+SL
kA
SL
SL
@@ -23630,7 +25678,7 @@ NJ
JK
CE
Tm
-Oe
+yR
qZ
ZZ
WF
@@ -23662,20 +25710,32 @@ rx
WN
rE
uF
-xZ
+ph
YP
zT
Ko
To
UX
-Iv
+aw
Ng
As
KP
-PU
-uk
+Vq
+Vq
+Vq
tP
-Ke
+As
+gg
+qq
+jr
+qq
+RF
+pw
+ry
+Go
+Vq
+bC
+al
af
oi
oi
@@ -23686,18 +25746,6 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
"}
(76,1,1) = {"
oi
@@ -23716,37 +25764,37 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
SP
+tp
+ZZ
+ZZ
+WF
+nb
+ho
+cp
+ho
+ht
+lO
+ZZ
+ZZ
+PP
+dk
+WF
+JA
dY
-qZ
-qZ
-qZ
-Ys
+Jq
+JS
+Jq
+WF
Tl
ju
Tl
Tm
TQ
TQ
-TQ
oh
ld
+SL
wj
wj
wj
@@ -23783,7 +25831,7 @@ vv
uF
ph
Iv
-uF
+JE
zf
uF
WN
@@ -23795,27 +25843,27 @@ uF
uF
uF
ph
-Iv
+aw
gd
Pc
Vq
-Vq
+ly
+ly
Vq
tP
-Ke
-af
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
+As
+Yn
+QJ
+qq
+QJ
+gg
+bC
+Px
+Vq
+Vq
+bC
+al
+af
oi
oi
oi
@@ -23843,28 +25891,28 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
-SP
-gk
+fu
+fZ
+ZZ
+ZZ
+EV
+iA
+wz
+wz
+wz
+jD
+Ff
+ZZ
+ZZ
+Wy
+WF
+WF
+lO
+lO
ZZ
ZZ
ZZ
-ie
+PX
ZZ
ZZ
kd
@@ -23872,8 +25920,8 @@ Tm
Vr
Vr
Vr
-Vr
BP
+SL
wj
wj
wj
@@ -23900,7 +25948,7 @@ Wq
qZ
ZI
YP
-YZ
+Lg
ZR
ZR
ZR
@@ -23922,14 +25970,26 @@ uF
uF
AB
MQ
-Iv
+aw
As
As
+hF
+mc
+nG
Vq
+oI
+As
+wS
+Ch
+Ch
+Ch
+pQ
+bC
+OK
Vq
Vq
-aP
-Ke
+bC
+al
af
oi
oi
@@ -23940,18 +26000,6 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
"}
(78,1,1) = {"
oi
@@ -23970,23 +26018,23 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
-SP
+fu
+fZ
+ga
+ga
+EV
+iA
+wz
+wz
+wz
+jD
+Ff
+vR
+vR
+PP
+Tl
+ZZ
+lO
lO
gC
gC
@@ -23994,13 +26042,13 @@ gC
ZZ
ZZ
ZZ
-iC
+lO
Tm
lD
Vr
-WQ
-ol
+Vr
BP
+SL
wj
wj
wj
@@ -24017,9 +26065,9 @@ ZI
WF
WF
WF
+cU
ZZ
-ZZ
-ZZ
+rF
ZZ
pC
WF
@@ -24049,14 +26097,26 @@ uF
uF
uF
FL
-Iv
+aw
wP
tP
Vq
+mw
+mw
+Vq
+pz
+As
+bC
+bC
+bC
+bC
+bC
+bC
+Vq
Vq
Vq
-sx
bC
+al
af
oi
oi
@@ -24067,18 +26127,6 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
"}
(79,1,1) = {"
oi
@@ -24097,23 +26145,23 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
SP
+fZ
+ga
+ga
+EV
+iA
+uS
+Dz
+BZ
+jD
+Ff
+vR
+vR
+PP
+Tl
+ZZ
+lO
lO
hr
hr
@@ -24125,7 +26173,6 @@ gl
Tm
WU
Vr
-Vr
om
pP
Vr
@@ -24133,13 +26180,14 @@ Vr
Vr
Vr
Vr
+Vr
mr
Vr
Vr
Vr
mr
ZZ
-ZZ
+lO
Xv
WF
dJ
@@ -24148,7 +26196,7 @@ ZZ
ZZ
zH
zH
-zH
+Wd
WF
Wq
qZ
@@ -24176,27 +26224,27 @@ tF
oA
Mi
uT
-Iv
+aw
aG
Cs
Vq
Vq
Vq
-uX
+Vq
+ql
+As
+pw
+JY
+pw
+qS
+pw
+gp
+pw
+pw
+pw
bC
al
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-Yt
-ai
+af
oi
oi
oi
@@ -24224,23 +26272,23 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
-fu
+SP
+tp
+ga
+ga
+EV
+iA
+VT
+wz
+bN
+jD
+Ff
+vR
+vR
+PP
+Tl
+ZZ
+lO
Ev
gL
ZZ
@@ -24252,8 +26300,7 @@ kg
Tm
kG
Vr
-Vr
-or
+om
pP
Vr
Vr
@@ -24265,8 +26312,9 @@ Vr
Vr
Vr
Vr
+Vr
ZZ
-ZZ
+lO
ZI
WF
WF
@@ -24298,47 +26346,32 @@ uF
uF
uF
CM
-Iv
-Iv
-Iv
-Iv
-Iv
-Iv
+aw
+aw
+aw
+aw
+aw
+aw
lQ
lQ
pU
JI
As
lQ
-bC
-bC
-bC
-Ke
-Ke
-Ke
-bC
-Ke
-Ke
-Ke
-bC
-bC
-al
-af
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-"}
-(81,1,1) = {"
-oi
-oi
-oi
-oi
+As
+As
+pw
+pw
+Kj
+ay
+pw
+pw
+pw
+pw
+pw
+bC
+al
+af
oi
oi
oi
@@ -24348,6 +26381,8 @@ oi
oi
oi
oi
+"}
+(81,1,1) = {"
oi
oi
oi
@@ -24364,24 +26399,37 @@ oi
oi
oi
oi
-Zu
-al
-al
-fu
+SP
+fZ
+ga
+ga
+EV
+aY
+bx
+wz
+FW
+xU
+Ff
+vR
+vR
+PP
+Tl
+ZZ
+lO
Ev
ZZ
ZZ
ZZ
-uZ
+lO
vR
ZZ
ko
Tm
Qt
Vr
-WQ
-ow
+Vr
BP
+SL
wj
wj
wj
@@ -24393,11 +26441,11 @@ TQ
TQ
MU
Wq
-ZZ
+lO
ZZ
aT
ZZ
-Vb
+aB
Vb
WF
WF
@@ -24412,7 +26460,7 @@ uF
uF
uF
uF
-uF
+CT
YR
Ue
BB
@@ -24425,7 +26473,7 @@ uF
uF
uF
ph
-Iv
+aw
Vq
dn
FX
@@ -24441,13 +26489,13 @@ OH
As
XK
WV
-HG
-pw
-Gz
+hi
+ar
pw
pw
pw
pw
+Nb
bC
al
af
@@ -24478,23 +26526,23 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
fu
+fZ
+ga
+ga
+EV
+Ps
+cN
+sP
+dZ
+hg
+Ff
+vR
+vR
+PP
+Tl
+ZZ
+lO
Ev
gP
ZZ
@@ -24507,8 +26555,8 @@ Tm
Vr
Vr
Vr
-Vr
BP
+SL
wj
wj
wj
@@ -24520,12 +26568,12 @@ JK
wj
MU
Wq
-ZZ
+lO
ZZ
ZZ
ZZ
LU
-NN
+XW
WF
WF
WF
@@ -24539,7 +26587,7 @@ uF
uF
uF
uF
-uF
+CT
uF
uF
uF
@@ -24552,7 +26600,7 @@ uF
uF
uF
pe
-Iv
+aw
Vq
dn
qS
@@ -24568,14 +26616,14 @@ dg
As
MB
Vq
-HG
-pw
+hi
+ar
pw
pw
pw
pw
pw
-bC
+Ke
al
af
oi
@@ -24605,24 +26653,24 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
-SP
-dY
+fu
+fZ
+ZZ
+UN
+WF
+wY
+yN
+hN
+yN
+md
+WF
+yR
+ZZ
+Wy
+WF
+Wc
+lO
+lO
tM
tM
tM
@@ -24633,9 +26681,9 @@ kq
Tm
TQ
TQ
-TQ
oz
BV
+SL
wj
wj
wj
@@ -24648,7 +26696,7 @@ wj
MU
Wq
qZ
-ZI
+xk
WF
WF
WF
@@ -24679,7 +26727,7 @@ uF
uF
uF
qf
-Iv
+aw
Nw
BU
uC
@@ -24688,7 +26736,7 @@ pw
Vq
pw
pw
-uS
+pw
pw
pw
Nc
@@ -24696,13 +26744,13 @@ As
UY
WV
Kd
-JB
-pw
-pw
+Cp
pw
+Ex
+BC
pw
dW
-bC
+Ke
al
af
Wf
@@ -24732,38 +26780,38 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
SP
+Fi
+ge
+ge
+ge
+ge
+ge
+ge
+ge
+ge
+ge
+ge
+ge
+Fi
+WF
+LX
+lO
gl
-qZ
-qZ
-qZ
+rb
+rb
+rb
ih
-iC
+lO
lO
QR
Tm
-BE
-TQ
+NU
TQ
oH
SL
-qJ
+SL
+kI
SL
SL
SL
@@ -24771,7 +26819,7 @@ vk
Tm
IA
JK
-CE
+hv
Tm
Gg
qZ
@@ -24797,7 +26845,7 @@ Ym
Iv
WT
Zo
-Mi
+fs
Oz
Oz
Zq
@@ -24806,7 +26854,7 @@ qA
es
Oz
zR
-Iv
+aw
cs
hi
pw
@@ -24815,7 +26863,7 @@ pw
AX
pw
pw
-Gu
+pw
ST
pw
op
@@ -24829,7 +26877,7 @@ pw
TA
pw
kv
-bC
+Ke
al
af
Wf
@@ -24859,22 +26907,22 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
-al
-al
+SP
+SP
+fu
+fu
+SP
+SP
+fu
+fu
+fu
+SP
+SP
+fu
+fu
+SP
+SP
+SP
SP
SP
WF
@@ -24891,7 +26939,7 @@ Tm
Tm
Tm
Tm
-rV
+oY
tb
ej
sb
@@ -24906,9 +26954,9 @@ ZI
WF
WF
WF
+cU
ZZ
-ZZ
-ZZ
+Jp
ZZ
pC
WF
@@ -24928,12 +26976,12 @@ Iv
Iv
Iv
Iv
-Iv
-Iv
-Iv
-Iv
-Iv
-Iv
+aw
+aw
+aw
+aw
+aw
+aw
cQ
jb
JB
@@ -24942,12 +26990,12 @@ pw
me
pw
pw
-QB
+pw
pw
pw
pw
zL
-Yk
+Po
Yk
Yk
uC
@@ -24991,19 +27039,19 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
Zu
al
al
al
-df
+al
+al
+al
+al
+al
+al
+al
+al
+Qx
jw
gz
EQ
@@ -25029,7 +27077,7 @@ SL
Tm
Gq
qZ
-GY
+ZI
WF
Jn
YH
@@ -25042,7 +27090,7 @@ WF
Wq
qZ
tU
-nW
+wr
Vz
ZZ
ZZ
@@ -25074,7 +27122,7 @@ VN
pw
pw
zL
-pw
+ar
pw
pw
pw
@@ -25083,7 +27131,7 @@ pw
Np
pw
Sc
-Ke
+bC
al
af
Wf
@@ -25118,23 +27166,23 @@ oi
oi
oi
oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-oi
-Zu
+Yr
+au
+au
+au
+au
+au
+au
+au
al
al
al
-df
-eb
-eb
-eb
-eb
+al
+Qx
+Ie
+Ie
+Ie
+Ie
Oy
tG
Ie
@@ -25201,7 +27249,7 @@ lb
pw
pw
lG
-pw
+ar
pw
pw
pw
@@ -25210,7 +27258,7 @@ pw
cg
pw
pw
-Ke
+bC
al
af
Wf
@@ -25257,16 +27305,16 @@ Yr
au
au
au
-df
-gK
-TP
-wY
-ND
+Qx
+KH
+Ie
+Ie
+Ie
Tm
jy
Ie
kS
-Ie
+AC
Ie
hA
oW
@@ -25274,7 +27322,7 @@ BX
qP
qP
qP
-qP
+JK
qP
qP
qP
@@ -25287,7 +27335,7 @@ ZI
WF
Jn
YH
-ZZ
+Es
WF
Qw
NN
@@ -25296,30 +27344,30 @@ WF
Xk
NN
NN
+Ea
zH
+SN
zH
zH
-zH
-zH
-tY
-zH
+Ft
+Ea
NN
NN
zH
Xw
qZ
Xv
-As
+Id
km
-Vq
-Vq
-Vq
+Go
+Go
+Go
cz
Vq
Vq
-tP
+Go
dT
-tP
+Go
Vq
Vq
Vq
@@ -25329,15 +27377,15 @@ JB
pw
Ke
pw
-pw
-pw
-pw
-pw
-pw
-pw
-pw
-pw
-Ke
+cg
+cg
+qO
+ty
+ty
+ty
+ty
+ty
+bC
al
al
Yt
@@ -25384,12 +27432,12 @@ oi
oi
oi
oi
-df
-df
-df
-df
-df
Qx
+Ie
+Ie
+Ie
+Qg
+Tm
jz
Ie
xj
@@ -25399,9 +27447,9 @@ Au
oW
BX
qT
-ra
+zM
tn
-kf
+JK
vo
wx
ra
@@ -25449,20 +27497,20 @@ ka
XC
Ll
Mv
-XM
+Vq
Go
YM
qS
Cn
-As
+Id
vU
pw
-Jl
pw
-Wd
-Rf
-Rf
-Rf
+sx
+mP
+Vq
+Vq
+Vq
Uj
bC
al
@@ -25511,16 +27559,16 @@ oi
oi
oi
oi
-oi
-oi
-oi
-Zu
-al
Qx
+Pg
+dL
+QA
+Ie
+Tm
jC
Ie
Yo
-Ie
+AC
Ie
Au
oW
@@ -25528,7 +27576,7 @@ BX
ra
rW
tr
-tZ
+JK
vK
wA
ra
@@ -25568,25 +27616,25 @@ yZ
KW
KW
ce
-As
+Id
Ke
-As
+Id
Di
eD
cC
-As
-As
+Id
uj
Vq
+Vq
bA
Oj
Sc
-As
+Id
BC
pw
-FB
+pw
HR
-iT
+tT
sF
sF
sF
@@ -25638,24 +27686,24 @@ Yt
Yt
ai
oi
-oi
-oi
-oi
-Zu
-al
Qx
-jE
+Tm
+Tm
+Tm
+HC
+Tm
+jG
Ie
kT
+js
Ie
-Ie
-Au
+SS
oW
BX
rj
rj
rj
-rj
+JK
rj
rj
rj
@@ -25690,35 +27738,35 @@ Br
WX
qZ
ZI
-As
+Id
Ke
Ke
PB
-As
-As
-Kb
-gh
-CN
-WF
-CN
-Vz
-As
+Id
+Id
+Su
+Ys
+KV
+SM
+KV
+Ys
+Id
Ke
PB
Ke
Ke
-As
-As
-As
-As
-As
-As
-iT
-Mr
-Yq
-Yq
+Id
+Id
+Id
+Id
+Id
+Id
+tT
+Li
+Li
+Li
vH
-iT
+tC
Li
hX
Li
@@ -25765,13 +27813,13 @@ Pk
Pk
af
oi
-oi
-oi
-oi
-Zu
-al
Qx
-jG
+jE
+JC
+Eq
+LV
+Oy
+tG
Ie
Ie
Ie
@@ -25807,13 +27855,13 @@ Ul
RN
jo
RI
-FE
+RI
RI
Ag
gc
Yb
YL
-Br
+PV
Wq
qZ
tU
@@ -25821,7 +27869,7 @@ Vz
Vz
Vz
Vz
-nW
+wr
Vz
ZZ
ZZ
@@ -25829,13 +27877,13 @@ ZZ
ZZ
ZZ
ZZ
-nW
+wr
Vz
Vz
ZZ
Vz
Vz
-nW
+wr
Vz
Vz
Vz
@@ -25892,12 +27940,12 @@ Pk
Pk
af
oi
-oi
-oi
-oi
-Zu
-al
-Qx
+SR
+tG
+LV
+tG
+yp
+Tm
jJ
jv
kY
@@ -25934,13 +27982,13 @@ gc
gc
WJ
RI
-FE
+RI
RI
oJ
gc
Vw
YL
-Br
+PV
Wq
qZ
qZ
@@ -26019,13 +28067,13 @@ Pk
Pk
af
oi
-oi
-oi
-oi
-Zu
-al
-Qx
-Qx
+SR
+Cq
+LV
+Cq
+eM
+Tm
+Tm
Tm
Tm
Tm
@@ -26049,11 +28097,11 @@ ZI
WF
Br
ZQ
-Cf
-Cf
+Yp
+Yp
ZQ
-Cf
-Cf
+Yp
+Yp
ZJ
ZQ
YL
@@ -26070,7 +28118,8 @@ YL
Br
KT
zH
-tY
+Ft
+SN
zH
zH
zH
@@ -26079,10 +28128,9 @@ zH
zH
zH
zH
-zH
-tY
+Ft
Ks
-zH
+Kf
OU
ZZ
ZZ
@@ -26146,13 +28194,13 @@ Pk
Pk
af
oi
-oi
-oi
-oi
-Zu
-al
-al
-Qx
+SR
+Cq
+LV
+Cq
+LV
+IL
+Tm
kx
Mc
lM
@@ -26192,8 +28240,8 @@ kF
Km
Fl
gc
-Yb
-YL
+TT
+gF
Br
Br
Br
@@ -26223,7 +28271,7 @@ iT
Td
iT
FD
-BS
+Li
Li
tB
uB
@@ -26273,13 +28321,13 @@ Pk
Pk
af
oi
-oi
-oi
-oi
-Zu
-al
-al
-SR
+Qx
+xm
+LV
+Cq
+LV
+De
+Tm
SL
hh
EJ
@@ -26331,11 +28379,11 @@ ok
RK
gc
gN
-Cf
-Cf
+Yp
+Yp
bb
-Cf
-Cf
+Yp
+Yp
Br
EM
Li
@@ -26350,10 +28398,10 @@ BA
Wi
Wi
Cx
-Li
-Li
+fh
+Bu
vB
-iT
+tC
Li
sA
Li
@@ -26400,13 +28448,13 @@ Pk
Pk
af
oi
-oi
-oi
-oi
-Zu
-al
-al
SR
+tG
+LV
+tG
+LV
+KX
+Tm
SL
hh
lN
@@ -26414,7 +28462,7 @@ yo
SL
Tm
SL
-Au
+ha
sg
tK
Au
@@ -26440,10 +28488,10 @@ Yb
GA
YY
Ej
-Cf
-Cf
+Yp
+Yp
bb
-Cf
+Yp
ZQ
Ub
Yb
@@ -26480,7 +28528,7 @@ ou
vu
Ih
VQ
-iT
+tC
tC
tC
tC
@@ -26527,13 +28575,13 @@ Pk
Pk
af
oi
-oi
-oi
-oi
-Zu
-al
-al
SR
+Cq
+LV
+Cq
+LV
+hm
+Tm
SL
hh
lP
@@ -26654,13 +28702,13 @@ Pk
Pk
af
oi
-Jc
-Yt
-Yt
-al
-al
-al
SR
+Cq
+LV
+Cq
+LV
+HK
+Tm
SL
hh
EJ
@@ -26718,22 +28766,22 @@ Vk
Vk
ZQ
Br
-FD
-Li
-Li
-Li
-Li
-BS
-Li
-Li
-Li
-Li
-BS
-Li
+cx
+EE
+EE
+EE
+EE
+EE
+EE
+EE
+EE
+EE
+EE
+EE
+EE
+EE
+EE
EE
-jd
-bP
-Li
TM
eQ
al
@@ -26781,13 +28829,13 @@ Pk
Pk
af
oi
-Zu
-al
-al
-al
-al
-al
Qx
+Cq
+LV
+Rc
+LV
+ZO
+Tm
kx
Yz
Mc
@@ -26818,7 +28866,7 @@ dS
Br
SE
Yb
-YL
+dH
gc
vz
Zw
@@ -26845,24 +28893,24 @@ Mh
Mh
Mh
Br
-uV
-nx
-nx
-nx
-nx
-nx
-nx
-nx
-nx
-nx
-nx
-nx
-nx
-nx
-nx
-nx
IW
-eQ
+IW
+IW
+IW
+IW
+IW
+IW
+IW
+IW
+IW
+IW
+IW
+IW
+IW
+IW
+IW
+IW
+tC
af
Wf
Wf
@@ -26908,15 +28956,15 @@ Pk
Pk
af
oi
-Zu
-al
-Qx
-Qx
Qx
Qx
Qx
Tm
Tm
+Tm
+Tm
+Tm
+Tm
lW
Tm
Tm
@@ -26989,7 +29037,7 @@ Xl
Xl
Xl
uR
-eQ
+tC
af
Wf
Wf
@@ -27050,9 +29098,9 @@ zw
zw
pW
du
-rV
Fc
Fc
+sm
vM
Tm
IC
@@ -27065,10 +29113,10 @@ Ff
HJ
Jr
bb
-Cf
-Cf
-Cf
-Cf
+Yp
+Yp
+Yp
+Yp
ZQ
Vh
ZQ
@@ -27084,20 +29132,20 @@ zD
Yb
ZQ
CW
-Cf
+Yp
bb
-Cf
-Cf
-Cf
+Yp
+Yp
+Yp
Cf
ZQ
-Cf
+Yp
bb
ng
GA
-Cf
-Cf
-Cf
+Yp
+Yp
+Yp
Br
Xl
Xl
@@ -27116,7 +29164,7 @@ oD
ri
Xl
Xl
-eQ
+hM
af
Wf
Wf
@@ -27165,7 +29213,7 @@ oi
Zu
al
Qx
-BE
+NU
il
iD
jN
@@ -27175,9 +29223,9 @@ Mc
Mc
zw
zw
-zw
+rM
du
-rV
+Fc
Fc
Fc
TQ
@@ -27243,7 +29291,7 @@ DJ
Ad
Xl
Xl
-tC
+hM
af
Wf
Wf
@@ -27295,16 +29343,16 @@ SR
TQ
in
iG
-Hz
+dQ
kB
IB
Mc
Mc
nP
pf
-zw
-du
-sm
+rM
+rV
+Fc
Fc
Fc
TQ
@@ -27315,7 +29363,7 @@ Da
Tm
Gw
qZ
-ZI
+gG
Br
gc
gc
@@ -27325,7 +29373,7 @@ PV
gc
gc
gc
-Yb
+pI
XU
gc
gc
@@ -27346,7 +29394,7 @@ Mh
Mh
vE
pY
-Mh
+YQ
Mh
Mh
Mh
@@ -27370,7 +29418,7 @@ Ti
fw
Xl
Xl
-tC
+hM
af
Wf
Wf
@@ -27429,9 +29477,9 @@ Mc
Mc
nV
pf
-zw
+rM
du
-rV
+Fc
Fc
Fc
TQ
@@ -27446,7 +29494,7 @@ ZI
PV
Js
Mg
-NW
+Gx
Pt
QD
oE
@@ -27456,12 +29504,12 @@ Yb
YL
SK
hw
-Cf
+Yp
LB
gc
Pb
-dM
-Cf
+VI
+Yp
ZJ
YL
gc
@@ -27497,7 +29545,7 @@ Zt
Ai
Xl
Xl
-tC
+hM
af
Wf
Wf
@@ -27546,7 +29594,7 @@ Yt
al
al
Qx
-BE
+NU
BX
JR
Vr
@@ -27566,7 +29614,7 @@ ut
Vr
Vr
Vr
-ut
+AR
ZZ
qZ
ZI
@@ -27624,7 +29672,7 @@ Ti
fw
Xl
Xl
-eQ
+hM
af
Wf
Wf
@@ -27751,7 +29799,7 @@ Ms
jR
Xl
Xl
-eQ
+hM
af
Wf
Wf
@@ -27800,7 +29848,7 @@ oi
Zu
al
Qx
-BE
+NU
BX
JR
Vr
@@ -27820,9 +29868,9 @@ ut
Vr
Vr
Vr
-ut
-ZZ
+AR
ZZ
+lO
ZI
PV
Jx
@@ -27878,7 +29926,7 @@ Dy
IK
Xl
Xl
-eQ
+hM
af
Wf
Wf
@@ -27937,19 +29985,19 @@ Mc
Mc
nX
cL
-zw
+rM
du
-rV
+Fc
Fc
Fc
TQ
Tm
yC
-AJ
-De
+TQ
+Df
Tm
Bb
-ZZ
+lO
ZI
PV
JJ
@@ -27969,7 +30017,7 @@ ZQ
HX
ZQ
gc
-Vw
+Yb
lh
ZQ
Ub
@@ -28057,22 +30105,22 @@ SR
TQ
iu
iL
-Hz
+dQ
kB
IB
Mc
Mc
nY
cL
-zw
+rM
du
-rV
+Fc
Fc
Fc
TQ
MU
-LV
-LV
+AJ
+TQ
Df
Tm
Wq
@@ -28090,7 +30138,7 @@ gc
Vw
YL
gc
-yS
+TK
yS
sn
sn
@@ -28110,9 +30158,9 @@ Le
gc
Rx
Rx
-uy
+yy
Se
-uy
+yy
kk
Br
jq
@@ -28181,7 +30229,7 @@ oi
Zu
al
Qx
-BE
+NU
il
iN
jO
@@ -28191,16 +30239,16 @@ Mc
Mc
zw
zw
-zw
+rM
du
-rV
+Fc
Fc
Fc
TQ
MU
-xF
+Dg
KD
-IE
+CH
Tm
Wq
qZ
@@ -28225,7 +30273,7 @@ Qz
RN
Yb
lh
-YL
+Iq
gc
gc
gc
@@ -28312,7 +30360,7 @@ TQ
il
SL
SL
-qJ
+kI
SL
Mc
Mc
@@ -28320,14 +30368,14 @@ zw
zw
qc
du
-rV
Fc
-ug
+Fc
+xF
Gv
Tm
-xF
-LV
-Dg
+xG
+TQ
+oY
Tm
Wq
qZ
@@ -28352,7 +30400,7 @@ Qz
RN
Yb
lh
-YL
+dH
gc
HX
ZQ
@@ -28576,9 +30624,9 @@ Tm
Mb
Zm
Mb
-Mb
-Mb
-Mb
+EJ
+EJ
+EJ
Mb
Zm
Mb
@@ -28606,7 +30654,7 @@ gc
gc
Yb
lh
-Iq
+YL
RN
Qz
cw
@@ -28717,7 +30765,7 @@ Br
JV
ZQ
ew
-UW
+ew
ew
ZQ
gc
@@ -28726,8 +30774,8 @@ lh
ZQ
Ub
ZQ
-Cf
-Cf
+Yp
+Yp
ZQ
Ub
ZQ
@@ -28829,11 +30877,11 @@ Qx
Qx
rq
Mc
-Vr
-ui
-ui
-ui
-Vr
+Mc
+Mc
+Mc
+Mc
+Mc
AK
Mc
LV
@@ -28846,7 +30894,7 @@ ZQ
lh
lh
lh
-ZQ
+qm
gc
dt
lh
@@ -28956,14 +31004,14 @@ al
SR
qN
Mc
-WQ
-Hz
-Hz
-Hz
-zq
+Vr
+ui
+ui
+ui
+Vr
Mc
Dh
-Qx
+Tm
GF
qZ
ZI
@@ -29085,12 +31133,12 @@ rr
Mc
WQ
Hz
-kB
-wK
+ol
+Hz
zq
Mc
-EJ
-Qx
+sD
+Tm
Gq
qZ
ZI
@@ -29115,10 +31163,10 @@ Br
Br
lh
Gb
-Cf
+Yp
bb
-Cf
-Cf
+Yp
+Yp
ZJ
Bp
DO
@@ -29208,16 +31256,16 @@ oi
Zu
al
SR
-EJ
+IZ
Mc
WQ
-Hz
+zg
Hz
xe
zq
Mc
EJ
-Qx
+Tm
Gg
ZZ
ZI
@@ -29227,7 +31275,7 @@ dS
Br
JW
dS
-Bc
+Br
Ud
rl
lh
@@ -29340,7 +31388,7 @@ Mc
WQ
Hz
vP
-Hz
+Bk
zq
Mc
RO
@@ -29348,7 +31396,7 @@ Qx
fu
fu
fu
-Br
+Bc
lh
Mw
PV
@@ -29367,7 +31415,7 @@ PV
lh
Mw
Br
-fs
+lh
ZQ
ZQ
GA
@@ -29465,8 +31513,8 @@ SR
rJ
Mc
WQ
-up
-Hz
+uv
+kB
Hz
zq
Mc
@@ -29481,7 +31529,7 @@ Xs
Br
lh
Xs
-Bc
+Br
Ul
Yb
lh
@@ -29592,8 +31640,8 @@ SR
EJ
Mc
WQ
-uv
-kB
+Hz
+we
Hz
zq
Mc
@@ -29608,7 +31656,7 @@ PV
Br
GC
PV
-Bc
+Br
gc
Tb
lh
@@ -29631,7 +31679,7 @@ gc
gc
gc
gc
-gc
+uX
gc
gc
Bc
@@ -29718,11 +31766,11 @@ al
SR
Mb
Mc
-WQ
-Hz
-we
-Hz
-zq
+Vr
+ux
+ux
+ux
+Vr
Mc
Dj
Qx
@@ -29731,25 +31779,25 @@ al
al
Bc
ZQ
-Cf
-Cf
+Yp
+Yp
ZQ
-Cf
-Cf
-Cf
+Yp
+Yp
+Yp
ZJ
lh
Gb
-Cf
+Yp
ZQ
-Cf
-Cf
+Yp
+Yp
ZQ
-Cf
-Cf
+Yp
+Yp
gc
-Bu
-YL
+lh
+dH
gc
gc
gc
@@ -29757,7 +31805,7 @@ gc
gc
xL
bb
-Cf
+Yp
Qz
Qz
Fr
@@ -29845,11 +31893,11 @@ al
Qx
rq
Mc
-Vr
-ux
-ux
-ux
-Vr
+Mc
+Mc
+Mc
+Mc
+Mc
Mc
Dk
Qx
@@ -30384,7 +32432,7 @@ lh
MC
Br
Yb
-Iq
+xI
gc
qG
RH
@@ -30511,7 +32559,7 @@ Kz
dS
Br
Yb
-YL
+Iq
Bc
Bc
Bc
@@ -30620,7 +32668,7 @@ Zu
al
Bc
Bc
-Bc
+Br
Br
Br
Br
@@ -30756,14 +32804,14 @@ bb
ZJ
GA
Gb
-Cf
-Cf
-Cf
+Yp
+Yp
+Yp
XL
-Cf
+Yp
bb
-Cf
-Cf
+Yp
+Yp
ZJ
YL
Tx
@@ -30883,7 +32931,7 @@ Mh
VB
Xq
Ya
-Mh
+zS
ZQ
Mh
po
@@ -31134,8 +33182,8 @@ PK
Bc
RR
Oi
-dM
-Cf
+VI
+Yp
HX
gc
Tb
diff --git a/maps/templates/baseone.dmm b/maps/templates/baseone.dmm
index 2d51be77280c..471478fb17e5 100644
--- a/maps/templates/baseone.dmm
+++ b/maps/templates/baseone.dmm
@@ -1589,6 +1589,9 @@
dir = 1;
icon_state = "term"
},
+/obj/structure/closet/hydrant{
+ pixel_x = -32
+ },
/turf/open/floor/almayer{
dir = 8;
icon_state = "orange"
@@ -1683,10 +1686,10 @@
/turf/open/mars_cave,
/area/adminlevel/bunker01/mainroom)
"eg" = (
-/obj/structure/closet/firecloset,
/obj/structure/machinery/light/small{
dir = 8
},
+/obj/structure/machinery/fuelcell_recycler/full,
/turf/open/floor/almayer{
dir = 9;
icon_state = "orange"
@@ -1801,7 +1804,6 @@
/area/adminlevel/bunker01/mainroom)
"et" = (
/obj/structure/surface/table/reinforced,
-/obj/item/clothing/gloves/yellow,
/obj/structure/pipes/vents/pump{
dir = 4
},
@@ -1813,6 +1815,9 @@
dir = 8;
pixel_x = -25
},
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
+/obj/item/fuel_cell,
/turf/open/floor/almayer{
dir = 8;
icon_state = "orange"
@@ -1884,16 +1889,13 @@
/obj/structure/surface/table/reinforced,
/obj/effect/spawner/random/toolbox,
/obj/structure/disposalpipe/segment,
+/obj/item/clothing/gloves/yellow,
/turf/open/floor/almayer{
icon_state = "orangefull"
},
/area/adminlevel/bunker01/engineering)
"eB" = (
-/obj/structure/machinery/power/geothermal{
- buildstate = 4;
- icon_state = "on100";
- is_on = 1
- },
+/obj/structure/machinery/power/reactor/colony,
/turf/open/floor/almayer{
icon_state = "orangefull"
},
@@ -1902,11 +1904,7 @@
/obj/structure/machinery/light/small{
pixel_y = 0
},
-/obj/structure/machinery/power/geothermal{
- buildstate = 4;
- icon_state = "on100";
- is_on = 1
- },
+/obj/structure/machinery/power/reactor/colony,
/turf/open/floor/almayer{
icon_state = "orangefull"
},
diff --git a/maps/templates/freelancer_ert_station.dmm b/maps/templates/freelancer_ert_station.dmm
deleted file mode 100644
index 44d47c7952ef..000000000000
--- a/maps/templates/freelancer_ert_station.dmm
+++ /dev/null
@@ -1,1722 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/space/basic,
-/area/space)
-"r" = (
-/obj/docking_port/stationary/emergency_response/idle_port1,
-/turf/open/floor/plating,
-/area/space)
-"t" = (
-/turf/closed/wall/r_wall/unmeltable,
-/area/space)
-"u" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W"
- },
-/turf/open/floor/plating/almayer,
-/area/space)
-"x" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "E"
- },
-/turf/open/floor/plating/almayer,
-/area/space)
-"E" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N"
- },
-/turf/open/floor/plating/almayer,
-/area/space)
-"U" = (
-/turf/open/floor/plating/almayer,
-/area/space)
-"V" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
-/turf/open/floor/plating/almayer,
-/area/space)
-"X" = (
-/turf/open/floor/plating,
-/area/space)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(3,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(4,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(5,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(6,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(7,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(9,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(10,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(11,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(12,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(13,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(14,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(15,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(16,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-U
-x
-x
-x
-x
-x
-x
-x
-x
-x
-x
-x
-x
-x
-x
-x
-U
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(17,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-V
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-E
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(18,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-V
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-r
-X
-E
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(19,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-V
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-E
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(20,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-V
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-E
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(21,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-V
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-E
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(22,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-V
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-E
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(23,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-V
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-E
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(24,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-V
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-E
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(25,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-V
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-X
-E
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(26,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-U
-u
-u
-u
-u
-u
-u
-u
-u
-u
-u
-u
-u
-u
-u
-u
-U
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(27,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(28,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(29,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(30,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(31,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(32,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(33,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(34,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(35,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(36,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(37,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(38,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(39,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(40,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
diff --git a/maps/templates/clf_ert_station.dmm b/maps/templates/lazy_templates/clf_ert_station.dmm
similarity index 100%
rename from maps/templates/clf_ert_station.dmm
rename to maps/templates/lazy_templates/clf_ert_station.dmm
diff --git a/maps/templates/lazy_templates/freelancer_ert_station.dmm b/maps/templates/lazy_templates/freelancer_ert_station.dmm
new file mode 100644
index 000000000000..bf9709e2150d
--- /dev/null
+++ b/maps/templates/lazy_templates/freelancer_ert_station.dmm
@@ -0,0 +1,2379 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ae" = (
+/obj/structure/machinery/cm_vending/gear/antag{
+ hacked = 1;
+ name = "\improper Response Team Automated Gear Rack";
+ use_snowflake_points = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/ert_station)
+"aj" = (
+/obj/structure/machinery/cryopod,
+/obj/structure/sign/safety/cryo{
+ pixel_x = 36
+ },
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"aA" = (
+/obj/structure/machinery/autolathe/full,
+/turf/open/floor/almayer{
+ icon_state = "test_floor5"
+ },
+/area/adminlevel/ert_station)
+"bd" = (
+/obj/structure/surface/table/woodentable/fancy,
+/obj/item/reagent_container/food/snacks/pastatomato,
+/obj/item/ashtray/bronze{
+ pixel_x = 7;
+ pixel_y = 9
+ },
+/obj/item/reagent_container/food/drinks/bottle/whiskey{
+ pixel_x = -7;
+ pixel_y = 16
+ },
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"bk" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/recharger,
+/obj/item/device/defibrillator/upgraded,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/roller,
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/ert_station)
+"bT" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/plating/almayer,
+/area/adminlevel/ert_station)
+"cw" = (
+/obj/structure/machinery/chem_dispenser/soda{
+ density = 0;
+ pixel_y = 10
+ },
+/obj/structure/surface/table/reinforced,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/ert_station)
+"cL" = (
+/turf/open/floor/plating/almayer,
+/area/adminlevel/ert_station)
+"cR" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "orange"
+ },
+/area/adminlevel/ert_station)
+"cS" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -11
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/ert_station)
+"de" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"dj" = (
+/obj/structure/machinery/bioprinter{
+ stored_metal = 1000
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"dz" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 1;
+ name = "\improper Bathroom"
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"dI" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"dJ" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/adminlevel/ert_station)
+"dL" = (
+/obj/structure/sign/safety,
+/turf/closed/wall,
+/area/adminlevel/ert_station)
+"dS" = (
+/obj/structure/machinery/washing_machine,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"ee" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/computer/emails{
+ dir = 8;
+ pixel_y = 6
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"em" = (
+/obj/structure/machinery/cm_vending/sorted/walkman,
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"eG" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/ert_station)
+"eH" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ name = "Restroom"
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"eN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 8;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/ert_station)
+"fX" = (
+/obj/structure/machinery/medical_pod/sleeper,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"fY" = (
+/obj/structure/window/framed/colony/reinforced/hull,
+/turf/open/floor/almayer{
+ icon_state = "redfull"
+ },
+/area/adminlevel/ert_station)
+"gi" = (
+/obj/structure/surface/table/woodentable/fancy,
+/obj/item/book/manual/chef_recipes,
+/obj/item/clothing/head/chefhat,
+/obj/item/storage/box/drinkingglasses,
+/obj/item/reagent_container/food/drinks/shaker,
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"gm" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/ert_station)
+"gI" = (
+/obj/structure/sign/poster/clf,
+/turf/closed/wall,
+/area/adminlevel/ert_station)
+"gS" = (
+/obj/structure/sign/safety/debark_lounge,
+/turf/closed/wall/r_wall/unmeltable,
+/area/adminlevel/ert_station)
+"gU" = (
+/obj/docking_port/stationary/emergency_response/idle_port2,
+/turf/open/floor/plating,
+/area/adminlevel/ert_station)
+"ha" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/structure/machinery/computer/emails{
+ dir = 8;
+ pixel_y = 6
+ },
+/obj/item/prop/helmetgarb/prescription_bottle{
+ pixel_x = -9;
+ pixel_y = -4
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"hl" = (
+/obj/structure/machinery/chem_dispenser,
+/obj/item/reagent_container/glass/beaker/bluespace,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"hr" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/adminlevel/ert_station)
+"hs" = (
+/obj/structure/sign/safety/maint,
+/turf/closed/wall,
+/area/adminlevel/ert_station)
+"hx" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 8;
+ name = "Secure Storage"
+ },
+/obj/structure/machinery/door/poddoor/almayer{
+ dir = 4;
+ unacidable = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/ert_station)
+"hE" = (
+/obj/structure/barricade/handrail,
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/ert_station)
+"ij" = (
+/obj/structure/surface/table/woodentable/fancy,
+/obj/item/paper_bin/wy,
+/obj/item/tool/pen,
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"in" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"io" = (
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"ju" = (
+/obj/structure/machinery/cm_vending/sorted/boozeomat/chess,
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"jF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"jJ" = (
+/obj/structure/machinery/photocopier,
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"jZ" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ damage_cap = 50000;
+ name = "\improper Hangar";
+ no_panel = 1
+ },
+/obj/structure/sign/safety/debark_lounge{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "tcomms"
+ },
+/area/adminlevel/ert_station)
+"kn" = (
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"kZ" = (
+/obj/item/prop/helmetgarb/rosary,
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/ert_station)
+"lp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/ert_station)
+"lx" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "greencorner"
+ },
+/area/adminlevel/ert_station)
+"lP" = (
+/obj/structure/machinery/cm_vending/sorted/medical/blood{
+ req_access = null
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"lQ" = (
+/obj/structure/sign/safety/debark_lounge{
+ pixel_x = 15;
+ pixel_y = -32
+ },
+/turf/closed/wall/r_wall/unmeltable,
+/area/adminlevel/ert_station)
+"mw" = (
+/obj/structure/sign/nosmoking_1,
+/turf/closed/wall/r_wall/unmeltable,
+/area/adminlevel/ert_station)
+"mM" = (
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/ert_station)
+"mR" = (
+/obj/structure/sign/poster{
+ pixel_x = -32;
+ serial_number = 16
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"mX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"nx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"nU" = (
+/obj/structure/machinery/door/airlock/almayer/engineering{
+ name = "\improper Engineering Storage"
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"oc" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/reagent_container/food/snacks/soylentgreen,
+/obj/item/reagent_container/food/drinks/cans/waterbottle{
+ pixel_x = 11;
+ pixel_y = 13
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/adminlevel/ert_station)
+"oj" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/almayer{
+ icon_state = "test_floor5"
+ },
+/area/adminlevel/ert_station)
+"ou" = (
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"oE" = (
+/obj/structure/bed/chair/comfy,
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"oL" = (
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"pj" = (
+/obj/structure/machinery/door/airlock/almayer/security/glass{
+ dir = 1;
+ name = "Detention Cell";
+ req_access = null
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "redfull"
+ },
+/area/adminlevel/ert_station)
+"pK" = (
+/obj/structure/surface/table/woodentable/fancy,
+/obj/structure/reagent_dispensers/beerkeg{
+ density = 0
+ },
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"pX" = (
+/obj/structure/machinery/cm_vending/sorted/tech/tool_storage,
+/obj/effect/spider/stickyweb,
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "orange"
+ },
+/area/adminlevel/ert_station)
+"qt" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer{
+ icon_state = "plating_striped"
+ },
+/area/adminlevel/ert_station)
+"qV" = (
+/obj/structure/sign/poster/music,
+/turf/closed/wall,
+/area/adminlevel/ert_station)
+"qX" = (
+/obj/structure/machinery/iv_drip,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"rN" = (
+/turf/closed/wall/mineral/gold,
+/area/adminlevel/ert_station)
+"rS" = (
+/obj/structure/sign/goldenplaque{
+ pixel_y = 27
+ },
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/ert_station)
+"su" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/ert_station)
+"sy" = (
+/obj/structure/machinery/vending/security,
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/adminlevel/ert_station)
+"tx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"tA" = (
+/obj/structure/bed,
+/obj/item/bedsheet,
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"tD" = (
+/obj/structure/machinery/cm_vending/sorted/boozeomat,
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"tW" = (
+/obj/structure/machinery/chem_dispenser/soda/beer{
+ density = 0;
+ pixel_y = 10
+ },
+/obj/structure/surface/table/reinforced,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/ert_station)
+"um" = (
+/obj/structure/surface/table/reinforced/prison,
+/obj/item/storage/surgical_tray,
+/obj/item/reagent_container/spray/cleaner{
+ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back.";
+ name = "Surgery Cleaner"
+ },
+/obj/item/storage/box/monkeycubes,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/ert_station)
+"uq" = (
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"vo" = (
+/obj/structure/surface/table/woodentable/fancy,
+/obj/item/clothing/suit/chef/classic,
+/obj/item/clothing/gloves/latex,
+/obj/item/clothing/head/chefhat,
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"vM" = (
+/obj/structure/closet/secure_closet/freezer/fridge/full,
+/obj/item/reagent_container/food/condiment/enzyme,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/ert_station)
+"vO" = (
+/obj/structure/sign/poster{
+ desc = "You are becoming hysterical.";
+ icon_state = "poster11";
+ name = "YOU ALWAYS KNOW A WORKING JOE.";
+ pixel_y = 30
+ },
+/turf/open/floor/almayer{
+ icon_state = "plating_striped"
+ },
+/area/adminlevel/ert_station)
+"vS" = (
+/obj/structure/machinery/chem_master,
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"wd" = (
+/obj/structure/window/framed/colony,
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"wv" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/bedsheetbin{
+ pixel_y = 6
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"wF" = (
+/obj/structure/closet{
+ name = "boxing attire"
+ },
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"xn" = (
+/obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access{
+ req_access = null
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/ert_station)
+"xN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"xR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"yq" = (
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"yw" = (
+/turf/open/floor/almayer{
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/ert_station)
+"yP" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 2;
+ name = "Lounge"
+ },
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"zy" = (
+/obj/structure/mirror,
+/turf/closed/wall/r_wall/unmeltable,
+/area/adminlevel/ert_station)
+"zz" = (
+/obj/structure/machinery/medical_pod/bodyscanner,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"zR" = (
+/obj/structure/closet/secure_closet/freezer/meat,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/ert_station)
+"Aw" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med/souto,
+/turf/closed/wall,
+/area/adminlevel/ert_station)
+"AD" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"AJ" = (
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/ert_station)
+"AV" = (
+/obj/structure/machinery/newscaster/security_unit,
+/turf/closed/wall/r_wall/unmeltable,
+/area/adminlevel/ert_station)
+"BI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"BL" = (
+/obj/structure/target{
+ name = "punching bag"
+ },
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"Cm" = (
+/obj/structure/closet/secure_closet/freezer/fridge/groceries,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/ert_station)
+"CF" = (
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = 28
+ },
+/obj/structure/bed/sofa/south/grey/right,
+/obj/item/trash/buritto,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"CJ" = (
+/obj/structure/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"CP" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/plating/almayer,
+/area/adminlevel/ert_station)
+"Ea" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/turf/open/floor/plating/almayer,
+/area/adminlevel/ert_station)
+"Ef" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"Es" = (
+/obj/structure/machinery/cm_vending/sorted/cargo_guns/antag_guns{
+ hacked = 1;
+ name = "\improper Response Team Automated Guns Rack";
+ use_power = 0;
+ use_snowflake_points = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/ert_station)
+"Ey" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 1;
+ name = "\improper Dormitories"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"EK" = (
+/obj/structure/janitorialcart,
+/obj/item/reagent_container/glass/bucket/janibucket,
+/obj/item/reagent_container/spray/cleaner,
+/obj/item/tool/wet_sign,
+/obj/item/tool/wet_sign,
+/obj/item/tool/mop,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"Fg" = (
+/turf/closed/wall/r_wall/unmeltable,
+/area/adminlevel/ert_station)
+"Fo" = (
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"FB" = (
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/ert_station)
+"FQ" = (
+/obj/structure/disposalpipe/junction{
+ dir = 8
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/ert_station)
+"FZ" = (
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"Gh" = (
+/obj/structure/bed/stool,
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"Gk" = (
+/obj/structure/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"Gu" = (
+/obj/structure/machinery/vending/dinnerware,
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"Hg" = (
+/obj/structure/closet/secure_closet/brig,
+/obj/item/book/manual/marine_law,
+/obj/item/handcuffs,
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/adminlevel/ert_station)
+"Hj" = (
+/obj/structure/sign/safety/medical,
+/obj/structure/sign/safety/autodoc{
+ pixel_x = 15
+ },
+/turf/closed/wall/r_wall/unmeltable,
+/area/adminlevel/ert_station)
+"Hy" = (
+/obj/item/newspaper,
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/ert_station)
+"HI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "red"
+ },
+/area/adminlevel/ert_station)
+"HN" = (
+/turf/open/floor/almayer{
+ icon_state = "silvercorner"
+ },
+/area/adminlevel/ert_station)
+"HR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/turf/closed/wall/r_wall/unmeltable,
+/area/adminlevel/ert_station)
+"HS" = (
+/obj/item/trash/cigbutt/cigarbutt,
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"Ih" = (
+/obj/structure/noticeboard{
+ pixel_y = 34
+ },
+/obj/structure/machinery/computer/arcade,
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"Im" = (
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"IG" = (
+/obj/structure/toilet,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"IP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "red"
+ },
+/area/adminlevel/ert_station)
+"Jg" = (
+/obj/structure/sign/safety/galley{
+ pixel_x = -17
+ },
+/obj/structure/machinery/door/window/southleft,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/ert_station)
+"Jn" = (
+/obj/structure/sign/safety/bathunisex{
+ pixel_x = -17
+ },
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"JD" = (
+/obj/structure/surface/table/gamblingtable,
+/obj/item/device/flashlight/lamp/green{
+ pixel_y = 10
+ },
+/obj/item/storage/fancy/cigar,
+/obj/item/storage/box/matches{
+ pixel_x = -2;
+ pixel_y = 9
+ },
+/obj/item/coin/uranium,
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"JW" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 27
+ },
+/obj/structure/bed/sofa/south/grey/left,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"Kp" = (
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/ert_station)
+"Kq" = (
+/obj/structure/surface/table/reinforced,
+/obj/structure/machinery/processor{
+ pixel_y = 10
+ },
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/ert_station)
+"Kt" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "greencorner"
+ },
+/area/adminlevel/ert_station)
+"KK" = (
+/obj/structure/surface/table/reinforced,
+/obj/item/tool/kitchen/tray,
+/obj/item/tool/kitchen/knife{
+ pixel_x = 3
+ },
+/obj/item/tool/kitchen/knife/butcher{
+ pixel_x = -8
+ },
+/obj/item/tool/kitchen/rollingpin,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/ert_station)
+"KN" = (
+/obj/structure/machinery/autodoc_console,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"Lh" = (
+/turf/open/space/basic,
+/area/space)
+"Li" = (
+/obj/structure/bed,
+/obj/item/bedsheet/brown,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/adminlevel/ert_station)
+"Lt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"LN" = (
+/turf/open/floor/almayer{
+ icon_state = "plating_striped"
+ },
+/area/adminlevel/ert_station)
+"Mj" = (
+/obj/structure/surface/table/woodentable/fancy,
+/obj/item/reagent_container/food/snacks/milosoup{
+ pixel_y = 10
+ },
+/obj/item/reagent_container/food/snacks/meatsteak{
+ pixel_y = -2
+ },
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"Ns" = (
+/obj/structure/machinery/optable,
+/obj/item/tank/anesthetic,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/ert_station)
+"Of" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "red"
+ },
+/area/adminlevel/ert_station)
+"Os" = (
+/obj/structure/machinery/faxmachine,
+/obj/structure/surface/table/reinforced/prison,
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"OA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"Pb" = (
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/ert_station)
+"Pd" = (
+/obj/structure/machinery/sleep_console,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"Pn" = (
+/obj/structure/machinery/door/airlock/almayer/generic{
+ dir = 1;
+ name = "Restroom"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"PC" = (
+/turf/open/floor/carpet{
+ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft.";
+ name = "\improper carpet"
+ },
+/area/adminlevel/ert_station)
+"PP" = (
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_10"
+ },
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"Qc" = (
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "orange"
+ },
+/area/adminlevel/ert_station)
+"Qi" = (
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"Qv" = (
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/adminlevel/ert_station)
+"QQ" = (
+/obj/structure/closet/boxinggloves,
+/turf/open/floor/almayer{
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"Rb" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"Rk" = (
+/obj/structure/sign/poster/art,
+/turf/closed/wall/r_wall/unmeltable,
+/area/adminlevel/ert_station)
+"Rz" = (
+/obj/structure/machinery/medical_pod/autodoc/unskilled,
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"RC" = (
+/obj/structure/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"RG" = (
+/obj/structure/machinery/cm_vending/sorted/medical/no_access{
+ req_access = null
+ },
+/turf/open/floor/almayer{
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/ert_station)
+"RO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "greencorner"
+ },
+/area/adminlevel/ert_station)
+"RW" = (
+/obj/structure/disposalpipe/junction,
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"Sh" = (
+/turf/closed/wall,
+/area/adminlevel/ert_station)
+"Sk" = (
+/obj/structure/machinery/cm_vending/sorted/tech/comp_storage,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "orange"
+ },
+/area/adminlevel/ert_station)
+"Su" = (
+/obj/structure/closet/cabinet,
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"Sy" = (
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
+/obj/structure/bed/sofa/south/grey,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"SH" = (
+/obj/structure/sign/poster{
+ pixel_x = -32;
+ serial_number = 16
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"SL" = (
+/obj/structure/machinery/body_scanconsole,
+/turf/open/floor/almayer{
+ icon_state = "sterile_green"
+ },
+/area/adminlevel/ert_station)
+"SP" = (
+/obj/structure/machinery/gibber{
+ pixel_y = 10
+ },
+/obj/structure/surface/table/reinforced,
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/ert_station)
+"Ta" = (
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"Th" = (
+/turf/open/floor/plating,
+/area/adminlevel/ert_station)
+"TM" = (
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/ert_station)
+"TV" = (
+/obj/structure/sign/poster/hunk,
+/obj/structure/window/framed/colony/reinforced/hull,
+/turf/open/floor/almayer{
+ icon_state = "redfull"
+ },
+/area/adminlevel/ert_station)
+"Un" = (
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "sterile_green_side"
+ },
+/area/adminlevel/ert_station)
+"Ux" = (
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_21"
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"UT" = (
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_10"
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"Vd" = (
+/obj/structure/surface/table/woodentable,
+/obj/item/pizzabox/meat{
+ pixel_y = 8
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "silver"
+ },
+/area/adminlevel/ert_station)
+"Vz" = (
+/obj/structure/sign/nosmoking_2,
+/turf/closed/wall,
+/area/adminlevel/ert_station)
+"VF" = (
+/obj/structure/barricade/handrail{
+ dir = 1;
+ pixel_y = 2
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/ert_station)
+"VJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"VR" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E"
+ },
+/turf/open/floor/plating/almayer,
+/area/adminlevel/ert_station)
+"VU" = (
+/obj/item/trash/barcardine,
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"VV" = (
+/obj/structure/machinery/cm_vending/clothing/antag{
+ name = "\improper Response Team Automated Equipment Rack"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/adminlevel/ert_station)
+"VZ" = (
+/obj/structure/barricade/handrail{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/ert_station)
+"Wf" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/almayer{
+ icon_state = "test_floor5"
+ },
+/area/adminlevel/ert_station)
+"Wl" = (
+/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage,
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "orange"
+ },
+/area/adminlevel/ert_station)
+"Wn" = (
+/turf/open/floor/almayer{
+ icon_state = "sterile_green"
+ },
+/area/adminlevel/ert_station)
+"WR" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -11
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"Xb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/adminlevel/ert_station)
+"Xx" = (
+/obj/structure/barricade/handrail{
+ dir = 8
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/adminlevel/ert_station)
+"XN" = (
+/obj/structure/transmitter/hidden{
+ dir = 8;
+ name = "Station Telephone";
+ phone_id = "Unknown Signal";
+ pixel_x = 14
+ },
+/turf/open/floor/almayer{
+ icon_state = "floor"
+ },
+/area/adminlevel/ert_station)
+"XQ" = (
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_21"
+ },
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+"Yk" = (
+/obj/structure/sign/safety/med_life_support,
+/turf/closed/wall,
+/area/adminlevel/ert_station)
+"YD" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/turf/open/floor/almayer{
+ icon_state = "greencorner"
+ },
+/area/adminlevel/ert_station)
+"YM" = (
+/obj/structure/surface/table/woodentable/fancy,
+/obj/item/reagent_container/food/snacks/sandwich{
+ layer = 4;
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/obj/item/reagent_container/food/snacks/popcorn{
+ pixel_x = -5;
+ pixel_y = 8
+ },
+/obj/item/reagent_container/food/snacks/appletart,
+/obj/item/reagent_container/food/condiment/peppermill,
+/obj/item/reagent_container/food/condiment/saltshaker,
+/turf/open/floor/carpet,
+/area/adminlevel/ert_station)
+"YT" = (
+/obj/structure/surface/table/reinforced,
+/obj/structure/machinery/microwave{
+ pixel_y = 10
+ },
+/turf/open/floor/prison{
+ icon_state = "kitchen"
+ },
+/area/adminlevel/ert_station)
+"Zp" = (
+/obj/structure/machinery/door/airlock/almayer/medical/glass{
+ dir = 1;
+ name = "\improper Medbay";
+ req_access = null;
+ req_one_access = null
+ },
+/obj/structure/sign/safety/med_cryo{
+ pixel_x = -17
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/adminlevel/ert_station)
+"ZS" = (
+/obj/structure/machinery/vending/cigarette/colony,
+/turf/open/floor/wood/ship,
+/area/adminlevel/ert_station)
+
+(1,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+"}
+(2,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+cL
+VR
+VR
+VR
+VR
+VR
+VR
+VR
+VR
+VR
+VR
+VR
+VR
+VR
+VR
+VR
+cL
+Fg
+"}
+(3,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+CP
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+bT
+Fg
+"}
+(4,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+CP
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+gU
+Th
+bT
+Fg
+"}
+(5,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+CP
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+bT
+Fg
+"}
+(6,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+CP
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+bT
+Fg
+"}
+(7,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+CP
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+bT
+Fg
+"}
+(8,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+CP
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+bT
+Fg
+"}
+(9,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+CP
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+bT
+Fg
+"}
+(10,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+CP
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+bT
+Fg
+"}
+(11,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+CP
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+Th
+bT
+Fg
+"}
+(12,1,1) = {"
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Lh
+Fg
+cL
+Ea
+Ea
+Ea
+Ea
+Ea
+Ea
+Ea
+Ea
+Ea
+Ea
+Ea
+Ea
+Ea
+Ea
+Ea
+cL
+Fg
+"}
+(13,1,1) = {"
+Fg
+Fg
+Fg
+Fg
+zy
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+lQ
+Fg
+Fg
+Fg
+Fg
+Fg
+AV
+Fg
+lQ
+Fg
+jZ
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+"}
+(14,1,1) = {"
+Fg
+IG
+dz
+kn
+WR
+wv
+dS
+Sh
+Su
+uq
+uq
+oE
+ij
+Sh
+Ta
+Rb
+mR
+Ux
+CJ
+UT
+Rb
+Rb
+Rb
+yq
+yq
+SH
+yq
+yq
+yq
+yq
+SH
+BI
+Xb
+pj
+IP
+HI
+HR
+"}
+(15,1,1) = {"
+Fg
+Sh
+Sh
+kn
+kn
+kn
+jF
+Pn
+AD
+AD
+AD
+AD
+AD
+Ey
+nx
+tx
+OA
+mM
+lp
+mM
+yq
+BI
+xR
+YD
+VZ
+VZ
+VZ
+RO
+xR
+eG
+eG
+eN
+Qv
+fY
+dJ
+hr
+Fg
+"}
+(16,1,1) = {"
+Fg
+IG
+dz
+kn
+kn
+kn
+VJ
+Sh
+aj
+tA
+tA
+tA
+tA
+gI
+dI
+mM
+Lt
+mX
+RW
+mX
+xR
+FQ
+yq
+hE
+FB
+FB
+gm
+VF
+yq
+HN
+Of
+Hg
+sy
+TV
+Li
+oc
+Fg
+"}
+(17,1,1) = {"
+Fg
+Sh
+Sh
+Sh
+Sh
+kn
+EK
+Sh
+Sh
+Sh
+qV
+Sh
+Sh
+Sh
+JW
+mM
+io
+Hy
+PC
+PC
+dI
+lp
+yq
+hE
+gm
+FB
+FB
+VF
+yq
+wF
+Sh
+Sh
+Sh
+Fg
+Fg
+Fg
+Fg
+"}
+(18,1,1) = {"
+Fg
+Cm
+zR
+vM
+Sh
+kn
+RC
+Sh
+Ih
+ou
+ou
+ou
+de
+Sh
+Sy
+mM
+io
+PC
+PC
+PC
+dI
+lp
+yq
+hE
+FB
+FB
+FB
+VF
+yq
+QQ
+Sh
+xn
+cS
+kn
+AJ
+Ns
+Fg
+"}
+(19,1,1) = {"
+Fg
+KK
+TM
+TM
+Sh
+eH
+Sh
+Aw
+XQ
+ou
+ou
+ou
+JD
+Sh
+CF
+yq
+io
+PC
+rN
+rS
+dI
+xN
+HS
+Kt
+Xx
+Xx
+Xx
+lx
+yq
+BL
+Yk
+RG
+Pb
+kn
+yw
+um
+Fg
+"}
+(20,1,1) = {"
+Fg
+Kq
+TM
+TM
+Jg
+ou
+Jn
+ou
+uq
+Ef
+Ef
+uq
+Im
+wd
+Vd
+mM
+io
+PC
+PC
+kZ
+dI
+lp
+HN
+in
+in
+in
+in
+in
+in
+FZ
+Zp
+Kp
+Un
+zz
+Kp
+bk
+Fg
+"}
+(21,1,1) = {"
+Fg
+SP
+TM
+TM
+gi
+Gh
+ou
+ou
+uq
+Mj
+bd
+uq
+ou
+wd
+dI
+mM
+io
+PC
+PC
+PC
+dI
+lp
+io
+Sh
+hs
+nU
+Vz
+Fg
+hx
+Fg
+Hj
+hl
+kn
+SL
+kn
+fX
+Fg
+"}
+(22,1,1) = {"
+Fg
+YT
+TM
+TM
+vo
+Gh
+ou
+ou
+uq
+Fo
+Fo
+uq
+ou
+yP
+dI
+mM
+yq
+Rb
+Rb
+Rb
+yq
+lp
+io
+Sh
+pX
+cR
+Wf
+Fg
+vO
+VV
+Fg
+vS
+Wn
+Wn
+Wn
+Pd
+Fg
+"}
+(23,1,1) = {"
+Fg
+cw
+TM
+TM
+YM
+Gh
+ou
+VU
+ou
+ou
+ou
+ou
+ou
+wd
+dI
+yq
+yq
+su
+mM
+su
+yq
+xN
+io
+Sh
+Sk
+yq
+oj
+Fg
+qt
+ae
+mw
+Rz
+kn
+Wn
+qX
+dj
+Fg
+"}
+(24,1,1) = {"
+Fg
+tW
+TM
+TM
+pK
+Gh
+ou
+PP
+Gu
+ZS
+em
+tD
+ju
+wd
+oL
+yq
+Os
+ee
+XN
+ha
+jJ
+Gk
+FZ
+dL
+Wl
+Qc
+aA
+Fg
+LN
+Es
+Fg
+KN
+kn
+Qi
+Qi
+lP
+Fg
+"}
+(25,1,1) = {"
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+gS
+Fg
+gS
+Fg
+Fg
+Rk
+Fg
+gS
+Fg
+gS
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+Fg
+"}
diff --git a/maps/templates/twe_ert_station.dmm b/maps/templates/lazy_templates/twe_ert_station.dmm
similarity index 100%
rename from maps/templates/twe_ert_station.dmm
rename to maps/templates/lazy_templates/twe_ert_station.dmm
diff --git a/maps/templates/upp_ert_station.dmm b/maps/templates/lazy_templates/upp_ert_station.dmm
similarity index 100%
rename from maps/templates/upp_ert_station.dmm
rename to maps/templates/lazy_templates/upp_ert_station.dmm
diff --git a/maps/templates/weyland_ert_station.dmm b/maps/templates/lazy_templates/weyland_ert_station.dmm
similarity index 100%
rename from maps/templates/weyland_ert_station.dmm
rename to maps/templates/lazy_templates/weyland_ert_station.dmm
diff --git a/sound/machines/pda_ping.ogg b/sound/machines/pda_ping.ogg
new file mode 100644
index 000000000000..2f3135bc3c22
Binary files /dev/null and b/sound/machines/pda_ping.ogg differ
diff --git a/sound/weapons/gun_vulture_mark.ogg b/sound/weapons/gun_vulture_mark.ogg
new file mode 100644
index 000000000000..6c7ae7b27797
Binary files /dev/null and b/sound/weapons/gun_vulture_mark.ogg differ
diff --git a/strings/metatips.txt b/strings/metatips.txt
index a28c90239593..00bb827de69f 100644
--- a/strings/metatips.txt
+++ b/strings/metatips.txt
@@ -12,6 +12,7 @@ As a mentor, you can become the imaginary friend of a new player to teach them!
You shouldn't ignore what your allies are up to. Sometimes they can be organizing a flank in hivemind/radio, sometimes they can be walking up behind you with a slug-loaded shotgun. Either way, it pays to be alert to what they're doing, as much to as what the enemies are.
The Wiki (https://cm-ss13.com/wiki) is a very useful repository of information about the game, such as weapons, equipment, xenomorph castes and their strains. It may not be fully up to date much of the time, but the basics are usually accurate.
As an observer, you may see how much remaining hijack time is left in the status panel.
+As an observer, you can quickly follow someone by ctrl-clicking on their sprite.
You can always AdminHelp with the F1 key to question a member of staff regarding rules or game bugs.
As ghost you are given extra tools for spectating the round: you can jump and follow specific players, get notifications about CAS and OB strikes, can see all health bars, and such.
You can press ESC key to bring up the game pause menu. It allows you change settings, AdminHelp and MentorHelp, and even access the Web Maps of game by clicking at top right.
diff --git a/tgui/docs/component-reference.md b/tgui/docs/component-reference.md
index d814fc343a72..3789016447cc 100644
--- a/tgui/docs/component-reference.md
+++ b/tgui/docs/component-reference.md
@@ -250,6 +250,7 @@ A button with an extra confirmation step, using native button component.
- See inherited props: [Button](#button)
- `confirmContent: string` - Text to display after first click; defaults to "Confirm?"
- `confirmColor: string` - Color to display after first click; defaults to "bad"
+- `onConfirmChange: function` - Called when the clickedOnce state changes: When the element is clicked the first time or unfocused.
### `Button.Input`
diff --git a/tgui/packages/common/ping.js b/tgui/packages/common/ping.js
new file mode 100644
index 000000000000..e8f52882b6ae
--- /dev/null
+++ b/tgui/packages/common/ping.js
@@ -0,0 +1,108 @@
+/**
+ * Adapted pinging library based on:
+ * @file https://www.jsdelivr.com/package/npm/ping.js
+ * @copyright 2021 Alfred Gutierrez
+ * @license MIT
+ */
+
+/**
+ * Creates a Ping instance.
+ * @returns {Ping}
+ * @constructor
+ */
+export class Ping {
+ constructor(opt) {
+ this.opt = opt || {};
+ this.favicon = this.opt.favicon || '/favicon.ico';
+ this.timeout = this.opt.timeout || 10000;
+ this.logError = this.opt.logError || false;
+ this.abort = false;
+ }
+
+ /**
+ * Pings source after a delay and triggers a callback when completed.
+ * @param source Source of the website or server, including protocol and port.
+ * @param callback Callback function to trigger when completed. Returns error and ping value.
+ * @param delay Optional number of milliseconds to wait before starting.
+ */
+ ping(source, callback, delay = 1000) {
+ this.abort = false;
+ let timer;
+ if (delay > 0) {
+ timer = setTimeout(() => {
+ if (this.abort) {
+ return;
+ }
+ this.pingNow(source, callback);
+ }, delay);
+ return;
+ }
+ this.pingNow(source, callback);
+ }
+
+ /**
+ * Pings source immediately and triggers a callback when completed.
+ * @param source Source of the website or server, including protocol and port.
+ * @param callback Callback function to trigger when completed. Returns error and ping value.
+ */
+ pingNow(source, callback) {
+ let self = this;
+ self.abort = false;
+ self.wasSuccess = false;
+ self.img = new Image();
+ self.img.onload = (e) => {
+ self.wasSuccess = true;
+ pingCheck.call(self, e);
+ };
+ self.img.onerror = (e) => {
+ self.wasSuccess = false;
+ pingCheck.call(self, e);
+ };
+
+ let timer;
+ let start = new Date();
+
+ if (self.timeout) {
+ timer = setTimeout(() => {
+ self.wasSuccess = false;
+ pingCheck.call(self, undefined);
+ }, self.timeout);
+ }
+
+ /**
+ * Times ping and triggers callback.
+ */
+ const pingCheck = function (e) {
+ if (timer) {
+ clearTimeout(timer);
+ }
+ if (this.abort) {
+ return;
+ }
+ let pong = new Date() - start;
+
+ if (typeof callback === 'function') {
+ // When operating in timeout mode, the timeout callback doesn't pass [event] as e.
+ // Notice [this] instead of [self], since .call() was used with context
+ if (!this.wasSuccess) {
+ if (self.logError) {
+ console.error('error loading resource: ' + e.error);
+ }
+ return callback(e ? 'Error' : 'Timed Out', pong);
+ }
+ return callback(null, pong);
+ } else {
+ throw new Error('Callback is not a function.');
+ }
+ };
+
+ self.img.src = source + self.favicon + '?' + +new Date(); // Trigger image load with cache buster
+ }
+
+ /**
+ * Aborts any pending ping request.
+ */
+ cancel() {
+ this.abort = true;
+ }
+}
diff --git a/tgui/packages/tgfont/config.cjs b/tgui/packages/tgfont/config.cjs
index 4f6b58f1061e..73d96ac6ce90 100644
--- a/tgui/packages/tgfont/config.cjs
+++ b/tgui/packages/tgfont/config.cjs
@@ -7,8 +7,12 @@
module.exports = {
name: 'tgfont',
inputDir: './icons',
+ normalize: true,
outputDir: './dist',
fontTypes: ['woff2', 'eot'],
assetTypes: ['css'],
prefix: 'tg',
+ formatOptions: {
+ preserveAspectRatio: true,
+ },
};
diff --git a/tgui/packages/tgfont/icons/image-minus.svg b/tgui/packages/tgfont/icons/image-minus.svg
new file mode 100644
index 000000000000..8c3231917ff9
--- /dev/null
+++ b/tgui/packages/tgfont/icons/image-minus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/tgui/packages/tgfont/icons/image-plus.svg b/tgui/packages/tgfont/icons/image-plus.svg
new file mode 100644
index 000000000000..1658509429e3
--- /dev/null
+++ b/tgui/packages/tgfont/icons/image-plus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/tgui/packages/tgfont/icons/sound-minus.svg b/tgui/packages/tgfont/icons/sound-minus.svg
new file mode 100644
index 000000000000..df51179d4b53
--- /dev/null
+++ b/tgui/packages/tgfont/icons/sound-minus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/tgui/packages/tgfont/icons/sound-plus.svg b/tgui/packages/tgfont/icons/sound-plus.svg
new file mode 100644
index 000000000000..c5f40d53b560
--- /dev/null
+++ b/tgui/packages/tgfont/icons/sound-plus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/tgui/packages/tgfont/static/tgfont.css b/tgui/packages/tgfont/static/tgfont.css
index 992f088913c4..49e59cdd6959 100644
--- a/tgui/packages/tgfont/static/tgfont.css
+++ b/tgui/packages/tgfont/static/tgfont.css
@@ -1,7 +1,7 @@
@font-face {
font-family: "tgfont";
- src: url("./tgfont.woff2?b809fa4bdd4aff7084540f130e4e524b") format("woff2"),
-url("./tgfont.eot?b809fa4bdd4aff7084540f130e4e524b#iefix") format("embedded-opentype");
+ src: url("./tgfont.woff2?0843e2c3dacddd319720859dcaeda508") format("woff2"),
+url("./tgfont.eot?0843e2c3dacddd319720859dcaeda508#iefix") format("embedded-opentype");
}
i[class^="tg-"]:before, i[class*=" tg-"]:before {
@@ -15,39 +15,15 @@ i[class^="tg-"]:before, i[class*=" tg-"]:before {
-moz-osx-font-smoothing: grayscale;
}
-.tg-air-tank-slash:before {
- content: "\f101";
-}
-.tg-air-tank:before {
- content: "\f102";
-}
-.tg-bad-touch:before {
- content: "\f103";
-}
.tg-image-minus:before {
- content: "\f104";
+ content: "\f101";
}
.tg-image-plus:before {
- content: "\f105";
-}
-.tg-nanotrasen-logo:before {
- content: "\f106";
-}
-.tg-non-binary:before {
- content: "\f107";
-}
-.tg-prosthetic-full:before {
- content: "\f108";
-}
-.tg-prosthetic-leg:before {
- content: "\f109";
+ content: "\f102";
}
.tg-sound-minus:before {
- content: "\f10a";
+ content: "\f103";
}
.tg-sound-plus:before {
- content: "\f10b";
-}
-.tg-syndicate-logo:before {
- content: "\f10c";
+ content: "\f104";
}
diff --git a/tgui/packages/tgfont/static/tgfont.eot b/tgui/packages/tgfont/static/tgfont.eot
index e879c327d3f1..17e3790d026c 100644
Binary files a/tgui/packages/tgfont/static/tgfont.eot and b/tgui/packages/tgfont/static/tgfont.eot differ
diff --git a/tgui/packages/tgfont/static/tgfont.woff2 b/tgui/packages/tgfont/static/tgfont.woff2
index 6a3be3d2cb40..a4cc01a984a1 100644
Binary files a/tgui/packages/tgfont/static/tgfont.woff2 and b/tgui/packages/tgfont/static/tgfont.woff2 differ
diff --git a/tgui/packages/tgui-panel/ping/PingIndicator.js b/tgui/packages/tgui-panel/ping/PingIndicator.js
index b2355820e58a..4e64207d115c 100644
--- a/tgui/packages/tgui-panel/ping/PingIndicator.js
+++ b/tgui/packages/tgui-panel/ping/PingIndicator.js
@@ -6,11 +6,12 @@
import { Color } from 'common/color';
import { toFixed } from 'common/math';
-import { useSelector } from 'tgui/backend';
-import { Box } from 'tgui/components';
+import { useSelector, useBackend } from 'tgui/backend';
+import { Button, Box } from 'tgui/components';
import { selectPing } from './selectors';
export const PingIndicator = (props) => {
+ const { act } = useBackend();
const ping = useSelector(selectPing);
const color = Color.lookup(ping.networkQuality, [
new Color(220, 40, 40),
@@ -19,9 +20,19 @@ export const PingIndicator = (props) => {
]);
const roundtrip = ping.roundtrip ? toFixed(ping.roundtrip) : '--';
return (
-
+ act('ping_relays')}>
{roundtrip}
-
+
);
};
diff --git a/tgui/packages/tgui/components/Button.jsx b/tgui/packages/tgui/components/Button.jsx
index 4264b0767115..dbffb6a72c95 100644
--- a/tgui/packages/tgui/components/Button.jsx
+++ b/tgui/packages/tgui/components/Button.jsx
@@ -172,6 +172,9 @@ export class ButtonConfirm extends Component {
} else {
window.removeEventListener('click', this.handleClick);
}
+ if (this.props.onConfirmChange) {
+ this.props.onConfirmChange(clickedOnce);
+ }
}
render() {
@@ -183,6 +186,7 @@ export class ButtonConfirm extends Component {
color,
content,
onClick,
+ onConfirmChange,
...rest
} = this.props;
return (
diff --git a/tgui/packages/tgui/components/RestrictedInput.jsx b/tgui/packages/tgui/components/RestrictedInput.jsx
index 082fc606d998..f61025039f34 100644
--- a/tgui/packages/tgui/components/RestrictedInput.jsx
+++ b/tgui/packages/tgui/components/RestrictedInput.jsx
@@ -1,48 +1,56 @@
-import { classes } from 'common/react';
+import { KEY_ENTER, KEY_ESCAPE } from 'common/keycodes';
import { clamp } from 'common/math';
+import { classes } from 'common/react';
import { Component, createRef } from 'react';
+
import { Box } from './Box';
-import { KEY_ESCAPE, KEY_ENTER } from 'common/keycodes';
-const DEFAULT_MIN = -16777216;
-const DEFAULT_MAX = 16777216;
+const DEFAULT_MIN = 0;
+const DEFAULT_MAX = 10000;
/**
- * Takes a string input and parses integers from it.
+ * Takes a string input and parses integers or floats from it.
* If none: Minimum is set.
* Else: Clamps it to the given range.
*/
-const getClampedNumber = (value, minValue, maxValue) => {
+const getClampedNumber = (value, minValue, maxValue, allowFloats) => {
const minimum = minValue || DEFAULT_MIN;
const maximum = maxValue || maxValue === 0 ? maxValue : DEFAULT_MAX;
- const defaultValue = maximum < 0 ? minimum : minimum > 0 ? minimum : 0;
if (!value || !value.length) {
- return String(defaultValue);
+ return String(minimum);
}
- let parsedValue = parseFloat(value.replace(/[^\-.\d]/g, ''), 10);
+ let parsedValue = allowFloats
+ ? parseFloat(value.replace(/[^\-\d.]/g, ''))
+ : parseInt(value.replace(/[^\-\d]/g, ''), 10);
if (isNaN(parsedValue)) {
- return String(defaultValue);
+ return String(minimum);
} else {
return String(clamp(parsedValue, minimum, maximum));
}
};
export class RestrictedInput extends Component {
- constructor() {
- super();
+ constructor(props) {
+ super(props);
this.inputRef = createRef();
this.state = {
editing: false,
};
this.handleBlur = (e) => {
+ const { maxValue, minValue, allowFloats } = this.props;
const { editing } = this.state;
if (editing) {
+ e.target.value = getClampedNumber(
+ e.target.value,
+ minValue,
+ maxValue,
+ allowFloats
+ );
this.setEditing(false);
}
};
this.handleChange = (e) => {
- const { maxValue, minValue, onChange } = this.props;
- e.target.value = getClampedNumber(e.target.value, minValue, maxValue);
+ const { onChange } = this.props;
if (onChange) {
onChange(e, +e.target.value);
}
@@ -64,9 +72,14 @@ export class RestrictedInput extends Component {
}
};
this.handleKeyDown = (e) => {
- const { maxValue, minValue, onChange, onEnter } = this.props;
+ const { maxValue, minValue, onChange, onEnter, allowFloats } = this.props;
if (e.keyCode === KEY_ENTER) {
- const safeNum = getClampedNumber(e.target.value, minValue, maxValue);
+ const safeNum = getClampedNumber(
+ e.target.value,
+ minValue,
+ maxValue,
+ allowFloats
+ );
this.setEditing(false);
if (onChange) {
onChange(e, +safeNum);
@@ -91,11 +104,16 @@ export class RestrictedInput extends Component {
}
componentDidMount() {
- const { maxValue, minValue } = this.props;
+ const { maxValue, minValue, allowFloats } = this.props;
const nextValue = this.props.value?.toString();
const input = this.inputRef.current;
if (input) {
- input.value = getClampedNumber(nextValue, minValue, maxValue);
+ input.value = getClampedNumber(
+ nextValue,
+ minValue,
+ maxValue,
+ allowFloats
+ );
}
if (this.props.autoFocus || this.props.autoSelect) {
setTimeout(() => {
@@ -109,14 +127,19 @@ export class RestrictedInput extends Component {
}
componentDidUpdate(prevProps, _) {
- const { maxValue, minValue } = this.props;
+ const { maxValue, minValue, allowFloats } = this.props;
const { editing } = this.state;
const prevValue = prevProps.value?.toString();
const nextValue = this.props.value?.toString();
const input = this.inputRef.current;
if (input && !editing) {
if (nextValue !== prevValue && nextValue !== input.value) {
- input.value = getClampedNumber(nextValue, minValue, maxValue);
+ input.value = getClampedNumber(
+ nextValue,
+ minValue,
+ maxValue,
+ allowFloats
+ );
}
}
}
diff --git a/tgui/packages/tgui/interfaces/AresAdmin.js b/tgui/packages/tgui/interfaces/AresAdmin.js
new file mode 100644
index 000000000000..4f19cf452b17
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/AresAdmin.js
@@ -0,0 +1,1946 @@
+import { useBackend } from '../backend';
+import { Flex, Box, Section, Button, Stack } from '../components';
+import { Window } from '../layouts';
+
+const PAGES = {
+ 'login': () => Login,
+ 'main': () => MainMenu,
+ 'announcements': () => AnnouncementLogs,
+ 'bioscans': () => BioscanLogs,
+ 'bombardments': () => BombardmentLogs,
+ 'apollo': () => ApolloLog,
+ 'access_log': () => AccessLogs,
+ 'delete_log': () => DeletionLogs,
+ 'flight_log': () => FlightLogs,
+ 'talking': () => ARESTalk,
+ 'deleted_talks': () => DeletedTalks,
+ 'read_deleted': () => ReadingTalks,
+ 'security': () => Security,
+ 'requisitions': () => Requisitions,
+ 'emergency': () => Emergency,
+ 'admin_access_log': () => AdminAccessLogs,
+ 'access_management': () => AccessManagement,
+ 'maintenance_management': () => MaintManagement,
+};
+
+export const AresAdmin = (props, context) => {
+ const { data } = useBackend(context);
+ const { current_menu, sudo } = data;
+ const PageComponent = PAGES[current_menu]();
+
+ let themecolor = 'crtyellow';
+ if (sudo >= 1) {
+ themecolor = 'crtred';
+ }
+
+ return (
+
+
+
+
+
+ );
+};
+
+const Login = (props, context) => {
+ const { act } = useBackend(context);
+
+ return (
+
+ ARES v3.2 Remote Interface
+
+ WY-DOS Executive
+
+ Version 4.5.2
+ Copyright © 2182, Weyland Yutani Corp.
+
+ act('login')}
+ />
+
+ );
+};
+
+const MainMenu = (props, context) => {
+ const { data, act } = useBackend(context);
+ const { logged_in, access_text, last_page, current_menu, sudo, admin_login } =
+ data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ disabled={current_menu === 'main'}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+ Navigation Menu
+
+
+
+ Access Level 1
+
+
+ act('page_announcements')}
+ />
+
+
+ act('page_1to1')}
+ />
+
+
+
+
+
+ Access Level 2
+
+
+ act('page_flight')}
+ />
+
+
+ act('page_bioscans')}
+ />
+
+
+ act('page_bombardments')}
+ />
+
+
+
+
+
+ Access Level 3
+
+
+ act('page_security')}
+ />
+
+
+ act('page_apollo')}
+ />
+
+
+
+
+
+ Access Level 5
+
+
+ act('page_emergency')}
+ />
+
+
+ act('page_requisitions')}
+ />
+
+
+
+
+
+ Access Level 6
+
+
+ act('page_access')}
+ />
+
+
+
+
+ Access Level 9
+
+
+ act('page_deleted')}
+ />
+
+
+ act('page_deleted_1to1')}
+ />
+
+
+
+
+ Maintenance Access
+
+ {sudo === 0 && (
+
+
+
+ )}
+ {sudo >= 1 && (
+
+
+
+ )}
+
+
+
+
+
+ Remote Admin
+
+
+ act('page_admin_list')}
+ />
+
+
+
+
+ ARES Actions
+
+
+ act('page_access_management')}
+ />
+
+
+ act('page_maint_management')}
+ />
+
+
+
+ >
+ );
+};
+
+const AnnouncementLogs = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ records_announcement,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+ Announcement Logs
+
+ {!!records_announcement.length && (
+
+
+ Time
+
+
+ Title
+
+
+ Details
+
+
+ )}
+ {records_announcement.map((record, i) => {
+ return (
+
+
+ {record.time}
+
+
+ {record.title}
+
+
+ {record.details}
+
+
+
+
+
+ );
+ })}
+
+ >
+ );
+};
+
+const BioscanLogs = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ records_bioscan,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+ Bioscan Logs
+
+ {!!records_bioscan.length && (
+
+
+ Time
+
+
+ Title
+
+
+ Details
+
+
+ )}
+ {records_bioscan.map((record, i) => {
+ return (
+
+
+ {record.time}
+
+
+ {record.title}
+
+
+ {record.details}
+
+
+
+
+
+ );
+ })}
+
+ >
+ );
+};
+
+const BombardmentLogs = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ records_bombardment,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+ Orbital Bombardment Logs
+
+ {!!records_bombardment.length && (
+
+
+ Time
+
+
+ Warhead
+
+
+ User
+
+
+ Coordinates
+
+
+ )}
+ {records_bombardment.map((record, i) => {
+ return (
+
+
+ {record.time}
+
+
+ {record.title}
+
+ {record.user}
+
+ {record.details}
+
+
+
+
+
+ );
+ })}
+
+ >
+ );
+};
+
+const ApolloLog = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ apollo_log,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+ Apollo Log
+
+ {apollo_log.map((apollo_message, i) => {
+ return (
+
+ {apollo_message}
+
+ );
+ })}
+
+ >
+ );
+};
+
+const AccessLogs = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ access_log,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+ Access Log
+
+ {access_log.map((login, i) => {
+ return (
+
+ {login}
+
+ );
+ })}
+
+ >
+ );
+};
+
+const DeletionLogs = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ records_deletion,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+ Deletion Log
+
+ {!!records_deletion.length && (
+
+
+ Deletion Time
+
+
+ Deleted by
+
+
+ Title
+
+
+ Details
+
+
+ )}
+ {records_deletion.map((record, i) => {
+ return (
+
+
+ {record.time}
+
+ {record.user}
+
+ {record.title}
+
+
+ {record.details}
+
+
+ );
+ })}
+
+ >
+ );
+};
+
+const ARESTalk = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ active_convo,
+ active_ref,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+
+
+ {!active_convo.length && (
+ act('new_conversation')}
+ />
+ )}
+ {active_convo.map((message, i) => {
+ return (
+
+ {message}
+
+ );
+ })}
+ {!!active_convo.length && (
+
+
+ act('ares_reply', { active_convo: active_ref })}
+ />
+
+
+
+ act('fake_message_ares', { active_convo: active_ref })
+ }
+ />
+
+
+ )}
+
+
+
+ act('clear_conversation', { active_convo: active_ref })
+ }
+ disabled={!active_convo.length}
+ />
+
+ >
+ );
+};
+
+const DeletedTalks = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ deleted_discussions,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+ Deletion Log
+ {!!deleted_discussions.length && (
+
+
+ Deletion Time
+
+
+ Title
+
+
+ Read Record
+
+
+ )}
+ {deleted_discussions.map((record, i) => {
+ return (
+
+
+ {record.time}
+
+
+ {record.title}
+
+
+ act('read_record', { record: record.ref })}
+ />
+
+
+ );
+ })}
+
+ >
+ );
+};
+
+const ReadingTalks = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ deleted_conversation,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+ Deleted Conversation
+ {deleted_conversation.map((message, i) => {
+ return (
+
+ {message}
+
+ );
+ })}
+
+ >
+ );
+};
+
+const Requisitions = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ records_requisition,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+ ASRS Audit Log
+ {!!records_requisition.length && (
+
+
+ Time
+
+
+ User
+
+
+ Source
+
+
+ Order
+
+
+ )}
+ {records_requisition.map((record, i) => {
+ return (
+
+
+ {record.time}
+
+
+ {record.user}
+
+
+ {record.title}
+
+
+ {record.details}
+
+
+ );
+ })}
+
+ >
+ );
+};
+
+const FlightLogs = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ records_flight,
+ access_level,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+
+ act('logout')}
+ />
+
+
+
+
+ Flight Control Logs
+ {!!records_flight.length && (
+
+
+ Time
+
+
+ User
+
+
+ Details
+
+
+ )}
+ {records_flight.map((record, i) => {
+ return (
+
+
+ {record.time}
+
+
+ {record.user}
+
+
+ {record.details}
+
+
+ act('delete_record', { record: record.ref })}
+ />
+
+
+ );
+ })}
+
+ >
+ );
+};
+
+const Security = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ records_security,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+
+ Security Updates
+ {!!records_security.length && (
+
+
+ Time
+
+
+ Title
+
+
+ Details
+
+
+ )}
+ {records_security.map((record, i) => {
+ return (
+
+
+ {record.time}
+
+
+ {record.title}
+
+
+ {record.details}
+
+
+
+
+
+ );
+ })}
+
+ >
+ );
+};
+
+const Emergency = (props, context) => {
+ const { data, act } = useBackend(context);
+ const { logged_in, access_text, last_page, current_menu, admin_login } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+
+ {logged_in}, {access_text}
+
+ Remote Admin: {admin_login}
+
+
+ act('logout')}
+ />
+
+
+
+ Emergency Protocols
+
+
+
+
+
+
+ >
+ );
+};
+
+// -------------------------------------------------------------------- //
+// Anything below this line is exclusive to the Admin Remote Interface.
+// -------------------------------------------------------------------- //
+
+const AdminAccessLogs = (props, context) => {
+ const { data, act } = useBackend(context);
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ admin_access_log,
+ admin_login,
+ } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+ Remote Admin: {admin_login}
+
+ act('logout')}
+ />
+
+
+
+
+ Access Log
+
+ {admin_access_log.map((login, i) => {
+ return (
+
+ {login}
+
+ );
+ })}
+
+ >
+ );
+};
+
+const AccessManagement = (props, context) => {
+ const { data, act } = useBackend(context);
+ const { last_page, current_menu, access_tickets, admin_login } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+ Remote Admin: {admin_login}
+
+ act('logout')}
+ />
+
+
+
+
+ Access Ticket Management
+ {!!access_tickets.length && (
+
+
+ ID
+
+
+ Time
+
+
+ Submitter
+
+
+ For
+
+
+ Reason
+
+
+ )}
+ {access_tickets.map((ticket, i) => {
+ let can_update = 'Yes';
+ if (ticket.lock_status === 'CLOSED') {
+ can_update = 'No';
+ }
+ let view_status = 'Ticket is pending assignment.';
+ let view_icon = 'circle-question';
+ let update_tooltip = 'Grant Access';
+ if (ticket.status === 'rejected') {
+ view_status = 'Ticket has been rejected.';
+ view_icon = 'circle-xmark';
+ update_tooltip = 'Ticket rejected. No further changes possible.';
+ } else if (ticket.status === 'cancelled') {
+ view_status = 'Ticket was cancelled by reporter.';
+ view_icon = 'circle-stop';
+ update_tooltip = 'Ticket cancelled. No further changes possible.';
+ } else if (ticket.status === 'granted') {
+ view_status = 'Access ticket has been granted.';
+ view_icon = 'circle-check';
+ update_tooltip = 'Revoke Access';
+ } else if (ticket.status === 'revoked') {
+ view_status = 'Access ticket has been revoked.';
+ view_icon = 'circle-minus';
+ update_tooltip = 'Access revoked. No further changes possible.';
+ } else if (ticket.status === 'returned') {
+ view_status = 'Access ticket has been returned.';
+ view_icon = 'circle-minus';
+ update_tooltip =
+ 'Access self-returned. No further changes possible.';
+ }
+ let can_reject = 'Yes';
+ if (can_update === 'No') {
+ can_reject = 'No';
+ }
+ if (ticket.status !== 'pending') {
+ can_reject = 'No';
+ }
+
+ return (
+
+
+ {ticket.id}
+
+
+ {ticket.time}
+
+
+ {ticket.submitter}
+
+
+ {ticket.title}
+
+
+ {ticket.details}
+
+
+
+ act('auth_access', { ticket: ticket.ref })}
+ />
+ {can_reject === 'Yes' && (
+ act('reject_access', { ticket: ticket.ref })}
+ />
+ )}
+
+
+ );
+ })}
+
+ >
+ );
+};
+
+const MaintManagement = (props, context) => {
+ const { data, act } = useBackend(context);
+ const { last_page, current_menu, maintenance_tickets, admin_login } = data;
+
+ return (
+ <>
+
+
+
+ act('go_back')}
+ disabled={last_page === current_menu}
+ />
+ act('home')}
+ />
+
+
+ Remote Admin: {admin_login}
+
+ act('logout')}
+ />
+
+
+
+
+ Maintenance Reports Management
+
+
+ act('new_report')}
+ />
+
+
+ {!!maintenance_tickets.length && (
+
+
+ ID
+
+
+ Time
+
+
+ Category
+
+
+ Details
+
+
+ Submit By
+
+
+ Assigned To
+
+
+ )}
+ {maintenance_tickets.map((ticket, i) => {
+ let view_status = 'Ticket is pending assignment.';
+ let view_icon = 'circle-question';
+ if (ticket.status === 'assigned') {
+ view_status = 'Ticket is assigned.';
+ view_icon = 'circle-plus';
+ } else if (ticket.status === 'rejected') {
+ view_status = 'Ticket has been rejected.';
+ view_icon = 'circle-xmark';
+ } else if (ticket.status === 'cancelled') {
+ view_status = 'Ticket was cancelled by reporter.';
+ view_icon = 'circle-stop';
+ } else if (ticket.status === 'completed') {
+ view_status = 'Ticket has been successfully resolved.';
+ view_icon = 'circle-check';
+ }
+ let can_claim = 'Yes';
+ if (ticket.lock_status === 'CLOSED') {
+ can_claim = 'No';
+ }
+ let can_mark = 'Yes';
+ if (ticket.lock_status === 'CLOSED') {
+ can_mark = 'No';
+ }
+
+ return (
+
+ {!!ticket.priority_status && (
+
+ {ticket.id}
+
+ )}
+ {!ticket.priority_status && (
+
+ {ticket.id}
+
+ )}
+
+ {ticket.time}
+
+ {ticket.category}
+
+ {ticket.details}
+
+
+ {ticket.submitter}
+
+
+ {ticket.assignee}
+
+
+
+ act('claim_ticket', { ticket: ticket.ref })}
+ />
+ act('mark_ticket', { ticket: ticket.ref })}
+ />
+
+
+ );
+ })}
+
+ >
+ );
+};
diff --git a/tgui/packages/tgui/interfaces/AresInterface.jsx b/tgui/packages/tgui/interfaces/AresInterface.jsx
index f2ced09014f6..79ad85044ec1 100644
--- a/tgui/packages/tgui/interfaces/AresInterface.jsx
+++ b/tgui/packages/tgui/interfaces/AresInterface.jsx
@@ -1,3 +1,7 @@
+// -------------------------------------------------------------------- //
+// Please ensure when updating this menu, changes are reflected in AresAdmin.js
+// -------------------------------------------------------------------- //
+
import { useBackend } from '../backend';
import { Flex, Box, Section, Button, Stack } from '../components';
import { Window } from '../layouts';
@@ -33,7 +37,7 @@ export const AresInterface = (props) => {
}
return (
-
+
@@ -129,7 +133,7 @@ const MainMenu = (props) => {
- Access Level 0
+ Access Level 1
{
/>
- {access_level >= 1 && (
+ {access_level >= 2 && (
- Access Level 1
+ Access Level 2
{
)}
- {access_level >= 2 && (
+ {access_level >= 3 && (
- Access Level 2
+ Access Level 3
{
)}
- {access_level >= 4 && (
+ {access_level >= 5 && (
- Access Level 4
+ Access Level 5
{
)}
- {access_level >= 5 && (
+ {access_level >= 6 && (
- Access Level 5
+ Access Level 6
{
)}
- {access_level >= 8 && (
+ {access_level >= 9 && (
- Access Level 8
+ Access Level 9
{
)}
- {access_level >= 10 && (
+ {access_level >= 11 && (
- Access Level 10
+ Maintenance Access
{sudo === 0 && (
@@ -436,7 +440,7 @@ const AnnouncementLogs = (props) => {
act('delete_record', { record: record.ref })}
/>
@@ -532,7 +536,7 @@ const BioscanLogs = (props) => {
act('delete_record', { record: record.ref })}
/>
@@ -632,7 +636,7 @@ const BombardmentLogs = (props) => {
act('delete_record', { record: record.ref })}
/>
@@ -1363,7 +1367,7 @@ const Security = (props) => {
act('delete_record', { record: record.ref })}
/>
diff --git a/tgui/packages/tgui/interfaces/Changelog.jsx b/tgui/packages/tgui/interfaces/Changelog.jsx
index 5d2fa9447b47..91d107673675 100644
--- a/tgui/packages/tgui/interfaces/Changelog.jsx
+++ b/tgui/packages/tgui/interfaces/Changelog.jsx
@@ -1,39 +1,39 @@
import { classes } from 'common/react';
import { useBackend } from '../backend';
import { Component, Fragment } from 'react';
-import { Box, Button, Dropdown, Icon, Section, Stack, Table } from '../components';
+import { Box, Button, Dropdown, Icon, Section, Stack, Table, Tooltip } from '../components';
import { Window } from '../layouts';
import { resolveAsset } from '../assets';
import dateformat from 'dateformat';
import yaml from 'js-yaml';
-const icons = {
- bugfix: { icon: 'bug', color: 'green' },
- fix: { icon: 'bug', color: 'green' },
- wip: { icon: 'hammer', color: 'orange' },
- qol: { icon: 'hand-holding-heart', color: 'green' },
- soundadd: { icon: 'tg-sound-plus', color: 'green' },
- sounddel: { icon: 'tg-sound-minus', color: 'red' },
- add: { icon: 'check-circle', color: 'green' },
- expansion: { icon: 'check-circle', color: 'green' },
- rscadd: { icon: 'check-circle', color: 'green' },
- rscdel: { icon: 'times-circle', color: 'red' },
- imageadd: { icon: 'tg-image-plus', color: 'green' },
- imagedel: { icon: 'tg-image-minus', color: 'red' },
- spellcheck: { icon: 'spell-check', color: 'green' },
- experiment: { icon: 'radiation', color: 'yellow' },
- balance: { icon: 'balance-scale-right', color: 'yellow' },
- code_imp: { icon: 'code', color: 'green' },
- refactor: { icon: 'tools', color: 'green' },
- config: { icon: 'cogs', color: 'purple' },
- admin: { icon: 'user-shield', color: 'purple' },
- server: { icon: 'server', color: 'purple' },
- tgs: { icon: 'toolbox', color: 'purple' },
- tweak: { icon: 'wrench', color: 'green' },
- ui: { icon: 'desktop', color: 'blue' },
- mapadd: { icon: 'earth-africa', color: 'yellow' },
- maptweak: { icon: 'map-location-dot', color: 'green' },
- unknown: { icon: 'info-circle', color: 'label' },
+const changeTypes = {
+ bugfix: { icon: 'bug', color: 'green', desc: 'Fix' },
+ fix: { icon: 'bug', color: 'green', desc: 'Fix' },
+ wip: { icon: 'hammer', color: 'orange', desc: 'WIP' },
+ qol: { icon: 'hand-holding-heart', color: 'green', desc: 'QOL' },
+ soundadd: { icon: 'tg-sound-plus', color: 'green', desc: 'Sound add' },
+ sounddel: { icon: 'tg-sound-minus', color: 'red', desc: 'Sound del' },
+ add: { icon: 'check-circle', color: 'green', desc: 'Addition' },
+ expansion: { icon: 'check-circle', color: 'green', desc: 'Addition' },
+ rscadd: { icon: 'check-circle', color: 'green', desc: 'Addition' },
+ rscdel: { icon: 'times-circle', color: 'red', desc: 'Removal' },
+ imageadd: { icon: 'tg-image-plus', color: 'green', desc: 'Sprite add' },
+ imagedel: { icon: 'tg-image-minus', color: 'red', desc: 'Sprite del' },
+ spellcheck: { icon: 'spell-check', color: 'green', desc: 'Spellcheck' },
+ experiment: { icon: 'radiation', color: 'yellow', desc: 'Experiment' },
+ balance: { icon: 'balance-scale-right', color: 'yellow', desc: 'Balance' },
+ code_imp: { icon: 'code', color: 'green', desc: 'Code improvement' },
+ refactor: { icon: 'tools', color: 'green', desc: 'Code refactor' },
+ config: { icon: 'cogs', color: 'purple', desc: 'Config' },
+ admin: { icon: 'user-shield', color: 'purple', desc: 'Admin' },
+ server: { icon: 'server', color: 'purple', desc: 'Server' },
+ tgs: { icon: 'toolbox', color: 'purple', desc: 'Server (TGS)' },
+ tweak: { icon: 'wrench', color: 'green', desc: 'Tweak' },
+ ui: { icon: 'desktop', color: 'blue', desc: 'UI' },
+ mapadd: { icon: 'earth-africa', color: 'yellow', desc: 'Map add' },
+ maptweak: { icon: 'map-location-dot', color: 'green', desc: 'Map tweak' },
+ unknown: { icon: 'info-circle', color: 'label', desc: 'Unknown' },
};
export class Changelog extends Component {
@@ -273,29 +273,27 @@ export class Changelog extends Component {
{changes.map((change) => {
- const changeType = Object.keys(change)[0];
+ const changeKey = Object.keys(change)[0];
+ const changeType =
+ changeTypes[changeKey] || changeTypes['unknown'];
return (
-
+
-
+
+
+
- {change[changeType]}
+ {change[changeKey]}
);
diff --git a/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx b/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx
index 2ae9a17fe35f..679b78efe843 100644
--- a/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx
+++ b/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx
@@ -3,9 +3,17 @@ import { Window } from '../layouts';
import { Box, Button, Flex, Icon, ProgressBar, Section, Stack } from '../components';
import { LaunchButton, CancelLaunchButton, DisabledScreen, InFlightCountdown, LaunchCountdown, NavigationProps, ShuttleRecharge, DockingPort } from './NavigationShuttle';
+const DoorStatusEnum = {
+ SHUTTLE_DOOR_BROKEN: -1,
+ SHUTTLE_DOOR_UNLOCKED: 0,
+ SHUTTLE_DOOR_LOCKED: 1,
+} as const;
+
+type DoorStatusEnums = typeof DoorStatusEnum[keyof typeof DoorStatusEnum];
+
interface DoorStatus {
id: string;
- value: 0 | 1;
+ value: DoorStatusEnums;
}
interface AutomatedControl {
@@ -40,7 +48,7 @@ const DropshipDoorControl = () => {
.filter((x) => x.id === 'all')
.map((x) => (
<>
- {x.value === 0 && (
+ {x.value === DoorStatusEnum.SHUTTLE_DOOR_UNLOCKED && (
@@ -54,7 +62,7 @@ const DropshipDoorControl = () => {
)}
- {x.value === 1 && (
+ {x.value === DoorStatusEnum.SHUTTLE_DOOR_LOCKED && (
@@ -77,7 +85,10 @@ const DropshipDoorControl = () => {
return (
<>
- {x.value === 0 && (
+ {x.value === DoorStatusEnum.SHUTTLE_DOOR_BROKEN && (
+ No response
+ )}
+ {x.value === DoorStatusEnum.SHUTTLE_DOOR_UNLOCKED && (
act('door-control', {
@@ -89,7 +100,7 @@ const DropshipDoorControl = () => {
Lock {name}
)}
- {x.value === 1 && (
+ {x.value === DoorStatusEnum.SHUTTLE_DOOR_LOCKED && (
diff --git a/tgui/packages/tgui/interfaces/HealthScan.jsx b/tgui/packages/tgui/interfaces/HealthScan.jsx
index c94d7eda0b45..c941c111d487 100644
--- a/tgui/packages/tgui/interfaces/HealthScan.jsx
+++ b/tgui/packages/tgui/interfaces/HealthScan.jsx
@@ -389,6 +389,11 @@ const ScannerLimbs = (props) => {
[Embedded Object]
) : null}
+ {limb.open_zone_incision ? (
+
+ [Open Surgical Incision In {limb.open_zone_incision}]
+
+ ) : null}
>
)}
diff --git a/tgui/packages/tgui/interfaces/ListInput.jsx b/tgui/packages/tgui/interfaces/ListInput.jsx
index 2ed72bcc63bf..324e1f6b64fe 100644
--- a/tgui/packages/tgui/interfaces/ListInput.jsx
+++ b/tgui/packages/tgui/interfaces/ListInput.jsx
@@ -123,9 +123,9 @@ export const ListInput = (props) => {
}}
/>
}>
- {displayedArray.map((button) => (
+ {displayedArray.map((button, i) => (
{
setDisplayedArray(
buttons.filter(
diff --git a/tgui/packages/tgui/interfaces/MedalsPanel.jsx b/tgui/packages/tgui/interfaces/MedalsPanel.jsx
index 515dba979c1a..24d6467c9b6f 100644
--- a/tgui/packages/tgui/interfaces/MedalsPanel.jsx
+++ b/tgui/packages/tgui/interfaces/MedalsPanel.jsx
@@ -1,17 +1,15 @@
import { useBackend, useLocalState } from '../backend';
-import { Tabs, Section, Button, Fragment, Stack, Flex } from '../components';
+import { Tabs, Section, Button, Stack, Flex } from '../components';
import { Window } from '../layouts';
const PAGES = [
{
title: 'USCM',
- component: () => MedalsPage,
color: 'blue',
icon: 'medal',
},
{
title: 'Hive',
- component: () => MedalsPage,
color: 'purple',
icon: 'star',
},
@@ -23,8 +21,6 @@ export const MedalsPanel = (props) => {
const [pageIndex, setPageIndex] = useLocalState('pageIndex', 1);
- const PageComponent = PAGES[pageIndex].component();
-
return (
{
- {
+ <>
{
ml={0.5}
onClick={() => act(isMarineMedal ? 'add_medal' : 'add_jelly')}
/>
-
+ >
}>
-
+ <>
{Object.keys(awards).map((recipient_name, recipient_index) => (
))}
-
+ >
);
};
diff --git a/tgui/packages/tgui/interfaces/MfdPanels/FiremissionPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/FiremissionPanel.tsx
index 365ac7d84cac..406d57cba028 100644
--- a/tgui/packages/tgui/interfaces/MfdPanels/FiremissionPanel.tsx
+++ b/tgui/packages/tgui/interfaces/MfdPanels/FiremissionPanel.tsx
@@ -373,7 +373,7 @@ const OffsetDetailed = (
return <>error>;
}
const ammoConsumption = weaponFm.offsets
- .map((x) => (x === '-' ? props.equipment.burst : 0))
+ .map((x) => (x === '-' ? 0 : props.equipment.burst))
.reduce(
(accumulator, currentValue) => (accumulator ?? 0) + (currentValue ?? 0),
0
diff --git a/tgui/packages/tgui/interfaces/NavigationShuttle.tsx b/tgui/packages/tgui/interfaces/NavigationShuttle.tsx
index 1b81fe6dfa19..adcf42b244fe 100644
--- a/tgui/packages/tgui/interfaces/NavigationShuttle.tsx
+++ b/tgui/packages/tgui/interfaces/NavigationShuttle.tsx
@@ -1,5 +1,5 @@
import { useBackend, useSharedState } from '../backend';
-import { Box, Button, Icon, Flex, Section, Stack, ProgressBar } from '../components';
+import { Box, Button, Icon, Flex, Section, Stack, ProgressBar, Dimmer } from '../components';
import { Window } from '../layouts';
export interface DockingPort {
@@ -19,6 +19,9 @@ export interface NavigationProps {
max_refuel_duration: number;
max_engine_start_duration: number;
max_pre_arrival_duration: number;
+ must_launch_home: boolean;
+ spooling: boolean;
+ mission_accomplished: boolean;
is_disabled: 0 | 1;
locked_down: 0 | 1;
}
@@ -236,23 +239,74 @@ const DoorControls = () => {
};
export const DisabledScreen = (props) => {
+ const { data, act } = useBackend();
+
+ const disabled_text = data.mission_accomplished
+ ? 'Auto-navigation protocol completed - return home complete. Shuttle disabled.'
+ : 'The shuttle has had an error. Contact your nearest system administrator to resolve the issue.';
+
return (
-
- The shuttle has had an error. Contact your nearest system
- administrator to resolve the issue.
-
+ {disabled_text}
);
};
+const LaunchHome = (props) => {
+ const { data, act } = useBackend();
+
+ return (
+
+ act('launch_home')}
+ />
+
+ );
+};
+
+const SpoolingDimmer = (props) => {
+ const { data, act } = useBackend();
+
+ return (
+
+
+
+ Spooling...
+
+
+
+
+
+
+ );
+};
+
+const DestinationOptions = (props) => {
+ const { data, act } = useBackend();
+
+ if (data.must_launch_home) {
+ return (
+ <>
+
+
+ >
+ );
+ } else {
+ return ;
+ }
+};
+
const RenderScreen = (props) => {
const { data } = useBackend();
return (
<>
- {data.shuttle_mode === 'idle' && }
+ {!!data.spooling && }
+ {data.shuttle_mode === 'idle' && }
{data.shuttle_mode === 'igniting' && }
{data.shuttle_mode === 'recharging' && }
{data.shuttle_mode === 'called' && }
@@ -264,7 +318,7 @@ const RenderScreen = (props) => {
export const NavigationShuttle = (props) => {
const { data } = useBackend();
return (
-
+
{data.is_disabled === 1 && }
{data.is_disabled === 0 && }
diff --git a/tgui/packages/tgui/interfaces/NumberInputModal.tsx b/tgui/packages/tgui/interfaces/NumberInputModal.tsx
index eff7acb62a1b..32d7161d8faf 100644
--- a/tgui/packages/tgui/interfaces/NumberInputModal.tsx
+++ b/tgui/packages/tgui/interfaces/NumberInputModal.tsx
@@ -13,11 +13,19 @@ type NumberInputData = {
min_value: number | null;
timeout: number;
title: string;
+ integer_only: 0 | 1;
};
-export const NumberInputModal = (props) => {
+export const NumberInputModal = () => {
const { act, data } = useBackend();
- const { init_value, large_buttons, message = '', timeout, title } = data;
+ const {
+ init_value,
+ large_buttons,
+ message = '',
+ timeout,
+ title,
+ integer_only,
+ } = data;
const [input, setInput] = useLocalState('input', init_value);
const onChange = (value: number) => {
if (value === input) {
@@ -56,7 +64,12 @@ export const NumberInputModal = (props) => {
{message}
-
+
@@ -72,7 +85,7 @@ export const NumberInputModal = (props) => {
const InputArea = (props) => {
const { act, data } = useBackend();
const { min_value, max_value, init_value } = data;
- const { input, onClick, onChange } = props;
+ const { input, onClick, onChange, integer_only } = props;
return (
@@ -94,6 +107,7 @@ const InputArea = (props) => {
onChange={(_, value) => onChange(value)}
onEnter={(_, value) => act('submit', { entry: value })}
value={input}
+ allowFloats={integer_only === 1 ? false : true}
/>
diff --git a/tgui/packages/tgui/interfaces/OverwatchConsole.jsx b/tgui/packages/tgui/interfaces/OverwatchConsole.jsx
index 48612b4f9a3b..c7ca2c2244ad 100644
--- a/tgui/packages/tgui/interfaces/OverwatchConsole.jsx
+++ b/tgui/packages/tgui/interfaces/OverwatchConsole.jsx
@@ -1,4 +1,4 @@
-import { useBackend, useLocalState, useSharedState } from '../backend';
+import { useBackend, useSharedState } from '../backend';
import { Button, Section, Stack, Tabs, Table, Box, Input, NumberInput, LabeledControls, Divider, Collapsible } from '../components';
import { Window } from '../layouts';
@@ -60,7 +60,7 @@ const HomePanel = (props) => {
const SquadPanel = (props) => {
const { act, data } = useBackend();
- const [category, setCategory] = useLocalState('selected', 'monitor');
+ const [category, setCategory] = useSharedState('selected', 'monitor');
return (
<>
@@ -325,21 +325,21 @@ const SquadMonitor = (props) => {
let { marines, squad_leader } = data;
- const [hidden_marines, setHiddenMarines] = useLocalState(
+ const [hidden_marines, setHiddenMarines] = useSharedState(
'hidden_marines',
[]
);
- const [showHiddenMarines, setShowHiddenMarines] = useLocalState(
+ const [showHiddenMarines, setShowHiddenMarines] = useSharedState(
'showhidden',
false
);
- const [showDeadMarines, setShowDeadMarines] = useLocalState(
+ const [showDeadMarines, setShowDeadMarines] = useSharedState(
'showdead',
false
);
- const [marineSearch, setMarineSearch] = useLocalState('marinesearch', null);
+ const [marineSearch, setMarineSearch] = useSharedState('marinesearch', null);
let determine_status_color = (status) => {
let conscious = status.includes('Conscious');
diff --git a/tgui/packages/tgui/interfaces/PartFabricator.jsx b/tgui/packages/tgui/interfaces/PartFabricator.jsx
index 0bccb7009bee..829ba2c2f88b 100644
--- a/tgui/packages/tgui/interfaces/PartFabricator.jsx
+++ b/tgui/packages/tgui/interfaces/PartFabricator.jsx
@@ -13,10 +13,9 @@ export const PartFabricator = (props) => {
);
};
-const GeneralPanel = (props) => {
- const { act, data } = useBackend();
- const { points, Equipment, Ammo } = data;
-
+const GeneralPanel = (props, context) => {
+ const { act, data } = useBackend(context);
+ const { points, omnisentrygun_price, Equipment, Ammo } = data;
return (
@@ -37,8 +36,8 @@ const GeneralPanel = (props) => {
tooltipPosition="left"
onClick={() =>
act('produce', {
- path: Equipment.path,
- cost: Equipment.cost,
+ index: Equipment.index,
+ is_ammo: Equipment.is_ammo,
})
}
/>
@@ -57,18 +56,34 @@ const GeneralPanel = (props) => {
label={Ammo.name}
className="underline"
buttons={
-
- act('produce', {
- path: Ammo.path,
- cost: Ammo.cost,
- })
- }
- />
+ Ammo.name === 'A/C-49-P Air Deployable Sentry' ? (
+
+ act('produce', {
+ index: Ammo.index,
+ is_ammo: Ammo.is_ammo,
+ })
+ }
+ />
+ ) : (
+
+ act('produce', {
+ index: Ammo.index,
+ is_ammo: Ammo.is_ammo,
+ })
+ }
+ />
+ )
}
/>
))}
diff --git a/tgui/packages/tgui/interfaces/PingRelaysPanel.jsx b/tgui/packages/tgui/interfaces/PingRelaysPanel.jsx
new file mode 100644
index 000000000000..7b6c3016504e
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/PingRelaysPanel.jsx
@@ -0,0 +1,175 @@
+import { useBackend } from '../backend';
+import { round } from 'common/math';
+import { Box, Stack, Button, Icon, RoundGauge, Flex } from '../components';
+import { Window } from '../layouts';
+import { Color } from 'common/color';
+import { Ping } from 'common/ping';
+import { Component } from 'react';
+
+const RED = new Color(220, 40, 40);
+
+export class PingResult {
+ constructor(desc = 'Loading...', url = '', ping = -1) {
+ this.desc = desc;
+ this.url = url;
+ this.ping = ping;
+ this.error = null;
+ }
+
+ update = function (desc, url, ping, error) {
+ this.desc = desc;
+ this.url = url;
+ this.ping = ping;
+ this.error = error;
+ };
+}
+
+class PingApp extends Component {
+ constructor() {
+ super();
+
+ this.pinger = new Ping();
+ this.results = new Array();
+ this.state = {
+ currentIndex: 0,
+ lastClickedIndex: 0,
+ lastClickedState: false,
+ };
+ }
+
+ startTest(desc, pingURL, connectURL) {
+ this.pinger.ping('http://' + pingURL, (error, pong) => {
+ this.results[this.state.currentIndex]?.update(
+ desc,
+ 'byond://' + connectURL,
+ round(pong * 0.75), // The ping is inflated so lets compensate a bit
+ error
+ );
+ this.setState((prevState) => ({
+ currentIndex: prevState.currentIndex + 1,
+ }));
+ });
+ }
+
+ handleConfirmChange(index, newState) {
+ if (newState || this.state.lastClickedIndex === index) {
+ this.setState({ lastClickedIndex: index });
+ this.setState({ lastClickedState: newState });
+ }
+ }
+
+ componentDidMount() {
+ this.setState({ currentIndex: 0 });
+ for (let i = 0; i < this.props.relayNames.length; i++) {
+ this.results.push(new PingResult());
+ this.startTest(
+ this.props.relayNames[i],
+ this.props.relayPings[i],
+ this.props.relayCons[i]
+ );
+ }
+ }
+
+ componentWillUnmount() {
+ this.pinger.cancel();
+ }
+
+ render() {
+ const { act } = useBackend();
+
+ return (
+
+ {this.results.map((result, i) => (
+
+
+ this.handleConfirmChange(i, clickedOnce)
+ }
+ onClick={() =>
+ act('connect', { url: result.url, desc: result.desc })
+ }>
+ {result.ping <= -1 && result.error === null && (
+
+
+
+
+
+ {result.desc}
+
+
+
+ )}
+ {result.ping > -1 && result.error === null && (
+
+
+
+
+
+
+ {this.state.lastClickedIndex === i &&
+ this.state.lastClickedState
+ ? 'Connect via ' + result.desc + '?'
+ : result.desc}
+
+
+
+ x + 'ms'}
+ inline
+ />
+
+
+ )}
+ {result.error !== null && (
+
+
+
+
+
+ {result.desc}
+
+
+
+ {' (' + result.error + ')'}
+
+
+
+ )}
+
+
+ ))}
+
+ );
+ }
+}
+
+export const PingRelaysPanel = () => {
+ const { data } = useBackend();
+ const { relay_names, relay_pings, relay_cons } = data;
+
+ return (
+
+
+
+
+
+ );
+};
diff --git a/tgui/packages/tgui/interfaces/PlayerPanel.jsx b/tgui/packages/tgui/interfaces/PlayerPanel.jsx
index 85f73b581c67..e575d610b289 100644
--- a/tgui/packages/tgui/interfaces/PlayerPanel.jsx
+++ b/tgui/packages/tgui/interfaces/PlayerPanel.jsx
@@ -66,7 +66,15 @@ export const PlayerPanel = (props) => {
const [pageIndex, setPageIndex] = useLocalState('pageIndex', 0);
const [canModifyCkey, setModifyCkey] = useLocalState('canModifyCkey', false);
const PageComponent = PAGES[pageIndex].component();
- const { mob_name, mob_type, client_key, client_ckey, client_rank } = data;
+ const {
+ mob_name,
+ mob_type,
+ client_key,
+ client_ckey,
+ client_rank,
+ client_age,
+ first_join,
+ } = data;
return (
@@ -176,6 +184,28 @@ export const PlayerPanel = (props) => {
)}
+ {client_age && (
+
+
+ Account age:
+
+
+ {client_age}
+
+
+ )}
+ {first_join && (
+
+
+
+ First join:
+
+
+
+ {first_join}
+
+
+ )}
@@ -236,7 +266,6 @@ const GeneralActions = (props) => {
/>
{
/>
{
/>
{
width="100%"
icon="gavel"
color="red"
- content="Ban"
+ content="Timed Ban"
disabled={!hasPermission(data, 'mob_ban')}
onClick={() => act('mob_ban')}
/>
@@ -362,7 +389,6 @@ const PunishmentActions = (props) => {
/>
{
+
+
+ act('permanent_ban')}
+ />
+ act('sticky_ban')}
+ />
+
+
+
{
disabled={!hasPermission(data, 'show_notes')}
onClick={() => act('show_notes')}
/>
+ act('check_ckey')}
+ />
@@ -393,7 +448,6 @@ const PunishmentActions = (props) => {
{
/>
{
/>
{
{
key={i}
checked={getSpanSetting === spanData.span}
onClick={() => setSpanSetting(spanData.span)}
- height="100%"
/>
))}
@@ -553,7 +603,6 @@ const FunActions = (props) => {
@@ -613,7 +662,6 @@ const AntagActions = (props) => {
{
content="Make Mutineer"
/>
{
{!!is_human && (
<>
{
content="Make Xeno Cultist"
/>
{
)}
{!!is_xeno && (
{
@@ -782,7 +825,6 @@ const PhysicalActions = (props) => {
/>
{
content="Send to cryogenics"
icon="undo"
width="100%"
- height="100%"
disabled={!hasPermission(data, 'cryo_human')}
onClick={() => act('cryo_human')}>
@@ -816,7 +857,6 @@ const PhysicalActions = (props) => {
content="Drop all items"
icon="dumpster"
width="100%"
- height="100%"
disabled={!hasPermission(data, 'strip_equipment')}
onClick={() => act('strip_equipment', { drop_items: true })}
/>
@@ -827,7 +867,6 @@ const PhysicalActions = (props) => {
content="Set Squad"
icon="clipboard-list"
width="100%"
- height="100%"
disabled={!hasPermission(data, 'set_squad')}
onClick={() => act('set_squad')}
/>
@@ -835,7 +874,6 @@ const PhysicalActions = (props) => {
content="Set Faction"
icon="clipboard-list"
width="100%"
- height="100%"
disabled={!hasPermission(data, 'set_faction')}
onClick={() => act('set_faction')}
/>
@@ -859,7 +897,6 @@ const PhysicalActions = (props) => {
{
/>
{
const MainMenu = (props) => {
const { data, act } = useBackend();
- const { logged_in, access_text, last_page, current_menu, access_level } =
- data;
+ const {
+ logged_in,
+ access_text,
+ last_page,
+ current_menu,
+ access_level,
+ notify_sounds,
+ } = data;
let can_request_access = 'Yes';
if (access_level > 2) {
can_request_access = 'No';
}
+ let soundicon = 'volume-high';
+ if (!notify_sounds) {
+ soundicon = 'volume-xmark';
+ }
return (
<>
@@ -86,11 +96,17 @@ const MainMenu = (props) => {
act('home')}
disabled={current_menu === 'main'}
/>
+ act('toggle_sound')}
+ />
diff --git a/tgui/packages/tgui/styles/components/Button.scss b/tgui/packages/tgui/styles/components/Button.scss
index acdcaa65e3ef..70f944ad5a01 100644
--- a/tgui/packages/tgui/styles/components/Button.scss
+++ b/tgui/packages/tgui/styles/components/Button.scss
@@ -54,11 +54,6 @@ $bg-map: colors.$bg-map !default;
user-select: none;
-ms-user-select: none;
- &:last-child {
- margin-right: 0;
- margin-bottom: 0;
- }
-
.fa,
.fas,
.far {
diff --git a/tgui/public/tgui-panel.bundle.css b/tgui/public/tgui-panel.bundle.css
index 0fbf59185247..468393947fff 100644
--- a/tgui/public/tgui-panel.bundle.css
+++ b/tgui/public/tgui-panel.bundle.css
@@ -1,2 +1,2 @@
-html,body{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,*:before,*:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:6px 0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#1a1a1a !important}.color-white{color:#fff !important}.color-red{color:#df3e3e !important}.color-orange{color:#f37f33 !important}.color-yellow{color:#fbda21 !important}.color-olive{color:#cbe41c !important}.color-green{color:#25ca4c !important}.color-teal{color:#00d6cc !important}.color-blue{color:#2e93de !important}.color-dark-blue{color:#005fa7 !important}.color-violet{color:#7349cf !important}.color-purple{color:#ad45d0 !important}.color-pink{color:#e34da1 !important}.color-brown{color:#b97447 !important}.color-grey{color:#848484 !important}.color-light-grey{color:#b3b3b3 !important}.color-good{color:#68c22d !important}.color-average{color:#f29a29 !important}.color-bad{color:#df3e3e !important}.color-label{color:#8b9bb0 !important}.color-xeno{color:#664573 !important}.color-bg-black{background-color:#000 !important}.color-bg-white{background-color:#d9d9d9 !important}.color-bg-red{background-color:#bd2020 !important}.color-bg-orange{background-color:#d95e0c !important}.color-bg-yellow{background-color:#d9b804 !important}.color-bg-olive{background-color:#9aad14 !important}.color-bg-green{background-color:#1b9638 !important}.color-bg-teal{background-color:#009a93 !important}.color-bg-blue{background-color:#1c71b1 !important}.color-bg-dark-blue{background-color:#003e6e !important}.color-bg-violet{background-color:#552dab !important}.color-bg-purple{background-color:#8b2baa !important}.color-bg-pink{background-color:#cf2082 !important}.color-bg-brown{background-color:#8c5836 !important}.color-bg-grey{background-color:#646464 !important}.color-bg-light-grey{background-color:#919191 !important}.color-bg-good{background-color:#4d9121 !important}.color-bg-average{background-color:#cd7a0d !important}.color-bg-bad{background-color:#bd2020 !important}.color-bg-label{background-color:#657a94 !important}.color-bg-xeno{background-color:#462f4e !important}.debug-layout,.debug-layout *:not(g):not(path){color:rgba(255,255,255,.9) !important;background:rgba(0,0,0,0) !important;outline:1px solid rgba(255,255,255,.5) !important;box-shadow:none !important;filter:none !important}.debug-layout:hover,.debug-layout *:not(g):not(path):hover{outline-color:rgba(255,255,255,.8) !important}.outline-dotted{outline-style:dotted !important}.outline-dashed{outline-style:dashed !important}.outline-solid{outline-style:solid !important}.outline-double{outline-style:double !important}.outline-groove{outline-style:groove !important}.outline-ridge{outline-style:ridge !important}.outline-inset{outline-style:inset !important}.outline-outset{outline-style:outset !important}.outline-color-black{outline:.167rem solid #1a1a1a !important}.outline-color-white{outline:.167rem solid #fff !important}.outline-color-red{outline:.167rem solid #df3e3e !important}.outline-color-orange{outline:.167rem solid #f37f33 !important}.outline-color-yellow{outline:.167rem solid #fbda21 !important}.outline-color-olive{outline:.167rem solid #cbe41c !important}.outline-color-green{outline:.167rem solid #25ca4c !important}.outline-color-teal{outline:.167rem solid #00d6cc !important}.outline-color-blue{outline:.167rem solid #2e93de !important}.outline-color-dark-blue{outline:.167rem solid #005fa7 !important}.outline-color-violet{outline:.167rem solid #7349cf !important}.outline-color-purple{outline:.167rem solid #ad45d0 !important}.outline-color-pink{outline:.167rem solid #e34da1 !important}.outline-color-brown{outline:.167rem solid #b97447 !important}.outline-color-grey{outline:.167rem solid #848484 !important}.outline-color-light-grey{outline:.167rem solid #b3b3b3 !important}.outline-color-good{outline:.167rem solid #68c22d !important}.outline-color-average{outline:.167rem solid #f29a29 !important}.outline-color-bad{outline:.167rem solid #df3e3e !important}.outline-color-label{outline:.167rem solid #8b9bb0 !important}.outline-color-xeno{outline:.167rem solid #664573 !important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:bold}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8b9bb0;border-left:.1666666667em solid #8b9bb0;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button:last-child{margin-right:0;margin-bottom:0}.Button .fa,.Button .fas,.Button .far{margin-left:-0.25em;margin-right:-0.25em;min-width:1.333em;text-align:center}.Button--hasContent .fa,.Button--hasContent .fas,.Button--hasContent .far{margin-right:.25em}.Button--hasContent.Button--iconPosition--right .fa,.Button--hasContent.Button--iconPosition--right .fas,.Button--hasContent.Button--iconPosition--right .far{margin-right:0px;margin-left:3px}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--circular{border-radius:50%}.Button--compact{padding:0 .25em;line-height:1.333em}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color 100ms,background-color 100ms}.Button--color--black:hover,.Button--color--black:focus{background-color:#131313;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color 100ms,background-color 100ms}.Button--color--white:hover,.Button--color--white:focus{background-color:#f8f8f8;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color 100ms,background-color 100ms}.Button--color--red:hover,.Button--color--red:focus{background-color:#dc4848;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color 100ms,background-color 100ms}.Button--color--orange:hover,.Button--color--orange:focus{background-color:#f0853f;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color 100ms,background-color 100ms}.Button--color--yellow:hover,.Button--color--yellow:focus{background-color:#f5d72e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color 100ms,background-color 100ms}.Button--color--olive:hover,.Button--color--olive:focus{background-color:#c4da2b;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color 100ms,background-color 100ms}.Button--color--green:hover,.Button--color--green:focus{background-color:#32c154;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color 100ms,background-color 100ms}.Button--color--teal:hover,.Button--color--teal:focus{background-color:#13c4bc;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color 100ms,background-color 100ms}.Button--color--blue:hover,.Button--color--blue:focus{background-color:#3a95d9;color:#fff}.Button--color--dark-blue{transition:color 50ms,background-color 50ms;background-color:#003e6e;color:#fff}.Button--color--dark-blue:hover{transition:color 0ms,background-color 0ms}.Button--color--dark-blue:focus{transition:color 100ms,background-color 100ms}.Button--color--dark-blue:hover,.Button--color--dark-blue:focus{background-color:#135b92;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color 100ms,background-color 100ms}.Button--color--violet:hover,.Button--color--violet:focus{background-color:#7953cc;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color 100ms,background-color 100ms}.Button--color--purple:hover,.Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color 100ms,background-color 100ms}.Button--color--pink:hover,.Button--color--pink:focus{background-color:#e257a5;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color 100ms,background-color 100ms}.Button--color--brown:hover,.Button--color--brown:focus{background-color:#b47851;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color 100ms,background-color 100ms}.Button--color--grey:hover,.Button--color--grey:focus{background-color:#868686;color:#fff}.Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:#919191;color:#fff}.Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.Button--color--light-grey:focus{transition:color 100ms,background-color 100ms}.Button--color--light-grey:hover,.Button--color--light-grey:focus{background-color:#bababa;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color 100ms,background-color 100ms}.Button--color--good:hover,.Button--color--good:focus{background-color:#6cba39;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color 100ms,background-color 100ms}.Button--color--average:hover,.Button--color--average:focus{background-color:#ed9d35;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color 100ms,background-color 100ms}.Button--color--bad:hover,.Button--color--bad:focus{background-color:#dc4848;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color 100ms,background-color 100ms}.Button--color--label:hover,.Button--color--label:focus{background-color:#91a1b3;color:#fff}.Button--color--xeno{transition:color 50ms,background-color 50ms;background-color:#462f4e;color:#fff}.Button--color--xeno:hover{transition:color 0ms,background-color 0ms}.Button--color--xeno:focus{transition:color 100ms,background-color 100ms}.Button--color--xeno:hover,.Button--color--xeno:focus{background-color:#64496d;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color 100ms,background-color 100ms}.Button--color--default:hover,.Button--color--default:focus{background-color:#5c83b0;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color 100ms,background-color 100ms}.Button--color--caution:hover,.Button--color--caution:focus{background-color:#f5d72e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color 100ms,background-color 100ms}.Button--color--danger:hover,.Button--color--danger:focus{background-color:#dc4848;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#202020;color:#fff;background-color:rgba(32,32,32,0);color:rgba(255,255,255,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color 100ms,background-color 100ms}.Button--color--transparent:hover,.Button--color--transparent:focus{background-color:#383838;color:#fff}.Button--disabled{background-color:#999 !important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color 100ms,background-color 100ms}.Button--selected:hover,.Button--selected:focus{background-color:#32c154;color:#fff}.Button--flex{display:inline-flex;flex-direction:column}.Button--flex--fluid{width:100%}.Button--verticalAlignContent--top{justify-content:flex-start}.Button--verticalAlignContent--middle{justify-content:center}.Button--verticalAlignContent--bottom{justify-content:flex-end}.Button__content{display:block;align-self:stretch}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:1em;width:8.3333333333em;line-height:1.4166666667em;user-select:none}.Dropdown__arrow-button{float:right;padding-left:.35em;width:1.2em;height:1.8333333333em;border-left:.0833333333em solid #000;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;overflow-y:scroll;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color 100ms ease-out}.Dropdown__menuentry:hover{background-color:rgba(255,255,255,.2);transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.Dropdown__selected-text{display:inline-block;text-overflow:ellipsis;white-space:nowrap;height:1.4166666667em;width:calc(100% - 1.2em)}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:block}.Flex--iefix.Flex--inline{display:inline-block}.Flex__item--iefix{display:inline-block}.Flex--iefix--column>.Flex__item--iefix{display:block}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto;margin-bottom:-0.2em;cursor:n-resize}.Knob:after{content:".";color:rgba(0,0,0,0);line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotateZ(135deg)}.Knob__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotateZ(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotateZ(270deg)}.Knob__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.Knob--color--black .Knob__ringFill{stroke:#1a1a1a}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#df3e3e}.Knob--color--orange .Knob__ringFill{stroke:#f37f33}.Knob--color--yellow .Knob__ringFill{stroke:#fbda21}.Knob--color--olive .Knob__ringFill{stroke:#cbe41c}.Knob--color--green .Knob__ringFill{stroke:#25ca4c}.Knob--color--teal .Knob__ringFill{stroke:#00d6cc}.Knob--color--blue .Knob__ringFill{stroke:#2e93de}.Knob--color--dark-blue .Knob__ringFill{stroke:#005fa7}.Knob--color--violet .Knob__ringFill{stroke:#7349cf}.Knob--color--purple .Knob__ringFill{stroke:#ad45d0}.Knob--color--pink .Knob__ringFill{stroke:#e34da1}.Knob--color--brown .Knob__ringFill{stroke:#b97447}.Knob--color--grey .Knob__ringFill{stroke:#848484}.Knob--color--light-grey .Knob__ringFill{stroke:#b3b3b3}.Knob--color--good .Knob__ringFill{stroke:#68c22d}.Knob--color--average .Knob__ringFill{stroke:#f29a29}.Knob--color--bad .Knob__ringFill{stroke:#df3e3e}.Knob--color--label .Knob__ringFill{stroke:#8b9bb0}.Knob--color--xeno .Knob__ringFill{stroke:#664573}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-0.25em -0.5em;margin-bottom:0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left}.LabeledList__label--nowrap{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.Modal{background-color:#202020;max-width:calc(100% - 1rem);padding:1rem}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:bold;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg, transparent, transparent 0.8333333333em, rgba(0, 0, 0, 0.1) 0.8333333333em, rgba(0, 0, 0, 0.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--dark-blue{color:#fff;background-color:#02121f}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--light-grey{color:#fff;background-color:#6a6a6a}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--color--xeno{color:#fff;background-color:#19161b}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em !important;border-style:solid !important;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color 900ms ease-out}.ProgressBar__fill{position:absolute;top:-0.5px;left:0px;bottom:-0.5px}.ProgressBar__fill--animated{transition:background-color 900ms ease-out,width 900ms ease-out}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border-color:#000 !important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border-color:#d9d9d9 !important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border-color:#bd2020 !important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border-color:#d95e0c !important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border-color:#d9b804 !important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border-color:#9aad14 !important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border-color:#1b9638 !important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border-color:#009a93 !important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border-color:#1c71b1 !important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--dark-blue{border-color:#003e6e !important}.ProgressBar--color--dark-blue .ProgressBar__fill{background-color:#003e6e}.ProgressBar--color--violet{border-color:#552dab !important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border-color:#8b2baa !important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border-color:#cf2082 !important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border-color:#8c5836 !important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border-color:#646464 !important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--light-grey{border-color:#919191 !important}.ProgressBar--color--light-grey .ProgressBar__fill{background-color:#919191}.ProgressBar--color--good{border-color:#4d9121 !important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border-color:#cd7a0d !important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border-color:#bd2020 !important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border-color:#657a94 !important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.ProgressBar--color--xeno{border-color:#462f4e !important}.ProgressBar--color--xeno .ProgressBar__fill{background-color:#462f4e}.Section{position:relative;margin-bottom:.5em;background-color:#131313;background-color:#131313;box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:bold;color:#fff}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__rest{position:relative}.Section__content{padding:.66em .5em}.Section--fitted>.Section__rest>.Section__content{padding:0}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--fill>.Section__rest{flex-grow:1}.Section--fill>.Section__rest>.Section__content{height:100%}.Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.Section--fill.Section--iefix{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.Section--fill.Section--iefix>.Section__rest{display:table-row !important;height:100% !important}.Section--scrollable{overflow-x:hidden;overflow-y:hidden}.Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.Section .Section{background-color:rgba(0,0,0,0);margin-left:-0.5em;margin-right:-0.5em}.Section .Section:first-child{margin-top:-0.5em}.Section .Section .Section__titleText{font-size:1.0833333333em}.Section .Section .Section .Section__titleText{font-size:1em}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none !important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid rgba(0,0,0,0);border-right:.4166666667em solid rgba(0,0,0,0);border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--fill{height:100%}.Stack--horizontal>.Stack__item{margin-left:.5em}.Stack--horizontal>.Stack__item:first-child{margin-left:0}.Stack--vertical>.Stack__item{margin-top:.5em}.Stack--vertical>.Stack__item:first-child{margin-top:0}.Stack--horizontal>.Stack__divider:not(.Stack__divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--vertical>.Stack__divider:not(.Stack__divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__row--header .Table__cell,.Table__cell--header{font-weight:bold;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#131313}.Tabs--fill{height:100%}.Section .Tabs{background-color:rgba(0,0,0,0)}.Section:not(.Section--fitted) .Tabs{margin:0 -0.5em .5em}.Section:not(.Section--fitted) .Tabs:first-child{margin-top:-0.5em}.Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0 .25em}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(255,255,255,.5);min-height:2.25em;min-width:4em}.Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.Tab--selected{background-color:rgba(255,255,255,.125);color:#dfe7f0}.Tab__text{flex-grow:1;margin:0 .5em}.Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #d4dfec}.Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.Tabs--vertical .Tab--selected{border-right:.1666666667em solid #d4dfec}.Tab--selected.Tab--color--black{color:#535353}.Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#1a1a1a}.Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#1a1a1a}.Tab--selected.Tab--color--white{color:#fff}.Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#fff}.Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#fff}.Tab--selected.Tab--color--red{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#df3e3e}.Tab--selected.Tab--color--orange{color:#f69f66}.Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#f37f33}.Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#f37f33}.Tab--selected.Tab--color--yellow{color:#fce358}.Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#fbda21}.Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#fbda21}.Tab--selected.Tab--color--olive{color:#d8eb55}.Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#cbe41c}.Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#cbe41c}.Tab--selected.Tab--color--green{color:#53e074}.Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#25ca4c}.Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#25ca4c}.Tab--selected.Tab--color--teal{color:#21fff5}.Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00d6cc}.Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00d6cc}.Tab--selected.Tab--color--blue{color:#62aee6}.Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#2e93de}.Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#2e93de}.Tab--selected.Tab--color--dark-blue{color:#008ffd}.Tabs--horizontal .Tab--selected.Tab--color--dark-blue{border-bottom-color:#005fa7}.Tabs--vertical .Tab--selected.Tab--color--dark-blue{border-right-color:#005fa7}.Tab--selected.Tab--color--violet{color:#9676db}.Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#7349cf}.Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#7349cf}.Tab--selected.Tab--color--purple{color:#c274db}.Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#ad45d0}.Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#ad45d0}.Tab--selected.Tab--color--pink{color:#ea79b9}.Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#e34da1}.Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#e34da1}.Tab--selected.Tab--color--brown{color:#ca9775}.Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#b97447}.Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#b97447}.Tab--selected.Tab--color--grey{color:#a3a3a3}.Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#848484}.Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#848484}.Tab--selected.Tab--color--light-grey{color:#c6c6c6}.Tabs--horizontal .Tab--selected.Tab--color--light-grey{border-bottom-color:#b3b3b3}.Tabs--vertical .Tab--selected.Tab--color--light-grey{border-right-color:#b3b3b3}.Tab--selected.Tab--color--good{color:#8cd95a}.Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#68c22d}.Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#68c22d}.Tab--selected.Tab--color--average{color:#f5b35e}.Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#f29a29}.Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#f29a29}.Tab--selected.Tab--color--bad{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#df3e3e}.Tab--selected.Tab--color--label{color:#a8b4c4}.Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#8b9bb0}.Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#8b9bb0}.Tab--selected.Tab--color--xeno{color:#9366a3}.Tabs--horizontal .Tab--selected.Tab--color--xeno{border-bottom-color:#664573}.Tabs--vertical .Tab--selected.Tab--color--xeno{border-right-color:#664573}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.TextArea{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;background-color:#0a0a0a;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.TextArea--fluid{display:block;width:auto;height:auto}.TextArea--noborder{border:0px}.TextArea__textarea.TextArea__textarea--scrollable{overflow:auto;overflow-x:hidden;overflow-y:scroll}.TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:rgba(0,0,0,0);color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.TextArea__textarea_custom{overflow:visible;white-space:pre-wrap}.Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity 150ms ease-out;background-color:#000;color:#fff;box-shadow:.1em .1em 1.25em -0.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.Chat{color:#abc6ec}.Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:crimson;border-radius:10px;transition:font-size 200ms ease-out}.Chat__badge:before{content:"x"}.Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.Chat__scrollButton{position:fixed;right:2em;bottom:1em}.Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#131313}.Chat__reconnected:after{content:"";display:block;margin-top:-0.75em;border-bottom:.1666666667em solid #db2828}.Chat__highlight{color:#000}.Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:bold}.ChatMessage{word-wrap:break-word}.ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.Ping{position:relative;padding:.125em .25em;border:.0833333333em solid rgba(140,140,140,.5);border-radius:.25em;width:3.75em;text-align:right}.Ping__indicator{content:"";position:absolute;top:.5em;left:.5em;width:.5em;height:.5em;background-color:#888;border-radius:.25em}.Notifications{position:absolute;bottom:1em;left:1em;right:2em}.Notification{color:#fff;background-color:crimson;padding:.5em;margin:1em 0}.Notification:first-child{margin-top:0}.Notification:last-child{margin-bottom:0}.Layout,.Layout *{scrollbar-base-color:#181818;scrollbar-face-color:#363636;scrollbar-3dlight-color:#202020;scrollbar-highlight-color:#202020;scrollbar-track-color:#181818;scrollbar-arrow-color:#909090;scrollbar-shadow-color:#363636}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#202020;background-image:linear-gradient(to bottom, #202020 0%, #202020 100%)}.Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(56,56,56,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}em{font-style:normal;font-weight:bold}img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}a{color:#397ea5}a.visited{color:#7c00e6}a:visited{color:#7c00e6}a.popt{text-decoration:none}.popup{position:fixed;top:50%;left:50%;background:#ddd}.popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.popup .close:hover{background:#999}.popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:bold;border-bottom:2px solid green}.popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.popup input[type=text]:hover,.popup input[type=text]:active,.popup input[type=text]:focus{border-color:green}.popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:bold}.popup input[type=submit]:hover,.popup input[type=submit]:focus,.popup input[type=submit]:active{background:#aaa;cursor:pointer}.changeFont{padding:10px}.changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.changeFont a:hover{background:#ccc}.highlightPopup{padding:10px;text-align:center}.highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.highlightPopup input.highlightColor{background-color:#ff0}.highlightPopup input.highlightTermSubmit{margin-top:5px}.contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.contextMenu a:hover{background-color:#ccc}.filterMessages{padding:5px}.filterMessages div{padding:2px 0}.icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.motd{color:#a4bad6;font-family:Verdana,sans-serif;white-space:normal}.motd h1,.motd h2,.motd h3,.motd h4,.motd h5,.motd h6{color:#a4bad6;text-decoration:underline}.motd a,.motd a:link,.motd a:visited,.motd a:active,.motd a:hover{color:#a4bad6}.bold,.name,.prefix,.ooc,.looc,.adminooc,.admin,.medal,.yell{font-weight:bold}.italic,.italics{font-style:italic}.highlight{background:#ff0}h1,h2,h3,h4,h5,h6{color:#a4bad6;font-family:Georgia,Verdana,sans-serif}h1.alert,h2.alert{color:#a4bad6}em{font-style:normal;font-weight:bold}.ooc{font-weight:bold}.adminobserverooc{color:#09c;font-weight:bold}.adminooc{color:#3d5bc3;font-weight:bold}.adminsay{color:#9611d4;font-weight:bold}.admin{color:#5975da;font-weight:bold}.name{font-weight:bold}.deadsay{color:#e2c1ff}.binarysay{color:#1e90ff}.binarysay a{color:lime}.binarysay a:active,.binarysay a:visited{color:#8f8}.radio{color:#1ecc43}.sciradio{color:#c68cfa}.comradio{color:#fcdf03}.secradio{color:#dd3535}.medradio{color:#57b8f0}.engradio{color:#f37746}.suppradio{color:#b88646}.servradio{color:#6ca729}.syndradio{color:#8f4a4b}.gangradio{color:#ac2ea1}.centcomradio{color:#2681a5}.aiprivradio{color:#d65d95}.redteamradio{color:#f44}.blueteamradio{color:#3434fd}.greenteamradio{color:#34fd34}.yellowteamradio{color:#fdfd34}.yell{font-weight:bold}.alert{color:#d82020}.userdanger{color:#c51e1e;font-weight:bold;font-size:185%}.bolddanger{color:#c51e1e;font-weight:bold}.danger{color:#c51e1e}.warning{color:#c51e1e;font-style:italic}.alertwarning{color:red;font-weight:bold}.boldwarning{color:#c51e1e;font-style:italic;font-weight:bold}.announce{color:#c51e1e;font-weight:bold}.boldannounce{color:#c51e1e;font-weight:bold}.bigannounce{font-weight:bold;font-size:115%}.greenannounce{color:#059223;font-weight:bold}.rose{color:#ff5050}.info{color:#9ab0ff}.notice{color:#6685f5}.staff_ic{color:#6685f5}.tinynotice{color:#6685f5;font-size:85%}.tinynoticeital{color:#6685f5;font-style:italic;font-size:85%}.smallnotice{color:#6685f5;font-size:90%}.smallnoticeital{color:#6685f5;font-style:italic;font-size:90%}.boldnotice{color:#6685f5;font-weight:bold}.hear{color:#6685f5;font-style:italic}.adminnotice{color:#6685f5}.adminhelp{color:red;font-weight:bold}.unconscious{color:#a4bad6;font-weight:bold}.suicide{color:#ff5050;font-style:italic}.green{color:#059223}.grey{color:#838383}.red{color:red}.blue{color:#215cff}.nicegreen{color:#059223}.boldnicegreen{color:#059223;font-weight:bold}.cult{color:#973e3b}.cultitalic{color:#973e3b;font-style:italic}.cultbold{color:#973e3b;font-style:italic;font-weight:bold}.cultboldtalic{color:#973e3b;font-weight:bold;font-size:185%}.cultlarge{color:#973e3b;font-weight:bold;font-size:185%}.narsie{color:#973e3b;font-weight:bold;font-size:925%}.narsiesmall{color:#973e3b;font-weight:bold;font-size:370%}.colossus{color:#7f282a;font-size:310%}.hierophant{color:#b441ee;font-weight:bold;font-style:italic}.hierophant_warning{color:#c56bf1;font-style:italic}.purple{color:#9956d3}.holoparasite{color:#88809c}.revennotice{color:#c099e2}.revenboldnotice{color:#c099e2;font-weight:bold}.revenbignotice{color:#c099e2;font-weight:bold;font-size:185%}.revenminor{color:#823abb}.revenwarning{color:#760fbb;font-style:italic}.revendanger{color:#760fbb;font-weight:bold;font-size:185%}.deconversion_message{color:#a947ff;font-size:185%;font-style:italic}.ghostalert{color:#60f;font-style:italic;font-weight:bold}.alien{color:#855d85}.noticealien{color:#059223}.alertalien{color:#059223;font-weight:bold}.changeling{color:#059223;font-style:italic}.alertsyndie{color:red;font-size:185%;font-weight:bold}.spider{color:#80f;font-weight:bold;font-size:185%}.interface{color:#750e75}.sans{font-family:"Comic Sans MS",cursive,sans-serif}.papyrus{font-family:"Papyrus",cursive,sans-serif}.robot{font-family:"Courier New",cursive,sans-serif}.tape_recorder{color:red;font-family:"Courier New",cursive,sans-serif}.command_headset{font-weight:bold;font-size:160%}.small{font-size:60%}.big{font-size:185%}.reallybig{font-size:245%}.extremelybig{font-size:310%}.greentext{color:#059223;font-size:185%}.redtext{color:#c51e1e;font-size:185%}.clown{color:#ff70c1;font-size:160%;font-family:"Comic Sans MS",cursive,sans-serif;font-weight:bold}.singing{font-family:"Trebuchet MS",cursive,sans-serif;font-style:italic}.his_grace{color:#15d512;font-family:"Courier New",cursive,sans-serif;font-style:italic}.hypnophrase{color:#202020;font-weight:bold;animation:hypnocolor 1500ms infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#202020}25%{color:#4b02ac}50%{color:#9f41f1}75%{color:#541c9c}100%{color:#7adbf3}}.phobia{color:#d00;font-weight:bold;animation:phobia 750ms infinite}@keyframes phobia{0%{color:#f75a5a}50%{color:#d00}100%{color:#f75a5a}}.icon{height:1em;width:auto}.bigicon{font-size:2.5em}.memo{color:#638500;text-align:center}.memoedit{text-align:center;font-size:125%}.abductor{color:#c204c2;font-style:italic}.mind_control{color:#df3da9;font-size:100%;font-weight:bold;font-style:italic}.slime{color:#00ced1}.drone{color:#848482}.monkey{color:#975032}.swarmer{color:#2c75ff}.resonate{color:#298f85}.monkeyhive{color:#a56408}.monkeylead{color:#af6805;font-size:80%}.connectionClosed,.fatalError{background:red;color:#fff;padding:5px}.connectionClosed.restored{background:green}.internal.boldnshit{color:#3d5bc3;font-weight:bold}.text-normal{font-weight:normal;font-style:normal}.hidden{display:none;visibility:hidden}.ml-1{margin-left:1em}.ml-2{margin-left:2em}.ml-3{margin-left:3em}.xooc{color:#ac04e9;font-weight:bold;font-size:140%}.mooc{color:#090;font-weight:bold;font-size:140%}.yooc{color:#999600;font-weight:bold;font-size:140%}.headminsay{color:#653d78;font-weight:bold}.radio{color:#b4b4b4}.deptradio{color:#939}.comradio{color:#779cc2}.centradio{color:#5c5c8a}.hcradio{color:#318779}.pvstradio{color:#9b0612}.cryoradio{color:#ad6d48}.airadio{color:#f0f}.secradio{color:#a52929}.engradio{color:#a66300}.sentryradio{color:#844300}.medradio{color:#008160}.supradio{color:#ba8e41}.jtacradio{color:#ad3b98}.intelradio{color:#027d02}.wyradio{color:#fe9b24}.pmcradio{color:#4dc5ce}.vairadio{color:#e3580e}.rmcradio{color:#e3580e}.cmbradio{color:#1b748c}.clfradio{color:#8e83ca}.alpharadio{color:#db2626}.bravoradio{color:#c68610}.charlieradio{color:#a5a}.deltaradio{color:#007fcf}.echoradio{color:#3eb489}.medium{font-size:110%}.big{font-size:115%}.large{font-size:125%}.extra_large{font-size:130%}.huge{font-size:150%}.underline{text-decoration:underline}.orange{color:#eca100}.normal{font-style:normal}.attack{color:#ff3838}.moderate{color:#c00}.disarm{color:#900}.passive{color:#600}.helpful{color:#368f31}.scanner{color:#ff3838}.scannerb{color:#ff3838;font-weight:bold}.scannerburn{color:orange}.scannerburnb{color:orange;font-weight:bold}.rose{color:#ff5050}.debuginfo{color:#493d26;font-style:italic}.xenonotice{color:#51a16c}.xenoboldnotice{color:#51a16c;font-weight:bold}.xenowarning{color:#51a16c;font-style:italic}.xenominorwarning{color:#51a16c;font-weight:bold;font-style:italic}.xenodanger{color:#51a16c;font-weight:bold}.avoidharm{color:#72a0e5;font-weight:bold}.highdanger{color:#ff3838;font-weight:bold;font-size:140%}.xenohighdanger{color:#51a16c;font-weight:bold;font-size:140%}.xenoannounce{color:#65c585;font-family:book-antiqua;font-weight:bold;font-size:140%}.yautjabold{color:purple;font-weight:bold}.yautjaboldbig{color:purple;font-weight:bold;font-size:120%}.objectivebig{font-weight:bold;font-size:130%}.objectivegreen{color:lime}.objectivered{color:red}.objectivesuccess{color:lime;font-weight:bold;font-size:110%}.objectivefail{color:red;font-weight:bold;font-size:110%}.xenotalk,.xeno{color:#c048c0;font-style:italic}.xenoleader{color:#996e99;font-style:italic;font-size:125%}.xenoqueen{color:#996e99;font-style:italic;font-weight:bold;font-size:125%}.newscaster{color:maroon}.role_header{color:#e92d2d;display:block;text-align:center;font-weight:bold;font-family:trebuchet-ms;font-size:150%}.role_body{color:#3a3ae9;display:block;text-align:center;font-size:125%}.round_header{color:#e92d2d;display:block;text-align:center;font-family:courier;font-weight:bold;font-size:180%}.round_body{color:#c5c5c5;display:block;text-align:center;font-family:trebuchet-ms;font-weight:bold;font-size:125%}.event_announcement{color:#600d48;font-family:arial-narrow;font-weight:bold;font-size:125%}.announce_header{color:#cecece;font-weight:bold;font-size:150%}.announce_header_blue{color:#7575f3;font-weight:bold;font-size:150%}.announce_header_admin{color:#7575f3;font-weight:bold;font-size:150%}.announce_body{color:#e92d2d;font-weight:normal;font-size:125%}.centerbold{display:block;text-align:center;font-weight:bold}.mod{color:#917455;font-weight:bold}.modooc{color:#184880;font-weight:bold}.adminmod{color:#7c440c;font-weight:bold}.mentorsay{color:#d4af57;font-weight:bold}.mentorhelp{color:#090;font-weight:bold}.mentorbody{color:#da6200;font-weight:bold}.mentorstaff{color:#b5850d;font-weight:bold}.staffsay{color:#b5850d;font-weight:bold}.tajaran{color:#803b56}.tajaran_signlang{color:#941c1c}.skrell{color:#00ced1}.soghun{color:#228b22}.changeling{color:purple}.vox{color:#a0a}.monkey{color:#966c47}.german{color:#858f1e;font-family:"Times New Roman",Times,serif}.spanish{color:#cf982b}.japanese{color:#940927}.chinese{color:#fe1919}.zombie{color:#2dacb1;font-style:italic}.rough{font-family:trebuchet-ms,cursive,sans-serif}.commando{color:#fe9b24;font-style:bold}.say_quote{font-family:Georgia,Verdana,sans-serif}.admin .message{color:#314cad}.admin .prefix{font-weight:bolder}.pm{font-size:110%}.deadsay{color:#8b4dff}.retro_translator{font-weight:bold}.yautja_translator{color:#a00;font-weight:bold;animation:glitch .5s infinite}@keyframes glitch{25%{color:#a00;transform:translate(-2px, -1px)}50%{color:#be0000;transform:translate(1px, -2px)}75%{color:#8d0000;transform:translate(-1px, 2px)}100%{color:#830000;transform:translate(1px, 1px)}}.examine_block{background:#1b1c1e;border:1px solid #a4bad6;margin:.5em;padding:.5em .75em}.examine_block .icon{width:1.5em;height:1.5em;margin:0;padding:0}.tooltip{font-style:italic;border-bottom:1px dashed #fff}
-.theme-light .color-black{color:#000 !important}.theme-light .color-white{color:#e6e6e6 !important}.theme-light .color-red{color:#c82121 !important}.theme-light .color-orange{color:#e6630d !important}.theme-light .color-yellow{color:#e5c304 !important}.theme-light .color-olive{color:#a3b816 !important}.theme-light .color-green{color:#1d9f3b !important}.theme-light .color-teal{color:#00a39c !important}.theme-light .color-blue{color:#1e78bb !important}.theme-light .color-dark-blue{color:#004274 !important}.theme-light .color-violet{color:#5a30b5 !important}.theme-light .color-purple{color:#932eb4 !important}.theme-light .color-pink{color:#db228a !important}.theme-light .color-brown{color:#955d39 !important}.theme-light .color-grey{color:#e6e6e6 !important}.theme-light .color-light-grey{color:#999 !important}.theme-light .color-good{color:#529923 !important}.theme-light .color-average{color:#da810e !important}.theme-light .color-bad{color:#c82121 !important}.theme-light .color-label{color:#353535 !important}.theme-light .color-xeno{color:#4a3253 !important}.theme-light .color-bg-black{background-color:#000 !important}.theme-light .color-bg-white{background-color:#bfbfbf !important}.theme-light .color-bg-red{background-color:#a61c1c !important}.theme-light .color-bg-orange{background-color:#c0530b !important}.theme-light .color-bg-yellow{background-color:#bfa303 !important}.theme-light .color-bg-olive{background-color:#889912 !important}.theme-light .color-bg-green{background-color:#188532 !important}.theme-light .color-bg-teal{background-color:#008882 !important}.theme-light .color-bg-blue{background-color:#19649c !important}.theme-light .color-bg-dark-blue{background-color:#003761 !important}.theme-light .color-bg-violet{background-color:#4b2897 !important}.theme-light .color-bg-purple{background-color:#7a2696 !important}.theme-light .color-bg-pink{background-color:#b61d73 !important}.theme-light .color-bg-brown{background-color:#7c4d2f !important}.theme-light .color-bg-grey{background-color:#bfbfbf !important}.theme-light .color-bg-light-grey{background-color:gray !important}.theme-light .color-bg-good{background-color:#44801d !important}.theme-light .color-bg-average{background-color:#b56b0b !important}.theme-light .color-bg-bad{background-color:#a61c1c !important}.theme-light .color-bg-label{background-color:#2c2c2c !important}.theme-light .color-bg-xeno{background-color:#3e2945 !important}.theme-light .Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#fff}.theme-light .Tabs--fill{height:100%}.theme-light .Section .Tabs{background-color:rgba(0,0,0,0)}.theme-light .Section:not(.Section--fitted) .Tabs{margin:0 -0.5em .5em}.theme-light .Section:not(.Section--fitted) .Tabs:first-child{margin-top:-0.5em}.theme-light .Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.theme-light .Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0 .25em}.theme-light .Tabs--horizontal:last-child{margin-bottom:0}.theme-light .Tabs__Tab{flex-grow:0}.theme-light .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-light .Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(0,0,0,.5);min-height:2.25em;min-width:4em}.theme-light .Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.theme-light .Tab--selected{background-color:rgba(255,255,255,.125);color:#404040}.theme-light .Tab__text{flex-grow:1;margin:0 .5em}.theme-light .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-light .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-light .Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.theme-light .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #000}.theme-light .Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.theme-light .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #000}.theme-light .Tab--selected.Tab--color--black{color:#404040}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#000}.theme-light .Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#000}.theme-light .Tab--selected.Tab--color--white{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--red{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--orange{color:#f48942}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#e6630d}.theme-light .Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#e6630d}.theme-light .Tab--selected.Tab--color--yellow{color:#fcdd33}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#e5c304}.theme-light .Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#e5c304}.theme-light .Tab--selected.Tab--color--olive{color:#d0e732}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#a3b816}.theme-light .Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#a3b816}.theme-light .Tab--selected.Tab--color--green{color:#33da5a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#1d9f3b}.theme-light .Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#1d9f3b}.theme-light .Tab--selected.Tab--color--teal{color:#00faef}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00a39c}.theme-light .Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00a39c}.theme-light .Tab--selected.Tab--color--blue{color:#419ce1}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#1e78bb}.theme-light .Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#1e78bb}.theme-light .Tab--selected.Tab--color--dark-blue{color:#0079d7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--dark-blue{border-bottom-color:#004274}.theme-light .Tabs--vertical .Tab--selected.Tab--color--dark-blue{border-right-color:#004274}.theme-light .Tab--selected.Tab--color--violet{color:#7f58d3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#5a30b5}.theme-light .Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#5a30b5}.theme-light .Tab--selected.Tab--color--purple{color:#b455d4}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#932eb4}.theme-light .Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#932eb4}.theme-light .Tab--selected.Tab--color--pink{color:#e558a7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#db228a}.theme-light .Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#db228a}.theme-light .Tab--selected.Tab--color--brown{color:#c0825a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#955d39}.theme-light .Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#955d39}.theme-light .Tab--selected.Tab--color--grey{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--light-grey{color:#b3b3b3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--light-grey{border-bottom-color:#999}.theme-light .Tabs--vertical .Tab--selected.Tab--color--light-grey{border-right-color:#999}.theme-light .Tab--selected.Tab--color--good{color:#77d23b}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#529923}.theme-light .Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#529923}.theme-light .Tab--selected.Tab--color--average{color:#f3a23a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#da810e}.theme-light .Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#da810e}.theme-light .Tab--selected.Tab--color--bad{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--label{color:#686868}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#353535}.theme-light .Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#353535}.theme-light .Tab--selected.Tab--color--xeno{color:#7e558e}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--xeno{border-bottom-color:#4a3253}.theme-light .Tabs--vertical .Tab--selected.Tab--color--xeno{border-right-color:#4a3253}.theme-light .Section{position:relative;margin-bottom:.5em;background-color:#fff;background-color:#fff;box-sizing:border-box}.theme-light .Section:last-child{margin-bottom:0}.theme-light .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-light .Section__titleText{font-size:1.1666666667em;font-weight:bold;color:#000}.theme-light .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-light .Section__rest{position:relative}.theme-light .Section__content{padding:.66em .5em}.theme-light .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-light .Section--fill{display:flex;flex-direction:column;height:100%}.theme-light .Section--fill>.Section__rest{flex-grow:1}.theme-light .Section--fill>.Section__rest>.Section__content{height:100%}.theme-light .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-light .Section--fill.Section--iefix{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.theme-light .Section--fill.Section--iefix>.Section__rest{display:table-row !important;height:100% !important}.theme-light .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-light .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-light .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-light .Section .Section{background-color:rgba(0,0,0,0);margin-left:-0.5em;margin-right:-0.5em}.theme-light .Section .Section:first-child{margin-top:-0.5em}.theme-light .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-light .Section .Section .Section .Section__titleText{font-size:1em}.theme-light .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-light .Button:last-child{margin-right:0;margin-bottom:0}.theme-light .Button .fa,.theme-light .Button .fas,.theme-light .Button .far{margin-left:-0.25em;margin-right:-0.25em;min-width:1.333em;text-align:center}.theme-light .Button--hasContent .fa,.theme-light .Button--hasContent .fas,.theme-light .Button--hasContent .far{margin-right:.25em}.theme-light .Button--hasContent.Button--iconPosition--right .fa,.theme-light .Button--hasContent.Button--iconPosition--right .fas,.theme-light .Button--hasContent.Button--iconPosition--right .far{margin-right:0px;margin-left:3px}.theme-light .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-light .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-light .Button--circular{border-radius:50%}.theme-light .Button--compact{padding:0 .25em;line-height:1.333em}.theme-light .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-light .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--black:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--black:hover,.theme-light .Button--color--black:focus{background-color:#131313;color:#fff}.theme-light .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--white:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--white:hover,.theme-light .Button--color--white:focus{background-color:#efefef;color:#000}.theme-light .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--red:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--red:hover,.theme-light .Button--color--red:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#c0530b;color:#fff}.theme-light .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--orange:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--orange:hover,.theme-light .Button--color--orange:focus{background-color:#ea7426;color:#fff}.theme-light .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#bfa303;color:#fff}.theme-light .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--yellow:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--yellow:hover,.theme-light .Button--color--yellow:focus{background-color:#efce17;color:#fff}.theme-light .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#889912;color:#fff}.theme-light .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--olive:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--olive:hover,.theme-light .Button--color--olive:focus{background-color:#afc328;color:#fff}.theme-light .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#188532;color:#fff}.theme-light .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--green:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--green:hover,.theme-light .Button--color--green:focus{background-color:#2fac4c;color:#fff}.theme-light .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#008882;color:#fff}.theme-light .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--teal:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--teal:hover,.theme-light .Button--color--teal:focus{background-color:#13afa9;color:#fff}.theme-light .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#19649c;color:#fff}.theme-light .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--blue:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--blue:hover,.theme-light .Button--color--blue:focus{background-color:#3086c7;color:#fff}.theme-light .Button--color--dark-blue{transition:color 50ms,background-color 50ms;background-color:#003761;color:#fff}.theme-light .Button--color--dark-blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--dark-blue:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--dark-blue:hover,.theme-light .Button--color--dark-blue:focus{background-color:#135283;color:#fff}.theme-light .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#4b2897;color:#fff}.theme-light .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--violet:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--violet:hover,.theme-light .Button--color--violet:focus{background-color:#6a41c1;color:#fff}.theme-light .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#7a2696;color:#fff}.theme-light .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--purple:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--purple:hover,.theme-light .Button--color--purple:focus{background-color:#a03fc0;color:#fff}.theme-light .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#b61d73;color:#fff}.theme-light .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--pink:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--pink:hover,.theme-light .Button--color--pink:focus{background-color:#da3f96;color:#fff}.theme-light .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#7c4d2f;color:#fff}.theme-light .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--brown:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--brown:hover,.theme-light .Button--color--brown:focus{background-color:#a26c49;color:#fff}.theme-light .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--grey:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--grey:hover,.theme-light .Button--color--grey:focus{background-color:#efefef;color:#000}.theme-light .Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:gray;color:#fff}.theme-light .Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--light-grey:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--light-grey:hover,.theme-light .Button--color--light-grey:focus{background-color:#a6a6a6;color:#fff}.theme-light .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#44801d;color:#fff}.theme-light .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--good:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--good:hover,.theme-light .Button--color--good:focus{background-color:#62a635;color:#fff}.theme-light .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#b56b0b;color:#fff}.theme-light .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--average:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--average:hover,.theme-light .Button--color--average:focus{background-color:#e48f20;color:#fff}.theme-light .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--bad:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--bad:hover,.theme-light .Button--color--bad:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#2c2c2c;color:#fff}.theme-light .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--label:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--label:hover,.theme-light .Button--color--label:focus{background-color:#464646;color:#fff}.theme-light .Button--color--xeno{transition:color 50ms,background-color 50ms;background-color:#3e2945;color:#fff}.theme-light .Button--color--xeno:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--xeno:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--xeno:hover,.theme-light .Button--color--xeno:focus{background-color:#5a4363;color:#fff}.theme-light .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#bbb;color:#000}.theme-light .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--default:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--default:hover,.theme-light .Button--color--default:focus{background-color:#eaeaea;color:#000}.theme-light .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-light .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--caution:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--caution:hover,.theme-light .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-light .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-light .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--danger:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--danger:hover,.theme-light .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-light .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#eee;color:#000;background-color:rgba(238,238,238,0);color:rgba(0,0,0,.5)}.theme-light .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--transparent:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--transparent:hover,.theme-light .Button--color--transparent:focus{background-color:#fcfcfc;color:#000}.theme-light .Button--disabled{background-color:#363636 !important}.theme-light .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0668b8;color:#fff}.theme-light .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--selected:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--selected:hover,.theme-light .Button--selected:focus{background-color:#1a8be7;color:#fff}.theme-light .Button--flex{display:inline-flex;flex-direction:column}.theme-light .Button--flex--fluid{width:100%}.theme-light .Button--verticalAlignContent--top{justify-content:flex-start}.theme-light .Button--verticalAlignContent--middle{justify-content:center}.theme-light .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-light .Button__content{display:block;align-self:stretch}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#353535;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-light .NumberInput--fluid{display:block}.theme-light .NumberInput__content{margin-left:.5em}.theme-light .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-light .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #353535;background-color:#353535}.theme-light .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#fff;color:#000;text-align:right}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .TextArea{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;background-color:#fff;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.theme-light .TextArea--fluid{display:block;width:auto;height:auto}.theme-light .TextArea--noborder{border:0px}.theme-light .TextArea__textarea.TextArea__textarea--scrollable{overflow:auto;overflow-x:hidden;overflow-y:scroll}.theme-light .TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:rgba(0,0,0,0);color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.theme-light .TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .TextArea__textarea_custom{overflow:visible;white-space:pre-wrap}.theme-light .Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto;margin-bottom:-0.2em;cursor:n-resize}.theme-light .Knob:after{content:".";color:rgba(0,0,0,0);line-height:2.5em}.theme-light .Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.theme-light .Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.theme-light .Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.theme-light .Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.theme-light .Knob__ringTrackPivot{transform:rotateZ(135deg)}.theme-light .Knob__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.theme-light .Knob__ringFillPivot{transform:rotateZ(135deg)}.theme-light .Knob--bipolar .Knob__ringFillPivot{transform:rotateZ(270deg)}.theme-light .Knob__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.theme-light .Knob--color--black .Knob__ringFill{stroke:#000}.theme-light .Knob--color--white .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--red .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--orange .Knob__ringFill{stroke:#e6630d}.theme-light .Knob--color--yellow .Knob__ringFill{stroke:#e5c304}.theme-light .Knob--color--olive .Knob__ringFill{stroke:#a3b816}.theme-light .Knob--color--green .Knob__ringFill{stroke:#1d9f3b}.theme-light .Knob--color--teal .Knob__ringFill{stroke:#00a39c}.theme-light .Knob--color--blue .Knob__ringFill{stroke:#1e78bb}.theme-light .Knob--color--dark-blue .Knob__ringFill{stroke:#004274}.theme-light .Knob--color--violet .Knob__ringFill{stroke:#5a30b5}.theme-light .Knob--color--purple .Knob__ringFill{stroke:#932eb4}.theme-light .Knob--color--pink .Knob__ringFill{stroke:#db228a}.theme-light .Knob--color--brown .Knob__ringFill{stroke:#955d39}.theme-light .Knob--color--grey .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--light-grey .Knob__ringFill{stroke:#999}.theme-light .Knob--color--good .Knob__ringFill{stroke:#529923}.theme-light .Knob--color--average .Knob__ringFill{stroke:#da810e}.theme-light .Knob--color--bad .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--label .Knob__ringFill{stroke:#353535}.theme-light .Knob--color--xeno .Knob__ringFill{stroke:#4a3253}.theme-light .Slider{cursor:e-resize}.theme-light .Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none !important}.theme-light .Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #000}.theme-light .Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid rgba(0,0,0,0);border-right:.4166666667em solid rgba(0,0,0,0);border-bottom:.4166666667em solid #000}.theme-light .Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em !important;border-style:solid !important;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color 900ms ease-out}.theme-light .ProgressBar__fill{position:absolute;top:-0.5px;left:0px;bottom:-0.5px}.theme-light .ProgressBar__fill--animated{transition:background-color 900ms ease-out,width 900ms ease-out}.theme-light .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-light .ProgressBar--color--default{border:.0833333333em solid #bfbfbf}.theme-light .ProgressBar--color--default .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--black{border-color:#000 !important}.theme-light .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-light .ProgressBar--color--white{border-color:#bfbfbf !important}.theme-light .ProgressBar--color--white .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--red{border-color:#a61c1c !important}.theme-light .ProgressBar--color--red .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--orange{border-color:#c0530b !important}.theme-light .ProgressBar--color--orange .ProgressBar__fill{background-color:#c0530b}.theme-light .ProgressBar--color--yellow{border-color:#bfa303 !important}.theme-light .ProgressBar--color--yellow .ProgressBar__fill{background-color:#bfa303}.theme-light .ProgressBar--color--olive{border-color:#889912 !important}.theme-light .ProgressBar--color--olive .ProgressBar__fill{background-color:#889912}.theme-light .ProgressBar--color--green{border-color:#188532 !important}.theme-light .ProgressBar--color--green .ProgressBar__fill{background-color:#188532}.theme-light .ProgressBar--color--teal{border-color:#008882 !important}.theme-light .ProgressBar--color--teal .ProgressBar__fill{background-color:#008882}.theme-light .ProgressBar--color--blue{border-color:#19649c !important}.theme-light .ProgressBar--color--blue .ProgressBar__fill{background-color:#19649c}.theme-light .ProgressBar--color--dark-blue{border-color:#003761 !important}.theme-light .ProgressBar--color--dark-blue .ProgressBar__fill{background-color:#003761}.theme-light .ProgressBar--color--violet{border-color:#4b2897 !important}.theme-light .ProgressBar--color--violet .ProgressBar__fill{background-color:#4b2897}.theme-light .ProgressBar--color--purple{border-color:#7a2696 !important}.theme-light .ProgressBar--color--purple .ProgressBar__fill{background-color:#7a2696}.theme-light .ProgressBar--color--pink{border-color:#b61d73 !important}.theme-light .ProgressBar--color--pink .ProgressBar__fill{background-color:#b61d73}.theme-light .ProgressBar--color--brown{border-color:#7c4d2f !important}.theme-light .ProgressBar--color--brown .ProgressBar__fill{background-color:#7c4d2f}.theme-light .ProgressBar--color--grey{border-color:#bfbfbf !important}.theme-light .ProgressBar--color--grey .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--light-grey{border-color:gray !important}.theme-light .ProgressBar--color--light-grey .ProgressBar__fill{background-color:gray}.theme-light .ProgressBar--color--good{border-color:#44801d !important}.theme-light .ProgressBar--color--good .ProgressBar__fill{background-color:#44801d}.theme-light .ProgressBar--color--average{border-color:#b56b0b !important}.theme-light .ProgressBar--color--average .ProgressBar__fill{background-color:#b56b0b}.theme-light .ProgressBar--color--bad{border-color:#a61c1c !important}.theme-light .ProgressBar--color--bad .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--label{border-color:#2c2c2c !important}.theme-light .ProgressBar--color--label .ProgressBar__fill{background-color:#2c2c2c}.theme-light .ProgressBar--color--xeno{border-color:#3e2945 !important}.theme-light .ProgressBar--color--xeno .ProgressBar__fill{background-color:#3e2945}.theme-light .Chat{color:#000}.theme-light .Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:crimson;border-radius:10px;transition:font-size 200ms ease-out}.theme-light .Chat__badge:before{content:"x"}.theme-light .Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.theme-light .Chat__scrollButton{position:fixed;right:2em;bottom:1em}.theme-light .Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.theme-light .Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#fff}.theme-light .Chat__reconnected:after{content:"";display:block;margin-top:-0.75em;border-bottom:.1666666667em solid #db2828}.theme-light .Chat__highlight{color:#000}.theme-light .Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:bold}.theme-light .ChatMessage{word-wrap:break-word}.theme-light .ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.theme-light .ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.theme-light .Layout,.theme-light .Layout *{scrollbar-base-color:#f2f2f2;scrollbar-face-color:#d6d6d6;scrollbar-3dlight-color:#eee;scrollbar-highlight-color:#eee;scrollbar-track-color:#f2f2f2;scrollbar-arrow-color:#777;scrollbar-shadow-color:#d6d6d6}.theme-light .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-light .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-light .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#eee;background-image:linear-gradient(to bottom, #eeeeee 0%, #eeeeee 100%)}.theme-light .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-light .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-light .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-light .Window__contentPadding:after{height:0}.theme-light .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-light .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(252,252,252,.25);pointer-events:none}.theme-light .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-light .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-light .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-light .TitleBar{background-color:#eee;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-light .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#eee;transition:color 250ms ease-out,background-color 250ms ease-out}.theme-light .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-light .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-light .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-light .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-light .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px !important;line-height:2.6666666667rem !important}.theme-light .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-light .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-light html,.theme-light body{padding:0;margin:0;height:100%;color:#000}.theme-light body{background:#fff;font-family:Verdana,sans-serif;font-size:13px;line-height:1.2;overflow-x:hidden;overflow-y:scroll;word-wrap:break-word}.theme-light em{font-style:normal;font-weight:bold}.theme-light img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}.theme-light img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}.theme-light a{color:blue}.theme-light a.visited{color:#f0f}.theme-light a:visited{color:#f0f}.theme-light a.popt{text-decoration:none}.theme-light .popup{position:fixed;top:50%;left:50%;background:#ddd}.theme-light .popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.theme-light .popup .close:hover{background:#999}.theme-light .popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:bold;border-bottom:2px solid green}.theme-light .popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.theme-light .popup input[type=text]:hover,.theme-light .popup input[type=text]:active,.theme-light .popup input[type=text]:focus{border-color:green}.theme-light .popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:bold}.theme-light .popup input[type=submit]:hover,.theme-light .popup input[type=submit]:focus,.theme-light .popup input[type=submit]:active{background:#aaa;cursor:pointer}.theme-light .changeFont{padding:10px}.theme-light .changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.theme-light .changeFont a:hover{background:#ccc}.theme-light .highlightPopup{padding:10px;text-align:center}.theme-light .highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.theme-light .highlightPopup input.highlightColor{background-color:#ff0}.theme-light .highlightPopup input.highlightTermSubmit{margin-top:5px}.theme-light .contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.theme-light .contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.theme-light .contextMenu a:hover{background-color:#ccc}.theme-light .filterMessages{padding:5px}.theme-light .filterMessages div{padding:2px 0}.theme-light .icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.theme-light .motd{color:#638500;font-family:Verdana,sans-serif;white-space:normal}.theme-light .motd h1,.theme-light .motd h2,.theme-light .motd h3,.theme-light .motd h4,.theme-light .motd h5,.theme-light .motd h6{color:#638500;text-decoration:underline}.theme-light .motd a,.theme-light .motd a:link,.theme-light .motd a:visited,.theme-light .motd a:active,.theme-light .motd a:hover{color:#638500}.theme-light .bold,.theme-light .name,.theme-light .prefix,.theme-light .ooc,.theme-light .looc,.theme-light .adminooc,.theme-light .admin,.theme-light .medal,.theme-light .yell{font-weight:bold}.theme-light .italic,.theme-light .italics{font-style:italic}.theme-light .highlight{background:#ff0}.theme-light h1,.theme-light h2,.theme-light h3,.theme-light h4,.theme-light h5,.theme-light h6{color:blue;font-family:Georgia,Verdana,sans-serif}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light em{font-style:normal;font-weight:bold}.theme-light .ooc{font-weight:bold}.theme-light .adminobserverooc{color:#09c;font-weight:bold}.theme-light .adminooc{color:#700038;font-weight:bold}.theme-light .adminsay{color:#ff4500;font-weight:bold}.theme-light .admin{color:#4473ff;font-weight:bold}.theme-light .name{font-weight:bold}.theme-light .deadsay{color:#5c00e6}.theme-light .binarysay{color:#20c20e;background-color:#000;display:block}.theme-light .binarysay a{color:lime}.theme-light .binarysay a:active,.theme-light .binarysay a:visited{color:#8f8}.theme-light .radio{color:green}.theme-light .sciradio{color:#939}.theme-light .comradio{color:#948f02}.theme-light .secradio{color:#a30000}.theme-light .medradio{color:#337296}.theme-light .engradio{color:#fb5613}.theme-light .sentryradio{color:#844300}.theme-light .suppradio{color:#a8732b}.theme-light .servradio{color:#6eaa2c}.theme-light .syndradio{color:#6d3f40}.theme-light .gangradio{color:#ac2ea1}.theme-light .centcomradio{color:#686868}.theme-light .aiprivradio{color:#f0f}.theme-light .redteamradio{color:red}.theme-light .blueteamradio{color:blue}.theme-light .greenteamradio{color:lime}.theme-light .yellowteamradio{color:#d1ba22}.theme-light .yell{font-weight:bold}.theme-light .alert{color:red}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light .userdanger{color:red;font-weight:bold;font-size:185%}.theme-light .bolddanger{color:red;font-weight:bold}.theme-light .danger{color:red}.theme-light .tinydanger{color:red;font-size:85%}.theme-light .smalldanger{color:red;font-size:90%}.theme-light .warning{color:red;font-style:italic}.theme-light .alertwarning{color:red;font-weight:bold}.theme-light .boldwarning{color:red;font-style:italic;font-weight:bold}.theme-light .announce{color:#228b22;font-weight:bold}.theme-light .boldannounce{color:red;font-weight:bold}.theme-light .bigannounce{font-weight:bold;font-size:115%}.theme-light .greenannounce{color:lime;font-weight:bold}.theme-light .rose{color:#ff5050}.theme-light .info{color:#00c}.theme-light .notice{color:#009}.theme-light .staff_ic{color:#009}.theme-light .tinynotice{color:#009;font-size:85%}.theme-light .tinynoticeital{color:#009;font-style:italic;font-size:85%}.theme-light .smallnotice{color:#009;font-size:90%}.theme-light .smallnoticeital{color:#009;font-style:italic;font-size:90%}.theme-light .boldnotice{color:#009;font-weight:bold}.theme-light .hear{color:#009;font-style:italic}.theme-light .adminnotice{color:blue}.theme-light .adminhelp{color:red;font-weight:bold}.theme-light .unconscious{color:blue;font-weight:bold}.theme-light .suicide{color:#ff5050;font-style:italic}.theme-light .green{color:#03ff39}.theme-light .grey{color:#838383}.theme-light .red{color:red}.theme-light .blue{color:blue}.theme-light .nicegreen{color:#14a833}.theme-light .boldnicegreen{color:#14a833;font-weight:bold}.theme-light .cult{color:#973e3b}.theme-light .cultitalic{color:#973e3b;font-style:italic}.theme-light .cultbold{color:#973e3b;font-style:italic;font-weight:bold}.theme-light .cultboldtalic{color:#973e3b;font-weight:bold;font-size:185%}.theme-light .cultlarge{color:#973e3b;font-weight:bold;font-size:185%}.theme-light .narsie{color:#973e3b;font-weight:bold;font-size:925%}.theme-light .narsiesmall{color:#973e3b;font-weight:bold;font-size:370%}.theme-light .colossus{color:#7f282a;font-size:310%}.theme-light .hierophant{color:#609;font-weight:bold;font-style:italic}.theme-light .hierophant_warning{color:#609;font-style:italic}.theme-light .purple{color:#5e2d79}.theme-light .holoparasite{color:#35333a}.theme-light .revennotice{color:#1d2953}.theme-light .revenboldnotice{color:#1d2953;font-weight:bold}.theme-light .revenbignotice{color:#1d2953;font-weight:bold;font-size:185%}.theme-light .revenminor{color:#823abb}.theme-light .revenwarning{color:#760fbb;font-style:italic}.theme-light .revendanger{color:#760fbb;font-weight:bold;font-size:185%}.theme-light .deconversion_message{color:#5000a0;font-size:185%;font-style:italic}.theme-light .ghostalert{color:#5c00e6;font-style:italic;font-weight:bold}.theme-light .alien{color:#543354}.theme-light .noticealien{color:#00c000}.theme-light .alertalien{color:#00c000;font-weight:bold}.theme-light .changeling{color:purple;font-style:italic}.theme-light .alertsyndie{color:red;font-size:185%;font-weight:bold}.theme-light .spider{color:#4d004d;font-weight:bold;font-size:185%}.theme-light .interface{color:#303}.theme-light .sans{font-family:"Comic Sans MS",cursive,sans-serif}.theme-light .papyrus{font-family:"Papyrus",cursive,sans-serif}.theme-light .robot{font-family:"Courier New",cursive,sans-serif}.theme-light .tape_recorder{color:maroon;font-family:"Courier New",cursive,sans-serif}.theme-light .command_headset{font-weight:bold;font-size:160%}.theme-light .small{font-size:60%}.theme-light .big{font-size:185%}.theme-light .reallybig{font-size:245%}.theme-light .extremelybig{font-size:310%}.theme-light .greentext{color:lime;font-size:185%}.theme-light .redtext{color:red;font-size:185%}.theme-light .clown{color:#ff69bf;font-size:160%;font-family:"Comic Sans MS",cursive,sans-serif;font-weight:bold}.theme-light .singing{font-family:"Trebuchet MS",cursive,sans-serif;font-style:italic}.theme-light .his_grace{color:#15d512;font-family:"Courier New",cursive,sans-serif;font-style:italic}.theme-light .hypnophrase{color:#0d0d0d;font-weight:bold;animation:hypnocolor 1500ms infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#0d0d0d}25%{color:#410194}50%{color:#7f17d8}75%{color:#410194}100%{color:#3bb5d3}}.theme-light .phobia{color:#d00;font-weight:bold;animation:phobia 750ms infinite}@keyframes phobia{0%{color:#0d0d0d}50%{color:#d00}100%{color:#0d0d0d}}.theme-light .icon{height:1em;width:auto}.theme-light .bigicon{font-size:2.5em}.theme-light .memo{color:#638500;text-align:center}.theme-light .memoedit{text-align:center;font-size:125%}.theme-light .abductor{color:purple;font-style:italic}.theme-light .mind_control{color:#a00d6f;font-size:100%;font-weight:bold;font-style:italic}.theme-light .slime{color:#00ced1}.theme-light .drone{color:#848482}.theme-light .monkey{color:#975032}.theme-light .swarmer{color:#2c75ff}.theme-light .resonate{color:#298f85}.theme-light .monkeyhive{color:#774704}.theme-light .monkeylead{color:#774704;font-size:80%}.theme-light .connectionClosed,.theme-light .fatalError{background:red;color:#fff;padding:5px}.theme-light .connectionClosed.restored{background:green}.theme-light .internal.boldnshit{color:blue;font-weight:bold}.theme-light .text-normal{font-weight:normal;font-style:normal}.theme-light .hidden{display:none;visibility:hidden}.theme-light .ml-1{margin-left:1em}.theme-light .ml-2{margin-left:2em}.theme-light .ml-3{margin-left:3em}.theme-light .xooc{color:#6c0094;font-weight:bold;font-size:140%}.theme-light .mooc{color:#090;font-weight:bold;font-size:140%}.theme-light .yooc{color:#999600;font-weight:bold;font-size:140%}.theme-light .headminsay{color:#5a0a7f;font-weight:bold}.theme-light .radio{color:#4e4e4e}.theme-light .deptradio{color:#939}.theme-light .comradio{color:#004080}.theme-light .centradio{color:#5c5c8a}.theme-light .cryoradio{color:#554e3f}.theme-light .hcradio{color:#318779}.theme-light .pvstradio{color:#9b0612}.theme-light .airadio{color:#f0f}.theme-light .secradio{color:#a30000}.theme-light .engradio{color:#a66300}.theme-light .sentryradio{color:#844300}.theme-light .medradio{color:#008160}.theme-light .supradio{color:#5f4519}.theme-light .jtacradio{color:#702963}.theme-light .intelradio{color:#027d02}.theme-light .wyradio{color:#fe9b24}.theme-light .pmcradio{color:#136957}.theme-light .vairadio{color:#943d0a}.theme-light .cmbradio{color:#1b748c}.theme-light .clfradio{color:#6f679c}.theme-light .alpharadio{color:#ea0000}.theme-light .bravoradio{color:#c68610}.theme-light .charlieradio{color:#a5a}.theme-light .deltaradio{color:#007fcf}.theme-light .echoradio{color:#3a7e65}.theme-light .medium{font-size:110%}.theme-light .big{font-size:115%}.theme-light .large{font-size:125%}.theme-light .extra_large{font-size:130%}.theme-light .huge{font-size:150%}.theme-light .underline{text-decoration:underline}.theme-light .orange{color:#eca100}.theme-light .normal{font-style:normal}.theme-light .attack{color:red}.theme-light .moderate{color:#c00}.theme-light .disarm{color:#900}.theme-light .passive{color:#600}.theme-light .helpful{color:#368f31}.theme-light .scanner{color:red}.theme-light .scannerb{color:red;font-weight:bold}.theme-light .scannerburn{color:orange}.theme-light .scannerburnb{color:orange;font-weight:bold}.theme-light .rose{color:#ff5050}.theme-light .debuginfo{color:#493d26;font-style:italic}.theme-light .xenonotice{color:#2a623d}.theme-light .xenoboldnotice{color:#2a623d;font-weight:bold}.theme-light .xenowarning{color:#2a623d;font-style:italic}.theme-light .xenominorwarning{color:#2a623d;font-weight:bold;font-style:italic}.theme-light .xenodanger{color:#2a623d;font-weight:bold}.theme-light .avoidharm{color:#72a0e5;font-weight:bold}.theme-light .highdanger{color:red;font-weight:bold;font-size:140%}.theme-light .xenohighdanger{color:#2a623d;font-weight:bold;font-size:140%}.theme-light .xenoannounce{color:#1a472a;font-family:book-antiqua;font-weight:bold;font-size:140%}.theme-light .yautjabold{color:purple;font-weight:bold}.theme-light .yautjaboldbig{color:purple;font-weight:bold;font-size:120%}.theme-light .objectivebig{font-weight:bold;font-size:130%}.theme-light .objectivegreen{color:lime}.theme-light .objectivered{color:red}.theme-light .objectivesuccess{color:lime;font-weight:bold;font-size:110%}.theme-light .objectivefail{color:red;font-weight:bold;font-size:110%}.theme-light .xenotalk,.theme-light .xeno{color:#900090;font-style:italic}.theme-light .xenoleader{color:#730d73;font-style:italic;font-size:125%}.theme-light .xenoqueen{color:#730d73;font-style:italic;font-weight:bold;font-size:125%}.theme-light .newscaster{color:maroon}.theme-light .role_header{color:#db0000;display:block;text-align:center;font-weight:bold;font-family:trebuchet-ms;font-size:150%}.theme-light .role_body{color:#009;display:block;text-align:center;font-size:125%}.theme-light .round_header{color:#db0000;display:block;text-align:center;font-family:courier;font-weight:bold;font-size:180%}.theme-light .round_body{color:#001427;display:block;text-align:center;font-family:trebuchet-ms;font-weight:bold;font-size:125%}.theme-light .event_announcement{color:#600d48;font-family:arial-narrow;font-weight:bold;font-size:125%}.theme-light .announce_header{color:#000;font-weight:bold;font-size:150%}.theme-light .announce_header_blue{color:#009;font-weight:bold;font-size:150%}.theme-light .announce_body{color:red;font-weight:normal;font-size:125%}.theme-light .centerbold{display:block;text-align:center;font-weight:bold}.theme-light .mod{color:#735638;font-weight:bold}.theme-light .modooc{color:#184880;font-weight:bold}.theme-light .adminmod{color:#402a14;font-weight:bold}.theme-light .mentorsay{color:#b38c32;font-weight:bold}.theme-light .mentorhelp{color:#007e00;font-weight:bold}.theme-light .mentorbody{color:#da6200;font-weight:bold}.theme-light .mentorstaff{color:#876101;font-weight:bold}.theme-light .staffsay{color:#876101;font-weight:bold}.theme-light .tajaran{color:#803b56}.theme-light .tajaran_signlang{color:#941c1c}.theme-light .skrell{color:#00ced1}.theme-light .soghun{color:#228b22}.theme-light .changeling{color:purple}.theme-light .vox{color:#a0a}.theme-light .monkey{color:#966c47}.theme-light .german{color:#858f1e;font-family:"Times New Roman",Times,serif}.theme-light .spanish{color:#cf982b}.theme-light .japanese{color:#940927}.theme-light .chinese{color:#fe1919}.theme-light .zombie{color:#216163;font-style:italic}.theme-light .commando{color:#fe9b24;font-style:bold}.theme-light .rough{font-family:trebuchet-ms,cursive,sans-serif}.theme-light .say_quote{font-family:Georgia,Verdana,sans-serif}.theme-light .admin .message{color:#314cad}.theme-light .admin .prefix{font-weight:bolder}.theme-light .pm{font-size:110%}.theme-light .retro_translator{font-weight:bold}.theme-light .yautja_translator{color:#a00;font-weight:bold;animation:glitch .5s infinite}@keyframes glitch{25%{color:#a00;transform:translate(-2px, -1px)}50%{color:#be0000;transform:translate(1px, -2px)}75%{color:#8d0000;transform:translate(-1px, 2px)}100%{color:#830000;transform:translate(1px, 1px)}}.theme-light .examine_block{background:#f2f7fa;border:1px solid #111a27;margin:.5em;padding:.5em .75em}.theme-light .examine_block .icon{width:1.5em;height:1.5em;margin:0;padding:0}.theme-light .tooltip{font-style:italic;border-bottom:1px dashed #000}
+html,body{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,*:before,*:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:6px 0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#1a1a1a !important}.color-white{color:#fff !important}.color-red{color:#df3e3e !important}.color-orange{color:#f37f33 !important}.color-yellow{color:#fbda21 !important}.color-olive{color:#cbe41c !important}.color-green{color:#25ca4c !important}.color-teal{color:#00d6cc !important}.color-blue{color:#2e93de !important}.color-dark-blue{color:#005fa7 !important}.color-violet{color:#7349cf !important}.color-purple{color:#ad45d0 !important}.color-pink{color:#e34da1 !important}.color-brown{color:#b97447 !important}.color-grey{color:#848484 !important}.color-light-grey{color:#b3b3b3 !important}.color-good{color:#68c22d !important}.color-average{color:#f29a29 !important}.color-bad{color:#df3e3e !important}.color-label{color:#8b9bb0 !important}.color-xeno{color:#664573 !important}.color-bg-black{background-color:#000 !important}.color-bg-white{background-color:#d9d9d9 !important}.color-bg-red{background-color:#bd2020 !important}.color-bg-orange{background-color:#d95e0c !important}.color-bg-yellow{background-color:#d9b804 !important}.color-bg-olive{background-color:#9aad14 !important}.color-bg-green{background-color:#1b9638 !important}.color-bg-teal{background-color:#009a93 !important}.color-bg-blue{background-color:#1c71b1 !important}.color-bg-dark-blue{background-color:#003e6e !important}.color-bg-violet{background-color:#552dab !important}.color-bg-purple{background-color:#8b2baa !important}.color-bg-pink{background-color:#cf2082 !important}.color-bg-brown{background-color:#8c5836 !important}.color-bg-grey{background-color:#646464 !important}.color-bg-light-grey{background-color:#919191 !important}.color-bg-good{background-color:#4d9121 !important}.color-bg-average{background-color:#cd7a0d !important}.color-bg-bad{background-color:#bd2020 !important}.color-bg-label{background-color:#657a94 !important}.color-bg-xeno{background-color:#462f4e !important}.debug-layout,.debug-layout *:not(g):not(path){color:rgba(255,255,255,.9) !important;background:rgba(0,0,0,0) !important;outline:1px solid rgba(255,255,255,.5) !important;box-shadow:none !important;filter:none !important}.debug-layout:hover,.debug-layout *:not(g):not(path):hover{outline-color:rgba(255,255,255,.8) !important}.outline-dotted{outline-style:dotted !important}.outline-dashed{outline-style:dashed !important}.outline-solid{outline-style:solid !important}.outline-double{outline-style:double !important}.outline-groove{outline-style:groove !important}.outline-ridge{outline-style:ridge !important}.outline-inset{outline-style:inset !important}.outline-outset{outline-style:outset !important}.outline-color-black{outline:.167rem solid #1a1a1a !important}.outline-color-white{outline:.167rem solid #fff !important}.outline-color-red{outline:.167rem solid #df3e3e !important}.outline-color-orange{outline:.167rem solid #f37f33 !important}.outline-color-yellow{outline:.167rem solid #fbda21 !important}.outline-color-olive{outline:.167rem solid #cbe41c !important}.outline-color-green{outline:.167rem solid #25ca4c !important}.outline-color-teal{outline:.167rem solid #00d6cc !important}.outline-color-blue{outline:.167rem solid #2e93de !important}.outline-color-dark-blue{outline:.167rem solid #005fa7 !important}.outline-color-violet{outline:.167rem solid #7349cf !important}.outline-color-purple{outline:.167rem solid #ad45d0 !important}.outline-color-pink{outline:.167rem solid #e34da1 !important}.outline-color-brown{outline:.167rem solid #b97447 !important}.outline-color-grey{outline:.167rem solid #848484 !important}.outline-color-light-grey{outline:.167rem solid #b3b3b3 !important}.outline-color-good{outline:.167rem solid #68c22d !important}.outline-color-average{outline:.167rem solid #f29a29 !important}.outline-color-bad{outline:.167rem solid #df3e3e !important}.outline-color-label{outline:.167rem solid #8b9bb0 !important}.outline-color-xeno{outline:.167rem solid #664573 !important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:bold}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8b9bb0;border-left:.1666666667em solid #8b9bb0;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button .fa,.Button .fas,.Button .far{margin-left:-0.25em;margin-right:-0.25em;min-width:1.333em;text-align:center}.Button--hasContent .fa,.Button--hasContent .fas,.Button--hasContent .far{margin-right:.25em}.Button--hasContent.Button--iconPosition--right .fa,.Button--hasContent.Button--iconPosition--right .fas,.Button--hasContent.Button--iconPosition--right .far{margin-right:0px;margin-left:3px}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--circular{border-radius:50%}.Button--compact{padding:0 .25em;line-height:1.333em}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color 100ms,background-color 100ms}.Button--color--black:hover,.Button--color--black:focus{background-color:#131313;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color 100ms,background-color 100ms}.Button--color--white:hover,.Button--color--white:focus{background-color:#f8f8f8;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color 100ms,background-color 100ms}.Button--color--red:hover,.Button--color--red:focus{background-color:#dc4848;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color 100ms,background-color 100ms}.Button--color--orange:hover,.Button--color--orange:focus{background-color:#f0853f;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color 100ms,background-color 100ms}.Button--color--yellow:hover,.Button--color--yellow:focus{background-color:#f5d72e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color 100ms,background-color 100ms}.Button--color--olive:hover,.Button--color--olive:focus{background-color:#c4da2b;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color 100ms,background-color 100ms}.Button--color--green:hover,.Button--color--green:focus{background-color:#32c154;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color 100ms,background-color 100ms}.Button--color--teal:hover,.Button--color--teal:focus{background-color:#13c4bc;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color 100ms,background-color 100ms}.Button--color--blue:hover,.Button--color--blue:focus{background-color:#3a95d9;color:#fff}.Button--color--dark-blue{transition:color 50ms,background-color 50ms;background-color:#003e6e;color:#fff}.Button--color--dark-blue:hover{transition:color 0ms,background-color 0ms}.Button--color--dark-blue:focus{transition:color 100ms,background-color 100ms}.Button--color--dark-blue:hover,.Button--color--dark-blue:focus{background-color:#135b92;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color 100ms,background-color 100ms}.Button--color--violet:hover,.Button--color--violet:focus{background-color:#7953cc;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color 100ms,background-color 100ms}.Button--color--purple:hover,.Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color 100ms,background-color 100ms}.Button--color--pink:hover,.Button--color--pink:focus{background-color:#e257a5;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color 100ms,background-color 100ms}.Button--color--brown:hover,.Button--color--brown:focus{background-color:#b47851;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color 100ms,background-color 100ms}.Button--color--grey:hover,.Button--color--grey:focus{background-color:#868686;color:#fff}.Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:#919191;color:#fff}.Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.Button--color--light-grey:focus{transition:color 100ms,background-color 100ms}.Button--color--light-grey:hover,.Button--color--light-grey:focus{background-color:#bababa;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color 100ms,background-color 100ms}.Button--color--good:hover,.Button--color--good:focus{background-color:#6cba39;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color 100ms,background-color 100ms}.Button--color--average:hover,.Button--color--average:focus{background-color:#ed9d35;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color 100ms,background-color 100ms}.Button--color--bad:hover,.Button--color--bad:focus{background-color:#dc4848;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color 100ms,background-color 100ms}.Button--color--label:hover,.Button--color--label:focus{background-color:#91a1b3;color:#fff}.Button--color--xeno{transition:color 50ms,background-color 50ms;background-color:#462f4e;color:#fff}.Button--color--xeno:hover{transition:color 0ms,background-color 0ms}.Button--color--xeno:focus{transition:color 100ms,background-color 100ms}.Button--color--xeno:hover,.Button--color--xeno:focus{background-color:#64496d;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color 100ms,background-color 100ms}.Button--color--default:hover,.Button--color--default:focus{background-color:#5c83b0;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color 100ms,background-color 100ms}.Button--color--caution:hover,.Button--color--caution:focus{background-color:#f5d72e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color 100ms,background-color 100ms}.Button--color--danger:hover,.Button--color--danger:focus{background-color:#dc4848;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#202020;color:#fff;background-color:rgba(32,32,32,0);color:rgba(255,255,255,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color 100ms,background-color 100ms}.Button--color--transparent:hover,.Button--color--transparent:focus{background-color:#383838;color:#fff}.Button--disabled{background-color:#999 !important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color 100ms,background-color 100ms}.Button--selected:hover,.Button--selected:focus{background-color:#32c154;color:#fff}.Button--flex{display:inline-flex;flex-direction:column}.Button--flex--fluid{width:100%}.Button--verticalAlignContent--top{justify-content:flex-start}.Button--verticalAlignContent--middle{justify-content:center}.Button--verticalAlignContent--bottom{justify-content:flex-end}.Button__content{display:block;align-self:stretch}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:1em;width:8.3333333333em;line-height:1.4166666667em;user-select:none}.Dropdown__arrow-button{float:right;padding-left:.35em;width:1.2em;height:1.8333333333em;border-left:.0833333333em solid #000;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;overflow-y:scroll;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color 100ms ease-out}.Dropdown__menuentry:hover{background-color:rgba(255,255,255,.2);transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.Dropdown__selected-text{display:inline-block;text-overflow:ellipsis;white-space:nowrap;height:1.4166666667em;width:calc(100% - 1.2em)}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:block}.Flex--iefix.Flex--inline{display:inline-block}.Flex__item--iefix{display:inline-block}.Flex--iefix--column>.Flex__item--iefix{display:block}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto;margin-bottom:-0.2em;cursor:n-resize}.Knob:after{content:".";color:rgba(0,0,0,0);line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotateZ(135deg)}.Knob__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotateZ(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotateZ(270deg)}.Knob__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.Knob--color--black .Knob__ringFill{stroke:#1a1a1a}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#df3e3e}.Knob--color--orange .Knob__ringFill{stroke:#f37f33}.Knob--color--yellow .Knob__ringFill{stroke:#fbda21}.Knob--color--olive .Knob__ringFill{stroke:#cbe41c}.Knob--color--green .Knob__ringFill{stroke:#25ca4c}.Knob--color--teal .Knob__ringFill{stroke:#00d6cc}.Knob--color--blue .Knob__ringFill{stroke:#2e93de}.Knob--color--dark-blue .Knob__ringFill{stroke:#005fa7}.Knob--color--violet .Knob__ringFill{stroke:#7349cf}.Knob--color--purple .Knob__ringFill{stroke:#ad45d0}.Knob--color--pink .Knob__ringFill{stroke:#e34da1}.Knob--color--brown .Knob__ringFill{stroke:#b97447}.Knob--color--grey .Knob__ringFill{stroke:#848484}.Knob--color--light-grey .Knob__ringFill{stroke:#b3b3b3}.Knob--color--good .Knob__ringFill{stroke:#68c22d}.Knob--color--average .Knob__ringFill{stroke:#f29a29}.Knob--color--bad .Knob__ringFill{stroke:#df3e3e}.Knob--color--label .Knob__ringFill{stroke:#8b9bb0}.Knob--color--xeno .Knob__ringFill{stroke:#664573}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-0.25em -0.5em;margin-bottom:0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left}.LabeledList__label--nowrap{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.Modal{background-color:#202020;max-width:calc(100% - 1rem);padding:1rem}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:bold;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg, transparent, transparent 0.8333333333em, rgba(0, 0, 0, 0.1) 0.8333333333em, rgba(0, 0, 0, 0.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--dark-blue{color:#fff;background-color:#02121f}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--light-grey{color:#fff;background-color:#6a6a6a}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--color--xeno{color:#fff;background-color:#19161b}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em !important;border-style:solid !important;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color 900ms ease-out}.ProgressBar__fill{position:absolute;top:-0.5px;left:0px;bottom:-0.5px}.ProgressBar__fill--animated{transition:background-color 900ms ease-out,width 900ms ease-out}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border-color:#000 !important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border-color:#d9d9d9 !important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border-color:#bd2020 !important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border-color:#d95e0c !important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border-color:#d9b804 !important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border-color:#9aad14 !important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border-color:#1b9638 !important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border-color:#009a93 !important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border-color:#1c71b1 !important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--dark-blue{border-color:#003e6e !important}.ProgressBar--color--dark-blue .ProgressBar__fill{background-color:#003e6e}.ProgressBar--color--violet{border-color:#552dab !important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border-color:#8b2baa !important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border-color:#cf2082 !important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border-color:#8c5836 !important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border-color:#646464 !important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--light-grey{border-color:#919191 !important}.ProgressBar--color--light-grey .ProgressBar__fill{background-color:#919191}.ProgressBar--color--good{border-color:#4d9121 !important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border-color:#cd7a0d !important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border-color:#bd2020 !important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border-color:#657a94 !important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.ProgressBar--color--xeno{border-color:#462f4e !important}.ProgressBar--color--xeno .ProgressBar__fill{background-color:#462f4e}.Section{position:relative;margin-bottom:.5em;background-color:#131313;background-color:#131313;box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:bold;color:#fff}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__rest{position:relative}.Section__content{padding:.66em .5em}.Section--fitted>.Section__rest>.Section__content{padding:0}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--fill>.Section__rest{flex-grow:1}.Section--fill>.Section__rest>.Section__content{height:100%}.Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.Section--fill.Section--iefix{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.Section--fill.Section--iefix>.Section__rest{display:table-row !important;height:100% !important}.Section--scrollable{overflow-x:hidden;overflow-y:hidden}.Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.Section .Section{background-color:rgba(0,0,0,0);margin-left:-0.5em;margin-right:-0.5em}.Section .Section:first-child{margin-top:-0.5em}.Section .Section .Section__titleText{font-size:1.0833333333em}.Section .Section .Section .Section__titleText{font-size:1em}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none !important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid rgba(0,0,0,0);border-right:.4166666667em solid rgba(0,0,0,0);border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--fill{height:100%}.Stack--horizontal>.Stack__item{margin-left:.5em}.Stack--horizontal>.Stack__item:first-child{margin-left:0}.Stack--vertical>.Stack__item{margin-top:.5em}.Stack--vertical>.Stack__item:first-child{margin-top:0}.Stack--horizontal>.Stack__divider:not(.Stack__divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--vertical>.Stack__divider:not(.Stack__divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__row--header .Table__cell,.Table__cell--header{font-weight:bold;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#131313}.Tabs--fill{height:100%}.Section .Tabs{background-color:rgba(0,0,0,0)}.Section:not(.Section--fitted) .Tabs{margin:0 -0.5em .5em}.Section:not(.Section--fitted) .Tabs:first-child{margin-top:-0.5em}.Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0 .25em}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(255,255,255,.5);min-height:2.25em;min-width:4em}.Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.Tab--selected{background-color:rgba(255,255,255,.125);color:#dfe7f0}.Tab__text{flex-grow:1;margin:0 .5em}.Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #d4dfec}.Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.Tabs--vertical .Tab--selected{border-right:.1666666667em solid #d4dfec}.Tab--selected.Tab--color--black{color:#535353}.Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#1a1a1a}.Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#1a1a1a}.Tab--selected.Tab--color--white{color:#fff}.Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#fff}.Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#fff}.Tab--selected.Tab--color--red{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#df3e3e}.Tab--selected.Tab--color--orange{color:#f69f66}.Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#f37f33}.Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#f37f33}.Tab--selected.Tab--color--yellow{color:#fce358}.Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#fbda21}.Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#fbda21}.Tab--selected.Tab--color--olive{color:#d8eb55}.Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#cbe41c}.Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#cbe41c}.Tab--selected.Tab--color--green{color:#53e074}.Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#25ca4c}.Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#25ca4c}.Tab--selected.Tab--color--teal{color:#21fff5}.Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00d6cc}.Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00d6cc}.Tab--selected.Tab--color--blue{color:#62aee6}.Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#2e93de}.Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#2e93de}.Tab--selected.Tab--color--dark-blue{color:#008ffd}.Tabs--horizontal .Tab--selected.Tab--color--dark-blue{border-bottom-color:#005fa7}.Tabs--vertical .Tab--selected.Tab--color--dark-blue{border-right-color:#005fa7}.Tab--selected.Tab--color--violet{color:#9676db}.Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#7349cf}.Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#7349cf}.Tab--selected.Tab--color--purple{color:#c274db}.Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#ad45d0}.Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#ad45d0}.Tab--selected.Tab--color--pink{color:#ea79b9}.Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#e34da1}.Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#e34da1}.Tab--selected.Tab--color--brown{color:#ca9775}.Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#b97447}.Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#b97447}.Tab--selected.Tab--color--grey{color:#a3a3a3}.Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#848484}.Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#848484}.Tab--selected.Tab--color--light-grey{color:#c6c6c6}.Tabs--horizontal .Tab--selected.Tab--color--light-grey{border-bottom-color:#b3b3b3}.Tabs--vertical .Tab--selected.Tab--color--light-grey{border-right-color:#b3b3b3}.Tab--selected.Tab--color--good{color:#8cd95a}.Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#68c22d}.Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#68c22d}.Tab--selected.Tab--color--average{color:#f5b35e}.Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#f29a29}.Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#f29a29}.Tab--selected.Tab--color--bad{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#df3e3e}.Tab--selected.Tab--color--label{color:#a8b4c4}.Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#8b9bb0}.Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#8b9bb0}.Tab--selected.Tab--color--xeno{color:#9366a3}.Tabs--horizontal .Tab--selected.Tab--color--xeno{border-bottom-color:#664573}.Tabs--vertical .Tab--selected.Tab--color--xeno{border-right-color:#664573}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.TextArea{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;background-color:#0a0a0a;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.TextArea--fluid{display:block;width:auto;height:auto}.TextArea--noborder{border:0px}.TextArea__textarea.TextArea__textarea--scrollable{overflow:auto;overflow-x:hidden;overflow-y:scroll}.TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:rgba(0,0,0,0);color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.TextArea__textarea_custom{overflow:visible;white-space:pre-wrap}.Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity 150ms ease-out;background-color:#000;color:#fff;box-shadow:.1em .1em 1.25em -0.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.Chat{color:#abc6ec}.Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:crimson;border-radius:10px;transition:font-size 200ms ease-out}.Chat__badge:before{content:"x"}.Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.Chat__scrollButton{position:fixed;right:2em;bottom:1em}.Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#131313}.Chat__reconnected:after{content:"";display:block;margin-top:-0.75em;border-bottom:.1666666667em solid #db2828}.Chat__highlight{color:#000}.Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:bold}.ChatMessage{word-wrap:break-word}.ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.Ping{position:relative;padding:.125em .25em;border:.0833333333em solid rgba(140,140,140,.5);border-radius:.25em;width:3.75em;text-align:right}.Ping__indicator{content:"";position:absolute;top:.5em;left:.5em;width:.5em;height:.5em;background-color:#888;border-radius:.25em}.Notifications{position:absolute;bottom:1em;left:1em;right:2em}.Notification{color:#fff;background-color:crimson;padding:.5em;margin:1em 0}.Notification:first-child{margin-top:0}.Notification:last-child{margin-bottom:0}.Layout,.Layout *{scrollbar-base-color:#181818;scrollbar-face-color:#363636;scrollbar-3dlight-color:#202020;scrollbar-highlight-color:#202020;scrollbar-track-color:#181818;scrollbar-arrow-color:#909090;scrollbar-shadow-color:#363636}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#202020;background-image:linear-gradient(to bottom, #202020 0%, #202020 100%)}.Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(56,56,56,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}em{font-style:normal;font-weight:bold}img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}a{color:#397ea5}a.visited{color:#7c00e6}a:visited{color:#7c00e6}a.popt{text-decoration:none}.popup{position:fixed;top:50%;left:50%;background:#ddd}.popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.popup .close:hover{background:#999}.popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:bold;border-bottom:2px solid green}.popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.popup input[type=text]:hover,.popup input[type=text]:active,.popup input[type=text]:focus{border-color:green}.popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:bold}.popup input[type=submit]:hover,.popup input[type=submit]:focus,.popup input[type=submit]:active{background:#aaa;cursor:pointer}.changeFont{padding:10px}.changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.changeFont a:hover{background:#ccc}.highlightPopup{padding:10px;text-align:center}.highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.highlightPopup input.highlightColor{background-color:#ff0}.highlightPopup input.highlightTermSubmit{margin-top:5px}.contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.contextMenu a:hover{background-color:#ccc}.filterMessages{padding:5px}.filterMessages div{padding:2px 0}.icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.motd{color:#a4bad6;font-family:Verdana,sans-serif;white-space:normal}.motd h1,.motd h2,.motd h3,.motd h4,.motd h5,.motd h6{color:#a4bad6;text-decoration:underline}.motd a,.motd a:link,.motd a:visited,.motd a:active,.motd a:hover{color:#a4bad6}.bold,.name,.prefix,.ooc,.looc,.adminooc,.admin,.medal,.yell{font-weight:bold}.italic,.italics{font-style:italic}.highlight{background:#ff0}h1,h2,h3,h4,h5,h6{color:#a4bad6;font-family:Georgia,Verdana,sans-serif}h1.alert,h2.alert{color:#a4bad6}em{font-style:normal;font-weight:bold}.ooc{font-weight:bold}.adminobserverooc{color:#09c;font-weight:bold}.adminooc{color:#3d5bc3;font-weight:bold}.adminsay{color:#9611d4;font-weight:bold}.admin{color:#5975da;font-weight:bold}.name{font-weight:bold}.deadsay{color:#e2c1ff}.binarysay{color:#1e90ff}.binarysay a{color:lime}.binarysay a:active,.binarysay a:visited{color:#8f8}.radio{color:#1ecc43}.sciradio{color:#c68cfa}.comradio{color:#fcdf03}.secradio{color:#dd3535}.medradio{color:#57b8f0}.engradio{color:#f37746}.suppradio{color:#b88646}.servradio{color:#6ca729}.syndradio{color:#8f4a4b}.gangradio{color:#ac2ea1}.centcomradio{color:#2681a5}.aiprivradio{color:#d65d95}.redteamradio{color:#f44}.blueteamradio{color:#3434fd}.greenteamradio{color:#34fd34}.yellowteamradio{color:#fdfd34}.yell{font-weight:bold}.alert{color:#d82020}.userdanger{color:#c51e1e;font-weight:bold;font-size:185%}.bolddanger{color:#c51e1e;font-weight:bold}.danger{color:#c51e1e}.warning{color:#c51e1e;font-style:italic}.alertwarning{color:red;font-weight:bold}.boldwarning{color:#c51e1e;font-style:italic;font-weight:bold}.announce{color:#c51e1e;font-weight:bold}.boldannounce{color:#c51e1e;font-weight:bold}.bigannounce{font-weight:bold;font-size:115%}.greenannounce{color:#059223;font-weight:bold}.rose{color:#ff5050}.info{color:#9ab0ff}.notice{color:#6685f5}.staff_ic{color:#6685f5}.tinynotice{color:#6685f5;font-size:85%}.tinynoticeital{color:#6685f5;font-style:italic;font-size:85%}.smallnotice{color:#6685f5;font-size:90%}.smallnoticeital{color:#6685f5;font-style:italic;font-size:90%}.boldnotice{color:#6685f5;font-weight:bold}.hear{color:#6685f5;font-style:italic}.adminnotice{color:#6685f5}.adminhelp{color:red;font-weight:bold}.unconscious{color:#a4bad6;font-weight:bold}.suicide{color:#ff5050;font-style:italic}.green{color:#059223}.grey{color:#838383}.red{color:red}.blue{color:#215cff}.nicegreen{color:#059223}.boldnicegreen{color:#059223;font-weight:bold}.cult{color:#973e3b}.cultitalic{color:#973e3b;font-style:italic}.cultbold{color:#973e3b;font-style:italic;font-weight:bold}.cultboldtalic{color:#973e3b;font-weight:bold;font-size:185%}.cultlarge{color:#973e3b;font-weight:bold;font-size:185%}.narsie{color:#973e3b;font-weight:bold;font-size:925%}.narsiesmall{color:#973e3b;font-weight:bold;font-size:370%}.colossus{color:#7f282a;font-size:310%}.hierophant{color:#b441ee;font-weight:bold;font-style:italic}.hierophant_warning{color:#c56bf1;font-style:italic}.purple{color:#9956d3}.holoparasite{color:#88809c}.revennotice{color:#c099e2}.revenboldnotice{color:#c099e2;font-weight:bold}.revenbignotice{color:#c099e2;font-weight:bold;font-size:185%}.revenminor{color:#823abb}.revenwarning{color:#760fbb;font-style:italic}.revendanger{color:#760fbb;font-weight:bold;font-size:185%}.deconversion_message{color:#a947ff;font-size:185%;font-style:italic}.ghostalert{color:#60f;font-style:italic;font-weight:bold}.alien{color:#855d85}.noticealien{color:#059223}.alertalien{color:#059223;font-weight:bold}.changeling{color:#059223;font-style:italic}.alertsyndie{color:red;font-size:185%;font-weight:bold}.spider{color:#80f;font-weight:bold;font-size:185%}.interface{color:#750e75}.sans{font-family:"Comic Sans MS",cursive,sans-serif}.papyrus{font-family:"Papyrus",cursive,sans-serif}.robot{font-family:"Courier New",cursive,sans-serif}.tape_recorder{color:red;font-family:"Courier New",cursive,sans-serif}.command_headset{font-weight:bold;font-size:160%}.small{font-size:60%}.big{font-size:185%}.reallybig{font-size:245%}.extremelybig{font-size:310%}.greentext{color:#059223;font-size:185%}.redtext{color:#c51e1e;font-size:185%}.clown{color:#ff70c1;font-size:160%;font-family:"Comic Sans MS",cursive,sans-serif;font-weight:bold}.singing{font-family:"Trebuchet MS",cursive,sans-serif;font-style:italic}.his_grace{color:#15d512;font-family:"Courier New",cursive,sans-serif;font-style:italic}.hypnophrase{color:#202020;font-weight:bold;animation:hypnocolor 1500ms infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#202020}25%{color:#4b02ac}50%{color:#9f41f1}75%{color:#541c9c}100%{color:#7adbf3}}.phobia{color:#d00;font-weight:bold;animation:phobia 750ms infinite}@keyframes phobia{0%{color:#f75a5a}50%{color:#d00}100%{color:#f75a5a}}.icon{height:1em;width:auto}.bigicon{font-size:2.5em}.memo{color:#638500;text-align:center}.memoedit{text-align:center;font-size:125%}.abductor{color:#c204c2;font-style:italic}.mind_control{color:#df3da9;font-size:100%;font-weight:bold;font-style:italic}.slime{color:#00ced1}.drone{color:#848482}.monkey{color:#975032}.swarmer{color:#2c75ff}.resonate{color:#298f85}.monkeyhive{color:#a56408}.monkeylead{color:#af6805;font-size:80%}.connectionClosed,.fatalError{background:red;color:#fff;padding:5px}.connectionClosed.restored{background:green}.internal.boldnshit{color:#3d5bc3;font-weight:bold}.text-normal{font-weight:normal;font-style:normal}.hidden{display:none;visibility:hidden}.ml-1{margin-left:1em}.ml-2{margin-left:2em}.ml-3{margin-left:3em}.xooc{color:#ac04e9;font-weight:bold;font-size:140%}.mooc{color:#090;font-weight:bold;font-size:140%}.yooc{color:#999600;font-weight:bold;font-size:140%}.headminsay{color:#653d78;font-weight:bold}.radio{color:#b4b4b4}.deptradio{color:#939}.comradio{color:#779cc2}.centradio{color:#5c5c8a}.hcradio{color:#318779}.pvstradio{color:#9b0612}.cryoradio{color:#ad6d48}.airadio{color:#f0f}.secradio{color:#a52929}.engradio{color:#a66300}.sentryradio{color:#844300}.medradio{color:#008160}.supradio{color:#ba8e41}.jtacradio{color:#ad3b98}.intelradio{color:#027d02}.wyradio{color:#fe9b24}.pmcradio{color:#4dc5ce}.vairadio{color:#e3580e}.rmcradio{color:#e3580e}.cmbradio{color:#1b748c}.clfradio{color:#8e83ca}.alpharadio{color:#db2626}.bravoradio{color:#c68610}.charlieradio{color:#a5a}.deltaradio{color:#007fcf}.echoradio{color:#3eb489}.medium{font-size:110%}.big{font-size:115%}.large{font-size:125%}.extra_large{font-size:130%}.huge{font-size:150%}.underline{text-decoration:underline}.orange{color:#eca100}.normal{font-style:normal}.attack{color:#ff3838}.moderate{color:#c00}.disarm{color:#900}.passive{color:#600}.helpful{color:#368f31}.scanner{color:#ff3838}.scannerb{color:#ff3838;font-weight:bold}.scannerburn{color:orange}.scannerburnb{color:orange;font-weight:bold}.rose{color:#ff5050}.debuginfo{color:#493d26;font-style:italic}.xenonotice{color:#51a16c}.xenoboldnotice{color:#51a16c;font-weight:bold}.xenowarning{color:#51a16c;font-style:italic}.xenominorwarning{color:#51a16c;font-weight:bold;font-style:italic}.xenodanger{color:#51a16c;font-weight:bold}.avoidharm{color:#72a0e5;font-weight:bold}.highdanger{color:#ff3838;font-weight:bold;font-size:140%}.xenohighdanger{color:#51a16c;font-weight:bold;font-size:140%}.xenoannounce{color:#65c585;font-family:book-antiqua;font-weight:bold;font-size:140%}.yautjabold{color:purple;font-weight:bold}.yautjaboldbig{color:purple;font-weight:bold;font-size:120%}.objectivebig{font-weight:bold;font-size:130%}.objectivegreen{color:lime}.objectivered{color:red}.objectivesuccess{color:lime;font-weight:bold;font-size:110%}.objectivefail{color:red;font-weight:bold;font-size:110%}.xenotalk,.xeno{color:#c048c0;font-style:italic}.xenoleader{color:#996e99;font-style:italic;font-size:125%}.xenoqueen{color:#996e99;font-style:italic;font-weight:bold;font-size:125%}.newscaster{color:maroon}.role_header{color:#e92d2d;display:block;text-align:center;font-weight:bold;font-family:trebuchet-ms;font-size:150%}.role_body{color:#3a3ae9;display:block;text-align:center;font-size:125%}.round_header{color:#e92d2d;display:block;text-align:center;font-family:courier;font-weight:bold;font-size:180%}.round_body{color:#c5c5c5;display:block;text-align:center;font-family:trebuchet-ms;font-weight:bold;font-size:125%}.event_announcement{color:#600d48;font-family:arial-narrow;font-weight:bold;font-size:125%}.announce_header{color:#cecece;font-weight:bold;font-size:150%}.announce_header_blue{color:#7575f3;font-weight:bold;font-size:150%}.announce_header_admin{color:#7575f3;font-weight:bold;font-size:150%}.announce_body{color:#e92d2d;font-weight:normal;font-size:125%}.centerbold{display:block;text-align:center;font-weight:bold}.mod{color:#917455;font-weight:bold}.modooc{color:#184880;font-weight:bold}.adminmod{color:#7c440c;font-weight:bold}.mentorsay{color:#d4af57;font-weight:bold}.mentorhelp{color:#090;font-weight:bold}.mentorbody{color:#da6200;font-weight:bold}.mentorstaff{color:#b5850d;font-weight:bold}.staffsay{color:#b5850d;font-weight:bold}.tajaran{color:#803b56}.tajaran_signlang{color:#941c1c}.skrell{color:#00ced1}.soghun{color:#228b22}.changeling{color:purple}.vox{color:#a0a}.monkey{color:#966c47}.german{color:#858f1e;font-family:"Times New Roman",Times,serif}.spanish{color:#cf982b}.japanese{color:#940927}.chinese{color:#fe1919}.zombie{color:#2dacb1;font-style:italic}.rough{font-family:trebuchet-ms,cursive,sans-serif}.commando{color:#fe9b24;font-style:bold}.say_quote{font-family:Georgia,Verdana,sans-serif}.admin .message{color:#314cad}.admin .prefix{font-weight:bolder}.pm{font-size:110%}.deadsay{color:#8b4dff}.retro_translator{font-weight:bold}.yautja_translator{color:#a00;font-weight:bold;animation:glitch .5s infinite}@keyframes glitch{25%{color:#a00;transform:translate(-2px, -1px)}50%{color:#be0000;transform:translate(1px, -2px)}75%{color:#8d0000;transform:translate(-1px, 2px)}100%{color:#830000;transform:translate(1px, 1px)}}.examine_block{background:#1b1c1e;border:1px solid #a4bad6;margin:.5em;padding:.5em .75em}.examine_block .icon{width:1.5em;height:1.5em;margin:0;padding:0}.tooltip{font-style:italic;border-bottom:1px dashed #fff}
+.theme-light .color-black{color:#000 !important}.theme-light .color-white{color:#e6e6e6 !important}.theme-light .color-red{color:#c82121 !important}.theme-light .color-orange{color:#e6630d !important}.theme-light .color-yellow{color:#e5c304 !important}.theme-light .color-olive{color:#a3b816 !important}.theme-light .color-green{color:#1d9f3b !important}.theme-light .color-teal{color:#00a39c !important}.theme-light .color-blue{color:#1e78bb !important}.theme-light .color-dark-blue{color:#004274 !important}.theme-light .color-violet{color:#5a30b5 !important}.theme-light .color-purple{color:#932eb4 !important}.theme-light .color-pink{color:#db228a !important}.theme-light .color-brown{color:#955d39 !important}.theme-light .color-grey{color:#e6e6e6 !important}.theme-light .color-light-grey{color:#999 !important}.theme-light .color-good{color:#529923 !important}.theme-light .color-average{color:#da810e !important}.theme-light .color-bad{color:#c82121 !important}.theme-light .color-label{color:#353535 !important}.theme-light .color-xeno{color:#4a3253 !important}.theme-light .color-bg-black{background-color:#000 !important}.theme-light .color-bg-white{background-color:#bfbfbf !important}.theme-light .color-bg-red{background-color:#a61c1c !important}.theme-light .color-bg-orange{background-color:#c0530b !important}.theme-light .color-bg-yellow{background-color:#bfa303 !important}.theme-light .color-bg-olive{background-color:#889912 !important}.theme-light .color-bg-green{background-color:#188532 !important}.theme-light .color-bg-teal{background-color:#008882 !important}.theme-light .color-bg-blue{background-color:#19649c !important}.theme-light .color-bg-dark-blue{background-color:#003761 !important}.theme-light .color-bg-violet{background-color:#4b2897 !important}.theme-light .color-bg-purple{background-color:#7a2696 !important}.theme-light .color-bg-pink{background-color:#b61d73 !important}.theme-light .color-bg-brown{background-color:#7c4d2f !important}.theme-light .color-bg-grey{background-color:#bfbfbf !important}.theme-light .color-bg-light-grey{background-color:gray !important}.theme-light .color-bg-good{background-color:#44801d !important}.theme-light .color-bg-average{background-color:#b56b0b !important}.theme-light .color-bg-bad{background-color:#a61c1c !important}.theme-light .color-bg-label{background-color:#2c2c2c !important}.theme-light .color-bg-xeno{background-color:#3e2945 !important}.theme-light .Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#fff}.theme-light .Tabs--fill{height:100%}.theme-light .Section .Tabs{background-color:rgba(0,0,0,0)}.theme-light .Section:not(.Section--fitted) .Tabs{margin:0 -0.5em .5em}.theme-light .Section:not(.Section--fitted) .Tabs:first-child{margin-top:-0.5em}.theme-light .Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.theme-light .Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0 .25em}.theme-light .Tabs--horizontal:last-child{margin-bottom:0}.theme-light .Tabs__Tab{flex-grow:0}.theme-light .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-light .Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(0,0,0,.5);min-height:2.25em;min-width:4em}.theme-light .Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.theme-light .Tab--selected{background-color:rgba(255,255,255,.125);color:#404040}.theme-light .Tab__text{flex-grow:1;margin:0 .5em}.theme-light .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-light .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-light .Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.theme-light .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #000}.theme-light .Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.theme-light .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #000}.theme-light .Tab--selected.Tab--color--black{color:#404040}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#000}.theme-light .Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#000}.theme-light .Tab--selected.Tab--color--white{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--red{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--orange{color:#f48942}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#e6630d}.theme-light .Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#e6630d}.theme-light .Tab--selected.Tab--color--yellow{color:#fcdd33}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#e5c304}.theme-light .Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#e5c304}.theme-light .Tab--selected.Tab--color--olive{color:#d0e732}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#a3b816}.theme-light .Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#a3b816}.theme-light .Tab--selected.Tab--color--green{color:#33da5a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#1d9f3b}.theme-light .Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#1d9f3b}.theme-light .Tab--selected.Tab--color--teal{color:#00faef}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00a39c}.theme-light .Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00a39c}.theme-light .Tab--selected.Tab--color--blue{color:#419ce1}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#1e78bb}.theme-light .Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#1e78bb}.theme-light .Tab--selected.Tab--color--dark-blue{color:#0079d7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--dark-blue{border-bottom-color:#004274}.theme-light .Tabs--vertical .Tab--selected.Tab--color--dark-blue{border-right-color:#004274}.theme-light .Tab--selected.Tab--color--violet{color:#7f58d3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#5a30b5}.theme-light .Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#5a30b5}.theme-light .Tab--selected.Tab--color--purple{color:#b455d4}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#932eb4}.theme-light .Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#932eb4}.theme-light .Tab--selected.Tab--color--pink{color:#e558a7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#db228a}.theme-light .Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#db228a}.theme-light .Tab--selected.Tab--color--brown{color:#c0825a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#955d39}.theme-light .Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#955d39}.theme-light .Tab--selected.Tab--color--grey{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--light-grey{color:#b3b3b3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--light-grey{border-bottom-color:#999}.theme-light .Tabs--vertical .Tab--selected.Tab--color--light-grey{border-right-color:#999}.theme-light .Tab--selected.Tab--color--good{color:#77d23b}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#529923}.theme-light .Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#529923}.theme-light .Tab--selected.Tab--color--average{color:#f3a23a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#da810e}.theme-light .Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#da810e}.theme-light .Tab--selected.Tab--color--bad{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--label{color:#686868}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#353535}.theme-light .Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#353535}.theme-light .Tab--selected.Tab--color--xeno{color:#7e558e}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--xeno{border-bottom-color:#4a3253}.theme-light .Tabs--vertical .Tab--selected.Tab--color--xeno{border-right-color:#4a3253}.theme-light .Section{position:relative;margin-bottom:.5em;background-color:#fff;background-color:#fff;box-sizing:border-box}.theme-light .Section:last-child{margin-bottom:0}.theme-light .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-light .Section__titleText{font-size:1.1666666667em;font-weight:bold;color:#000}.theme-light .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-light .Section__rest{position:relative}.theme-light .Section__content{padding:.66em .5em}.theme-light .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-light .Section--fill{display:flex;flex-direction:column;height:100%}.theme-light .Section--fill>.Section__rest{flex-grow:1}.theme-light .Section--fill>.Section__rest>.Section__content{height:100%}.theme-light .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-light .Section--fill.Section--iefix{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.theme-light .Section--fill.Section--iefix>.Section__rest{display:table-row !important;height:100% !important}.theme-light .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-light .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-light .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-light .Section .Section{background-color:rgba(0,0,0,0);margin-left:-0.5em;margin-right:-0.5em}.theme-light .Section .Section:first-child{margin-top:-0.5em}.theme-light .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-light .Section .Section .Section .Section__titleText{font-size:1em}.theme-light .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-light .Button .fa,.theme-light .Button .fas,.theme-light .Button .far{margin-left:-0.25em;margin-right:-0.25em;min-width:1.333em;text-align:center}.theme-light .Button--hasContent .fa,.theme-light .Button--hasContent .fas,.theme-light .Button--hasContent .far{margin-right:.25em}.theme-light .Button--hasContent.Button--iconPosition--right .fa,.theme-light .Button--hasContent.Button--iconPosition--right .fas,.theme-light .Button--hasContent.Button--iconPosition--right .far{margin-right:0px;margin-left:3px}.theme-light .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-light .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-light .Button--circular{border-radius:50%}.theme-light .Button--compact{padding:0 .25em;line-height:1.333em}.theme-light .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-light .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--black:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--black:hover,.theme-light .Button--color--black:focus{background-color:#131313;color:#fff}.theme-light .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--white:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--white:hover,.theme-light .Button--color--white:focus{background-color:#efefef;color:#000}.theme-light .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--red:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--red:hover,.theme-light .Button--color--red:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#c0530b;color:#fff}.theme-light .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--orange:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--orange:hover,.theme-light .Button--color--orange:focus{background-color:#ea7426;color:#fff}.theme-light .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#bfa303;color:#fff}.theme-light .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--yellow:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--yellow:hover,.theme-light .Button--color--yellow:focus{background-color:#efce17;color:#fff}.theme-light .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#889912;color:#fff}.theme-light .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--olive:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--olive:hover,.theme-light .Button--color--olive:focus{background-color:#afc328;color:#fff}.theme-light .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#188532;color:#fff}.theme-light .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--green:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--green:hover,.theme-light .Button--color--green:focus{background-color:#2fac4c;color:#fff}.theme-light .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#008882;color:#fff}.theme-light .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--teal:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--teal:hover,.theme-light .Button--color--teal:focus{background-color:#13afa9;color:#fff}.theme-light .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#19649c;color:#fff}.theme-light .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--blue:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--blue:hover,.theme-light .Button--color--blue:focus{background-color:#3086c7;color:#fff}.theme-light .Button--color--dark-blue{transition:color 50ms,background-color 50ms;background-color:#003761;color:#fff}.theme-light .Button--color--dark-blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--dark-blue:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--dark-blue:hover,.theme-light .Button--color--dark-blue:focus{background-color:#135283;color:#fff}.theme-light .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#4b2897;color:#fff}.theme-light .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--violet:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--violet:hover,.theme-light .Button--color--violet:focus{background-color:#6a41c1;color:#fff}.theme-light .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#7a2696;color:#fff}.theme-light .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--purple:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--purple:hover,.theme-light .Button--color--purple:focus{background-color:#a03fc0;color:#fff}.theme-light .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#b61d73;color:#fff}.theme-light .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--pink:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--pink:hover,.theme-light .Button--color--pink:focus{background-color:#da3f96;color:#fff}.theme-light .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#7c4d2f;color:#fff}.theme-light .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--brown:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--brown:hover,.theme-light .Button--color--brown:focus{background-color:#a26c49;color:#fff}.theme-light .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--grey:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--grey:hover,.theme-light .Button--color--grey:focus{background-color:#efefef;color:#000}.theme-light .Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:gray;color:#fff}.theme-light .Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--light-grey:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--light-grey:hover,.theme-light .Button--color--light-grey:focus{background-color:#a6a6a6;color:#fff}.theme-light .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#44801d;color:#fff}.theme-light .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--good:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--good:hover,.theme-light .Button--color--good:focus{background-color:#62a635;color:#fff}.theme-light .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#b56b0b;color:#fff}.theme-light .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--average:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--average:hover,.theme-light .Button--color--average:focus{background-color:#e48f20;color:#fff}.theme-light .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--bad:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--bad:hover,.theme-light .Button--color--bad:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#2c2c2c;color:#fff}.theme-light .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--label:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--label:hover,.theme-light .Button--color--label:focus{background-color:#464646;color:#fff}.theme-light .Button--color--xeno{transition:color 50ms,background-color 50ms;background-color:#3e2945;color:#fff}.theme-light .Button--color--xeno:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--xeno:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--xeno:hover,.theme-light .Button--color--xeno:focus{background-color:#5a4363;color:#fff}.theme-light .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#bbb;color:#000}.theme-light .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--default:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--default:hover,.theme-light .Button--color--default:focus{background-color:#eaeaea;color:#000}.theme-light .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-light .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--caution:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--caution:hover,.theme-light .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-light .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-light .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--danger:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--danger:hover,.theme-light .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-light .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#eee;color:#000;background-color:rgba(238,238,238,0);color:rgba(0,0,0,.5)}.theme-light .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--transparent:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--transparent:hover,.theme-light .Button--color--transparent:focus{background-color:#fcfcfc;color:#000}.theme-light .Button--disabled{background-color:#363636 !important}.theme-light .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0668b8;color:#fff}.theme-light .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--selected:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--selected:hover,.theme-light .Button--selected:focus{background-color:#1a8be7;color:#fff}.theme-light .Button--flex{display:inline-flex;flex-direction:column}.theme-light .Button--flex--fluid{width:100%}.theme-light .Button--verticalAlignContent--top{justify-content:flex-start}.theme-light .Button--verticalAlignContent--middle{justify-content:center}.theme-light .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-light .Button__content{display:block;align-self:stretch}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#353535;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-light .NumberInput--fluid{display:block}.theme-light .NumberInput__content{margin-left:.5em}.theme-light .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-light .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #353535;background-color:#353535}.theme-light .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#fff;color:#000;text-align:right}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .TextArea{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;background-color:#fff;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.theme-light .TextArea--fluid{display:block;width:auto;height:auto}.theme-light .TextArea--noborder{border:0px}.theme-light .TextArea__textarea.TextArea__textarea--scrollable{overflow:auto;overflow-x:hidden;overflow-y:scroll}.theme-light .TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:rgba(0,0,0,0);color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.theme-light .TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .TextArea__textarea_custom{overflow:visible;white-space:pre-wrap}.theme-light .Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto;margin-bottom:-0.2em;cursor:n-resize}.theme-light .Knob:after{content:".";color:rgba(0,0,0,0);line-height:2.5em}.theme-light .Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.theme-light .Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.theme-light .Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.theme-light .Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.theme-light .Knob__ringTrackPivot{transform:rotateZ(135deg)}.theme-light .Knob__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.theme-light .Knob__ringFillPivot{transform:rotateZ(135deg)}.theme-light .Knob--bipolar .Knob__ringFillPivot{transform:rotateZ(270deg)}.theme-light .Knob__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.theme-light .Knob--color--black .Knob__ringFill{stroke:#000}.theme-light .Knob--color--white .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--red .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--orange .Knob__ringFill{stroke:#e6630d}.theme-light .Knob--color--yellow .Knob__ringFill{stroke:#e5c304}.theme-light .Knob--color--olive .Knob__ringFill{stroke:#a3b816}.theme-light .Knob--color--green .Knob__ringFill{stroke:#1d9f3b}.theme-light .Knob--color--teal .Knob__ringFill{stroke:#00a39c}.theme-light .Knob--color--blue .Knob__ringFill{stroke:#1e78bb}.theme-light .Knob--color--dark-blue .Knob__ringFill{stroke:#004274}.theme-light .Knob--color--violet .Knob__ringFill{stroke:#5a30b5}.theme-light .Knob--color--purple .Knob__ringFill{stroke:#932eb4}.theme-light .Knob--color--pink .Knob__ringFill{stroke:#db228a}.theme-light .Knob--color--brown .Knob__ringFill{stroke:#955d39}.theme-light .Knob--color--grey .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--light-grey .Knob__ringFill{stroke:#999}.theme-light .Knob--color--good .Knob__ringFill{stroke:#529923}.theme-light .Knob--color--average .Knob__ringFill{stroke:#da810e}.theme-light .Knob--color--bad .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--label .Knob__ringFill{stroke:#353535}.theme-light .Knob--color--xeno .Knob__ringFill{stroke:#4a3253}.theme-light .Slider{cursor:e-resize}.theme-light .Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none !important}.theme-light .Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #000}.theme-light .Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid rgba(0,0,0,0);border-right:.4166666667em solid rgba(0,0,0,0);border-bottom:.4166666667em solid #000}.theme-light .Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em !important;border-style:solid !important;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color 900ms ease-out}.theme-light .ProgressBar__fill{position:absolute;top:-0.5px;left:0px;bottom:-0.5px}.theme-light .ProgressBar__fill--animated{transition:background-color 900ms ease-out,width 900ms ease-out}.theme-light .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-light .ProgressBar--color--default{border:.0833333333em solid #bfbfbf}.theme-light .ProgressBar--color--default .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--black{border-color:#000 !important}.theme-light .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-light .ProgressBar--color--white{border-color:#bfbfbf !important}.theme-light .ProgressBar--color--white .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--red{border-color:#a61c1c !important}.theme-light .ProgressBar--color--red .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--orange{border-color:#c0530b !important}.theme-light .ProgressBar--color--orange .ProgressBar__fill{background-color:#c0530b}.theme-light .ProgressBar--color--yellow{border-color:#bfa303 !important}.theme-light .ProgressBar--color--yellow .ProgressBar__fill{background-color:#bfa303}.theme-light .ProgressBar--color--olive{border-color:#889912 !important}.theme-light .ProgressBar--color--olive .ProgressBar__fill{background-color:#889912}.theme-light .ProgressBar--color--green{border-color:#188532 !important}.theme-light .ProgressBar--color--green .ProgressBar__fill{background-color:#188532}.theme-light .ProgressBar--color--teal{border-color:#008882 !important}.theme-light .ProgressBar--color--teal .ProgressBar__fill{background-color:#008882}.theme-light .ProgressBar--color--blue{border-color:#19649c !important}.theme-light .ProgressBar--color--blue .ProgressBar__fill{background-color:#19649c}.theme-light .ProgressBar--color--dark-blue{border-color:#003761 !important}.theme-light .ProgressBar--color--dark-blue .ProgressBar__fill{background-color:#003761}.theme-light .ProgressBar--color--violet{border-color:#4b2897 !important}.theme-light .ProgressBar--color--violet .ProgressBar__fill{background-color:#4b2897}.theme-light .ProgressBar--color--purple{border-color:#7a2696 !important}.theme-light .ProgressBar--color--purple .ProgressBar__fill{background-color:#7a2696}.theme-light .ProgressBar--color--pink{border-color:#b61d73 !important}.theme-light .ProgressBar--color--pink .ProgressBar__fill{background-color:#b61d73}.theme-light .ProgressBar--color--brown{border-color:#7c4d2f !important}.theme-light .ProgressBar--color--brown .ProgressBar__fill{background-color:#7c4d2f}.theme-light .ProgressBar--color--grey{border-color:#bfbfbf !important}.theme-light .ProgressBar--color--grey .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--light-grey{border-color:gray !important}.theme-light .ProgressBar--color--light-grey .ProgressBar__fill{background-color:gray}.theme-light .ProgressBar--color--good{border-color:#44801d !important}.theme-light .ProgressBar--color--good .ProgressBar__fill{background-color:#44801d}.theme-light .ProgressBar--color--average{border-color:#b56b0b !important}.theme-light .ProgressBar--color--average .ProgressBar__fill{background-color:#b56b0b}.theme-light .ProgressBar--color--bad{border-color:#a61c1c !important}.theme-light .ProgressBar--color--bad .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--label{border-color:#2c2c2c !important}.theme-light .ProgressBar--color--label .ProgressBar__fill{background-color:#2c2c2c}.theme-light .ProgressBar--color--xeno{border-color:#3e2945 !important}.theme-light .ProgressBar--color--xeno .ProgressBar__fill{background-color:#3e2945}.theme-light .Chat{color:#000}.theme-light .Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:crimson;border-radius:10px;transition:font-size 200ms ease-out}.theme-light .Chat__badge:before{content:"x"}.theme-light .Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.theme-light .Chat__scrollButton{position:fixed;right:2em;bottom:1em}.theme-light .Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.theme-light .Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#fff}.theme-light .Chat__reconnected:after{content:"";display:block;margin-top:-0.75em;border-bottom:.1666666667em solid #db2828}.theme-light .Chat__highlight{color:#000}.theme-light .Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:bold}.theme-light .ChatMessage{word-wrap:break-word}.theme-light .ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.theme-light .ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.theme-light .Layout,.theme-light .Layout *{scrollbar-base-color:#f2f2f2;scrollbar-face-color:#d6d6d6;scrollbar-3dlight-color:#eee;scrollbar-highlight-color:#eee;scrollbar-track-color:#f2f2f2;scrollbar-arrow-color:#777;scrollbar-shadow-color:#d6d6d6}.theme-light .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-light .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-light .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#eee;background-image:linear-gradient(to bottom, #eeeeee 0%, #eeeeee 100%)}.theme-light .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-light .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-light .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-light .Window__contentPadding:after{height:0}.theme-light .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-light .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(252,252,252,.25);pointer-events:none}.theme-light .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-light .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-light .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-light .TitleBar{background-color:#eee;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-light .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#eee;transition:color 250ms ease-out,background-color 250ms ease-out}.theme-light .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-light .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-light .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-light .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-light .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px !important;line-height:2.6666666667rem !important}.theme-light .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-light .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-light html,.theme-light body{padding:0;margin:0;height:100%;color:#000}.theme-light body{background:#fff;font-family:Verdana,sans-serif;font-size:13px;line-height:1.2;overflow-x:hidden;overflow-y:scroll;word-wrap:break-word}.theme-light em{font-style:normal;font-weight:bold}.theme-light img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}.theme-light img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}.theme-light a{color:blue}.theme-light a.visited{color:#f0f}.theme-light a:visited{color:#f0f}.theme-light a.popt{text-decoration:none}.theme-light .popup{position:fixed;top:50%;left:50%;background:#ddd}.theme-light .popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.theme-light .popup .close:hover{background:#999}.theme-light .popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:bold;border-bottom:2px solid green}.theme-light .popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.theme-light .popup input[type=text]:hover,.theme-light .popup input[type=text]:active,.theme-light .popup input[type=text]:focus{border-color:green}.theme-light .popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:bold}.theme-light .popup input[type=submit]:hover,.theme-light .popup input[type=submit]:focus,.theme-light .popup input[type=submit]:active{background:#aaa;cursor:pointer}.theme-light .changeFont{padding:10px}.theme-light .changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.theme-light .changeFont a:hover{background:#ccc}.theme-light .highlightPopup{padding:10px;text-align:center}.theme-light .highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.theme-light .highlightPopup input.highlightColor{background-color:#ff0}.theme-light .highlightPopup input.highlightTermSubmit{margin-top:5px}.theme-light .contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.theme-light .contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.theme-light .contextMenu a:hover{background-color:#ccc}.theme-light .filterMessages{padding:5px}.theme-light .filterMessages div{padding:2px 0}.theme-light .icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.theme-light .motd{color:#638500;font-family:Verdana,sans-serif;white-space:normal}.theme-light .motd h1,.theme-light .motd h2,.theme-light .motd h3,.theme-light .motd h4,.theme-light .motd h5,.theme-light .motd h6{color:#638500;text-decoration:underline}.theme-light .motd a,.theme-light .motd a:link,.theme-light .motd a:visited,.theme-light .motd a:active,.theme-light .motd a:hover{color:#638500}.theme-light .bold,.theme-light .name,.theme-light .prefix,.theme-light .ooc,.theme-light .looc,.theme-light .adminooc,.theme-light .admin,.theme-light .medal,.theme-light .yell{font-weight:bold}.theme-light .italic,.theme-light .italics{font-style:italic}.theme-light .highlight{background:#ff0}.theme-light h1,.theme-light h2,.theme-light h3,.theme-light h4,.theme-light h5,.theme-light h6{color:blue;font-family:Georgia,Verdana,sans-serif}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light em{font-style:normal;font-weight:bold}.theme-light .ooc{font-weight:bold}.theme-light .adminobserverooc{color:#09c;font-weight:bold}.theme-light .adminooc{color:#700038;font-weight:bold}.theme-light .adminsay{color:#ff4500;font-weight:bold}.theme-light .admin{color:#4473ff;font-weight:bold}.theme-light .name{font-weight:bold}.theme-light .deadsay{color:#5c00e6}.theme-light .binarysay{color:#20c20e;background-color:#000;display:block}.theme-light .binarysay a{color:lime}.theme-light .binarysay a:active,.theme-light .binarysay a:visited{color:#8f8}.theme-light .radio{color:green}.theme-light .sciradio{color:#939}.theme-light .comradio{color:#948f02}.theme-light .secradio{color:#a30000}.theme-light .medradio{color:#337296}.theme-light .engradio{color:#fb5613}.theme-light .sentryradio{color:#844300}.theme-light .suppradio{color:#a8732b}.theme-light .servradio{color:#6eaa2c}.theme-light .syndradio{color:#6d3f40}.theme-light .gangradio{color:#ac2ea1}.theme-light .centcomradio{color:#686868}.theme-light .aiprivradio{color:#f0f}.theme-light .redteamradio{color:red}.theme-light .blueteamradio{color:blue}.theme-light .greenteamradio{color:lime}.theme-light .yellowteamradio{color:#d1ba22}.theme-light .yell{font-weight:bold}.theme-light .alert{color:red}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light .userdanger{color:red;font-weight:bold;font-size:185%}.theme-light .bolddanger{color:red;font-weight:bold}.theme-light .danger{color:red}.theme-light .tinydanger{color:red;font-size:85%}.theme-light .smalldanger{color:red;font-size:90%}.theme-light .warning{color:red;font-style:italic}.theme-light .alertwarning{color:red;font-weight:bold}.theme-light .boldwarning{color:red;font-style:italic;font-weight:bold}.theme-light .announce{color:#228b22;font-weight:bold}.theme-light .boldannounce{color:red;font-weight:bold}.theme-light .bigannounce{font-weight:bold;font-size:115%}.theme-light .greenannounce{color:lime;font-weight:bold}.theme-light .rose{color:#ff5050}.theme-light .info{color:#00c}.theme-light .notice{color:#009}.theme-light .staff_ic{color:#009}.theme-light .tinynotice{color:#009;font-size:85%}.theme-light .tinynoticeital{color:#009;font-style:italic;font-size:85%}.theme-light .smallnotice{color:#009;font-size:90%}.theme-light .smallnoticeital{color:#009;font-style:italic;font-size:90%}.theme-light .boldnotice{color:#009;font-weight:bold}.theme-light .hear{color:#009;font-style:italic}.theme-light .adminnotice{color:blue}.theme-light .adminhelp{color:red;font-weight:bold}.theme-light .unconscious{color:blue;font-weight:bold}.theme-light .suicide{color:#ff5050;font-style:italic}.theme-light .green{color:#03ff39}.theme-light .grey{color:#838383}.theme-light .red{color:red}.theme-light .blue{color:blue}.theme-light .nicegreen{color:#14a833}.theme-light .boldnicegreen{color:#14a833;font-weight:bold}.theme-light .cult{color:#973e3b}.theme-light .cultitalic{color:#973e3b;font-style:italic}.theme-light .cultbold{color:#973e3b;font-style:italic;font-weight:bold}.theme-light .cultboldtalic{color:#973e3b;font-weight:bold;font-size:185%}.theme-light .cultlarge{color:#973e3b;font-weight:bold;font-size:185%}.theme-light .narsie{color:#973e3b;font-weight:bold;font-size:925%}.theme-light .narsiesmall{color:#973e3b;font-weight:bold;font-size:370%}.theme-light .colossus{color:#7f282a;font-size:310%}.theme-light .hierophant{color:#609;font-weight:bold;font-style:italic}.theme-light .hierophant_warning{color:#609;font-style:italic}.theme-light .purple{color:#5e2d79}.theme-light .holoparasite{color:#35333a}.theme-light .revennotice{color:#1d2953}.theme-light .revenboldnotice{color:#1d2953;font-weight:bold}.theme-light .revenbignotice{color:#1d2953;font-weight:bold;font-size:185%}.theme-light .revenminor{color:#823abb}.theme-light .revenwarning{color:#760fbb;font-style:italic}.theme-light .revendanger{color:#760fbb;font-weight:bold;font-size:185%}.theme-light .deconversion_message{color:#5000a0;font-size:185%;font-style:italic}.theme-light .ghostalert{color:#5c00e6;font-style:italic;font-weight:bold}.theme-light .alien{color:#543354}.theme-light .noticealien{color:#00c000}.theme-light .alertalien{color:#00c000;font-weight:bold}.theme-light .changeling{color:purple;font-style:italic}.theme-light .alertsyndie{color:red;font-size:185%;font-weight:bold}.theme-light .spider{color:#4d004d;font-weight:bold;font-size:185%}.theme-light .interface{color:#303}.theme-light .sans{font-family:"Comic Sans MS",cursive,sans-serif}.theme-light .papyrus{font-family:"Papyrus",cursive,sans-serif}.theme-light .robot{font-family:"Courier New",cursive,sans-serif}.theme-light .tape_recorder{color:maroon;font-family:"Courier New",cursive,sans-serif}.theme-light .command_headset{font-weight:bold;font-size:160%}.theme-light .small{font-size:60%}.theme-light .big{font-size:185%}.theme-light .reallybig{font-size:245%}.theme-light .extremelybig{font-size:310%}.theme-light .greentext{color:lime;font-size:185%}.theme-light .redtext{color:red;font-size:185%}.theme-light .clown{color:#ff69bf;font-size:160%;font-family:"Comic Sans MS",cursive,sans-serif;font-weight:bold}.theme-light .singing{font-family:"Trebuchet MS",cursive,sans-serif;font-style:italic}.theme-light .his_grace{color:#15d512;font-family:"Courier New",cursive,sans-serif;font-style:italic}.theme-light .hypnophrase{color:#0d0d0d;font-weight:bold;animation:hypnocolor 1500ms infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#0d0d0d}25%{color:#410194}50%{color:#7f17d8}75%{color:#410194}100%{color:#3bb5d3}}.theme-light .phobia{color:#d00;font-weight:bold;animation:phobia 750ms infinite}@keyframes phobia{0%{color:#0d0d0d}50%{color:#d00}100%{color:#0d0d0d}}.theme-light .icon{height:1em;width:auto}.theme-light .bigicon{font-size:2.5em}.theme-light .memo{color:#638500;text-align:center}.theme-light .memoedit{text-align:center;font-size:125%}.theme-light .abductor{color:purple;font-style:italic}.theme-light .mind_control{color:#a00d6f;font-size:100%;font-weight:bold;font-style:italic}.theme-light .slime{color:#00ced1}.theme-light .drone{color:#848482}.theme-light .monkey{color:#975032}.theme-light .swarmer{color:#2c75ff}.theme-light .resonate{color:#298f85}.theme-light .monkeyhive{color:#774704}.theme-light .monkeylead{color:#774704;font-size:80%}.theme-light .connectionClosed,.theme-light .fatalError{background:red;color:#fff;padding:5px}.theme-light .connectionClosed.restored{background:green}.theme-light .internal.boldnshit{color:blue;font-weight:bold}.theme-light .text-normal{font-weight:normal;font-style:normal}.theme-light .hidden{display:none;visibility:hidden}.theme-light .ml-1{margin-left:1em}.theme-light .ml-2{margin-left:2em}.theme-light .ml-3{margin-left:3em}.theme-light .xooc{color:#6c0094;font-weight:bold;font-size:140%}.theme-light .mooc{color:#090;font-weight:bold;font-size:140%}.theme-light .yooc{color:#999600;font-weight:bold;font-size:140%}.theme-light .headminsay{color:#5a0a7f;font-weight:bold}.theme-light .radio{color:#4e4e4e}.theme-light .deptradio{color:#939}.theme-light .comradio{color:#004080}.theme-light .centradio{color:#5c5c8a}.theme-light .cryoradio{color:#554e3f}.theme-light .hcradio{color:#318779}.theme-light .pvstradio{color:#9b0612}.theme-light .airadio{color:#f0f}.theme-light .secradio{color:#a30000}.theme-light .engradio{color:#a66300}.theme-light .sentryradio{color:#844300}.theme-light .medradio{color:#008160}.theme-light .supradio{color:#5f4519}.theme-light .jtacradio{color:#702963}.theme-light .intelradio{color:#027d02}.theme-light .wyradio{color:#fe9b24}.theme-light .pmcradio{color:#136957}.theme-light .vairadio{color:#943d0a}.theme-light .cmbradio{color:#1b748c}.theme-light .clfradio{color:#6f679c}.theme-light .alpharadio{color:#ea0000}.theme-light .bravoradio{color:#c68610}.theme-light .charlieradio{color:#a5a}.theme-light .deltaradio{color:#007fcf}.theme-light .echoradio{color:#3a7e65}.theme-light .medium{font-size:110%}.theme-light .big{font-size:115%}.theme-light .large{font-size:125%}.theme-light .extra_large{font-size:130%}.theme-light .huge{font-size:150%}.theme-light .underline{text-decoration:underline}.theme-light .orange{color:#eca100}.theme-light .normal{font-style:normal}.theme-light .attack{color:red}.theme-light .moderate{color:#c00}.theme-light .disarm{color:#900}.theme-light .passive{color:#600}.theme-light .helpful{color:#368f31}.theme-light .scanner{color:red}.theme-light .scannerb{color:red;font-weight:bold}.theme-light .scannerburn{color:orange}.theme-light .scannerburnb{color:orange;font-weight:bold}.theme-light .rose{color:#ff5050}.theme-light .debuginfo{color:#493d26;font-style:italic}.theme-light .xenonotice{color:#2a623d}.theme-light .xenoboldnotice{color:#2a623d;font-weight:bold}.theme-light .xenowarning{color:#2a623d;font-style:italic}.theme-light .xenominorwarning{color:#2a623d;font-weight:bold;font-style:italic}.theme-light .xenodanger{color:#2a623d;font-weight:bold}.theme-light .avoidharm{color:#72a0e5;font-weight:bold}.theme-light .highdanger{color:red;font-weight:bold;font-size:140%}.theme-light .xenohighdanger{color:#2a623d;font-weight:bold;font-size:140%}.theme-light .xenoannounce{color:#1a472a;font-family:book-antiqua;font-weight:bold;font-size:140%}.theme-light .yautjabold{color:purple;font-weight:bold}.theme-light .yautjaboldbig{color:purple;font-weight:bold;font-size:120%}.theme-light .objectivebig{font-weight:bold;font-size:130%}.theme-light .objectivegreen{color:lime}.theme-light .objectivered{color:red}.theme-light .objectivesuccess{color:lime;font-weight:bold;font-size:110%}.theme-light .objectivefail{color:red;font-weight:bold;font-size:110%}.theme-light .xenotalk,.theme-light .xeno{color:#900090;font-style:italic}.theme-light .xenoleader{color:#730d73;font-style:italic;font-size:125%}.theme-light .xenoqueen{color:#730d73;font-style:italic;font-weight:bold;font-size:125%}.theme-light .newscaster{color:maroon}.theme-light .role_header{color:#db0000;display:block;text-align:center;font-weight:bold;font-family:trebuchet-ms;font-size:150%}.theme-light .role_body{color:#009;display:block;text-align:center;font-size:125%}.theme-light .round_header{color:#db0000;display:block;text-align:center;font-family:courier;font-weight:bold;font-size:180%}.theme-light .round_body{color:#001427;display:block;text-align:center;font-family:trebuchet-ms;font-weight:bold;font-size:125%}.theme-light .event_announcement{color:#600d48;font-family:arial-narrow;font-weight:bold;font-size:125%}.theme-light .announce_header{color:#000;font-weight:bold;font-size:150%}.theme-light .announce_header_blue{color:#009;font-weight:bold;font-size:150%}.theme-light .announce_body{color:red;font-weight:normal;font-size:125%}.theme-light .centerbold{display:block;text-align:center;font-weight:bold}.theme-light .mod{color:#735638;font-weight:bold}.theme-light .modooc{color:#184880;font-weight:bold}.theme-light .adminmod{color:#402a14;font-weight:bold}.theme-light .mentorsay{color:#b38c32;font-weight:bold}.theme-light .mentorhelp{color:#007e00;font-weight:bold}.theme-light .mentorbody{color:#da6200;font-weight:bold}.theme-light .mentorstaff{color:#876101;font-weight:bold}.theme-light .staffsay{color:#876101;font-weight:bold}.theme-light .tajaran{color:#803b56}.theme-light .tajaran_signlang{color:#941c1c}.theme-light .skrell{color:#00ced1}.theme-light .soghun{color:#228b22}.theme-light .changeling{color:purple}.theme-light .vox{color:#a0a}.theme-light .monkey{color:#966c47}.theme-light .german{color:#858f1e;font-family:"Times New Roman",Times,serif}.theme-light .spanish{color:#cf982b}.theme-light .japanese{color:#940927}.theme-light .chinese{color:#fe1919}.theme-light .zombie{color:#216163;font-style:italic}.theme-light .commando{color:#fe9b24;font-style:bold}.theme-light .rough{font-family:trebuchet-ms,cursive,sans-serif}.theme-light .say_quote{font-family:Georgia,Verdana,sans-serif}.theme-light .admin .message{color:#314cad}.theme-light .admin .prefix{font-weight:bolder}.theme-light .pm{font-size:110%}.theme-light .retro_translator{font-weight:bold}.theme-light .yautja_translator{color:#a00;font-weight:bold;animation:glitch .5s infinite}@keyframes glitch{25%{color:#a00;transform:translate(-2px, -1px)}50%{color:#be0000;transform:translate(1px, -2px)}75%{color:#8d0000;transform:translate(-1px, 2px)}100%{color:#830000;transform:translate(1px, 1px)}}.theme-light .examine_block{background:#f2f7fa;border:1px solid #111a27;margin:.5em;padding:.5em .75em}.theme-light .examine_block .icon{width:1.5em;height:1.5em;margin:0;padding:0}.theme-light .tooltip{font-style:italic;border-bottom:1px dashed #000}
diff --git a/tools/build/build.js b/tools/build/build.js
index ecde79ff4f2e..2126cfd77d4c 100644
--- a/tools/build/build.js
+++ b/tools/build/build.js
@@ -170,6 +170,26 @@ export const YarnTarget = new Juke.Target({
executes: ({ get }) => yarn("install", get(CiParameter) && "--immutable"),
});
+export const TgFontTarget = new Juke.Target({
+ dependsOn: [YarnTarget],
+ inputs: [
+ 'tgui/.yarn/install-target',
+ 'tgui/packages/tgfont/**/*.+(js|cjs|svg)',
+ 'tgui/packages/tgfont/package.json',
+ ],
+ outputs: [
+ 'tgui/packages/tgfont/dist/tgfont.css',
+ 'tgui/packages/tgfont/dist/tgfont.eot',
+ 'tgui/packages/tgfont/dist/tgfont.woff2',
+ ],
+ executes: async () => {
+ await yarn('tgfont:build');
+ fs.copyFileSync('tgui/packages/tgfont/dist/tgfont.css', 'tgui/packages/tgfont/static/tgfont.css');
+ fs.copyFileSync('tgui/packages/tgfont/dist/tgfont.eot', 'tgui/packages/tgfont/static/tgfont.eot');
+ fs.copyFileSync('tgui/packages/tgfont/dist/tgfont.woff2', 'tgui/packages/tgfont/static/tgfont.woff2');
+ }
+});
+
export const TguiTarget = new Juke.Target({
dependsOn: [YarnTarget],
inputs: [