diff --git a/baystation12.dme b/baystation12.dme index 01808249ff5..9f6b4b23842 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -68,10 +68,11 @@ #include "code\__defines\modifiers.dm" #include "code\__defines\movement.dm" #include "code\__defines\organs.dm" -#include "code\__defines\path.dm" #include "code\__defines\preferences.dm" #include "code\__defines\proc_presets.dm" #include "code\__defines\process_scheduler.dm" +#include "code\__defines\procpath.dm" +#include "code\__defines\prometheus.dm" #include "code\__defines\radiation.dm" #include "code\__defines\radio.dm" #include "code\__defines\rcd.dm" @@ -132,6 +133,7 @@ #include "code\_global_vars\lists\mapping.dm" #include "code\_global_vars\lists\names.dm" #include "code\_global_vars\lists\objects.dm" +#include "code\_global_vars\lists\pipe_dispenser.dm" #include "code\_global_vars\lists\rcd.dm" #include "code\_global_vars\lists\russian.dm" #include "code\_global_vars\monikers\_animal_moniker.dm" @@ -145,11 +147,12 @@ #include "code\_helpers\cmp.dm" #include "code\_helpers\emissives.dm" #include "code\_helpers\files.dm" +#include "code\_helpers\flick_overlay.dm" #include "code\_helpers\functional.dm" #include "code\_helpers\game.dm" #include "code\_helpers\global_access.dm" #include "code\_helpers\global_lists.dm" -#include "code\_helpers\heap.dm" +#include "code\_helpers\holodeck.dm" #include "code\_helpers\icons.dm" #include "code\_helpers\input.dm" #include "code\_helpers\json.dm" @@ -160,6 +163,7 @@ #include "code\_helpers\matrices.dm" #include "code\_helpers\mobs.dm" #include "code\_helpers\names.dm" +#include "code\_helpers\preferences.dm" #include "code\_helpers\pronouns.dm" #include "code\_helpers\radio.dm" #include "code\_helpers\roundend.dm" @@ -178,11 +182,9 @@ #include "code\_helpers\type2type.dm" #include "code\_helpers\unsorted.dm" #include "code\_helpers\vector.dm" +#include "code\_helpers\verbs.dm" #include "code\_helpers\warnings.dm" #include "code\_helpers\weakref.dm" -#include "code\_helpers\paths\jps.dm" -#include "code\_helpers\paths\path.dm" -#include "code\_helpers\paths\sssp.dm" #include "code\_helpers\sorts\__main.dm" #include "code\_helpers\sorts\TimSort.dm" #include "code\_onclick\adjacent.dm" @@ -254,18 +256,18 @@ #include "code\controllers\subsystems\misc_late.dm" #include "code\controllers\subsystems\open_space.dm" #include "code\controllers\subsystems\overlays.dm" -#include "code\controllers\subsystems\pathfinder.dm" #include "code\controllers\subsystems\plants.dm" #include "code\controllers\subsystems\points_of_interest.dm" +#include "code\controllers\subsystems\prometheus.dm" #include "code\controllers\subsystems\radiation.dm" #include "code\controllers\subsystems\radio.dm" #include "code\controllers\subsystems\shuttle.dm" #include "code\controllers\subsystems\skybox.dm" +#include "code\controllers\subsystems\statpanels.dm" #include "code\controllers\subsystems\sun.dm" #include "code\controllers\subsystems\supply.dm" #include "code\controllers\subsystems\tgui.dm" #include "code\controllers\subsystems\ticker.dm" -#include "code\controllers\subsystems\timer.dm" #include "code\controllers\subsystems\trade.dm" #include "code\controllers\subsystems\virus.dm" #include "code\controllers\subsystems\vote.dm" @@ -282,6 +284,7 @@ #include "code\controllers\subsystems\processing\mobs.dm" #include "code\controllers\subsystems\processing\movable_physics.dm" #include "code\controllers\subsystems\processing\nano.dm" +#include "code\controllers\subsystems\processing\obj_tab_items.dm" #include "code\controllers\subsystems\processing\processing.dm" #include "code\controllers\subsystems\processing\projectiles.dm" #include "code\controllers\subsystems\processing\think.dm" @@ -296,8 +299,10 @@ #include "code\datums\datum.dm" #include "code\datums\hierarchy.dm" #include "code\datums\http.dm" +#include "code\datums\language_menu.dm" #include "code\datums\mind.dm" #include "code\datums\mutable_appearance.dm" +#include "code\datums\object_window_info.dm" #include "code\datums\position_point_vector.dm" #include "code\datums\progressbar.dm" #include "code\datums\recipe.dm" @@ -327,6 +332,7 @@ #include "code\datums\communication\~defines.dm" #include "code\datums\components\_component.dm" #include "code\datums\components\cardborg.dm" +#include "code\datums\components\connect_mob_behalf.dm" #include "code\datums\components\label.dm" #include "code\datums\components\mind_linker.dm" #include "code\datums\components\movable_physics.dm" @@ -360,6 +366,7 @@ #include "code\datums\elements\connect_loc.dm" #include "code\datums\elements\last_words.dm" #include "code\datums\elements\point_of_interest.dm" +#include "code\datums\elements\simple_rotation.dm" #include "code\datums\events\apc_damage.dm" #include "code\datums\events\biohazard_outbreak.dm" #include "code\datums\events\brand_intelligence.dm" @@ -793,6 +800,7 @@ #include "code\game\machinery\buttons.dm" #include "code\game\machinery\CableLayer.dm" #include "code\game\machinery\cell_charger.dm" +#include "code\game\machinery\coffeemaker.dm" #include "code\game\machinery\constructable_frame.dm" #include "code\game\machinery\cryo.dm" #include "code\game\machinery\cryopod.dm" @@ -842,6 +850,7 @@ #include "code\game\machinery\atmoalter\meter.dm" #include "code\game\machinery\atmoalter\portable_atmospherics.dm" #include "code\game\machinery\atmoalter\pump.dm" +#include "code\game\machinery\atmoalter\sauna.dm" #include "code\game\machinery\atmoalter\scrubber.dm" #include "code\game\machinery\camera\camera.dm" #include "code\game\machinery\camera\camera_assembly.dm" @@ -907,6 +916,7 @@ #include "code\game\machinery\kitchen\cooking_machines\grill.dm" #include "code\game\machinery\kitchen\cooking_machines\oven.dm" #include "code\game\machinery\pipe\construction.dm" +#include "code\game\machinery\pipe\dispenser_recipes.dm" #include "code\game\machinery\pipe\pipe_dispenser.dm" #include "code\game\machinery\pipe\pipelayer.dm" #include "code\game\machinery\telecomms\broadcaster.dm" @@ -1064,6 +1074,7 @@ #include "code\game\objects\items\balloons.dm" #include "code\game\objects\items\blueprints.dm" #include "code\game\objects\items\bodybag.dm" +#include "code\game\objects\items\condi_display.dm" #include "code\game\objects\items\contraband.dm" #include "code\game\objects\items\crayons.dm" #include "code\game\objects\items\cryobag.dm" @@ -1236,6 +1247,10 @@ #include "code\game\objects\items\storage\toolbox.dm" #include "code\game\objects\items\storage\uplink_kits.dm" #include "code\game\objects\items\storage\wallets.dm" +#include "code\game\objects\items\storage\secure\_secure.dm" +#include "code\game\objects\items\storage\secure\briefcase.dm" +#include "code\game\objects\items\storage\secure\guncases.dm" +#include "code\game\objects\items\storage\secure\safe.dm" #include "code\game\objects\items\storage\storage_ui\default.dm" #include "code\game\objects\items\storage\storage_ui\storage_ui.dm" #include "code\game\objects\items\tanks\jetpack.dm" @@ -1245,11 +1260,13 @@ #include "code\game\objects\items\tools\crowbar.dm" #include "code\game\objects\items\tools\screwdriver.dm" #include "code\game\objects\items\tools\surgery.dm" +#include "code\game\objects\items\tools\tools.dm" #include "code\game\objects\items\tools\welding.dm" #include "code\game\objects\items\tools\wirecutters.dm" #include "code\game\objects\items\tools\wrench.dm" #include "code\game\objects\items\weapons\AI_modules.dm" #include "code\game\objects\items\weapons\autopsy.dm" +#include "code\game\objects\items\weapons\basketball.dm" #include "code\game\objects\items\weapons\beachball.dm" #include "code\game\objects\items\weapons\candle.dm" #include "code\game\objects\items\weapons\cane.dm" @@ -1305,6 +1322,7 @@ #include "code\game\objects\structures\girders.dm" #include "code\game\objects\structures\grille.dm" #include "code\game\objects\structures\handrail.dm" +#include "code\game\objects\structures\hoop.dm" #include "code\game\objects\structures\inflatable.dm" #include "code\game\objects\structures\iv_drip.dm" #include "code\game\objects\structures\janicart.dm" @@ -1633,7 +1651,6 @@ #include "code\modules\client\preferences_persist.dm" #include "code\modules\client\preferences_spawnpoints.dm" #include "code\modules\client\preferences_storage.dm" -#include "code\modules\client\preferences_toggle.dm" #include "code\modules\client\settings.dm" #include "code\modules\client\ui_style.dm" #include "code\modules\client\preference_setup\_defines.dm" @@ -1785,6 +1802,7 @@ #include "code\modules\clothing\under\accessories\holster.dm" #include "code\modules\clothing\under\accessories\lockets.dm" #include "code\modules\clothing\under\accessories\medals.dm" +#include "code\modules\clothing\under\accessories\pins.dm" #include "code\modules\clothing\under\accessories\stethoscope.dm" #include "code\modules\clothing\under\accessories\storage.dm" #include "code\modules\clothing\under\accessories\ties.dm" @@ -1834,11 +1852,9 @@ #include "code\modules\error_handler\error_reporting.dm" #include "code\modules\error_handler\error_viewer.dm" #include "code\modules\examine\examine.dm" -#include "code\modules\examine\descriptions\armor.dm" #include "code\modules\examine\descriptions\atmospherics.dm" #include "code\modules\examine\descriptions\drink_containers.dm" #include "code\modules\examine\descriptions\engineering.dm" -#include "code\modules\examine\descriptions\items.dm" #include "code\modules\examine\descriptions\machinery.dm" #include "code\modules\examine\descriptions\medical.dm" #include "code\modules\examine\descriptions\mobs.dm" @@ -1860,9 +1876,11 @@ #include "code\modules\games\tarot.dm" #include "code\modules\genetics\side_effects.dm" #include "code\modules\ghosttrap\trap.dm" -#include "code\modules\holodeck\HolodeckControl.dm" -#include "code\modules\holodeck\HolodeckObjects.dm" -#include "code\modules\holodeck\HolodeckPrograms.dm" +#include "code\modules\holodeck\computer.dm" +#include "code\modules\holodeck\effects.dm" +#include "code\modules\holodeck\objects.dm" +#include "code\modules\holodeck\templates.dm" +#include "code\modules\holodeck\turfs.dm" #include "code\modules\holomaps\_holomap_defines.dm" #include "code\modules\holomaps\holochip.dm" #include "code\modules\holomaps\holomap.dm" @@ -2171,7 +2189,6 @@ #include "code\modules\mob\living\deity\deity_phenomena.dm" #include "code\modules\mob\living\deity\deity_pylon.dm" #include "code\modules\mob\living\deity\deity_sources.dm" -#include "code\modules\mob\living\deity\deity_Stat.dm" #include "code\modules\mob\living\deity\deity_topic.dm" #include "code\modules\mob\living\deity\deity_tracking.dm" #include "code\modules\mob\living\deity\forms.dm" @@ -2249,7 +2266,6 @@ #include "code\modules\mob\living\simple_animal\mob_ai.dm" #include "code\modules\mob\living\simple_animal\shade.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" -#include "code\modules\mob\living\simple_animal\worm.dm" #include "code\modules\mob\living\simple_animal\borer\borer.dm" #include "code\modules\mob\living\simple_animal\borer\borer_captive.dm" #include "code\modules\mob\living\simple_animal\borer\borer_powers.dm" @@ -2520,6 +2536,8 @@ #include "code\modules\paperwork\photography.dm" #include "code\modules\paperwork\silicon_photography.dm" #include "code\modules\paperwork\stamps.dm" +#include "code\modules\particles\particle_emitter.dm" +#include "code\modules\particles\particles.dm" #include "code\modules\power\apc.dm" #include "code\modules\power\batteryrack.dm" #include "code\modules\power\breaker_box.dm" @@ -2612,6 +2630,7 @@ #include "code\modules\projectiles\guns\projectile\revolver.dm" #include "code\modules\projectiles\guns\projectile\shotgun.dm" #include "code\modules\projectiles\guns\projectile\sniper.dm" +#include "code\modules\projectiles\guns\special\meathook.dm" #include "code\modules\projectiles\projectile\animate.dm" #include "code\modules\projectiles\projectile\beams.dm" #include "code\modules\projectiles\projectile\bullets.dm" @@ -2673,6 +2692,7 @@ #include "code\modules\reagents\reagent_dispenser.dm" #include "code\modules\reagents\Chemistry-Reagents\basic.dm" #include "code\modules\reagents\Chemistry-Reagents\blood.dm" +#include "code\modules\reagents\Chemistry-Reagents\caffeine.dm" #include "code\modules\reagents\Chemistry-Reagents\ethanol.dm" #include "code\modules\reagents\Chemistry-Reagents\food_drinks.dm" #include "code\modules\reagents\Chemistry-Reagents\medicine.dm" @@ -2812,6 +2832,7 @@ #include "code\modules\spells\aoe_turf\conjure\grove.dm" #include "code\modules\spells\aoe_turf\conjure\tombstone.dm" #include "code\modules\spells\artifacts\ghost_gramophone.dm" +#include "code\modules\spells\artifacts\immovable_wand.dm" #include "code\modules\spells\artifacts\monster_manual.dm" #include "code\modules\spells\artifacts\plague_bell.dm" #include "code\modules\spells\artifacts\storage.dm" @@ -2821,6 +2842,7 @@ #include "code\modules\spells\classes\battlemage.dm" #include "code\modules\spells\classes\cleric.dm" #include "code\modules\spells\classes\druid.dm" +#include "code\modules\spells\classes\musclemancer.dm" #include "code\modules\spells\classes\necromancer.dm" #include "code\modules\spells\classes\spatial.dm" #include "code\modules\spells\classes\standard.dm" @@ -2832,13 +2854,17 @@ #include "code\modules\spells\general\blood_shards.dm" #include "code\modules\spells\general\contract_spells.dm" #include "code\modules\spells\general\create_air.dm" +#include "code\modules\spells\general\gastrocnemius_magic.dm" #include "code\modules\spells\general\god_construct.dm" #include "code\modules\spells\general\god_vision.dm" +#include "code\modules\spells\general\healthy_sleep.dm" #include "code\modules\spells\general\mark_recall.dm" #include "code\modules\spells\general\radiant_aura.dm" #include "code\modules\spells\general\return_master.dm" #include "code\modules\spells\general\tear_veil.dm" +#include "code\modules\spells\hand\biceps_magic.dm" #include "code\modules\spells\hand\burning_grip.dm" +#include "code\modules\spells\hand\deltoid_magic.dm" #include "code\modules\spells\hand\entangle.dm" #include "code\modules\spells\hand\hand.dm" #include "code\modules\spells\hand\hand_item.dm" @@ -2861,6 +2887,7 @@ #include "code\modules\spells\targeted\swap.dm" #include "code\modules\spells\targeted\targeted.dm" #include "code\modules\spells\targeted\torment.dm" +#include "code\modules\spells\targeted\equip\cream_puff.dm" #include "code\modules\spells\targeted\equip\dyrnwyn.dm" #include "code\modules\spells\targeted\equip\equip.dm" #include "code\modules\spells\targeted\equip\holy_relic.dm" @@ -2875,6 +2902,7 @@ #include "code\modules\spells\targeted\projectile\passage.dm" #include "code\modules\spells\targeted\projectile\projectile.dm" #include "code\modules\spells\targeted\projectile\stuncuff.dm" +#include "code\modules\spells\toggled\hamstring_magic.dm" #include "code\modules\spells\toggled\immaterial_form.dm" #include "code\modules\spells\toggled\lich_form.dm" #include "code\modules\spells\toggled\toggled.dm" @@ -2929,6 +2957,7 @@ #include "code\modules\tgui\states\hands.dm" #include "code\modules\tgui\states\human_adjacent.dm" #include "code\modules\tgui\states\inventory.dm" +#include "code\modules\tgui\states\language_menu.dm" #include "code\modules\tgui\states\machinery.dm" #include "code\modules\tgui\states\machinery_noacess.dm" #include "code\modules\tgui\states\never.dm" @@ -2941,6 +2970,7 @@ #include "code\modules\tgui\states\zlevel.dm" #include "code\modules\tgui_input\alert.dm" #include "code\modules\tgui_input\checkboxes.dm" +#include "code\modules\tgui_input\color.dm" #include "code\modules\tgui_input\list.dm" #include "code\modules\tgui_input\number.dm" #include "code\modules\tgui_input\text.dm" @@ -3085,9 +3115,11 @@ #include "maps\derelicts\snow_asteroid\snow_asteroid.dm" #include "maps\eclipse\eclipse_areas.dm" #include "maps\eclipse\eclipse_define.dm" -#include "maps\eclipse\eclipse_holodecks.dm" #include "maps\eclipse\eclipse_levels.dm" #include "maps\eclipse\eclipse_shuttles.dm" +#include "maps\entrepot\entrepot_areas.dm" +#include "maps\entrepot\entrepot_define.dm" +#include "maps\entrepot\entrepot_levels.dm" #include "maps\example\example_areas.dm" #include "maps\example\example_define.dm" #include "maps\example\example_levels.dm" @@ -3098,7 +3130,6 @@ #include "maps\frontier\ent_biodome.dm" #include "maps\frontier\frontier_areas.dm" #include "maps\frontier\frontier_define.dm" -#include "maps\frontier\frontier_holodecks.dm" #include "maps\frontier\frontier_levels.dm" #include "maps\genesis\genesis_define.dm" #include "maps\genesis\genesis_levels.dm" diff --git a/code/__defines/MC.dm b/code/__defines/MC.dm index 136ef99fed9..1cd27a31a4b 100644 --- a/code/__defines/MC.dm +++ b/code/__defines/MC.dm @@ -73,55 +73,6 @@ if(Datum.is_processing) {\ // This flag overrides SS_KEEP_TIMING #define SS_POST_FIRE_TIMING 64 -//! ## Timing subsystem -/** - * Don't run if there is an identical unique timer active - * - * if the arguments to addtimer are the same as an existing timer, it doesn't create a new timer, - * and returns the id of the existing timer - */ -#define TIMER_UNIQUE (1<<0) - -/// For unique timers: Replace the old timer rather then not start this one -#define TIMER_OVERRIDE (1<<1) - -/** - * Timing should be based on how timing progresses on clients, not the server. - * - * Tracking this is more expensive, - * should only be used in conjuction with things that have to progress client side, such as - * animate() or sound() - */ -#define TIMER_CLIENT_TIME (1<<2) - -/// Timer can be stopped using deltimer() -#define TIMER_STOPPABLE (1<<3) - -/// prevents distinguishing identical timers with the wait variable -/// -/// To be used with TIMER_UNIQUE -#define TIMER_NO_HASH_WAIT (1<<4) - -/// Loops the timer repeatedly until qdeleted -/// -/// In most cases you want a subsystem instead, so don't use this unless you have a good reason -#define TIMER_LOOP (1<<5) - -/// Delete the timer on parent datum Destroy() and when deltimer'd -#define TIMER_DELETE_ME (1<<6) - -/// Empty ID define -#define TIMER_ID_NULL -1 - -/** - Create a new timer and add it to the queue. - * Arguments: - * * callback the callback to call on timer finish - * * wait deciseconds to run the timer for - * * flags flags for this timer, see: code\__DEFINES\subsystems.dm -*/ -#define addtimer(args...) _addtimer(args, file = __FILE__, line = __LINE__) - //SUBSYSTEM STATES #define SS_IDLE 0 //aint doing shit. #define SS_QUEUED 1 //queued to run diff --git a/code/__defines/__initialization.dm b/code/__defines/__initialization.dm index a444a592ca2..40fc66f5aa3 100644 --- a/code/__defines/__initialization.dm +++ b/code/__defines/__initialization.dm @@ -8,7 +8,7 @@ #define INITIALIZE_HINT_QDEL 2 //Call qdel on the atom #define INITIALIZE_HINT_QDEL_FORCE 3// Call qdel with a force of TRUE after initialization -#define ATOM_FLAG_INITIALIZED 0x0001 // The atom has been initialized. Also see flags.dm +#define ATOM_FLAG_INITIALIZED (1<<0) // The atom has been initialized. Also see flags.dm //type and all subtypes should always call Initialize in New() #define INITIALIZE_IMMEDIATE(X) ##X/New(loc, ...){\ diff --git a/code/__defines/__qdel.dm b/code/__defines/__qdel.dm index dead7ae675b..1f434c4eae5 100644 --- a/code/__defines/__qdel.dm +++ b/code/__defines/__qdel.dm @@ -31,6 +31,6 @@ #define QDEL_NULL(x) if(x) { qdel(x) ; x = null } #define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); } #define QDEL_NULL_LIST(x) if(x) { for(var/y in x) { qdel(y) } ; x = null } -#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, /proc/qdel, time > GC_FILTER_QUEUE ? weakref(item) : item), time, TIMER_STOPPABLE) +#define QDEL_IN(item, ttl) spawn(ttl) {qdel(item)} #define QDEL_LIST_ASSOC(L) if(L) { for(var/I in L) { qdel(L[I]); qdel(I); } L.Cut(); } #define QDEL_LIST_ASSOC_VAL(L) if(L) { for(var/I in L) qdel(L[I]); L.Cut(); } diff --git a/code/__defines/__renderer.dm b/code/__defines/__renderer.dm index 98d1412040c..1e2b5f37822 100644 --- a/code/__defines/__renderer.dm +++ b/code/__defines/__renderer.dm @@ -21,10 +21,12 @@ #define CLICKCATCHER_PLANE -100 -#define OPENSPACE_PLANE -8 -#define OVER_OPENSPACE_PLANE -7 +#define OPENSPACE_PLANE -9 +#define OVER_OPENSPACE_PLANE -8 -#define WARP_EFFECT_PLANE -6 +#define WARP_EFFECT_PLANE -7 + +#define TEMPERATURE_EFFECT_PLANE -6 #define BLACKNESS_PLANE -5 //Blackness plane as per DM documentation. @@ -181,23 +183,28 @@ //-------------------- Rendering --------------------- -#define LETTERBOX_RENDERER "LETTERBOX" -#define SPACE_RENDERER "SPACE" -#define SKYBOX_RENDERER "SKYBOX" -#define TURF_RENDERER "TURF" -#define GAME_RENDERER "GAME" -#define OBSERVERS_RENDERER "OBSERVERS" -#define LIGHTING_RENDERER "LIGHTING" -#define ABOVE_LIGHTING_RENDERER "ABOVE_LIGHTING" -#define SCREEN_EFFECTS_RENDERER "SCREEN_EFFECTS" -#define INTERFACE_RENDERER "INTERFACE" -#define OPEN_SPACE_RENDERER "OPEN_SPACE" -#define WARP_EFFECT_RENDERER "WARP_EFFECT" -#define OBFUSCATION_RENDERER "OBFUSCATION" - -#define SCENE_GROUP_RENDERER "SCENE_GROUP" -#define SCREEN_GROUP_RENDERER "SCREEN_GROUP" -#define FINAL_GROUP_RENDERER "FINAL_GROUP" +#define LETTERBOX_RENDERER "LETTERBOX" +#define SPACE_RENDERER "SPACE" +#define SKYBOX_RENDERER "SKYBOX" +#define TURF_RENDERER "TURF" +#define GAME_RENDERER "GAME" +#define OBSERVERS_RENDERER "OBSERVERS" +#define LIGHTING_RENDERER "LIGHTING" +#define ABOVE_LIGHTING_RENDERER "ABOVE_LIGHTING" +#define SCREEN_EFFECTS_RENDERER "SCREEN_EFFECTS" +#define INTERFACE_RENDERER "INTERFACE" +#define OPEN_SPACE_RENDERER "OPEN_SPACE" +#define WARP_EFFECT_RENDERER "WARP_EFFECT" +#define TEMPERATURE_EFFECT_RENDERER "TEMPERATURE" +#define HEAT_EFFECT_TARGET "*heat" +#define TEMPERATURE_COMPOSITE_TARGET "*tempc" +#define STEAM_EFFECT_TARGET "*steam" +#define STEAM_COMPOSITE_TARGET "*steamc" +#define OBFUSCATION_RENDERER "OBFUSCATION" + +#define SCENE_GROUP_RENDERER "SCENE_GROUP" +#define SCREEN_GROUP_RENDERER "SCREEN_GROUP" +#define FINAL_GROUP_RENDERER "FINAL_GROUP" /// Semantics - The final compositor or a filter effect renderer #define RENDER_GROUP_NONE null diff --git a/code/__defines/_render.dm b/code/__defines/_render.dm index acda56ceb28..361c8e04f8d 100644 --- a/code/__defines/_render.dm +++ b/code/__defines/_render.dm @@ -279,6 +279,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/renderer) /atom/movable/renderer/scene_group/Initialize() . = ..() add_filter(WARP_EFFECT_RENDERER,0,list(type = "displace", render_source = "*warp", size = 5)) + add_filter(TEMPERATURE_EFFECT_RENDERER, 0, list(type = "displace", render_source = TEMPERATURE_COMPOSITE_TARGET, size = 2.5)) /// Example of a warp filter for /renderer use /obj/effect/effect/warp @@ -289,6 +290,66 @@ INITIALIZE_IMMEDIATE(/atom/movable/renderer) pixel_x = -176 pixel_y = -176 +/// Renders temperature effects from cold/hot air +/atom/movable/renderer/heat + name = TEMPERATURE_EFFECT_RENDERER + group = RENDER_GROUP_NONE + plane = TEMPERATURE_EFFECT_PLANE + render_target_name = TEMPERATURE_COMPOSITE_TARGET + mouse_opacity = MOUSE_OPACITY_UNCLICKABLE + + var/obj/gas_heat_object = null + var/obj/steam_object = null + +/atom/movable/renderer/heat/Initialize(mapload, mob/owner) + . = ..() + Setup() + +/atom/movable/renderer/heat/GraphicsUpdate() + . = ..() + Setup() + +/atom/movable/renderer/heat/proc/Setup() + if(gas_heat_object) + vis_contents -= gas_heat_object + QDEL_NULL(gas_heat_object) + + if(steam_object) + vis_contents -= steam_object + QDEL_NULL(steam_object) + + if(!owner?.client) + return + + var/quality = owner.get_preference_value(/datum/client_preference/graphics_quality) + + switch(quality) + if(GLOB.PREF_LOW) + gas_heat_object = new /atom/movable/heat_effect(null) + steam_object = new /atom/movable/steam_effect(null) + if(GLOB.PREF_MED) + gas_heat_object = new /atom/movable/particle_emitter/heat(null) + steam_object = new /atom/movable/particle_emitter/steam(null) + else + gas_heat_object = new /atom/movable/particle_emitter/heat/high(null) + steam_object = new /atom/movable/particle_emitter/steam(null) + + vis_contents += gas_heat_object + vis_contents += steam_object + +/atom/movable/heat_effect + icon = 'icons/effects/fire.dmi' + icon_state = "3" + appearance_flags = PIXEL_SCALE | NO_CLIENT_COLOR + render_target = HEAT_EFFECT_TARGET + mouse_opacity = MOUSE_OPACITY_UNCLICKABLE + +/atom/movable/steam_effect + icon = 'icons/effects/effects.dmi' + icon_state = "smoke" + appearance_flags = PIXEL_SCALE | NO_CLIENT_COLOR + render_target = STEAM_EFFECT_TARGET + mouse_opacity = MOUSE_OPACITY_UNCLICKABLE /* * * This system works by exploiting BYONDs color matrix filter to use layers to handle emissive blockers. diff --git a/code/__defines/ces/signals_atom.dm b/code/__defines/ces/signals_atom.dm index 04c83054120..1c79113aa3c 100644 --- a/code/__defines/ces/signals_atom.dm +++ b/code/__defines/ces/signals_atom.dm @@ -30,3 +30,15 @@ /// Called on `/atom/movable/set_glide_size` (new_glide_size) #define SIGNAL_UPDATE_GLIDE_SIZE "movable_glide_size" + +/// Called on `/atom/proc/examine` (mob/user, list/examine_result) +#define SIGNAL_EXAMINED "examined" + +/// Called on `/atom/proc/examine` (mob/user, list/examine_result) +#define SIGNAL_EXAMINED_MORE "examined_more" + +/// Called on `/atom/AltClick` (/atom) +#define SIGNAL_ALT_CLICKED "atom_alt_click" + +/// Called on `/atom/CtrlAltClick` (/atom) +#define SIGNAL_CTRL_ALT_CLICKED "atom_ctrl_alt_click" diff --git a/code/__defines/ces/signals_mob.dm b/code/__defines/ces/signals_mob.dm index 80bc11dfd61..069c4a97dbf 100644 --- a/code/__defines/ces/signals_mob.dm +++ b/code/__defines/ces/signals_mob.dm @@ -22,8 +22,11 @@ /// from turf CtrlClickOn(): (/mob) #define SIGNAL_MOB_CTRL_CLICK "mob_ctrl_click" -/// Called on '/mob/proc/add_spell' (/mob, ) -#define SIGNAL_MOB_SPELL_LEARNED "mob_spell_learned" - /// Called on '/mob/proc/update_movespeed()' (/mob) #define SIGNAL_MOB_MOVESPEED_UPDATED "mob_movespeed_updated" + +/// Called on `/atom/proc/examine` (mob/user, list/examine_result) +#define SIGNAL_MOB_EXAMINED "mob_examined" + +/// Called on `/atom/proc/examine` (mob/user, list/examine_result) +#define SIGNAL_MOB_EXAMINED_MORE "mob_examined_more" diff --git a/code/__defines/dna.dm b/code/__defines/dna.dm index 6b5f1c33bd0..dc387f89fae 100644 --- a/code/__defines/dna.dm +++ b/code/__defines/dna.dm @@ -9,6 +9,7 @@ #define MUTATION_LASER 8 // Harm intent - click anywhere to shoot lasers from eyes. #define MUTATION_SKELETON 9 #define MUTATION_BARTENDER 10 // You can professionally do miracles with bottles and other vessels +#define MUTATION_STRONG 11 // Basically hulk, but without greens. // Other Mutations: #define mRemotetalk 100 // Remote talking. diff --git a/code/__defines/flags.dm b/code/__defines/flags.dm index b6e28e14c5c..8afe52b0dfc 100644 --- a/code/__defines/flags.dm +++ b/code/__defines/flags.dm @@ -12,20 +12,39 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 // Flags bitmasks. // NOTE: We declare ATOM_FLAG_INITIALIZED earlier, in __initialization.dm, as FLAG(0) -#define ATOM_FLAG_CHECKS_BORDER 0x0002 // If a dense atom (potentially) only blocks movements from a given direction, i.e. window panes -#define ATOM_FLAG_CLIMBABLE 0x0004 // This object can be climbed on -#define ATOM_FLAG_NO_BLOOD 0x0008 // Used for items if they don't want to get a blood overlay. -#define ATOM_FLAG_NO_REACT 0x0010 // Reagents don't react inside this container. -#define ATOM_FLAG_OPEN_CONTAINER 0x0020 // Is an open container for chemistry purposes. -#define ATOM_FLAG_FULLTILE_OBJECT 0x0040 // Blocks interactions with most atoms on the same tile, except mobs, items and anything that has the flag below, i.e. fulltile windows -#define ATOM_FLAG_ADJACENT_EXCEPTION 0x0080 // Skips adjacent checks for atoms that should always be reachable in window tiles -#define ATOM_FLAG_IGNORE_RADIATION 0x0100 // It will not produce any radiation when it will be a radiation source. -#define ATOM_AWAITING_OVERLAY_UPDATE 0x0400 // SSoverlays must update this atom's overlays. -#define ATOM_FLAG_SILENTCONTAINER 0x0800 // Chemical reaction won't trigger bubbling sound -#define ATOM_FLAG_UNPUSHABLE 0x1000 // This atom can't be pushed when bumped +/// If a dense atom (potentially) only blocks movements from a given direction, i.e. window panes +#define ATOM_FLAG_CHECKS_BORDER (1<<1) +/// This object can be climbed on. +#define ATOM_FLAG_CLIMBABLE (1<<2) +/// Used for items if they don't want to get a blood overlay. +#define ATOM_FLAG_NO_BLOOD (1<<3) +/// Reagents don't react inside this container. +#define ATOM_FLAG_NO_REACT (1<<4) +/// Is an open container for chemistry purposes. +#define ATOM_FLAG_OPEN_CONTAINER (1<<5) +/// Blocks interactions with most atoms on the same tile, except mobs, items and anything that has the flag below, i.e. fulltile windows. +#define ATOM_FLAG_FULLTILE_OBJECT (1<<6) +/// Skips adjacent checks for atoms that should always be reachable in window tiles. +#define ATOM_FLAG_ADJACENT_EXCEPTION (1<<7) +/// It will not produce any radiation when it will be a radiation source. +#define ATOM_FLAG_IGNORE_RADIATION (1<<8) +/// SSoverlays must update this atom's overlays. +#define ATOM_AWAITING_OVERLAY_UPDATE (1<<9) +/// Chemical reaction won't trigger bubbling sound. +#define ATOM_FLAG_SILENTCONTAINER (1<<10) +/// This atom can't be pushed when bumped. +#define ATOM_FLAG_UNPUSHABLE (1<<11) +/// This atom was spawned inside a holodeck as a hologram, handle accrodingly. +#define ATOM_FLAG_HOLOGRAM (1<<12) +/// This atom can'be deconstructed by a normal means. +#define ATOM_FLAG_NO_DECONSTRUCTION (1<<13) -#define OBJ_FLAG_ANCHORABLE 0x0001 // This object can be stuck in place with a tool -#define OBJ_FLAG_CONDUCTIBLE 0x0002 // Conducts electricity. (metal etc.) +/// This object can be stuck in place with a tool +#define OBJ_FLAG_ANCHORABLE (1<<0) +/// Conducts electricity. (metal etc.) +#define OBJ_FLAG_CONDUCTIBLE (1<<1) +/// Can't rotate while anchored +#define OBJ_FLAG_ANCHOR_BLOCKS_ROTATION (1<<2) #define MOB_FLAG_HOLY_BAD 0x001 // If this mob is allergic to holiness diff --git a/code/__defines/languages.dm b/code/__defines/languages.dm index 5fd7cefed8c..0ea0f2de27e 100644 --- a/code/__defines/languages.dm +++ b/code/__defines/languages.dm @@ -20,13 +20,23 @@ #define LANGUAGE_SPIDER "Spider" // Language flags. -#define WHITELISTED 1 // Language is available if the speaker is whitelisted. -#define RESTRICTED 2 // Language can only be acquired by spawning or an admin. -#define NONVERBAL 4 // Language has a significant non-verbal component. Speech is garbled without line-of-sight. -#define SIGNLANG 8 // Language is completely non-verbal. Speech is displayed through emotes for those who can understand. -#define HIVEMIND 16 // Broadcast to all mobs with this language. -#define NONGLOBAL 32 // Do not add to general languages list. -#define INNATE 64 // All mobs can be assumed to speak and understand this language. (audible emotes) -#define NO_TALK_MSG 128 // Do not show the "\The [speaker] talks into \the [radio]" message -#define NO_STUTTER 256 // No stuttering, slurring, or other speech problems -#define ALT_TRANSMIT 512 // Language is not based on vision or sound (Todo: add this into the say code and use it for the rootspeak languages) +/// Language is available if the speaker is whitelisted +#define WHITELISTED (1<<0) +/// Language can only be acquired by spawning or an admin. +#define RESTRICTED (1<<1) +/// Language has a significant non-verbal component. Speech is garbled without line-of-sight. +#define NONVERBAL (1<<2) +/// Language is completely non-verbal. Speech is displayed through emotes for those who can understand. +#define SIGNLANG (1<<3) +/// Broadcast to all mobs with this language. +#define HIVEMIND (1<<4) +/// Do not add to general languages list. +#define NONGLOBAL (1<<5) +/// All mobs can be assumed to speak and understand this language. (audible emotes) +#define INNATE (1<<6) +/// Do not show the "\The [speaker] talks into \the [radio]" message +#define NO_TALK_MSG (1<<7) +/// No stuttering, slurring, or other speech problems +#define NO_STUTTER (1<<8) +/// Language is not based on vision or sound (Todo: add this into the say code and use it for the rootspeak languages) +#define ALT_TRANSMIT (1<<9) diff --git a/code/__defines/materials.dm b/code/__defines/materials.dm index 490efa84ad9..bea248ec9ad 100644 --- a/code/__defines/materials.dm +++ b/code/__defines/materials.dm @@ -31,6 +31,7 @@ #define MATERIAL_OSMIUM_CARBIDE_PLASTEEL "osmium-carbide plasteel" #define MATERIAL_OSMIUM "osmium" #define MATERIAL_HYDROGEN "hydrogen" +#define MATERIAL_ADAMANTINE "adamantine" #define MATERIAL_WASTE "waste" #define MATERIAL_ELEVATORIUM "elevatorium" #define MATERIAL_ALIUMIUM "aliumium" @@ -84,6 +85,7 @@ MATERIAL_LEATHER = icon(MATERIALS_ICON, "leather"), MATERIAL_IRON = icon(MATERIALS_ICON, "iron"), MATERIAL_PLATINUM = icon(MATERIALS_ICON, "adamantine"), + MATERIAL_ADAMANTINE = icon(MATERIALS_ICON, "adamantine"), MATERIAL_BRONZE = icon(MATERIALS_ICON, "bronze"), MATERIAL_REINFORCED_GLASS = icon(MATERIALS_ICON, "rglass"), MATERIAL_PLASS = icon(MATERIALS_ICON, "plass"), diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index b8ca838fb06..1848b150bfe 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -252,9 +252,6 @@ #define CLIENT_FROM_VAR(I) (ismob(I) ? I:client : (istype(I, /client) ? I : (istype(I, /datum/mind) ? I:current?:client : null))) #define GRAYSCALE list(0.3,0.3,0.3,0,0.59,0.59,0.59,0,0.11,0.11,0.11,0,0,0,0,1,0,0,0,0) -#define ADD_VERB_IN(the_atom,time,verb) addtimer(CALLBACK(the_atom, nameof(/atom.proc/add_verb), verb), time, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT) -#define ADD_VERB_IN_IF(the_atom,time,verb,callback) addtimer(CALLBACK(the_atom, nameof(/atom.proc/add_verb), verb, callback), time, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT) - //Wiki book styles #define WIKI_FULL 1 // This is a standart web page. Beware, navigaton throw the internet is allowed! #define WIKI_MINI 2 // This is a beautiful copy of wiki topic. Beware, font is really small! diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index ebb5a08343f..10fb346aed0 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -19,6 +19,7 @@ // Grab Types #define GRAB_NORMAL "normal" +#define GRAB_QUICKCHOKE "choke" // Grab levels. #define NORM_PASSIVE "normal passive" diff --git a/code/__defines/procpath.dm b/code/__defines/procpath.dm new file mode 100644 index 00000000000..16716d6c091 --- /dev/null +++ b/code/__defines/procpath.dm @@ -0,0 +1,26 @@ +/// Represents a proc or verb path. +/// +/// Despite having no DM-defined static type, proc paths have some variables, +/// listed below. These are not modifiable, but for a given procpath P, +/// `new P(null, "Name", "Desc")` can be used to create a new procpath with the +/// same code but new `name` and `desc` values. The other variables cannot be +/// changed in this way. +/// +/// This type exists only to act as an annotation, providing reasonable static +/// typing for procpaths. Previously, types like `/atom/verb` were used, with +/// the `name` and `desc` vars of `/atom` thus being accessible. Proc and verb +/// paths will fail `istype` and `ispath` checks against `/procpath`. +/procpath + // Although these variables are effectively const, if they are marked const + // below, their accesses are optimized away. + + /// A text string of the verb's name. + var/name = null as text|null + /// The verb's help text or description. + var/desc = null as text|null + /// The category or tab the verb will appear in. + var/category = null as text|null + /// Only clients/mobs with `see_invisibility` higher can use the verb. + var/invisibility = null as num|null + /// Whether or not the verb appears in statpanel and commandbar when you press space + var/hidden = null as num|null diff --git a/code/__defines/prometheus.dm b/code/__defines/prometheus.dm new file mode 100644 index 00000000000..9af03cad30d --- /dev/null +++ b/code/__defines/prometheus.dm @@ -0,0 +1,16 @@ +#define PROM_MASTER_ITERATIONS "master_iterations" +#define PROM_MASTER_TICK_DRIFT "master_tick_drift_ratio" +#define PROM_SUBSYSTEM_COST "subsystem_cost_seconds" +#define PROM_SUBSYSTEM_TICKS_TO_RUN "subsystem_ticks_to_run" +#define PROM_SUBSYSTEM_TICK_USAGE "subsystem_tick_usage_ratio" +#define PROM_SUBSYSTEM_TICK_OVERRUN "subsystem_tick_overrun_ratio" +#define PROM_RUNTIMES "runtimes" +#define PROM_TOTAL_PLAYERS "players_total" +#define PROM_GC_QUEUED "gc_queued_total" +#define PROM_GC_HARD_DELS "gc_hard_dels" +#define PROM_GC_COLLECTED "gc_collected" +#define PROM_GC_ITEM_QDELS "gc_item_qdels" +#define PROM_GC_ITEM_FAILURES "gc_item_failures" +#define PROM_GC_ITEM_HARD_DELETES "gc_item_hard_deletes" +#define PROM_MOBS_TOTAL "mobs_total" +#define PROM_MOBS_INSTANCE_TOTAL "mobs_instance_total" diff --git a/code/__defines/research.dm b/code/__defines/research.dm index a218e2d1036..8570e144a26 100644 --- a/code/__defines/research.dm +++ b/code/__defines/research.dm @@ -10,7 +10,6 @@ #define TECH_MAGNET "magnets" #define TECH_DATA "programming" #define TECH_ILLEGAL "syndicate" -#define TECH_ARCANE "arcane" #define IMPRINTER 0x1 //For circuits. Uses glass/chemicals. #define PROTOLATHE 0x2 //New stuff. Uses glass/metal/chemicals diff --git a/code/__defines/rust_g.dm b/code/__defines/rust_g.dm index 93ca0a21e32..bf51314ef39 100644 --- a/code/__defines/rust_g.dm +++ b/code/__defines/rust_g.dm @@ -230,6 +230,46 @@ */ #define rustg_generate_path_astar(start_node_id, goal_node_id) RUSTG_CALL(RUST_G, "generate_path_astar")("[start_node_id]", "[goal_node_id]") +#define rustg_prom_init(port) RUSTG_CALL(RUST_G, "prom_init")(istext(port) ? port : num2text(port)) + +#define rustg_prom_set_labels(labels) RUSTG_CALL(RUST_G, "prom_set_labels")(json_encode(labels)) + +// Counters + +#define rustg_prom_counter_register(id, desc) RUSTG_CALL(RUST_G, "prom_counter_register")(id, desc) + +#define rustg_prom_counter_inc(id, labels) RUSTG_CALL(RUST_G, "prom_counter_inc")(id, json_encode(labels)) + +#define rustg_prom_counter_inc_by(id, value, labels) RUSTG_CALL(RUST_G, "prom_counter_inc_by")(id, istext(value) ? value : num2text(value), json_encode(labels)) + +// Integer gauges + +#define rustg_prom_gauge_int_register(id, desc) RUSTG_CALL(RUST_G, "prom_gauge_int_register")(id, desc) + +#define rustg_prom_gauge_int_inc(id, labels) RUSTG_CALL(RUST_G, "prom_gauge_int_inc")(id, json_encode(labels)) + +#define rustg_prom_gauge_int_inc_by(id, value, labels) RUSTG_CALL(RUST_G, "prom_gauge_int_inc_by")(id, istext(value) ? value : num2text(value), json_encode(labels)) + +#define rustg_prom_gauge_int_dec(id, labels) RUSTG_CALL(RUST_G, "prom_gauge_int_dec")(id, json_encode(labels)) + +#define rustg_prom_gauge_int_dec_by(id, value, labels) RUSTG_CALL(RUST_G, "prom_gauge_int_dec_by")(id, istext(value) ? value : num2text(value), json_encode(labels)) + +#define rustg_prom_gauge_int_set(id, value, labels) RUSTG_CALL(RUST_G, "prom_gauge_int_set")(id, istext(value) ? value : num2text(value), json_encode(labels)) + +// Float gauges + +#define rustg_prom_gauge_float_register(id, desc) RUSTG_CALL(RUST_G, "prom_gauge_float_register")(id, desc) + +#define rustg_prom_gauge_float_inc(id, labels) RUSTG_CALL(RUST_G, "prom_gauge_float_inc")(id, json_encode(labels)) + +#define rustg_prom_gauge_float_inc_by(id, value, labels) RUSTG_CALL(RUST_G, "prom_gauge_float_inc_by")(id, istext(value) ? value : num2text(value), json_encode(labels)) + +#define rustg_prom_gauge_float_dec(id, labels) RUSTG_CALL(RUST_G, "prom_gauge_float_dec")(id), json_encode(labels) + +#define rustg_prom_gauge_float_dec_by(id, value, labels) RUSTG_CALL(RUST_G, "prom_gauge_float_dec_by")(id, istext(value) ? value : num2text(value), json_encode(labels)) + +#define rustg_prom_gauge_float_set(id, value, labels) RUSTG_CALL(RUST_G, "prom_gauge_float_set")(id, istext(value) ? value : num2text(value), json_encode(labels)) + // Simple /// Returns a random integer in range from `i32::MIN` to `i32::MAX` @@ -255,7 +295,7 @@ /// Returns a bool with a probability of numerator/denominator of being true. I.e. gen_ratio(2, 3) has chance of 2 in 3, or about 67%, of returning true. /// If numerator == denominator, then the returned value is guaranteed to be true. If numerator == 0, then the returned value is guaranteed to be false. -#define rustg_rand_ratio(nominator, denominator) text2num(RUSTG_CALL(RUST_G, "rand_ratio")(istext(nominator) ? nominator : num2text(nominator), istext(denominator) ? denominator : num2text(denominator))) +#define rustg_rand_ratio(nominator, denominator) ext2num(RUSTG_CALL(RUST_G, "rand_ratio")(istext(nominator) ? nominator : num2text(nominator), istext(denominator) ? denominator : num2text(denominator))) // Related to real-valued quantities that grow linearly (e.g. errors, offsets): diff --git a/code/__defines/sound.dm b/code/__defines/sound.dm index 328d7777a5d..4bb396ac38b 100644 --- a/code/__defines/sound.dm +++ b/code/__defines/sound.dm @@ -122,6 +122,7 @@ #define SFX_AMBIENT_ATMOSPHERICS "ambient_atmospherics" #define SFX_AMBIENT_MORGUE "ambient_morgue" #define SFX_AMBIENT_JUNGLE "ambient_jungle" +#define SFX_AMBIENT_DESERT "ambient_desert" // AMBIENT MUSIC #define SFX_AMBIENT_MUSIC_NORMAL "ambient_music_normal" @@ -129,6 +130,9 @@ #define SFX_AMBIENT_MUSIC_SPACE "ambient_music_space" #define SFX_AMBIENT_MUSIC_SPACE_TRAVEL "ambient_music_space_travel" #define SFX_AMBIENT_MUSIC_CENTCOMM "ambient_music_centcomm" +#define SFX_AMBIENT_MUSIC_THUNDERDOME "ambient_music_court" +#define SFX_AMBIENT_MUSIC_PICNIC "ambient_music_picnic" +#define SFX_AMBIENT_MUSIC_COURT "ambient_music_court" // ITEMS USING #define SFX_USE_HANDCUFFS "use_handcuffs" @@ -141,6 +145,7 @@ #define SFX_USE_LIGHTER "use_lighter" #define SFX_USE_CHISEL "use_chisel" #define SFX_KEYBOARD "use_keyboard" +#define SFX_USE_KNOB "use_knob" // PULLING #define SFX_PULL_BODY "pull_body" @@ -318,6 +323,9 @@ #define SFX_GEIGER_MODERATE "geiger_moderate" #define SFX_GEIGER_HIGH "geiger_high" #define SFX_GEIGER_VERY_HIGH "geiger_very_high" +#define SFX_WELDING "welding_sound" +#define SFX_WELDER_ACTIVATE "welder_activate" +#define SFX_WELDER_DEACTIVATE "welder_deactivate" // MISC #define SFX_VENT "vent" @@ -358,4 +366,10 @@ #define SFX_VENDING_DROP "vending_drop" #define SFX_VENDING_GENERIC "vending_generic" + +// Lighting +#define SFX_LIGHT_TUBE_ON "light_tube_on" +#define SFX_LIGHT_BULB_ON "light_bulb_on" +#define SFX_LIGHT_BURNOUT "light_burnout" + #define GET_SFX(name) pick(GLOB.sfx_list[name]) diff --git a/code/__defines/species.dm b/code/__defines/species.dm index b19db82d5d9..791eefa9779 100644 --- a/code/__defines/species.dm +++ b/code/__defines/species.dm @@ -1,18 +1,33 @@ // Species flags. -#define SPECIES_FLAG_NO_MINOR_CUT 0x0001 // Can step on broken glass with no ill-effects. Either thick skin (diona/vox), cut resistant (metroids) or incorporeal (shadows) -#define SPECIES_FLAG_IS_PLANT 0x0002 // Is a treeperson. -#define SPECIES_FLAG_NO_SCAN 0x0004 // Cannot be scanned in a DNA machine/genome-stolen. -#define SPECIES_FLAG_NO_PAIN 0x0008 // Cannot suffer halloss/recieves deceptive health indicator. -#define SPECIES_FLAG_NO_SLIP 0x0010 // Cannot fall over. -#define SPECIES_FLAG_NO_POISON 0x0020 // Cannot not suffer toxloss. -#define SPECIES_FLAG_NO_EMBED 0x0040 // Can step on broken glass with no ill-effects and cannot have shrapnel embedded in it. -#define SPECIES_FLAG_CAN_NAB 0x0080 // Uses the special set of grab rules. -#define SPECIES_FLAG_NO_BLOCK 0x0100 // Unable to block or defend itself from attackers. -#define SPECIES_FLAG_NEED_DIRECT_ABSORB 0x0200 // This species can only have their DNA taken by direct absorption. -#define SPECIES_FLAG_NO_TANGLE 0x0400 // This species wont get tangled up in weeds -#define SPECIES_FLAG_NO_BLOOD 0x0800 // Cannot be drained by vampire, machine, diona, golem. -#define SPECIES_FLAG_NO_ANTAG_TARGET 0x1000 // Cannot be randomly chosen as a target for antag objectives or traitor contracts (i.e. assassination). -#define SPECIES_FLAG_NO_FIRE 0x2000 // Cannot be ignited +/// Can step on broken glass with no ill-effects. Either thick skin (diona/vox), cut resistant (metroids) or incorporeal (shadows) +#define SPECIES_FLAG_NO_MINOR_CUT (1<<1) +/// Is a treeperson. +#define SPECIES_FLAG_IS_PLANT (1<<2) +/// Cannot be scanned in a DNA machine/genome-stolen. +#define SPECIES_FLAG_NO_SCAN (1<<3) +/// Cannot suffer halloss/recieves deceptive health indicator. +#define SPECIES_FLAG_NO_PAIN (1<<4) +/// Cannot fall over. +#define SPECIES_FLAG_NO_SLIP (1<<5) +/// Cannot not suffer toxloss. +#define SPECIES_FLAG_NO_POISON (1<<6) +/// Can step on broken glass with no ill-effects and cannot have shrapnel embedded in it. +#define SPECIES_FLAG_NO_EMBED (1<<7) +/// Uses the special set of grab rules. +#define SPECIES_FLAG_CAN_NAB (1<<8) +/// Unable to block or defend itself from attackers. +#define SPECIES_FLAG_NO_BLOCK (1<<9) +/// This species can only have their DNA taken by direct absorption. +#define SPECIES_FLAG_NEED_DIRECT_ABSORB (1<<10) +/// This species wont get tangled up in weeds +#define SPECIES_FLAG_NO_TANGLE (1<<11) +/// Cannot be drained by vampire, machine, diona, golem. +#define SPECIES_FLAG_NO_BLOOD (1<<12) +/// Cannot be randomly chosen as a target for antag objectives or traitor contracts (i.e. assassination). +#define SPECIES_FLAG_NO_ANTAG_TARGET (1<<13) +/// Cannot be ignited +#define SPECIES_FLAG_NO_FIRE (1<<14) + // unused: 0x8000 - higher than this will overflow // Species spawn flags diff --git a/code/__defines/subsystem-priority.dm b/code/__defines/subsystem-priority.dm index 896cdb64692..22caddb9106 100644 --- a/code/__defines/subsystem-priority.dm +++ b/code/__defines/subsystem-priority.dm @@ -7,11 +7,13 @@ // SS_TICKER #define SS_PRIORITY_CHAT 100 +#define SS_PRIORITY_STATPANELS 95 #define SS_PRIORITY_THINK 90 // Datums thinking. #define SS_PRIORITY_OVERLAYS 20 #define SS_PRIORITY_ICON_UPDATE 10 // Queued icon updates. Mostly used by APCs and tables. // Normal +#define SS_PRIORITY_PROMETHEUS 100 #define SS_PRIORITY_TICKER 100 // Gameticker. #define SS_PRIORITY_MOB 95 // Mob Life(). #define SS_PRIORITY_MACHINERY 95 // Machinery + powernet ticks. diff --git a/code/__defines/subsystems.dm b/code/__defines/subsystems.dm index ac245165fd8..52d85b3b427 100644 --- a/code/__defines/subsystems.dm +++ b/code/__defines/subsystems.dm @@ -46,6 +46,7 @@ #define SS_INIT_EXPLOSIONS -69 #define SS_INIT_ANNOUNCERS -90 #define SS_INIT_VOTE -95 +#define SS_INIT_STATPANELS -99 #define SS_INIT_ORDER_CHAT -100 // Should be last to ensure chat remains smooth during init. // Explosion Subsystem subtasks diff --git a/code/__defines/tools.dm b/code/__defines/tools.dm index 30770381497..a108290abda 100644 --- a/code/__defines/tools.dm +++ b/code/__defines/tools.dm @@ -7,3 +7,7 @@ #define TOOL_SCREWDRIVER "screwdriver" #define TOOL_MULTITOOL "multitool" #define TOOL_CROWBAR "crowbar" + +/// Minimal duration of tool's use_tool(). If less than MIN_TOOL_SOUND_DELAY, then +/// tool_sound is played only when use_tool() is started. If more, then it is played twice. +#define MIN_TOOL_SOUND_DELAY 2 SECONDS diff --git a/code/__defines/xenobiology.dm b/code/__defines/xenobiology.dm index 8aa315e5a7d..a41d9464075 100644 --- a/code/__defines/xenobiology.dm +++ b/code/__defines/xenobiology.dm @@ -4,3 +4,4 @@ #define METROID_ACTIVATE_MAJOR 2 #define LUMINESCENT_DEFAULT_GLOW 2 +#define LUMINESCENT_ENHANCED_GLOW 10 diff --git a/code/_global_vars/bitfields.dm b/code/_global_vars/bitfields.dm index 09239414591..5ef1b62bf64 100644 --- a/code/_global_vars/bitfields.dm +++ b/code/_global_vars/bitfields.dm @@ -80,6 +80,8 @@ DEFINE_BITFIELD(atom_flags, list( "OVERLAY_UPDATE" = ATOM_AWAITING_OVERLAY_UPDATE, "SILENTCONTAINER" = ATOM_FLAG_SILENTCONTAINER, "UNPUSHABLE" = ATOM_FLAG_UNPUSHABLE, + "ATOM_FLAG_HOLOGRAM" = ATOM_FLAG_HOLOGRAM, + "ATOM_FLAG_NO_DECONSTRUCTION" = ATOM_FLAG_NO_DECONSTRUCTION, )) DEFINE_BITFIELD(species_flags, list( @@ -88,6 +90,7 @@ DEFINE_BITFIELD(species_flags, list( "NO_SCAN" = SPECIES_FLAG_NO_SCAN, "NO_PAIN" = SPECIES_FLAG_NO_PAIN, "NO_SLIP" = SPECIES_FLAG_NO_SLIP, + "NO_POISON" = SPECIES_FLAG_NO_POISON, "NO_EMBED" = SPECIES_FLAG_NO_EMBED, "CAN_NAB" = SPECIES_FLAG_CAN_NAB, "NO_BLOCK" = SPECIES_FLAG_NO_BLOCK, @@ -95,7 +98,6 @@ DEFINE_BITFIELD(species_flags, list( "FLAG_NO_TANGLE" = SPECIES_FLAG_NO_TANGLE, "NO_BLOOD" = SPECIES_FLAG_NO_BLOOD, "NO_ANTAG_TARGET" = SPECIES_FLAG_NO_ANTAG_TARGET, - "FLAG_NO_TANGLE" = SPECIES_FLAG_NO_TANGLE, "NO_FIRE" = SPECIES_FLAG_NO_FIRE, )) @@ -358,3 +360,16 @@ DEFINE_BITFIELD(vamp_status, list( "VAMP_ISTHRALL" = VAMP_ISTHRALL, "VAMP_FULLPOWER" = VAMP_FULLPOWER, )) + +DEFINE_BITFIELD(language_flags, list( + "WHITELISTED" = WHITELISTED, + "RESTRICTED" = RESTRICTED, + "NONVERBAL" = NONVERBAL, + "SIGNLANG" = SIGNLANG, + "HIVEMIND" = HIVEMIND, + "NONGLOBAL" = NONGLOBAL, + "INNATE" = INNATE, + "NO_TALK_MSG" = NO_TALK_MSG, + "NO_STUTTER" = NO_STUTTER, + "ALT_TRANSMIT" = ALT_TRANSMIT, +)) diff --git a/code/_global_vars/lists/pipe_dispenser.dm b/code/_global_vars/lists/pipe_dispenser.dm new file mode 100644 index 00000000000..cd207f66cd0 --- /dev/null +++ b/code/_global_vars/lists/pipe_dispenser.dm @@ -0,0 +1,87 @@ +/// List of pipes. Fuck the guy who coded them. +GLOBAL_LIST_INIT(pipe_dispenser_recipes, list( + "Regular pipes" = list( + "Pipe" = 0, + "Bent Pipe" = 1, + "Manifold" = 5, + "Manual Valve" = 8, + "Digital Valve" = 9, + "Automatic Shutoff Valve" = 44, + "Pipe Cap" = 20, + "4-Way Manifold" = 19, + "Manual T-Valve" = 18, + "Manual T-Valve - Mirrored" = 43, + "Upward Pipe" = 21, + "Downward Pipe" = 22, + ), + "Supply pipes" = list( + "Pipe" = 29, + "Bent Pipe" = 30, + "Manifold" = 33, + "Pipe Cap" = 41, + "4-Way Manifold" = 35, + "Upward Pipe" = 37, + "Downward Pipe" = 39, + ), + "Scrubbers pipes" = list( + "Pipe" = 31, + "Bent Pipe" = 32, + "Manifold" = 34, + "Pipe Cap" = 42, + "4-Way Manifold" = 36, + "Upward Pipe" = 38, + "Downward Pipe" = 40, + ), + "Fuel pipes" = list( + "Pipe" = 45, + "Bent Pipe" = 46, + "Manifold" = 47, + "Pipe Cap" = 51, + "4-Way Manifold" = 48, + "Upward Pipe" = 49, + "Downward Pipe" = 50, + ), + "Devices" = list( + "Universal Pipe Adapter" = 28, + "Connector" = 4, + "Unary Vent" = 7, + "Gas Pump" = 10, + "Pressure Regulator" = 15, + "High Power Gas Pump" = 16, + "Scrubber" = 11, + "Meter" = 1, + "Gas Filter" = 13, + "Gas Filter - Mirrored" = 25, + "Gas Mixer - T" = 24, + "Omni Gas Mixer" = 26, + "Omni Gas Filter" = 27, + ), + "Heat Exchange" = list( + "Pipe" = 2, + "Bent Pipe" = 3, + "Junction" = 6, + "Heat Exchanger" = 17, + "Wall Radiator" = 54, + "Junction Left" = 52, + "Junction Right" = 53, + ), + "Disposal Pipes" = list( + "Pipe" = 0, + "Bent Pipe" = 1, + "Junction" = 2, + "Y-Junction" = 4, + "Trunk" = 5, + "Bin" = 6, + "Outlet" = 7, + "Chute" = 8, + "Upwards" = 13, + "Downwards" = 14, + "Sorting" = 9, + "Sorting (Wildcard)" = 9, + "Tagger" = 11, + "Tagger (Partial)" = 12, + "Diversion" = 13, + "Diversion Switch" = 14, + "Disposal Switch" = 15 + ), +)) diff --git a/code/_global_vars/lists/rcd.dm b/code/_global_vars/lists/rcd.dm index 05208b72680..cfb64f761a0 100644 --- a/code/_global_vars/lists/rcd.dm +++ b/code/_global_vars/lists/rcd.dm @@ -24,7 +24,7 @@ GLOBAL_LIST_INIT(rcd_designs, list( list(RCD_DESIGN_MODE = RCD_WALLFRAME, RCD_DESIGN_PATH = /obj/machinery/alarm), list(RCD_DESIGN_MODE = RCD_WALLFRAME, RCD_DESIGN_PATH = /obj/item/device/radio/intercom), list(RCD_DESIGN_MODE = RCD_STRUCTURE, RCD_DESIGN_PATH = /obj/structure/computerframe), - list(RCD_DESIGN_MODE = RCD_STRUCTURE, RCD_DESIGN_PATH = /obj/machinery/constructable_frame), + list(RCD_DESIGN_MODE = RCD_STRUCTURE, RCD_DESIGN_PATH = /obj/machinery/constructable_frame/machine_frame), list(RCD_DESIGN_MODE = RCD_STRUCTURE, RCD_DESIGN_PATH = /obj/machinery/vending_frame), ), diff --git a/code/_global_vars/sfx.dm b/code/_global_vars/sfx.dm index 34dde62cd8d..03e4c2af24e 100644 --- a/code/_global_vars/sfx.dm +++ b/code/_global_vars/sfx.dm @@ -525,6 +525,14 @@ GLOBAL_LIST_INIT(sfx_list, list( 'sound/ambient/jungle/junglethunder2.ogg', 'sound/ambient/jungle/junglethunder1.ogg', ), + SFX_AMBIENT_DESERT = list( + 'sound/effects/wind/wind_2_1.ogg', + 'sound/effects/wind/wind_2_2.ogg', + 'sound/effects/wind/wind_3_1.ogg', + 'sound/effects/wind/wind_4_1.ogg', + 'sound/effects/wind/wind_4_2.ogg', + 'sound/effects/wind/wind_5_1.ogg' + ), // AMBIENT MUSIC SFX_AMBIENT_MUSIC_NORMAL = list( 'sound/ambient_music/normal_1.ogg', @@ -611,6 +619,15 @@ GLOBAL_LIST_INIT(sfx_list, list( SFX_AMBIENT_MUSIC_CENTCOMM = list( 'sound/ambient_music/centcomm_1.ogg', ), + SFX_AMBIENT_MUSIC_THUNDERDOME = list( + 'sound/music/THUNDERDOME.ogg' + ), + SFX_AMBIENT_MUSIC_PICNIC = list( + 'sound/music/classic/title2.ogg' + ), + SFX_AMBIENT_MUSIC_COURT = list( + 'sound/music/classic/traitor.ogg' + ), // ITEMS USING SFX_USE_HANDCUFFS = list( 'sound/effects/using/cuffs/use1.ogg', @@ -677,6 +694,11 @@ GLOBAL_LIST_INIT(sfx_list, list( 'sound/machines/button3.ogg', 'sound/machines/button4.ogg' ), + SFX_USE_KNOB = list( + 'sound/machines/knob1.ogg', + 'sound/machines/knob2.ogg', + 'sound/machines/knob3.ogg' + ), SFX_USE_LIGHTER = list( 'sound/items/lighter1.ogg', 'sound/items/lighter2.ogg', @@ -1638,6 +1660,16 @@ GLOBAL_LIST_INIT(sfx_list, list( 'sound/effects/geiger/geiger_very_high_1.ogg', 'sound/effects/geiger/geiger_very_high_2.ogg' ), + SFX_WELDING = list( + 'sound/items/Welder.ogg', + 'sound/items/Welder2.ogg' + ), + SFX_WELDER_ACTIVATE = list( + 'sound/effects/welderactivate.ogg' + ), + SFX_WELDER_DEACTIVATE = list( + 'sound/effects/welderdeactivate.ogg' + ), // FOOTSTEPS SFX_DISTANT_MOVEMENT = list( 'sound/effects/footstep/distant/distant1.ogg', @@ -1754,5 +1786,14 @@ GLOBAL_LIST_INIT(sfx_list, list( ), SFX_VENDING_GENERIC = list( 'sound/effects/using/disposal/drop2.ogg' - ) + ), + SFX_LIGHT_TUBE_ON = list( + 'sound/machines/sound_effects_light_on.ogg' + ), + SFX_LIGHT_BULB_ON = list( + 'sound/machines/lightson.ogg' + ), + SFX_LIGHT_BURNOUT = list( + 'sound/machines/lightsburnout.ogg' + ), )) diff --git a/code/_helpers/cmp.dm b/code/_helpers/cmp.dm index 5841bfcee32..c4762e0f5f9 100644 --- a/code/_helpers/cmp.dm +++ b/code/_helpers/cmp.dm @@ -52,9 +52,6 @@ if (!.) . = B.qdels - A.qdels -/proc/cmp_timer(datum/timedevent/a, datum/timedevent/b) - return a.timeToRun - b.timeToRun - /proc/cmp_program(datum/computer_file/program/A, datum/computer_file/program/B) return cmp_text_asc(A.filedesc, B.filedesc) diff --git a/code/_helpers/flick_overlay.dm b/code/_helpers/flick_overlay.dm new file mode 100644 index 00000000000..84136c95ef8 --- /dev/null +++ b/code/_helpers/flick_overlay.dm @@ -0,0 +1,51 @@ +/// Adds an image to a list of clients and then removes it. +/datum/flick_overlay + var/image/image + var/list/client/seeing_clients = list() + +/datum/flick_overlay/New(image/image, list/client/show_to, time_to_live) + . = ..() + if(!image || !islist(show_to)) + qdel_self() + + src.image = image + seeing_clients = show_to + add_image_to_clients(image, seeing_clients) + QDEL_IN(src, time_to_live) + +/datum/flick_overlay/Destroy() + remove_image_from_clients(image, seeing_clients) + QDEL_NULL(image) + seeing_clients.Cut() + return ..() + +// Adds the image to a list of clients. +/proc/add_image_to_clients(image/image_to_add, list/show_to) + for(var/client/add_to as anything in show_to) + LAZYADD(add_to?.images, image_to_add) + +// Removes the image from a list of clients. +/proc/remove_image_from_clients(image/image_to_remove, list/hide_from) + for(var/client/remove_from as anything in hide_from) + LAZYREMOVE(remove_from?.images, image_to_remove) + +// Adds an image to a list of clients +/proc/flick_overlay_global(image/image_to_show, list/show_to, duration) + if(!show_to || !length(show_to) || !image_to_show) + return + + new /datum/flick_overlay(image_to_show, show_to, duration) + +// Flicks a certain overlay onto an atom, handling icon_state strings. +/atom/proc/flick_overlay(image_to_show, list/show_to, duration, layer) + var/image/passed_image = istext(image_to_show) ? image(icon, src, image_to_show, layer) : image_to_show + flick_overlay_global(passed_image, show_to, duration) + +// Flicks a certain overlay to anyone who can view this atom. +/atom/proc/flick_overlay_in_view(image_to_show, duration) + var/list/observers + for(var/mob/observer as anything in viewers(src)) + if(observer.client) + LAZYADD(observers, observer) + + flick_overlay(image_to_show, observers, duration) diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index c947db603c9..bcca7df6235 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -377,46 +377,6 @@ for(var/client/C in group) C.screen -= O -// Adds an image to a client's `.images`. -/proc/add_image_to_client(image/image_to_add, client/add_to) - LAZYADD(add_to?.images, image_to_add) - -// Simmilar to `add_image_to_client`, but will add the image to a list of clients. -/proc/add_image_to_clients(image/image_to_add, list/show_to) - for(var/client/add_to as anything in show_to) - add_image_to_client(image_to_add, add_to) - -// Removes an image from a client's `.images`. -/proc/remove_image_from_client(image/image_to_remove, client/remove_from) - LAZYREMOVE(remove_from?.images, image_to_remove) - -// Simmilar to `remove_image_from_client`, but will remove the image from a list of clients. -/proc/remove_image_from_clients(image/image_to_remove, list/hide_from) - for(var/client/remove_from as anything in hide_from) - remove_image_from_client(image_to_remove, remove_from) - -// Adds an image to a list of clients and calls a proc to remove it after duration. -/proc/flick_overlay_global(image/image_to_show, list/show_to, duration) - if(!show_to || !length(show_to) || !image_to_show) - return - for(var/client/add_to in show_to) - LAZYADD(add_to.images, image_to_show) - addtimer(CALLBACK(GLOBAL_PROC, /proc/remove_image_from_clients, image_to_show, show_to), duration) - -// Flicks a certain overlay onto an atom, handling icon_state strings. -/atom/proc/flick_overlay(image_to_show, list/show_to, duration, layer) - var/image/passed_image = istext(image_to_show) ? image(icon, src, image_to_show, layer) : image_to_show - flick_overlay_global(passed_image, show_to, duration) - - -// Flicks a certain overlay to anyone who can view this atom. -/atom/proc/flick_overlay_in_view(image_to_show, duration) - var/list/observers - for(var/mob/observer as anything in viewers(src)) - if(observer.client) - LAZYADD(observers, observer) - flick_overlay(image_to_show, observers, duration) - /datum/projectile_data var/src_x var/src_y diff --git a/code/_helpers/global_access.dm b/code/_helpers/global_access.dm index 4925f58e7bf..c384a48dc7f 100644 --- a/code/_helpers/global_access.dm +++ b/code/_helpers/global_access.dm @@ -83,8 +83,6 @@ return global.SStgui; if("SSticker") return global.SSticker; - if("SStimer") - return global.SStimer; if("SStrade") return global.SStrade; if("SSvines") @@ -243,8 +241,6 @@ return global.chemical_reactions_list; if("church_name") return global.church_name; - if("client_preference_stats_") - return global.client_preference_stats_; if("client_repository") return global.client_repository; if("combatlog") @@ -892,8 +888,6 @@ global.SStgui=newval; if("SSticker") global.SSticker=newval; - if("SStimer") - global.SStimer=newval; if("SStrade") global.SStrade=newval; if("SSvines") @@ -1056,8 +1050,6 @@ global.chemical_reactions_list=newval; if("church_name") global.church_name=newval; - if("client_preference_stats_") - global.client_preference_stats_=newval; if("client_repository") global.client_repository=newval; if("combatlog") @@ -1759,7 +1751,6 @@ "chemical_reactions_list", "chicken_count", "church_name", - "client_preference_stats_", "client_repository", "combatlog", "comm_message_listeners", diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 18ee24f8c9c..7172a8c5b6f 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -72,6 +72,16 @@ var/global/list/rune_list = new() var/global/list/syndicate_access = list(access_maint_tunnels, access_syndicate, access_external_airlocks) +/// Associative list of string -> string, where key is armor class and value is an attack type it protects against. +GLOBAL_LIST_INIT(descriptive_attack_types, list( + "melee" = "blunt force", + "bullet" = "ballistics", + "laser" = "lasers", + "energy" = "energy", + "bomb" = "explosions", + "bio" = "biohazards", +)) + // Strings which corraspond to bodypart covering flags, useful for outputting what something covers. var/global/list/string_part_flags = list( "head" = HEAD, @@ -208,7 +218,7 @@ var/global/list/string_slot_flags = list( for (var/language_name in all_languages) var/datum/language/L = all_languages[language_name] - if(!(L.flags & NONGLOBAL)) + if(!(L.language_flags & NONGLOBAL)) language_keys[lowertext(L.key)] = L var/rkey = 0 diff --git a/code/_helpers/holodeck.dm b/code/_helpers/holodeck.dm new file mode 100644 index 00000000000..d36fe0d365f --- /dev/null +++ b/code/_helpers/holodeck.dm @@ -0,0 +1 @@ +#define isholoeffect(O) istype(O, /obj/effect/holodeck_effect) diff --git a/code/_helpers/icons.dm b/code/_helpers/icons.dm index 9f2bea94d2d..b82e18907c1 100644 --- a/code/_helpers/icons.dm +++ b/code/_helpers/icons.dm @@ -779,7 +779,7 @@ return cap -/proc/icon2html(thing, target, icon_state, dir, frame = 1, moving = FALSE, realsize = FALSE, class = null) +/proc/icon2html(thing, target, icon_state, dir, frame = 1, moving = FALSE, realsize = FALSE, sourceonly = FALSE, class = null) if (!thing) return @@ -809,6 +809,10 @@ continue thing2 = M.client send_asset(thing2, key, FALSE) + + if(sourceonly) + return url_encode(key) + return "" var/atom/A = thing if (isnull(dir)) @@ -840,6 +844,9 @@ thing2 = M.client send_asset(thing2, key, FALSE) + if(sourceonly) + return url_encode(key) + if(realsize) return "" @@ -860,9 +867,21 @@ composite.Blend(new /icon(I.icon, I.icon_state), ICON_OVERLAY) return composite +/// Costlier version of icon2html() that uses getFlatIcon() to account for overlays, underlays, etc. Use with extreme moderation, ESPECIALLY on mobs. +/proc/costly_icon2html(thing, target, sourceonly = FALSE) + if (!thing) + return + + if (isicon(thing)) + return icon2html(thing, target) + + var/icon/I = getFlatIcon(thing) + return icon2html(I, target, sourceonly = sourceonly) + /proc/path2icon(path, dir = SOUTH, frame = 1, moving = FALSE) var/atom/A = path return icon(initial(A.icon), initial(A.icon_state), dir, frame, moving) + /* * Converts an icon to base64. Operates by putting the icon in the iconCache savefile, * exporting it as text, and then parsing the base64 from that. diff --git a/code/_helpers/mobs.dm b/code/_helpers/mobs.dm index 3a741d4b949..298c16abd91 100644 --- a/code/_helpers/mobs.dm +++ b/code/_helpers/mobs.dm @@ -128,7 +128,7 @@ /proc/get_exposed_defense_zone(atom/movable/target) return pick(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_FOOT, BP_R_FOOT, BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG, BP_CHEST, BP_GROIN) -/proc/do_mob(atom/movable/affecter, mob/target, time = 30, target_zone = 0, uninterruptible = 0, progress = 1, incapacitation_flags = INCAPACITATION_DEFAULT, can_multitask = FALSE) +/proc/do_mob(atom/movable/affecter, mob/target, time = 30, target_zone = 0, uninterruptible = 0, progress = 1, incapacitation_flags = INCAPACITATION_DEFAULT, can_multitask = FALSE, datum/callback/extra_checks) if(!affecter || !target) return FALSE @@ -189,13 +189,17 @@ . = 0 break + if(extra_checks && !extra_checks.Invoke(user, target)) + . = FALSE + break + if(progbar) qdel(progbar) if(!can_multitask) LAZYREMOVE(GLOB.domobs, uniqueid) -/proc/do_after(mob/user, delay, atom/target = null, needhand = TRUE, progress = TRUE, incapacitation_flags = INCAPACITATION_DEFAULT, same_direction = FALSE, can_move = FALSE) +/proc/do_after(mob/user, delay, atom/target = null, needhand = TRUE, progress = TRUE, incapacitation_flags = INCAPACITATION_DEFAULT, same_direction = FALSE, can_move = FALSE, datum/callback/extra_checks) if(!user) return FALSE @@ -248,6 +252,10 @@ . = 0 break + if(extra_checks && !extra_checks.Invoke(user, target)) + . = FALSE + break + if(progbar) qdel(progbar) diff --git a/code/_helpers/preferences.dm b/code/_helpers/preferences.dm new file mode 100644 index 00000000000..7baf4fedea7 --- /dev/null +++ b/code/_helpers/preferences.dm @@ -0,0 +1,8 @@ +/proc/zoom_pref2value(zoom_key) + var/datum/client_preference/zoom_pref = get_client_preference_by_key("PIXEL_SIZE") + + var/zoom_index = zoom_pref.options.Find(zoom_key) + if(zoom_index == 1) + return 0 + + return zoom_index / 2 diff --git a/code/_helpers/sanitize_values.dm b/code/_helpers/sanitize_values.dm index 6f080f0757b..b9de8b4579b 100644 --- a/code/_helpers/sanitize_values.dm +++ b/code/_helpers/sanitize_values.dm @@ -43,17 +43,51 @@ else return default return default -/proc/sanitize_hexcolor(color, default="#000000") - if(!istext(color)) return default +/// Return `color` if it is a valid hex color, otherwise `default` +/proc/sanitize_hexcolor(color, desired_format = 3, include_crunch = FALSE, default) + var/crunch = include_crunch ? "#" : "" + if(!istext(color)) + color = "" + + var/start = 1 + (text2ascii(color, 1) == 35) var/len = length(color) - if(len != 7 && len !=4) return default - if(text2ascii(color,1) != 35) return default //35 is the ascii code for "#" - . = "#" - for(var/i=2,i<=len,i++) - var/ascii = text2ascii(color,i) - switch(ascii) - if(48 to 57) . += ascii2text(ascii) //numbers 0 to 9 - if(97 to 102) . += ascii2text(ascii) //letters a to f - if(65 to 70) . += ascii2text(ascii+32) //letters A to F - translates to lowercase - else return default - return . + var/char = "" + // Used for conversion between RGBA hex formats. + var/format_input_ratio = "[desired_format]:[length_char(color)-(start-1)]" + + . = "" + var/i = start + while(i <= len) + char = color[i] + i += length(char) + switch(text2ascii(char)) + if(48 to 57) //numbers 0 to 9 + . += char + if(97 to 102) //letters a to f + . += char + if(65 to 70) //letters A to F + char = lowertext(char) + . += char + else + break + switch(format_input_ratio) + if("3:8", "4:8", "3:6", "4:6") //skip next one. RRGGBB(AA) -> RGB(A) + i += length(color[i]) + if("6:4", "6:3", "8:4", "8:3") //add current char again. RGB(A) -> RRGGBB(AA) + . += char + + if(length_char(.) == desired_format) + return crunch + . + switch(format_input_ratio) //add or remove alpha channel depending on desired format. + if("3:8", "3:4", "6:4") + return crunch + copytext(., 1, desired_format+1) + if("4:6", "4:3", "8:3") + return crunch + . + ((desired_format == 4) ? "f" : "ff") + else //not a supported hex color format. + return default ? default : crunch + repeat_string(desired_format, "0") + +/// Returns `string` repeated `times` times +/proc/repeat_string(times, string="") + . = "" + for(var/i in 1 to times) + . += string diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 4b85fe4cb34..dad51a21c90 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -353,11 +353,6 @@ Turf and target are seperate in case you want to teleport some distance from a t /proc/ionnum() return "[pick("1","2","3","4","5","6","7","8","9","0")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")]" -/atom/proc/add_verb(the_verb, datum/callback/callback) - if (callback && !callback.Invoke()) - return - - verbs += the_verb //When an AI is activated, it can choose from a list of non-slaved borgs to have as a slave. /proc/freeborg() var/select = null diff --git a/code/_helpers/verbs.dm b/code/_helpers/verbs.dm new file mode 100644 index 00000000000..b4d1cfa81dc --- /dev/null +++ b/code/_helpers/verbs.dm @@ -0,0 +1,93 @@ +/** + * Wrapper around basic verb addition operation, allows to perform batch addition via nested lists, + * updates stat panel if supplied `target` is a client or client-controlled mob. + * + * Arguments: + * * target - who the verb is being added to, `/client` or `/mob`. + * * verb - typepath of a verb, or a list of typepaths, supports nesting. + */ +/proc/grant_verb(client/target, verb_or_list_to_add) + if(!target) + CRASH("grant_verb called without a target") + + var/mob/mob_target = null + + if(ismob(target)) + mob_target = target + target = mob_target.client + else if(!istype(target, /client)) + CRASH("grant_verb called on a non-mob and non-client") + + var/list/verbs_list = list() + + if(!islist(verb_or_list_to_add)) + verbs_list += verb_or_list_to_add + else + var/list/verb_listref = verb_or_list_to_add + var/list/elements_to_process = verb_listref.Copy() + while(length(elements_to_process)) + var/element_or_list = elements_to_process[length(elements_to_process)] //Last element + elements_to_process.len-- + if(islist(element_or_list)) + elements_to_process += element_or_list //list/a += list/b adds the contents of b into a, not the reference to the list itself + else + verbs_list += element_or_list + + if(mob_target) + mob_target.verbs += verbs_list + if(!target) + return //Our work is done. + else + target.verbs += verbs_list + + var/list/output_list = list() + for(var/thing in verbs_list) + var/procpath/verb_to_add = thing + output_list[++output_list.len] = list(verb_to_add.category, verb_to_add.name) + + target.stat_panel.send_message("add_verb_list", output_list) + +/** + * Wrapper around basic verb removal operation, allows to perform batch addition via nested lists, + * updates stat panel if supplied `target` is a client or client-controlled mob. + * + * Arguments: + * * target - who the verb is being removed from, `/client` or `/mob`. + * * verb - typepath of a verb, or a list of typepaths, supports nesting. + */ +/proc/revoke_verb(client/target, verb_or_list_to_remove) + var/mob/mob_target = null + + if(ismob(target)) + mob_target = target + target = mob_target.client + else if(!istype(target, /client)) + CRASH("revoke_verb called on a non-mob and non-client") + + var/list/verbs_list = list() + if(!islist(verb_or_list_to_remove)) + verbs_list += verb_or_list_to_remove + else + var/list/verb_listref = verb_or_list_to_remove + var/list/elements_to_process = verb_listref.Copy() + while(length(elements_to_process)) + var/element_or_list = elements_to_process[length(elements_to_process)] //Last element + elements_to_process.len-- + if(islist(element_or_list)) + elements_to_process += element_or_list //list/a += list/b adds the contents of b into a, not the reference to the list itself + else + verbs_list += element_or_list + + if(mob_target) + mob_target.verbs -= verbs_list + if(!target) + return //Our work is done. + else + target.verbs -= verbs_list + + var/list/output_list = list() + for(var/thing in verbs_list) + var/procpath/verb_to_remove = thing + output_list[++output_list.len] = list(verb_to_remove.category, verb_to_remove.name) + + target.stat_panel.send_message("remove_verb_list", output_list) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index f9312b7c3bd..cad9568fafc 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -299,14 +299,14 @@ A.AltClick(src) /atom/proc/AltClick(mob/user) - var/turf/T = get_turf(src) - if(T && user.TurfAdjacent(T)) - if(user.listed_turf == T) - user.listed_turf = null - else - user.listed_turf = T - user.client.statpanel = "Turf" - return 1 + var/cancel = SEND_SIGNAL(src, SIGNAL_ALT_CLICKED, src, user) + if(cancel) + return + + var/turf/clicked_turf = get_turf(src) + + if(clicked_turf && user.TurfAdjacent(clicked_turf)) + user.set_listed_turf(clicked_turf) /mob/proc/TurfAdjacent(turf/T) return T.AdjacentQuick(src) @@ -335,9 +335,9 @@ return /atom/proc/CtrlAltClick(mob/user) - return - - + var/cancel = SEND_SIGNAL(src, SIGNAL_CTRL_ALT_CLICKED, src, user) + if(cancel) + return /* Rclick. @@ -500,11 +500,11 @@ var/const/CLICK_HANDLER_ALL = (~0) ..() src.user = user if(flags & (CLICK_HANDLER_REMOVE_ON_MOB_LOGOUT)) - register_signal(user, SIGNAL_LOGGED_OUT, /datum/click_handler/proc/OnMobLogout) + register_signal(user, SIGNAL_LOGGED_OUT, nameof(/datum/click_handler.proc/OnMobLogout)) /datum/click_handler/Destroy() if(flags & (CLICK_HANDLER_REMOVE_ON_MOB_LOGOUT)) - unregister_signal(user, SIGNAL_LOGGED_OUT, /datum/click_handler/proc/OnMobLogout) + unregister_signal(user, SIGNAL_LOGGED_OUT, nameof(/datum/click_handler.proc/OnMobLogout)) user = null . = ..() diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 7865ec83788..970d08fb69d 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -43,7 +43,7 @@ thealert.timeout = null thealert.owner = src - thealert.register_signal(thealert.owner, SIGNAL_QDELETING, /datum/proc/qdel_self) + thealert.register_signal(thealert.owner, SIGNAL_QDELETING, nameof(/datum.proc/qdel_self)) if(new_master) var/old_layer = new_master.layer @@ -66,14 +66,10 @@ animate(thealert, transform = matrix(), time = 2.5, easing = CUBIC_EASING) if(thealert.timeout) - addtimer(CALLBACK(src, nameof(.proc/alert_timeout), thealert, category), thealert.timeout) - thealert.timeout = world.time + thealert.timeout - world.tick_lag + thealert.category = category + thealert.set_next_think(world.time + thealert.timeout) return thealert -/mob/proc/alert_timeout(atom/movable/screen/movable/alert/alert, category) - if(alert.timeout && alerts[category] == alert && world.time >= alert.timeout) - clear_alert(category) - // Proc to clear an existing alert. /mob/proc/clear_alert(category, clear_override = FALSE) var/atom/movable/screen/movable/alert/alert = alerts[category] @@ -104,10 +100,15 @@ var/alerttooltipstyle = "" var/override_alerts = FALSE //If it is overriding other alerts of the same type var/mob/owner //Alert owner + /// Alert category for sorting in owner's screen. Used in clearing alert after click() + var/category /// Boolean. If TRUE, the Click() proc will attempt to Click() on the master first if there is a master. var/click_master = TRUE +/atom/movable/screen/movable/alert/think() + owner?.clear_alert(category) + /atom/movable/screen/movable/alert/status_effect icon = 'icons/hud/status_effects.dmi' diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 9a48ec969d4..0c8361b9414 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -287,10 +287,9 @@ return TRUE -/atom/movable/screen/movable/alert/_examine_text(mob/user, infix, suffix) - .="[name]" - .+=" - [SPAN("info", desc)]" - return FALSE +/atom/movable/screen/movable/alert/examine(mob/user, infix) + . = "[name]" + . += " - [SPAN("info", desc)]" /atom/movable/screen/movable/alert/Destroy() . = ..() diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 4b71ad2accf..79a1aa4d08b 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -67,18 +67,37 @@ /atom/movable/screen/storage name = "storage" -/atom/movable/screen/storage/Click() +/atom/movable/screen/storage/Click(location, control, params) if(!usr.canClick()) - return 1 + return TRUE + if(usr.stat || usr.paralysis || usr.stunned || usr.weakened) - return 1 + return TRUE + if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech - return 1 + return TRUE if(master) var/obj/item/I = usr.get_active_hand() if(I) usr.ClickOn(master) - return 1 + + var/obj/item/storage/S = master + if(!S?.storage_ui) + return + + // Tries to find items by their border overlay. + var/list/PM = params2list(params) + var/list/screen_loc_params = splittext(PM["screen-loc"], ",") + var/list/screen_loc_X = splittext(screen_loc_params[1], ":") + var/click_x = text2num(screen_loc_X[1]) * WORLD_ICON_SIZE + text2num(screen_loc_X[2]) - 144 + + for(var/i = 1, i <= S.storage_ui.click_border_start.len, i++) + if(S.storage_ui.click_border_start[i] <= click_x && click_x <= S.storage_ui.click_border_end[i] && i <= S.contents.len) + I = S.contents[i] + I?.Click(location, control, params) + return + + return TRUE /atom/movable/screen/stored name = "stored" diff --git a/code/_onclick/hud/skybox.dm b/code/_onclick/hud/skybox.dm index ba996a0e0c5..b16f281bbe7 100644 --- a/code/_onclick/hud/skybox.dm +++ b/code/_onclick/hud/skybox.dm @@ -69,7 +69,7 @@ /mob var/obj/skybox/skybox -/mob/Move() +/mob/Move(newloc, direct) . = ..() if(. && skybox) skybox.update() diff --git a/code/client_macros.dm b/code/client_macros.dm index b3dc7b4f318..ae6effd509c 100644 --- a/code/client_macros.dm +++ b/code/client_macros.dm @@ -1,6 +1,3 @@ -/client - //control_freak = CONTROL_FREAK_ALL | CONTROL_FREAK_MACROS | CONTROL_FREAK_SKIN - var/list/registered_macros_by_ckey_ // Disables click and double-click macros, as per http://www.byond.com/forum/?post=2219001 diff --git a/code/controllers/admin.dm b/code/controllers/admin.dm index 14da4161012..4d7e850a0ae 100644 --- a/code/controllers/admin.dm +++ b/code/controllers/admin.dm @@ -1,40 +1,3 @@ -// Clickable stat() button. -/obj/effect/statclick - name = "Initializing..." - var/target - -INITIALIZE_IMMEDIATE(/obj/effect/statclick) - -/obj/effect/statclick/Initialize(mapload, text, target) //Don't port this to Initialize it's too critical - . = ..() - name = text - src.target = target - -/obj/effect/statclick/proc/update(text) - name = text - return src - -/obj/effect/statclick/debug - var/class - -/obj/effect/statclick/debug/Click() - if(!usr.client.holder || !target) - return - if(!class) - if(istype(target, /datum/controller/subsystem)) - class = "subsystem" - else if(istype(target, /datum/controller)) - class = "controller" - else if(istype(target, /datum)) - class = "datum" - else - class = "unknown" - - usr.client.debug_variables(target) - message_admins("Admin [key_name_admin(usr)] is debugging the [target] [class].") - - -// Debug verbs. /client/proc/restart_controller(controller in list("Master", "Failsafe")) set category = "Debug" set name = "Restart Controller" @@ -42,6 +5,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/statclick) if(!holder) return + switch(controller) if("Master") Recreate_MC() diff --git a/code/controllers/controller.dm b/code/controllers/controller.dm index c9d5f1e5650..995dfdd34c3 100644 --- a/code/controllers/controller.dm +++ b/code/controllers/controller.dm @@ -1,7 +1,5 @@ /datum/controller var/name - // The object used for the clickable stat() button. - var/obj/effect/statclick/statclick /datum/controller/proc/Initialize() @@ -16,4 +14,4 @@ /datum/controller/proc/Recover() -/datum/controller/proc/stat_entry() +/datum/controller/proc/stat_entry(msg) diff --git a/code/controllers/failsafe.dm b/code/controllers/failsafe.dm index da92e1dfc04..580977c58c6 100644 --- a/code/controllers/failsafe.dm +++ b/code/controllers/failsafe.dm @@ -95,8 +95,6 @@ GLOBAL_REAL(Failsafe, /datum/controller/failsafe) /datum/controller/failsafe/proc/defcon_pretty() return defcon -/datum/controller/failsafe/stat_entry() - if(!statclick) - statclick = new /obj/effect/statclick/debug(null, "Initializing...", src) - - stat("Failsafe Controller:", statclick.update("Defcon: [defcon_pretty()] (Interval: [Failsafe.processing_interval] | Iteration: [Failsafe.master_iteration])")) +/datum/controller/failsafe/stat_entry(msg) + msg = "Defcon: [defcon_pretty()] (Interval: [Failsafe.processing_interval] | Iteration: [Failsafe.master_iteration])" + return msg diff --git a/code/controllers/globals.dm b/code/controllers/globals.dm index 34435096a15..c419caa1c0b 100644 --- a/code/controllers/globals.dm +++ b/code/controllers/globals.dm @@ -38,11 +38,9 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) return QDEL_HINT_IWILLGC -/datum/controller/global_vars/stat_entry() - if(!statclick) - statclick = new /obj/effect/statclick/debug(null, "Initializing...", src) - - stat("Globals:", statclick.update("Edit")) +/datum/controller/global_vars/stat_entry(msg) + msg = "Edit" + return msg /datum/controller/global_vars/VV_hidden() return ..() + gvars_datum_protected_varlist diff --git a/code/controllers/master.dm b/code/controllers/master.dm index c996a86f83d..5b8ff91972b 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -1,3 +1,4 @@ + /** * StonedMC * @@ -119,7 +120,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/msg = "## DEBUG: [time2text(world.timeofday)] MC restarted. Reports:\n" for (var/varname in Master.vars) switch (varname) - if("name", "tag", "bestF", "type", "parent_type", "vars", "statclick") // Built-in junk. + if("name", "tag", "bestF", "type", "parent_type", "vars") // Built-in junk. continue else var/varval = Master.vars[varname] @@ -287,7 +288,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/list/subsystems_to_check //the actual loop. while (1) + rustg_prom_counter_inc(PROM_MASTER_ITERATIONS, null) + tickdrift = max(0, MC_AVERAGE_FAST(tickdrift, (((REALTIMEOFDAY - init_timeofday) - (world.time - init_time)) / world.tick_lag))) + var/starting_tick_usage = TICK_USAGE if (processing <= 0) current_ticklimit = TICK_LIMIT_RUNNING @@ -504,11 +508,12 @@ GLOBAL_REAL(Master, /datum/controller/master) = new continue queue_node.ticks = MC_AVERAGE(queue_node.ticks, queue_node.paused_ticks) - tick_usage += queue_node.paused_tick_usage + tick_usage += queue_node.paused_tick_usage queue_node.tick_usage = MC_AVERAGE_FAST(queue_node.tick_usage, tick_usage) queue_node.cost = MC_AVERAGE_FAST(queue_node.cost, TICK_DELTA_TO_MS(tick_usage)) + queue_node.paused_ticks = 0 queue_node.paused_tick_usage = 0 @@ -582,12 +587,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new -/datum/controller/master/stat_entry() - if(!statclick) - statclick = new /obj/effect/statclick/debug(null, "Initializing...", src) - - stat("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%))") - stat("Master Controller:", statclick.update("(TickRate:[Master.processing]) (Iteration:[Master.iteration])")) +/datum/controller/master/stat_entry(msg) + msg = "(TickRate:[Master.processing]) (Iteration:[Master.iteration])" + return msg /datum/controller/master/StartLoadingMap() //disallow more than one map to load at once, multithreading it will just cause race conditions diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm index 7a164625aa5..6677afdfa99 100644 --- a/code/controllers/subsystem.dm +++ b/code/controllers/subsystem.dm @@ -169,25 +169,19 @@ //hook for printing stats to the "MC" statuspanel for admins to see performance and related stats etc. /datum/controller/subsystem/stat_entry(msg) - if(!statclick) - statclick = new /obj/effect/statclick/debug(null, "Initializing...", src) - var/pre_msg - if (flags & SS_NO_FIRE) + if(flags & SS_NO_FIRE) pre_msg = "NOT FIRED" - else if (can_fire && !suspended) + else if(can_fire && !suspended) pre_msg = "[round(cost,1)]ms|[round(tick_usage,1)]%([round(tick_overrun,1)]%)|[round(ticks,0.1)]" - else if (!can_fire) + else if(!can_fire) pre_msg = "OFFLINE" else pre_msg = "SUSPEND" - msg = "[pre_msg]\t[msg]" - var/title = name - if (can_fire) - title = "\[[state_letter()]][title]" + msg = "[pre_msg]\t[msg]" - stat(title, statclick.update(msg)) + return msg /datum/controller/subsystem/proc/state_letter() switch (state) diff --git a/code/controllers/subsystems/air.dm b/code/controllers/subsystems/air.dm index e500950d01d..e253caf3bcf 100644 --- a/code/controllers/subsystems/air.dm +++ b/code/controllers/subsystems/air.dm @@ -117,7 +117,7 @@ SUBSYSTEM_DEF(air) next_fire = world.time + wait can_fire = TRUE -/datum/controller/subsystem/air/stat_entry() +/datum/controller/subsystem/air/stat_entry(msg) var/list/out = list( "TtU:[tiles_to_update.len] ", "ZtU:[zones_to_update.len] ", @@ -125,7 +125,10 @@ SUBSYSTEM_DEF(air) "AH:[active_hotspots.len] ", "AE:[active_edges.len]" ) - ..(out.Join()) + + msg = out.Join() + + return ..() /datum/controller/subsystem/air/Initialize(timeofday, simulate = TRUE) diff --git a/code/controllers/subsystems/alarm.dm b/code/controllers/subsystems/alarm.dm index 2cca117bff3..970e2600110 100644 --- a/code/controllers/subsystems/alarm.dm +++ b/code/controllers/subsystems/alarm.dm @@ -41,5 +41,6 @@ SUBSYSTEM_DEF(alarm) /datum/controller/subsystem/alarm/proc/number_of_active_alarms() return active_alarm_cache.len -/datum/controller/subsystem/alarm/stat_entry() - ..("[number_of_active_alarms()] alarm\s") +/datum/controller/subsystem/alarm/stat_entry(msg) + msg = "[number_of_active_alarms()] alarm\s" + return ..() diff --git a/code/controllers/subsystems/antags.dm b/code/controllers/subsystems/antags.dm index 96bfc2a8133..dd3c44521d7 100644 --- a/code/controllers/subsystems/antags.dm +++ b/code/controllers/subsystems/antags.dm @@ -10,4 +10,5 @@ SUBSYSTEM_DEF(antags) . = ..() /datum/controller/subsystem/antags/stat_entry(msg) - ..("[GLOB.all_antag_types_.len] antag datums") + msg = "[GLOB.all_antag_types_.len] antag datums" + return ..() diff --git a/code/controllers/subsystems/atoms.dm b/code/controllers/subsystems/atoms.dm index 35e8b2fbd46..5dce8058d12 100644 --- a/code/controllers/subsystems/atoms.dm +++ b/code/controllers/subsystems/atoms.dm @@ -109,7 +109,8 @@ SUBSYSTEM_DEF(atoms) return qdeleted || QDELING(A) /datum/controller/subsystem/atoms/stat_entry(msg) - ..("Bad Initialize Calls:[BadInitializeCalls.len]") + msg = "Bad Initialize Calls:[BadInitializeCalls.len]" + return ..() /datum/controller/subsystem/atoms/proc/map_loader_begin() old_init_state = init_state diff --git a/code/controllers/subsystems/circuit_component.dm b/code/controllers/subsystems/circuit_component.dm index 8e6d77b61c7..3c4b2a08964 100644 --- a/code/controllers/subsystems/circuit_component.dm +++ b/code/controllers/subsystems/circuit_component.dm @@ -9,8 +9,9 @@ SUBSYSTEM_DEF(circuit_components) var/list/queued_components = list() // Queue of components for activation var/position = 1 // Helper index to order newly activated components properly -/datum/controller/subsystem/circuit_components/stat_entry() - ..("C:[queued_components.len]") +/datum/controller/subsystem/circuit_components/stat_entry(msg) + msg = "C:[queued_components.len]" + return ..() /datum/controller/subsystem/circuit_components/fire(resumed = FALSE) if(paused_ticks >= 10) // The likeliest fail mode, due to the fast tick rate, is that it can never clear the full queue, running resumed every tick and accumulating a backlog. diff --git a/code/controllers/subsystems/explosion.dm b/code/controllers/subsystems/explosion.dm index b0c4fe8f522..d91e76b5471 100644 --- a/code/controllers/subsystems/explosion.dm +++ b/code/controllers/subsystems/explosion.dm @@ -33,8 +33,7 @@ SUBSYSTEM_DEF(explosions) var/currentpart = SSEXPLOSIONS_TURFS -/datum/controller/subsystem/explosions/stat_entry() - var/msg = "" +/datum/controller/subsystem/explosions/stat_entry(msg) msg += "C:{" msg += "LT:[round(cost_lowturf,1)]|" msg += "MT:[round(cost_medturf,1)]|" @@ -60,7 +59,8 @@ SUBSYSTEM_DEF(explosions) msg += "TO:[throwturf.len]" msg += "} " - ..(msg) + + return ..() #define SSEX_TURF "turf" #define SSEX_OBJ "obj" @@ -324,6 +324,9 @@ SUBSYSTEM_DEF(explosions) else creaking = FALSE + if(creaking) + SSmachines.flicker_all_lights() + for(var/mob/listener as anything in GLOB.player_list) var/turf/listener_turf = get_turf(listener) if(!listener_turf || listener_turf.z != blast_z) diff --git a/code/controllers/subsystems/garbage.dm b/code/controllers/subsystems/garbage.dm index c2a94b72c17..f0aff62b4eb 100644 --- a/code/controllers/subsystems/garbage.dm +++ b/code/controllers/subsystems/garbage.dm @@ -63,7 +63,7 @@ SUBSYSTEM_DEF(garbage) msg += "TGR:[round((totalgcs/(totaldels+totalgcs))*100, 0.01)]%" msg += " P:[pass_counts.Join(",")]" msg += "|F:[fail_counts.Join(",")]" - ..(msg) + return ..() /datum/controller/subsystem/garbage/Shutdown() //Adds the del() log to the qdel log file @@ -153,6 +153,8 @@ SUBSYSTEM_DEF(garbage) if(!D || D.gc_destroyed != GCd_at_time) // So if something else coincidently gets the same ref, it's not deleted by mistake ++gcedlasttick ++totalgcs + rustg_prom_counter_inc(PROM_GC_COLLECTED, null) + pass_counts[level]++ #ifdef TESTING reference_find_on_fail -= refID //It's deleted we don't care anymore. @@ -180,6 +182,7 @@ SUBSYSTEM_DEF(garbage) if(!I.failures) to_world_log("GC: -- \ref[D] | [type] was unable to be GC'd --") I.failures++ + rustg_prom_counter_inc(PROM_GC_ITEM_FAILURES, list("name" = I.name)) if(GC_QUEUE_HARDDELETE) if(avoid_harddel) continue @@ -217,6 +220,8 @@ SUBSYSTEM_DEF(garbage) var/ticktime = world.time ++delslasttick ++totaldels + rustg_prom_counter_inc(PROM_GC_HARD_DELS, null) + var/type = D.type var/refID = "\ref[D]" @@ -228,6 +233,7 @@ SUBSYSTEM_DEF(garbage) I.hard_deletes++ I.hard_delete_time += TICK_DELTA_TO_MS(tick) + rustg_prom_counter_inc(PROM_GC_ITEM_HARD_DELETES, list("name" = I.name)) if(tick > highest_del_tickusage) @@ -288,6 +294,7 @@ SUBSYSTEM_DEF(garbage) if(!I) I = SSgarbage.items[D.type] = new /datum/qdel_item(D.type) I.qdels++ + rustg_prom_counter_inc(PROM_GC_ITEM_QDELS, list("name" = I.name)) if(isnull(D.gc_destroyed)) // Give the components a chance to prevent their parent from being deleted. diff --git a/code/controllers/subsystems/inactivity.dm b/code/controllers/subsystems/inactivity.dm index 665e305135b..62655f29ff3 100644 --- a/code/controllers/subsystems/inactivity.dm +++ b/code/controllers/subsystems/inactivity.dm @@ -24,5 +24,6 @@ SUBSYSTEM_DEF(inactivity) if(MC_TICK_CHECK) return -/datum/controller/subsystem/inactivity/stat_entry() - ..("Kicked: [number_kicked]") +/datum/controller/subsystem/inactivity/stat_entry(msg) + msg = "Kicked: [number_kicked]" + return ..() diff --git a/code/controllers/subsystems/lighting.dm b/code/controllers/subsystems/lighting.dm index b08665a8b64..ce06b409cfb 100644 --- a/code/controllers/subsystems/lighting.dm +++ b/code/controllers/subsystems/lighting.dm @@ -29,12 +29,15 @@ SUBSYSTEM_DEF(lighting) var/tmp/processed_corners = 0 var/tmp/processed_overlays = 0 -/datum/controller/subsystem/lighting/stat_entry() +/datum/controller/subsystem/lighting/stat_entry(msg) var/list/out = list("Queued:{L:[light_queue.len] C:[corner_queue.len] O:[overlay_queue.len]}") - for (var/stype in stats_lists) + + for(var/stype in stats_lists) out += "[stype] updates: [jointext(stats_lists[stype], " | ")]" - ..(out.Join("\n")) + msg = out.Join("\n") + + return ..() /datum/controller/subsystem/lighting/Initialize() InitializeTurfs() diff --git a/code/controllers/subsystems/machines.dm b/code/controllers/subsystems/machines.dm index 716f5cb94ca..29077e3c77e 100644 --- a/code/controllers/subsystems/machines.dm +++ b/code/controllers/subsystems/machines.dm @@ -90,11 +90,9 @@ SUBSYSTEM_DEF(machines) CHECK_TICK -/datum/controller/subsystem/machines/stat_entry() - var/msg = list() - msg += "M:[processing.len]|" - msg += "PN:[powernets.len]" - ..(jointext(msg, null)) +/datum/controller/subsystem/machines/stat_entry(msg) + msg = "M:[processing.len]|PN:[powernets.len]" + return ..() /datum/controller/subsystem/machines/fire(resumed, no_mc_tick) @@ -197,3 +195,13 @@ SUBSYSTEM_DEF(machines) else if(MC_TICK_CHECK) queue.Cut(i) return + +/datum/controller/subsystem/machines/proc/flicker_all_lights() + for(var/obj/machinery/light/L in machinery) + if(!(L.z in GLOB.using_map.get_levels_with_trait(ZTRAIT_STATION))) + continue + + if(!prob(95)) + continue + + L.flicker(rand(2, 5)) diff --git a/code/controllers/subsystems/mapping.dm b/code/controllers/subsystems/mapping.dm index 308e954baf9..ed427bfbc3f 100644 --- a/code/controllers/subsystems/mapping.dm +++ b/code/controllers/subsystems/mapping.dm @@ -4,18 +4,29 @@ SUBSYSTEM_DEF(mapping) flags = SS_NO_FIRE var/list/map_templates = list() - var/list/random_room_templates = list() + var/list/holodeck_templates = list() /datum/controller/subsystem/mapping/Initialize(timeofday) preloadTemplates() + preloadHolodeckTemplates() return ..() /datum/controller/subsystem/mapping/Recover() flags |= SS_NO_INIT map_templates = SSmapping.map_templates + holodeck_templates = SSmapping.holodeck_templates /datum/controller/subsystem/mapping/proc/preloadTemplates(path = "maps/templates/") //see master controller setup var/list/filelist = flist(path) for(var/map in filelist) var/datum/map_template/T = new(paths = list("[path][map]"), rename = "[map]") map_templates[T.name] = T + +/datum/controller/subsystem/mapping/proc/preloadHolodeckTemplates(path = "maps/templates/") + for(var/item in subtypesof(/datum/map_template/holodeck)) + var/datum/map_template/holodeck/holodeck_type = item + if(!initial(holodeck_type.mappaths)) + continue + + var/datum/map_template/holodeck/holodeck_template = new holodeck_type() + holodeck_templates[holodeck_template.template_id] = holodeck_template diff --git a/code/controllers/subsystems/open_space.dm b/code/controllers/subsystems/open_space.dm index 17a33593803..886132721fb 100644 --- a/code/controllers/subsystems/open_space.dm +++ b/code/controllers/subsystems/open_space.dm @@ -45,8 +45,9 @@ SUBSYSTEM_DEF(open_space) if(!length(turfs_to_process)) suspend() -/datum/controller/subsystem/open_space/stat_entry() - ..("T: [length(turfs_to_process)], U: [times_updated]") +/datum/controller/subsystem/open_space/stat_entry(msg) + msg = "T: [length(turfs_to_process)], U: [times_updated]" + return ..() /datum/controller/subsystem/open_space/proc/update_turf(turf/T) for(var/atom/movable/A in T) diff --git a/code/controllers/subsystems/overlays.dm b/code/controllers/subsystems/overlays.dm index 7432585c042..c47236e0308 100644 --- a/code/controllers/subsystems/overlays.dm +++ b/code/controllers/subsystems/overlays.dm @@ -45,8 +45,9 @@ SUBSYSTEM_DEF(overlays) fire(FALSE, TRUE) -/datum/controller/subsystem/overlays/stat_entry() - ..("Queued Atoms: [length(queue)], Cache Size: [cache_size]") +/datum/controller/subsystem/overlays/stat_entry(msg) + msg = "Queued Atoms: [length(queue)], Cache Size: [cache_size]" + return ..() /datum/controller/subsystem/overlays/fire(resumed, no_mc_tick) diff --git a/code/controllers/subsystems/processing/icon_updates.dm b/code/controllers/subsystems/processing/icon_updates.dm index 135a80e589b..faebbfcc263 100644 --- a/code/controllers/subsystems/processing/icon_updates.dm +++ b/code/controllers/subsystems/processing/icon_updates.dm @@ -7,8 +7,9 @@ PROCESSING_SUBSYSTEM_DEF(icon_update) var/list/queue = list() -/datum/controller/subsystem/processing/icon_update/stat_entry() - ..("QU:[queue.len]") +/datum/controller/subsystem/processing/icon_update/stat_entry(msg) + msg = "QU:[queue.len]" + return ..() /datum/controller/subsystem/processing/icon_update/Initialize() fire(FALSE, TRUE) diff --git a/code/controllers/subsystems/processing/mobs.dm b/code/controllers/subsystems/processing/mobs.dm index d51fbaac720..982e5cdeb09 100644 --- a/code/controllers/subsystems/processing/mobs.dm +++ b/code/controllers/subsystems/processing/mobs.dm @@ -8,12 +8,15 @@ PROCESSING_SUBSYSTEM_DEF(mobs) // List of Z levels where player are var/static/list/player_levels = list() var/static/list/mob_list = list() + /// Count of mobs per type + var/static/list/mob_types = list() /datum/controller/subsystem/processing/mobs/PreInit() mob_list = processing // Simply setups a more recognizable var name than "processing" /datum/controller/subsystem/processing/mobs/fire(resumed = 0) if(!resumed) + mob_types.Cut() current_run = processing.Copy() player_levels.Cut() for(var/P in GLOB.player_list) @@ -31,6 +34,12 @@ PROCESSING_SUBSYSTEM_DEF(mobs) processing -= thing continue + var/ty = "[thing.type]" + if(!mob_types[ty]) + mob_types[ty] = 1 + else + mob_types[ty] += 1 + var/turf/T = get_turf(thing) if(thing.client || (istype(T) && (T.z in player_levels)) || thing.teleop) thing.Life() diff --git a/code/controllers/subsystems/processing/obj_tab_items.dm b/code/controllers/subsystems/processing/obj_tab_items.dm new file mode 100644 index 00000000000..4bb09613cd0 --- /dev/null +++ b/code/controllers/subsystems/processing/obj_tab_items.dm @@ -0,0 +1,26 @@ +PROCESSING_SUBSYSTEM_DEF(obj_tab_items) + name = "Obj Tab Items" + flags = SS_NO_INIT + runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT + wait = 0.1 SECONDS + +/datum/controller/subsystem/processing/obj_tab_items/fire(resumed = FALSE) + if(!resumed) + current_run = processing.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = current_run + + while(currentrun.len) + var/datum/thing = current_run[current_run.len] + + current_run.len-- + + if(QDELETED(thing)) + processing -= thing + else if(thing.Process() == PROCESS_KILL) + // fully stop so that a future START_PROCESSING will work + STOP_PROCESSING(src, thing) + + if(MC_TICK_CHECK) + return diff --git a/code/controllers/subsystems/processing/processing.dm b/code/controllers/subsystems/processing/processing.dm index 46cf71eaada..80fdc8167e6 100644 --- a/code/controllers/subsystems/processing/processing.dm +++ b/code/controllers/subsystems/processing/processing.dm @@ -13,8 +13,9 @@ SUBSYSTEM_DEF(processing) var/debug_last_thing var/debug_original_process_proc // initial() does not work with procs -/datum/controller/subsystem/processing/stat_entry() - ..("P:[processing.len]") +/datum/controller/subsystem/processing/stat_entry(msg) + msg = "P:[processing.len]" + return ..() /datum/controller/subsystem/processing/fire(resumed = 0) if (!resumed) diff --git a/code/controllers/subsystems/processing/think.dm b/code/controllers/subsystems/processing/think.dm index 5eee62af8b3..849d01c0578 100644 --- a/code/controllers/subsystems/processing/think.dm +++ b/code/controllers/subsystems/processing/think.dm @@ -12,20 +12,20 @@ SUBSYSTEM_DEF(think) var/last_group = 1 var/next_possible_run = 0 -/datum/controller/subsystem/think/stat_entry() - var/msg = "G:(" +/datum/controller/subsystem/think/stat_entry(msg) + msg = "G:(" for(var/grp in contexts_groups) msg += "[length(grp)]," - + msg += "), NR:(" for(var/next_run in next_group_run) msg += "[next_run]," - + msg += ")" - ..(msg) + return ..() /datum/controller/subsystem/think/fire(resumed = 0) if(!resumed) @@ -61,7 +61,7 @@ SUBSYSTEM_DEF(think) if(world.time >= ctx.next_think) var/last_think = world.time - ctx.callback.Invoke() + ctx.callback.Invoke(arglist(ctx.arguments)) ctx.last_think = last_think else if(next_possible_run == 0) @@ -71,7 +71,7 @@ SUBSYSTEM_DEF(think) if (MC_TICK_CHECK) return - + if(next_possible_run != 0) if(next_group_run[last_group] == 0) next_group_run[last_group] = next_possible_run diff --git a/code/controllers/subsystems/prometheus.dm b/code/controllers/subsystems/prometheus.dm new file mode 100644 index 00000000000..5e17899b593 --- /dev/null +++ b/code/controllers/subsystems/prometheus.dm @@ -0,0 +1,37 @@ +SUBSYSTEM_DEF(prometheus) + name = "Prometheus" + wait = 10 SECONDS + priority = SS_PRIORITY_PROMETHEUS + flags = SS_NO_INIT + runlevels = RUNLEVELS_ALL + +/datum/controller/subsystem/prometheus/fire(resumed = 0) + if(!config.general.prometheus_port) + return + + // Master + rustg_prom_gauge_float_set(PROM_MASTER_TICK_DRIFT, (Master.tickdrift / (world.time / world.tick_lag)) * 100, null) + + // Players + rustg_prom_gauge_int_set(PROM_TOTAL_PLAYERS, length(GLOB.player_list), null) + + // Subsystems + for(var/datum/controller/subsystem/S in Master.subsystems) + rustg_prom_gauge_float_set(PROM_SUBSYSTEM_TICK_OVERRUN, S.tick_overrun, list("name" = S.name)) + rustg_prom_gauge_float_set(PROM_SUBSYSTEM_TICKS_TO_RUN, S.ticks, list("name" = S.name)) + rustg_prom_gauge_float_set(PROM_SUBSYSTEM_TICK_USAGE, S.tick_usage, list("name" = S.name)) + rustg_prom_gauge_float_set(PROM_SUBSYSTEM_COST, S.cost / 1000, list("name" = S.name)) + + // GC + var/total_gc = 0 + + for(var/list/L in SSgarbage.queues) + total_gc += length(L) + + rustg_prom_gauge_int_set(PROM_GC_QUEUED, total_gc, null) + + // Mobs + rustg_prom_gauge_int_set(PROM_MOBS_TOTAL, length(SSmobs.mob_list), null) + + for(var/K in SSmobs.mob_types) + rustg_prom_gauge_int_set(PROM_MOBS_INSTANCE_TOTAL, SSmobs.mob_types[K], list("name" = K)) diff --git a/code/controllers/subsystems/radiation.dm b/code/controllers/subsystems/radiation.dm index b558a39eadb..ae44996267f 100644 --- a/code/controllers/subsystems/radiation.dm +++ b/code/controllers/subsystems/radiation.dm @@ -76,8 +76,9 @@ SUBSYSTEM_DEF(radiation) if (MC_TICK_CHECK) return -/datum/controller/subsystem/radiation/stat_entry() - ..("S:[sources.len]") +/datum/controller/subsystem/radiation/stat_entry(msg) + msg = "S:[sources.len]" + return ..() /// Returns Gy /datum/controller/subsystem/radiation/proc/get_total_absorbed_dose_at_turf(turf/T, weight = AVERAGE_HUMAN_WEIGHT) diff --git a/code/controllers/subsystems/radio.dm b/code/controllers/subsystems/radio.dm index 3492f973167..348fefc4b41 100644 --- a/code/controllers/subsystems/radio.dm +++ b/code/controllers/subsystems/radio.dm @@ -6,7 +6,8 @@ SUBSYSTEM_DEF(radio) var/list/frequencies = list() /datum/controller/subsystem/radio/stat_entry(msg) - ..("F:[length(frequencies)]") + msg = "F:[length(frequencies)]" + return ..() /** * Adds an object to the specified frequency with a specified filter. diff --git a/code/controllers/subsystems/shuttle.dm b/code/controllers/subsystems/shuttle.dm index 5044915067f..f3aa9bfcffd 100644 --- a/code/controllers/subsystems/shuttle.dm +++ b/code/controllers/subsystems/shuttle.dm @@ -61,5 +61,6 @@ SUBSYSTEM_DEF(shuttle) if(initial(shuttle.category) != shuttle_type) shuttle = new shuttle() -/datum/controller/subsystem/shuttle/stat_entry() - ..("S:[shuttles.len], L:[registered_shuttle_landmarks.len], Landmarks w/o Sector:[landmarks_awaiting_sector.len], Missing Landmarks:[landmarks_still_needed.len]") +/datum/controller/subsystem/shuttle/stat_entry(msg) + msg = "S:[shuttles.len], L:[registered_shuttle_landmarks.len], Landmarks w/o Sector:[landmarks_awaiting_sector.len], Missing Landmarks:[landmarks_still_needed.len]" + return ..() diff --git a/code/controllers/subsystems/statpanels.dm b/code/controllers/subsystems/statpanels.dm new file mode 100644 index 00000000000..e7f0e0ea582 --- /dev/null +++ b/code/controllers/subsystems/statpanels.dm @@ -0,0 +1,249 @@ +SUBSYSTEM_DEF(statpanels) + name = "Stat Panels" + wait = 4 + init_order = SS_INIT_STATPANELS + priority = SS_PRIORITY_STATPANELS + runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY + flags = SS_NO_INIT | SS_TICKER + + /// List of `/client` to send updates to. + var/list/client/current_run = list() + /// List of pre-generated Status tab data. + var/list/global_data + /// List of pre-generated MC tsb data. + var/list/mc_data + + ///how many subsystem fires between most tab updates + var/default_wait = 10 + ///how many subsystem fires between updates of the status tab + var/status_wait = 2 + ///how many subsystem fires between updates of the MC tab + var/mc_wait = 5 + ///how many full runs this subsystem has completed. used for variable rate refreshes. + var/num_fires = 0 + +/datum/controller/subsystem/statpanels/fire(resumed = FALSE) + if(!resumed) + num_fires++ + + global_data = list( + "Map: [GLOB.using_map?.name || "Loading..."]", + "Round ID: [game_id || "NULL"]", + "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]", + "Round Time: [roundduration2text()]", + "Station Time: [stationtime2text()]", + "Station Date: [stationdate2text()]", + "", + ) + + if(evacuation_controller.has_eta()) + var/eta_status = evacuation_controller.get_status_panel_eta() + if(length(eta_status)) + global_data += "[eta_status]" + + current_run = GLOB.clients.Copy() + mc_data = null + + var/list/currentrun = src.current_run + while(length(currentrun)) + var/client/target = currentrun[length(currentrun)] + currentrun.len-- + + if(!target.stat_panel.is_ready()) + continue + + if(target.stat_tab == "Status" && num_fires % status_wait == 0) + set_status_tab(target) + + if(!target.holder) + target.stat_panel.send_message("remove_admin_tabs") + else + target.stat_panel.send_message("update_split_admin_tabs", target.get_preference_value("SPLIT_TABS") == GLOB.PREF_YES) + + if(!("MC" in target.panel_tabs)) + target.stat_panel.send_message("add_admin_tabs") + + if(target.stat_tab == "MC" && ((num_fires % mc_wait == 0) || target.get_preference_value("FAST_REFRESH") == GLOB.PREF_YES)) + set_MC_tab(target) + + if(target.mob) + var/mob/target_mob = target.mob + + // Handle the action panels of the stat panel + + var/update_actions = FALSE + + if(target.stat_tab in target.spell_tabs) + update_actions = TRUE + + if(!length(target.spell_tabs) && (length(target_mob?.ability_master?.ability_objects) || istype(target_mob?.back, /obj/item/rig))) + update_actions = TRUE + + if(update_actions && num_fires % default_wait == 0) + set_action_tabs(target, target_mob) + + // Handle the examined turf of the stat panel, if it's been long enough, or if we've generated new images for it + var/turf/listed_turf = target_mob?.listed_turf + if(listed_turf && num_fires % default_wait == 0) + if(target.stat_tab == listed_turf.name || !(listed_turf.name in target.panel_tabs)) + set_turf_examine_tab(target, target_mob) + + if(MC_TICK_CHECK) + return + +/datum/controller/subsystem/statpanels/proc/set_status_tab(client/target) + if(!global_data)//statbrowser hasnt fired yet and we were called from immediate_send_stat_data() + return + + target.stat_panel.send_message("update_stat", list( + "global_data" = global_data, + "other_str" = target.mob?.get_status_tab_items(), + )) + +/datum/controller/subsystem/statpanels/proc/set_MC_tab(client/target) + var/turf/eye_turf = get_turf(target.eye) + var/coord_entry = isnull(eye_turf) ? "unknown location" : "([eye_turf.x], [eye_turf.y], [eye_turf.z]) [eye_turf]" + if(!mc_data) + generate_mc_data() + target.stat_panel.send_message("update_mc", list("mc_data" = mc_data, "coord_entry" = coord_entry)) + +/// Set up the various action tabs. +/datum/controller/subsystem/statpanels/proc/set_action_tabs(client/target, mob/target_mob) + var/list/actions = target_mob.get_actions_for_statpanel() + target.spell_tabs.Cut() + + for(var/action_data in actions) + target.spell_tabs |= action_data[1] + + target.stat_panel.send_message("update_spells", list(spell_tabs = target.spell_tabs, actions = actions)) + +/datum/controller/subsystem/statpanels/proc/set_turf_examine_tab(client/target, mob/target_mob) + var/list/overrides = list() + for(var/image/target_image as anything in target.images) + if(!target_image.loc || target_image.loc.loc != target_mob.listed_turf || !target_image.override) + continue + + overrides += target_image.loc + + var/list/atoms_to_display = list(target_mob.listed_turf) + for(var/atom/movable/turf_content as anything in target_mob.listed_turf) + if(!turf_content.mouse_opacity) + continue + + if(turf_content.invisibility > target_mob.see_invisible) + continue + + if(turf_content in overrides) + continue + + atoms_to_display += turf_content + + /// Set the atoms we're meant to display + var/datum/object_window_info/obj_window = target.obj_window + obj_window.atoms_to_show = atoms_to_display + START_PROCESSING(SSobj_tab_items, obj_window) + refresh_client_obj_view(target) + +/datum/controller/subsystem/statpanels/proc/refresh_client_obj_view(client/refresh) + var/list/turf_items = return_object_images(refresh) + if(!length(turf_items) || isnull(refresh.mob?.listed_turf)) + return + + refresh.stat_panel.send_message("update_listedturf", turf_items) + +#define OBJ_IMAGE_LOADING "statpanels obj loading temporary" + +/** + * Returns a list of generated images in format `list(list(object_name, object_ref, loaded_image), ...)`, + * handles queueing generation to `/object_window_info`. + */ +/datum/controller/subsystem/statpanels/proc/return_object_images(client/load_from) + // You might be inclined to think that this is a waste of cpu time, since we + // A: Double iterate over atoms in the build case, or + // B: Generate these lists over and over in the refresh case + // It's really not very hot. The hot portion of this code is genuinely mostly in the image generation + // So it's ok to pay a performance cost for cleanliness here + + // No turf? go away + if(!load_from.mob?.listed_turf) + return list() + + var/datum/object_window_info/obj_window = load_from.obj_window + var/list/already_seen = obj_window.atoms_to_images + var/list/to_make = obj_window.atoms_to_imagify + var/list/turf_items = list() + for(var/atom/turf_item as anything in obj_window.atoms_to_show) + // First, we fill up the list of refs to display + // If we already have one, just use that + var/existing_image = already_seen[turf_item] + if(existing_image == OBJ_IMAGE_LOADING) + continue + + // We already have it. Success! + if(existing_image) + turf_items[++turf_items.len] = list("[turf_item.name]", ref(turf_item), existing_image) + continue + + // Now, we're gonna queue image generation out of those refs + to_make += turf_item + already_seen[turf_item] = OBJ_IMAGE_LOADING + obj_window.register_signal(turf_item, SIGNAL_QDELETING, nameof(/datum/object_window_info.proc/viewing_atom_deleted)) // we reset cache if anything in it gets deleted + + return turf_items + +#undef OBJ_IMAGE_LOADING + +/datum/controller/subsystem/statpanels/proc/generate_mc_data() + mc_data = list( + list("CPU:", world.cpu), + list("Instances:", "[num2text(world.contents.len, 10)]"), + list("World Time:", "[world.time]"), + list("Globals:", GLOB.stat_entry(), ref(GLOB)), + list("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%))"), + list("Master Controller:", Master?.stat_entry() || "ERROR", ref(Master)), + list("Failsafe Controller:", Failsafe?.stat_entry() || "ERROR", ref(Failsafe)), + list("","") + ) + for(var/datum/controller/subsystem/sub_system as anything in Master.subsystems) + mc_data[++mc_data.len] = list("\[[sub_system.state_letter()]][sub_system.name]", sub_system.stat_entry(), ref(sub_system)) + +/// Immediately updates the active statpanel tab of the target client. +/datum/controller/subsystem/statpanels/proc/immediate_send_stat_data(client/target) + if(!target.stat_panel.is_ready()) + return FALSE + + if(target.stat_tab == "Status") + set_status_tab(target) + return TRUE + + var/mob/target_mob = target.mob + + // Handle actions + + var/update_actions = FALSE + if(target.stat_tab in target.spell_tabs) + update_actions = TRUE + + if(!length(target.spell_tabs) && (length(target_mob?.ability_master?.ability_objects) || istype(target_mob?.back, /obj/item/rig))) + update_actions = TRUE + + if(update_actions) + set_action_tabs(target, target_mob) + return TRUE + + // Handle turfs + + if(target_mob?.listed_turf) + if(!target_mob.TurfAdjacent(target_mob.listed_turf)) + target_mob.set_listed_turf(null) + + else if(target.stat_tab == target_mob?.listed_turf.name || !(target_mob?.listed_turf.name in target.panel_tabs)) + set_turf_examine_tab(target, target_mob) + return TRUE + + if(!target.holder) + return FALSE + + if(target.stat_tab == "MC") + set_MC_tab(target) + return TRUE diff --git a/code/controllers/subsystems/sun.dm b/code/controllers/subsystems/sun.dm index 181b8ad1964..0d3e6651870 100644 --- a/code/controllers/subsystems/sun.dm +++ b/code/controllers/subsystems/sun.dm @@ -7,5 +7,6 @@ SUBSYSTEM_DEF(sun) /datum/controller/subsystem/sun/fire() GLOB.sun.calc_position() -/datum/controller/subsystem/sun/stat_entry() - ..("Angle:[GLOB.sun.angle]") +/datum/controller/subsystem/sun/stat_entry(msg) + msg = "Angle:[GLOB.sun.angle]" + return ..() diff --git a/code/controllers/subsystems/supply.dm b/code/controllers/subsystems/supply.dm index 6ab338d4695..c9f89ad5492 100644 --- a/code/controllers/subsystems/supply.dm +++ b/code/controllers/subsystems/supply.dm @@ -56,8 +56,9 @@ SUBSYSTEM_DEF(supply) /datum/controller/subsystem/supply/fire() add_points_from_source(points_per_process, "time") -/datum/controller/subsystem/supply/stat_entry() - ..("Points: [points]") +/datum/controller/subsystem/supply/stat_entry(msg) + msg = "Points: [points]" + return ..() //Supply-related helper procs. diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm index 0c97fcb7222..6d128b34137 100644 --- a/code/controllers/subsystems/ticker.dm +++ b/code/controllers/subsystems/ticker.dm @@ -27,6 +27,11 @@ SUBSYSTEM_DEF(ticker) var/list/antag_pool = list() var/looking_for_antags = 0 + /// Amount of new players in lobby during roundstart, used in stat panel. + var/total_players + /// Amount of ready new players in lobby during roundstart, used in stat panel. + var/total_players_ready + var/pregame_timeleft var/restart_timeout @@ -50,8 +55,18 @@ SUBSYSTEM_DEF(ticker) post_game_tick() /datum/controller/subsystem/ticker/proc/pregame_tick() + total_players = 0 + total_players_ready = 0 + + for(var/mob/new_player/player in GLOB.player_list) + total_players++ + + if(player.ready) + total_players_ready++ + if(round_progressing && last_fire) pregame_timeleft -= world.time - last_fire + if(pregame_timeleft <= 0 || auto_start) pregame_timeleft = 0 Master.SetRunLevel(RUNLEVEL_SETUP) @@ -173,30 +188,32 @@ SUBSYSTEM_DEF(ticker) log_error("Ticker arrived at round end in an unexpected endgame state.") -/datum/controller/subsystem/ticker/stat_entry() +/datum/controller/subsystem/ticker/stat_entry(msg) switch(GAME_STATE) if(RUNLEVEL_LOBBY) - ..("[round_progressing ? "START:[round(pregame_timeleft/10)]s" : "(PAUSED)"]") + msg = "[round_progressing ? "START:[round(pregame_timeleft/10)]s" : "(PAUSED)"]" if(RUNLEVEL_SETUP) - ..("SETUP") + msg = "SETUP" if(RUNLEVEL_GAME) - ..("GAME") + msg = "GAME" if(RUNLEVEL_POSTGAME) switch(end_game_state) if(END_GAME_NOT_OVER) - ..("ENDGAME ERROR") + msg = "ENDGAME ERROR" if(END_GAME_AWAITING_MAP) - ..("MAP VOTE") + msg = "MAP VOTE" if(END_GAME_MODE_FINISH_DONE) - ..("MODE OVER, WAITING") + msg = "MODE OVER, WAITING" if(END_GAME_READY_TO_END) - ..("ENDGAME PROCESSING") + msg = "ENDGAME PROCESSING" if(END_GAME_DELAYED) - ..("PAUSED") + msg = "PAUSED" if(END_GAME_AWAITING_TICKETS) - ..("AWAITING TICKETS") + msg = "AWAITING TICKETS" if(END_GAME_ENDING) - ..("END IN [round(restart_timeout/10)]s") + msg = "END IN [round(restart_timeout/10)]s" + + return ..() /datum/controller/subsystem/ticker/Recover() pregame_timeleft = SSticker.pregame_timeleft diff --git a/code/controllers/subsystems/timer.dm b/code/controllers/subsystems/timer.dm deleted file mode 100644 index df94d879763..00000000000 --- a/code/controllers/subsystems/timer.dm +++ /dev/null @@ -1,662 +0,0 @@ -#define SHORT_REAL_LIMIT 16777216 -/// Controls how many buckets should be kept, each representing a tick. (1 minutes worth) -#define BUCKET_LEN (world.fps*1*60) -/// Helper for getting the correct bucket for a given timer -#define BUCKET_POS(timer) (((round((timer.timeToRun - timer.timer_subsystem.head_offset) / world.tick_lag)+1) % BUCKET_LEN)||BUCKET_LEN) -/// Gets the maximum time at which timers will be invoked from buckets, used for deferring to secondary queue -#define TIMER_MAX(timer_ss) (timer_ss.head_offset + TICKS2DS(BUCKET_LEN + timer_ss.practical_offset - 1)) -/// Max float with integer precision -#define TIMER_ID_MAX (2**24) - -/** - * # Timer Subsystem - * - * Handles creation, callbacks, and destruction of timed events. - * - * It is important to understand the buckets used in the timer subsystem are just a series of doubly-linked - * lists. The object at a given index in bucket_list is a /datum/timedevent, the head of a list, which has prev - * and next references for the respective elements in that bucket's list. - */ -SUBSYSTEM_DEF(timer) - name = "Timer" - wait = 1 //SS_TICKER subsystem, so wait is in ticks - init_order = 1 - - flags = SS_TICKER|SS_NO_INIT - - /// Queue used for storing timers that do not fit into the current buckets - var/list/datum/timedevent/second_queue = list() - /// A hashlist dictionary used for storing unique timers - var/list/hashes = list() - /// world.time of the first entry in the bucket list, effectively the 'start time' of the current buckets - var/head_offset = 0 - /// Index of the wrap around pivot for buckets. buckets before this are later running buckets wrapped around from the end of the bucket list. - var/practical_offset = 1 - /// world.tick_lag the bucket was designed for - var/bucket_resolution = 0 - /// How many timers are in the buckets - var/bucket_count = 0 - /// List of buckets, each bucket holds every timer that has to run that byond tick - var/list/bucket_list = list() - /// List of all active timers associated to their timer ID (for easy lookup) - var/list/timer_id_dict = list() - /// Special timers that run in real-time, not BYOND time; these are more expensive to run and maintain - var/list/clienttime_timers = list() - /// Contains the last time that a timer's callback was invoked, or the last tick the SS fired if no timers are being processed - var/last_invoke_tick = 0 - /// Keeps track of the next index to work on for client timers - var/next_clienttime_timer_index = 0 - /// Contains the last time that a warning was issued for not invoking callbacks - var/static/last_invoke_warning = 0 - /// Boolean operator controlling if the timer SS will automatically reset buckets if it fails to invoke callbacks for an extended period of time - var/static/bucket_auto_reset = TRUE - /// How many times bucket was reset - var/bucket_reset_count = 0 - -/datum/controller/subsystem/timer/PreInit() - bucket_list.len = BUCKET_LEN - head_offset = world.time - bucket_resolution = world.tick_lag - -/datum/controller/subsystem/timer/stat_entry(msg) - msg = "B:[bucket_count] P:[length(second_queue)] H:[length(hashes)] C:[length(clienttime_timers)] S:[length(timer_id_dict)] RST:[bucket_reset_count]" - return ..() - -/datum/controller/subsystem/timer/proc/dump_timer_buckets(full = TRUE) - var/list/to_log = list("Timer bucket reset. world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]") - if (full) - for (var/i in 1 to length(bucket_list)) - var/datum/timedevent/bucket_head = bucket_list[i] - if (!bucket_head) - continue - - to_log += "Active timers at index [i]:" - var/datum/timedevent/bucket_node = bucket_head - var/anti_loop_check = 1 - do - to_log += get_timer_debug_string(bucket_node) - bucket_node = bucket_node.next - anti_loop_check-- - while(bucket_node && bucket_node != bucket_head && anti_loop_check) - - to_log += "Active timers in the second_queue queue:" - for(var/I in second_queue) - to_log += get_timer_debug_string(I) - - // Dump all the logged data to the world log - log_to_dd(to_log.Join("\n")) - -/datum/controller/subsystem/timer/fire(resumed = FALSE) - // Store local references to datum vars as it is faster to access them - var/lit = last_invoke_tick - var/list/bucket_list = src.bucket_list - var/last_check = world.time - TICKS2DS(BUCKET_LEN * 1.5) - - // If there are no timers being tracked, then consider now to be the last invoked time - if(!bucket_count) - last_invoke_tick = world.time - - // Check that we have invoked a callback in the last 1.5 minutes of BYOND time, - // and throw a warning and reset buckets if this is true - if(lit && lit < last_check && head_offset < last_check && last_invoke_warning < last_check) - last_invoke_warning = world.time - var/msg = "No regular timers processed in the last [BUCKET_LEN * 1.5] ticks[bucket_auto_reset ? ", resetting buckets" : ""]!" - message_admins(msg) - WARNING(msg) - if(bucket_auto_reset) - bucket_resolution = 0 - dump_timer_buckets(TRUE) - - // Process client-time timers - if (next_clienttime_timer_index) - clienttime_timers.Cut(1, next_clienttime_timer_index+1) - next_clienttime_timer_index = 0 - for (next_clienttime_timer_index in 1 to length(clienttime_timers)) - if (MC_TICK_CHECK) - next_clienttime_timer_index-- - break - var/datum/timedevent/ctime_timer = clienttime_timers[next_clienttime_timer_index] - if (ctime_timer.timeToRun > REALTIMEOFDAY) - next_clienttime_timer_index-- - break - - var/datum/callback/callBack = ctime_timer.callBack - if (!callBack) - CRASH("Invalid timer: [get_timer_debug_string(ctime_timer)] world.time: [world.time], \ - head_offset: [head_offset], practical_offset: [practical_offset], REALTIMEOFDAY: [REALTIMEOFDAY]") - - ctime_timer.spent = REALTIMEOFDAY - callBack.InvokeAsync() - - if(ctime_timer.flags & TIMER_LOOP) - ctime_timer.spent = 0 - ctime_timer.timeToRun = REALTIMEOFDAY + ctime_timer.wait - BINARY_INSERT(ctime_timer, clienttime_timers, /datum/timedevent, ctime_timer, timeToRun, COMPARE_KEY) - else - qdel(ctime_timer) - - // Remove invoked client-time timers - if (next_clienttime_timer_index) - clienttime_timers.Cut(1, next_clienttime_timer_index+1) - next_clienttime_timer_index = 0 - - // Check for when we need to loop the buckets, this occurs when - // the head_offset is approaching BUCKET_LEN ticks in the past - if (practical_offset > BUCKET_LEN) - head_offset += TICKS2DS(BUCKET_LEN) - practical_offset = 1 - resumed = FALSE - - // Check for when we have to reset buckets, typically from auto-reset - if ((length(bucket_list) != BUCKET_LEN) || (world.tick_lag != bucket_resolution)) - reset_buckets() - bucket_list = src.bucket_list - resumed = FALSE - - - // Iterate through each bucket starting from the practical offset - while (practical_offset <= BUCKET_LEN && head_offset + ((practical_offset - 1) * world.tick_lag) <= world.time) - var/datum/timedevent/timer - while ((timer = bucket_list[practical_offset])) - var/datum/callback/callBack = timer.callBack - if (!callBack) - util_crash_with("Invalid timer: [get_timer_debug_string(timer)] world.time: [world.time], \ - head_offset: [head_offset], practical_offset: [practical_offset], bucket_joined: [timer.bucket_joined]") - if (!timer.spent) - bucket_resolution = null // force bucket recreation - return - - timer.bucketEject() //pop the timer off of the bucket list. - - // Invoke callback if possible - if (!timer.spent) - timer.spent = world.time - callBack.InvokeAsync() - last_invoke_tick = world.time - - if (timer.flags & TIMER_LOOP) // Prepare looping timers to re-enter the queue - timer.spent = 0 - timer.timeToRun = world.time + timer.wait - timer.bucketJoin() - else - qdel(timer) - - if (MC_TICK_CHECK) - break - - if (!bucket_list[practical_offset]) - // Empty the bucket, check if anything in the secondary queue should be shifted to this bucket - bucket_list[practical_offset] = null // Just in case - practical_offset++ - var/i = 0 - for (i in 1 to length(second_queue)) - timer = second_queue[i] - if (timer.timeToRun >= TIMER_MAX(src)) - i-- - break - - // Check for timers that are scheduled to run in the past - if (timer.timeToRun < head_offset) - bucket_resolution = null // force bucket recreation - util_crash_with("[i] Invalid timer state: Timer in long run queue with a time to run less then head_offset. \ - [get_timer_debug_string(timer)] world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]") - break - - // Check for timers that are not capable of being scheduled to run without rebuilding buckets - if (timer.timeToRun < head_offset + TICKS2DS(practical_offset - 1)) - bucket_resolution = null // force bucket recreation - util_crash_with("[i] Invalid timer state: Timer in long run queue that would require a backtrack to transfer to \ - short run queue. [get_timer_debug_string(timer)] world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]") - break - - timer.bucketJoin() - if (i) - second_queue.Cut(1, i+1) - if (MC_TICK_CHECK) - break - -/** - * Generates a string with details about the timed event for debugging purposes - */ -/datum/controller/subsystem/timer/proc/get_timer_debug_string(datum/timedevent/TE) - . = "Timer: [TE]" - . += "Prev: [TE.prev ? TE.prev : "NULL"], Next: [TE.next ? TE.next : "NULL"]" - if(TE.spent) - . += ", SPENT([TE.spent])" - if(QDELETED(TE)) - . += ", QDELETED" - if(!TE.callBack) - . += ", NO CALLBACK" - -/** - * Destroys the existing buckets and creates new buckets from the existing timed events - */ -/datum/controller/subsystem/timer/proc/reset_buckets() - WARNING("Timer buckets has been reset, this may cause timer to lag") - bucket_reset_count++ - - var/list/bucket_list = src.bucket_list // Store local reference to datum var, this is faster - var/list/alltimers = list() - - // Get all timers currently in the buckets - for (var/bucket_head in bucket_list) - if (!bucket_head) // if bucket is empty for this tick - continue - var/datum/timedevent/bucket_node = bucket_head - do - alltimers += bucket_node - bucket_node = bucket_node.next - while(bucket_node && bucket_node != bucket_head) - - // Empty the list by zeroing and re-assigning the length - bucket_list.len = 0 - bucket_list.len = BUCKET_LEN - - // Reset values for the subsystem to their initial values - practical_offset = 1 - bucket_count = 0 - head_offset = world.time - bucket_resolution = world.tick_lag - - // Add all timed events from the secondary queue as well - alltimers += second_queue - - for (var/datum/timedevent/t as anything in alltimers) - t.timer_subsystem = src // Recovered timers need to be reparented - t.bucket_joined = FALSE - t.bucket_pos = -1 - t.prev = null - t.next = null - - // If there are no timers being tracked by the subsystem, - // there is no need to do any further rebuilding - if (!length(alltimers)) - return - - // Sort all timers by time to run - sortTim(alltimers, /proc/cmp_timer) - - // Get the earliest timer, and if the TTR is earlier than the current world.time, - // then set the head offset appropriately to be the earliest time tracked by the - // current set of buckets - var/datum/timedevent/head = alltimers[1] - if (head.timeToRun < head_offset) - head_offset = head.timeToRun - - // Iterate through each timed event and insert it into an appropriate bucket, - // up unto the point that we can no longer insert into buckets as the TTR - // is outside the range we are tracking, then insert the remainder into the - // secondary queue - var/new_bucket_count - var/i = 1 - for (i in 1 to length(alltimers)) - var/datum/timedevent/timer = alltimers[i] - if (!timer) - continue - - // Check that the TTR is within the range covered by buckets, when exceeded we've finished - if (timer.timeToRun >= TIMER_MAX(src)) - i-- - break - - // Check that timer has a valid callback and hasn't been invoked - if (!timer.callBack || timer.spent) - WARNING("Invalid timer: [get_timer_debug_string(timer)] world.time: [world.time], \ - head_offset: [head_offset], practical_offset: [practical_offset]") - if (timer.callBack) - qdel(timer) - continue - - // Insert the timer into the bucket, and perform necessary doubly-linked list operations - new_bucket_count++ - var/bucket_pos = BUCKET_POS(timer) - timer.bucket_pos = bucket_pos - timer.bucket_joined = TRUE - - var/datum/timedevent/bucket_head = bucket_list[bucket_pos] - if (!bucket_head) - bucket_list[bucket_pos] = timer - timer.next = null - timer.prev = null - continue - - bucket_head.prev = timer - timer.next = bucket_head - timer.prev = null - bucket_list[bucket_pos] = timer - - // Cut the timers that are tracked by the buckets from the secondary queue - if (i) - alltimers.Cut(1, i + 1) - second_queue = alltimers - bucket_count = new_bucket_count - - -/datum/controller/subsystem/timer/Recover() - // Find the current timer sub-subsystem in global and recover its buckets etc - var/datum/controller/subsystem/timer/timerSS = null - for(var/global_var in global.vars) - if (istype(global.vars[global_var],src.type)) - timerSS = global.vars[global_var] - - hashes = timerSS.hashes - timer_id_dict = timerSS.timer_id_dict - - bucket_list = timerSS.bucket_list - second_queue = timerSS.second_queue - - // The buckets are FUBAR - reset_buckets() - -/** - * # Timed Event - * - * This is the actual timer, it contains the callback and necessary data to maintain - * the timer. - * - * See the documentation for the timer subsystem for an explanation of the buckets referenced - * below in next and prev - */ -/datum/timedevent - /// ID used for timers when the TIMER_STOPPABLE flag is present - var/id - /// The callback to invoke after the timer completes - var/datum/callback/callBack - /// The time at which the callback should be invoked at - var/timeToRun - /// The length of the timer - var/wait - /// Unique hash generated when TIMER_UNIQUE flag is present - var/hash - /// The source of the timedevent, whatever called addtimer - var/source - /// Flags associated with the timer, see _DEFINES/subsystems.dm - var/list/flags - /// Time at which the timer was invoked or destroyed - var/spent = 0 - /// An informative name generated for the timer as its representation in strings, useful for debugging - var/name - /// Next timed event in the bucket - var/datum/timedevent/next - /// Previous timed event in the bucket - var/datum/timedevent/prev - /// The timer subsystem this event is associated with - var/datum/controller/subsystem/timer/timer_subsystem - /// Boolean indicating if timer joined into bucket - var/bucket_joined = FALSE - /// Initial bucket position - var/bucket_pos = -1 - -/datum/timedevent/New(datum/callback/callBack, wait, flags, datum/controller/subsystem/timer/timer_subsystem, hash, source) - var/static/nextid = 1 - id = TIMER_ID_NULL - src.callBack = callBack - src.wait = wait - src.flags = flags - src.hash = hash - src.source = source - src.timer_subsystem = timer_subsystem || SStimer - - // Determine time at which the timer's callback should be invoked - timeToRun = (flags & TIMER_CLIENT_TIME ? REALTIMEOFDAY : world.time) + wait - - // Include the timer in the hash table if the timer is unique - if (flags & TIMER_UNIQUE) - timer_subsystem.hashes[hash] = src - - // Generate ID for the timer if the timer is stoppable, include in the timer id dictionary - if (flags & TIMER_STOPPABLE) - id = num2text(nextid, 100) - if (nextid >= SHORT_REAL_LIMIT) - nextid += min(1, 2 ** round(nextid / SHORT_REAL_LIMIT)) - else - nextid++ - timer_subsystem.timer_id_dict[id] = src - - if ((timeToRun < world.time || timeToRun < timer_subsystem.head_offset) && !(flags & TIMER_CLIENT_TIME)) - CRASH("Invalid timer state: Timer created that would require a backtrack to run (addtimer would never let this happen): [SStimer.get_timer_debug_string(src)]") - - if (callBack.object != GLOBAL_PROC && !QDESTROYING(callBack.object)) - LAZYADD(callBack.object.active_timers, src) - - bucketJoin() - -/datum/timedevent/Destroy() - ..() - if (flags & TIMER_UNIQUE && hash) - timer_subsystem.hashes -= hash - - if (callBack && callBack.object && callBack.object != GLOBAL_PROC && callBack.object.active_timers) - callBack.object.active_timers -= src - UNSETEMPTY(callBack.object.active_timers) - - callBack = null - - if (flags & TIMER_STOPPABLE) - timer_subsystem.timer_id_dict -= id - - if (flags & TIMER_CLIENT_TIME) - if (!spent) - spent = world.time - timer_subsystem.clienttime_timers -= src - return QDEL_HINT_IWILLGC - - if (!spent) - spent = world.time - bucketEject() - else - if (prev && prev.next == src) - prev.next = next - if (next && next.prev == src) - next.prev = prev - next = null - prev = null - return QDEL_HINT_IWILLGC - -/** - * Removes this timed event from any relevant buckets, or the secondary queue - */ -/datum/timedevent/proc/bucketEject() - // Store local references for the bucket list and secondary queue - // This is faster than referencing them from the datum itself - var/list/bucket_list = timer_subsystem.bucket_list - var/list/second_queue = timer_subsystem.second_queue - - // Attempt to get the head of the bucket - var/datum/timedevent/buckethead - if(bucket_pos > 0) - buckethead = bucket_list[bucket_pos] - - // Decrement the number of timers in buckets if the timed event is - // the head of the bucket, or has a TTR less than TIMER_MAX implying it fits - // into an existing bucket, or is otherwise not present in the secondary queue - if(buckethead == src) - bucket_list[bucket_pos] = next - timer_subsystem.bucket_count-- - else if(bucket_joined) - timer_subsystem.bucket_count-- - else - var/l = length(second_queue) - second_queue -= src - if(l == length(second_queue)) - timer_subsystem.bucket_count-- - - // Remove the timed event from the bucket, ensuring to maintain - // the integrity of the bucket's list if relevant - if (prev && prev.next == src) - prev.next = next - if (next && next.prev == src) - next.prev = prev - prev = next = null - bucket_pos = -1 - bucket_joined = FALSE - -/** - * Attempts to add this timed event to a bucket, will enter the secondary queue - * if there are no appropriate buckets at this time. - * - * Secondary queueing of timed events will occur when the timespan covered by the existing - * buckets is exceeded by the time at which this timed event is scheduled to be invoked. - * If the timed event is tracking client time, it will be added to a special bucket. - */ -/datum/timedevent/proc/bucketJoin() - // Generate debug-friendly name for timer - var/static/list/bitfield_flags = list("TIMER_UNIQUE", "TIMER_OVERRIDE", "TIMER_CLIENT_TIME", "TIMER_STOPPABLE", "TIMER_NO_HASH_WAIT", "TIMER_LOOP") - name = "Timer: [id] (\ref[src]), TTR: [timeToRun], wait:[wait] Flags: [jointext(bitfield2list(flags, bitfield_flags), ", ")], \ - callBack: \ref[callBack], callBack.object: [callBack.object]\ref[callBack.object]([getcallingtype()]), \ - callBack.delegate:[callBack.delegate]([callBack.arguments ? callBack.arguments.Join(", ") : ""]), source: [source]" - - if (bucket_joined) - util_crash_with("Bucket already joined! [name]") - - // Check if this timed event should be diverted to the client time bucket, or the secondary queue - var/list/L - if (flags & TIMER_CLIENT_TIME) - L = timer_subsystem.clienttime_timers - else if (timeToRun >= TIMER_MAX(timer_subsystem)) - L = timer_subsystem.second_queue - if(L) - BINARY_INSERT(src, L, /datum/timedevent, src, timeToRun, COMPARE_KEY) - return - - // Get a local reference to the bucket list, this is faster than referencing the datum - var/list/bucket_list = timer_subsystem.bucket_list - - // Find the correct bucket for this timed event - bucket_pos = BUCKET_POS(src) - - if (bucket_pos < timer_subsystem.practical_offset && timeToRun < (timer_subsystem.head_offset + TICKS2DS(BUCKET_LEN))) - WARNING("Bucket pos in past: bucket_pos = [bucket_pos] < practical_offset = [timer_subsystem.practical_offset] \ - && timeToRun = [timeToRun] < [timer_subsystem.head_offset + TICKS2DS(BUCKET_LEN)], Timer: [name]") - bucket_pos = timer_subsystem.practical_offset // Recover bucket_pos to avoid timer blocking queue - - var/datum/timedevent/bucket_head = bucket_list[bucket_pos] - timer_subsystem.bucket_count++ - - // If there is no timed event at this position, then the bucket is 'empty' - // and we can just set this event to that position - if (!bucket_head) - bucket_joined = TRUE - bucket_list[bucket_pos] = src - return - - // Otherwise, we merely add this timed event into the bucket, which is a - // doubly-linked list - bucket_joined = TRUE - bucket_head.prev = src - next = bucket_head - prev = null - bucket_list[bucket_pos] = src - -/** - * Returns a string of the type of the callback for this timer - */ -/datum/timedevent/proc/getcallingtype() - . = "ERROR" - if (callBack.object == GLOBAL_PROC) - . = "GLOBAL_PROC" - else - . = "[callBack.object.type]" - -/** - * Create a new timer and insert it in the queue. - * You should not call this directly, and should instead use the addtimer macro, which includes source information. - * - * Arguments: - * * callback the callback to call on timer finish - * * wait deciseconds to run the timer for - * * flags flags for this timer, see: code\__DEFINES\subsystems.dm - */ -/proc/_addtimer(datum/callback/callback, wait = 0, flags = 0, datum/controller/subsystem/timer/timer_subsystem, file, line) - if (!callback) - CRASH("addtimer called without a callback") - - if (wait < 0) - util_crash_with("addtimer called with a negative wait. Converting to [world.tick_lag]") - - if (callback.object != GLOBAL_PROC && QDELETED(callback.object) && !QDESTROYING(callback.object)) - util_crash_with("addtimer called with a callback assigned to a qdeleted object. In the future such timers will not \ - be supported and may refuse to run or run with a 0 wait") - - wait = max(CEILING(wait, world.tick_lag), world.tick_lag) - - if(wait >= INFINITY) - CRASH("Attempted to create timer with INFINITY delay") - - timer_subsystem = timer_subsystem || SStimer - - // Generate hash if relevant for timed events with the TIMER_UNIQUE flag - var/hash - if (flags & TIMER_UNIQUE) - var/list/hashlist = list(callback.object, "(\ref[callback.object])", callback.delegate, flags & TIMER_CLIENT_TIME) - if(!(flags & TIMER_NO_HASH_WAIT)) - hashlist += wait - hashlist += callback.arguments - hash = hashlist.Join("|||||||") - - var/datum/timedevent/hash_timer = timer_subsystem.hashes[hash] - if(hash_timer) - if (hash_timer.spent) // it's pending deletion, pretend it doesn't exist. - hash_timer.hash = null // but keep it from accidentally deleting us - else - if (flags & TIMER_OVERRIDE) - hash_timer.hash = null // no need having it delete it's hash if we are going to replace it - qdel(hash_timer) - else - if (hash_timer.flags & TIMER_STOPPABLE) - . = hash_timer.id - return - else if(flags & TIMER_OVERRIDE) - util_crash_with("TIMER_OVERRIDE used without TIMER_UNIQUE") - - var/datum/timedevent/timer = new(callback, wait, flags, timer_subsystem, hash, file && "[file]:[line]") - return timer.id - -/** - * Delete a timer - * - * Arguments: - * * id a timerid or a /datum/timedevent - */ -/proc/deltimer(id, datum/controller/subsystem/timer/timer_subsystem) - if (!id) - return FALSE - if (id == TIMER_ID_NULL) - CRASH("Tried to delete a null timerid. Use TIMER_STOPPABLE flag") - if (istype(id, /datum/timedevent)) - qdel(id) - return TRUE - timer_subsystem = timer_subsystem || SStimer - //id is string - var/datum/timedevent/timer = timer_subsystem.timer_id_dict[id] - if (timer && (!timer.spent || timer.flags & TIMER_DELETE_ME)) - qdel(timer) - return TRUE - return FALSE - -/** - * Get the remaining deciseconds on a timer - * - * Arguments: - * * id a timerid or a /datum/timedevent - */ -/proc/timeleft(id, datum/controller/subsystem/timer/timer_subsystem) - if (!id) - return null - if (id == TIMER_ID_NULL) - CRASH("Tried to get timeleft of a null timerid. Use TIMER_STOPPABLE flag") - if (istype(id, /datum/timedevent)) - var/datum/timedevent/timer = id - return timer.timeToRun - world.time - timer_subsystem = timer_subsystem || SStimer - //id is string - var/datum/timedevent/timer = timer_subsystem.timer_id_dict[id] - if(!timer || timer.spent) - return null - return timer.timeToRun - (timer.flags & TIMER_CLIENT_TIME ? REALTIMEOFDAY : world.time) - -#undef BUCKET_LEN -#undef BUCKET_POS -#undef TIMER_MAX -#undef TIMER_ID_MAX -#undef SHORT_REAL_LIMIT diff --git a/code/controllers/subsystems/trade.dm b/code/controllers/subsystems/trade.dm index 76111399284..80c45e212ee 100644 --- a/code/controllers/subsystems/trade.dm +++ b/code/controllers/subsystems/trade.dm @@ -29,8 +29,9 @@ SUBSYSTEM_DEF(trade) if(prob(100-traders.len*10)) generate_trader() -/datum/controller/subsystem/trade/stat_entry() - ..("Traders: [traders.len]") +/datum/controller/subsystem/trade/stat_entry(msg) + msg = "Traders: [traders.len]" + return ..() /datum/controller/subsystem/trade/proc/generate_trader(stations = 0) var/list/possible = list() diff --git a/code/controllers/subsystems/virus.dm b/code/controllers/subsystems/virus.dm index d5bcb974d47..08b1647271d 100644 --- a/code/controllers/subsystems/virus.dm +++ b/code/controllers/subsystems/virus.dm @@ -7,8 +7,9 @@ SUBSYSTEM_DEF(virus) var/list/viruses_life = list() // Queue of viruses to life var/position = 1 // Helper index to order newly activated viruses properly -/datum/controller/subsystem/virus/stat_entry() - ..("C:[viruses_life.len]") +/datum/controller/subsystem/virus/stat_entry(msg) + msg = "C:[viruses_life.len]" + return ..() /datum/controller/subsystem/virus/fire(resumed = FALSE) if(paused_ticks >= 10) // The likeliest fail mode, due to the fast tick rate, is that it can never clear the full queue, running resumed every tick and accumulating a backlog. diff --git a/code/controllers/subsystems/wireless.dm b/code/controllers/subsystems/wireless.dm index 05a97bcbcdc..b715c7d3cbb 100644 --- a/code/controllers/subsystems/wireless.dm +++ b/code/controllers/subsystems/wireless.dm @@ -31,8 +31,9 @@ SUBSYSTEM_DEF(wireless) /datum/controller/subsystem/wireless/proc/add_request(datum/connection_request/C) pending_connections += C -/datum/controller/subsystem/wireless/stat_entry() - ..("RL:[receiver_list.len]|PC:[pending_connections.len]|RC:[retry_connections.len]|FC:[failed_connections.len]") +/datum/controller/subsystem/wireless/stat_entry(msg) + msg = "RL:[receiver_list.len]|PC:[pending_connections.len]|RC:[retry_connections.len]|FC:[failed_connections.len]" + return ..() /datum/controller/subsystem/wireless/Recover() if (istype(SSwireless.receiver_list)) diff --git a/code/datums/ai/ai_holo.dm b/code/datums/ai/ai_holo.dm index 1c144272f53..772f7dec1c8 100644 --- a/code/datums/ai/ai_holo.dm +++ b/code/datums/ai/ai_holo.dm @@ -38,7 +38,7 @@ GLOBAL_LIST_INIT(AI_holos, init_subtypes(/datum/ai_holo)) icon_state = "Face" /datum/ai_holo/carp - icon_state = "Carp" + icon_state = "carp" /datum/ai_holo/solgov icon_state = "SolGov" diff --git a/code/datums/appearances/automatic/cardborg.dm b/code/datums/appearances/automatic/cardborg.dm index 7c552c448f0..b95ef531baa 100644 --- a/code/datums/appearances/automatic/cardborg.dm +++ b/code/datums/appearances/automatic/cardborg.dm @@ -17,7 +17,7 @@ var/image/I = get_image_from_backpack(H) AddAltAppearance(H, I, GLOB.silicon_mob_list+H) //you look like a robot to robots! (including yourself because you're totally a robot) - register_global_signal(SIGNAL_LOGGED_IN, /decl/appearance_handler/cardborg/proc/mob_joined) // Duplicate registration request are handled for us + register_global_signal(SIGNAL_LOGGED_IN, nameof(/decl/appearance_handler/cardborg.proc/mob_joined)) // Duplicate registration request are handled for us /decl/appearance_handler/cardborg/proc/item_removed(obj/item/item, mob/user) if((istype(item, /obj/item/clothing/suit/cardborg) || istype(item, /obj/item/clothing/head/cardborg)) || istype(item, /obj/item/storage/backpack)) diff --git a/code/datums/components/connect_mob_behalf.dm b/code/datums/components/connect_mob_behalf.dm new file mode 100644 index 00000000000..c39e3da045c --- /dev/null +++ b/code/datums/components/connect_mob_behalf.dm @@ -0,0 +1,62 @@ +/** + * This component hooks into a signal on a tracked client's mob and allows to make + * batch signal subscriptions. + * Works simmilar to `connect_loc`. + */ +/datum/component/connect_mob_behalf + dupe_mode = COMPONENT_DUPE_UNIQUE + + /// An assoc list of signal -> procpath to register to the mob the client "owns". + var/list/connections + /// Reference to the master client. + var/client/tracked + /// Currently tracked mob. + var/mob/tracked_mob + +/datum/component/connect_mob_behalf/Initialize(client/tracked, list/connections) + . = ..() + if(!istype(tracked)) + return COMPONENT_INCOMPATIBLE + + src.connections = connections + src.tracked = tracked + +/datum/component/connect_mob_behalf/register_with_parent() + register_signal(tracked, SIGNAL_QDELETING, nameof(.proc/on_tracked_qdel)) + update_signals() + +/datum/component/connect_mob_behalf/unregister_from_parent() + unregister_signals() + unregister_signal(tracked, SIGNAL_QDELETING) + + tracked = null + tracked_mob = null + +/datum/component/connect_mob_behalf/proc/on_tracked_qdel() + // This is signal handler, so it should have `SIGNAL_HANDLER`, but some fucker sleeps in `Entered. + qdel(src) + +/datum/component/connect_mob_behalf/proc/update_signals() + unregister_signals() + + if(QDELETED(tracked?.mob)) + return + + tracked_mob = tracked.mob + + register_signal(tracked_mob, SIGNAL_LOGGED_OUT, nameof(.proc/on_logout)) + for(var/signal in connections) + parent.register_signal(tracked_mob, signal, connections[signal]) + +/datum/component/connect_mob_behalf/proc/unregister_signals() + if(isnull(tracked_mob)) + return + + parent.unregister_signal(tracked_mob, connections) + unregister_signal(tracked_mob, SIGNAL_LOGGED_OUT) + + tracked_mob = null + +/datum/component/connect_mob_behalf/proc/on_logout(mob/source) + SIGNAL_HANDLER + update_signals() diff --git a/code/datums/components/label.dm b/code/datums/components/label.dm index e52ff018479..7a70b33c5ba 100644 --- a/code/datums/components/label.dm +++ b/code/datums/components/label.dm @@ -13,7 +13,7 @@ /datum/component/label/proc/apply_label() var/atom/owner = parent owner.name += " ([label_name])" - owner.verbs += /atom/proc/RemoveLabel + owner.add_verb(owner.loc, /atom/proc/RemoveLabel) owner.post_attach_label(src) /// Removes the label from the parent's name. @@ -44,4 +44,4 @@ label.remove_label() if(!length(get_components(/datum/component/label))) - verbs -= /atom/proc/RemoveLabel + remove_verb(loc, /atom/proc/RemoveLabel) diff --git a/code/datums/components/mind_linker.dm b/code/datums/components/mind_linker.dm index b9e94b8b02f..55b8d531535 100644 --- a/code/datums/components/mind_linker.dm +++ b/code/datums/components/mind_linker.dm @@ -161,7 +161,6 @@ /datum/action/innate/linked_speech name = "Mind Link Speech" - //desc = "Send a psychic message to everyone connected to your Link." button_icon_state = "link_speech" button_icon = 'icons/hud/actions.dmi' background_icon_state = "bg_alien" @@ -175,7 +174,6 @@ var/datum/component/mind_linker/linker = Target name = "[linker.network_name] Speech" - //desc = "Send a psychic message to everyone connected to your [linker.network_name]." button_icon = linker.speech_action_icon button_icon_state = linker.speech_action_icon_state background_icon_state = linker.speech_action_background_icon_state @@ -208,7 +206,6 @@ /datum/action/innate/project_thought name = "Send Thought" - //desc = "Send a private psychic message to someone you can see." button_icon_state = "send_mind" button_icon = 'icons/hud/actions.dmi' background_icon_state = "bg_alien" @@ -258,7 +255,6 @@ /datum/action/innate/link_minds name = "Link Minds" - //desc = "Link someone's mind to your Slime Link, allowing them to communicate telepathically with other linked minds." button_icon_state = "mindlink" button_icon = 'icons/hud/actions.dmi' background_icon_state = "bg_alien" diff --git a/code/datums/configuration/general_section.dm b/code/datums/configuration/general_section.dm index 585b614ddb9..348bcf54644 100644 --- a/code/datums/configuration/general_section.dm +++ b/code/datums/configuration/general_section.dm @@ -3,7 +3,7 @@ var/server_name = null var/subserver_name = null - var/server_id = null + var/server_id = "onyxbay" var/server_suffix = FALSE var/server_port = null var/hosted_by = null @@ -22,6 +22,7 @@ var/client_min_minor_version = 1609 var/client_recommended_minor_version = 1630 var/list/client_blacklisted_minor_versions = list(1631, 1632) + var/prometheus_port = null /datum/configuration_section/general/load_data(list/data) CONFIG_LOAD_STR(server_name, data["server_name"]) @@ -52,3 +53,4 @@ CONFIG_LOAD_NUM(minute_topic_limit, data["minute_topic_limit"]) CONFIG_LOAD_NUM(second_topic_limit, data["second_topic_limit"]) CONFIG_LOAD_BOOL(wait_for_sigusr1, data["wait_for_sigusr1"]) + CONFIG_LOAD_STR(prometheus_port, data["prometheus_port"]) diff --git a/code/datums/datum.dm b/code/datums/datum.dm index fedced57c18..f74780c1ccd 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -37,23 +37,14 @@ tag = null SSnano && SSnano.close_uis(src) - var/list/timers = active_timers - active_timers = null - for(var/thing in timers) - var/datum/timedevent/timer = thing - if (timer.spent) - continue - qdel(timer) var/list/dc = datum_components if(dc) var/all_components = dc[/datum/component] if(length(all_components)) - for(var/datum/component/component as anything in all_components) - qdel(component, FALSE, TRUE) + QDEL_NULL_LIST(all_components) else - var/datum/component/C = all_components - qdel(C, FALSE, TRUE) + QDEL_NULL(all_components) dc.Cut() if(extensions) @@ -105,19 +96,21 @@ /// Schedules the next call of the `/datum/proc/think`. /// /// * `time` - when to call the "think" proc. Falsy value stops from thinking. -/datum/proc/set_next_think(time) +/// * `...` - arguments to be passed to the "think" function. +/datum/proc/set_next_think(time, ...) if(!time) _main_think_ctx?.stop() return if(QDELETED(_main_think_ctx)) - _main_think_ctx = new(time, CALLBACK(src, nameof(.proc/think))) + _main_think_ctx = new(time, CALLBACK(src, nameof(.proc/think)), length(args) > 1 ? args.Copy(2) : null) SSthink.contexts_groups[_main_think_ctx.group] += _main_think_ctx CALC_NEXT_GROUP_RUN(_main_think_ctx) return _main_think_ctx.next_think = time + _main_think_ctx.arguments = args.Copy(2) if(!_main_think_ctx.group) ASSIGN_THINK_GROUP(_main_think_ctx.group, time) @@ -138,13 +131,14 @@ /// * `name` - name of the context. /// * `clbk` - a proc which should be called. /// * `time` - when to call the context. -/datum/proc/add_think_ctx(name, datum/callback/clbk, time) +/// * `...` - arguments to be passed to the "think" function. +/datum/proc/add_think_ctx(name, datum/callback/clbk, time, ...) LAZYINITLIST(_think_ctxs) if(!QDELETED(_think_ctxs[name])) CRASH("Thinking context [name] is exists") - _think_ctxs[name] = new /datum/think_context(time, clbk) + _think_ctxs[name] = new /datum/think_context(time, clbk, length(args) > 3 ? args.Copy(4) : null) var/datum/think_context/ctx = _think_ctxs[name] if(time > 0) @@ -155,7 +149,8 @@ /// /// * `name` - name of the context. /// * `time` - when to call the context. Falsy value removes the context. -/datum/proc/set_next_think_ctx(name, time) +/// * `...` - arguments to be passed to the "think" function. +/datum/proc/set_next_think_ctx(name, time, ...) if(!time) _think_ctxs[name].stop() @@ -163,6 +158,7 @@ var/datum/think_context/ctx = _think_ctxs[name] ctx.next_think = time + ctx.arguments = length(args) > 2 ? args.Copy(3) : null if(!ctx.group) ASSIGN_THINK_GROUP(ctx.group, time) diff --git a/code/datums/elements/simple_rotation.dm b/code/datums/elements/simple_rotation.dm new file mode 100644 index 00000000000..fb993d98aad --- /dev/null +++ b/code/datums/elements/simple_rotation.dm @@ -0,0 +1,71 @@ +/datum/element/simple_rotation + element_flags = ELEMENT_DETACH + +/datum/element/simple_rotation/attach(datum/target) + . = ..() + + var/atom/target_atom = target + if(!istype(target_atom)) + return ELEMENT_INCOMPATIBLE + + register_signal(target_atom, SIGNAL_ALT_CLICKED, nameof(.proc/on_alt_click)) + register_signal(target_atom, SIGNAL_CTRL_ALT_CLICKED, nameof(.proc/on_ctrl_alt_click)) + + target_atom.verbs |= /atom/proc/rotate + target_atom.verbs |= /atom/proc/rotate_counter + +/datum/element/simple_rotation/detach(datum/source, ...) + unregister_signal(source, SIGNAL_ALT_CLICKED) + unregister_signal(source, SIGNAL_CTRL_ALT_CLICKED) + + var/atom/target_atom = source + + target_atom.verbs -= /atom/proc/rotate + target_atom.verbs -= /atom/proc/rotate_counter + + return ..() + +/datum/element/simple_rotation/proc/on_alt_click(atom/clicked, mob/user) + clicked.rotate(user) + return TRUE + +/datum/element/simple_rotation/proc/on_ctrl_alt_click(atom/clicked, mob/user) + clicked.rotate_counter(user) + return TRUE + +/atom/proc/can_rotate(mob/user) + return !(!user || user.incapacitated() || !Adjacent(user)) + +/atom/proc/is_rotatable() + return + +/obj/is_rotatable() + return !(anchored && (obj_flags & OBJ_FLAG_ANCHOR_BLOCKS_ROTATION)) + +/atom/proc/rotate(mob/user) + set name = "Rotate Clockwise" + set category = "Object" + set src in oview(1) + + if(!is_rotatable()) + show_splash_text(user, "unfasten it first!", "\The [src] is fastened to the floor and can't be rotated!") + return + + if(!can_rotate(user)) + return + + set_dir(turn(dir, -90)) + +/atom/proc/rotate_counter(mob/user) + set name = "Rotate Counterclockwise" + set category = "Object" + set src in oview(1) + + if(!is_rotatable()) + show_splash_text(user, "unfasten it first!", "\The [src] is fastened to the floor and can't be rotated!") + return + + if(!can_rotate(user)) + return + + set_dir(turn(dir, 90)) diff --git a/code/datums/events/ion_storm.dm b/code/datums/events/ion_storm.dm index 5358825c2ee..2857c2669ae 100644 --- a/code/datums/events/ion_storm.dm +++ b/code/datums/events/ion_storm.dm @@ -155,7 +155,7 @@ languages -= L // Also removing any languages that won't work well over radio. // A synth is unlikely to have any besides Binary, but we're playing it safe - else if(L.flags & (HIVEMIND|NONVERBAL|SIGNLANG)) + else if(L.language_flags & (HIVEMIND|NONVERBAL|SIGNLANG)) languages -= L if(languages.len) diff --git a/code/datums/events/money_hacker.dm b/code/datums/events/money_hacker.dm index 4126f8bb26c..9e4eae51fd9 100644 --- a/code/datums/events/money_hacker.dm +++ b/code/datums/events/money_hacker.dm @@ -29,9 +29,9 @@ without intervention this attack will succeed in approximately 10 minutes. Possible solutions: suspension of accounts, disabling NTnet server, \ increase account security level. Notifications will be sent as updates occur.") - addtimer(CALLBACK(src, nameof(.proc/end)), 10 MINUTES) + set_next_think(world.time + 10 MINUTES) -/datum/event/money_hacker/proc/end() +/datum/event/money_hacker/think() SSevents.evars["money_hacker_running"] = FALSE var/list/datum/money_account/affected_accounts = list() diff --git a/code/datums/language_menu.dm b/code/datums/language_menu.dm new file mode 100644 index 00000000000..a1be101508e --- /dev/null +++ b/code/datums/language_menu.dm @@ -0,0 +1,109 @@ +/datum/language_menu + var/mob/living/owner + +/datum/language_menu/New(mob/owner) + if(!istype(owner)) + qdel_self() + + src.owner = owner + +/datum/language_menu/Destroy(force) + owner = null + return ..() + +/datum/language_menu/tgui_state(mob/user) + return GLOB.language_menu_state + +/datum/language_menu/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "LanguageMenu") + ui.open() + +/datum/language_menu/tgui_data(mob/user) + var/list/data = list() + + var/admin = check_rights(R_ADMIN, FALSE, user) + + data["isAdmin"] = admin + data["isSilicon"] = issilicon(owner) + + data["languagePrefix"] = owner.get_language_prefix() + data["currentLanguage"] = owner.default_language?.name + + data["languages"] = list() + for(var/language_key in all_languages) + var/datum/language/language_entry = all_languages[language_key] + + if(language_entry.language_flags & NONGLOBAL) // This one shouldn't be seen... + continue + + var/avaliable = (language_entry in owner.languages) + if(!avaliable && !admin) + continue + + var/list/language_data = list( + "key" = language_entry.key, + "name" = language_entry.name, + "desc" = language_entry.desc, + "index" = language_key, + "shorthand" = language_entry.shorthand, + "canSpeak" = owner.can_speak(language_entry), + "isKnown" = avaliable, + ) + + if(issilicon(owner)) + var/mob/living/silicon/silicon = owner + language_data["isSynthesized"] = (language_entry in silicon.speech_synthesizer_langs) + + data["languages"] += list(language_data) + + return data + +/datum/language_menu/tgui_act(action, params) + . = ..() + + if(.) + return + + switch(action) + if("choose_language") + var/language_key = params["value"] + if(isnull(language_key)) + return + + var/datum/language/chosen_language = all_languages[language_key] + if(isnull(chosen_language)) + return + + if(chosen_language.language_flags & NONGLOBAL) + return + + if(owner.default_language == chosen_language) + owner.set_default_language(null) // Resetting language + else + owner.set_default_language(chosen_language) + + return TRUE + + if("remove_language") + if(!check_rights(R_ADMIN, FALSE, usr?.client)) + return + + var/language_key = params["value"] + if(isnull(language_key)) + return + + owner.remove_language(language_key) + return TRUE + + if("add_language") + if(!check_rights(R_ADMIN, FALSE, usr?.client)) + return + + var/language_key = params["value"] + if(isnull(language_key)) + return + + owner.add_language(language_key) + return TRUE diff --git a/code/datums/mind.dm b/code/datums/mind.dm index cc713cd124c..882c229fd36 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -124,6 +124,8 @@ if(active) new_character.key = key //now transfer the key to link the client to our new body + new_character.client?.init_verbs() + return TRUE /datum/mind/proc/store_memory(new_text) diff --git a/code/datums/object_window_info.dm b/code/datums/object_window_info.dm new file mode 100644 index 00000000000..65da692a3c3 --- /dev/null +++ b/code/datums/object_window_info.dm @@ -0,0 +1,112 @@ +/** + * Datum that holds and tracks info about a client's object. Mainly used for controlled + * icon generation thus removing limitations present in previous stat panel version. + */ +/datum/object_window_info + /// List of atoms to show to a client via the object tab. + var/list/atoms_to_show = list() + /// List of atom -> image string for objects we have had in the right click tab. + var/list/atoms_to_images = list() + /// List of atoms to turn into images for the object tab. + var/list/atoms_to_imagify = list() + /// Reference to a window owner. + var/client/parent + /// Whether window is currently tracking a turf. + var/actively_tracking = FALSE + +/datum/object_window_info/New(client/parent) + . = ..() + + src.parent = parent + +/datum/object_window_info/Destroy(force) + atoms_to_show = null + atoms_to_images = null + atoms_to_imagify = null + parent.obj_window = null + parent = null + STOP_PROCESSING(SSobj_tab_items, src) + return ..() + +/** + * Takes an objects list, attempts to generate images and and notify client. Processes + * until all entries were handled. + */ +/datum/object_window_info/Process() + // Cache the datum access for sonic speed + var/list/to_make = atoms_to_imagify + var/list/newly_seen = atoms_to_images + + var/index = 0 + for(index in 1 to length(to_make)) + var/atom/thing = to_make[index] + + var/generated_string + if(ismob(thing) || length(thing.overlays) > 2) + generated_string = costly_icon2html(thing, parent, sourceonly = TRUE) + else + generated_string = icon2html(thing, parent, sourceonly = TRUE) + + newly_seen[thing] = generated_string + + if(TICK_CHECK) + to_make.Cut(1, index + 1) + index = 0 + break + + // If we've not cut yet, do it now + if(index) + to_make.Cut(1, index + 1) + + // Following line of code causes stat panel flickering. Possibly due to slow icon baking, uncomment after SSassets port. + // SSstatpanels.refresh_client_obj_view(parent) + + if(!length(to_make)) + return PROCESS_KILL + +/datum/object_window_info/proc/start_turf_tracking() + if(actively_tracking) + stop_turf_tracking() + + var/static/list/connections = list( + SIGNAL_MOVED = nameof(.proc/on_mob_move), + SIGNAL_LOGGED_OUT = nameof(.proc/on_mob_logout), + ) + + AddComponent(/datum/component/connect_mob_behalf, parent, connections) + actively_tracking = TRUE + +/datum/object_window_info/proc/stop_turf_tracking() + qdel(get_component(/datum/component/connect_mob_behalf)) + actively_tracking = FALSE + +/datum/object_window_info/proc/on_mob_move(mob/source) + // Some fucker sleeps in `Entered`, so it's impossible to use `SIGNAL_HANDLER` inhere. + var/turf/listed = source.listed_turf + if(isnull(listed) || !source.TurfAdjacent(listed)) + source.set_listed_turf(null) + +/datum/object_window_info/proc/on_mob_logout(mob/source) + // Sleepy in `Entered`, so no `SIGNAL_HANDLER`, bozo. + on_mob_move(parent.mob) + +/datum/object_window_info/proc/viewing_atom_deleted(atom/deleted) + SIGNAL_HANDLER + atoms_to_show -= deleted + atoms_to_imagify -= deleted + atoms_to_images -= deleted + +/mob/proc/set_listed_turf(turf/new_turf) + listed_turf = new_turf + if(!client) + return + + if(!client.obj_window) + client.obj_window = new(client) + + if(listed_turf) + client.stat_panel.send_message("create_listedturf", listed_turf.name) + client.obj_window.start_turf_tracking() + else + client.stat_panel.send_message("remove_listedturf") + client.obj_window.stop_turf_tracking() diff --git a/code/datums/outfits/wizardry.dm b/code/datums/outfits/wizardry.dm index 7f02c01f662..fdd4ef3fd53 100644 --- a/code/datums/outfits/wizardry.dm +++ b/code/datums/outfits/wizardry.dm @@ -31,3 +31,13 @@ head = /obj/item/clothing/head/wizard/violetwizard suit = /obj/item/clothing/suit/wizrobe/violetwizard shoes = /obj/item/clothing/shoes/sandal/marisa + +/decl/hierarchy/outfit/musclemancer + name = "Musclemancer" + head = null + suit = /obj/item/clothing/suit/musclemancer + shoes = /obj/item/clothing/shoes/laceup + uniform = /obj/item/clothing/under/suit_jacket/navy/scholar + r_pocket = /obj/item/teleportation_scroll + l_ear = /obj/item/device/radio/headset + flags = OUTFIT_RESET_EQUIPMENT|OUTFIT_NO_SURVIVAL diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm index cb99498cea7..f0605609d67 100644 --- a/code/datums/progressbar.dm +++ b/code/datums/progressbar.dm @@ -1,7 +1,6 @@ #define PROGRESSBAR_ICON_HEIGHT 7 -/client - var/list/progressbars = list() +/client/var/list/progressbars = list() /datum/progressbar var/goal = 1 diff --git a/code/datums/sound_player.dm b/code/datums/sound_player.dm index 44c3f04083a..844006fb964 100644 --- a/code/datums/sound_player.dm +++ b/code/datums/sound_player.dm @@ -214,14 +214,16 @@ GLOBAL_DATUM_INIT(sound_player, /decl/sound_player, new) null_sound = null_sound || new(channel = sound.channel) sound_to(listener, null_sound) unregister_signal(listener, SIGNAL_MOVED) - unregister_signal(listener, SIGNAL_QDELETING, /datum/sound_token/proc/PrivRemoveListener) + unregister_signal(listener, SIGNAL_QDELETING, nameof(/datum/sound_token.proc/PrivRemoveListener)) listeners -= listener /datum/sound_token/proc/PrivUpdateListenerLoc(atom/listener, update_sound = TRUE) var/turf/source_turf = get_turf(source) var/turf/listener_turf = get_turf(listener) - ASSERT(istype(source_turf) && istype(listener_turf)) + if(!istype(source_turf) || !istype(listener_turf)) // Oh look somebody's got nullspace'd + PrivRemoveListener(listener) + return var/distance = get_dist(source_turf, listener_turf) if(!listener_turf || (distance > range) || !(listener_turf in can_be_heard_from)) diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm index c2c790073a3..7905c01b251 100644 --- a/code/datums/supplypacks/security.dm +++ b/code/datums/supplypacks/security.dm @@ -409,12 +409,12 @@ access = access_security /decl/hierarchy/supply_pack/security/surplusfirearms - name = "Misc - Surplus firearms" + name = "Weapons - Surplus firearms" contains = list(/obj/item/gun/projectile/bolt_action = 2, /obj/item/gun/projectile/bolt_action/mauser = 2, /obj/item/ammo_magazine/c792 = 4 ) - cost = 20 + cost = 40 containertype = /obj/structure/closet/crate/secure containername = "\improper Surplus Firearms" access = access_security diff --git a/code/datums/surgery/steps/generic.dm b/code/datums/surgery/steps/generic.dm index 9d5c478bc0e..4f7c7f64432 100644 --- a/code/datums/surgery/steps/generic.dm +++ b/code/datums/surgery/steps/generic.dm @@ -51,7 +51,7 @@ return . if(!parent_organ.get_incision(TRUE)) - target.show_splash_text(user, "no incisions that can be closed cleanly!") + target.show_splash_text(user, "no incisions that can be closed cleanly!", "There are no incisions that can be closed cleanly!") return SURGERY_FAILURE if(parent_organ.is_stump()) diff --git a/code/datums/surgery/steps/implant.dm b/code/datums/surgery/steps/implant.dm index 0e22ec8cbba..1b1696fc52d 100644 --- a/code/datums/surgery/steps/implant.dm +++ b/code/datums/surgery/steps/implant.dm @@ -136,7 +136,7 @@ max_volume -= O.get_storage_cost() if(tool.get_storage_cost() > max_volume || parent_organ.cavity_max_w_class < tool.w_class) - target.show_splash_text(user, "tool is too big!") + target.show_splash_text(user, "tool is too big!", "\The [tool] is too big to fit inside!") return SURGERY_FAILURE var/total_volume = tool.get_storage_cost() @@ -147,7 +147,7 @@ total_volume += I.get_storage_cost() if(total_volume > max_volume) - target.show_splash_text(user, "not enough space!") + target.show_splash_text(user, "not enough space!", "There's not enough space!") return FALSE return TRUE diff --git a/code/datums/surgery/steps/internal.dm b/code/datums/surgery/steps/internal.dm index 7db7afba31d..f5b6f48da10 100644 --- a/code/datums/surgery/steps/internal.dm +++ b/code/datums/surgery/steps/internal.dm @@ -239,27 +239,27 @@ return FALSE if(BP_IS_ROBOTIC(parent_organ) && !BP_IS_ROBOTIC(target_organ)) - target.show_splash_text(user, "organic organ can't be connected to a robotic body!") + target.show_splash_text(user, "organic organ can't be connected to a robotic body!", "An organic organ can't be connected to a robotic body!") return SURGERY_FAILURE if(!target.species) CRASH("Target ([target]) of surgery [type] has no species!") if(target_organ.organ_tag == BP_POSIBRAIN && !target.species.has_organ[BP_POSIBRAIN]) - target.show_splash_text(user, "this type of body isn't supported!") + target.show_splash_text(user, "this type of body isn't supported!", "This type of body isn't supported!") return SURGERY_FAILURE if(target_organ.damage > (target_organ.max_damage * 0.75)) - target.show_splash_text(user, "organ is too damaged!") + target.show_splash_text(user, "organ is too damaged!", "The organ is too damaged!") return SURGERY_FAILURE if(target_organ.w_class > parent_organ.cavity_max_w_class) - target.show_splash_text(user, "organ won't fit inside!") + target.show_splash_text(user, "organ won't fit inside!", "The organ won't fit inside!") return SURGERY_FAILURE var/obj/item/organ/internal/O = target.internal_organs_by_name[target_organ.organ_tag] if(O && (O.parent_organ == parent_organ.organ_tag || istype(target_organ, /obj/item/organ/internal/stack))) - target.show_splash_text(user, "stack is already present!") + target.show_splash_text(user, "stack is already present!", "There's already a stack present!") return SURGERY_FAILURE var/used_volume = 0 @@ -271,7 +271,7 @@ for(var/obj/item/I in parent_organ.internal_organs) used_volume += I.get_storage_cost() if((base_storage_capacity(parent_organ.cavity_max_w_class) + parent_organ.internal_organs_size) < used_volume + target_organ.get_storage_cost()) - target.show_splash_text(user, "not enough space!") + target.show_splash_text(user, "not enough space!", "There's not enough space!") return SURGERY_FAILURE return TRUE @@ -369,7 +369,7 @@ return FALSE if(!target_organ.can_recover()) - target.show_splash_text(user, "organ is damaged beyond recover!") + target.show_splash_text(user, "organ is damaged beyond recover!", "The organ is damaged beyond recover!") return SURGERY_FAILURE return !!target_organ.damage @@ -394,11 +394,11 @@ return FALSE if(!. && !organ_fixer.emagged) - target.show_splash_text(user, "organ doesn't require any healing!") + target.show_splash_text(user, "organ doesn't require any healing!", "The organ doesn't require any healing!!") return SURGERY_FAILURE if(organ_fixer.gel_amt == 0) - target.show_splash_text(user, "not enough gel!") + target.show_splash_text(user, "not enough gel!", "There's not enough somatic gel!") return SURGERY_FAILURE return TRUE @@ -491,7 +491,7 @@ var/obj/item/stack/medical/M = tool if(M.amount < 1) - target.show_splash_text(user, "not enough medicine to complete this step!") + target.show_splash_text(user, "not enough medicine to complete this step!", "There's not enough medicine to complete this step!") return SURGERY_FAILURE return TRUE @@ -574,7 +574,7 @@ return FALSE if(organ_fixer.gel_amt == 0) - target.show_splash_text(user, "not enough gel!") + target.show_splash_text(user, "not enough gel!", "There's not enough somatic gel!") return SURGERY_FAILURE for(var/obj/item/organ/internal/I in parent_organ.internal_organs) @@ -720,7 +720,7 @@ return FALSE if(!target_organ.can_recover() && istype(target_organ, /obj/item/organ/internal/cerebrum/brain)) - target.show_splash_text(user, "organ is damaged beyond recover!") + target.show_splash_text(user, "organ is damaged beyond recover!", "The organ is damaged beyond recover!") return SURGERY_FAILURE return TRUE diff --git a/code/datums/surgery/steps/limb.dm b/code/datums/surgery/steps/limb.dm index 85b18bb9892..c1543f95786 100644 --- a/code/datums/surgery/steps/limb.dm +++ b/code/datums/surgery/steps/limb.dm @@ -35,11 +35,11 @@ var/obj/item/organ/external/P = target.get_organ(E.parent_organ) if(isnull(P) || P.is_stump()) - target.show_splash_text(user, "limb is already present!") + target.show_splash_text(user, "limb is already present!", "There's already a limb present!") return SURGERY_FAILURE if(BP_IS_ROBOTIC(P) && !BP_IS_ROBOTIC(E)) - target.show_splash_text(user, "organic limb can't be connected to a robotic body!") + target.show_splash_text(user, "organic limb can't be connected to a robotic body!", "An organic limb can't be connected to a robotic body!") return SURGERY_FAILURE return !isnull(target.species.has_limbs["[E.organ_tag]"]) @@ -216,7 +216,7 @@ return if(parent_organ.open()) - target.show_splash_text(user, "can't get a clean cut due to present incisions!") + target.show_splash_text(user, "can't get a clean cut due to present incisions!", "You can't get a clean cut due to present incisions!") return SURGERY_FAILURE return parent_organ.limb_flags & ORGAN_FLAG_CAN_AMPUTATE diff --git a/code/datums/surgery/steps/misc.dm b/code/datums/surgery/steps/misc.dm index 7307a286e47..4e8ebbe78f8 100644 --- a/code/datums/surgery/steps/misc.dm +++ b/code/datums/surgery/steps/misc.dm @@ -32,8 +32,8 @@ return FALSE if(isWelder(tool)) - var/obj/item/weldingtool/W = tool - if(!W.isOn() || !W.remove_fuel(1, user)) + var/obj/item/weldingtool/WT = tool + if(!WT.use_tool(target, user, amount = 1)) return FALSE return !(target.back.canremove) diff --git a/code/datums/surgery/steps/robotic.dm b/code/datums/surgery/steps/robotic.dm index 66eee76f5e0..8e6ef30ef7d 100644 --- a/code/datums/surgery/steps/robotic.dm +++ b/code/datums/surgery/steps/robotic.dm @@ -172,8 +172,8 @@ return if(isWelder(tool)) - var/obj/item/weldingtool/W = tool - if(!W.isOn() || !W.remove_fuel(1, user)) + var/obj/item/weldingtool/WT = tool + if(!WT.use_tool(target, user, amount = 1)) return FALSE if(parent_organ.hatch_state != HATCH_OPENED) @@ -229,7 +229,7 @@ return FALSE if(!C.use(3)) - target.show_splash_text(user, "not enough coil length!") + target.show_splash_text(user, "not enough coil length!", "Not enought coil length to repair!") return SURGERY_FAILURE return TRUE diff --git a/code/datums/think_context.dm b/code/datums/think_context.dm index 3fbf380c7b9..b6648dffcbc 100644 --- a/code/datums/think_context.dm +++ b/code/datums/think_context.dm @@ -3,13 +3,19 @@ var/next_think var/datum/callback/callback var/group + var/list/arguments -/datum/think_context/New(time, clbk) +/datum/think_context/New(time, clbk, ...) last_think = 0 next_think = time callback = clbk ASSIGN_THINK_GROUP(group, time) + if(length(args) > 2) + arguments = args.Copy(3) + else + arguments = list() + /datum/think_context/proc/stop() if(group) SSthink.contexts_groups[group] -= src @@ -17,8 +23,11 @@ last_think = 0 next_think = 0 group = null + arguments?.Cut() /datum/think_context/Destroy() stop() QDEL_NULL(callback) + arguments = null + return ..() diff --git a/code/datums/uplink/categories/job.dm b/code/datums/uplink/categories/job.dm index 75c1c48d59b..a20723ab0fd 100644 --- a/code/datums/uplink/categories/job.dm +++ b/code/datums/uplink/categories/job.dm @@ -10,3 +10,10 @@ item_cost = 5 job_specific = list("Chef") path = /obj/item/material/knife/butch/kitchen/syndie + +/datum/uplink_item/item/job/meathook + name = "Meat Hook" + desc = "A high-tech version of an ancient assassin weapon, disguised as a meat hook. It can be thrown with an incredible accuracy, and will snag the first target it encounters, dragging it back to you. However, all the witnesses will know for sure that you're up for something." + item_cost = 5 + job_specific = list("Chef") + path = /obj/item/gun/meathook diff --git a/code/datums/uplink/categories/services.dm b/code/datums/uplink/categories/services.dm index cb0dfa98501..a9708ebfd08 100644 --- a/code/datums/uplink/categories/services.dm +++ b/code/datums/uplink/categories/services.dm @@ -62,10 +62,12 @@ deactivate() . = ..() -/obj/item/device/uplink_service/_examine_text(user) +/obj/item/device/uplink_service/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 1) return + var/msg switch(state) if(AWAITING_ACTIVATION) @@ -74,7 +76,8 @@ msg = "It is labeled '[service_label]' and appears to be active." if(HAS_BEEN_ACTIVATED) msg = "It is labeled '[service_label]' and appears to be permanently disabled." - . += "\n[msg]" + + . += "[msg]" /obj/item/device/uplink_service/attack_self(mob/user) if(state != AWAITING_ACTIVATION) @@ -88,10 +91,13 @@ log_and_message_admins("has activated the service '[service_label]'", user) if(service_duration) - addtimer(CALLBACK(src, nameof(.proc/deactivate)), service_duration) + set_next_think(world.time + service_duration) else deactivate() +/obj/item/device/uplink_service/think() + deactivate() + /obj/item/device/uplink_service/proc/deactivate() if(state != CURRENTLY_ACTIVE) return diff --git a/code/game/antagonist/antagonist_add.dm b/code/game/antagonist/antagonist_add.dm index ba3503e9255..820c11d9c19 100644 --- a/code/game/antagonist/antagonist_add.dm +++ b/code/game/antagonist/antagonist_add.dm @@ -33,10 +33,10 @@ current_antagonists |= player if(faction_verb) - player.current.verbs |= faction_verb + grant_verb(player.current, faction_verb) if(config.gamemode.disable_objectives == CONFIG_OBJECTIVE_VERB) - player.current.verbs += /mob/proc/add_objectives + grant_verb(player.current, /mob/proc/add_objectives) if(player.current.client) player.current.client.verbs += /client/proc/aooc @@ -45,7 +45,7 @@ to_chat(player.current, SPAN("notice", "Once you decide on a goal to pursue, you can optionally display it to \ everyone at the end of the shift with the Set Ambition verb, located in the IC tab. You can change this at any time, \ and it otherwise has no bearing on your round.")) - player.current.verbs += /mob/living/proc/write_ambition + grant_verb(player.current, /mob/living/proc/write_ambition) if(player.assigned_role == "Clown") to_chat(player.current, SPAN("notice", "Your diligent training has helped you overcome your clownish nature.")) @@ -67,7 +67,7 @@ if(!istype(player)) return 0 if(player.current && faction_verb) - player.current.verbs -= faction_verb + revoke_verb(player.current, faction_verb) if(player in current_antagonists) to_chat(player.current, "You are no longer a [role_text]!") current_antagonists -= player @@ -80,9 +80,9 @@ if(!is_special_character(player)) if(player.current) - player.current.verbs -= /mob/living/proc/write_ambition + revoke_verb(player.current, /mob/living/proc/write_ambition) if(player.current.client) - player.current.client.verbs -= /client/proc/aooc + revoke_verb(player.current.client, /client/proc/aooc) player.ambitions = "" return 1 return 0 diff --git a/code/game/antagonist/antagonist_objectives.dm b/code/game/antagonist/antagonist_objectives.dm index 8bc66254d54..1193bc5a6ba 100644 --- a/code/game/antagonist/antagonist_objectives.dm +++ b/code/game/antagonist/antagonist_objectives.dm @@ -38,7 +38,7 @@ set desc = "Recieve optional objectives." set category = "OOC" - src.verbs -= /mob/proc/add_objectives + revoke_verb(src, /mob/proc/add_objectives) if(!src.mind) return diff --git a/code/game/antagonist/station/cultist.dm b/code/game/antagonist/station/cultist.dm index 0432ff86aad..76022dc4d3f 100644 --- a/code/game/antagonist/station/cultist.dm +++ b/code/game/antagonist/station/cultist.dm @@ -165,19 +165,21 @@ GLOBAL_DATUM_INIT(cult, /datum/antagonist/cultist, new) cult_rating = max(0, cult_rating - amount) /datum/antagonist/cultist/proc/add_cult_magic(mob/M) - M.verbs += Tier1Runes + grant_verb(M, Tier1Runes) if(max_cult_rating >= CULT_RUNES_1) - M.verbs += Tier2Runes + grant_verb(M, Tier2Runes) - if(max_cult_rating >= CULT_RUNES_2) - M.verbs += Tier3Runes + if(max_cult_rating >= CULT_RUNES_2) + grant_verb(M, Tier3Runes) - if(max_cult_rating >= CULT_RUNES_3) - M.verbs += Tier4Runes + if(max_cult_rating >= CULT_RUNES_3) + grant_verb(M, Tier4Runes) /datum/antagonist/cultist/proc/remove_cult_magic(mob/M) - M.verbs -= Tier1Runes - M.verbs -= Tier2Runes - M.verbs -= Tier3Runes - M.verbs -= Tier4Runes + revoke_verb(M, list( + Tier1Runes, + Tier2Runes, + Tier3Runes, + Tier4Runes, + )) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 3f56072a75d..8a5ebfc6d24 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -15,6 +15,13 @@ var/simulated = 1 //filter for actions - used by lighting overlays var/fluorescent // Shows up under a UV light. + /// Helpful blue text, can be used to describe usage caveats and etc. + var/description_info + /// Green text containing the atom's fluff, if any exists. + var/description_fluff + /// Malicious red text, can be viewed by antags. + var/description_antag + ///Value used to increment ex_act() if reactionary_explosions is on var/explosion_block = 0 @@ -28,7 +35,7 @@ // replaced by OPENCONTAINER flags and atom/proc/is_open_container() ///Chemistry. - var/list/climbers = list() + var/list/climbers var/tf_scale_x // The atom's base transform scale for width. var/tf_scale_y // The atom's base transform scale for height. @@ -58,6 +65,38 @@ /// pass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through. var/pass_flags_self = NONE +/// Passes Stat Browser Panel clicks to the game and calls client click on an atom. +/atom/Topic(href, list/href_list) + . = ..() + + if(!usr?.client) + return + + var/client/usr_client = usr.client + var/list/paramslist = list() + + if(href_list["statpanel_item_click"]) + switch(href_list["statpanel_item_click"]) + if("left") + paramslist["left"] = "1" + if("right") + paramslist["right"] = "1" + if("middle") + paramslist["middle"] = "1" + else + return + + if(href_list["statpanel_item_shiftclick"]) + paramslist["shift"] = "1" + if(href_list["statpanel_item_ctrlclick"]) + paramslist["ctrl"] = "1" + if(href_list["statpanel_item_altclick"]) + paramslist["alt"] = "1" + + var/mouseparams = list2params(paramslist) + usr_client.Click(src, loc, null, mouseparams) + return TRUE + /atom/New(loc, ...) CAN_BE_REDEFINED(TRUE) //atom creation method that preloads variables at creation @@ -112,7 +151,7 @@ //called if Initialize returns INITIALIZE_HINT_LATELOAD /atom/proc/LateInitialize() - return + set waitfor = FALSE /atom/proc/drop_location() var/atom/L = loc @@ -326,35 +365,6 @@ its easier to just keep the beam vertical. //I've found that 3 ticks provided a nice balance for my use. for(var/obj/effect/overlay/beam/O in orange(10,src)) if(O.BeamSource==src) qdel(O) - -/atom/proc/_examine_text(mob/user, infix = "", suffix = "") - // This reformat names to get a/an properly working on item descriptions when they are bloody - var/f_name = "\a [SPAN("info", "[src][infix]")]." - if(is_bloodied && !istype(src, /obj/effect/decal)) - if(gender == PLURAL) - f_name = "some " - else - f_name = "a " - if(blood_color != SYNTH_BLOOD_COLOUR) - f_name += "blood-stained [SPAN("info", "[name][infix]")]!" - else - f_name += "oil-stained [name][infix]." - - . = "\icon[src] That's [f_name] [suffix]" - . += "\n[desc]" - - return - -/atom/proc/examine(...) - SHOULD_NOT_OVERRIDE(TRUE) - - var/content = "
" - - content += _examine_text(arglist(args)) - content += "
" - - return content - // called by mobs when e.g. having the atom as their machine, pulledby, loc (AKA mob being inside the atom) or buckled var set. // see code/modules/mob/mob_movement.dm for more. /atom/proc/relaymove() @@ -555,7 +565,7 @@ its easier to just keep the beam vertical. /atom/attack_hand(mob/user) ..() - if(climbers.len && !(user in climbers)) + if(LAZYLEN(climbers) && !LAZYISIN(climbers, user)) user.visible_message("[user.name] shakes \the [src].", \ "You shake \the [src].") object_shaken() @@ -570,18 +580,19 @@ its easier to just keep the beam vertical. do_climb(usr) /atom/proc/can_climb(mob/living/user, post_climb_check=0) - if (!(atom_flags & ATOM_FLAG_CLIMBABLE) || !can_touch(user) || (!post_climb_check && (user in climbers))) - return 0 + if (!(atom_flags & ATOM_FLAG_CLIMBABLE) || !can_touch(user) || (!post_climb_check && LAZYISIN(climbers, user))) + return FALSE - if (!user.Adjacent(src)) - to_chat(user, "You can't climb there, the way is blocked.") - return 0 + if(!user.Adjacent(src)) + show_splash_text(user, "can't climb!", SPAN_DANGER("You can't climb there, the way is blocked.")) + return FALSE var/obj/occupied = turf_is_crowded() if(occupied) - to_chat(user, "There's \a [occupied] in the way.") - return 0 - return 1 + show_splash_text(user, "no free space!", SPAN_DANGER("There's \a [occupied] in the way..")) + return FALSE + + return TRUE /atom/proc/can_touch(mob/user) if (!user) @@ -610,44 +621,45 @@ its easier to just keep the beam vertical. return 0 /atom/proc/do_climb(mob/living/user) - if (!can_climb(user)) + if(!can_climb(user)) return - user.visible_message("\The [user] starts climbing onto \the [src]!") - climbers |= user + user.visible_message(SPAN_WARNING("\The [user] starts climbing onto \the [src]!")) + LAZYDISTINCTADD(climbers, user) if(!do_after(user,(issmall(user) ? 30 : 50), src)) - climbers -= user + LAZYREMOVE(climbers, user) return - if (!can_climb(user, post_climb_check=1)) - climbers -= user + if(!can_climb(user, post_climb_check=1)) + LAZYREMOVE(climbers, user) return user.forceMove(get_turf(src)) - if (get_turf(user) == get_turf(src)) - user.visible_message("\The [user] climbs onto \the [src]!") - climbers -= user + if(get_turf(user) == get_turf(src)) + user.visible_message(SPAN_WARNING("\The [user] climbs onto \the [src]!")) + + LAZYREMOVE(climbers, user) /atom/proc/object_shaken() for(var/mob/living/M in climbers) M.Weaken(1) - to_chat(M, "You topple as you are shaken off \the [src]!") - climbers.Cut(1,2) + show_splash_text(M, "you are shaken off!", SPAN_DANGER("You topple as you are shaken off \the [src]!")) + LAZYREMOVE(climbers, M) for(var/mob/living/M in get_turf(src)) - if(M.lying) return //No spamming this on people. + if(M.lying) //No spamming this on people. + return M.Weaken(3) - to_chat(M, "You topple as \the [src] moves under you!") + show_splash_text(M, "you topple!", SPAN_DANGER("You topple as \the [src] moves under you!")) if(prob(25)) - - var/damage = rand(15,30) + var/damage = rand(15, 30) var/mob/living/carbon/human/H = M if(!istype(H)) - to_chat(H, "You land heavily!") + to_chat(H, SPAN_DANGER("You land heavily!")) M.adjustBruteLoss(damage) return @@ -667,7 +679,6 @@ its easier to just keep the beam vertical. H.UpdateDamageIcon() H.updatehealth() - return /atom/MouseDrop_T(atom/movable/target, mob/user) var/mob/living/H = user @@ -842,3 +853,65 @@ its easier to just keep the beam vertical. ///Return the values you get when an RCD eats you? /atom/proc/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) return FALSE + +/** + * Adds a verb to the source object, updates mob/s stat panel if given. + * + * Please, note that this proc is **DEPRECATED** and most functionality must be implemented + * without interacting with stat panel AKA using action buttons or hotkeys. + */ +/atom/proc/add_verb(mob/target, verb_or_list_to_add) + verbs += verb_or_list_to_add + + if(!istype(target)) + return + + _add_verb_to_stat(target, verb_or_list_to_add) + +/// Advanced-use proc only! Handles verb addition to target's stat panel without tempering with source's verbs. +/atom/proc/_add_verb_to_stat(mob/target, verb_or_list_to_add) + if(!islist(verb_or_list_to_add)) + verb_or_list_to_add = list(verb_or_list_to_add) + + var/list/verbs_to_add = list() + for(var/procpath as anything in verb_or_list_to_add) + var/list/proc_sources = LAZYACCESS(target.atom_verbs, procpath) || list() + + if(!length(proc_sources)) + LAZYSET(target.atom_verbs, procpath, proc_sources) + verbs_to_add += procpath + + LAZYDISTINCTADD(proc_sources, src) + + grant_verb(target, verbs_to_add) + +/** + * Removes verb from the source object, updates mob stat panel if given. + * + * Please, note that this proc is **DEPRECATED** and most functionality must be implemented + * without interacting with stat panel AKA using action buttons or hotkeys. + */ +/atom/proc/remove_verb(mob/target, verb_or_list_to_remove) + verbs -= verb_or_list_to_remove + + if(!istype(target)) + return + + _remove_verb_from_stat(target, verb_or_list_to_remove) + +/// Advanced-use proc only! Handles verb removal from target's stat panel without tempering with source's verbs. +/atom/proc/_remove_verb_from_stat(mob/target, verb_or_list_to_remove) + if(!islist(verb_or_list_to_remove)) + verb_or_list_to_remove = list(verb_or_list_to_remove) + + var/list/verbs_to_remove = list() + for(var/procpath as anything in verb_or_list_to_remove) + var/list/proc_sources = LAZYACCESS(target.atom_verbs, procpath) + + if(src in proc_sources) + LAZYREMOVEASSOC(target.atom_verbs, procpath, src) + + if(!length(proc_sources)) + verbs_to_remove += procpath + + revoke_verb(target, verbs_to_remove) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index a7831ad1de9..ef262862f4d 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -193,7 +193,9 @@ throw_dir = get_dir(src, target) if(usr) if(MUTATION_HULK in usr.mutations) - src.throwing = 2 // really strong throw! + throwing = 2 // really strong throw! + else if(MUTATION_STRONG in usr.mutations) + throwing = 2 var/dist_travelled = 0 var/dist_since_sleep = 0 diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 75726b29ebe..c0d68ee30fc 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -73,15 +73,20 @@ // USE THIS WHEN COPYING STUFF OR YOU'LL GET CORRUPTION! /datum/dna/proc/Clone() var/datum/dna/new_dna = new() - new_dna.unique_enzymes=unique_enzymes - new_dna.b_type=b_type + + new_dna.unique_enzymes = unique_enzymes + new_dna.b_type = b_type new_dna.body_build = body_build - new_dna.real_name=real_name - new_dna.species=species - new_dna.body_markings=body_markings.Copy() - new_dna.s_base=s_base - new_dna.body_height=body_height + new_dna.real_name = real_name + new_dna.species = species + new_dna.body_markings = body_markings.Copy() + new_dna.s_base = s_base + new_dna.body_height = body_height + + for(var/i = 1; i <= DNA_UI_LENGTH; i++) + new_dna.UI[i] = UI[i] new_dna.UpdateUI() + return new_dna /////////////////////////////////////// // UNIQUE IDENTITY diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index e8b421c8850..0426fc2d253 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -158,6 +158,7 @@ H.update_body() H.update_eyes() H.update_hair() + H.update_facial_hair() return 1 else diff --git a/code/game/gamemodes/changeling/biostructure.dm b/code/game/gamemodes/changeling/biostructure.dm index 72ce752762e..c84f941a2c3 100644 --- a/code/game/gamemodes/changeling/biostructure.dm +++ b/code/game/gamemodes/changeling/biostructure.dm @@ -111,9 +111,10 @@ spawn() if(brainchan) if(istype(loc, /obj/item/organ/external)) - brainchan.verbs += /mob/living/carbon/brain/proc/transform_into_little_changeling + grant_verb(brainchan, /mob/living/carbon/brain/proc/transform_into_little_changeling) else - brainchan.verbs += /mob/living/carbon/brain/proc/headcrab_runaway + revoke_verb(brainchan, /mob/living/carbon/brain/proc/headcrab_runaway) + ..() diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 972f5bfeb02..711d9262dd1 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -28,7 +28,7 @@ var/datum/changeling/changeling = mind.changeling - verbs += /datum/changeling/proc/EvolutionMenu + grant_verb(src, /datum/changeling/proc/EvolutionMenu) add_language(LANGUAGE_LING) // Adding a biostructure if we still don't have one. diff --git a/code/game/gamemodes/changeling/changeling_datum.dm b/code/game/gamemodes/changeling/changeling_datum.dm index b43313b644f..4fb4390411d 100644 --- a/code/game/gamemodes/changeling/changeling_datum.dm +++ b/code/game/gamemodes/changeling/changeling_datum.dm @@ -121,7 +121,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E if(my_mob) remove_all_changeling_powers() my_mob.mind?.changeling = null - my_mob.verbs -= /datum/changeling/proc/EvolutionMenu + revoke_verb(my_mob, /datum/changeling/proc/EvolutionMenu) // Biostructural stuff var/obj/item/organ/internal/biostructure/BIO diff --git a/code/game/gamemodes/changeling/helpcode/mobs.dm b/code/game/gamemodes/changeling/helpcode/mobs.dm index 612f3264aba..cb260ef2981 100644 --- a/code/game/gamemodes/changeling/helpcode/mobs.dm +++ b/code/game/gamemodes/changeling/helpcode/mobs.dm @@ -102,8 +102,11 @@ /mob/living/simple_animal/hostile/little_changeling/New() - verbs += /mob/living/proc/ventcrawl - verbs += /mob/living/proc/hide + grant_verb(src, list( + /mob/living/proc/ventcrawl, + /mob/living/proc/hide, + )) + pixel_z = 6 ..() diff --git a/code/game/gamemodes/changeling/powers/hive_absorb.dm b/code/game/gamemodes/changeling/powers/hive_absorb.dm index c035ec8244d..46f719d046e 100644 --- a/code/game/gamemodes/changeling/powers/hive_absorb.dm +++ b/code/game/gamemodes/changeling/powers/hive_absorb.dm @@ -5,10 +5,10 @@ required_chems = 40 /datum/changeling_power/passive/hive_download/activate() - my_mob.verbs += /datum/changeling/proc/hive_download + grant_verb(my_mob, /datum/changeling/proc/hive_download) /datum/changeling_power/passive/hive_download/deactivate() - my_mob.verbs -= /datum/changeling/proc/hive_download + revoke_verb(my_mob, /datum/changeling/proc/hive_download) /datum/changeling/proc/hive_download() set category = "Changeling" @@ -24,7 +24,7 @@ var/datum/changeling_power/source_power = get_changeling_power_by_name("Hive Absorb") if(!source_power) - my_mob.verbs -= /datum/changeling/proc/hive_download + revoke_verb(my_mob, /datum/changeling/proc/hive_download) return if(!source_power.is_usable()) diff --git a/code/game/gamemodes/changeling/powers/hive_channel.dm b/code/game/gamemodes/changeling/powers/hive_channel.dm index ab58cc93c28..11f4687b352 100644 --- a/code/game/gamemodes/changeling/powers/hive_channel.dm +++ b/code/game/gamemodes/changeling/powers/hive_channel.dm @@ -5,10 +5,10 @@ required_chems = 20 /datum/changeling_power/passive/hive_upload/activate() - my_mob.verbs += /datum/changeling/proc/hive_upload + grant_verb(my_mob, /datum/changeling/proc/hive_upload) /datum/changeling_power/passive/hive_upload/deactivate() - my_mob.verbs -= /datum/changeling/proc/hive_upload + revoke_verb(my_mob, /datum/changeling/proc/hive_upload) /datum/changeling/proc/hive_upload() set category = "Changeling" @@ -24,7 +24,7 @@ var/datum/changeling_power/source_power = get_changeling_power_by_name("Hive Channel") if(!source_power) - my_mob.verbs -= /datum/changeling/proc/hive_upload + revoke_verb(my_mob, /datum/changeling/proc/hive_upload) return if(!source_power.is_usable()) diff --git a/code/game/gamemodes/changeling/powers/move_biostructure.dm b/code/game/gamemodes/changeling/powers/move_biostructure.dm index b26ce96ea7b..8d0c37ee5df 100644 --- a/code/game/gamemodes/changeling/powers/move_biostructure.dm +++ b/code/game/gamemodes/changeling/powers/move_biostructure.dm @@ -8,10 +8,10 @@ var/moving_delay_max = 150 /datum/changeling_power/passive/move_biostructure/activate() - my_mob.verbs += /datum/changeling/proc/move_biostructure + grant_verb(my_mob, /datum/changeling/proc/move_biostructure) /datum/changeling_power/passive/move_biostructure/deactivate() - my_mob.verbs -= /datum/changeling/proc/move_biostructure + revoke_verb(my_mob, /datum/changeling/proc/move_biostructure) /datum/changeling_power/passive/move_biostructure/update_recursive_enhancement() if(..()) @@ -35,7 +35,7 @@ var/datum/changeling_power/passive/move_biostructure/source_power = get_changeling_power_by_name("Relocate Biostructure") if(!source_power) - my_mob.verbs -= /datum/changeling/proc/move_biostructure + revoke_verb(my_mob, /datum/changeling/proc/move_biostructure) return if(!ishuman(my_mob)) diff --git a/code/game/gamemodes/changeling/powers/stasis.dm b/code/game/gamemodes/changeling/powers/stasis.dm index 3e38630cf02..998fbd28b5e 100644 --- a/code/game/gamemodes/changeling/powers/stasis.dm +++ b/code/game/gamemodes/changeling/powers/stasis.dm @@ -59,10 +59,27 @@ my_mob.death(0) // So our body ~actually~ dies until revived - addtimer(CALLBACK(src, nameof(.proc/revive_ready)), revive_time) + set_next_think(world.time + revive_time) update_screen_button() +/datum/changeling_power/toggled/stasis/think() + if(QDELETED(src)) + return + + if(!changeling.my_mob) + return + + is_ready = TRUE + to_chat(my_mob, SPAN("changeling", "We are ready to rise. Use the Revive ability to get back up.")) + + name = "Revive" + desc = "We will rise again from death." + + update_screen_button() + + feedback_add_details("changeling_powers", "FD") + // Reviving ourselves /datum/changeling_power/toggled/stasis/deactivate() if(changeling.true_dead) @@ -90,19 +107,3 @@ L.revive(ignore_prosthetic_prefs = TRUE) // Complete regeneration L.status_flags &= ~(FAKEDEATH) L.update_canmove() - -/datum/changeling_power/toggled/stasis/proc/revive_ready() - if(QDELETED(src)) - return - if(!changeling.my_mob) - return - - is_ready = TRUE - to_chat(my_mob, SPAN("changeling", "We are ready to rise. Use the Revive ability to get back up.")) - - name = "Revive" - desc = "We will rise again from death." - - update_screen_button() - - feedback_add_details("changeling_powers", "FD") diff --git a/code/game/gamemodes/changeling/powers/sting_blind.dm b/code/game/gamemodes/changeling/powers/sting_blind.dm index 7b6357def23..dc4526f1ebb 100644 --- a/code/game/gamemodes/changeling/powers/sting_blind.dm +++ b/code/game/gamemodes/changeling/powers/sting_blind.dm @@ -12,7 +12,7 @@ to_chat(target, SPAN("danger", "Your eyes burn horrifically!")) target.sdisabilities |= NEARSIGHTED - addtimer(CALLBACK(target, nameof(/mob/living/carbon/human.proc/remove_nearsighted)), 30 SECONDS) + target.set_next_think_ctx("remove_nearsighted", world.time + 30 SECONDS) target.eye_blind += 10 target.eye_blurry += 20 diff --git a/code/game/gamemodes/changeling/powers/sting_deaf.dm b/code/game/gamemodes/changeling/powers/sting_deaf.dm index 2da5c45228c..54426c36c17 100644 --- a/code/game/gamemodes/changeling/powers/sting_deaf.dm +++ b/code/game/gamemodes/changeling/powers/sting_deaf.dm @@ -12,6 +12,6 @@ to_chat(target, SPAN("danger", "Your ears pop and begin ringing loudly!")) target.sdisabilities |= DEAF - addtimer(CALLBACK(target, nameof(/mob/living/carbon/human.proc/remove_deaf)), 30 SECONDS) + target.set_next_think_ctx("remove_deaf", world.time + 30 SECONDS) feedback_add_details("changeling_powers", "DS") diff --git a/code/game/gamemodes/changeling/powers/sting_hallucination.dm b/code/game/gamemodes/changeling/powers/sting_hallucination.dm index b7a31be5b1d..68a90d9d09d 100644 --- a/code/game/gamemodes/changeling/powers/sting_hallucination.dm +++ b/code/game/gamemodes/changeling/powers/sting_hallucination.dm @@ -9,6 +9,6 @@ if(!..()) return FALSE - addtimer(CALLBACK(target, nameof(/mob/living/carbon/human.proc/delayed_hallucinations)), rand(30, 60) SECONDS) + target.set_next_think_ctx("delayed_hallucinations", (rand(30, 60) SECONDS)) feedback_add_details("changeling_powers", "HS") diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index c2f7af12cc1..ffb588742c2 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -111,12 +111,11 @@ /mob/living/simple_animal/hostile/faithless/cult ) -/obj/effect/gateway/active/New() - ..() - addtimer(CALLBACK(src, nameof(.proc/create_and_delete)), rand(30,60) SECONDS) +/obj/effect/gateway/active/Initialize() + . = ..() + set_next_think(world.time + (rand(30, 60) SECONDS)) - -/obj/effect/gateway/active/proc/create_and_delete() +/obj/effect/gateway/active/think() var/t = pick(spawnable) new t(src.loc) qdel(src) diff --git a/code/game/gamemodes/cult/ghosts.dm b/code/game/gamemodes/cult/ghosts.dm index b831beadbb3..86d8e5608cf 100644 --- a/code/game/gamemodes/cult/ghosts.dm +++ b/code/game/gamemodes/cult/ghosts.dm @@ -2,19 +2,27 @@ /datum/antagonist/cultist/proc/add_ghost_magic(mob/observer/ghost/M) if(max_cult_rating >= CULT_GHOSTS_1) - M.verbs += /mob/observer/ghost/proc/flick_lights - M.verbs += /mob/observer/ghost/proc/bloody_doodle - M.verbs += /mob/observer/ghost/proc/shatter_glass - M.verbs += /mob/observer/ghost/proc/slice - if(max_cult_rating >= CULT_GHOSTS_2) - M.verbs += /mob/observer/ghost/proc/move_item - M.verbs += /mob/observer/ghost/proc/whisper_to_cultist - M.verbs += /mob/observer/ghost/proc/bite_someone - M.verbs += /mob/observer/ghost/proc/chill_someone - if(max_cult_rating >= CULT_GHOSTS_3) - M.verbs += /mob/observer/ghost/proc/whisper_to_anyone - M.verbs += /mob/observer/ghost/proc/bloodless_doodle - M.verbs += /mob/observer/ghost/proc/toggle_visiblity + grant_verb(M, list( + /mob/observer/ghost/proc/flick_lights, + /mob/observer/ghost/proc/bloody_doodle, + /mob/observer/ghost/proc/shatter_glass, + /mob/observer/ghost/proc/slice, + )) + + if(max_cult_rating >= CULT_GHOSTS_2) + grant_verb(M, list( + /mob/observer/ghost/proc/move_item, + /mob/observer/ghost/proc/whisper_to_cultist, + /mob/observer/ghost/proc/bite_someone, + /mob/observer/ghost/proc/chill_someone, + )) + + if(max_cult_rating >= CULT_GHOSTS_3) + grant_verb(M, list( + /mob/observer/ghost/proc/whisper_to_anyone, + /mob/observer/ghost/proc/bloodless_doodle, + /mob/observer/ghost/proc/toggle_visiblity, + )) /mob/observer/ghost/proc/ghost_ability_check() var/turf/T = get_turf(src) @@ -146,7 +154,7 @@ for(var/obj/item/I in range(1)) if(I.w_class <= 2) choices += I - + choices -= ghost_multitool if(!choices.len) to_chat(src, "There are no suitable items nearby.") diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 0507474a575..b159249bc0d 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -26,12 +26,13 @@ else to_chat(user, "\The [src] seems full of illegible scribbles. Is this a joke?") -/obj/item/book/tome/_examine_text(mob/user as mob) +/obj/item/book/tome/examine(mob/user, infix) . = ..() + if(!iscultist(user)) - . += "\nAn old, dusty tome with frayed edges and a sinister looking cover." + . += "An old, dusty tome with frayed edges and a sinister looking cover." else - . += "\nThe scriptures of Nar-Sie, The One Who Sees, The Geometer of Blood. Contains the details of every ritual his followers could think of. Most of these are useless, though." + . += "The scriptures of Nar-Sie, The One Who Sees, The Geometer of Blood. Contains the details of every ritual his followers could think of. Most of these are useless, though." /obj/item/book/tome/afterattack(atom/A, mob/user, proximity) if(!proximity || !iscultist(user)) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 8f30c9a6433..16984f75277 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -119,8 +119,9 @@ else animate(src) -/obj/effect/rune/_examine_text(mob/user) - . = ..(user) +/obj/effect/rune/examine(mob/user, infix) + . = ..() + if(iscultist(user) || isghost(user)) . += "This is \a [cultname] rune." @@ -288,10 +289,11 @@ A.forceMove(T) return ..() -/obj/effect/rune/teleport/_examine_text(mob/user) - . = ..(user) +/obj/effect/rune/teleport/examine(mob/user, infix) + . = ..() + if(iscultist(user)) - . += "
Its name is [destination]." + . += "It's name is [destination]." /obj/effect/rune/teleport/cast(mob/living/user) if(user.loc == src) @@ -413,15 +415,16 @@ rune = null return ..() -/obj/effect/cultwall/_examine_text(mob/user) - . = ..(user) +/obj/effect/cultwall/examine(mob/user, infix) + . = ..() + if(iscultist(user)) if(health == max_health) - . += "
It is fully intact." + . += "It is fully intact." else if(health > max_health * 0.5) - . += "
It is damaged." + . += "It is damaged." else - . += "
It is about to dissipate." + . += "It is about to dissipate." /obj/effect/cultwall/attack_hand(mob/living/user) if(iscultist(user)) diff --git a/code/game/gamemodes/endgame/bluespace_jump/bluespace_jump.dm b/code/game/gamemodes/endgame/bluespace_jump/bluespace_jump.dm index 3d0d96a2200..4b4bbe34111 100644 --- a/code/game/gamemodes/endgame/bluespace_jump/bluespace_jump.dm +++ b/code/game/gamemodes/endgame/bluespace_jump/bluespace_jump.dm @@ -112,8 +112,8 @@ /obj/effect/bluegoast/proc/mirror_dir(atom/movable/am, old_dir, new_dir) set_dir(GLOB.reverse_dir[new_dir]) -/obj/effect/bluegoast/_examine_text(user) - return daddy._examine_text(user) +/obj/effect/bluegoast/examine(mob/user, infix) + return daddy.examine(user) /obj/effect/bluegoast/proc/blueswitch() var/mob/living/carbon/human/H = new(get_turf(src), daddy.species.name) diff --git a/code/game/gamemodes/godmode/form_items/narsie_items.dm b/code/game/gamemodes/godmode/form_items/narsie_items.dm index 741ddd80d10..2b3893cfacb 100644 --- a/code/game/gamemodes/godmode/form_items/narsie_items.dm +++ b/code/game/gamemodes/godmode/form_items/narsie_items.dm @@ -42,11 +42,13 @@ base_icon = "bone_axe" var/stored_power = 0 -/obj/item/material/twohanded/fireaxe/cult/_examine_text(mob/user) +/obj/item/material/twohanded/fireaxe/cult/examine(mob/user, infix) . = ..() - if(!. || !stored_power) + + if(!stored_power) return - . += "\nIt exudes a death-like smell." + + . += SPAN_NOTICE("It exudes a death-like smell.") /obj/item/material/twohanded/fireaxe/cult/resolve_attackby(atom/a, mob/user, click_params) if(istype(a, /obj/structure/deity/altar)) @@ -58,7 +60,7 @@ if(ismob(a)) var/mob/M = a if(!M.is_ooc_dead()) - register_signal(M, SIGNAL_MOB_DEATH, /obj/item/material/twohanded/fireaxe/cult/proc/gain_power) + register_signal(M, SIGNAL_MOB_DEATH, nameof(/obj/item/material/twohanded/fireaxe/cult.proc/gain_power)) spawn(30) unregister_signal(M, SIGNAL_MOB_DEATH) return ..() diff --git a/code/game/gamemodes/godmode/god_altar.dm b/code/game/gamemodes/godmode/god_altar.dm index a47a9cb4e7b..44f4be7079c 100644 --- a/code/game/gamemodes/godmode/god_altar.dm +++ b/code/game/gamemodes/godmode/god_altar.dm @@ -60,9 +60,9 @@ set_next_think(world.time + 1 SECOND) target = L update_icon() - register_signal(L, SIGNAL_QDELETING, /obj/structure/deity/altar/proc/remove_target) - register_signal(L, SIGNAL_MOVED, /obj/structure/deity/altar/proc/remove_target) - register_signal(L, SIGNAL_MOB_DEATH, /obj/structure/deity/altar/proc/remove_target) + register_signal(L, SIGNAL_QDELETING, nameof(/obj/structure/deity/altar.proc/remove_target)) + register_signal(L, SIGNAL_MOVED, nameof(/obj/structure/deity/altar.proc/remove_target)) + register_signal(L, SIGNAL_MOB_DEATH, nameof(/obj/structure/deity/altar.proc/remove_target)) /obj/structure/deity/altar/proc/remove_target() set_next_think(0) diff --git a/code/game/gamemodes/godmode/god_pylon.dm b/code/game/gamemodes/godmode/god_pylon.dm index 8444a2a1247..09d0df52548 100644 --- a/code/game/gamemodes/godmode/god_pylon.dm +++ b/code/game/gamemodes/godmode/god_pylon.dm @@ -30,7 +30,7 @@ return to_chat(L, "You place your hands on \the [src], feeling yourself intune to its vibrations.") intuned += L - register_signal(L, SIGNAL_QDELETING, /obj/structure/deity/pylon/proc/remove_intuned) + register_signal(L, SIGNAL_QDELETING, nameof(/obj/structure/deity/pylon.proc/remove_intuned)) /obj/structure/deity/pylon/proc/remove_intuned(mob/living/L) if(!(L in intuned)) diff --git a/code/game/gamemodes/malfunction/malf_hardware.dm b/code/game/gamemodes/malfunction/malf_hardware.dm index dc92f49bdcf..2f43bc0e228 100644 --- a/code/game/gamemodes/malfunction/malf_hardware.dm +++ b/code/game/gamemodes/malfunction/malf_hardware.dm @@ -8,7 +8,7 @@ if(owner && istype(owner)) owner.hardware = src if(driver) - owner.verbs += driver + grant_verb(owner, driver) /datum/malf_hardware/proc/get_examine_desc() return "It has some sort of hardware attached to its core" diff --git a/code/game/gamemodes/malfunction/malf_research.dm b/code/game/gamemodes/malfunction/malf_research.dm index d2bd7a29937..cb94b5f4820 100644 --- a/code/game/gamemodes/malfunction/malf_research.dm +++ b/code/game/gamemodes/malfunction/malf_research.dm @@ -33,7 +33,7 @@ return to_chat(owner, "Research Completed: [focus.name]") if(focus.ability) - owner.verbs.Add(focus.ability) + grant_verb(owner, focus.ability) focus.research_finished(owner) if(focus.next) available_abilities += focus.next diff --git a/code/game/gamemodes/malfunction/malf_research_ability.dm b/code/game/gamemodes/malfunction/malf_research_ability.dm index 4888662983d..70027b02f69 100644 --- a/code/game/gamemodes/malfunction/malf_research_ability.dm +++ b/code/game/gamemodes/malfunction/malf_research_ability.dm @@ -16,4 +16,4 @@ if(!user) return if(ability) - user.verbs.Add(ability) + grant_verb(user.verbs, ability) diff --git a/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm b/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm index ca48421b04b..957efc992ee 100644 --- a/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm +++ b/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm @@ -207,4 +207,4 @@ user.hack_can_fail = 0 user.system_override = 2 - user.verbs += new /datum/game_mode/malfunction/verb/ai_destroy_station() + grant_verb(user, /datum/game_mode/malfunction/verb/ai_destroy_station) diff --git a/code/game/gamemodes/traitor/contracts.dm b/code/game/gamemodes/traitor/contracts.dm index d3301c3efd2..42c9b85cccd 100644 --- a/code/game/gamemodes/traitor/contracts.dm +++ b/code/game/gamemodes/traitor/contracts.dm @@ -106,7 +106,7 @@ GLOBAL_LIST_INIT(syndicate_factions, list( return /datum/antag_contract/proc/create_explain_text(target_and_task) - desc = "My client is [organization.name], [reason]. They have information that the target is located somwhere aboard [GLOB.using_map.station_name]. \ + desc = "My client is [organization.name], [reason]. They have information that the target is located somewhere aboard [GLOB.using_map.station_name]. \ Your mission[prob(25) ? ", should you choose to accept it, is to" : " is to"] [target_and_task] The reward for closing this contract is [reward] TC." /datum/antag_contract/proc/can_place() @@ -385,7 +385,7 @@ GLOBAL_LIST_INIT(syndicate_factions, list( /datum/antag_contract/item/assassinate name = "Assassinate" - reward = 2 // This is how expensive your life is, fellow NT employee + reward = 4 // This is how expensive your life is, fellow NT employee intent = CONTRACT_IMPACT_MILITARY var/target_real_name var/detected_less_tc = FALSE @@ -394,6 +394,7 @@ GLOBAL_LIST_INIT(syndicate_factions, list( var/weakref/target // obj/item/organ var/weakref/alternative_target // obj/item var/weakref/H // mob/living/carbon/human + var/full_reward_mod = 1.5 /datum/antag_contract/item/assassinate/New(datum/contract_organization/contract_organization, reason, datum/mind/target) organization = contract_organization @@ -465,7 +466,7 @@ GLOBAL_LIST_INIT(syndicate_factions, list( target = weakref(_target) var/datum/gender/T = gender_datums[_H.get_gender()] - create_explain_text("assassinate [target_real_name] and send[alternative_message] or [T.his] [_target.name] for double pay via STD (found in Contracts Equipment) as a proof. You must make sure that the target is completely, irreversibly dead.") + create_explain_text("assassinate [target_real_name] and send[alternative_message] or [T.his] [_target.name] for an increased pay via STD (found in Contracts Equipment) as a proof. You must make sure that the target is completely, irreversibly dead.") /datum/antag_contract/item/assassinate/can_place() return ..() && target && !QDELETED(target_mind) && !QDELETED(target_mind.current) @@ -495,7 +496,7 @@ GLOBAL_LIST_INIT(syndicate_factions, list( to_chat(M, SPAN("danger", "According to our information, the target ([target_real_name]) specified in the contract is still alive, don't try to deceive us or the consequences will be... Inevitable.")) return if(!detected_less_tc) - reward = reward * 2 + reward = round(reward * full_reward_mod) ..(close_uplink) /datum/antag_contract/item/assassinate/on_mob_despawned(datum/mind/M) diff --git a/code/game/gamemodes/traitor/fixer.dm b/code/game/gamemodes/traitor/fixer.dm index de6b54e92cd..b704890a0f4 100644 --- a/code/game/gamemodes/traitor/fixer.dm +++ b/code/game/gamemodes/traitor/fixer.dm @@ -22,11 +22,11 @@ /datum/contract_fixer/proc/roundstart() if(enable_roundstart_proc) create_random_contract(min(6 + round(SSticker.minds.len / 5), 12)) - addtimer(CALLBACK(src, nameof(.proc/contract_tick)), time_to_nex_contract) + set_next_think(time_to_nex_contract) -/datum/contract_fixer/proc/contract_tick() +/datum/contract_fixer/think() create_random_contract(1) - addtimer(CALLBACK(src, nameof(.proc/contract_tick)), time_to_nex_contract) + set_next_think(time_to_nex_contract) /datum/contract_fixer/proc/create_random_contract(count = 1) while(count--) diff --git a/code/game/gamemodes/vampire/powers/veilwalk.dm b/code/game/gamemodes/vampire/powers/veilwalk.dm index 89b24379d46..c280491463c 100644 --- a/code/game/gamemodes/vampire/powers/veilwalk.dm +++ b/code/game/gamemodes/vampire/powers/veilwalk.dm @@ -43,6 +43,10 @@ var/datum/vampire_power/toggled/veilwalk/my_power = null var/warning_level = 0 +/obj/effect/dummy/veil_walk/Initialize(mapload) + . = ..() + add_think_ctx("kick_unconscious", CALLBACK(null, nameof(.proc/_kick_unconscious)), 0) + /obj/effect/dummy/veil_walk/Destroy() vampire = null my_power = null @@ -57,7 +61,8 @@ M.reset_view(null) /obj/effect/dummy/veil_walk/relaymove(mob/user, direction) - if (!can_move) + THROTTLE(can_move_cooldown, 0.2 SECONDS) + if(!can_move_cooldown) return var/turf/new_loc = get_step(src, direction) @@ -70,14 +75,11 @@ if(!T.contains_dense_objects()) last_valid_turf = T - can_move = FALSE - addtimer(CALLBACK(src, nameof(.proc/_unlock_move)), 2, TIMER_UNIQUE) - /obj/effect/dummy/veil_walk/think() if(vampire.my_mob.stat) if(vampire.my_mob.stat == 1) to_chat(vampire.my_mob, SPAN("warning", "You cannot maintain this form while unconcious.")) - addtimer(CALLBACK(src, nameof(.proc/_kick_unconscious)), 1 SECOND, TIMER_UNIQUE) + set_next_think_ctx("kick_unconscious", world.time + 1 SECOND) else deactivate() return diff --git a/code/game/gamemodes/vampire/vampire_datum.dm b/code/game/gamemodes/vampire/vampire_datum.dm index 699367dcd03..f09f1056c2d 100644 --- a/code/game/gamemodes/vampire/vampire_datum.dm +++ b/code/game/gamemodes/vampire/vampire_datum.dm @@ -153,7 +153,7 @@ purchased_powers.Add(P) if(P.legacy_handling) - my_mob.verbs += P.verbpath + grant_verb(my_mob, P.verbpath) else new P.verbpath(my_mob) @@ -167,7 +167,7 @@ return if(P.legacy_handling) - my_mob.verbs -= P.verbpath + revoke_verb(my_mob, P.verbpath) else for(var/datum/vampire_power/VP in available_powers) if(VP.type == P.verbpath) @@ -180,7 +180,7 @@ /datum/vampire/proc/remove_powers() for(var/datum/power/vampire/P in purchased_powers) if(P.legacy_handling) - my_mob.verbs -= P.verbpath + revoke_verb(my_mob, P.verbpath) continue purchased_powers.Cut() for(var/thing in available_powers) @@ -301,7 +301,7 @@ my_mob.visible_message(SPAN("danger", "A dark aura manifests itself around [my_mob], their eyes turning red and their composure changing to be more beast-like."),\ SPAN("danger", "You can resist no longer. The power of the Veil takes control over your mind: you are unable to speak or think. In people, you see nothing but prey to be feasted upon. You are reduced to an animal.")) - my_mob.add_mutation(MUTATION_HULK) + my_mob.add_mutation(MUTATION_STRONG) my_mob.update_mutations() my_mob.set_sight(my_mob.sight|SEE_MOBS) @@ -318,7 +318,7 @@ if(prob(force_stop ? 100 : blood_usable)) vamp_status &= ~VAMP_FRENZIED - my_mob.remove_mutation(MUTATION_HULK) + my_mob.remove_mutation(MUTATION_STRONG) my_mob.update_mutations() my_mob.set_sight(my_mob.sight&(~SEE_MOBS)) diff --git a/code/game/gamemodes/vampire/vampire_helpers.dm b/code/game/gamemodes/vampire/vampire_helpers.dm index 74840a8ae22..d43121c10b7 100644 --- a/code/game/gamemodes/vampire/vampire_helpers.dm +++ b/code/game/gamemodes/vampire/vampire_helpers.dm @@ -13,7 +13,7 @@ else if(mind.vampire.vamp_status & VAMP_ISTHRALL) return - verbs += /datum/game_mode/vampire/verb/vampire_help + grant_verb(src, /datum/game_mode/vampire/verb/vampire_help) mind.vampire.set_up_organs() mind.vampire.update_powers(FALSE) @@ -49,7 +49,7 @@ O.pulse = PULSE_NORM O.think() - verbs -= /datum/game_mode/vampire/verb/vampire_help + revoke_verb(src, /datum/game_mode/vampire/verb/vampire_help) return TRUE diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm index 4ce74fe0811..15b8cb06067 100644 --- a/code/game/jobs/whitelist.dm +++ b/code/game/jobs/whitelist.dm @@ -69,7 +69,7 @@ var/list/whitelist = list() if(istype(species,/datum/language)) var/datum/language/L = species - if(!(L.flags & (WHITELISTED|RESTRICTED))) + if(!(L.language_flags & (WHITELISTED|RESTRICTED))) return 1 return whitelist_lookup(L.name, M.ckey) diff --git a/code/game/machinery/CableLayer.dm b/code/game/machinery/CableLayer.dm index 0accc3cf077..ae9518a8504 100644 --- a/code/game/machinery/CableLayer.dm +++ b/code/game/machinery/CableLayer.dm @@ -14,9 +14,12 @@ cable.amount = 100 ..() -/obj/machinery/cablelayer/Move(new_turf,M_Dir) +/obj/machinery/cablelayer/Move(newloc, direct) . = ..() - layCable(new_turf,M_Dir) + if(!.) + return + + layCable(newloc, direct) /obj/machinery/cablelayer/attack_hand(mob/user) if(!cable&&!on) @@ -49,9 +52,9 @@ else to_chat(usr, "There's no more cable on the reel.") -/obj/machinery/cablelayer/_examine_text(mob/user) +/obj/machinery/cablelayer/examine(mob/user, infix) . = ..() - . += "\n\The [src]'s cable reel has [cable.amount] length\s left." + . += "\The [src]'s cable reel has [cable.amount] length\s left." /obj/machinery/cablelayer/proc/load_cable(obj/item/stack/cable_coil/CC) if(istype(CC) && CC.amount) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 1e4a236f3c2..110a2bf9777 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -118,7 +118,7 @@ return if(inoperable(MAINT)) - show_splash_text(usr, "no power!") + show_splash_text(usr, "no power!", "\The [src] is unpowered!") return var/mob/living/carbon/human/patient = victim_ref?.resolve() @@ -210,11 +210,11 @@ /obj/machinery/optable/proc/check_table(mob/living/carbon/patient) var/mob/living/carbon/human/occupant = victim_ref?.resolve() if(istype(occupant) && get_turf(occupant) == get_turf(src) && occupant.lying) - show_splash_text(usr, "already occupied!") + show_splash_text(usr, "already occupied!", "\The [src] is already occupied!") return FALSE if(patient.buckled) - show_splash_text(usr, "unbuckle the patient first!") + show_splash_text(usr, "unbuckle the patient first!", "You must unbuckle [patient] first!") return FALSE return TRUE diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 07bf1c1a537..c8110a9f51f 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -55,13 +55,16 @@ new /obj/item/reagent_containers/vessel/beaker/large(src)) RefreshParts() -/obj/machinery/sleeper/_examine_text(mob/user) +/obj/machinery/sleeper/examine(mob/user, infix) . = ..() - if (user.Adjacent(src)) - if (beaker) - . += "\nIt is loaded with a beaker." - if(occupant) - . += "\n[occupant._examine_text(user)]" + + if(!user.Adjacent(src)) + return + + if(beaker) + . += "It is loaded with a beaker." + if(occupant) + . += "[occupant.examine(user)]" /obj/machinery/sleeper/Process() if(stat & (NOPOWER|BROKEN)) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 0c54f4d54eb..69a7676f04c 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -47,11 +47,14 @@ go_out() return -/obj/machinery/bodyscanner/_examine_text(mob/user) +/obj/machinery/bodyscanner/examine(mob/user, infix) . = ..() - if(user.Adjacent(src)) - if(occupant) - . += "\n[occupant._examine_text(user)]" + + if(!user.Adjacent(src)) + return + + if(occupant) + . += occupant.examine(user) /obj/machinery/bodyscanner/verb/eject() set src in oview(1) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 17826ed5070..efde48bb683 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -849,12 +849,13 @@ return ..() -/obj/machinery/alarm/_examine_text(mob/user) - . = ..(user) - if (buildstage < 2) - . += "\nIt is not wired." - if (buildstage < 1) - . += "\nThe circuit is missing." +/obj/machinery/alarm/examine(mob/user, infix) + . = ..() + + if(buildstage < 2) + . += "It is not wired." + if(buildstage < 1) + . += "The circuit is missing." /* AIR ALARM CIRCUIT Just a object used in constructing air alarms diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm index 22a9955e049..9ed36ba077d 100644 --- a/code/game/machinery/atmoalter/meter.dm +++ b/code/game/machinery/atmoalter/meter.dm @@ -125,23 +125,23 @@ last_light = meter_light -/obj/machinery/meter/_examine_text(mob/user) +/obj/machinery/meter/examine(mob/user, infix) . = ..() if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || isghost(user))) - . += "\nYou are too far away to read it." + . += SPAN_WARNING("You are too far away to read it.") else if(stat & (NOPOWER|BROKEN)) - . += "\nThe display is off." + . += SPAN_WARNING("The display is off.") else if(src.target) var/datum/gas_mixture/environment = target.return_air() if(environment) - . += "\nThe pressure gauge reads [round(environment.return_pressure(), 0.01)] kPa; [round(environment.temperature,0.01)]K ([round(CONV_KELVIN_CELSIUS(environment.temperature), 0.01)]°C)" + . += "The pressure gauge reads [round(environment.return_pressure(), 0.01)] kPa; [round(environment.temperature,0.01)]K ([round(CONV_KELVIN_CELSIUS(environment.temperature), 0.01)]°C)" else - . += "\nThe sensor error light is blinking." + . += "The sensor error light is blinking." else - . += "\nThe connect error light is blinking." + . += "The connect error light is blinking." /obj/machinery/meter/Click() diff --git a/code/game/machinery/atmoalter/sauna.dm b/code/game/machinery/atmoalter/sauna.dm new file mode 100644 index 00000000000..dcb39fd12db --- /dev/null +++ b/code/game/machinery/atmoalter/sauna.dm @@ -0,0 +1,413 @@ +#define WATER_UNIT_PER_TILE 5 +#define TEMPERATURE_INCREMENT 10 +#define STEAM_OVERLAY_ALPHA_INCREMENT 20 +#define TIME_WITHOUT_WATER_UNTIL_FIRE 2 MINUTES + +/obj/machinery/sauna + name = "sauna heater" + desc = "Electric sauna heater - turns water into steam!" + icon = 'icons/obj/machines/sauna.dmi' + icon_state = "sauna" + base_icon_state = "sauna" + obj_flags = OBJ_FLAG_ANCHORABLE + use_power = POWER_USE_IDLE + density = TRUE + anchored = TRUE + stat = POWEROFF // Disabled at roundstart + + component_types = list( + /obj/item/circuitboard/sauna, + /obj/item/reagent_containers/vessel/beaker/large = 1, + /obj/item/stock_parts/capacitor = 1 + ) + + /// Container storing reagents for steam + var/obj/item/reagent_containers/container + + var/static/image/container_overlay = image(icon = 'icons/obj/machines/sauna.dmi', icon_state = "container") + var/static/image/on_bad = image(icon = 'icons/obj/machines/sauna.dmi', icon_state = "on_bad") + var/static/image/on_good = image(icon = 'icons/obj/machines/sauna.dmi', icon_state = "on_good") + + var/static/image/radial_detach = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_detach") + var/static/image/radial_add = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_add") + var/static/image/radial_subtract = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_subtract") + var/static/image/radial_use = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_use") + + var/image/emissive + + /// Determines how fast it heats air + var/heating_power = 80 KILO WATTS + /// Sauna will try to maintain this temperature + var/target_temperature = 40 CELSIUS + /// Sauna can't heat more than this + var/max_temperature = 130 CELSIUS + /// Sauna esssentialy can't act as a freezer + var/min_temperature = 40 CELSIUS + /// Reference to the steam object that handles visual effects and transfer of reagents + var/atom/movable/steam_controller/steam + /// world.time of the last Process() with water. + var/last_tick_with_water + /// To prevent dublication of steam particles and sounds + var/currently_steaming = FALSE + /// Ref to steam particles for further qdel + var/atom/movable/particle_emitter/smoke_steam/steam_particles + +/obj/machinery/sauna/Initialize(mapload) + . = ..() + emissive = emissive_appearance(icon, "sauna_ea") + +/obj/machinery/sauna/Destroy() + steam = null // Steam object deletes itself on depletion of reagents + QDEL_NULL(steam_particles) + QDEL_NULL(emissive) + return ..() + +/obj/machinery/sauna/attack_hand(mob/user) + . = ..() + + if(issilicon(user)) + return + + if(!anchored) + show_splash_text(user, "anchor it first!", "\The [src] must be anchored to the floor!") + return + + var/list/options = list() + + if(istype(container)) + options["Detach container"] = radial_detach + + if(target_temperature < max_temperature) + options["Increase Temperature"] = radial_add + + if(target_temperature > min_temperature) + options["Decrease Temperature"] = radial_subtract + + options["Toggle"] = radial_use + + if(length(options) < 1) + return + + var/choice + + if(length(options) == 1) + choice = options[1] + else + choice = show_radial_menu(user, src, options, require_near = !issilicon(user)) + + switch(choice) + if("Detach container") + if(!istype(container)) + return + + replace_container(user) + if("Toggle") + toggle(user) + playsound(get_turf(src), GET_SFX(SFX_USE_KNOB), 45, TRUE) + if("Increase Temperature") + target_temperature = min(max_temperature, target_temperature + TEMPERATURE_INCREMENT) + show_splash_text(user, "temperature increased", "You increase \the [src]'s target temperature to [CONV_KELVIN_CELSIUS(target_temperature)] celsius.") + playsound(get_turf(src), GET_SFX(SFX_USE_KNOB), 45, TRUE) + if("Decrease Temperature") + target_temperature = max(min_temperature, target_temperature - TEMPERATURE_INCREMENT) + show_splash_text(user, "temperature decreased", "You decrease \the [src]'s target temperature to [CONV_KELVIN_CELSIUS(target_temperature)] celsius.") + playsound(get_turf(src), GET_SFX(SFX_USE_KNOB), 45, TRUE) + +/obj/machinery/sauna/attackby(obj/item/attack_item, mob/living/user, params) + if(!container && default_deconstruction_screwdriver(user, attack_item)) + return + + if(default_deconstruction_crowbar(user, attack_item)) + return + + if(istype(attack_item, /obj/item/reagent_containers/vessel) && attack_item.is_open_container()) + var/obj/item/reagent_containers/vessel/new_container = attack_item + if(!user.drop(new_container, src)) + return + + replace_container(user, new_container) + return + + return ..() + +/obj/machinery/sauna/wrench_floor_bolts(mob/user) + if(!(stat & (NOPOWER | BROKEN | POWEROFF))) + show_splash_text(user, "turn off first!", "\The [src] must be turned off first!") + return + + . = ..() + if(!.) + return + + if(!anchored) + stat |= POWEROFF + STOP_PROCESSING(SSmachines, src) + update_icon() + +/obj/machinery/sauna/Process() + if(stat & (NOPOWER | BROKEN | POWEROFF)) + STOP_PROCESSING(SSmachines, src) + return + + var/datum/gas_mixture/env = loc.return_air() + if(!istype(env)) + return + + if(abs(env.temperature - target_temperature) <= 0.1) + return + + var/transfer_moles = 0.25 * env.total_moles + var/datum/gas_mixture/removed = env.remove(transfer_moles) + + if(!istype(removed)) + return + + var/heat_transfer = removed.get_thermal_energy_change(target_temperature) + var/power_draw + if(heat_transfer < 0) // Sauna can't act as a freezer + return + + heat_transfer = min(heat_transfer, heating_power) + removed.add_thermal_energy(heat_transfer) + power_draw = heat_transfer + use_power_oneoff(power_draw) + env.merge(removed) + + if(container?.reagents.get_reagent_amount(/datum/reagent/water)) + last_tick_with_water = world.time + else + update_icon() + + if(world.time >= last_tick_with_water + TIME_WITHOUT_WATER_UNTIL_FIRE) + catch_fire() + return + + if(istype(steam) && !QDELETED(steam)) + container?.reagents.trans_to_holder(steam.reagents, 15) + steam_effect() + + else + if(env.temperature <= 40 CELSIUS) + return + + var/turf/simulated/T = get_turf(src) + var/total_water_required = T?.zone?.contents?.len * WATER_UNIT_PER_TILE + if(container?.reagents?.total_volume <= total_water_required) + return + + steam = new /atom/movable/steam_controller(get_turf(src), src) + steam_effect() + container.reagents.trans_to_holder(steam.reagents, container.reagents.total_volume) + +/obj/machinery/sauna/proc/steam_effect() + if(currently_steaming) + return + + currently_steaming = TRUE + playsound(get_turf(src), 'sound/effects/water_sizzle.ogg', 15) + steam_particles = new /atom/movable/particle_emitter/smoke_steam(get_turf(src)) + set_next_think(world.time + 30 SECONDS) + +/obj/machinery/sauna/think() + QDEL_NULL(steam_particles) + currently_steaming = FALSE + +/obj/machinery/sauna/proc/catch_fire() + var/atom/movable/particle_emitter/fire_smoke/fire = new /atom/movable/particle_emitter/fire_smoke(get_turf(src)) + stat |= BROKEN + update_icon() + QDEL_IN(fire, 20 SECONDS) + +/// Generic toggle proc. Nothing special. +/obj/machinery/sauna/proc/toggle(mob/user) + if(stat & NOPOWER) + show_splash_text(user, "no power!", "\The [src] is not powered!") + return + + if(stat & BROKEN) + show_splash_text(user, "broken!", "\The [src] is broken!") + return + + if(stat & POWEROFF) + stat &= ~POWEROFF + show_splash_text(user, "enabled", "You turn on \the [src]") + last_tick_with_water = world.time + START_PROCESSING(SSmachines, src) + else + stat |= POWEROFF + show_splash_text(user, "disabled", "You turn off \the [src]") + STOP_PROCESSING(SSmachines, src) + + update_icon() + +/// Handles insertion/ejection of a given reagent container. +/obj/machinery/sauna/proc/replace_container(mob/living/user, obj/item/reagent_containers/vessel/new_container) + if(!istype(user)) + return + + if(container) + user.pick_or_drop(container, get_turf(src)) + show_splash_text(user, "ejected container", "Ejected \the [container] from \the [src].") + container = null + + if(new_container) + container = new_container + show_splash_text(user, "instered container", "Inserted \the [container] in \the [src].") + + update_icon() + +/obj/machinery/sauna/on_update_icon() + icon_state = "[base_icon_state][(stat & (BROKEN | NOPOWER | POWEROFF)) ? "" : "_on"]" + + CutOverlays(container_overlay) + if(!isnull(container)) + AddOverlays(container_overlay) + + CutOverlays(on_bad) + CutOverlays(on_good) + if(!(stat & (BROKEN | NOPOWER | POWEROFF))) + if(istype(container) && container?.reagents.get_reagent_amount(/datum/reagent/water)) + AddOverlays(on_good) + set_light(0.15, 0.1, 1, 2, "#82ff4c" ) + else + AddOverlays(on_bad) + set_light(0.15, 0.1, 1, 2, "#f86060") + + CutOverlays(emissive) + var/should_glow = update_glow() + if(should_glow) + AddOverlays(emissive) + +/obj/machinery/sauna/proc/update_glow() + if(stat & (BROKEN | NOPOWER | POWEROFF)) + set_light(0) + return FALSE + + if(istype(container) && container?.reagents.get_reagent_amount(/datum/reagent/water)) + set_light(0.15, 1, 2, 3.5, "#82ff4c") + else + set_light(0.15, 1, 2, 3.5, "#f86060") + return TRUE + +/obj/machinery/sauna/examine(mob/user, infix) + . = ..() + + if(container) + if(container.reagents && container.reagents.total_volume) + . += SPAN_NOTICE("\The [src] has \a [container] loaded. It contains [container.reagents.total_volume]u of reagents.") + else + . += SPAN_NOTICE("\The [src] has \a [container] loaded. It is empty.") + + . += SPAN_NOTICE("Its temperature is set at [CONV_KELVIN_CELSIUS(target_temperature)] celsius.") + + if(panel_open) + . += SPAN_NOTICE("[src]'s maintenance hatch is open!") + +/atom/movable/steam_controller + anchored = TRUE + invisibility = INVISIBILITY_SYSTEM + var/atom/movable/steam_overlay/overlay = /atom/movable/steam_overlay + var/weakref/sauna_ref + +/atom/movable/steam_controller/Initialize(mapload, obj/machinery/sauna/sauna) + . = ..() + if(istype(sauna)) + sauna_ref = weakref(sauna) + + create_reagents(1000) + + overlay = new overlay() + + handle_turfs() + + set_next_think(world.time + 30 SECONDS) + +/atom/movable/steam_controller/Destroy() + var/turf/simulated/T = get_turf(src) + var/list/turfs = T?.zone?.contents + for(var/turf/turf in turfs) + turf.vis_contents.Remove(overlay) + + QDEL_NULL(overlay) + + var/obj/machinery/sauna/sauna = sauna_ref.resolve() + if(istype(sauna)) + sauna.steam = null + sauna_ref = null + + return ..() + +/atom/movable/steam_controller/think() + var/turf/simulated/T = get_turf(src) + var/list/turfs = T?.zone?.contents + var/datum/gas_mixture/env = loc.return_air() + + handle_turfs() + + if(env.temperature <= 40 CELSIUS) + condense(turfs) + return + + if(turfs?.len * WATER_UNIT_PER_TILE > reagents?.get_reagent_amount(/datum/reagent/water)) + disappear() + return + + if(turfs?.len * WATER_UNIT_PER_TILE < reagents?.get_reagent_amount(/datum/reagent/water)) + reagents?.remove_reagent(/datum/reagent/water, turfs?.len * WATER_UNIT_PER_TILE) + thicken() + + set_next_think(world.time + 30 SECONDS) + +/// Checks all affected turfs, adds visual effects and transfers reagents to atoms and mobs. +/atom/movable/steam_controller/proc/handle_turfs() + var/turf/simulated/T = get_turf(src) + var/list/turfs = T?.zone?.contents + for(var/turf/simulated/floor/turf in turfs) + if(!LAZYISIN(turf.vis_contents, overlay)) + turf.vis_contents.Add(overlay) + + if(!reagents.reagent_list.len) + continue + + reagents.touch_turf(turf) + for(var/atom/A in turf.contents) + if(isliving(A)) + var/mob/living/affected = A + if(affected.wear_mask && (affected.wear_mask.item_flags & ITEM_FLAG_BLOCK_GAS_SMOKE_EFFECT)) + continue + + reagents.trans_to_mob(affected, 5, CHEM_INGEST) + reagents.trans_to_mob(affected, 5, CHEM_BLOOD) + else if(isobj(A) && !A.simulated) + reagents.touch_obj(A) + +/atom/movable/steam_controller/proc/condense(list/turfs) + for(var/turf/simulated/T in turfs) + T.wet_floor(1) + + disappear() + +/atom/movable/steam_controller/proc/disappear() + overlay.update_alpha(0, 5 SECONDS) + qdel_self() + +/atom/movable/steam_controller/proc/thicken() + overlay.update_alpha(min(255, alpha + STEAM_OVERLAY_ALPHA_INCREMENT), 5 SECONDS) + +/atom/movable/steam_overlay + icon = null + icon_state = null + plane = DEFAULT_PLANE + layer = ABOVE_PROJECTILE_LAYER + vis_flags = 0 + alpha = 127 + render_source = STEAM_EFFECT_TARGET + appearance_flags = TILE_BOUND | PIXEL_SCALE | KEEP_APART | RESET_ALPHA + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +/atom/movable/steam_overlay/proc/update_alpha(new_alpha, animation_duratuion) + if(new_alpha == alpha) + return + + animate(src, alpha = new_alpha, time = animation_duratuion, easing = SINE_EASING | EASE_IN, loop = -1) + alpha = new_alpha diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index fb5059bdcdb..55171a6e8ed 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -88,6 +88,11 @@ var/const/EXTRA_COST_FACTOR = 1.25 path = /obj/item/glass_jar category = "General" +/datum/autolathe/recipe/coffeepot + name = "coffeepot" + path = /obj/item/reagent_containers/vessel/coffeepot + category = "General" + /datum/autolathe/recipe/crowbar name = "crowbar" path = /obj/item/crowbar diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm index 4e723c553aa..fee25f10735 100644 --- a/code/game/machinery/bioprinter.dm +++ b/code/game/machinery/bioprinter.dm @@ -64,9 +64,9 @@ component_parts += new /obj/item/stock_parts/manipulator(src) RefreshParts() -/obj/machinery/organ_printer/_examine_text(mob/user) +/obj/machinery/organ_printer/examine(mob/user, infix) . = ..() - . += "\nIt is loaded with [stored_matter]/[max_stored_matter] matter units." + . += SPAN_NOTICE("It is loaded with [stored_matter]/[max_stored_matter] matter units.") /obj/machinery/organ_printer/RefreshParts() print_delay = initial(print_delay) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 1c1f275a790..cb241105362 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -37,10 +37,11 @@ var/affected_by_emp_until = 0 -/obj/machinery/camera/_examine_text(mob/user) +/obj/machinery/camera/examine(mob/user, infix) . = ..() + if(stat & BROKEN) - . += "\nIt is completely demolished." + . += "It is completely demolished." /obj/machinery/camera/malf_upgrade(mob/living/silicon/ai/user) ..() @@ -401,24 +402,14 @@ return null /obj/machinery/camera/proc/weld(obj/item/weldingtool/WT, mob/user) + to_chat(user, "You start to weld the [src]..") + if(!WT.use_tool(src, user, delay = 5 SECONDS, amount = 5)) + return FALSE - if(busy) - return 0 - if(!WT.isOn()) - return 0 + if(QDELETED(src)) + return FALSE - // Do after stuff here - to_chat(user, "You start to weld the [src]..") - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - WT.eyecheck(user) - busy = 1 - if(do_after(user, 100, src)) - busy = 0 - if(!WT.isOn()) - return 0 - return 1 - busy = 0 - return 0 + return TRUE /obj/machinery/camera/interact(mob/living/user as mob) if(!panel_open || istype(user, /mob/living/silicon/ai)) diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index c9404587d6e..cc6219ef90a 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -152,20 +152,12 @@ ..() /obj/item/camera_assembly/proc/weld(obj/item/weldingtool/WT, mob/user) + to_chat(user, SPAN_NOTICE("You start to weld \the [src].")) - if(busy) - return 0 - if(!WT.isOn()) - return 0 - - to_chat(user, "You start to weld \the [src]..") - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - WT.eyecheck(user) - busy = 1 - if(do_after(user, 20, src)) - busy = 0 - if(!WT.isOn()) - return 0 - return 1 - busy = 0 - return 0 + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 1)) + return FALSE + + if(QDELETED(src) || !user) + return FALSE + + return TRUE diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 058dd433790..beb7e9988c9 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -30,14 +30,16 @@ else ClearOverlays() -/obj/machinery/cell_charger/_examine_text(mob/user) +/obj/machinery/cell_charger/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 5) return - . += "\nThere's [charging ? "a" : "no"] cell in the charger." + . += "There's [charging ? "a" : "no"] cell in the charger." + if(charging) - . += "\nCurrent charge: [charging.charge]" + . += "Current charge: [charging.charge]" /obj/machinery/cell_charger/attackby(obj/item/W, mob/user) if(stat & BROKEN) diff --git a/code/game/machinery/coffeemaker.dm b/code/game/machinery/coffeemaker.dm new file mode 100644 index 00000000000..0a229e09092 --- /dev/null +++ b/code/game/machinery/coffeemaker.dm @@ -0,0 +1,486 @@ +#define BEAN_CAPACITY 5 //amount of coffee beans that can fit inside the impressa coffeemaker + +/obj/machinery/coffeemaker + name = "coffeemaker" + desc = "A Modello 3 Coffeemaker that brews coffee and holds it at the perfect temperature of 176 fahrenheit. Made by Piccionaia Home Appliances." + icon = 'icons/obj/machines/coffeemaker.dmi' + icon_state = "coffeemaker_impressa" + base_icon_state = "coffeemaker_impressa" + obj_flags = OBJ_FLAG_ANCHORABLE + density = TRUE + + component_types = list(/obj/item/circuitboard/coffeemaker) + + var/obj/item/reagent_containers/vessel/coffeepot/coffeepot = null + var/brewing = FALSE + var/brew_time = 8 SECONDS + var/speed = 1 + /// The number of cups left + var/coffee_cups = 0 + var/max_coffee_cups = 15 + /// The amount of sugar packets left + var/sugar_packs = 0 + var/max_sugar_packs = 10 + /// The amount of sweetener packets left + var/sweetener_packs = 0 + var/max_sweetener_packs = 10 + /// The amount of creamer packets left + var/creamer_packs = 0 + var/max_creamer_packs = 10 + /// Current amount of coffee beans stored + var/coffee_amount = 0 + /// List of coffee bean objects are stored + var/list/coffee = list() + + var/static/image/coffeepot_empty = image(icon = 'icons/obj/machines/coffeemaker.dmi', icon_state = "pot_empty") + var/static/image/coffeepot_halffull = image(icon = 'icons/obj/machines/coffeemaker.dmi', icon_state = "pot_halffull") + var/static/image/coffeepot_full = image(icon = 'icons/obj/machines/coffeemaker.dmi', icon_state = "pot_full") + var/static/image/cups_1 = image(icon = 'icons/obj/machines/coffeemaker.dmi', icon_state = "cups_1") + var/static/image/cups_2 = image(icon = 'icons/obj/machines/coffeemaker.dmi', icon_state = "cups_2") + var/static/image/cups_3 = image(icon = 'icons/obj/machines/coffeemaker.dmi', icon_state = "cups_3") + var/static/image/sugar_packs_overlay = image(icon = 'icons/obj/machines/coffeemaker.dmi', icon_state = "extras_1") + var/static/image/creamer_packs_overlay = image(icon = 'icons/obj/machines/coffeemaker.dmi', icon_state = "extras_1") + var/static/image/sweetener_packs_overlay = image(icon = 'icons/obj/machines/coffeemaker.dmi', icon_state = "extras_1") + var/static/image/grinder_half = image(icon = 'icons/obj/machines/coffeemaker.dmi', icon_state = "grinder_half") + var/static/image/grinder_full = image(icon = 'icons/obj/machines/coffeemaker.dmi', icon_state = "grinder_full") + + var/static/image/radial_examine = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_examine") + var/static/image/radial_brew = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_brew") + var/static/image/radial_eject_pot = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_eject_pot") + var/static/image/radial_take_cup = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_take_cup") + var/static/image/radial_take_sugar = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_take_sugar") + var/static/image/radial_take_sweetener = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_take_sweetener") + var/static/image/radial_take_creamer = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_take_creamer") + +/obj/machinery/coffeemaker/Initialize(mapload) + . = ..() + if(mapload) + coffeepot = new /obj/item/reagent_containers/vessel/coffeepot(src) + coffee_cups = max_coffee_cups + sugar_packs = max_sugar_packs + sweetener_packs = max_sweetener_packs + creamer_packs = max_creamer_packs + anchored = TRUE + + update_icon() + +/obj/machinery/coffeemaker/Destroy() + QDEL_NULL(coffeepot) + QDEL_NULL(coffee) + return ..() + +/obj/machinery/coffeemaker/Exited(atom/movable/gone, direction) + . = ..() + if(gone == coffeepot) + coffeepot = null + + if(gone in coffee) + coffee -= gone + + update_icon() + +/obj/machinery/coffeemaker/examine(mob/user, infix) + . = ..() + + if(!in_range(user, src) && !issilicon(user) && !isobserver(user)) + . += SPAN_WARNING("You're too far away to examine [src]'s contents and display!") + return + + if(brewing) + . += SPAN_WARNING("\The [src] is brewing.") + return + + if(panel_open) + . += SPAN_NOTICE("[src]'s maintenance hatch is open!") + return + + if(coffeepot) + . += SPAN_NOTICE("\The [src] contains:") + . += SPAN_NOTICE("- \A [coffeepot].") + + if(!(stat & (NOPOWER|BROKEN))) + . += "[SPAN_NOTICE("The status display reads:")]"+\ + SPAN_NOTICE("- Brewing coffee at [speed*100]%.") + if(coffeepot) + for(var/datum/reagent/drink/cawfee as anything in coffeepot.reagents.reagent_list) + . += SPAN_NOTICE("- [cawfee.volume] units of coffee in pot.") + + if(coffee_cups >= 1) + . += SPAN_NOTICE("There [coffee_cups == 1 ? "is" : "are"] [coffee_cups] coffee cup[coffee_cups != 1 && "s"] left.") + else + . += SPAN_NOTICE("There are no cups left.") + + if(sugar_packs >= 1) + . += SPAN_NOTICE("There [sugar_packs == 1 ? "is" : "are"] [sugar_packs] packet[sugar_packs != 1 && "s"] of sugar left.") + else + . += SPAN_NOTICE("There is no sugar left.") + + if(sweetener_packs >= 1) + . += SPAN_NOTICE("There [sweetener_packs == 1 ? "is" : "are"] [sweetener_packs] packet[sweetener_packs != 1 && "s"] of sweetener left.") + else + . += SPAN_NOTICE("There is no sweetener left.") + + if(creamer_packs > 1) + . += SPAN_NOTICE("There [creamer_packs == 1 ? "is" : "are"] [creamer_packs] packet[creamer_packs != 1 && "s"] of creamer left.") + else + . += SPAN_NOTICE("There is no creamer left.") + + if(coffee) + . += SPAN_NOTICE("The internal grinder contains [coffee.len] scoop\s of coffee beans.") + +/obj/machinery/coffeemaker/on_update_icon() + . = ..() + + CutOverlays(coffeepot_empty) + CutOverlays(coffeepot_full) + CutOverlays(coffeepot_halffull) + if(coffeepot) + if(coffeepot.reagents.total_volume >= 70) + AddOverlays(coffeepot_full) + else if(coffeepot.reagents.total_volume > 0) + AddOverlays(coffeepot_halffull) + else + AddOverlays(coffeepot_empty) + + CutOverlays(cups_1) + CutOverlays(cups_2) + CutOverlays(cups_3) + + if(coffee_cups > 0) + if(coffee_cups >= max_coffee_cups / 3) + if(coffee_cups > max_coffee_cups / 1.5) + AddOverlays(cups_3) + else + AddOverlays(cups_2) + else + AddOverlays(cups_1) + + if(sugar_packs) + AddOverlays(sugar_packs_overlay) + else + CutOverlays(sugar_packs_overlay) + + if(creamer_packs) + AddOverlays(creamer_packs_overlay) + else + CutOverlays(creamer_packs_overlay) + + if(sweetener_packs) + AddOverlays(sweetener_packs_overlay) + else + CutOverlays(sweetener_packs_overlay) + + CutOverlays(grinder_full) + CutOverlays(grinder_half) + if(coffee_amount) + if(coffee_amount < 0.7 * BEAN_CAPACITY) + AddOverlays(grinder_half) + else + AddOverlays(grinder_full) + +/obj/machinery/coffeemaker/proc/replace_pot(mob/living/user, obj/item/reagent_containers/vessel/coffeepot/new_coffeepot) + if(!user) + return FALSE + + if(coffeepot) + user.pick_or_drop(coffeepot, get_turf(src)) + show_splash_text(user, "ejected pot", "Ejected \the [coffeepot] from \the [src].") + + if(new_coffeepot) + coffeepot = new_coffeepot + show_splash_text(user, "instered pot", "Inserted \the [coffeepot] in \the [src].") + + update_icon() + return TRUE + +/obj/machinery/coffeemaker/attackby(obj/item/attack_item, mob/living/user, params) + if(!coffeepot && default_deconstruction_screwdriver(user, attack_item)) + return + + if(default_deconstruction_crowbar(user, attack_item)) + return + + if(panel_open) //Can't insert objects when its screwed open + return + + if(istype(attack_item, /obj/item/reagent_containers/vessel/coffeepot) && attack_item.is_open_container()) + var/obj/item/reagent_containers/vessel/coffeepot/new_pot = attack_item + if(!user.drop(new_pot, src)) + return + + replace_pot(user, new_pot) + update_icon() + return + + if(istype(attack_item, /obj/item/reagent_containers/vessel/takeaway)) + var/obj/item/reagent_containers/vessel/takeaway/new_cup = attack_item //different type of cup + if(new_cup.reagents.total_volume > 0 ) + show_splash_text(user, "the cup must be empty!", "\The [new_cup] must be empty!") + return + + if(coffee_cups >= max_coffee_cups) + show_splash_text(user, "the cup holder is full!", "\The [src]'s cup holder is full!") + return + + if(!user.drop(attack_item, src)) + return + + coffee_cups++ + update_icon() + return + + if(istype(attack_item, /obj/item/reagent_containers/vessel/condiment/pack/sugar)) + var/obj/item/reagent_containers/vessel/condiment/pack/sugar/new_pack = attack_item + if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) + show_splash_text(user, "the pack must be full!", "\The [new_pack] must be full!") + return + + if(sugar_packs >= max_sugar_packs) + show_splash_text(user, "the sugar compartment is full!", "\The [src]'s sugar compartment is full!") + return + + if(!user.drop(attack_item, src)) + return + + sugar_packs++ + update_icon() + return + + if(istype(attack_item, /obj/item/reagent_containers/vessel/condiment/pack/creamer)) + var/obj/item/reagent_containers/vessel/condiment/pack/creamer/new_pack = attack_item + if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) + show_splash_text(user, "the pack must be full!", "\The [new_pack] must be full!") + return + + if(creamer_packs >= max_creamer_packs) + show_splash_text(user, "the creamer compartment is full!", "\The [src]'s creamer compartment is full!") + return + + if(!user.drop(attack_item, src)) + return + + creamer_packs++ + update_icon() + return + + if(istype(attack_item, /obj/item/reagent_containers/vessel/condiment/pack/astrotame)) + var/obj/item/reagent_containers/vessel/condiment/pack/astrotame/new_pack = attack_item + if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) + show_splash_text(user, "the pack must be full!", "\The [src]'s sugar compartment is full!") + return + + if(sweetener_packs >= max_sweetener_packs) + show_splash_text(user, "the sweetener compartment is full!", "\The [src]'s sweetener compartment is full!") + return + + if(!user.drop(attack_item, src)) + return + + sweetener_packs++ + update_icon() + return + + if(istype(attack_item, /obj/item/reagent_containers/food/grown/coffee)) + if(coffee_amount >= BEAN_CAPACITY) + show_splash_text(user, "the coffee container is full!", "\The [src]'s coffee container is full!") + return + + var/obj/item/reagent_containers/food/grown/coffee/new_coffee = attack_item + if(!user.drop(new_coffee, src)) + return + + coffee += new_coffee + coffee_amount++ + show_splash_text(user, "added coffee", "Added coffee in \the [src].") + update_icon() + return + + if(istype(attack_item, /obj/item/storage/box/coffeepack)) + if(coffee_amount >= BEAN_CAPACITY) + show_splash_text(user, "the coffee container is full!", "\The [src]'s coffee container is full!") + return + + var/obj/item/storage/box/coffeepack/new_coffee_pack = attack_item + for(var/obj/item/reagent_containers/food/grown/coffee/new_coffee in new_coffee_pack.contents) + if(coffee_amount < BEAN_CAPACITY) + if(user.drop(new_coffee, src)) + coffee += new_coffee + coffee_amount++ + new_coffee.forceMove(src) + show_splash_text(user, "added coffee", "Added coffee in \the [src].") + update_icon() + return + + update_icon() + return ..() + +/obj/machinery/coffeemaker/proc/try_brew() + if(coffee_amount <= 0) + show_splash_text(usr, "no coffee beans added!", "\The [src] has no coffee beans!") + return FALSE + + if(!coffeepot) + show_splash_text(usr, "no coffeepot inside!", "\The [src] has no coffeepot!") + return FALSE + + if(stat & (NOPOWER|BROKEN) ) + show_splash_text(usr, "machine unpowered!", "\The [src] has no power!") + return FALSE + + if(coffeepot.reagents.total_volume >= coffeepot.reagents.maximum_volume) + show_splash_text(usr, "the coffeepot is already full!", "\The [src]'s [coffeepot] is already full!") + return FALSE + + return TRUE + +/obj/machinery/coffeemaker/attack_hand(mob/user) + . = ..() + + if(issilicon(user)) + return // Fuck u synth + + if(brewing || panel_open || !anchored || !CanUseTopic(user)) + return + + var/list/options = list() + + if(coffeepot) + options["Eject Pot"] = radial_eject_pot + + options["Brew"] = radial_brew //brew is always available as an option, when the machine is unable to brew the player is told by balloon alerts whats exactly wrong + + if(coffee_cups > 0) + options["Take Cup"] = radial_take_cup + + if(sugar_packs > 0) + options["Take Sugar"] = radial_take_sugar + + if(sweetener_packs > 0) + options["Take Sweetener"] = radial_take_sweetener + + if(creamer_packs > 0) + options["Take Creamer"] = radial_take_creamer + + if(isAI(user)) + if(stat & NOPOWER) + return + options["Examine"] = radial_examine + + var/choice + + if(length(options) < 1) + return + + if(length(options) == 1) + choice = options[1] + else + choice = show_radial_menu(user, src, options, require_near = !issilicon(user)) + + // post choice verification + if(brewing || panel_open || !anchored || !CanUseTopic(user)) + return + + switch(choice) + if("Brew") + brew(user) + if("Eject Pot") + eject_pot(user) + if("Examine") + examine(user) + if("Take Cup") + take_cup(user) + if("Take Sugar") + take_sugar(user) + if("Take Sweetener") + take_sweetener(user) + if("Take Creamer") + take_creamer(user) + +/obj/machinery/coffeemaker/proc/eject_pot(mob/user) + if(coffeepot) + replace_pot(user) + +/obj/machinery/coffeemaker/proc/take_cup(mob/user) + if(!coffee_cups) //shouldn't happen, but we all know how stuff manages to break + show_splash_text(user, "no cups left!", "\The [src] has no cups!") + return + + var/obj/item/reagent_containers/vessel/takeaway/new_cup = new(get_turf(src)) + if(Adjacent(user)) + user.put_in_hands(new_cup) + else + new_cup.dropInto(get_turf(src)) + coffee_cups-- + update_icon() + +/obj/machinery/coffeemaker/proc/take_sugar(mob/user) + if(!sugar_packs) + show_splash_text(user, "no sugar left!", "\The [src] has no sugar packs!") + return + + var/obj/item/reagent_containers/vessel/condiment/pack/sugar/new_pack = new(get_turf(src)) + if(Adjacent(user)) + user.put_in_hands(new_pack) + else + new_pack.dropInto(get_turf(src)) + sugar_packs-- + update_icon() + +/obj/machinery/coffeemaker/proc/take_sweetener(mob/user) + if(!sweetener_packs) + show_splash_text(user, "no sweetener left!", "\The [src] has no sweetener packs!") + return + + var/obj/item/reagent_containers/vessel/condiment/pack/astrotame/new_pack = new(get_turf(src)) + if(Adjacent(user)) + user.put_in_hands(new_pack) + else + new_pack.dropInto(get_turf(src)) + sweetener_packs-- + update_icon() + +/obj/machinery/coffeemaker/proc/take_creamer(mob/user) + if(!creamer_packs) + show_splash_text(user, "no creamer left!", "\The [src] has no creamer packs!") + return + + var/obj/item/reagent_containers/vessel/condiment/pack/creamer/new_pack = new(drop_location()) + if(Adjacent(user)) + user.put_in_hands(new_pack) + else + new_pack.dropInto(get_turf(src)) + creamer_packs-- + update_icon() + +///Updates the smoke state to something else, setting particles if relevant +/obj/machinery/coffeemaker/proc/toggle_steam() + QDEL_NULL(particles) + if(brewing) + particles = new /particles/smoke/steam/mild() + particles.position = list(-2, 1, 0) + +/obj/machinery/coffeemaker/proc/operate_for(time, silent = FALSE) + brewing = TRUE + if(!silent) + playsound(src, 'sound/machines/coffeemaker_brew.ogg', 20, vary = TRUE) + + toggle_steam() + use_power_oneoff(active_power_usage * time * 0.1) // .1 needed here to convert time (in deciseconds) to seconds such that watts * seconds = joules + set_next_think(world.time + (time/speed)) + +/obj/machinery/coffeemaker/think() + brewing = FALSE + toggle_steam() + +/obj/machinery/coffeemaker/proc/brew(mob/user) + power_change() + if(!try_brew()) + return + + operate_for(brew_time) + coffeepot.reagents.add_reagent(/datum/reagent/caffeine/coffee, 120) + coffee.Cut(1,2) //remove the first item from the list + coffee_amount-- + update_icon() + +#undef BEAN_CAPACITY diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm index 22470c862ac..6145813cd41 100644 --- a/code/game/machinery/computer/ai_core.dm +++ b/code/game/machinery/computer/ai_core.dm @@ -39,16 +39,16 @@ state = AI_STAGE_CIRCUIT if(isWelder(P)) var/obj/item/weldingtool/WT = P - if(!WT.isOn()) - to_chat(user, "The welder must be on for this task.") + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) return - playsound(loc, 'sound/items/Welder.ogg', 50, 1) - if(do_after(user, 20, src)) - if(!src || !WT.remove_fuel(0, user)) return - to_chat(user, SPAN("notice", "You deconstruct the frame.")) - new /obj/item/stack/material/plasteel(loc, 4) - qdel(src) + + if(QDELETED(src) || !user) return + + to_chat(user, SPAN("notice", "You deconstruct the frame.")) + new /obj/item/stack/material/plasteel(loc, 4) + qdel(src) + return if(AI_STAGE_CIRCUIT) if(isWrench(P)) playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) diff --git a/code/game/machinery/computer/arcade_orion.dm b/code/game/machinery/computer/arcade_orion.dm index a4f5603d218..a6ecfcad5bd 100644 --- a/code/game/machinery/computer/arcade_orion.dm +++ b/code/game/machinery/computer/arcade_orion.dm @@ -486,14 +486,18 @@ icon_state = "ship" w_class = ITEM_SIZE_SMALL var/active = 0 //if the ship is on -/obj/item/orion_ship/_examine_text(mob/user) + +/obj/item/orion_ship/examine(mob/user, infix) . = ..() + if(!(in_range(user, src))) return + if(!active) - . += "\nThere's a little switch on the bottom. It's flipped down." + . += SPAN_NOTICE("There's a little switch on the bottom. It's flipped down.") else - . += "\nThere's a little switch on the bottom. It's flipped up." + . += SPAN_NOTICE("There's a little switch on the bottom. It's flipped up.") + /obj/item/orion_ship/attack_self(mob/user) if(active) return diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 8f3081438e4..b165e9e06e9 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -24,15 +24,15 @@ src.state = 1 if(isWelder(P)) var/obj/item/weldingtool/WT = P - if(!WT.remove_fuel(0, user)) - to_chat(user, "The welding tool must be on to complete this task.") + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) return - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - if(do_after(user, 20, src)) - if(!src || !WT.isOn()) return - to_chat(user, "You deconstruct the frame.") - new /obj/item/stack/material/steel( src.loc, 5 ) - qdel(src) + + if(QDELETED(src) || !user) + return + + to_chat(user, SPAN_NOTICE("You deconstruct the frame.")) + new /obj/item/stack/material/steel( src.loc, 5 ) + qdel_self() if(1) if(isWrench(P)) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 97589eda970..e44543f93c4 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -6,7 +6,9 @@ anchored = 1.0 idle_power_usage = 300 WATTS active_power_usage = 300 WATTS - var/circuit = null //The path to the circuit board type. If circuit==null, the computer can't be disassembled. + + /// Typepath of the circuit board. If `null` computer can't be disassembled. + var/circuit = null var/processing = 0 var/icon_keyboard = "generic_key" diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index 43397ce84ae..b58c54d2ba5 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -17,12 +17,13 @@ else return temp_access -/obj/item/card/id/guest/_examine_text(mob/user) +/obj/item/card/id/guest/examine(mob/user, infix) . = ..() - if (world.time < expiration_time) - . += "\nThis pass expires at [worldtime2stationtime(expiration_time)]." + + if(world.time < expiration_time) + . += SPAN_NOTICE("This pass expires at [worldtime2stationtime(expiration_time)].") else - . += "\nIt expired at [worldtime2stationtime(expiration_time)]." + . += SPAN_NOTICE("It expired at [worldtime2stationtime(expiration_time)].") /obj/item/card/id/guest/read() if (world.time > expiration_time) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 3bf82f70084..82f84cf0e02 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -16,16 +16,15 @@ var/state = STAGE_CABLE /obj/machinery/constructable_frame/proc/deconstruct_frame(obj/item/weldingtool/WT, mob/user, amount=1) - if(!WT.remove_fuel(0, user)) - to_chat(user, "\The [WT] must be on to complete this task.") + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 5)) return - playsound(loc, 'sound/items/Welder.ogg', 50, 1) - if(do_after(user, 20, src)) - if(!src || !WT.isOn()) - return - to_chat(user, SPAN("notice", "You deconstruct \the [src]")) - new /obj/item/stack/material/steel(loc, amount) - qdel(src) + + if(QDELETED(src) || !user) + return + + to_chat(user, SPAN("notice", "You deconstruct \the [src]")) + new /obj/item/stack/material/steel(loc, amount) + qdel(src) /obj/machinery/constructable_frame/proc/wrench_frame(mob/user) playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 9b5192c33a7..ae642a94a89 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -71,13 +71,16 @@ node = target break -/obj/machinery/atmospherics/unary/cryo_cell/_examine_text(mob/user) +/obj/machinery/atmospherics/unary/cryo_cell/examine(mob/user, infix) . = ..() - if(user.Adjacent(src)) - if(beaker) - . += "\nIt is loaded with a beaker." - if(emagged) - . += "\nThe panel is loose and the circuitry is charred." + + if(!user.Adjacent(src)) + return + + if(beaker) + . += "It is loaded with a beaker." + if(emagged) + . += "The panel is loose and the circuitry is charred." /obj/machinery/atmospherics/unary/cryo_cell/Process() if(stat & (BROKEN|NOPOWER)) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 368b16b9b19..d30384cd773 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -305,11 +305,14 @@ find_control_computer() announce = new /obj/item/device/radio/intercom(src) -/obj/machinery/cryopod/_examine_text(mob/user) +/obj/machinery/cryopod/examine(mob/user, infix) . = ..() - if (user.Adjacent(src)) - if(occupant) - . += "\n[occupant._examine_text(user)]" + + if(!user.Adjacent(src)) + return + + if(occupant) + . += occupant.examine(user) /obj/machinery/cryopod/emag_act(remaining_charges, mob/user) if(!emagged) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index b295a59ef0a..83fd82e8cb8 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -523,21 +523,20 @@ About the new airlock wires panel: var/cut_sound if(isWelder(item)) - var/obj/item/weldingtool/WT = item - if(!WT.isOn()) - return 0 - if(!WT.remove_fuel(0,user)) - to_chat(user, "You need more welding fuel to complete this task.") - return 0 + cut_sound = null cut_verb = "cutting" - cut_sound = 'sound/items/Welder.ogg' else if(istype(item,/obj/item/gun/energy/plasmacutter)) //They could probably just shoot them out, but who cares! cut_verb = "cutting" cut_sound = 'sound/items/Welder.ogg' cut_delay *= 0.66 - else if(istype(item,/obj/item/melee/energy/blade) || istype(item,/obj/item/melee/energy/sword)) + else if(istype(item, /obj/item/melee/energy/blade) || istype(item, /obj/item/melee/energy/sword)) + var/obj/item/melee/energy/E = item + if(!E.active) + show_splash_text(user, "blade must be on!", "\The [item] must be activated!") + return FALSE + cut_verb = "slicing" cut_sound = "spark" cut_delay *= 0.66 @@ -572,8 +571,13 @@ About the new airlock wires panel: "You begin [cut_verb] through the bolt cover." ) - playsound(src, cut_sound, 100, 1) - if(do_after(user, cut_delay, src)) + if(!isnull(cut_sound)) + playsound(src, cut_sound, 100, 1) + var/obj/item/weldingtool/WT = item + if((!istype(WT) && do_after(user, cut_delay, src)) || (istype(WT) && WT.use_tool(src, user, delay = cut_delay, amount = 5))) + if(QDELETED(src)) + return + user.visible_message( "\The [user] removes the bolt cover from [src]", "You remove the cover and expose the door bolts." @@ -586,8 +590,10 @@ About the new airlock wires panel: "\The [user] begins [cut_verb] through [src]'s bolts.", "You begin [cut_verb] through the door bolts." ) - playsound(src, cut_sound, 100, 1) - if(do_after(user, cut_delay, src)) + if(!isnull(cut_sound)) + playsound(src, cut_sound, 100, 1) + var/obj/item/weldingtool/WT = item + if((!istype(WT) && do_after(user, cut_delay, src)) || (istype(WT) && WT.use_tool(src, user, delay = cut_delay, amount = 5))) user.visible_message( "\The [user] severs the door bolts, unlocking [src].", "You sever the door bolts, unlocking the door." @@ -635,16 +641,14 @@ About the new airlock wires panel: if(!repairing && isWelder(C) && !(operating > 0) && density) var/obj/item/weldingtool/W = C - if(W.remove_fuel(0, user)) - if(!welded) - welded = TRUE - else - src.welded = null - playsound(src, 'sound/items/Welder.ogg', 100, 1) - update_icon() + if(!W.use_tool(src, user, amount = 1)) return + + if(!welded) + welded = TRUE else - return + welded = null + update_icon() else if(isScrewdriver(C)) if(p_open) @@ -980,15 +984,16 @@ About the new airlock wires panel: else ..(amount) -/obj/machinery/door/airlock/_examine_text(mob/user) +/obj/machinery/door/airlock/examine(mob/user, infix) . = ..() + if(lock_cut_state == BOLTS_EXPOSED) - . += "\nThe bolt cover has been cut open." + . += "The bolt cover has been cut open." if(lock_cut_state == BOLTS_CUT) - . += "\nThe door bolts have been cut." + . += "The door bolts have been cut." if(brace) - . += "\n\The [brace] is installed on \the [src], preventing it from opening." - . += "\n[brace.examine_health()]" + . += "\The [brace] is installed on \the [src], preventing it from opening." + . += "[brace.examine_health()]" /obj/machinery/door/airlock/CanAStarPass/CanAStarPass(to_dir, datum/can_pass_info/pass_info) //Airlock is passable if it is open (!density), bot has access, and is not bolted shut or powered off) diff --git a/code/game/machinery/doors/braces.dm b/code/game/machinery/doors/braces.dm index bd7a7f42103..97dd6ab88bd 100644 --- a/code/game/machinery/doors/braces.dm +++ b/code/game/machinery/doors/braces.dm @@ -12,9 +12,9 @@ var/obj/item/airlock_electronics/brace/electronics -/obj/item/airlock_brace/_examine_text(mob/user) +/obj/item/airlock_brace/examine(mob/user, infix) . = ..() - . += "\n[examine_health()]" + . += "[examine_health()]" // This is also called from airlock's examine, so it's a different proc to prevent code copypaste. @@ -88,17 +88,20 @@ return if(isWelder(W)) - var/obj/item/weldingtool/C = W if(cur_health == max_health) to_chat(user, "\The [src] does not require repairs.") return - if(C.remove_fuel(0,user)) - playsound(src, 'sound/items/Welder.ogg', 100, 1) - cur_health = min(cur_health + rand(80,120), max_health) - if(cur_health == max_health) - to_chat(user, "You repair some dents on \the [src]. It is in perfect condition now.") - else - to_chat(user, "You repair some dents on \the [src].") + + var/obj/item/weldingtool/WT = W + + if(!WT.use_tool(src, user, amount = 1)) + return FALSE + + cur_health = min(cur_health + rand(80,120), max_health) + if(cur_health == max_health) + to_chat(user, "You repair some dents on \the [src]. It is in perfect condition now.") + else + to_chat(user, "You repair some dents on \the [src].") /obj/item/airlock_brace/proc/take_damage(amount) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 7e517c6f46d..3bd1fd024d8 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -37,6 +37,8 @@ var/tryingToLock = FALSE // for autoclosing // turf animation var/atom/movable/fake_overlay/c_animation = null + /// Determines whether this door already has thinkg_close context running or not + var/thinking_about_closing = FALSE rad_resist = list( RADIATION_ALPHA_PARTICLE = 350 MEGA ELECTRONVOLT, @@ -44,6 +46,10 @@ RADIATION_HAWKING = 81 MILLI ELECTRONVOLT ) +/obj/machinery/door/Initialize() + . = ..() + add_think_ctx("close_context", CALLBACK(src, nameof(.proc/close)), 0) + /obj/machinery/door/attack_generic(mob/user, damage) if(damage >= 10) visible_message("\The [user] smashes into \the [src]!") @@ -244,16 +250,20 @@ to_chat(user, "\The [src] must be closed before you can repair it.") return - var/obj/item/weldingtool/welder = I - if(welder.remove_fuel(0,user)) - to_chat(user, "You start to fix dents and weld \the [repairing] into place.") - playsound(src, 'sound/items/Welder.ogg', 100, 1) - if(do_after(user, 5 * repairing.amount, src) && welder && welder.isOn()) - to_chat(user, "You finish repairing the damage to \the [src].") - health = between(health, health + repairing.amount*DOOR_REPAIR_AMOUNT, maxhealth) - update_icon() - qdel(repairing) - repairing = null + var/obj/item/weldingtool/WT = I + + to_chat(user, SPAN_NOTICE("You start to fix dents and weld \the [repairing] into place.")) + if(!WT.use_tool(src, user, delay = 5 * repairing.amount, amount = 5)) + return + + if(QDELETED(src) || !user) + return + + to_chat(user, SPAN_NOTICE("You finish repairing the damage to \the [src].")) + health = between(health, health + repairing.amount*DOOR_REPAIR_AMOUNT, maxhealth) + update_icon() + qdel(repairing) + repairing = null return if(repairing && isCrowbar(I)) @@ -319,14 +329,15 @@ return -/obj/machinery/door/_examine_text(mob/user) +/obj/machinery/door/examine(mob/user, infix) . = ..() - if(src.health < src.maxhealth / 4) - . += "\n\The [src] looks like it's about to break!" + + if(health < maxhealth / 4) + . += "\The [src] looks like it's about to break!" else if(src.health < src.maxhealth / 2) - . += "\n\The [src] looks seriously damaged!" + . += "\The [src] looks seriously damaged!" else if(src.health < src.maxhealth * 3/4) - . += "\n\The [src] shows signs of damage!" + . += "\The [src] shows signs of damage!" /obj/machinery/door/set_broken(new_state) @@ -407,8 +418,9 @@ filler.set_opacity(opacity) operating = FALSE - if(autoclose) - addtimer(CALLBACK(src, nameof(.proc/close)), wait, TIMER_UNIQUE|TIMER_OVERRIDE) + if(autoclose && !thinking_about_closing) + thinking_about_closing = TRUE + set_next_think_ctx("close_context", world.time + wait) return TRUE @@ -417,8 +429,10 @@ if(!can_close(forced)) if(autoclose) tryingToLock = TRUE - addtimer(CALLBACK(src, nameof(.proc/close)), wait, TIMER_UNIQUE|TIMER_OVERRIDE) + set_next_think_ctx("close_context", world.time + wait) return FALSE + + thinking_about_closing = FALSE operating = TRUE do_animate("closing") diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 0750550c5b5..46af570704f 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -75,14 +75,17 @@ /obj/machinery/door/firedoor/get_material() return get_material_by_name(MATERIAL_STEEL) -/obj/machinery/door/firedoor/_examine_text(mob/user) +/obj/machinery/door/firedoor/examine(mob/user, infix) . = ..() + if(!istype(usr, /mob/living/silicon) && (get_dist(src, user) > 1 || !density)) return if(pdiff >= FIREDOOR_MAX_PRESSURE_DIFF) - . += "\nWARNING: Current pressure differential is [pdiff]kPa! Opening door may result in injury!" - . += "\nSensor readings:" + . += SPAN_WARNING("WARNING: Current pressure differential is [pdiff]kPa! Opening door may result in injury!") + + . += "Sensor readings:" + for(var/index = 1; index <= tile_info.len; index++) var/o = "  " switch(index) @@ -96,7 +99,7 @@ o += "WEST: " if(tile_info[index] == null) o += "DATA UNAVAILABLE" - . += "\n[o]" + . += "[o]" continue var/celsius = CONV_KELVIN_CELSIUS(tile_info[index][1]) var/pressure = tile_info[index][2] @@ -104,13 +107,15 @@ o += "[celsius]°C " o += "" o += "[pressure]kPa" - . += "\n[o]" + . += "[o]" + if(islist(users_to_open) && users_to_open.len) var/users_to_open_string = users_to_open[1] if(users_to_open.len >= 2) for(var/i = 2 to users_to_open.len) users_to_open_string += ", [users_to_open[i]]" - . += "\nThese people have opened \the [src] during an alert: [users_to_open_string]." + . += "These people have opened \the [src] during an alert: [users_to_open_string]." + /obj/machinery/door/firedoor/Bumped(atom/AM) if(p_open || operating) return @@ -178,8 +183,9 @@ else INVOKE_ASYNC(src, nameof(/obj/machinery/door.proc/close)) - if(needs_to_close) - addtimer(CALLBACK(src, nameof(/obj/machinery/door.proc/close)), 50, TIMER_UNIQUE|TIMER_OVERRIDE) + if(needs_to_close && !thinking_about_closing) + thinking_about_closing = TRUE + set_next_think_ctx("close_context", world.time + 5 SECONDS) /obj/machinery/door/firedoor/attack_generic(mob/user, damage) if(stat & (BROKEN|NOPOWER)) @@ -187,8 +193,9 @@ if(density) visible_message(SPAN("danger","\The [user] forces \the [src] open!")) INVOKE_ASYNC(src, nameof(/obj/machinery/door.proc/open), TRUE) - if(!(stat & (BROKEN|NOPOWER))) - addtimer(CALLBACK(src, nameof(/obj/machinery/door.proc/close)), 150, TIMER_UNIQUE|TIMER_OVERRIDE) + if(!(stat & (BROKEN|NOPOWER)) && !thinking_about_closing) + thinking_about_closing = TRUE + set_next_think_ctx("close_context", world.time + 15 SECONDS) else visible_message(SPAN("danger","\The [user] forces \the [src] closed!")) INVOKE_ASYNC(src, nameof(/obj/machinery/door.proc/close)) @@ -202,15 +209,16 @@ if(operating) return//Already doing something. if(isWelder(C) && !repairing) - var/obj/item/weldingtool/W = C - if(W.remove_fuel(0, user)) - blocked = !blocked - user.visible_message("\The [user] [blocked ? "welds" : "unwelds"] \the [src] with \a [W].",\ - "You [blocked ? "weld" : "unweld"] \the [src] with \the [W].",\ - "You hear something being welded.") - playsound(src, 'sound/items/Welder.ogg', 100, 1) - update_icon() - return + var/obj/item/weldingtool/WT = C + if(!WT.use_tool(src, user, amount = 1)) + return FALSE + + blocked = !blocked + user.visible_message(SPAN_DANGER("\The [user] [blocked ? "welds" : "unwelds"] \the [src] with \a [WT]."),\ + "You [blocked ? "weld" : "unweld"] \the [src] with \the [WT].",\ + "You hear something being welded.") + update_icon() + return if(density && isScrewdriver(C)) hatch_open = !hatch_open @@ -272,8 +280,9 @@ "You hear metal strain and groan, and a door [density ? "opening" : "closing"].") if(density) INVOKE_ASYNC(src, nameof(/obj/machinery/door.proc/open), TRUE) - if(!(stat & (BROKEN|NOPOWER))) - addtimer(CALLBACK(src, nameof(/obj/machinery/door.proc/close)), 150, TIMER_UNIQUE|TIMER_OVERRIDE) + if(!(stat & (BROKEN|NOPOWER)) && !thinking_about_closing) + thinking_about_closing = TRUE + set_next_think_ctx("close_context", world.time + 15 SECONDS) else INVOKE_ASYNC(src, nameof(/obj/machinery/door.proc/close)) return diff --git a/code/game/machinery/doors/firedoor_assembly.dm b/code/game/machinery/doors/firedoor_assembly.dm index edf36cf9e83..c7bf36ce21d 100644 --- a/code/game/machinery/doors/firedoor_assembly.dm +++ b/code/game/machinery/doors/firedoor_assembly.dm @@ -54,17 +54,18 @@ update_icon() else if(!anchored && isWelder(C)) var/obj/item/weldingtool/WT = C - if(WT.remove_fuel(0, user)) - user.visible_message("[user] dissassembles \the [src].", + user.visible_message("[user] dissassembles \the [src].", "You start to dissassemble \the [src].") - if(do_after(user, 40, src)) - if(!src || !WT.isOn()) return - user.visible_message("[user] has dissassembled \the [src].", - "You have dissassembled \the [src].") - new /obj/item/stack/material/steel(src.loc, 2) - qdel(src) - else - to_chat(user, "You need more welding fuel.") + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 1)) + return + + if(QDELETED(src) || !user) + return + + user.visible_message("[user] has dissassembled \the [src].", + "You have dissassembled \the [src].") + new /obj/item/stack/material/steel(src.loc, 2) + qdel(src) else ..(C, user) @@ -80,7 +81,7 @@ /obj/structure/firelock_frame/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, list/rcd_data) switch(rcd_data["[RCD_DESIGN_MODE]"]) if(RCD_UPGRADE_SIMPLE_CIRCUITS) - show_splash_text(user, "circuit installed") + show_splash_text(user, "circuit installed", SPAN("notice", "You install the circuit into \the [src]!")) new /obj/machinery/door/firedoor(get_turf(src)) qdel_self() return TRUE diff --git a/code/game/machinery/doors/simple.dm b/code/game/machinery/doors/simple.dm index 674cbf4cfd5..0ffb197866c 100644 --- a/code/game/machinery/doors/simple.dm +++ b/code/game/machinery/doors/simple.dm @@ -188,10 +188,11 @@ return -/obj/machinery/door/unpowered/simple/_examine_text(mob/user) +/obj/machinery/door/unpowered/simple/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1 && lock) - . += "\nIt appears to have a lock." + . += SPAN_NOTICE("It appears to have a lock.") /obj/machinery/door/unpowered/simple/can_open() if(!..() || (lock && lock.isLocked())) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 3acaa815952..fa1ff1ebf96 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -71,8 +71,6 @@ shatter() /obj/machinery/door/window/Destroy() - if(timer) - deltimer(timer) set_density(0) update_nearby_tiles() return ..() @@ -135,8 +133,9 @@ else operating = TRUE - if(autoclose) - timer = addtimer(CALLBACK(src, nameof(.proc/close)), 10 SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE) + if(autoclose && !thinking_about_closing) + thinking_about_closing = TRUE + set_next_think_ctx("close_context", world.time + 10 SECONDS) flick("[base_state]opening", src) set_density(0) @@ -154,9 +153,8 @@ else operating = TRUE - if(timer) - deltimer(timer) - timer = 0 + thinking_about_closing = FALSE + set_next_think_ctx("close_context", 0) flick(text("[]closing", base_state), src) set_density(1) @@ -192,9 +190,12 @@ if(density && operable()) operating = -1 flick("[base_state]spark", src) - addtimer(CALLBACK(src, nameof(.proc/open)), 10) + set_next_think(world.time + 1 SECOND) return 1 +/obj/machinery/door/window/think() + open() + /obj/machinery/door/emp_act(severity) if(prob(60 / severity)) open() diff --git a/code/game/machinery/fire_alarm.dm b/code/game/machinery/fire_alarm.dm index 6d738137482..81967933836 100644 --- a/code/game/machinery/fire_alarm.dm +++ b/code/game/machinery/fire_alarm.dm @@ -52,11 +52,12 @@ QDEL_NULL(seclevel_overlay) return ..() -/obj/machinery/firealarm/_examine_text(mob/user) +/obj/machinery/firealarm/examine(mob/user, infix) . = ..() + if(detecting && !wiresexposed) var/decl/security_state/security_state = decls_repository.get_decl(GLOB.using_map.security_state) - . += "\nThe current alert level is [security_state.current_security_level.name]." + . += "The current alert level is [security_state.current_security_level.name]." /obj/machinery/firealarm/on_update_icon() if(!status_overlays) @@ -325,7 +326,7 @@ Just a object used in constructing fire alarms /obj/machinery/firealarm/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, list/rcd_data) switch(rcd_data["[RCD_DESIGN_MODE]"]) if(RCD_WALLFRAME) - show_splash_text(user, "circuit installed") + show_splash_text(user, "circuit installed", SPAN("notice", "You install the circuit into \the [src]!")) buildstage = FIREALARM_NOWIRES update_icon() return TRUE diff --git a/code/game/machinery/floor_light.dm b/code/game/machinery/floor_light.dm index d7a6f0fd1df..8d199fb21ed 100644 --- a/code/game/machinery/floor_light.dm +++ b/code/game/machinery/floor_light.dm @@ -86,24 +86,17 @@ /obj/machinery/floor_light/proc/_repair_damage(mob/user, obj/item/weldingtool/WT) - if(istype(WT)) + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 5)) return - if(!WT.remove_fuel(0, user)) - to_chat(user, "\The [WT] must be on to complete this task.") + if(QDELETED(src) || !user) return - playsound(loc, 'sound/items/Welder.ogg', 50, 1) - if(do_after(user, 20, src)) - if(!WT.isOn()) - return - - visible_message(SPAN("notice", "\The [user] has repaired \the [src]")) - set_broken(FALSE) - damagekey = 0 - damage = 0 - update_icon() - + visible_message(SPAN("notice", "\The [user] has repaired \the [src]")) + set_broken(FALSE) + damagekey = 0 + damage = 0 + update_icon() /obj/machinery/floor_light/proc/_open_settings(mob/user) if(!length(settings)) @@ -115,7 +108,7 @@ var/new_color = show_radial_menu(user, src, colors, require_near = TRUE) if(new_color) colour = new_color - show_splash_text_to_viewers("color changed") + show_splash_text_to_viewers("color changed", force_skip_chat = TRUE) update_icon() if("paste") var/obj/item/I = user.get_active_item() @@ -128,7 +121,7 @@ show_splash_text(user, "settings copied") if("invert") inverted = !inverted - show_splash_text_to_viewers("lights inverted") + show_splash_text_to_viewers("lights inverted", force_skip_chat = TRUE) update_icon() if("slow") glow_mode = GLOW_SLOW @@ -164,7 +157,7 @@ colour = FL.colour inverted = FL.inverted glow_mode = FL.glow_mode - show_splash_text_to_viewers("new settings applied.") + show_splash_text_to_viewers("new settings applied", force_skip_chat = TRUE) /obj/machinery/floor_light/attack_hand(mob/user) @@ -178,17 +171,16 @@ /obj/machinery/floor_light/proc/toggle(mob/user) if(!anchored) - show_splash_text(user, "must be screwed down first!") + show_splash_text(user, "must be screwed down first!", "\The [src] must be screwed down first!") return if(stat & BROKEN) - show_splash_text(user, "too damaged to be used!") + show_splash_text(user, "too damaged to be used!", "\The [src] is too damaged to be used!") return on = !on update_icon() update_use_power(on ? POWER_USE_ACTIVE : POWER_USE_OFF) - show_splash_text_to_viewers("turned [on ? "on" : "off"]") /obj/machinery/floor_light/ex_act(severity) diff --git a/code/game/machinery/floorlayer.dm b/code/game/machinery/floorlayer.dm index 7fc774fdc02..bee3ad5d7ce 100644 --- a/code/game/machinery/floorlayer.dm +++ b/code/game/machinery/floorlayer.dm @@ -13,10 +13,16 @@ T = new /obj/item/stack/tile/floor(src) ..() -/obj/machinery/floorlayer/Move(new_turf,M_Dir) +/obj/machinery/floorlayer/Move(newloc, direct) . = ..() + if(!.) + return + + var/turf/new_turf + if(isturf(loc)) + new_turf = loc - if(on) + if(on && istype(old_turf)) if(mode["dismantle"]) dismantleFloor(old_turf) @@ -26,8 +32,8 @@ if(mode["collect"]) CollectTiles(old_turf) - - old_turf = new_turf + if(istype(new_turf)) + old_turf = newloc /obj/machinery/floorlayer/attack_hand(mob/user as mob) on=!on @@ -64,13 +70,14 @@ return ..() -/obj/machinery/floorlayer/_examine_text(mob/user) +/obj/machinery/floorlayer/examine(mob/user, infix) . = ..() + var/dismantle = mode["dismantle"] var/laying = mode["laying"] var/collect = mode["collect"] - var/message = "\The [src] [!T?"don't ":""]has [!T?"":"[T.get_amount()] [T] "]tile\s, dismantle is [dismantle?"on":"off"], laying is [laying?"on":"off"], collect is [collect?"on":"off"]." - . += "\n[message]" + + . += SPAN_NOTICE("\The [src] [!T ? "don't " : ""]has [!T ? "" : "[T.get_amount()] [T] "]tile\s, dismantle is [dismantle ? "on" : "off"], laying is [laying ? "on" : "off"], collect is [collect?"on" : "off"].") /obj/machinery/floorlayer/proc/reset() on=0 diff --git a/code/game/machinery/kitchen/cooking_machines/_cooker.dm b/code/game/machinery/kitchen/cooking_machines/_cooker.dm index d4f1053e41a..7ffec2fc4a4 100644 --- a/code/game/machinery/kitchen/cooking_machines/_cooker.dm +++ b/code/game/machinery/kitchen/cooking_machines/_cooker.dm @@ -50,22 +50,23 @@ stop() return ..() -/obj/machinery/cooker/_examine_text(mob/user) +/obj/machinery/cooker/examine(mob/user, infix) . = ..() + if(Adjacent(user)) switch(product_status()) //if NO_PRODUCT, say no more if(COOKING) - . += "\nYou can see \a [thing_inside] inside." + . += "You can see \a [thing_inside] inside." if(COOKED) var/smell = "good" if(istype(thing_inside, /obj/item/reagent_containers/food)) var/obj/item/reagent_containers/food/S = thing_inside if(islist(S.nutriment_desc) && length(S.nutriment_desc)) smell = pick(S.nutriment_desc) - . += "\nYou can see \a [thing_inside] inside. It smells [smell]." + . += "You can see \a [thing_inside] inside. It smells [smell]." if(BURNED) - . += "\n[SPAN_WARNING("Inside is covered by dirt, and it smells smoke!")]" + . += "[SPAN_WARNING("Inside is covered by dirt, and it smells smoke!")]" /obj/machinery/cooker/attackby(obj/item/I, mob/user) set waitfor = 0 //So that any remaining parts of calling proc don't have to wait for the long cooking time ahead. diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm index e1a8c974f87..fdcef211ff7 100644 --- a/code/game/machinery/kitchen/gibber.dm +++ b/code/game/machinery/kitchen/gibber.dm @@ -18,9 +18,6 @@ /obj/item/circuitboard/gibber ) - /// Gibbing Timer ID. - var/timer = null - /// Direction to spit meat and gibs in. var/gib_throw_dir = WEST @@ -62,14 +59,14 @@ /obj/machinery/gibber/Initialize() . = ..() + add_think_ctx("finish_processing", CALLBACK(src, nameof(.proc/finish_processing)), 0) update_icon() RefreshParts() /obj/machinery/gibber/Destroy() - if(operating || timer) + if(operating) for(var/atom/A in contents - mobs_to_process - component_parts) qdel(A) // No drops for cheaters... - deltimer(timer) if(length(mobs_to_process)) for(var/mob/M in mobs_to_process) M.forceMove(loc) @@ -227,7 +224,7 @@ for(var/mob/pig in mobs_to_process) create_mob_drop(pig) - timer = addtimer(CALLBACK(src, nameof(.proc/finish_processing), user), length(mobs_to_process) * gib_time, TIMER_STOPPABLE) + set_next_think_ctx("finish_processing", world.time + length(mobs_to_process) * gib_time, user) /obj/machinery/gibber/proc/create_mob_drop(mob/victim) if(istype(victim, /mob/living/simple_animal/hostile/faithless)) @@ -309,7 +306,6 @@ pig.gib(do_gibs = gore) qdel(pig) - timer = null operating = FALSE playsound(loc, 'sound/effects/splat.ogg', 50, 1) diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm index ae6abd60427..b310fa03c97 100644 --- a/code/game/machinery/lightswitch.dm +++ b/code/game/machinery/lightswitch.dm @@ -13,7 +13,7 @@ var/area/connected_area = null var/other_area = null -/obj/machinery/light_switch/Initialize() +/obj/machinery/light_switch/Initialize(mapload) . = ..() if(other_area) src.connected_area = locate(other_area) @@ -42,10 +42,11 @@ AddOverlays(emissive_appearance(icon, "light-ea")) set_light(0.15, 0.1, 1, 2, (on ? "#82ff4c" : "#f86060")) -/obj/machinery/light_switch/_examine_text(mob/user) +/obj/machinery/light_switch/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\nA light switch. It is [on? "on" : "off"]." + . += "A light switch. It is [on? "on" : "off"]." /obj/machinery/light_switch/proc/set_state(newstate) if(on != newstate) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 803b139ef06..4befc584cb5 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -393,7 +393,7 @@ Class Procs: for(var/obj/I in component_parts) if(!QDELETED(I)) I.forceMove(get_turf(src)) - component_parts.Cut() + LAZYCLEARLIST(component_parts) qdel(src) return 1 @@ -428,10 +428,11 @@ Class Procs: for(var/obj/item/C in component_parts) . += "\n [C.name]" -/obj/machinery/_examine_text(mob/user) +/obj/machinery/examine(mob/user, infix) . = ..() + if(component_parts && hasHUD(user, HUD_SCIENCE)) - . += "\n[get_parts_infotext()]" + . += "[get_parts_infotext()]" /obj/machinery/proc/update_power_use() set_power_use(use_power) diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm index 94b238f26cd..2b27b3ae858 100644 --- a/code/game/machinery/nuclear_bomb.dm +++ b/code/game/machinery/nuclear_bomb.dm @@ -87,17 +87,15 @@ var/bomb_set if(0) if(isWelder(O)) var/obj/item/weldingtool/WT = O - if(!WT.isOn()) return - if(WT.get_fuel() < 5) // uses up 5 fuel. - to_chat(user, "You need more fuel to complete this task.") - return - user.visible_message("[user] starts cutting loose the anchoring bolt covers on [src].", "You start cutting loose the anchoring bolt covers with [O]...") + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) + return FALSE + + if(QDELETED(src) || !user ) + return FALSE - if(do_after(user,40, src)) - if(!src || !user || !WT.remove_fuel(5, user)) return - user.visible_message("\The [user] cuts through the bolt covers on \the [src].", "You cut through the bolt cover.") - removal_stage = 1 + user.visible_message("\The [user] cuts through the bolt covers on \the [src].", "You cut through the bolt cover.") + removal_stage = 1 return if(1) @@ -113,17 +111,15 @@ var/bomb_set if(2) if(isWelder(O)) var/obj/item/weldingtool/WT = O - if(!WT.isOn()) return - if (WT.get_fuel() < 5) // uses up 5 fuel. - to_chat(user, "You need more fuel to complete this task.") - return - user.visible_message("[user] starts cutting apart the anchoring system sealant on [src].", "You start cutting apart the anchoring system's sealant with [O]...") + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) + return FALSE + + if(QDELETED(src) || !user) + return FALSE - if(do_after(user, 40, src)) - if(!src || !user || !WT.remove_fuel(5, user)) return - user.visible_message("\The [user] cuts apart the anchoring system sealant on \the [src].", "You cut apart the anchoring system's sealant.") - removal_stage = 3 + user.visible_message("\The [user] cuts apart the anchoring system sealant on \the [src].", "You cut apart the anchoring system's sealant.") + removal_stage = 3 return if(3) @@ -422,9 +418,9 @@ var/bomb_set /obj/item/modular_computer/laptop/preset/custom_loadout/cheap/ ) -/obj/item/storage/secure/briefcase/nukedisk/_examine_text(user) +/obj/item/storage/secure/briefcase/nukedisk/examine(mob/user, infix) . = ..() - . += "\nOn closer inspection, you see \a [GLOB.using_map.company_name] emblem is etched into the front of it." + . += "On closer inspection, you see \a [GLOB.using_map.company_name] emblem is etched into the front of it." /obj/item/folder/envelope/nuke_instructions name = "instructions envelope" diff --git a/code/game/machinery/oxygen_pump.dm b/code/game/machinery/oxygen_pump.dm index a51f539dc1b..8d8cb7e9c67 100644 --- a/code/game/machinery/oxygen_pump.dm +++ b/code/game/machinery/oxygen_pump.dm @@ -149,12 +149,13 @@ if(istype(W, /obj/item/tank) && !stat) to_chat(user, "Please open the maintenance hatch first.") -/obj/machinery/oxygen_pump/_examine_text(mob/user) +/obj/machinery/oxygen_pump/examine(mob/user, infix) . = ..() + if(tank) - . += "\nThe meter shows [round(tank.air_contents.return_pressure())]" + . += "The meter shows [round(tank.air_contents.return_pressure())]" else - . += "\nIt is missing a tank!" + . += "It is missing a tank!" /obj/machinery/oxygen_pump/Process() if(breather) diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 5946c1799e0..bc9e2d0e3f2 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -18,14 +18,17 @@ Buildable meters w_class = ITEM_SIZE_NORMAL level = 2 -/obj/item/pipe/New(loc, pipe_type as num, dir as num, obj/machinery/atmospherics/make_from = null) - ..() - if (make_from) +/obj/item/pipe/Initialize(mapload, pipe_type, dir, obj/machinery/atmospherics/make_from = null) + . = ..() + + AddElement(/datum/element/simple_rotation) + + if(make_from) src.set_dir(make_from.dir) src.pipename = make_from.name color = make_from.pipe_color var/is_bent - if (make_from.initialize_directions in list(NORTH|SOUTH, WEST|EAST)) + if(make_from.initialize_directions in list(NORTH|SOUTH, WEST|EAST)) is_bent = 0 else is_bent = 1 @@ -314,26 +317,28 @@ Buildable meters else return ..() -// rotate the pipe item clockwise - -/obj/item/pipe/verb/rotate() - set category = "Object" - set name = "Rotate Pipe" - set src in view(1) +/obj/item/pipe/rotate(mob/user) + ..() - if ( usr.stat || usr.restrained() ) - return + if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_UNIVERSAL, PIPE_HE_STRAIGHT, PIPE_MVALVE, PIPE_DVALVE, PIPE_SVALVE, PIPE_FUEL_STRAIGHT)) + if(dir == SOUTH) + set_dir(NORTH) + else if(dir == WEST) + set_dir(EAST) + else if (pipe_type in list (PIPE_MANIFOLD4W, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W, PIPE_FUEL_MANIFOLD4W)) + set_dir(SOUTH) + return - src.set_dir(turn(src.dir, -90)) +/obj/item/pipe/rotate_counter(mob/user) + ..() if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_UNIVERSAL, PIPE_HE_STRAIGHT, PIPE_MVALVE, PIPE_DVALVE, PIPE_SVALVE, PIPE_FUEL_STRAIGHT)) - if(dir==2) - set_dir(1) - else if(dir==8) - set_dir(4) + if(dir == SOUTH) + set_dir(NORTH) + else if(dir == WEST) + set_dir(EAST) else if (pipe_type in list (PIPE_MANIFOLD4W, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W, PIPE_FUEL_MANIFOLD4W)) - set_dir(2) - //src.pipe_set_dir(get_pipe_dir()) + set_dir(SOUTH) return /obj/item/pipe/Move() @@ -426,8 +431,8 @@ Buildable meters else return 0 -/obj/item/pipe/attack_self(mob/user as mob) - return rotate() +/obj/item/pipe/attack_self(mob/user) + return rotate(user) /obj/item/pipe/attackby(obj/item/W as obj, mob/user as mob) ..() diff --git a/maps/example/example_jobs.dm b/code/game/machinery/pipe/dispenser_recipes.dm similarity index 100% rename from maps/example/example_jobs.dm rename to code/game/machinery/pipe/dispenser_recipes.dm diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index c18cf797fbe..8bab8d581fc 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -5,104 +5,129 @@ layer = BELOW_OBJ_LAYER density = 1 anchored = 1 - var/unwrenched = 0 + var/unwrenched = FALSE var/wait = 0 -/obj/machinery/pipedispenser/attack_hand(user as mob) - if(..()) - return -///// Z-Level stuff - var/dat = {" -Regular pipes:
-Pipe
-Bent Pipe
-Manifold
-Manual Valve
-Digital Valve
-Automatic Shutoff Valve
-Pipe Cap
-4-Way Manifold
-Manual T-Valve
-Manual T-Valve - Mirrored
-Upward Pipe
-Downward Pipe
-Supply pipes:
-Pipe
-Bent Pipe
-Manifold
-Pipe Cap
-4-Way Manifold
-Upward Pipe
-Downward Pipe
-Scrubbers pipes:
-Pipe
-Bent Pipe
-Manifold
-Pipe Cap
-4-Way Manifold
-Upward Pipe
-Downward Pipe
-Fuel pipes:
-Pipe
-Bent Pipe
-Manifold
-Pipe Cap
-4-Way Manifold
-Upward Pipe
-Downward Pipe
-Devices:
-Universal pipe adapter
-Connector
-Unary Vent
-Gas Pump
-Pressure Regulator
-High Power Gas Pump
-Scrubber
-Meter
-Gas Filter
-Gas Filter - Mirrored
-Gas Mixer
-Gas Mixer - Mirrored
-Gas Mixer - T
-Omni Gas Mixer
-Omni Gas Filter
-Heat exchange:
-Pipe
-Bent Pipe
-Junction
-Heat Exchanger
-Wall radiator:
-Wall Radiator
-Junction Left
-Junction Right
-"} -///// Z-Level stuff -//What number the make points to is in the define # at the top of construction.dm in same folder - - show_browser(user, "[src][dat]", "window=pipedispenser") - onclose(user, "pipedispenser") - return - -/obj/machinery/pipedispenser/Topic(href, href_list) - if((. = ..()) || unwrenched) - close_browser(usr, "window=pipedispenser") + var/static/list/designs_icons = list() + + var/list/allowed_categories = list( + "Regular pipes", + "Supply pipes", + "Scrubbers pipes", + "Fuel pipes", + "Devices", + "Heat Exchange" + ) + +/obj/machinery/pipedispenser/attack_hand(mob/user) + . = ..() + tgui_interact(user) + +/obj/machinery/pipedispenser/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + + if(!ui) + ui = new(user, src, "PipeDispenser", name) + ui.open() + +/obj/machinery/pipedispenser/tgui_static_data(mob/user) + var/list/data = list() + + data["categories"] = list() + for(var/category in GLOB.pipe_dispenser_recipes) + if(!(category in allowed_categories)) + continue + + if(!islist(designs_icons[category])) + designs_icons[category] = list() + + var/list/pipes = list() + for(var/pipe_design in GLOB.pipe_dispenser_recipes[category]) // Fuck the guy who coded pipes. + var/pipe_index = GLOB.pipe_dispenser_recipes[category][pipe_design] + var/pipe_dir = SOUTH // Fuck the guy who coded pipes. + if(pipe_index == 1 || pipe_index == 30 || pipe_index == 32 || pipe_index == 46 || pipe_index == 3) + pipe_dir = 5 + + if(!designs_icons[category][pipe_design]) + if(category == "Devices" && pipe_index == 1) + var/obj/item/pipe_meter/meter = new (src) + designs_icons[category][pipe_design] = icon(icon = meter.icon, icon_state = meter.icon_state, dir = SOUTH, frame = 1) + qdel(meter) + + else if(category != "Disposal Pipes") + var/obj/item/pipe/P = new (src, pipe_index, pipe_dir) + P.update() + var/icon/pipe_icon = icon(icon = P.icon, icon_state = P.icon_state, dir = pipe_dir, frame = 1) + pipe_icon.Blend(P.color, ICON_MULTIPLY) + designs_icons[category][pipe_design] = pipe_icon + qdel(P) + + else if(GLOB.pipe_dispenser_recipes[category][pipe_design] == 15) + var/obj/machinery/disposal_switch/d_switch = new (src) + designs_icons[category][pipe_design] = icon(icon = d_switch.icon, icon_state = d_switch.icon_state, dir = pipe_dir, frame = 1) + qdel(d_switch) + + else + var/subtype = null + if(pipe_index == 9) // Fuck the guy who coded pipes. + subtype = 1 + else if(pipe_index == 10) + subtype = 2 + + var/obj/structure/disposalconstruct/C = new (src, GLOB.pipe_dispenser_recipes[category][pipe_design], subtype) + C.update() + designs_icons[category][pipe_design] = icon(icon = C.icon, icon_state = C.icon_state, dir = SOUTH, frame = 1) + qdel(C) + + pipes += list(list("pipe_name" = pipe_design, "pipe_index" = GLOB.pipe_dispenser_recipes[category][pipe_design], "pipe_icon" = icon2base64html(designs_icons[category][pipe_design]))) + + data["categories"] += list(list("cat_name" = category, "recipes" = pipes)) + + return data + +/obj/machinery/pipedispenser/tgui_act(action, params) + . = ..() + + if(.) return - if(href_list["make"]) - if(!wait) - var/p_type = text2num(href_list["make"]) - var/p_dir = text2num(href_list["dir"]) - var/obj/item/pipe/P = new (/*usr.loc*/ src.loc, pipe_type=p_type, dir=p_dir) - P.update() - wait = 1 - spawn(10) - wait = 0 - if(href_list["makemeter"]) - if(!wait) - new /obj/item/pipe_meter(/*usr.loc*/ src.loc) - wait = 1 - spawn(15) - wait = 0 - return + + switch(action) + if("spawn_pipe") + var/category = params["category"] + var/pipe_index = text2num(params["pipe_index"]) + var/pipe_dir = 1 // Fuck the guy who coded pipes. + if(pipe_index == 1 || pipe_index == 30 || pipe_index == 32 || pipe_index == 46 || pipe_index == 3) + pipe_dir = 5 + + if(category == "Devices" && pipe_index == 1) + dispense_pipe(usr, get_turf(src), new /obj/item/pipe_meter(src)) + return TRUE + else if(category == "Disposal Pipes") + if(pipe_index == 15) + dispense_pipe(usr, get_turf(src), new /obj/machinery/disposal_switch (src)) + return TRUE + else + var/subtype = null + if(pipe_index == 9) // Fuck the guy who coded pipes. + subtype = 1 + else if(pipe_index == 10) + subtype = 2 + + var/obj/structure/disposalconstruct/C = new (src, pipe_index, subtype) + C.update() + dispense_pipe(usr, get_turf(src), C) + return TRUE + else + var/obj/item/pipe/P = new (src, pipe_index, pipe_dir) + P.update() + dispense_pipe(usr, get_turf(src), P) + return TRUE + +/obj/machinery/pipedispenser/proc/dispense_pipe(mob/living/user, turf/location, obj/item/new_pipe) + if(istype(user) && user.Adjacent(src)) + user.pick_or_drop(new_pipe, get_turf(src)) + else + new_pipe.forceMove(get_turf(src)) /obj/machinery/pipedispenser/attackby(obj/item/W as obj, mob/user as mob) if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter)) @@ -112,6 +137,7 @@ add_fingerprint(usr) qdel(W) return + else if(isWrench(W)) add_fingerprint(usr) if(unwrenched==0) @@ -148,15 +174,9 @@ icon_state = "pipe_d" density = 1 anchored = 1.0 - -/* -//Allow you to push disposal pipes into it (for those with density 1) -/obj/machinery/pipedispenser/disposal/Crossed(obj/structure/disposalconstruct/pipe as obj) - if(istype(pipe) && !pipe.anchored) - qdel(pipe) - -Nah -*/ + allowed_categories = list( + "Disposal Pipes" + ) //Allow you to drag-drop disposal pipes into it /obj/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/disposalconstruct/pipe, mob/user) @@ -175,91 +195,6 @@ Nah if(..()) return -///// Z-Level stuff - var/dat = {"Disposal Pipes

-Pipe
-Bent Pipe
-Junction
-Y-Junction
-Trunk
-Bin
-Outlet
-Chute
-Upwards
-Downwards
-Sorting
-Sorting (Wildcard)
-Sorting (Untagged)
-Tagger
-Tagger (Partial)
-Diversion
-Diversion Switch
-"} -///// Z-Level stuff - - show_browser(user, "[src][dat]", "window=pipedispenser") - return - -// 0=straight, 1=bent, 2=junction-j1, 3=junction-j2, 4=junction-y, 5=trunk - - -/obj/machinery/pipedispenser/disposal/Topic(href, href_list) - if((. = ..()) || unwrenched) - close_browser(usr, "window=pipedispenser") - return - if(href_list["dmake"]) - if(!wait) - var/p_type = text2num(href_list["dmake"]) - if(p_type == 15) - new /obj/machinery/disposal_switch (get_turf(src)) - else - var/obj/structure/disposalconstruct/C = new (src.loc) - switch(p_type) - if(0) - C.ptype = 0 - if(1) - C.ptype = 1 - if(2) - C.ptype = 2 - if(3) - C.ptype = 4 - if(4) - C.ptype = 5 - if(5) - C.ptype = 6 - C.set_density(1) - if(6) - C.ptype = 7 - C.set_density(1) - if(7) - C.ptype = 8 - C.set_density(1) - if(8) - C.ptype = 9 - C.subtype = 0 - if(9) - C.ptype = 9 - C.subtype = 1 - if(10) - C.ptype = 9 - C.subtype = 2 - if(11) - C.ptype = 13 - if(12) - C.ptype = 14 - if(13) - C.ptype = 15 -///// Z-Level stuff - if(21) - C.ptype = 11 - if(22) - C.ptype = 12 -///// Z-Level stuff - C.update() - wait = 1 - spawn(15) - wait = 0 - return // adding a pipe dispensers that spawn unhooked from the ground /obj/machinery/pipedispenser/orderable diff --git a/code/game/machinery/pipe/pipelayer.dm b/code/game/machinery/pipe/pipelayer.dm index 89900b71b4a..8d388b1188c 100644 --- a/code/game/machinery/pipe/pipelayer.dm +++ b/code/game/machinery/pipe/pipelayer.dm @@ -78,9 +78,9 @@ return ..() -/obj/machinery/pipelayer/_examine_text(mob/user) +/obj/machinery/pipelayer/examine(mob/user, infix) . = ..() - . += "\n\The [src] has [metal] sheet\s, is set to produce [P_type_t], and auto-dismantling is [!a_dis?"de":""]activated." + . += "\The [src] has [metal] sheet\s, is set to produce [P_type_t], and auto-dismantling is [!a_dis?"de":""]activated." /obj/machinery/pipelayer/proc/reset() on=0 @@ -129,7 +129,7 @@ p_type=0+P_type p_dir=M_Dir - var/obj/item/pipe/P = new (w_turf, pipe_type=p_type, dir=p_dir) + var/obj/item/pipe/P = new (w_turf, p_type, p_dir) P.attackby(W , src) return 1 diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index b628bc43a17..2777ae9cc51 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -112,9 +112,9 @@ target.give(charge_used) -/obj/machinery/recharge_station/_examine_text(mob/user) +/obj/machinery/recharge_station/examine(mob/user, infix) . = ..() - . += "\nThe charge meter reads: [round(chargepercentage())]%" + . += "The charge meter reads: [round(chargepercentage())]%" /obj/machinery/recharge_station/proc/chargepercentage() if(!cell) diff --git a/code/game/machinery/secsmith.dm b/code/game/machinery/secsmith.dm index 46764be6388..ff61ef30013 100644 --- a/code/game/machinery/secsmith.dm +++ b/code/game/machinery/secsmith.dm @@ -28,24 +28,24 @@ /obj/machinery/secsmith/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/gun/energy/security)) if(taser) - show_splash_text(user, "already contains a taser!") + show_splash_text(user, "already contains a taser!", "[src] already contains a taser!") return if(!user.drop(I, src)) return - show_splash_text(user, "taser inserted!") + show_splash_text(user, "taser inserted!", "You insert \the [I] into [src].") taser = I update_icon() tgui_update() return else if(istype(I, /obj/item/gun/energy/classictaser)) - show_splash_text(user, "taser not supported!") + show_splash_text(user, "taser not supported!", "\The [I]'s model is outdated, and not supported by [src].") return else if(istype(I, /obj/item/gun)) - show_splash_text(user, "gun not supported!") + show_splash_text(user, "gun not supported!", "[src] is not suited for this type of weapon.") return ..() diff --git a/code/game/machinery/slot_machine.dm b/code/game/machinery/slot_machine.dm index 5ea75a935f8..55c35811837 100644 --- a/code/game/machinery/slot_machine.dm +++ b/code/game/machinery/slot_machine.dm @@ -74,9 +74,9 @@ /obj/machinery/slot_machine/proc/money_roll() plays = TRUE update_icon() - addtimer(CALLBACK(src, .proc/_money_roll), 3 SECONDS) + set_next_think(world.time + 3 SECONDS) -/obj/machinery/slot_machine/proc/_money_roll() +/obj/machinery/slot_machine/think() var/roll = rand(1, max_roll) var/exclamation = "" var/amount = 0 diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index f54a820a0bb..0f5385ce49b 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -36,14 +36,14 @@ if(panel_open) AddOverlays("sheater-open") -/obj/machinery/space_heater/_examine_text(mob/user) +/obj/machinery/space_heater/examine(mob/user, infix) . = ..() - . += "\nThe heater is [on ? "on" : "off"] and the hatch is [panel_open ? "open" : "closed"]." + . += "The heater is [on ? "on" : "off"] and the hatch is [panel_open ? "open" : "closed"]." if(panel_open) - . += "\nThe power cell is [cell ? "installed" : "missing"]." + . += "The power cell is [cell ? "installed" : "missing"]." else - . += "\nThe charge meter reads [cell ? round(CELL_PERCENT(cell),1) : 0]%" + . += "The charge meter reads [cell ? round(CELL_PERCENT(cell),1) : 0]%" return /obj/machinery/space_heater/emp_act(severity) diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 16dda81f7bc..aa31b680b4c 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -165,20 +165,22 @@ return 1 return 0 -/obj/machinery/status_display/_examine_text(mob/user) +/obj/machinery/status_display/examine(mob/user, infix) . = ..() + switch(mode) if(STATUS_DISPLAY_BLANK) return + if(STATUS_DISPLAY_ALERT) var/decl/security_state/security_state = decls_repository.get_decl(GLOB.using_map.security_state) - . += "\nThe current alert level is [security_state.current_security_level.name]." + . += "The current alert level is [security_state.current_security_level.name]." if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME) - . += "\nTime until the shuttle arives: [get_evac_shuttle_timer()]." + . += "Time until the shuttle arives: [get_evac_shuttle_timer()]." if(STATUS_DISPLAY_IMAGE) - . += "\nThere is a picture on the display." + . += "There is a picture on the display." else - . += "\nThe display says:
\t[sanitize(message1)]
\t[sanitize(message2)]" + . += "The display says:
\t[sanitize(message1)]
\t[sanitize(message2)]" /obj/machinery/status_display/proc/set_message(m1, m2) if(m1) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index dfdd5870e7e..c5e81709521 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -6,7 +6,7 @@ desc = "It's the hub of a teleporting machine." icon_state = "tele_gate_off" icon = 'icons/obj/machines/teleporter.dmi' - density = FALSE + density = TRUE anchored = TRUE idle_power_usage = 10 WATTS active_power_usage = 2 KILO WATTS @@ -109,9 +109,11 @@ do_teleport(A, target) return -/obj/machinery/teleporter_gate/Crossed(A) +/obj/machinery/teleporter_gate/Bumped(AM) + . = ..() + if(is_ready()) - teleport(A) + teleport(AM) /obj/machinery/teleporter_gate/power_change() . = ..() diff --git a/code/game/machinery/turret/_turret_control.dm b/code/game/machinery/turret/_turret_control.dm index 1d58ffc06c8..9e004726920 100644 --- a/code/game/machinery/turret/_turret_control.dm +++ b/code/game/machinery/turret/_turret_control.dm @@ -105,16 +105,8 @@ if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(!WT.isOn()) - return - - if(WT.get_fuel() < 5) - show_splash_text(user, "Not enough fuel!") - - playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1) - if(do_after(user, 30 SECONDS, src)) - if(QDELETED(src) || !WT.remove_fuel(5, user)) - return + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) + return FALSE show_splash_text(user, "External armor removed!") diff --git a/code/game/machinery/turret/_turret_control_frame.dm b/code/game/machinery/turret/_turret_control_frame.dm index 0e2deca3cf1..bde1022f986 100644 --- a/code/game/machinery/turret/_turret_control_frame.dm +++ b/code/game/machinery/turret/_turret_control_frame.dm @@ -7,7 +7,7 @@ /obj/structure/turret_control_frame name = "Turret control panel frame" - anchored = TRUE + anchored = FALSE icon = 'icons/obj/machines/turret_control.dmi' icon_state = "control_assembly" @@ -49,7 +49,7 @@ buildstage = BUILDSTAGE_SIGNALER if(BUILDSTAGE_SIGNALER) - if(issignaler(I) && user.drop(I)) + if(issignaler(I) && user.drop(I, src)) show_splash_text(user, "Signaler installed") signaler = I buildstage = BUILDSTAGE_HATCH @@ -81,24 +81,20 @@ if(BUILDSTAGE_ARMOR_WELD) if(isWelder(I)) var/obj/item/weldingtool/WT = I - if(!WT.isOn()) - return - if(WT.get_fuel() < 5) - show_splash_text(user, "Not enough fuel!") + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) + return FALSE - playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1) - if(do_after(user, 30, src)) - if(QDELETED(src) || !WT.remove_fuel(5, user)) - return + if(QDELETED(src) || !user) + return - show_splash_text(user, "External armor welded") + show_splash_text(user, "External armor welded") - //The final step: create a full turret control panel - var/obj/machinery/turret_control_panel/tcp = new target_type(get_turf(src), signaler) - tcp.enabled = FALSE + //The final step: create a full turret control panel + var/obj/machinery/turret_control_panel/tcp = new target_type(get_turf(src), signaler) + tcp.enabled = FALSE - qdel_self() + qdel_self() else if(isCrowbar(I)) playsound(loc, 'sound/items/Crowbar.ogg', 75, 1) diff --git a/code/game/machinery/turret/_turret_frame.dm b/code/game/machinery/turret/_turret_frame.dm index dda7afdf06a..ccf493a42f2 100644 --- a/code/game/machinery/turret/_turret_frame.dm +++ b/code/game/machinery/turret/_turret_frame.dm @@ -71,22 +71,17 @@ else if(isWelder(I)) var/obj/item/weldingtool/WT = I - if(!WT.isOn()) + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) return - if(WT.get_fuel() < 5) - show_splash_text(user, "Not enough fuel!") - return - - playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1) - if(do_after(user, 20, src)) - if(QDELETED(src) || !WT.remove_fuel(5, user)) - return - buildstage = BUILDSTAGE_IARMOR_ATTACH - show_splash_text(user, "Internal armor removed!") - new /obj/item/stack/material/steel(get_turf(src), 2) + if(QDELETED(src) || !user) return + buildstage = BUILDSTAGE_IARMOR_ATTACH + show_splash_text(user, "Internal armor removed!") + new /obj/item/stack/material/steel(get_turf(src), 2) + return + if(BUILDSTAGE_PROX) if(isprox(I)) if(!user.drop(I, src)) @@ -133,24 +128,19 @@ if(BUILDSTAGE_EARMOR_WELD) if(isWelder(I)) var/obj/item/weldingtool/WT = I - if(!WT.isOn()) - return - - if(WT.get_fuel() < 5) - show_splash_text(user, "Not enough fuel!") + if(!WT.use_tool(src, user, delay = 3 SECONDS, amount = 5)) + return FALSE - playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1) - if(do_after(user, 30, src)) - if(QDELETED(src) || !WT.remove_fuel(5, user)) - return + if(QDELETED(src) || !user) + return - show_splash_text(user, "External armor welded") + show_splash_text(user, "External armor welded") - //The final step: create a full turret - var/obj/machinery/turret/T = new target_type(get_turf(src), signaler) - T.enabled = FALSE + //The final step: create a full turret + var/obj/machinery/turret/T = new target_type(get_turf(src), signaler) + T.enabled = FALSE - qdel_self() + qdel_self() else if(isCrowbar(I)) playsound(loc, 'sound/items/Crowbar.ogg', 75, 1) @@ -163,6 +153,7 @@ switch(buildstage) if(BUILDSTAGE_HATCH) if(!signaler) + buildstage = BUILDSTAGE_PROX return if(user.pick_or_drop(signaler)) diff --git a/code/game/machinery/turret/_turrets.dm b/code/game/machinery/turret/_turrets.dm index df466054901..85d04f7b617 100644 --- a/code/game/machinery/turret/_turrets.dm +++ b/code/game/machinery/turret/_turrets.dm @@ -69,10 +69,11 @@ GLOBAL_LIST_EMPTY(all_turrets) var/datum/state_machine/turret/state_machine = null var/weakref/target = null var/list/potential_targets = list() - var/timer_id = null var/datum/hostility/hostility /// Determines whether this turret is raised or not var/raised = FALSE + /// Whether this turret is moving its cover at the moment. No state transitions until it finishes moving. + var/currently_raising = FALSE /// Boolean to prevent FSM spamming state switching. var/reloading = FALSE /// Firewall that prevents AI and synth from interacting with it directly. @@ -109,6 +110,12 @@ GLOBAL_LIST_EMPTY(all_turrets) installed_gun = new installed_gun(src) setup_gun() + add_think_ctx("process_reloading", CALLBACK(src, nameof(.proc/process_reloading)), 0) + add_think_ctx("process_idle", CALLBACK(src, nameof(.proc/process_idle)), 0) + add_think_ctx("process_turning", CALLBACK(src, nameof(.proc/process_turning)), 0) + add_think_ctx("process_shooting", CALLBACK(src, nameof(.proc/process_shooting)), 0) + add_think_ctx("emagged_targetting", CALLBACK(src, nameof(.proc/emagged_targeting)), 0) + state_machine = add_state_machine(src, /datum/state_machine/turret) target_bearing = dir2angle(dir) @@ -139,7 +146,6 @@ GLOBAL_LIST_EMPTY(all_turrets) /obj/machinery/turret/Destroy() remove_state_machine(src, /datum/state_machine/turret) - deltimer(timer_id) QDEL_NULL(state_machine) QDEL_NULL(proximity) @@ -232,16 +238,11 @@ GLOBAL_LIST_EMPTY(all_turrets) if(isWelder(I)) var/obj/item/weldingtool/WT = I - if(!WT.isOn()) + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) return - if(WT.get_fuel() < 5) - show_splash_text(user, "Not enough fuel!") - - playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1) - if(do_after(user, 30 SECONDS, src)) - if(QDELETED(src) || !WT.remove_fuel(5, user)) - return + if(QDELETED(src) || !user) + return show_splash_text(user, "External armor removed!") @@ -264,6 +265,7 @@ GLOBAL_LIST_EMPTY(all_turrets) // State machine processing steps, called by looping timer /obj/machinery/turret/proc/process_turning() if(!enabled || inoperable()) + state_machine.evaluate() return var/distance_from_target_bearing = get_distance_from_target_bearing() @@ -276,6 +278,7 @@ GLOBAL_LIST_EMPTY(all_turrets) distance_this_step = 0 set_bearing(current_bearing + distance_this_step) + set_next_think_ctx("process_turning", world.time + TURRET_WAIT) state_machine.evaluate() /obj/machinery/turret/proc/process_shooting() @@ -286,6 +289,8 @@ GLOBAL_LIST_EMPTY(all_turrets) fire_weapon(resolved_target) else target = null + + set_next_think_ctx("process_shooting", world.time + TURRET_WAIT) state_machine.evaluate() /obj/machinery/turret/proc/fire_weapon(atom/resolved_target) @@ -314,12 +319,14 @@ GLOBAL_LIST_EMPTY(all_turrets) break + state_machine.evaluate() reloading = FALSE /obj/machinery/turret/proc/process_idle() if(!isnull(default_bearing) && (target_bearing != default_bearing) && angle_within_traverse(default_bearing)) target_bearing = default_bearing + set_next_think_ctx("process_idle", world.time + TURRET_WAIT) state_machine.evaluate() // Calculates the turret's leftmost and rightmost angles from the turret's direction and traverse. @@ -500,7 +507,7 @@ GLOBAL_LIST_EMPTY(all_turrets) to_chat(user, SPAN_WARNING("You short out \the [src]'s threat assessment circuits.")) visible_message("\The [src] hums oddly...") enabled = FALSE - addtimer(CALLBACK(src, .proc/emagged_targeting), 6 SECONDS) + set_next_think_ctx("emagged_targeting", world.time + 6 SECONDS) state_machine.evaluate() /obj/machinery/turret/proc/emagged_targeting() @@ -597,6 +604,7 @@ GLOBAL_LIST_EMPTY(all_turrets) update_icon() sleep(10) qdel(flick_holder) + currently_raising = FALSE /// Plays closing animation /obj/machinery/turret/proc/popdown() @@ -610,9 +618,15 @@ GLOBAL_LIST_EMPTY(all_turrets) qdel(flick_holder) raised = FALSE update_icon() + currently_raising = FALSE /// Pops turret down or up according to the var 'state'. /obj/machinery/turret/proc/change_raised(state) + if(currently_raising) + return FALSE + + currently_raising = TRUE + if(state) INVOKE_ASYNC(src, nameof(.proc/popup)) else diff --git a/code/game/machinery/turret/turret_fsm.dm b/code/game/machinery/turret/turret_fsm.dm index 7da6f5201f0..5896a844feb 100644 --- a/code/game/machinery/turret/turret_fsm.dm +++ b/code/game/machinery/turret/turret_fsm.dm @@ -10,9 +10,6 @@ var/sound_played_last var/sound_cd = 1 SECOND - var/timer_proc = null - var/timer_wait = TURRET_WAIT - /// Determines whether turret should be raised or not when in this state. var/turret_raised = FALSE @@ -28,36 +25,35 @@ sound_played_last = world.time playsound(turret, switched_to_sound, 40, TRUE) - if(timer_proc) - turret.timer_id = addtimer(CALLBACK(turret, timer_proc), timer_wait, TIMER_UNIQUE | TIMER_STOPPABLE | TIMER_LOOP | TIMER_OVERRIDE) - /datum/state/turret/exited_state(obj/machinery/turret/turret) if(switched_from_sound && world.time + sound_cd >= sound_played_last) sound_played_last = world.time playsound(turret, switched_from_sound, 40, TRUE) - if(timer_proc && turret.timer_id) - deltimer(turret.timer_id) - turret.timer_id = null - /datum/state/turret/idle ray_color = "#ffffffff" ray_alpha = 0 - // Timer for returning to default bearing. - timer_proc = /obj/machinery/turret/proc/process_idle - timer_wait = 5 SECONDS transitions = list( /datum/state_transition/turret/lost_power, /datum/state_transition/turret/reload, - /datum/state_transition/turret/shoot, - /datum/state_transition/turret/turn_to_bearing + /datum/state_transition/turret/pop_up, ) +/datum/state/turret/idle/entered_state(obj/machinery/turret/turret, datum/state/turret/previous_state) + . = ..() + turret.set_next_think_ctx("process_idle", world.time + TURRET_WAIT) + turret.set_next_think_ctx("process_reloading", 0) + turret.set_next_think_ctx("process_turning", 0) + turret.set_next_think_ctx("process_shooting", 0) + +/datum/state/turret/idle/exited_state(obj/machinery/turret/turret) + . = ..() + turret.set_next_think_ctx("process_idle", 0) + /datum/state/turret/turning ray_color = "#ffff00ff" switched_to_sound = SFX_TURRET_ROTATE - timer_proc = /obj/machinery/turret/proc/process_turning turret_raised = TRUE transitions = list( /datum/state_transition/turret/lost_power, @@ -66,10 +62,20 @@ /datum/state_transition/turret/no_enemies ) +/datum/state/turret/turning/entered_state(obj/machinery/turret/turret, datum/state/turret/previous_state) + . = ..() + turret.set_next_think_ctx("process_turning", world.time + TURRET_WAIT) + turret.set_next_think_ctx("process_reloading", 0) + turret.set_next_think_ctx("process_idle", 0) + turret.set_next_think_ctx("process_shooting", 0) + +/datum/state/turret/turning/exited_state(obj/machinery/turret/turret) + . = ..() + turret.set_next_think_ctx("process_turning", 0) + /datum/state/turret/engaging ray_color = "#ff0000ff" turret_raised = TRUE - timer_proc = /obj/machinery/turret/proc/process_shooting transitions = list( /datum/state_transition/turret/lost_power, /datum/state_transition/turret/reload, @@ -77,11 +83,21 @@ /datum/state_transition/turret/no_enemies ) +/datum/state/turret/engaging/entered_state(obj/machinery/turret/turret, datum/state/turret/previous_state) + . = ..() + turret.set_next_think_ctx("process_shooting", world.time + TURRET_WAIT) + turret.set_next_think_ctx("process_reloading", 0) + turret.set_next_think_ctx("process_idle", 0) + turret.set_next_think_ctx("process_turning", 0) + +/datum/state/turret/engaging/exited_state(obj/machinery/turret/turret) + . = ..() + turret.set_next_think_ctx("process_shooting", 0) + /datum/state/turret/reloading ray_color = "#ffa600ff" switched_to_sound = 'sound/effects/weapons/gun/interaction/rifle_load.ogg' turret_raised = TRUE - timer_proc = /obj/machinery/turret/proc/process_reloading transitions = list( /datum/state_transition/turret/lost_power, /datum/state_transition/turret/shoot, @@ -89,6 +105,17 @@ /datum/state_transition/turret/no_enemies ) +/datum/state/turret/reloading/entered_state(obj/machinery/turret/turret, datum/state/turret/previous_state) + . = ..() + turret.set_next_think_ctx("process_reloading", world.time + TURRET_WAIT) + turret.set_next_think_ctx("process_shooting", 0) + turret.set_next_think_ctx("process_idle", 0) + turret.set_next_think_ctx("process_turning", 0) + +/datum/state/turret/reloading/exited_state(obj/machinery/turret/turret) + . = ..() + turret.set_next_think_ctx("process_reloading", 0) + /datum/state/turret/reloading/get_open_transitions(obj/machinery/turret/turret) if(turret.reloading) // We do not exit this state until reload is finished. return FALSE @@ -106,9 +133,24 @@ /datum/state_transition/turret/reload, /datum/state_transition/turret/shoot, /datum/state_transition/turret/turn_to_bearing, - /datum/state_transition/turret/no_enemies + /datum/state_transition/turret/no_enemies, + /datum/state_transition/turret/pop_up ) +/datum/state/turret/no_power/entered_state(obj/machinery/turret/turret, datum/state/turret/previous_state) + . = ..() + turret.set_next_think_ctx("process_reloading", 0) + turret.set_next_think_ctx("process_shooting", 0) + turret.set_next_think_ctx("process_idle", 0) + turret.set_next_think_ctx("process_turning", 0) + +/datum/state_transition/turret/pop_up + target = /datum/state/turret/turning + +/datum/state_transition/turret/pop_up/is_open(obj/machinery/turret/turret) + . = ..() + return . && !turret.currently_raising && !turret.raised && turret.find_target() + /datum/state_transition/turret/is_open(obj/machinery/turret/turret) return turret.operable() && turret.enabled @@ -117,21 +159,21 @@ /datum/state_transition/turret/turn_to_bearing/is_open(obj/machinery/turret/turret) . = ..() - return . && !turret.within_bearing() + return . && !turret.within_bearing() && !turret.currently_raising && turret.raised /datum/state_transition/turret/shoot target = /datum/state/turret/engaging /datum/state_transition/turret/shoot/is_open(obj/machinery/turret/turret) . = ..() - return . && turret.find_target() && turret.within_bearing() + return . && turret.find_target() && turret.within_bearing() && !turret.currently_raising && turret.raised /datum/state_transition/turret/reload target = /datum/state/turret/reloading /datum/state_transition/turret/reload/is_open(obj/machinery/turret/turret) . = ..() - return . && turret.should_reload() + return . && turret.should_reload() && !turret.currently_raising && turret.raised /datum/state_transition/turret/no_enemies target = /datum/state/turret/idle diff --git a/code/game/machinery/vending/_vending.dm b/code/game/machinery/vending/_vending.dm index b97c23accc6..eab06f296fb 100644 --- a/code/game/machinery/vending/_vending.dm +++ b/code/game/machinery/vending/_vending.dm @@ -116,16 +116,16 @@ cartridge.extra = products cartridge.build_inventory(gen_rand_amount) -/obj/machinery/vending/_examine_text(mob/user) +/obj/machinery/vending/examine(mob/user, infix) . = ..() - if(.) - if(stat & BROKEN) - to_chat(user, SPAN("warning", "It's broken.")) - else - if(health <= 0.4 * max_health) - to_chat(user, SPAN("warning", "It's heavily damaged!")) - else if(health < max_health) - to_chat(user, SPAN("warning", "It's showing signs of damage.")) + + if(stat & BROKEN) + . += SPAN("warning", "It's broken.") + else + if(health <= 0.4 * max_health) + . += SPAN("warning", "It's heavily damaged!") + else if(health < max_health) + . += SPAN("warning", "It's showing signs of damage.") /obj/machinery/vending/proc/take_damage(force) if(health > 0) @@ -263,21 +263,24 @@ qdel(src) return FALSE -/obj/machinery/vending/proc/attempt_to_repair(mob/user, obj/item/weldingtool/W) - if(!istype(W) || !W.isOn()) +/obj/machinery/vending/proc/attempt_to_repair(mob/user, obj/item/weldingtool/WT) + if(!istype(WT)) return FALSE + if(health == max_health) to_chat(user, SPAN("notice", "\The [src] is undamaged.")) return FALSE - if(!W.remove_fuel(0, user)) - to_chat(user, SPAN("notice", "You need more welding fuel to complete this task.")) - return FALSE - playsound(src, 'sound/items/Welder.ogg', 100, 1) + user.visible_message(SPAN("notice", "[user] is repairing \the [src]..."), SPAN("notice", "You start repairing the damage to [src]...")) - if(do_after(user, 30, src) && W.isOn()) - health = max_health - user.visible_message(SPAN("notice", "[user] repairs \the [src]."), SPAN("notice", "You repair \the [src].")) - set_broken(0) + if(!WT.use_tool(src, user, delay = 3 SECONDS, amount = 5)) + return + + if(QDELETED(src) || !user) + return + + health = max_health + user.visible_message(SPAN("notice", "[user] repairs \the [src]."), SPAN("notice", "You repair \the [src].")) + set_broken(0) return TRUE /obj/machinery/vending/MouseDrop_T(obj/item/I, mob/user) diff --git a/code/game/machinery/vending/fitness.dm b/code/game/machinery/vending/fitness.dm index 5ed8c69b267..c5700e17cda 100644 --- a/code/game/machinery/vending/fitness.dm +++ b/code/game/machinery/vending/fitness.dm @@ -24,7 +24,11 @@ /obj/item/reagent_containers/food/packaged/nutribar = 8, /obj/item/reagent_containers/food/liquidfood = 8, /obj/item/reagent_containers/pill/diet = 8, - /obj/item/towel/random = 8 + /obj/item/towel/random = 8, + /obj/item/clothing/gloves/boxing = 2, + /obj/item/clothing/gloves/boxing/blue = 2, + /obj/item/clothing/gloves/boxing/green = 2, + /obj/item/clothing/gloves/boxing/yellow = 2, ) illegal = list( @@ -39,7 +43,11 @@ /obj/item/reagent_containers/food/packaged/nutribar = 5, /obj/item/reagent_containers/food/liquidfood = 5, /obj/item/reagent_containers/pill/diet = 25, - /obj/item/towel/random = 40 + /obj/item/towel/random = 40, + /obj/item/clothing/gloves/boxing = 50, + /obj/item/clothing/gloves/boxing/blue = 50, + /obj/item/clothing/gloves/boxing/green = 50, + /obj/item/clothing/gloves/boxing/yellow = 50, ) /obj/item/vending_cartridge/fitness diff --git a/code/game/machinery/vending_frame.dm b/code/game/machinery/vending_frame.dm index 8afefa1ea19..2ee36d7dfc9 100644 --- a/code/game/machinery/vending_frame.dm +++ b/code/game/machinery/vending_frame.dm @@ -66,15 +66,15 @@ create_vendomat() /obj/machinery/vending_frame/proc/deconstruct_frame(obj/item/weldingtool/WT, mob/user) - if(!WT.remove_fuel(0, user)) - to_chat(user, "The welding tool must be on to complete this task.") + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 5)) return - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - if(do_after(user, 20, src)) - if(!src || !WT.isOn()) return - to_chat(user, "You deconstruct the frame.") - new /obj/item/stack/material/steel(src.loc, 5) - qdel(src) + + if(QDELETED(src) || !user) + return + + to_chat(user, SPAN_NOTICE("You deconstruct the frame.")) + new /obj/item/stack/material/steel(src.loc, 5) + qdel(src) /obj/machinery/vending_frame/proc/wrench_frame(mob/user) playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) diff --git a/code/game/map_ent/logic_timer.dm b/code/game/map_ent/logic_timer.dm index 487b1d51b45..863b4845a75 100644 --- a/code/game/map_ent/logic_timer.dm +++ b/code/game/map_ent/logic_timer.dm @@ -16,7 +16,8 @@ if(ev_wait <= 0) util_crash_with("ev_wait should be greather than zero") - addtimer(CALLBACK(src, nameof(.proc/_timer_callback)), ev_wait, TIMER_OVERRIDE | TIMER_UNIQUE) + set_next_think(0) // Replicating TIMER_OVERRIDE logic + set_next_think(world.time + ev_wait) if(ev_once) ev_enabled = FALSE @@ -25,7 +26,7 @@ ev_enabled = !ev_enabled _add_timer() -/obj/map_ent/logic_timer/proc/_timer_callback() +/obj/map_ent/logic_timer/think() var/obj/map_ent/E = locate(ev_tag) if(!istype(E)) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 6842e091d7b..8bc347d7569 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -251,26 +251,26 @@ else return 0 -/obj/mecha/_examine_text(mob/user) +/obj/mecha/examine(mob/user, infix) . = ..() + var/integrity = health/initial(health)*100 switch(integrity) if(85 to 100) - . += "\nIt's fully intact." + . += "It's fully intact." if(65 to 85) - . += "\nIt's slightly damaged." + . += "It's slightly damaged." if(45 to 65) - . += "\nIt's badly damaged." + . += "It's badly damaged." if(25 to 45) - . += "\nIt's heavily damaged." + . += "It's heavily damaged." else - . += "\nIt's falling apart." + . += "It's falling apart." + if(equipment && equipment.len) - . += "\nIt's equipped with:" + . += "It's equipped with:" for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment) - . += "\n\icon[ME] [ME]" - return - + . += "\icon[ME] [ME]" /obj/mecha/proc/drop_item()//Derpfix, but may be useful in future for engineering exosuits. return @@ -374,10 +374,12 @@ //////// Movement procs //////// ////////////////////////////////// -/obj/mecha/Move() +/obj/mecha/Move(newloc, direct) . = ..() - if(.) - events.fireEvent("onMove",get_turf(src)) + if(!.) + return + + events.fireEvent("onMove", get_turf(src)) /obj/mecha/relaymove(mob/user,direction) if(user != src.occupant) //While not "realistic", this piece is player friendly. @@ -619,7 +621,7 @@ user.visible_message(SPAN("danger", "\The [user] hits \the [src]. Nothing happens."), SPAN("danger", "You hit \the [src] with no visible effect.")) log_append_to_last("Armor saved.") return - else if((MUTATION_HULK in user.mutations) && !deflect_hit(is_melee = 1)) + else if(((MUTATION_HULK in user.mutations) || (MUTATION_STRONG in user.mutations)) && !deflect_hit(is_melee = 1)) hit_damage(damage = 15, is_melee = 1) check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL, MECHA_INT_TANK_BREACH, MECHA_INT_CONTROL_LOST)) user.visible_message("[user] hits [name], doing some damage.", "You hit [name] with all your might. The metal creaks and bends.") @@ -861,19 +863,23 @@ else if(isWelder(W) && user.a_intent != I_HURT) var/obj/item/weldingtool/WT = W - if (WT.remove_fuel(0,user)) - if (hasInternalDamage(MECHA_INT_TANK_BREACH)) - clearInternalDamage(MECHA_INT_TANK_BREACH) - to_chat(user, "You repair the damaged gas tank.") - user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - else + + if(!WT.use_tool(src, user, amount = 1)) return - if(src.healthYou repair some damage to [src.name].") + + if(!hasInternalDamage(MECHA_INT_TANK_BREACH)) + return + + clearInternalDamage(MECHA_INT_TANK_BREACH) + to_chat(user, SPAN_NOTICE("You repair the damaged gas tank.")) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) + + if(health < initial(health)) + to_chat(user, SPAN_NOTICE("You repair some damage to [src.name].")) user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - src.health += min(10, initial(src.health)-src.health) + src.health += min(10, initial(health) - health) else - to_chat(user, "The [src.name] is at full integrity") + to_chat(user, "\The [name] is at full integrity") return else if(istype(W, /obj/item/mecha_parts/mecha_tracking)) @@ -1004,8 +1010,8 @@ if(possible_port) if(connect(possible_port)) src.occupant_message("\The [name] connects to the port.") - src.verbs += /obj/mecha/verb/disconnect_from_port - src.verbs -= /obj/mecha/verb/connect_to_port + add_verb(occupant, /obj/mecha/verb/disconnect_from_port) + remove_verb(occupant, /obj/mecha/verb/connect_to_port) return else src.occupant_message("\The [name] failed to connect to the port.") @@ -1024,8 +1030,8 @@ return if(disconnect()) src.occupant_message("[name] disconnects from the port.") - src.verbs -= /obj/mecha/verb/disconnect_from_port - src.verbs += /obj/mecha/verb/connect_to_port + add_verb(occupant, /obj/mecha/verb/connect_to_port) + remove_verb(occupant, /obj/mecha/verb/disconnect_from_port) else src.occupant_message("[name] is not connected to the port at the moment.") @@ -1121,6 +1127,8 @@ . = FALSE ASSERT(H.client) + _add_verb_to_stat(H, verbs) + H.reset_view(src) H.stop_pulling() H.forceMove(src) @@ -1223,7 +1231,7 @@ brainmob.forceMove(src) // should allow relaymove //brainmob.canmove = TRUE //mmi_as_oc.mecha = src - verbs -= /obj/mecha/verb/eject + remove_verb(occupant, /obj/mecha/verb/eject) Entered(I) forceMove(loc) icon_state = reset_icon() @@ -1268,6 +1276,9 @@ /obj/mecha/proc/go_out() if(!src.occupant) return + + _remove_verb_from_stat(occupant, verbs) + var/atom/movable/mob_container var/list/onmob_items //prevents duplication of objects with which the human interacted in the mech if(ishuman(occupant)) @@ -1300,12 +1311,12 @@ var/obj/item/organ/internal/cerebrum/mmi/mmi = mob_container if(mmi.brainmob) occupant.forceMove(mmi) - verbs += /obj/mecha/verb/eject + add_verb(occupant, /obj/mecha/verb/eject) if(istype(mob_container, /obj/item/organ/internal/cerebrum/posibrain)) var/obj/item/organ/internal/cerebrum/posibrain/pb = mob_container if(pb.brainmob) occupant.forceMove(pb) - verbs += /obj/mecha/verb/eject + add_verb(occupant, /obj/mecha/verb/eject) occupant = null icon_state = reset_icon()+"-open" diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 33026bd683c..3ddb2cc4a82 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -7,11 +7,9 @@ if(!istype(I)) return 0 if(isWelder(I)) - var/obj/item/weldingtool/W = I - if (W.remove_fuel(0, user)) - playsound(holder, 'sound/items/Welder2.ogg', 50, 1) - else - return 0 + var/obj/item/weldingtool/WT = I + WT.use_tool(src, user, amount = 1) + else if(isWrench(I)) playsound(holder, 'sound/items/Ratchet.ogg', 50, 1) @@ -40,13 +38,12 @@ /datum/construction/reversible/mecha/custom_action(index, diff, atom/used_atom, mob/user) var/obj/item/I = used_atom if(!istype(I)) - return 0 + return FALSE + if(isWelder(I)) var/obj/item/weldingtool/W = I - if (W.remove_fuel(0, user)) - playsound(holder, 'sound/items/Welder2.ogg', 50, 1) - else - return 0 + W.use_tool(src, user, amount = 1) + else if(isWrench(I)) playsound(holder, 'sound/items/Ratchet.ogg', 50, 1) diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index 71376284c5c..de950672e4b 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -34,19 +34,21 @@ if(salvage_num <= 0) to_chat(user, "You don't see anything that can be cut with [W].") return - if (!isemptylist(welder_salvage) && WT.remove_fuel(0,user)) - var/type = prob(70)?pick(welder_salvage):null - if(type) - var/N = new type(get_turf(user)) - user.visible_message("[user] cuts [N] from [src]", "You cut [N] from [src]", "You hear a sound of welder nearby") - if(istype(N, /obj/item/mecha_parts/part)) - welder_salvage -= type - salvage_num-- - else - to_chat(user, "You failed to salvage anything valuable from [src].") - else - to_chat(user, "You need more welding fuel to complete this task.") + + if(!WT.use_tool(src, user, amount = 1) ) return + + if(isemptylist(welder_salvage)) + to_chat(user, "You failed to salvage anything valuable from [src].") + + var/type = prob(70) ? pick(welder_salvage) : null + if(type) + var/N = new type(get_turf(user)) + user.visible_message("[user] cuts [N] from [src]", "You cut [N] from [src]", "You hear a sound of welder nearby") + if(istype(N, /obj/item/mecha_parts/part)) + welder_salvage -= type + salvage_num-- + if(isWirecutter(W)) if(salvage_num <= 0) to_chat(user, "You don't see anything that can be cut with [W].") diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 175f6366f4a..5cf3059d03f 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -134,15 +134,18 @@ to_chat(M, "You caress \the [src] as it hatches at your command.") hatch() -/obj/structure/alien/egg/_examine_text(mob/user) +/obj/structure/alien/egg/examine(mob/user, infix) . = ..() - if(isliving(user)) - var/mob/living/M = user - if(M.faction == "xenomorph") - if(progress < progress_max) - . += "\nIt's not ready to hatch yet..." - else - . += "\nIt's ready to hatch!" + + if(!isliving(user)) + return + + var/mob/living/M = user + if(M.faction == "xenomorph") + if(progress < progress_max) + . += "It's not ready to hatch yet..." + else + . += "It's ready to hatch!" /obj/structure/alien/egg/on_update_icon() if(progress == -1) @@ -253,9 +256,11 @@ if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(WT.remove_fuel(0, user)) - qdel(src) - playsound(loc, 'sound/items/Welder.ogg', 100, 1) + + if(!WT.use_tool(src, user, amount = 1)) + return + + qdel_self() else if(prob(50)) diff --git a/code/game/objects/effects/chem/chemsmoke.dm b/code/game/objects/effects/chem/chemsmoke.dm index 681e663526a..52ebe29e86b 100644 --- a/code/game/objects/effects/chem/chemsmoke.dm +++ b/code/game/objects/effects/chem/chemsmoke.dm @@ -26,14 +26,16 @@ if(destination) walk_to(src, destination) -/obj/effect/effect/smoke/chem/Move() +/obj/effect/effect/smoke/chem/Move(newloc, direct) var/list/oldlocs = view(1, src) . = ..() - if(.) - for(var/turf/T in view(1, src) - oldlocs) - for(var/atom/movable/AM in T) - if(!istype(AM, /obj/effect/effect/smoke/chem)) - reagents.splash(AM, splash_amount, copy = 1) + if(!.) + return + + for(var/turf/T in view(1, src) - oldlocs) + for(var/atom/movable/AM in T) + if(!istype(AM, /obj/effect/effect/smoke/chem)) + reagents.splash(AM, splash_amount, copy = 1) /obj/effect/effect/smoke/chem/Crossed(atom/movable/AM) ..() diff --git a/code/game/objects/effects/chem/foam.dm b/code/game/objects/effects/chem/foam.dm index 4dfd3d64bcc..c4305fa2ba3 100644 --- a/code/game/objects/effects/chem/foam.dm +++ b/code/game/objects/effects/chem/foam.dm @@ -15,15 +15,17 @@ var/expand = 1 var/metal = 0 -/obj/effect/effect/foam/New(loc, ismetal = 0) - ..(loc) +/obj/effect/effect/foam/Initialize(mapload, loc, ismetal = FALSE) + . = ..() icon_state = "[ismetal? "m" : ""]foam" metal = ismetal playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3) - spawn(3 + metal * 3) - set_next_think(world.time) - checkReagents() - addtimer(CALLBACK(src, nameof(.proc/remove_foam)), 12 SECONDS) + add_think_ctx("check_reagents", CALLBACK(src, nameof(.proc/check_reagents)), 0) + add_think_ctx("remove_foam", CALLBACK(src, nameof(.proc/remove_foam)), 0) + + set_next_think_ctx("check_reagents", world.time + (3 + metal * 3)) + set_next_think_ctx("remove_foam", world.time + 12 SECONDS) + set_next_think(world.time + (3 + metal * 3)) /obj/effect/effect/foam/proc/remove_foam() set_next_think(0) @@ -34,7 +36,7 @@ flick("[icon_state]-disolve", src) QDEL_IN(src, 5) -/obj/effect/effect/foam/proc/checkReagents() // transfer any reagents to the floor +/obj/effect/effect/foam/proc/check_reagents() // transfer any reagents to the floor if(!metal && reagents) var/turf/T = get_turf(src) reagents.touch_turf(T) @@ -158,7 +160,7 @@ qdel(src) /obj/structure/foamedmetal/attack_hand(mob/user) - if ((MUTATION_HULK in user.mutations) || (prob(75 - metal * 25))) + if((MUTATION_HULK in user.mutations) || (MUTATION_STRONG in user.mutations) || (prob(75 - metal * 25))) user.visible_message("[user] smashes through the foamed metal.", "You smash through the metal foam wall.") qdel(src) else diff --git a/code/game/objects/effects/chem/water.dm b/code/game/objects/effects/chem/water.dm index 362d6fc5ab5..8ea00903dcd 100644 --- a/code/game/objects/effects/chem/water.dm +++ b/code/game/objects/effects/chem/water.dm @@ -47,9 +47,11 @@ sleep(10) qdel(src) -/obj/effect/effect/water/Move(turf/newloc) - if(newloc.density) - return 0 +/obj/effect/effect/water/Move(newloc, direct) + var/turf/new_turf = newloc + if(istype(new_turf) && new_turf.density) + return FALSE + . = ..() /obj/effect/effect/water/Bump(atom/A) diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 88ed33aa3c3..8de4db3b0a8 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -53,7 +53,14 @@ var/global/list/image/splatter_cache=list() blood_DNA |= B.blood_DNA.Copy() qdel(B) var/drytime = DRYING_TIME * (max(1, amount)) - addtimer(CALLBACK(src, nameof(.proc/dry)), drytime) + set_next_think(world.time + drytime) + +/obj/effect/decal/cleanable/blood/think() + name = dryname + desc = drydesc + color = adjust_brightness(color, -50) + amount = 0 + virus2.Cut() /obj/effect/decal/cleanable/blood/on_update_icon() if(basecolor == "rainbow") basecolor = get_random_colour(1) @@ -98,13 +105,6 @@ var/global/list/image/splatter_cache=list() H.update_inv_shoes(1) amount-- -/obj/effect/decal/cleanable/blood/proc/dry() - name = dryname - desc = drydesc - color = adjust_brightness(color, -50) - amount = 0 - virus2.Cut() - /obj/effect/decal/cleanable/blood/attack_hand(mob/living/carbon/human/user) ..() @@ -117,7 +117,7 @@ var/global/list/image/splatter_cache=list() user.add_blood(basecolor) user.blood_DNA |= blood_DNA.Copy() user.bloody_hands = taken - user.verbs += /mob/living/carbon/human/proc/bloody_doodle + grant_verb(user, /mob/living/carbon/human/proc/bloody_doodle) /obj/effect/decal/cleanable/blood/splatter random_icon_states = list("mfloor3", "mfloor7", "mgibbl1", "mgibbl2", "mgibbl3", "mgibbl4", "mgibbl5") @@ -158,9 +158,9 @@ var/global/list/image/splatter_cache=list() else icon_state = "writing1" -/obj/effect/decal/cleanable/blood/writing/_examine_text(mob/user) +/obj/effect/decal/cleanable/blood/writing/examine(mob/user, infix) . = ..() - . += "\nIt reads: \"[message]\"" + . += "It reads: \"[message]\"" /obj/effect/decal/cleanable/blood/gibs name = "gibs" @@ -226,7 +226,7 @@ var/global/list/image/splatter_cache=list() var/list/datum/disease2/disease/virus2 = list() var/dried = FALSE - var/dry_timer_id + var/thinking = FALSE /obj/effect/decal/cleanable/mucus/Initialize() . = ..() @@ -245,12 +245,20 @@ var/global/list/image/splatter_cache=list() /obj/effect/decal/cleanable/mucus/proc/update_stats(list/viruses = list()) var/drytime = DRYING_TIME * (rand(20, 30) / 10) // 10 to 15 minutes - if(dry_timer_id) - deltimer(dry_timer_id) + if(thinking) + set_next_think(0) + thinking = FALSE + if(overlays.len <= 20) // We don't want to scare kids with a snotty monster. var/image/mucus_overlay = image(icon = 'icons/effects/blood.dmi', icon_state = "mucus", pixel_x = rand(-8, 8), pixel_y = rand(-8, 8)) mucus_overlay.layer = FLOAT_LAYER mucus_overlay.transform = turn(src.transform, rand(0, 359)) AddOverlays(mucus_overlay) - dry_timer_id = addtimer(CALLBACK(src, nameof(.proc/dry)), drytime, TIMER_STOPPABLE) + + set_next_think(world.time + drytime) + thinking = TRUE virus2 |= viruses + +/obj/effect/decal/cleanable/mucus/think() + thinking = FALSE + dry() diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm index f1207e6e841..e08d01e89f8 100644 --- a/code/game/objects/effects/decals/Cleanable/misc.dm +++ b/code/game/objects/effects/decals/Cleanable/misc.dm @@ -97,11 +97,11 @@ /obj/effect/decal/cleanable/vomit/Initialize() . = ..() var/drytime = DRYING_TIME * (rand(20, 30) / 10) // 10 to 15 minutes - addtimer(CALLBACK(src, nameof(.proc/dry)), drytime) + set_next_think(world.time + drytime) if(prob(75)) SetTransform(rotation = pick(90, 180, 270)) -/obj/effect/decal/cleanable/vomit/proc/dry() +/obj/effect/decal/cleanable/vomit/think() viruses.Cut() name = "dried vomit" color = "#cccc00" diff --git a/code/game/objects/effects/decals/Cleanable/robots.dm b/code/game/objects/effects/decals/Cleanable/robots.dm index 6b1d5c6f8aa..bcb403b0a3c 100644 --- a/code/game/objects/effects/decals/Cleanable/robots.dm +++ b/code/game/objects/effects/decals/Cleanable/robots.dm @@ -9,7 +9,7 @@ /obj/effect/decal/cleanable/blood/gibs/robot/on_update_icon() color = "#ffffff" -/obj/effect/decal/cleanable/blood/gibs/robot/dry() //pieces of robots do not dry up like +/obj/effect/decal/cleanable/blood/gibs/robot/think() //pieces of robots do not dry up like blood return /obj/effect/decal/cleanable/blood/gibs/robot/streak(list/directions) @@ -40,7 +40,7 @@ /obj/effect/decal/cleanable/blood/oil basecolor = SYNTH_BLOOD_COLOUR -/obj/effect/decal/cleanable/blood/oil/dry() +/obj/effect/decal/cleanable/blood/oil/think() return /obj/effect/decal/cleanable/blood/oil/streak diff --git a/code/game/objects/effects/decals/Cleanable/tracks.dm b/code/game/objects/effects/decals/Cleanable/tracks.dm index 7959cb7e9f6..cc92d24ab83 100644 --- a/code/game/objects/effects/decals/Cleanable/tracks.dm +++ b/code/game/objects/effects/decals/Cleanable/tracks.dm @@ -127,7 +127,7 @@ var/global/list/image/fluidtrack_cache = list() if(updated) update_icon() -/obj/effect/decal/cleanable/blood/tracks/dry() +/obj/effect/decal/cleanable/blood/tracks/think() ..() dried = TRUE update_icon() diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 4c224552710..8791a007ac5 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -9,6 +9,6 @@ . = ..() /obj/effect/decal/cleanable/Initialize() - if (random_icon_states && length(src.random_icon_states) > 0) - src.icon_state = pick(src.random_icon_states) . = ..() + if(random_icon_states && length(src.random_icon_states) > 0) + src.icon_state = pick(src.random_icon_states) diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index 2b5b2507957..2b5b654e57c 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -81,7 +81,7 @@ steam.start() -- spawns the effect /datum/effect/effect/system/steam_spread/start() for(var/i = 0, i < src.number, i++) - addtimer(CALLBACK(src, nameof(.proc/spread), i), 0) + INVOKE_ASYNC(src, nameof(.proc/spread), i) /datum/effect/effect/system/steam_spread/spread(i) set waitfor = 0 @@ -113,9 +113,9 @@ steam.start() -- spawns the effect anchored = 1.0 mouse_opacity = 0 -/obj/effect/sparks/Initialize() +/obj/effect/sparks/Initialize(mapload, volume) . = ..() - playsound(src.loc, SFX_SPARK, 100, 1) + playsound(src.loc, SFX_SPARK, volume, 1) var/turf/T = loc if(istype(T, /turf)) T.hotspot_expose(1000, 100) @@ -127,13 +127,23 @@ steam.start() -- spawns the effect T.hotspot_expose(1000, 100) return ..() -/obj/effect/sparks/Move() +/obj/effect/sparks/Move(newloc, direct) . = ..() + if(!.) + return + var/turf/T = loc - if (istype(T, /turf)) + if(isturf(T)) T.hotspot_expose(1000, 100) /datum/effect/effect/system/spark_spread + var/sparks_volume = 100 + +/datum/effect/effect/system/spark_spread/New(volume = null) + if(!isnull(volume)) + sparks_volume = volume + + return ..() /datum/effect/effect/system/spark_spread/set_up(n = 3, c = 0, loca) if(n > 10) @@ -147,13 +157,13 @@ steam.start() -- spawns the effect /datum/effect/effect/system/spark_spread/start() for(var/i = 0, i < src.number, i++) - addtimer(CALLBACK(src, nameof(.proc/spread), i), 0) + INVOKE_ASYNC(src, nameof(.proc/spread), i) /datum/effect/effect/system/spark_spread/spread(i) set waitfor = 0 if(holder) src.location = get_turf(holder) - var/obj/effect/sparks/sparks = new /obj/effect/sparks(location) + var/obj/effect/sparks/sparks = new /obj/effect/sparks(location, sparks_volume) var/direction if(src.cardinals) direction = pick(GLOB.cardinal) @@ -186,7 +196,10 @@ steam.start() -- spawns the effect /obj/effect/effect/smoke/Initialize() . = ..() - addtimer(CALLBACK(src, nameof(.proc/fade_out)), time_to_live) + set_next_think(world.time + time_to_live) + +/obj/effect/effect/smoke/think() + fade_out() /obj/effect/effect/smoke/Crossed(mob/living/carbon/M as mob) ..() @@ -204,16 +217,17 @@ steam.start() -- spawns the effect /obj/effect/effect/smoke/proc/affect(mob/living/carbon/M) if (!istype(M)) - return 0 + return FALSE + if (M.internal != null) if(M.wear_mask && (M.wear_mask.item_flags & ITEM_FLAG_AIRTIGHT)) - return 0 + return FALSE if(istype(M,/mob/living/carbon/human)) var/mob/living/carbon/human/H = M if(H.head && (H.head.item_flags & ITEM_FLAG_AIRTIGHT)) - return 0 - return 0 - return 1 + return FALSE + return FALSE + return TRUE ///////////////////////////////////////////// // Illumination @@ -236,14 +250,21 @@ steam.start() -- spawns the effect /obj/effect/effect/smoke/bad time_to_live = 200 -/obj/effect/effect/smoke/bad/Move() +/obj/effect/effect/smoke/bad/Move(newloc, direct) . = ..() + if(!.) + return + for(var/mob/living/carbon/M in get_turf(src)) affect(M) /obj/effect/effect/smoke/bad/affect(mob/living/carbon/M) - if (!..()) - return 0 + if(!..()) + return FALSE + + if(M.isSynthetic()) + return FALSE + if(prob(50)) M.drop_active_hand() else @@ -260,21 +281,24 @@ steam.start() -- spawns the effect if(istype(mover, /obj/item/projectile/beam)) var/obj/item/projectile/beam/B = mover B.damage = (B.damage/2) - return 1 + return TRUE ///////////////////////////////////////////// // Sleep smoke ///////////////////////////////////////////// /obj/effect/effect/smoke/sleepy -/obj/effect/effect/smoke/sleepy/Move() +/obj/effect/effect/smoke/sleepy/Move(newloc, direct) . = ..() + if(!.) + return + for(var/mob/living/carbon/M in get_turf(src)) affect(M) /obj/effect/effect/smoke/sleepy/affect(mob/living/carbon/M as mob ) if (!..()) - return 0 + return FALSE if(prob(50)) M.drop_active_hand() @@ -295,16 +319,19 @@ steam.start() -- spawns the effect name = "mustard gas" icon_state = "mustard" -/obj/effect/effect/smoke/mustard/Move() +/obj/effect/effect/smoke/mustard/Move(newloc, direct) . = ..() + if(!.) + return + for(var/mob/living/carbon/human/R in get_turf(src)) affect(R) /obj/effect/effect/smoke/mustard/affect(mob/living/carbon/human/R) if (!..()) - return 0 + return FALSE if (R.wear_suit != null) - return 0 + return FALSE R.burn_skin(0.75) if (R.coughedtime != 1) @@ -340,7 +367,8 @@ steam.start() -- spawns the effect for(var/i in 0 to src.number - 1) if(src.total_smoke > 20) return - addtimer(CALLBACK(src, nameof(.proc/spread), i), 0) + + INVOKE_ASYNC(src, nameof(.proc/spread), i) /datum/effect/effect/system/smoke_spread/spread(i) if(holder) diff --git a/code/game/objects/effects/explosion_particles.dm b/code/game/objects/effects/explosion_particles.dm index 19735b9b864..45a0c130bdc 100644 --- a/code/game/objects/effects/explosion_particles.dm +++ b/code/game/objects/effects/explosion_particles.dm @@ -56,9 +56,9 @@ var/datum/effect/system/expl_particles/P = new /datum/effect/system/expl_particles() P.set_up(10,location) P.start() - addtimer(CALLBACK(src, nameof(.proc/make_smoke)), 5) + set_next_think(world.time + 0.5 SECONDS) -/datum/effect/system/explosion/proc/make_smoke() +/datum/effect/system/explosion/think() var/datum/effect/effect/system/smoke_spread/S = new /datum/effect/effect/system/smoke_spread() S.set_up(5,0,location,null) S.start() diff --git a/code/game/objects/effects/landmarks/clothing.dm b/code/game/objects/effects/landmarks/clothing.dm index 5c11b7a67da..a1c44895873 100644 --- a/code/game/objects/effects/landmarks/clothing.dm +++ b/code/game/objects/effects/landmarks/clothing.dm @@ -3,129 +3,180 @@ icon_state = "landmark_outfit" delete_after = TRUE -// Costume spawner, selects a random subclass and disappears -/obj/effect/landmark/costume/New() - var/list/options = typesof(/obj/effect/landmark/costume) - var/PICK = options[rand(1, length(options))] - new PICK(loc) - -// SUBCLASSES. Spawn a bunch of items and disappear likewise. -/obj/effect/landmark/costume/chameleon/New() - new /obj/item/clothing/mask/chameleon(loc) - new /obj/item/clothing/under/chameleon(loc) - new /obj/item/clothing/glasses/chameleon(loc) - new /obj/item/clothing/shoes/chameleon(loc) - new /obj/item/clothing/gloves/chameleon(loc) - new /obj/item/clothing/suit/chameleon(loc) - new /obj/item/clothing/head/chameleon(loc) - new /obj/item/storage/backpack/chameleon(loc) - -/obj/effect/landmark/costume/gladiator/New() - new /obj/item/clothing/under/gladiator(loc) - new /obj/item/clothing/head/helmet/gladiator(loc) - -/obj/effect/landmark/costume/madscientist/New() - new /obj/item/clothing/under/gimmick/rank/captain/suit(loc) - new /obj/item/clothing/head/flatcap(loc) - new /obj/item/clothing/suit/storage/toggle/labcoat/mad(loc) - new /obj/item/clothing/glasses/gglasses(loc) - -/obj/effect/landmark/costume/elpresidente/New() - new /obj/item/clothing/under/gimmick/rank/captain/suit(loc) - new /obj/item/clothing/head/flatcap(loc) - new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(loc) - new /obj/item/clothing/shoes/jackboots(loc) - -/obj/effect/landmark/costume/nyangirl/New() - new /obj/item/clothing/under/schoolgirl(loc) - new /obj/item/clothing/head/kitty(loc) - -/obj/effect/landmark/costume/maid/New() - new /obj/item/clothing/under/blackskirt(loc) - new /obj/item/clothing/glasses/sunglasses/blindfold(loc) - - var/CHOICE = pick(/obj/item/clothing/head/beret, /obj/item/clothing/head/rabbitears) - new CHOICE(loc) - -/obj/effect/landmark/costume/butler/New() - new /obj/item/clothing/accessory/wcoat(loc) - new /obj/item/clothing/under/suit_jacket(loc) - new /obj/item/clothing/head/that(loc) - -/obj/effect/landmark/costume/scratch/New() - new /obj/item/clothing/gloves/white(loc) - new /obj/item/clothing/shoes/white(loc) - new /obj/item/clothing/under/scratch(loc) - - if(prob(30)) - new /obj/item/clothing/head/cueball(loc) - -/obj/effect/landmark/costume/prig/New() - new /obj/item/clothing/accessory/wcoat(loc) - new /obj/item/clothing/glasses/monocle(loc) - new /obj/item/clothing/shoes/black(loc) - new /obj/item/cane(loc) - new /obj/item/clothing/under/sl_suit(loc) - new /obj/item/clothing/mask/fakemoustache(loc) - - var/CHOICE = pick(/obj/item/clothing/head/bowler, /obj/item/clothing/head/that) - new CHOICE(loc) - -/obj/effect/landmark/costume/plaguedoctor/New() - new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(loc) - new /obj/item/clothing/head/plaguedoctorhat(loc) - -/obj/effect/landmark/costume/nightowl/New() - new /obj/item/clothing/under/owl(loc) - new /obj/item/clothing/mask/gas/owl_mask(loc) - -/obj/effect/landmark/costume/waiter/New() - new /obj/item/clothing/under/waiter(loc) - new /obj/item/clothing/suit/apron(loc) - - var/CHOICE = pick(/obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears) - new CHOICE(loc) - -/obj/effect/landmark/costume/pirate/New() - new /obj/item/clothing/under/pirate(loc) - new /obj/item/clothing/suit/pirate(loc) - new /obj/item/clothing/glasses/eyepatch(loc) - - var/CHOICE = pick(/obj/item/clothing/head/pirate , /obj/item/clothing/mask/bandana/red) - new CHOICE(loc) - -/obj/effect/landmark/costume/commie/New() - new /obj/item/clothing/under/soviet(loc) - new /obj/item/clothing/head/ushanka(loc) - -/obj/effect/landmark/costume/imperium_monk/New() - new /obj/item/clothing/suit/imperium_monk(loc) - - if(prob(25)) - new /obj/item/clothing/mask/gas/cyborg(loc) - -/obj/effect/landmark/costume/holiday_priest/New() - new /obj/item/clothing/suit/holidaypriest(loc) - -/obj/effect/landmark/costume/marisawizard/fake/New() - new /obj/item/clothing/head/wizard/marisa/fake(loc) - new /obj/item/clothing/suit/wizrobe/marisa/fake(loc) - -/obj/effect/landmark/costume/cutewitch/New() - new /obj/item/clothing/under/sundress(loc) - new /obj/item/clothing/head/witchwig(loc) - new /obj/item/staff/broom(loc) - -/obj/effect/landmark/costume/fakewizard/New() - new /obj/item/clothing/suit/wizrobe/fake(loc) - new /obj/item/clothing/head/wizard/fake(loc) - new /obj/item/staff/(loc) - -/obj/effect/landmark/costume/sexyclown/New() - new /obj/item/clothing/mask/gas/sexyclown(loc) - new /obj/item/clothing/under/sexyclown(loc) - -/obj/effect/landmark/costume/sexymime/New() - new /obj/item/clothing/mask/gas/sexymime(loc) - new /obj/item/clothing/under/sexymime(loc) - + /// Associative list of typepath | list(typepath) -> value. If value is `null` or `100` atom has 100% chance of spawn. + var/list/spawn_paths + +/obj/effect/landmark/costume/Initialize() + . = ..() + + for(var/typepath as anything in spawn_paths) + var/chance = LAZYACCESS(spawn_paths, typepath) + + if(!isnull(chance) && !prob(chance)) + continue + + if(islist(typepath)) + typepath = pick(typepath) + + new typepath(loc) + +/obj/effect/landmark/costume/chameleon + spawn_paths = list( + /obj/item/clothing/mask/chameleon, + /obj/item/clothing/under/chameleon, + /obj/item/clothing/glasses/chameleon, + /obj/item/clothing/shoes/chameleon, + /obj/item/clothing/gloves/chameleon, + /obj/item/clothing/suit/chameleon, + /obj/item/clothing/head/chameleon, + /obj/item/storage/backpack/chameleon, + ) + +/obj/effect/landmark/costume/gladiator + spawn_paths = list( + /obj/item/clothing/under/gladiator, + /obj/item/clothing/head/helmet/gladiator, + ) + +/obj/effect/landmark/costume/madscientist + spawn_paths = list( + /obj/item/clothing/under/gimmick/rank/captain/suit, + /obj/item/clothing/head/flatcap, + /obj/item/clothing/suit/storage/toggle/labcoat/mad, + /obj/item/clothing/glasses/gglasses, + ) + +/obj/effect/landmark/costume/elpresidente + spawn_paths = list( + /obj/item/clothing/under/gimmick/rank/captain/suit, + /obj/item/clothing/head/flatcap, + /obj/item/clothing/mask/smokable/cigarette/cigar/havana, + /obj/item/clothing/shoes/jackboots, + ) + +/obj/effect/landmark/costume/nyangirl + spawn_paths = list( + /obj/item/clothing/under/schoolgirl, + /obj/item/clothing/head/kitty, + ) + +/obj/effect/landmark/costume/maid + spawn_paths = list( + /obj/item/clothing/under/blackskirt, + /obj/item/clothing/glasses/sunglasses/blindfold, + list(/obj/item/clothing/head/beret, /obj/item/clothing/head/rabbitears), + ) + +/obj/effect/landmark/costume/butler + spawn_paths = list( + /obj/item/clothing/accessory/wcoat, + /obj/item/clothing/under/suit_jacket, + /obj/item/clothing/head/that, + ) + +/obj/effect/landmark/costume/scratch + spawn_paths = list( + /obj/item/clothing/gloves/white, + /obj/item/clothing/shoes/white, + /obj/item/clothing/under/scratch, + /obj/item/clothing/head/cueball = 30, + ) + +/obj/effect/landmark/costume/prig + spawn_paths = list( + /obj/item/clothing/accessory/wcoat, + /obj/item/clothing/glasses/monocle, + /obj/item/clothing/shoes/black, + /obj/item/cane, + /obj/item/clothing/under/sl_suit, + /obj/item/clothing/mask/fakemoustache, + list(/obj/item/clothing/head/bowler, /obj/item/clothing/head/that), + ) + +/obj/effect/landmark/costume/plaguedoctor + spawn_paths = list( + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, + /obj/item/clothing/head/plaguedoctorhat, + ) + +/obj/effect/landmark/costume/nightowl + spawn_paths = list( + /obj/item/clothing/under/owl, + /obj/item/clothing/mask/gas/owl_mask, + ) + +/obj/effect/landmark/costume/waiter + spawn_paths = list( + /obj/item/clothing/under/waiter, + /obj/item/clothing/suit/apron, + list(/obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears), + ) + + +/obj/effect/landmark/costume/pirate + spawn_paths = list( + /obj/item/clothing/under/pirate, + /obj/item/clothing/suit/pirate, + /obj/item/clothing/glasses/eyepatch, + list(/obj/item/clothing/head/pirate , /obj/item/clothing/mask/bandana/red), + ) + + +/obj/effect/landmark/costume/commie + spawn_paths = list( + /obj/item/clothing/under/soviet, + /obj/item/clothing/head/ushanka, + ) + +/obj/effect/landmark/costume/imperium_monk + spawn_paths = list( + /obj/item/clothing/suit/imperium_monk, + /obj/item/clothing/mask/gas/cyborg = 25, + ) + +/obj/effect/landmark/costume/holiday_priest + spawn_paths = list( + /obj/item/clothing/suit/holidaypriest, + ) + +/obj/effect/landmark/costume/marisawizard/fake + spawn_paths = list( + /obj/item/clothing/head/wizard/marisa/fake, + /obj/item/clothing/suit/wizrobe/marisa/fake, + ) + +/obj/effect/landmark/costume/cutewitch + spawn_paths = list( + /obj/item/clothing/under/sundress, + /obj/item/clothing/head/witchwig, + /obj/item/staff/broom, + ) + +/obj/effect/landmark/costume/fakewizard + spawn_paths = list( + /obj/item/clothing/suit/wizrobe/fake, + /obj/item/clothing/head/wizard/fake, + /obj/item/staff, + ) + +/obj/effect/landmark/costume/sexyclown + spawn_paths = list( + /obj/item/clothing/mask/gas/sexyclown, + /obj/item/clothing/under/sexyclown, + ) + +/obj/effect/landmark/costume/sexymime + spawn_paths = list( + /obj/item/clothing/mask/gas/sexymime, + /obj/item/clothing/under/sexymime, + ) + +/obj/effect/landmark/costume/random + icon_state = "landmark_outfitrand" + +/obj/effect/landmark/costume/random/Initialize() + . = ..() + + var/list/paths = subtypesof(/obj/effect/landmark/costume) - /obj/effect/landmark/costume/random + var/chosen_path = pick(paths) + new chosen_path(loc) diff --git a/code/game/objects/effects/landmarks/events.dm b/code/game/objects/effects/landmarks/events.dm index 28ebf284a4b..7724e8f1565 100644 --- a/code/game/objects/effects/landmarks/events.dm +++ b/code/game/objects/effects/landmarks/events.dm @@ -20,15 +20,6 @@ name = "Carp Pack" icon_state = "landmark_carp" -/obj/effect/landmark/event/other/holodeck/atmos - name = "Atmospheric Test Start" - -/obj/effect/landmark/event/other/holodeck/carps - name = "Holocarp Spawn" - -/obj/effect/landmark/event/other/holodeck/randcarps - name ="Holocarp Spawn Random" - // Centcom teleports /obj/effect/landmark/event/centcom/enter name = "Marauder Entry" diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index c6bab7b61f6..1ebf17a0f9e 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -3,7 +3,7 @@ desc = "Looks unstable. Best to test it with the clown." icon = 'icons/obj/portals.dmi' icon_state = "portal" - density = FALSE + density = TRUE unacidable = TRUE // Can't destroy energy portals. var/atom/target = null var/creator = null @@ -12,7 +12,8 @@ var/failchance = 0 var/teleport_type = /decl/teleport/sparks -/obj/effect/portal/Crossed(AM) +/obj/effect/portal/Bumped(AM) + . = ..() teleport(AM) /obj/effect/portal/attack_hand(mob/user) @@ -21,7 +22,10 @@ /obj/effect/portal/Initialize(mapload, end, delete_after = 300, failure_rate) . = ..() setup_portal(end, delete_after, failure_rate) - addtimer(CALLBACK(src, nameof(.proc/move_all_objects)), 1.5 SECONDS) + set_next_think(world.time + 1.5 SECONDS) + +/obj/effect/portal/think() + move_all_objects() /obj/effect/portal/Destroy() target = null diff --git a/code/game/objects/effects/proximity.dm b/code/game/objects/effects/proximity.dm index 0a4eb2ca15d..40ec206ba42 100644 --- a/code/game/objects/effects/proximity.dm +++ b/code/game/objects/effects/proximity.dm @@ -29,6 +29,8 @@ SetRange(current_range,TRUE) /datum/proximity_monitor/Destroy() + if(!isnull(host)) + unregister_signal(host, SIGNAL_MOVED) host = null last_host_loc = null hasprox_receiver = null diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 7fcdc24fcbe..17b6e1c313e 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -33,9 +33,8 @@ if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(WT.remove_fuel(0, user)) + if(WT.use_tool(src, user, amount = 1)) damage = 15 - playsound(loc, 'sound/items/Welder.ogg', 100, 1) health -= damage healthcheck() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 6c586e27b71..4880d4fc2fe 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -52,6 +52,8 @@ //It should be used purely for appearance. For gameplay effects caused by items covering body parts, use body_parts_covered. var/flags_inv = 0 var/body_parts_covered = NO_BODYPARTS //see code/__defines/items_clothing.dm for appropriate bit flags + /// If TRUE, the held icon will appear in front of the wielder regardless of their dir. + var/improper_held_icon = FALSE var/item_flags = 0 //Miscellaneous flags pertaining to equippable objects. @@ -100,6 +102,18 @@ var/tool_behaviour = 0 + /// Multipler of this tool's speed + var/toolspeed = 1 + + /// Sound played when this tool is used. Can be a list too. + var/tool_sound + +/obj/item/Topic(href, href_list, datum/topic_state/state) + . = ..() + + if(href_list["examine_combat"]) + to_chat(usr, EXAMINE_BLOCK(SPAN_NOTICE(get_combat_stats().Join("\n")))) + /obj/item/New() ..() if(randpixel && (!pixel_x && !pixel_y) && isturf(loc)) //hopefully this will prevent us from messing with mapper-set pixel_x/y @@ -186,7 +200,9 @@ src.loc = T -/obj/item/_examine_text(mob/user) +/obj/item/examine(mob/user, infix) + . = ..() + var/size switch(src.w_class) if(ITEM_SIZE_TINY) @@ -201,8 +217,8 @@ size = "bulky" if(ITEM_SIZE_HUGE + 1 to INFINITY) size = "huge" - var/desc_comp = "" //For "description composite" - desc_comp += "It is a [size] item." + + . += "It is a [size] item." if(force) var/desc_weight @@ -226,31 +242,97 @@ else if(src.mod_handy < 1.25) desc_handy = "handy" else if(src.mod_handy < 1.65) desc_handy = "really handy" else desc_handy = "outstandingly handy" - desc_comp += "
It makes [desc_weight], [desc_reach], and [desc_handy] weapon." + + . += "
It makes [desc_weight], [desc_reach], and [desc_handy] weapon." if(hasHUD(user, HUD_SCIENCE)) //Mob has a research scanner active. - desc_comp += "
*--------*
" + . += "
*--------*
" if(origin_tech) - desc_comp += SPAN("notice", "Testing potentials:
") + . += SPAN("notice", "Testing potentials:
") //var/list/techlvls = params2list(origin_tech) for(var/T in origin_tech) - desc_comp += "Tech: Level [origin_tech[T]] [CallTechName(T)]
" + . += "Tech: Level [origin_tech[T]] [CallTechName(T)]
" else - desc_comp += "No tech origins detected.
" + . += "No tech origins detected.
" if(LAZYLEN(matter)) - desc_comp += SPAN("notice", "Extractable materials:
") + . += SPAN("notice", "Extractable materials:
") for(var/mat in matter) - desc_comp += "[get_material_by_name(mat)]
" + . += "[get_material_by_name(mat)]
" else - desc_comp += SPAN("danger", "No extractable materials detected.
") - desc_comp += "*--------*" + . += SPAN("danger", "No extractable materials detected.
") - //if(weapon_desc) - // desc_comp += handle_weapon_desc() + if(force || block_tier == BLOCK_TIER_ADVANCED || mod_shield == BLOCK_TIER_PROJECTILE) + . += "Show combat information." - return ..(user, "", desc_comp) +/// Generates and returns a list of combat-related stats. +/obj/item/proc/get_combat_stats() + RETURN_TYPE(/list) + + . = list() + + if(force) + switch(mod_weight) + if(0 to 0.4) + . += "It's very light." + if(0.4 to 0.8) + . += "It's light." + if(0.8 to 1.25) + . += "It has moderate weight." + if(1.25 to 1.65) + . += "It's heavy." + else + . += "It's very heavy" + + switch(mod_reach) + if(0 to 0.4) + . += "It's reach is very short." + if(0.4 to 0.8) + . += "It's reach is short." + if(0.8 to 1.25) + . += "It's reach is average." + if(1.25 to 1.65) + . += "It's reach is long." + else + . += "It's reach is very long." + + switch(mod_handy) + if(0 to 0.4) + . += "It's unhandy." + if(0.4 to 0.8) + . += "It's not that handy." + if(0.8 to 1.25) + . += "It's handy." + if(1.25 to 1.65) + . += "It's really handy." + else + . += "It's outstandingly handy." + + if(armor_penetration) + switch(armor_penetration) + if(1 to 19) + . += "It's good for penetrating light armor." + if(20 to 39) + . += "It's good for penetrating medium armor." + if(40 to 59) + . += "It's good for penetrating above-average armor." + if(60 to 79) + . += "It's good for penetrating heavy armor." + if(80 to 99) + . += "It's exceptionally good for penetrating most armor." + if(100 to INFINITY) + . += "It goes through most armor as a hot knife through butter." + else + . += "It's not that good at penetrating armor." + + . += "It's attack cooldown is about [round((attack_cooldown + DEFAULT_WEAPON_COOLDOWN * (mod_weight / mod_handy)) * mod_speed * 0.1, 0.1)] seconds." + . += "It has parry window of [round(mod_handy * 12 * 0.1, 0.1)] seconds." + + if(block_tier == BLOCK_TIER_ADVANCED) + . += "It may block or reflect projectiles really well." + else if(mod_shield == BLOCK_TIER_PROJECTILE) + . += "It may block projectiles." /obj/item/attack_hand(mob/user) if(!user) @@ -351,6 +433,9 @@ if(!changing_slots && !istype(loc, /obj/item/clothing/accessory)) play_drop_sound() + if(!changing_slots) + _remove_verb_from_stat(user, verbs) + SEND_SIGNAL(src, SIGNAL_ITEM_UNEQUIPPED, src, user) // called just as an item is picked up (loc is not yet changed) @@ -389,6 +474,7 @@ M.r_hand.update_twohanding() play_handling_sound(slot) + _add_verb_to_stat(user, verbs) SEND_SIGNAL(src, SIGNAL_ITEM_EQUIPPED, src, user, slot) @@ -908,43 +994,111 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. user_human = user_mob var/mob_state = get_icon_state(slot) + if(isnull(mob_state)) + // No way to get a mob_state whatsoever, most likely the item has no base icon and is entirely made of overlays (i.e. bodyparts). + return var/mob_icon if(icon_override) mob_icon = icon_override - if(slot == slot_l_hand_str || slot == slot_l_ear_str) + + if(slot == slot_l_hand_str || slot == slot_l_ear_str) mob_state = "[mob_state]_l" - if(slot == slot_r_hand_str || slot == slot_r_ear_str) + + if(slot == slot_r_hand_str || slot == slot_r_ear_str) mob_state = "[mob_state]_r" + else if(item_icons && item_icons[slot]) mob_icon = item_icons[slot] + else if(user_human?.body_build) mob_icon = user_human.body_build.get_mob_icon(slot, mob_state) + else + // Couldn't find no icon to use, aborting. return - var/image/ret_overlay = overlay_image(mob_icon, mob_state, color, RESET_COLOR) + var/image/ret_overlay + + var/list/ret_list + var/icon/main_icon + var/icon/back_icon + var/use_list = FALSE + + if(!improper_held_icon && (slot == slot_l_hand_str || slot == slot_r_hand_str)) + ret_list = list() + use_list = TRUE + + main_icon = new(mob_icon, mob_state) + back_icon = new('icons/effects/blank.dmi') + + if(slot == slot_l_hand_str) + main_icon.Insert('icons/effects/blank.dmi', dir = EAST) + back_icon.Insert(icon(mob_icon, mob_state, EAST), dir = EAST) + if(slot == slot_r_hand_str) + main_icon.Insert('icons/effects/blank.dmi', dir = WEST) + back_icon.Insert(icon(mob_icon, mob_state, WEST), dir = WEST) - if(length(user_human?.species?.equip_adjust)) - var/list/equip_adjusts = user_human.species.equip_adjust + else + ret_overlay = overlay_image(mob_icon, mob_state, color, RESET_COLOR) + + if(!improper_held_icon && length(user_human?.body_build?.equip_adjust)) + var/list/equip_adjusts = user_human.body_build.equip_adjust if(equip_adjusts[slot]) - var/image_key = "[user_human.species] [user_human.body_build.name] [mob_icon] [mob_state] [color]" - ret_overlay = user_human.species.equip_overlays[image_key] - if(!ret_overlay) - var/icon/final_I = new(mob_icon, icon_state = mob_state) - var/list/shifts = equip_adjusts[slot] - if(length(shifts)) - var/shift_facing - for(shift_facing in shifts) - var/list/facing_list = shifts[shift_facing] - final_I = dir_shift(final_I, text2dir(shift_facing), facing_list["x"], facing_list["y"]) - ret_overlay = overlay_image(final_I, color, flags = RESET_COLOR) - - user_human.species.equip_overlays[image_key] = ret_overlay - - return ret_overlay + if(!use_list) + var/image_key = "[user_human.body_build.name]-[mob_icon]-[mob_state]-[color]" + ret_overlay = user_human.body_build.equip_overlays[image_key] + + if(!ret_overlay) + var/icon/final_I = new(mob_icon, icon_state = mob_state) + var/list/shifts = equip_adjusts[slot] + if(length(shifts)) + for(var/shift_facing in shifts) + var/list/facing_list = shifts[shift_facing] + final_I = dir_shift(final_I, text2dir(shift_facing), facing_list["x"], facing_list["y"]) + + ret_overlay = overlay_image(final_I, null, color, flags = RESET_COLOR) + user_human.body_build.equip_overlays[image_key] = ret_overlay + + else + var/image_key + + image_key = "[user_human.body_build.name]-[mob_icon]-[mob_state]-[color]-main" + ret_overlay = user_human.body_build.equip_overlays[image_key] + + if(!ret_overlay) + var/list/shifts = equip_adjusts[slot] + if(length(shifts)) + for(var/shift_facing in shifts) + var/list/facing_list = shifts[shift_facing] + main_icon = dir_shift(main_icon, text2dir(shift_facing), facing_list["x"], facing_list["y"]) + + ret_overlay = overlay_image(main_icon, null, color, flags = RESET_COLOR) + user_human.body_build.equip_overlays[image_key] = ret_overlay + + ret_list += ret_overlay + + image_key = "[user_human.body_build.name]-[mob_icon]-[mob_state]-[color]-back" + ret_overlay = user_human.body_build.equip_overlays[image_key] + + if(!ret_overlay) + var/list/shifts = equip_adjusts[slot] + if(length(shifts)) + for(var/shift_facing in shifts) + var/list/facing_list = shifts[shift_facing] + back_icon = dir_shift(back_icon, text2dir(shift_facing), facing_list["x"], facing_list["y"]) + + ret_overlay = overlay_image(back_icon, null, color, flags = RESET_COLOR) + user_human.body_build.equip_overlays[image_key] = ret_overlay + + ret_list += ret_overlay + + if(use_list && !length(ret_list)) + ret_list = list(overlay_image(main_icon, null, color, flags = RESET_COLOR), overlay_image(back_icon, null, color, flags = RESET_COLOR)) + + return use_list ? ret_list : ret_overlay /obj/item/proc/get_examine_line() if(is_bloodied) diff --git a/code/game/objects/items/backwear/backwear.dm b/code/game/objects/items/backwear/backwear.dm index f4fe2152a6e..24b22062bdd 100644 --- a/code/game/objects/items/backwear/backwear.dm +++ b/code/game/objects/items/backwear/backwear.dm @@ -147,13 +147,13 @@ . = ..() QDEL_NULL(bcell) -/obj/item/backwear/powered/_examine_text(mob/user) +/obj/item/backwear/powered/examine(mob/user, infix) . = ..() if(bcell) - . += "\nIt has \the [bcell] installed." - . += "\nThe charge meter reads [round(CELL_PERCENT(bcell), 0.1)]%" + . += "It has \the [bcell] installed." + . += "The charge meter reads [round(CELL_PERCENT(bcell), 0.1)]%" else - . += "\nIt has no power cell installed!" + . += "It has no power cell installed!" /obj/item/backwear/powered/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/cell)) @@ -196,16 +196,16 @@ if(!possible_transfer_amounts) src.verbs -= /obj/item/backwear/reagent/verb/set_APTFT -/obj/item/backwear/reagent/_examine_text(mob/user) +/obj/item/backwear/reagent/examine(mob/user, infix) . = ..() if(get_dist(src, user) > 2) return - . += "\nIt contains:" + . += "It contains:" if(reagents.reagent_list.len) // OOP be cool for(var/datum/reagent/R in reagents.reagent_list) - . += "\n[R.volume] units of [R.name]" + . += "[R.volume] units of [R.name]" else - . += "\nNothing." + . += "Nothing." /obj/item/backwear/reagent/verb/set_APTFT() //set amount_per_transfer_from_this set name = "Set transfer amount" diff --git a/code/game/objects/items/backwear/rpd.dm b/code/game/objects/items/backwear/rpd.dm index bc8193af172..a8602076c4a 100644 --- a/code/game/objects/items/backwear/rpd.dm +++ b/code/game/objects/items/backwear/rpd.dm @@ -49,9 +49,9 @@ var/activate_sound = 'sound/items/polaroid3.ogg' var/recycling_time = 30 -/obj/item/rpd/_examine_text(mob/user) +/obj/item/rpd/examine(mob/user, infix) . = ..() - . += "\n[selected.name] is chosen to be produced." + . += "[selected.name] is chosen to be produced." /obj/item/rpd/New(newloc, obj/item/backwear/base) selected = item_types[1] diff --git a/code/game/objects/items/balloons.dm b/code/game/objects/items/balloons.dm index 76ca036c270..d0ca26a0051 100644 --- a/code/game/objects/items/balloons.dm +++ b/code/game/objects/items/balloons.dm @@ -155,8 +155,10 @@ var/mob/living/M = loc if(istype(M) && M.can_wield_item(src) && is_held_twohanded(M)) wielded = TRUE + improper_held_icon = TRUE else wielded = FALSE + improper_held_icon = FALSE update_icon() ..() @@ -201,7 +203,7 @@ if(isobserver(usr) || usr.restrained() || !usr.Adjacent(src) || !isturf(loc)) return FALSE - verbs -= /obj/item/balloon/verb/deflate + remove_verb(loc, /obj/item/balloon/verb/deflate) playsound(loc, 'sound/machines/hiss.ogg', 50, 1) var/obj/item/balloon_flat/BF = new /obj/item/balloon_flat(loc) BF.color = color diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index 017f1f89023..3f29db0032d 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -138,7 +138,10 @@ move an amendment to the drawing, or 0) + radial_options["Take Sugar"] = radial_take_sugar + + if(creamer_packs > 0) + radial_options["Take Creamer"] = radial_take_creamer + + if(astrotame_packs > 0) + radial_options["Take Sweetener"] = radial_take_sweetener + + if(chocolatebars > 0) + radial_options["Take Chocolate"] = radial_take_chocolate + + var/choice + + if(length(radial_options) < 1) + return + + if(length(radial_options) == 1) + choice = radial_options[1] + else + choice = show_radial_menu(user, src, radial_options, require_near = TRUE) + + switch(choice) + if("Take Sugar") + take_sugar(user) + if("Take Sweetener") + take_sweetener(user) + if("Take Creamer") + take_creamer(user) + if("Take Chocolate") + take_chocolate(user) + +/obj/structure/coffee_condi_display/proc/take_sugar(mob/user) + if(sugar_packs <= 0) + show_splash_text(user, "no creamer left!", "\The [src] has no creamer packs left!") + return + + var/obj/item/reagent_containers/vessel/condiment/pack/sugar/new_pack = new(drop_location()) + if(Adjacent(user)) + user.put_in_hands(new_pack) + else + new_pack.dropInto(get_turf(src)) + sugar_packs-- + update_icon() + +/obj/structure/coffee_condi_display/proc/take_sweetener(mob/user) + if(astrotame_packs <= 0) + show_splash_text(user, "no sweetener left!", "\The [src] has no sweetener packs left!") + return + + var/obj/item/reagent_containers/vessel/condiment/pack/astrotame/new_pack = new(get_turf(src)) + if(Adjacent(user)) + user.put_in_hands(new_pack) + else + new_pack.dropInto(get_turf(src)) + astrotame_packs-- + update_icon() + +/obj/structure/coffee_condi_display/proc/take_creamer(mob/user) + if(creamer_packs <= 0) + show_splash_text(user, "no creamer left!", "\The [src] has no creamer packs left!") + return + + var/obj/item/reagent_containers/vessel/condiment/pack/creamer/new_pack = new(drop_location()) + if(Adjacent(user)) + user.put_in_hands(new_pack) + else + new_pack.dropInto(get_turf(src)) + creamer_packs-- + update_icon() + +/obj/structure/coffee_condi_display/proc/take_chocolate(mob/user) + if(chocolatebars <= 0) + show_splash_text(user, "no chocolate left!", "\The [src] has no chocolate bars left!") + return + + var/obj/item/reagent_containers/food/chocolatebar/new_bar = new(drop_location()) + if(Adjacent(user)) + user.put_in_hands(new_bar) + else + new_bar.dropInto(get_turf(src)) + chocolatebars-- + update_icon() + +/obj/structure/coffee_condi_display/attackby(obj/item/I, mob/living/user) + if(istype(I, /obj/item/reagent_containers/vessel/condiment/pack/sugar)) + if(sugar_packs >= max_sugar_packs) + show_splash_text(user, "already full!", "\The [src] can't hold more sugar packs!") + return + + if(!user.drop(I, src)) + return + + sugar_packs++ + update_icon() + return + + else if(istype(I, /obj/item/reagent_containers/vessel/condiment/pack/astrotame)) + if(astrotame_packs >= max_astrotame_packs) + show_splash_text(user, "already full!", "\The [src] can't hold more astrotame packs!") + return + + if(!user.drop(I, src)) + return + + astrotame_packs++ + update_icon() + return + + else if(istype(I, /obj/item/reagent_containers/vessel/condiment/pack/creamer)) + if(creamer_packs >= max_creamer_packs) + show_splash_text(user, "already full!", "\The [src] can't hold more creamer packs!") + return + + if(!user.drop(I, src)) + return + + creamer_packs++ + update_icon() + return + + else if(istype(I, /obj/item/reagent_containers/food/chocolatebar)) + if(chocolatebars >= max_chocolatebars) + show_splash_text(user, "already full!", "\The [src] can't hold more chocolate bars!") + return + + if(!user.drop(I, src)) + return + + chocolatebars++ + update_icon() + return + + else + return ..() + +/obj/structure/coffee_condi_display/on_update_icon() + if(sugar_packs > 0) + AddOverlays(sugar_overlay) + else + CutOverlays(sugar_overlay) + + if(creamer_packs > 0) + AddOverlays(creamer_overlay) + else + CutOverlays(creamer_overlay) + + if(astrotame_packs > 0) + AddOverlays(astrotame_overlay) + else + CutOverlays(astrotame_overlay) + + if(chocolatebars > 0) + AddOverlays(chocolate_overlay) + else + CutOverlays(chocolate_overlay) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 02f344dd02b..62ca441356d 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -87,8 +87,8 @@ uses = 0 /obj/item/pen/crayon/rainbow/attack_self(mob/living/user as mob) - colour = input(user, "Please select the main colour.", "Crayon colour") as color - shadeColour = input(user, "Please select the shade colour.", "Crayon colour") as color + colour = tgui_color_picker(user, "Please select the main colour.", "Crayon colour") + shadeColour = tgui_color_picker(user, "Please select the shade colour.", "Crayon colour") update_popup(user) return diff --git a/code/game/objects/items/cryobag.dm b/code/game/objects/items/cryobag.dm index 753c78b7c93..812a4749180 100644 --- a/code/game/objects/items/cryobag.dm +++ b/code/game/objects/items/cryobag.dm @@ -105,13 +105,15 @@ return airtank ..() -/obj/structure/closet/body_bag/cryobag/_examine_text(mob/user) +/obj/structure/closet/body_bag/cryobag/examine(mob/user, infix) . = ..() - . += "\nThe stasis meter shows '[stasis_power]x'." + + . += "The stasis meter shows '[stasis_power]x'." + if(Adjacent(user)) //The bag's rather thick and opaque from a distance. - . += "\nYou peer into \the [src]." + . += SPAN_INFO("You peer into \the [src].") for(var/mob/living/L in contents) - L._examine_text(user) + L.run_examinate(user) /obj/item/usedcryobag name = "used stasis bag" diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 12b62394919..6da34bbc5f5 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -64,10 +64,11 @@ var/global/list/obj/item/device/pda/PDAs = list() var/obj/item/device/paicard/pai = null // A slot for a personal AI device -/obj/item/device/pda/_examine_text(mob/user) +/obj/item/device/pda/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\nThe time [stationtime2text()] is displayed in the corner of the screen." + . += "The time [stationtime2text()] is displayed in the corner of the screen." /obj/item/device/pda/medical default_cartridge = /obj/item/cartridge/medical diff --git a/code/game/objects/items/devices/bluespace_beacon.dm b/code/game/objects/items/devices/bluespace_beacon.dm index 59a6f69a863..3db8a21bd8c 100644 --- a/code/game/objects/items/devices/bluespace_beacon.dm +++ b/code/game/objects/items/devices/bluespace_beacon.dm @@ -3,7 +3,7 @@ desc = "A device that draws power from bluespace and creates a permanent bluespace anchor." icon_state = "beacon" - item_state = "signaler" + item_state = "beacon" matter = list(MATERIAL_STEEL = 20, MATERIAL_GLASS = 10) diff --git a/code/game/objects/items/devices/cable_painter.dm b/code/game/objects/items/devices/cable_painter.dm index abeb705ca58..cb11812f2dd 100644 --- a/code/game/objects/items/devices/cable_painter.dm +++ b/code/game/objects/items/devices/cable_painter.dm @@ -14,10 +14,11 @@ ..() color_selection = pick(possible_cable_coil_colours) -/obj/item/device/cable_painter/_examine_text(user) +/obj/item/device/cable_painter/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\nThe color is currently set to [lowertext(color_selection)]." + . += "The color is currently set to [lowertext(color_selection)]." /obj/item/device/cable_painter/attack_self(mob/user) var/new_color_selection = input("What color would you like to use?", "Choose a Color", color_selection) as null|anything in possible_cable_coil_colours diff --git a/code/game/objects/items/devices/chameleonholo.dm b/code/game/objects/items/devices/chameleonholo.dm index 009ae2216de..558cf1818cc 100644 --- a/code/game/objects/items/devices/chameleonholo.dm +++ b/code/game/objects/items/devices/chameleonholo.dm @@ -32,10 +32,9 @@ deactivate() return -/obj/item/device/chameleonholo/_examine_text(mob/user) - if(!active) - return ..() - return saved_examine_result +/obj/item/device/chameleonholo/examine(mob/user, infix) + . = ..() + . += saved_examine_result /obj/item/device/chameleonholo/attack_self(mob/user) if(!saved_appearance) @@ -64,7 +63,7 @@ saved_appearance = object.appearance saved_dir = object.dir saved_density = object.density - saved_examine_result = object._examine_text(user) + saved_examine_result = user.run_examinate(object) /obj/item/device/chameleonholo/proc/activate(obj/saved_item) if(active || !saved_appearance) diff --git a/code/game/objects/items/devices/dociler.dm b/code/game/objects/items/devices/dociler.dm index 79dde23aa3c..4d4520b3bef 100644 --- a/code/game/objects/items/devices/dociler.dm +++ b/code/game/objects/items/devices/dociler.dm @@ -13,9 +13,9 @@ var/loaded = 1 var/mode = "completely" -/obj/item/device/dociler/_examine_text(mob/user) +/obj/item/device/dociler/examine(mob/user, infix) . = ..() - . += "\nIt is currently set to [mode] docile mode." + . += SPAN_NOTICE("It is currently set to [mode] docile mode.") /obj/item/device/dociler/attack_self(mob/user) if(mode == "somewhat") diff --git a/code/game/objects/items/devices/emag.dm b/code/game/objects/items/devices/emag.dm index 8bbbdf48308..3cdaa0647a7 100644 --- a/code/game/objects/items/devices/emag.dm +++ b/code/game/objects/items/devices/emag.dm @@ -34,13 +34,16 @@ return TRUE -/obj/item/device/emag/_examine_text(mob/user) +/obj/item/device/emag/examine(mob/user, infix) . = ..() - if(get_dist(src, user) <= 1) - if(revealed) - . += "\nThe number [round(CELL_PERCENT(my_cell))]% is displayed in the corner of the screen." - else - . += "\nThe time [stationtime2text()] is displayed in the corner of the screen." + + if(get_dist(src, user) > 1) + return + + if(revealed) + . += "The number [round(CELL_PERCENT(my_cell))]% is displayed in the corner of the screen." + else + . += "The time [stationtime2text()] is displayed in the corner of the screen." /obj/item/device/emag/attack_self(mob/user) add_fingerprint(user) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index ef7d143d53b..c168fadf9dd 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -14,6 +14,7 @@ var/on = 0 var/activation_sound = 'sound/effects/flashlight.ogg' var/spam_flag = FALSE // spamming can possibly overload lighting SS + var/item_state_on = "flashlight-on" var/flashlight_max_bright = 0.5 // brightness of light when on, must be no greater than 1. var/flashlight_inner_range = 1 // inner range of light when on, can be negative @@ -40,6 +41,8 @@ ClearOverlays() if(on) icon_state = "[initial(icon_state)]-on" + if(item_state_on) + item_state = item_state_on if(light_overlay) var/image/I = image(icon, "[initial(icon_state)]-overlay") I.color = brightness_color @@ -48,6 +51,7 @@ em_block_state = "[initial(icon_state)]-eb" else icon_state = "[initial(icon_state)]" + item_state = initial(item_state) em_block_state = null /obj/item/device/flashlight/proc/switch_light(state = FALSE) @@ -59,7 +63,9 @@ if(activation_sound) playsound(src.loc, activation_sound, 50, 1) + update_icon() + update_held_icon() /obj/item/device/flashlight/attack_self(mob/user) if(!isturf(user.loc)) @@ -164,6 +170,7 @@ desc = "An energy efficient flashlight." icon_state = "biglight" item_state = "biglight" + item_state_on = "biglight-on" flashlight_max_bright = 0.75 flashlight_outer_range = 5 @@ -175,6 +182,7 @@ desc = "A strange device manufactured with mysterious elements that somehow emits darkness. Or maybe it just sucks in light? Nobody knows for sure." icon_state = "flashdark" item_state = "flashdark" + item_state_on = null w_class = ITEM_SIZE_NORMAL flashlight_max_bright = -3 @@ -187,7 +195,8 @@ name = "penlight" desc = "A pen-sized light, used by medical staff." icon_state = "penlight" - item_state = "" + item_state = "pen" + item_state_on = null obj_flags = OBJ_FLAG_CONDUCTIBLE slot_flags = SLOT_EARS w_class = ITEM_SIZE_TINY @@ -201,6 +210,7 @@ desc = "A very, very heavy duty flashlight." icon_state = "maglight" item_state = "maglight" + item_state_on = "maglight-on" force = 10 attack_verb = list ("smacked", "thwacked", "thunked") matter = list(MATERIAL_STEEL = 200, MATERIAL_GLASS = 50) @@ -212,7 +222,8 @@ name = "low-power flashlight" desc = "A miniature lamp, that might be used by small robots." icon_state = "penlight" - item_state = "" + item_state = "pen" + item_state_on = null obj_flags = OBJ_FLAG_CONDUCTIBLE w_class = ITEM_SIZE_TINY @@ -224,6 +235,7 @@ name = "lantern" icon_state = "lantern" item_state = "lantern" + item_state_on = "lantern-on" desc = "A mining lantern." flashlight_max_bright = 0.75 @@ -247,6 +259,7 @@ desc = "A desk lamp with an adjustable mount." icon_state = "lamp" item_state = "lamp" + item_state_on = null w_class = ITEM_SIZE_LARGE obj_flags = OBJ_FLAG_CONDUCTIBLE force = 5.0 @@ -263,7 +276,6 @@ desc = "A classic green-shaded desk lamp." icon_state = "lampgreen" item_state = "lampgreen" - flashlight_inner_range = 1.5 flashlight_outer_range = 3 brightness_color = "#efac75" @@ -271,7 +283,7 @@ /obj/item/device/flashlight/lamp/brown desc = "A classic brown-shaded desk lamp." icon_state = "lampbrown" - item_state = "lampbrown" + item_state = "lampgreen" flashlight_inner_range = 1.5 flashlight_outer_range = 3 @@ -294,6 +306,7 @@ w_class = ITEM_SIZE_TINY icon_state = "flare" item_state = "flare" + item_state_on = "flare-on" flashlight_max_bright = 0.8 flashlight_inner_range = 2 @@ -314,12 +327,15 @@ /obj/item/device/flashlight/flare/on_update_icon() ClearOverlays() if(on) + if(item_state_on) + item_state = item_state_on icon_state = "[initial(icon_state)]-on" AddOverlays(image(icon, "[initial(icon_state)]-overlay")) AddOverlays(emissive_appearance(icon, "[initial(icon_state)]-ea")) em_block_state = "[initial(icon_state)]-eb" else icon_state = "[initial(icon_state)][fuel ? "" : "-empty"]" + item_state = initial(item_state) em_block_state = null /obj/item/device/flashlight/flare/think() @@ -362,6 +378,7 @@ w_class = 2.0 icon_state = "glowstick" item_state = "glowstick" + item_state_on = null randpixel = 12 var/fuel = 0 activation_sound = null @@ -462,7 +479,8 @@ desc = "A glowing ball of what appears to be amber." icon = 'icons/obj/lighting.dmi' icon_state = "slime-on" - item_state = "slime" + item_state = "egg5" + item_state_on = null w_class = ITEM_SIZE_TINY flashlight_max_bright = 1 diff --git a/code/game/objects/items/devices/floor_painter.dm b/code/game/objects/items/devices/floor_painter.dm index 6292b511e49..ec11dbbf9fd 100644 --- a/code/game/objects/items/devices/floor_painter.dm +++ b/code/game/objects/items/devices/floor_painter.dm @@ -96,7 +96,7 @@ return /obj/item/device/floor_painter/proc/choose_color(color) - var/new_colour = input(usr, "Choose a colour.", "Floor painter", paint_colour) as color | null + var/new_colour = tgui_color_picker(usr, "Choose a colour.", "Floor painter", paint_colour) if(new_colour && new_colour != paint_colour) paint_colour = new_colour @@ -182,9 +182,9 @@ . = ..() tgui_interact(user) -/obj/item/device/floor_painter/_examine_text(mob/user) +/obj/item/device/floor_painter/examine(mob/user, infix) . = ..() - . += "\nIt is configured to produce the '[decal]' decal with a direction of '[paint_dir]' using [paint_colour] paint." + . += "It is configured to produce the '[decal]' decal with a direction of '[paint_dir]' using [paint_colour] paint." #undef GET_DECAL_DATA diff --git a/code/game/objects/items/devices/geiger.dm b/code/game/objects/items/devices/geiger.dm index a0c38cc510d..7855a0c0fd7 100644 --- a/code/game/objects/items/devices/geiger.dm +++ b/code/game/objects/items/devices/geiger.dm @@ -54,8 +54,9 @@ play_sound() set_next_think(world.time + 1 SECOND) -/obj/item/device/geiger/_examine_text(mob/user) +/obj/item/device/geiger/examine(mob/user, infix) . = ..() + var/msg = "Dose: [fmt_siunit(radiation_dose, "Gy/s", 3)].
" msg += "Average Activity: [fmt_siunit(CONV_BECQUEREL_QURIE(average_activity), "Ci", 3)].
" @@ -74,13 +75,13 @@ msg += "β-particle
" if(RADIATION_HAWKING) msg += "Hawking ray
" - + printed_rays += ray if(radiation_dose > 0) - . += "\n[msg]" + . += SPAN_WARNING(msg) else - . += "\n[msg]" + . += SPAN_NOTICE(msg) /obj/item/device/geiger/attack_self(mob/user) scanning = !scanning diff --git a/code/game/objects/items/devices/handcharger.dm b/code/game/objects/items/devices/handcharger.dm index b99bd7dd8a2..ba6f1def34a 100644 --- a/code/game/objects/items/devices/handcharger.dm +++ b/code/game/objects/items/devices/handcharger.dm @@ -46,14 +46,15 @@ return TRUE -/obj/item/device/handcharger/_examine_text(mob/user) +/obj/item/device/handcharger/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 2) return - . += "\nThere's [my_cell ? "a" : "no"] power cell in \the [src]." + . += "There's [my_cell ? "a" : "no"] power cell in \the [src]." if(my_cell) - . += "\nCurrent charge: [my_cell.charge]" + . += "Current charge: [my_cell.charge]" /obj/item/device/handcharger/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/cell)) diff --git a/code/game/objects/items/devices/holopad.dm b/code/game/objects/items/devices/holopad.dm index 730d2d7f552..cff4b5e2f8a 100644 --- a/code/game/objects/items/devices/holopad.dm +++ b/code/game/objects/items/devices/holopad.dm @@ -25,6 +25,8 @@ name = "[initial(name)] [id] #[uniq_id]" voice = "Holopad [id]" GLOB.listening_objects += src + add_think_ctx("think_ring", CALLBACK(src, nameof(.proc/think_ring)), 0) + add_think_ctx("think_holo_pos", CALLBACK(src, nameof(.proc/think_holo_pos)), 0) . = ..() /obj/item/device/holopad/Destroy() @@ -32,7 +34,6 @@ abonent = null . = ..() - /obj/item/device/holopad/verb/setID() set name="Set ID" set category = "Object" @@ -55,14 +56,19 @@ call_state = CALL_RINGING icon_state = "holopad_ringing" desc = "[initial(desc)] Incoming call from [caller.getName()]." - INVOKE_ASYNC(src, nameof(.proc/ring)) + set_next_think_ctx("think_ring", world.time + 0.1 SECONDS) return TRUE -/obj/item/device/holopad/proc/ring() +/obj/item/device/holopad/proc/think_ring() if(call_state != CALL_RINGING) + set_next_think_ctx("think_ring", 0) return + audible_message(SPAN_WARNING("Something vibrates.."), hearing_distance = 4, splash_override = "*buzz*") - addtimer(CALLBACK(src, nameof(.proc/ring)), 50) + set_next_think_ctx("think_ring", world.time + 5 SECONDS) + +/obj/item/device/holopad/think() + update_holo() /obj/item/device/holopad/proc/placeCall(mob/user) var/list/Targets = list() @@ -90,7 +96,7 @@ abonent.acceptCall() call_state = CALL_IN_CALL icon_state = "holopad_in_call" - addtimer(CALLBACK(src, nameof(.proc/update_holo)), 1) + set_next_think(world.time + 1) audible_message("[voice] transmits, \"Connection established\"", hearing_distance = 1, splash_override = "Connection established") else @@ -102,7 +108,7 @@ else if(call_state == CALL_CALLING) call_state = CALL_IN_CALL icon_state = "holopad_in_call" - addtimer(CALLBACK(src, nameof(.proc/update_holo)), 1) + set_next_think(world.time + 1) audible_message("[voice] transmits, \"Connection established\"", hearing_distance = 1, splash_override = "Connection established") @@ -137,13 +143,15 @@ else abonent.hologram.icon = icon('icons/effects/effects.dmi', "icon_state"="nothing") if(!abonent.updatingPos) - abonent.update_holo_pos() + abonent.set_next_think_ctx("think_holo_pos", world.time + 2) -/obj/item/device/holopad/proc/update_holo_pos() +/obj/item/device/holopad/proc/think_holo_pos() if(call_state != CALL_IN_CALL) - updatingPos = 0 + updatingPos = FALSE + set_next_think_ctx("think_holo_pos", 0) return - updatingPos = 1 + + updatingPos = TRUE if(isliving(loc)) var/mob/living/L = loc hologram.dir = turn(L.dir,180) @@ -157,8 +165,8 @@ hologram.pixel_y = 0 else hangUp() - addtimer(CALLBACK(src, nameof(.proc/update_holo_pos)), 2) + set_next_think_ctx("think_holo_pos", world.time + 2) /obj/item/device/holopad/attack_self(mob/user) switch(call_state) diff --git a/code/game/objects/items/devices/holowarrant.dm b/code/game/objects/items/devices/holowarrant.dm index 3380c764527..f8352bd2b71 100644 --- a/code/game/objects/items/devices/holowarrant.dm +++ b/code/game/objects/items/devices/holowarrant.dm @@ -11,14 +11,16 @@ var/datum/computer_file/data/warrant/active //look at it -/obj/item/device/holowarrant/_examine_text(mob/user) +/obj/item/device/holowarrant/examine(mob/user, infix) . = ..() + if(active) - . += "\nIt's a holographic warrant for '[active.fields["namewarrant"]]'." + . += "It's a holographic warrant for '[active.fields["namewarrant"]]'." + if(in_range(user, src) || isghost(user)) show_content(user) else - . += "\nYou have to be closer if you want to read it." + . += SPAN_NOTICE("You have to be closer if you want to read it.") //hit yourself with it /obj/item/device/holowarrant/attack_self(mob/living/user as mob) diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index c8df0f8548b..4d035a1ccf3 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -78,12 +78,16 @@ failmsg = "The [name]'s refill light blinks red." ..() -/obj/item/device/lightreplacer/_examine_text(mob/user) +/obj/item/device/lightreplacer/examine(mob/user, infix) . = ..() - if(get_dist(src, user) <= 2) - . += "\nIt has [uses] light\s remaining." - if (store_broken) - . += "\nIt is storing [stored()]/[max_stored] broken light\s." + + if(get_dist(src, user) > 2) + return + + . += "It has [uses] light\s remaining." + + if (store_broken) + . += "It is storing [stored()]/[max_stored] broken light\s." /obj/item/device/lightreplacer/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/stack/material) && W.get_material_name() == MATERIAL_GLASS) diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 85faf4d9086..07a56b96100 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -34,7 +34,7 @@ GLOBAL_LIST_INIT(megaphone_insults, world.file2list("config/translation/megaphon /obj/item/device/megaphone/attack_self(mob/living/user) - show_splash_text(user, "toggled [active ? "off" : "on"]") + show_splash_text(user, "toggled [active ? "off" : "on"]", "You toggle \the [src] [active ? "off" : "on"].") active = !active update_icon() @@ -47,7 +47,7 @@ GLOBAL_LIST_INIT(megaphone_insults, world.file2list("config/translation/megaphon return if(world.time <= last_use + MEGAPHONE_COOLDOWN) - show_splash_text(loc, "needs to recharge!") + show_splash_text(loc, "needs to recharge!", "\The [src] needs to recharge!") return _speak(M, capitalize(text), speaking) @@ -73,7 +73,7 @@ GLOBAL_LIST_INIT(megaphone_insults, world.file2list("config/translation/megaphon if(emagged) return FALSE - show_splash_text(user, "overload voice synthesizer!") + show_splash_text(user, "overload voice synthesizer!", "You overload the voice synthesizer, setting the loudness setting way above the safe levels.") emagged = TRUE return TRUE diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index 00c98b19f2a..40f6353bed7 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -29,6 +29,6 @@ /obj/item/device/pipe_painter/attack_self(mob/user as mob) mode = input("Which colour do you want to use?", "Pipe painter", mode) in modes -/obj/item/device/pipe_painter/_examine_text(mob/user) +/obj/item/device/pipe_painter/examine(mob/user, infix) . = ..() - . += "\nIt is in [mode] mode." + . += "It is in [mode] mode." diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 79943d98988..c6fd8805d42 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -30,22 +30,21 @@ recalculateChannels(1) /obj/item/device/radio/headset/Destroy() - qdel(keyslot1) - qdel(keyslot2) - keyslot1 = null - keyslot2 = null + QDEL_NULL(keyslot1) + QDEL_NULL(keyslot2) return ..() /obj/item/device/radio/headset/list_channels(mob/user) return list_secure_channels() -/obj/item/device/radio/headset/_examine_text(mob/user) +/obj/item/device/radio/headset/examine(mob/user, infix) . = ..() + if(!(get_dist(src, user) <= 1 && radio_desc)) return - . += "\nThe following channels are available:" - . += "\n[radio_desc]" + . += "The following channels are available:" + . += "[radio_desc]" /obj/item/device/radio/headset/handle_message_mode(mob/living/M as mob, message, channel) if (channel == "special") diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index fd617a90882..863ad9428b4 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -177,10 +177,10 @@ /obj/item/device/radio/intercom/proc/unscrew_frame(mob/user) playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1) - show_splash_text(user, "unscrewing...") + show_splash_text(user, "unscrewing...", "Now unscrewing \the [src]...") if(do_after(user, 40, src)) - show_splash_text(user, "unscrewed!") + show_splash_text(user, "unscrewed!", SPAN("notice", "You have unscrewed \the [src]!")) new /obj/item/intercom_assembly(loc, dir, src) qdel(src) diff --git a/code/game/objects/items/devices/radio/intercom_frame.dm b/code/game/objects/items/devices/radio/intercom_frame.dm index f43ade2662b..2979f72d9e9 100644 --- a/code/game/objects/items/devices/radio/intercom_frame.dm +++ b/code/game/objects/items/devices/radio/intercom_frame.dm @@ -90,70 +90,66 @@ /obj/item/intercom_assembly/proc/add_cable(obj/item/stack/cable_coil/C, mob/user) if(C.get_amount() < 1) - show_splash_text(user, "need more coil!") + show_splash_text(user, "need more coil!", SPAN("warning", "You need more cable to wire \the [src]!")) return - show_splash_text(user, "wiring...") + show_splash_text(user, "wiring...", "Now wiring \the [src]...") if(do_after(user, 40, src)) if(C.use(1)) - show_splash_text(user, "wired!") + show_splash_text(user, "wired!", SPAN("notice", "You have wired \the [src]!")) buildstage = INTERCOM_WIRED update_icon() /obj/item/intercom_assembly/proc/remove_cable(mob/user) playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1) - show_splash_text(user, "cutting cable...") + show_splash_text(user, "cutting cable...", "Now cutting cable out of \the [src]...") if(do_after(user, 40, src)) - show_splash_text(user, "cut out!") + show_splash_text(user, "cut out!", SPAN("notice", "You have cut the cable out of \the [src]!")) new /obj/item/stack/cable_coil(loc, 1) buildstage = INTERCOM_EMPTY update_icon() /obj/item/intercom_assembly/proc/deconstruct_frame(obj/item/weldingtool/WT, mob/user) - if(WT.remove_fuel(0, user)) - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) - show_splash_text(user, "dissasembling...") - if(do_after(user, 40, src)) - if(!WT.isOn()) - return + show_splash_text(user, "dissasembling...", "Now dissasembling \the [src]...") + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) + return - new /obj/item/stack/material/steel(loc, 3) - qdel(src) - else - show_splash_text(user, "turn \the [WT] on first!") + if(QDELETED(src) || !user) return + new /obj/item/stack/material/steel(loc, 3) + qdel(src) /obj/item/intercom_assembly/proc/add_radio(obj/item/device/radio/R, mob/user) playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1) - show_splash_text(user, "installing radio...") + show_splash_text(user, "installing radio...", "Now installing the radio into \the [src]...") if(do_after(user, 40, src)) if(!user.drop(R, src)) return - show_splash_text(user, "installed!") + show_splash_text(user, "installed!", SPAN("notice", "You have installed the radio into \the [src]!")) qdel(R) buildstage = INTERCOM_RADIO update_icon() /obj/item/intercom_assembly/proc/eject_radio(mob/user) playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) - show_splash_text(user, "removing radio...") + show_splash_text(user, "removing radio...", "Now removing the radio from \the [src]...") if(do_after(user, 40, src)) - show_splash_text(user, "removed radio!") + show_splash_text(user, "removed radio!", SPAN("notice", "You have removed the radio from \the [src]!")) new /obj/item/device/radio(user.loc, 1) buildstage = INTERCOM_WIRED update_icon() /obj/item/intercom_assembly/proc/finish_frame(mob/user) playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1) - show_splash_text(user, "finishing \the [src]...") + show_splash_text(user, "finishing \the [src]...", "Now finishing \the [src]...") if(do_after(user, 40, src)) - show_splash_text(user, "finished \the [src]!") + show_splash_text(user, "finished \the [src]!", SPAN("notice", "You have finished assembing \the [src]!")) new /obj/item/device/radio/intercom(loc, dir) qdel(src) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index f12cc95fa01..02027ae1d78 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -248,7 +248,7 @@ // Fix for permacell radios, but kinda eh about actually fixing them. if(!M || !message) return 0 - if(speaking && (speaking.flags & (NONVERBAL|SIGNLANG))) return 0 + if(speaking && (speaking.language_flags & (NONVERBAL|SIGNLANG))) return 0 var/mob/living/carbon/C = M if((istype(C)) && (C.chem_effects[CE_SEDATE])) @@ -495,14 +495,14 @@ return get_mobs_or_objects_in_view(canhear_range, src) -/obj/item/device/radio/_examine_text(mob/user) +/obj/item/device/radio/examine(mob/user, infix) . = ..() - if ((in_range(src, user) || loc == user)) - if (b_stat) - . += "\n[SPAN_NOTICE("\The [src] can be attached and modified!
")]" + + if((in_range(src, user) || loc == user)) + if(b_stat) + . += "[SPAN_NOTICE("\The [src] can be attached and modified!")]" else - . += "\n[SPAN_NOTICE("\The [src] can not be modified or attached!")]" - return + . += "[SPAN_NOTICE("\The [src] can not be modified or attached!")]" /obj/item/device/radio/attackby(obj/item/W as obj, mob/user as mob) ..() diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index d8d1a5ee1d5..e6d5bb8827a 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -434,10 +434,11 @@ REAGENT SCANNER if (last_target && dat) show_browser(user, dat, "window=scanconsole;size=430x600") -/obj/item/device/healthanalyzer_advanced/_examine_text(mob/user) +/obj/item/device/healthanalyzer_advanced/examine(mob/user, infix) . = ..() - if (last_target) - . += "\nIt contains saved data for [last_target]." + + if(last_target) + . += "It contains saved data for [last_target]." /obj/item/device/healthanalyzer_advanced/attack(mob/living/carbon/human/M, mob/living/user) diff --git a/code/game/objects/items/devices/spy_bug.dm b/code/game/objects/items/devices/spy_bug.dm index 87504162195..0add4518daf 100644 --- a/code/game/objects/items/devices/spy_bug.dm +++ b/code/game/objects/items/devices/spy_bug.dm @@ -19,8 +19,8 @@ var/obj/item/device/radio/spy/radio var/obj/machinery/camera/spy/camera -/obj/item/device/spy_bug/New() - ..() +/obj/item/device/spy_bug/Initialize() + . = ..() radio = new(src) camera = new(src) GLOB.listening_objects += src @@ -31,11 +31,14 @@ GLOB.listening_objects -= src return ..() -/obj/item/device/spy_bug/_examine_text(mob/user) +/obj/item/device/spy_bug/examine(mob/user, infix) . = ..() - if(get_dist(src, user) <= 0) - . += "\nIt's a tiny camera, microphone, and transmission device in a happy union." - . += "\nNeeds to be both configured and brought in contact with monitor device to be fully functional." + + if(get_dist(src, user) > 0) + return + + . += "It's a tiny camera, microphone, and transmission device in a happy union." + . += "Needs to be both configured and brought in contact with monitor device to be fully functional." /obj/item/device/spy_bug/attack_self(mob/user) radio.attack_self(user) @@ -56,14 +59,20 @@ /obj/item/device/spy_bug/proc/unpair() paired_with = null -/obj/item/device/spy_bug/Move() +/obj/item/device/spy_bug/Move(newloc, direct) . = ..() - if(. && paired_with) + if(!.) + return + + if(paired_with) paired_with.bug_moved() /obj/item/device/spy_bug/forceMove() . = ..() - if(. && paired_with) + if(!.) + return + + if(paired_with) paired_with.bug_moved() /obj/item/device/spy_monitor @@ -79,7 +88,6 @@ var/obj/item/device/uplink/uplink var/cam_spy_active = FALSE - var/timer var/list/area/active_recon_areas_list = list() var/finish = FALSE // to protect user anus from picking bugs in finish check tick. @@ -89,31 +97,46 @@ var/list/obj/item/device/spy_bug/bugs = list() var/list/obj/machinery/camera/spy/cameras = list() -/obj/item/device/spy_monitor/New() - ..() + var/weakref/camera_user + + var/already_thinking = FALSE + +/obj/item/device/spy_monitor/Initialize() + . = ..() radio = new(src) GLOB.listening_objects += src /obj/item/device/spy_monitor/Destroy() GLOB.listening_objects -= src + var/mob/user = camera_user.resolve() + if(istype(user)) + unregister_signal(user, SIGNAL_MOVED) + camera_user = null return ..() -/obj/item/device/spy_monitor/_examine_text(mob/user) +/obj/item/device/spy_monitor/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\nThe time '12:00' is blinking in the corner of the screen and \the [src] looks very cheaply made." + . += "The time '12:00' is blinking in the corner of the screen and \the [src] looks very cheaply made." /obj/item/device/spy_monitor/proc/bug_moved() - if(!timer || !length(cameras) || !length(active_recon_areas_list) || finish) + if(!already_thinking || !length(cameras) || !length(active_recon_areas_list) || finish) return + if(ishuman(uplink?.uplink_owner?.current)) to_chat(uplink.uplink_owner.current, SPAN_NOTICE("It looks like there are problems with your spy network in one the following areas:\n[english_list(active_recon_areas_list, and_text = "\n")]\nBugs maintenance required. Your current progress has been zeroed out.")) active_recon_areas_list = list() - deltimer(timer) - timer = null + set_next_think(0) + already_thinking = FALSE /obj/item/device/spy_monitor/proc/start() - timer = addtimer(CALLBACK(src, nameof(.proc/finish)), 10 MINUTES, TIMER_STOPPABLE) + already_thinking = TRUE + set_next_think(world.time + 10 MINUTES) + +/obj/item/device/spy_monitor/think() + already_thinking = FALSE + finish() /obj/item/device/spy_monitor/proc/finish() if(length(active_recon_areas_list) && !finish) @@ -129,9 +152,10 @@ set category = "Object" if(usr.incapacitated() || !Adjacent(usr) || !ishuman(usr)) return - if(timer) + if(already_thinking) to_chat(usr, SPAN_NOTICE("Active spy network detected in the following areas:\n[english_list(active_recon_areas_list, and_text = "\n")]\nYou can deactivate the network by picking up the camera bugs.")) return + var/list/sensor_list = list() if(length(active_recon_areas_list)) active_recon_areas_list = list() @@ -214,30 +238,48 @@ if(!can_use_cam(user)) return - selected_camera = cameras[1] - view_camera(user) + if(selected_camera) + selected_camera = null + user.reset_view() + user.unset_machine() + return - operating = 1 - while(selected_camera && Adjacent(user)) - selected_camera = input("Select camera bug to view.") as null|anything in cameras - selected_camera = null - operating = 0 + selected_camera = tgui_input_list(user, "Select camera bug to view", "Spy Monitor", cameras) + register_signal(user, SIGNAL_MOVED, nameof(.proc/user_moved)) + camera_user = weakref(user) + view_camera(user) /obj/item/device/spy_monitor/proc/view_camera(mob/user) - spawn(0) - while(selected_camera && Adjacent(user)) - var/turf/T = get_turf(selected_camera) - if(!T || !is_on_same_plane_or_station(T.z, user.z) || !selected_camera.can_use()) - user.unset_machine() - user.reset_view(null) - to_chat(user, "[selected_camera] unavailable.") - sleep(90) - else - user.set_machine(selected_camera) - user.reset_view(selected_camera) - sleep(10) + user.machine = src + user.reset_view(selected_camera) + while(selected_camera && CanPhysicallyInteract(user)) + check_eye(user) + selected_camera = tgui_input_list(user, "Select camera bug to view", "Spy Monitor", cameras) + register_signal(user, SIGNAL_MOVED, nameof(.proc/user_moved), override = TRUE) + view_camera(user) + +/obj/item/device/spy_monitor/proc/user_moved(mob/moved_user) + moved_user.unset_machine() + unregister_signal(moved_user, SIGNAL_MOVED) + camera_user = null + +/obj/item/device/spy_monitor/check_eye(mob/user) + if(!selected_camera || QDELETED(selected_camera)) user.unset_machine() - user.reset_view(null) + camera_user = null + return + + if(!CanPhysicallyInteract(user)) + user.unset_machine() + camera_user = null + return + + var/turf/T = get_turf(selected_camera) + if(!T || !is_on_same_plane_or_station(T.z, user.z)) + user.unset_machine() + selected_camera = null + camera_user = null + return /obj/item/device/spy_monitor/proc/can_use_cam(mob/user) if(operating) @@ -258,8 +300,8 @@ // These cheap toys are accessible from the syndicate camera console as well network = list(NETWORK_SYNDICATE) -/obj/machinery/camera/spy/New() - ..() +/obj/machinery/camera/spy/Initialize() + . = ..() name = "DV-136ZB #[random_id(/obj/machinery/camera/spy, 1000,9999)]" c_tag = name diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm index ba39a8e7214..7abddc12236 100644 --- a/code/game/objects/items/devices/suit_cooling.dm +++ b/code/game/objects/items/devices/suit_cooling.dm @@ -174,18 +174,19 @@ AddOverlays("battery-5") -/obj/item/device/suit_cooling_unit/_examine_text(mob/user) +/obj/item/device/suit_cooling_unit/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 1) return - if (on) - . += "\nIt's switched on and running." + if(on) + . += "It's switched on and running." else - . += "\nIt is switched off." + . += "It is switched off." - if (cover_open) - . += "\nThe panel is open." + if(cover_open) + . += "The panel is open." - if (cell) - . += "\nThe charge meter reads [round(CELL_PERCENT(cell))]%." + if(cell) + . += "The charge meter reads [round(CELL_PERCENT(cell))]%." diff --git a/code/game/objects/items/devices/suit_sensor_jammer.dm b/code/game/objects/items/devices/suit_sensor_jammer.dm index 1a3f7ae29dc..bd603250834 100644 --- a/code/game/objects/items/devices/suit_sensor_jammer.dm +++ b/code/game/objects/items/devices/suit_sensor_jammer.dm @@ -98,16 +98,20 @@ var/new_range = range + (rand(0,6) / severity) - (rand(0,3) / severity) set_range(new_range) -/obj/item/device/suit_sensor_jammer/_examine_text(user) +/obj/item/device/suit_sensor_jammer/examine(mob/user, infix) . = ..() - if(get_dist(src, user) <= 3) - var/list/message = list() - message += "This device appears to be [active ? "" : "in"]active and " - if(bcell) - message += "displays a charge level of [CELL_PERCENT(bcell)]%." - else - message += "is lacking a cell." - . += "\n[jointext(message, " ")]" + + if(get_dist(src, user) > 3) + return + + var/list/message = list() + message += "This device appears to be [active ? "" : "in"]active and " + if(bcell) + message += "displays a charge level of [CELL_PERCENT(bcell)]%." + else + message += "is lacking a cell." + + . += jointext(message, " ") /obj/item/device/suit_sensor_jammer/tgui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/game/objects/items/devices/tvcamera.dm b/code/game/objects/items/devices/tvcamera.dm index 2af0823e5c8..1510acbeb55 100644 --- a/code/game/objects/items/devices/tvcamera.dm +++ b/code/game/objects/items/devices/tvcamera.dm @@ -29,10 +29,11 @@ radio.set_frequency(ENT_FREQ) update_icon() -/obj/item/device/tvcamera/_examine_text(mob/user) +/obj/item/device/tvcamera/examine(mob/user, infix) . = ..() - . += "\nVideo feed is currently: [camera.status ? "Online" : "Offline"]" - . += "\nAudio feed is currently: [radio.broadcasting ? "Online" : "Offline"]" + + . += "Video feed is currently: [camera.status ? "Online" : "Offline"]" + . += "Audio feed is currently: [radio.broadcasting ? "Online" : "Offline"]" /obj/item/device/tvcamera/attack_self(mob/user) add_fingerprint(user) diff --git a/code/game/objects/items/grenades/anti_photon_grenade.dm b/code/game/objects/items/grenades/anti_photon_grenade.dm index bbcc78baa66..73b98c20367 100644 --- a/code/game/objects/items/grenades/anti_photon_grenade.dm +++ b/code/game/objects/items/grenades/anti_photon_grenade.dm @@ -10,10 +10,9 @@ /obj/item/grenade/anti_photon/detonate() playsound(src.loc, 'sound/effects/phasein.ogg', 50, 1, 5) set_light(-1, 6, 10, 2, "#ffffff") - addtimer(CALLBACK(src, nameof(.proc/finish)), rand(20 SECONDS, 29 SECONDS)) + set_next_think(world.time + rand(20 SECONDS, 29 SECONDS)) -/obj/item/grenade/anti_photon/proc/finish() +/obj/item/grenade/anti_photon/think() set_light(1, 1, 10, 2, "#[num2hex(rand(64,255))][num2hex(rand(64,255))][num2hex(rand(64,255))]") playsound(loc, 'sound/effects/bang.ogg', 50, 1, 5) - sleep(1 SECOND) - qdel(src) + QDEL_IN(src, world.time + 1 SECOND) diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index e217f535ff2..57f8d30f168 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -132,10 +132,11 @@ else to_chat(user, SPAN("warning", "\The [W] is empty.")) -/obj/item/grenade/chem_grenade/_examine_text(mob/user) - . = ..(user) +/obj/item/grenade/chem_grenade/examine(mob/user, infix) + . = ..() + if(detonator) - to_chat(user, "With attached [detonator.name]") + . += "It has \the [detonator] atached." /obj/item/grenade/chem_grenade/detonate() if(stage != STAGE_READY) return diff --git a/code/game/objects/items/grenades/emgrenade.dm b/code/game/objects/items/grenades/emgrenade.dm index e5fb49d0c9e..b2970f5ca36 100644 --- a/code/game/objects/items/grenades/emgrenade.dm +++ b/code/game/objects/items/grenades/emgrenade.dm @@ -1,7 +1,7 @@ /obj/item/grenade/empgrenade name = "classic emp grenade" icon_state = "emp" - item_state = "emp" + item_state = "empgrenade" origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 3) detonate() @@ -14,7 +14,7 @@ name = "low yield emp grenade" desc = "A weaker variant of the classic emp grenade." icon_state = "lyemp" - item_state = "lyempgrenade" + item_state = "empgrenade" origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 3) detonate() diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index c329f9e36a2..dab1cfb103c 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -26,27 +26,34 @@ /obj/item/grenade/Initialize() . = ..() + add_think_ctx("think_detonate", CALLBACK(src, nameof(.proc/detonate)), 0) + add_think_ctx("think_activate", CALLBACK(src, nameof(.proc/activate)), 0) if(has_pin) safety_pin = new /obj/item/safety_pin detonator = new /obj/item/device/assembly_holder/timer_igniter(src) new_timing(30) -/obj/item/grenade/_examine_text(mob/user) +/obj/item/grenade/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 0) if(!QDELETED(safety_pin) && has_pin) - . += "\nThe safety pin is in place." + . += "The safety pin is in place." else - . += "\nThere is no safety pin in place." + . += "There is no safety pin in place." + if(QDELETED(detonator)) - . += "\nThere is no detonator in place." + . += "There is no detonator in place." return + if(det_time > 1) - . += "\nThe timer is set to [det_time/10] seconds." + . += "The timer is set to [det_time/10] seconds." return + if(det_time == null) return - . += "\n\The [src] is set for instant detonation." + + . += "\The [src] is set for instant detonation." /obj/item/grenade/attack_self(mob/user) if(!active) @@ -74,10 +81,12 @@ return if(!isigniter(detonator.a_left)) - detonator.a_left.activate() + if(!istype(detonator.a_left, /obj/item/device/assembly/voice)) + detonator.a_left.activate() active = TRUE if(!isigniter(detonator.a_right)) - detonator.a_right.activate() + if(!istype(detonator.a_right, /obj/item/device/assembly/voice)) + detonator.a_right.activate() active = TRUE broken = TRUE diff --git a/code/game/objects/items/grenades/prank_grenades.dm b/code/game/objects/items/grenades/prank_grenades.dm index 3c3e26f12f9..378a0800950 100644 --- a/code/game/objects/items/grenades/prank_grenades.dm +++ b/code/game/objects/items/grenades/prank_grenades.dm @@ -8,6 +8,6 @@ /obj/item/grenade/spawnergrenade/fake_carp origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 2, TECH_BLUESPACE = 5) - spawner_type = /mob/living/simple_animal/hostile/carp/holodeck + spawner_type = /mob/living/simple_animal/hostile/carp/holographic deliveryamt = 4 newvars = list("faction" = null, "melee_damage_lower" = 0, "melee_damage_upper" = 0, "environment_smash" = 0, "destroy_surroundings" = 0) diff --git a/code/game/objects/items/implants/implants/spy.dm b/code/game/objects/items/implants/implants/spy.dm index b8ddff0b4f3..81e195a4d4f 100644 --- a/code/game/objects/items/implants/implants/spy.dm +++ b/code/game/objects/items/implants/implants/spy.dm @@ -3,7 +3,10 @@ desc = "Used for spying purposes." origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 2, TECH_ILLEGAL = 2) var/activated = FALSE - var/timer + +/obj/item/implant/spy/Initialize() + . = ..() + add_think_ctx("check_completion", CALLBACK(src, nameof(.proc/check_compilation)), 0) /obj/item/implant/spy/proc/check_compilation() if(!imp_in) @@ -12,12 +15,12 @@ C.check(src) /obj/item/implant/spy/implanted(mob/source) - timer = addtimer(CALLBACK(src, nameof(.proc/check_compilation)), 1 MINUTES, TIMER_STOPPABLE) + set_next_think_ctx("check_completion", world.time + 1 MINUTE) return TRUE /obj/item/implant/spy/removed() ..() - deltimer(timer) + set_next_think_ctx("check_completion", 0) /obj/item/implanter/spy name = "implanter (S)" diff --git a/code/game/objects/items/material/_material_weapons.dm b/code/game/objects/items/material/_material_weapons.dm index 85ad11faac9..31f69743715 100644 --- a/code/game/objects/items/material/_material_weapons.dm +++ b/code/game/objects/items/material/_material_weapons.dm @@ -106,30 +106,3 @@ if(!consumed && drops_debris) material.place_shard(T) qdel(src) -/* -Commenting this out pending rebalancing of radiation based on small objects. -/obj/item/material/process() - if(!material.radioactivity) - return - for(var/mob/living/L in range(1,src)) - L.apply_effect(round(material.radioactivity/30),IRRADIATE, blocked = L.get_flat_armor(null, "rad")) -*/ - -/* -// Commenting this out while fires are so spectacularly lethal, as I can't seem to get this balanced appropriately. -/obj/item/material/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) - TemperatureAct(exposed_temperature) - -// This might need adjustment. Will work that out later. -/obj/item/material/proc/TemperatureAct(temperature) - health -= material.combustion_effect(get_turf(src), temperature, 0.1) - check_health(1) - -/obj/item/material/attackby(obj/item/W as obj, mob/user as mob) - if(isWelder(W)) - var/obj/item/weldingtool/WT = W - if(material.ignition_point && WT.remove_fuel(0, user)) - TemperatureAct(150) - else - return ..() -*/ diff --git a/code/game/objects/items/material/ashtray.dm b/code/game/objects/items/material/ashtray.dm index 8a31caed695..b7d28c67929 100644 --- a/code/game/objects/items/material/ashtray.dm +++ b/code/game/objects/items/material/ashtray.dm @@ -20,14 +20,17 @@ qdel(O) return ..() -/obj/item/material/ashtray/_examine_text(mob/user) +/obj/item/material/ashtray/examine(mob/user, infix) . = ..() + if(material) - . += "\nIt's made of [material.display_name]." - if(contents.len >= max_butts) - . += "\nIt's full." - else if(contents.len) - . += "\nIt has [contents.len] cig butts in it." + . += "It's made of [material.display_name]." + + if(length(contents) >= max_butts) + . += "It's full." + + else if(length(contents)) + . += "It has [contents.len] cig butts in it." /obj/item/material/ashtray/on_update_icon() ClearOverlays() diff --git a/code/game/objects/items/material/misc.dm b/code/game/objects/items/material/misc.dm index ae303d3cf88..a2a3a367821 100644 --- a/code/game/objects/items/material/misc.dm +++ b/code/game/objects/items/material/misc.dm @@ -31,7 +31,7 @@ edge = 1 origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 1) attack_verb = list("chopped", "torn", "cut") - applies_material_colour = 0 + applies_material_colour = FALSE hitsound = SFX_CHOP material_amount = 3 @@ -91,6 +91,7 @@ mod_reach = 0.5 mod_handy = 1.0 attack_verb = list("slashed", "sliced", "cut", "clawed") + applies_material_colour = FALSE material_amount = 2 /obj/item/material/scythe @@ -112,6 +113,7 @@ slot_flags = SLOT_BACK origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 2) attack_verb = list("chopped", "sliced", "cut", "reaped") + applies_material_colour = FALSE material_amount = 5 drop_sound = SFX_DROP_SWORD diff --git a/code/game/objects/items/material/shards.dm b/code/game/objects/items/material/shards.dm index 0c9313bf223..907af208842 100644 --- a/code/game/objects/items/material/shards.dm +++ b/code/game/objects/items/material/shards.dm @@ -68,10 +68,13 @@ /obj/item/material/shard/attackby(obj/item/W, mob/user) if(isWelder(W) && material.shard_can_repair) var/obj/item/weldingtool/WT = W - if(WT.remove_fuel(0, user)) - material.place_sheet(loc) - qdel(src) + if(!WT.use_tool(src, user, amount = 1)) return + + material.place_sheet(get_turf(loc)) + qdel_self() + return + return ..() /obj/item/material/shard/Crossed(mob/M) diff --git a/code/game/objects/items/material/twohanded.dm b/code/game/objects/items/material/twohanded.dm index a862c6acf6d..7a5c045720d 100644 --- a/code/game/objects/items/material/twohanded.dm +++ b/code/game/objects/items/material/twohanded.dm @@ -44,12 +44,14 @@ mod_handy = mod_handy_w mod_weight = mod_weight_w mod_reach = mod_reach_w + improper_held_icon = TRUE else wielded = 0 force = force_unwielded mod_handy = mod_handy_u mod_weight = mod_weight_u mod_reach = mod_reach_u + improper_held_icon = FALSE update_icon() ..() @@ -84,6 +86,8 @@ desc = "It`s time to rip and tear... The trees. Right?" icon_state = "chainsaw" base_icon = "chainsaw" + improper_held_icon = TRUE + sharp = FALSE // Hard to cut with a not working chainsaw edge = FALSE w_class = ITEM_SIZE_LARGE @@ -145,14 +149,16 @@ /obj/item/material/twohanded/chainsaw/proc/get_fuel() return tank ? tank.reagents.get_reagent_amount(/datum/reagent/fuel) : 0 -/obj/item/material/twohanded/chainsaw/_examine_text(mob/user) +/obj/item/material/twohanded/chainsaw/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 0) return + if(tank) - . += "\n\icon[tank] \The [tank] contains [get_fuel()]/[tank.max_fuel] units of fuel!" + . += "\icon[tank] \The [tank] contains [get_fuel()]/[tank.max_fuel] units of fuel!" else - . += "\nThere is no tank attached." + . += "There is no tank attached." /obj/item/material/twohanded/chainsaw/attack_self(mob/user) if(active) diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index 60ca4aaa193..b75e8bca6dc 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -196,6 +196,7 @@ sharp = 0 edge = 1 hitsound = 'sound/effects/fighting/energy1.ogg' + active_max_bright = 0.75 var/blade_color drop_sound = SFX_DROP_DEVICE @@ -286,10 +287,11 @@ mod_handy_a = 2.0 mod_shield_a = 2.75 origin_tech = list(TECH_MAGNET = 4, TECH_ILLEGAL = 5) - var/base_block_chance = 50 - active_max_bright = 0.5 + active_max_bright = 0.9 active_outer_range = 1.8 + var/wielded = FALSE + /obj/item/melee/energy/sword/dualsaber/New() ..() var/list/colorparam = list("green" = "#68ff4d", "red" = "#ff5959", "blue" = "#4de4ff", "purple" = "#de4dff") @@ -298,6 +300,22 @@ if(!brightness_color) brightness_color = colorparam[blade_color] +/obj/item/melee/energy/sword/dualsaber/update_twohanding() + var/mob/living/M = loc + wielded = (istype(M) && M.can_wield_item(src) && is_held_twohanded(M)) + update_icon() + ..() + +/obj/item/melee/energy/sword/dualsaber/on_update_icon() + icon_state = active ? "dualsaber[blade_color]" : initial(icon_state) + + var/new_item_state = icon_state + if(active && wielded) + new_item_state += "-wielded" + + item_state_slots[slot_l_hand_str] = new_item_state + item_state_slots[slot_r_hand_str] = new_item_state + /obj/item/melee/energy/sword/dualsaber/green blade_color = "green" brightness_color = "#68ff4d" @@ -316,7 +334,11 @@ /obj/item/melee/energy/sword/dualsaber/activate(mob/living/user) ..() - icon_state = "dualsaber[blade_color]" + update_icon() + +/obj/item/melee/energy/sword/dualsaber/deactivate(mob/living/user) + ..() + update_icon() /* *Energy Blade @@ -346,6 +368,8 @@ force_drop = TRUE attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") hitsound = 'sound/effects/fighting/energy1.ogg' + active_max_bright = 0.75 + brightness_color = "#68ff4d" var/weakref/creator var/datum/effect/effect/system/spark_spread/spark_system diff --git a/code/game/objects/items/paintkit.dm b/code/game/objects/items/paintkit.dm index 98bf623b7ed..f946b3b470e 100644 --- a/code/game/objects/items/paintkit.dm +++ b/code/game/objects/items/paintkit.dm @@ -7,9 +7,9 @@ var/new_icon_file var/uses = 1 // Uses before the kit deletes itself. -/obj/item/device/kit/_examine_text(mob/user) +/obj/item/device/kit/examine(mob/user, infix) . = ..() - . += "\nIt has [uses] use\s left." + . += "It has [uses] use\s left." /obj/item/device/kit/proc/use(amt, mob/user) uses -= amt @@ -72,12 +72,13 @@ var/removable = null var/list/allowed_types = list() -/obj/item/device/kit/paint/_examine_text(mob/user) +/obj/item/device/kit/paint/examine(mob/user, infix) . = ..() - . += "\nThis kit will convert an exosuit into: [new_name]." - . += "\nThis kit can be used on the following exosuit models:" + + . += "This kit will convert an exosuit into: [new_name]." + . += "This kit can be used on the following exosuit models:" for(var/exotype in allowed_types) - . += "\n- [capitalize(exotype)]" + . += "- [capitalize(exotype)]" /obj/mecha/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/device/kit/paint)) diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index 43961738690..ef50a2dafc8 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -35,11 +35,13 @@ attackby(obj/item/W as obj, mob/user as mob) if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(WT.remove_fuel(0, user)) - ClearOverlays() - to_chat(usr, "You slice off [src]'s uneven chunks of aluminum and scorch marks.") + if(!WT.use_tool(src, user, amount = 1)) return + ClearOverlays() + to_chat(usr, "You slice off [src]'s uneven chunks of aluminum and scorch marks.") + return + attack_hand(mob/user as mob) // taking pinned targets off! diff --git a/code/game/objects/items/smokables/cigarettes.dm b/code/game/objects/items/smokables/cigarettes.dm index 2ed0d533a83..99373b79f58 100644 --- a/code/game/objects/items/smokables/cigarettes.dm +++ b/code/game/objects/items/smokables/cigarettes.dm @@ -234,13 +234,20 @@ return item_state /obj/item/clothing/mask/smokable/cigarette/get_mob_overlay(mob/user_mob, slot) - var/image/res = ..() + . = ..() + var/image/ret + + if(slot == slot_l_hand_str || slot == slot_r_hand_str) + ret = .[1] + else + ret = . + if(lit == 1) - var/image/ember = overlay_image(res.icon, "cigember", flags=RESET_COLOR) + var/image/ember = overlay_image(ret.icon, "cigember", flags = RESET_COLOR) ember.layer = ABOVE_LIGHTING_LAYER ember.plane = EFFECTS_ABOVE_LIGHTING_PLANE - res.AddOverlays(ember) - return res + ret.AddOverlays(ember) + return ret /obj/item/cigbutt diff --git a/code/game/objects/items/smokables/ecigs.dm b/code/game/objects/items/smokables/ecigs.dm index 4c2b4382559..0f898d62f45 100644 --- a/code/game/objects/items/smokables/ecigs.dm +++ b/code/game/objects/items/smokables/ecigs.dm @@ -232,12 +232,13 @@ icon_state = "cheap_off" base_icon = "cheap" -/obj/item/clothing/mask/smokable/ecig/simple/_examine_text(mob/user) +/obj/item/clothing/mask/smokable/ecig/simple/examine(mob/user, infix) . = ..() + if(ec_cartridge) - . += SPAN("notice", "\nThere is roughly [round((ec_cartridge.reagents.total_volume / ec_cartridge.volume) * 100, 25)]% of liquid remaining.") + . += SPAN("notice", "There is roughly [round((ec_cartridge.reagents.total_volume / ec_cartridge.volume) * 100, 25)]% of liquid remaining.") else - . += SPAN("notice", "\nThere is no cartridge connected.") + . += SPAN("notice", "There is no cartridge connected.") /obj/item/clothing/mask/smokable/ecig/util name = "electronic cigarette" @@ -254,15 +255,16 @@ if(active) icon_state = "[base_icon]_on_[led_colors[current_color]]" -/obj/item/clothing/mask/smokable/ecig/util/_examine_text(mob/user) +/obj/item/clothing/mask/smokable/ecig/util/examine(mob/user, infix) . = ..() + if(ec_cartridge) - . += SPAN("notice", "\nThere are [round(ec_cartridge.reagents.total_volume, 1)] units of liquid remaining.") + . += SPAN("notice", "There are [round(ec_cartridge.reagents.total_volume, 1)] units of liquid remaining.") else - . += SPAN("notice", "\nThere is no cartridge connected.") - . += SPAN("notice", "\nGauge shows about [round(CELL_PERCENT(cigcell), 25)]% energy remaining.") - var/_led = led_descs[current_color] - . += SPAN("notice", "\nLEDs are set to \"[_led]\" mode.") + . += SPAN("notice", "There is no cartridge connected.") + + . += SPAN("notice", "Gauge shows about [round(CELL_PERCENT(cigcell), 25)]% energy remaining.") + . += SPAN("notice", "LEDs are set to \"[led_descs[current_color]]\" mode.") /obj/item/clothing/mask/smokable/ecig/util/verb/change_LED_mode() set name = "Change LEDs mode" @@ -284,13 +286,15 @@ item_state = "pipeoff" cell_type = /obj/item/cell/device/high // Enough for four catridges -/obj/item/clothing/mask/smokable/ecig/deluxe/_examine_text(mob/user) +/obj/item/clothing/mask/smokable/ecig/deluxe/examine(mob/user, infix) . = ..() + if(ec_cartridge) - . += SPAN("notice", "\nThere are [round(ec_cartridge.reagents.total_volume, 1)] units of liquid remaining.") + . += SPAN("notice", "There are [round(ec_cartridge.reagents.total_volume, 1)] units of liquid remaining.") else - . += SPAN("notice", "\nThere is no cartridge connected.") - . += SPAN("notice", "\nGauge shows [round(CELL_PERCENT(cigcell), 1)]% energy remaining.") + . += SPAN("notice", "There is no cartridge connected.") + + . += SPAN("notice", "Gauge shows [round(CELL_PERCENT(cigcell), 1)]% energy remaining.") /// Cartridges @@ -306,9 +310,9 @@ var/flavor = "flavorless" var/label_color = "#ffffff" -/obj/item/reagent_containers/ecig_cartridge/_examine_text(mob/user)//to see how much left +/obj/item/reagent_containers/ecig_cartridge/examine(mob/user, infix) . = ..() - . += "\nThe cartridge has [reagents.total_volume] units of liquid remaining." + . += "The cartridge has [reagents.total_volume] units of liquid remaining." /obj/item/reagent_containers/ecig_cartridge/Initialize() . = ..() @@ -428,7 +432,7 @@ . = ..() reagents.add_reagent(/datum/reagent/tobacco/liquid, 5) reagents.add_reagent(/datum/reagent/glycerol, 10) - reagents.add_reagent(/datum/reagent/drink/coffee, 5) + reagents.add_reagent(/datum/reagent/caffeine/coffee, 5) // Disposables diff --git a/code/game/objects/items/stacks/assemblies.dm b/code/game/objects/items/stacks/assemblies.dm index ffbebc5e433..9d4bef72b22 100644 --- a/code/game/objects/items/stacks/assemblies.dm +++ b/code/game/objects/items/stacks/assemblies.dm @@ -27,23 +27,25 @@ if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(WT.remove_fuel(0,user)) - var/obj/item/stack/material/steel/new_item - if(istype(src.loc,/turf)) - new_item = new(src.loc) - else - new_item = new(usr.loc) - new_item.add_fingerprint(user) - new_item.add_to_stacks(usr) - for (var/mob/M in viewers(src)) - M.show_message(SPAN_NOTICE("[src] is shaped into metal by [user.name] with the weldingtool."), 3, SPAN_NOTICE("You hear welding."), 2) - var/obj/item/stack/gassembly/R = src - src = null - var/replace = (user.get_inactive_hand()==R) - R.use(1) - if (!R && replace) - user.pick_or_drop(new_item) - return + if(!WT.use_tool(src, user, amount = 1)) + return + + var/obj/item/stack/material/steel/new_item + if(istype(src.loc,/turf)) + new_item = new(src.loc) + else + new_item = new(usr.loc) + new_item.add_fingerprint(user) + new_item.add_to_stacks(usr) + for (var/mob/M in viewers(src)) + M.show_message(SPAN_NOTICE("[src] is shaped into metal by [user.name] with the weldingtool."), 3, SPAN_NOTICE("You hear welding."), 2) + var/obj/item/stack/gassembly/R = src + src = null + var/replace = (user.get_inactive_hand()==R) + R.use(1) + if (!R && replace) + user.pick_or_drop(new_item) + if(isWrench(W) && !in_use) diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index fcc5eca2f1a..6cf622a091e 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -44,20 +44,24 @@ var/obj/item/weldingtool/WT = W if(get_amount() < 2) - to_chat(user, "You need at least two rods to do this.") + to_chat(user, SPAN_NOTICE("You need at least two rods to do this.")) return - if(WT.remove_fuel(0,user)) - var/obj/item/stack/material/steel/new_item = new(usr.loc) - new_item.add_to_stacks(usr) - for (var/mob/M in viewers(src)) - M.show_message("[src] is shaped into metal by [user.name] with the weldingtool.", 3, "You hear welding.", 2) - var/obj/item/stack/rods/R = src - src = null - var/replace = (user.get_inactive_hand()==R) - R.use(2) - if (!R && replace) - user.pick_or_drop(new_item) + + if(!WT.use_tool(src, user, amount = 1)) + return + + var/obj/item/stack/material/steel/new_item = new(usr.loc) + new_item.add_to_stacks(usr) + for(var/mob/M in viewers(src)) + M.show_message(SPAN_NOTICE("[src] is shaped into metal by [user.name] with the weldingtool."), 3, SPAN_NOTICE("You hear welding."), 2) + + var/obj/item/stack/rods/R = src + src = null + var/replace = (user.get_inactive_hand() == R) + R.use(2) + if(!R && replace) + user.pick_or_drop(new_item) return if (istype(W, /obj/item/tape_roll)) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index c1e9f35a14d..3e90b8e2566 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -44,22 +44,26 @@ close_browser(usr, "window=stack") return ..() -/obj/item/stack/_examine_text(mob/user) +/obj/item/stack/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) if(!uses_charge) if(plural_name) - . += "\nThere [amount == 1 ? "is" : "are"] [amount] [amount == 1 ? "[singular_name]" : "[plural_name]"] in the stack." + . += "There [amount == 1 ? "is" : "are"] [amount] [amount == 1 ? "[singular_name]" : "[plural_name]"] in the stack." else - . += "\nThere [amount == 1 ? "is" : "are"] [amount] [singular_name]\s in the stack." + . += "There [amount == 1 ? "is" : "are"] [amount] [singular_name]\s in the stack." else - . += "\nThere is enough charge for [get_amount()]." + . += "There is enough charge for [get_amount()]." + if(color) - . += "\nIt's painted." - if (istype(src,/obj/item/stack/tile)) + . += "It's painted." + + if(istype(src, /obj/item/stack/tile)) var/obj/item/stack/tile/T = src + if(length(T.stored_decals)) - . += "\nIt's has painted decals on it." + . += "It's has painted decals on it." /obj/item/stack/attack_self(mob/user as mob) if(uses_charge) @@ -163,35 +167,41 @@ to_chat(user, "\The [recipe.title] must be constructed on the floor!") return - if((WT && WT.remove_fuel(0, user)) || uses_charge || craft_tool == 1) + to_chat(user, "Building [recipe.title] ...") + if(craft_tool == 2 && WT?.use_tool(src, user, delay = recipe.time, amount = 5)) + finalize_recipe_production(recipe, required, produced, user) + return + + else if(craft_tool != 2 && do_after(user, recipe.time)) + finalize_recipe_production(recipe, required, produced, user) + return - if (recipe.time) - to_chat(user, "Building [recipe.title] ...") - if (!do_after(user, recipe.time)) - return +/obj/item/stack/proc/finalize_recipe_production(datum/stack_recipe/recipe, required, produced, mob/user) + if(QDELETED(src)) // This proc is called after do_after(), some checks are therefore needed + return - if (use(required)) - var/atom/O - if(recipe.use_material) - if(istype(src.loc,/turf)) - O = new recipe.result_type(src.loc, recipe.use_material) - else - O = new recipe.result_type(user.loc, recipe.use_material) + if(use(required)) + var/atom/O + if(recipe.use_material) + if(istype(src.loc,/turf)) + O = new recipe.result_type(src.loc, recipe.use_material) + else + O = new recipe.result_type(user.loc, recipe.use_material) + else + if(istype(src.loc,/turf)) + O = new recipe.result_type(src.loc) else - if(istype(src.loc,/turf)) - O = new recipe.result_type(src.loc) - else - O = new recipe.result_type(user.loc) - O.set_dir(user.dir) - O.add_fingerprint(user) - - if (recipe.goes_in_hands && !recipe.on_floor) - user.pick_or_drop(O) - - if (istype(O, /obj/item/stack)) - var/obj/item/stack/S = O - S.amount = produced - S.add_to_stacks(user, recipe.goes_in_hands) + O = new recipe.result_type(user.loc) + O.set_dir(user.dir) + O.add_fingerprint(user) + + if(recipe.goes_in_hands && !recipe.on_floor) + user.pick_or_drop(O) + + if(istype(O, /obj/item/stack)) + var/obj/item/stack/S = O + S.amount = produced + S.add_to_stacks(user, recipe.goes_in_hands) /obj/item/stack/Topic(href, href_list) ..() diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index bf94f6ff143..fbe97f831ee 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -11,6 +11,7 @@ name = "tile" singular_name = "tile" desc = "A non-descript floor tile." + item_state = "tile" randpixel = 7 w_class = ITEM_SIZE_NORMAL max_amount = 100 @@ -34,6 +35,7 @@ singular_name = "grass floor tile" desc = "A patch of grass like they often use on golf courses." icon_state = "tile_grass" + item_state = "tile_grass" origin_tech = list(TECH_BIO = 1) drop_sound = SFX_DROP_HERB @@ -47,6 +49,7 @@ singular_name = "wood floor tile" desc = "An easy to fit wooden floor tile." icon_state = "tile-wood" + item_state = "tile_wood" drop_sound = SFX_DROP_WOODEN pickup_sound = SFX_PICKUP_WOODEN @@ -64,6 +67,7 @@ singular_name = "darkwood floor tile" desc = "An easy to fit darkwood floor tile." icon_state = "tile-darkwood" + item_state = "tile_wood" stacktype = /obj/item/stack/tile/darkwood build_type = /obj/item/stack/tile/darkwood diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index cda00b49432..fdd0045c779 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -32,7 +32,13 @@ /obj/item/storage/belt/get_mob_overlay(mob/user_mob, slot) - var/image/ret = ..() + . = ..() + + if(slot == slot_l_hand_str || slot == slot_r_hand_str) + return + + var/image/ret = . + if(slot == slot_belt_str && length(contents)) for(var/obj/item/I in contents) ret.AddOverlays(image('icons/inv_slots/belts/mob.dmi', "[I.item_state ? I.item_state : I.icon_state]")) diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index b8a6c4c43da..bcb5c30744f 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -24,10 +24,10 @@ desc = "It's just an ordinary box." icon = 'icons/obj/storage/boxes.dmi' icon_state = "box" - item_state = "syringe_kit" + item_state = "box" inspect_state = "box-open" max_storage_space = DEFAULT_BOX_STORAGE - var/obj/item/foldable = /obj/item/stack/material/cardboard // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard + var/obj/item/foldable = /obj/item/stack/material/cardboard // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard use_sound = SFX_SEARCH_CLOTHES drop_sound = SFX_DROP_CARDBOARD @@ -87,6 +87,7 @@ desc = "A durable plastic box decorated in warning colors that contains a limited supply of survival tools. The panel and white stripe indicate this one contains oxygen. It has special foldlines, making it able to be folded into an emergency crowbar." icon_state = "survival" inspect_state = "survival-open" + item_state = "box_survival" foldable = /obj/item/crowbar/emergency startswith = list(/obj/item/clothing/mask/breath = 1, /obj/item/tank/emergency/oxygen = 1, @@ -100,6 +101,7 @@ desc = "A durable plastic box decorated in warning colors that contains a limited supply of survival tools. The panel and black stripe indicate this one contains nitrogen. It has special foldlines, making it able to be folded into an emergency crowbar." icon_state = "survivalvox" inspect_state = "survival-open" + item_state = "box_survival" foldable = /obj/item/crowbar/emergency/vox startswith = list(/obj/item/clothing/mask/breath = 1, /obj/item/tank/emergency/nitrogen = 1, @@ -112,6 +114,7 @@ desc = "A durable plastic box decorated in warning colors that contains a limited supply of survival tools. The panel and orange stripe indicate this one as the engineering variant. It has special foldlines, making it able to be folded into an emergency crowbar." icon_state = "survivaleng" inspect_state = "survival-open" + item_state = "box_survival" foldable = /obj/item/crowbar/emergency/eng startswith = list(/obj/item/clothing/mask/breath = 1, /obj/item/tank/emergency/oxygen/engi = 1, @@ -126,6 +129,7 @@ desc = "A durable plastic box decorated in warning colors that contains a limited supply of survival tools. The panel and red & black stripe indicate this one as the security variant. It has special foldlines, making it able to be folded into an emergency crowbar." icon_state = "survivalsec" inspect_state = "survival-open" + item_state = "box_survival" foldable = /obj/item/crowbar/emergency/sec startswith = list(/obj/item/clothing/mask/breath = 1, /obj/item/tank/emergency/oxygen = 1, @@ -667,3 +671,22 @@ desc = "A box full of tasty, colorful space cleaner pods." icon_state = "cleanerpods" startswith = list(/obj/item/reagent_containers/pill/cleanerpod = 14) + +/obj/item/storage/box/coffeepack + name = "arabica beans" + desc = "A bag containing fresh, dry coffee arabica beans. Ethically sourced and packaged by Waffle Corp." + startswith = list(/obj/item/reagent_containers/food/grown/coffee = 5) + +/obj/item/storage/box/coffeepack/robusta + icon_state = "robusta_beans" + name = "robusta beans" + desc = "A bag containing fresh, dry coffee robusta beans. Ethically sourced and packaged by Waffle Corp." + startswith = list(/obj/item/reagent_containers/food/grown/coffee/robusta = 5) + +/obj/item/storage/box/coffeemaking_kit + name = "coffeemaking kit" + desc = "A box containing coffee beans and a coffeepot." + startswith = list(/obj/item/reagent_containers/food/grown/coffee = 3, + /obj/item/reagent_containers/food/grown/coffee/robusta = 2, + /obj/item/reagent_containers/vessel/coffeepot + ) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index a708933b759..d0a048081ad 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -41,17 +41,18 @@ . = ..() -/obj/item/storage/fancy/_examine_text(mob/user) +/obj/item/storage/fancy/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 1) return var/key_name = initial(key_type.name) if(!contents.len) - . += "\nThere are no [key_name]s left in the box." + . += "There are no [key_name]s left in the box." else var/key_count = count_by_type(contents, key_type) - . += "\nThere [key_count == 1? "is" : "are"] [key_count] [key_name]\s in the box." + . += "There [key_count == 1? "is" : "are"] [key_count] [key_name]\s in the box." /* * Egg Box diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index 576e6efc179..e69de29bb2d 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -1,641 +0,0 @@ -/* - * Absorbs /obj/item/secstorage. - * Reimplements it only slightly to use existing storage functionality. - * - * Contains: - * Secure Briefcase - * Wall Safe - */ - -// ----------------------------- -// Generic Item -// ----------------------------- -/obj/item/storage/secure - name = "secstorage" - var/icon_locking = "secureb" - var/icon_sparking = "securespark" - var/icon_opened = "secure0" - var/locked = 1 - var/code = "" - var/l_code = null - var/l_set = 0 - var/l_setshort = 0 - var/l_hacking = 0 - var/emagged = 0 - var/open = 0 - var/datum/browser/lock_menu - w_class = ITEM_SIZE_NORMAL - max_w_class = ITEM_SIZE_SMALL - max_storage_space = DEFAULT_BOX_STORAGE - -/obj/item/storage/secure/Destroy() - QDEL_NULL(lock_menu) - return ..() - -/obj/item/storage/secure/on_update_icon() - ClearOverlays() - - if(being_inspected && istext(inspect_state)) - icon_state = inspect_state - return - - icon_state = base_icon_state ? base_icon_state : initial(icon_state) - if(emagged) - AddOverlays(image(icon, icon_locking)) - else if(!locked) - AddOverlays(image(icon, icon_opened)) - -/obj/item/storage/secure/_examine_text(mob/user) - . = ..() - . += "The service panel is [open ? "open" : "closed"]." - -/obj/item/storage/secure/attackby(obj/item/W, mob/user) - if(locked) - if(istype(W, /obj/item/melee/energy/blade)) - emag_act(INFINITY, user, W, "You slice through the lock of \the [src]") - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, src.loc) - spark_system.start() - playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) - playsound(src.loc, SFX_SPARK, 50, 1) - return - if(isScrewdriver(W)) - if(do_after(user, 20, src)) - src.open =! src.open - user.show_message(text("You [] the service panel.", (src.open ? "open" : "close"))) - return - if(isMultitool(W) && (src.open == 1)&& (!src.l_hacking)) - user.show_message("Now attempting to reset internal memory, please hold.", 1) - src.l_hacking = 1 - if(do_after(usr, 100, src)) - if(prob(40)) - src.l_setshort = 1 - src.l_set = 0 - user.show_message("Internal memory reset. Please give it a few seconds to reinitialize.", 1) - sleep(80) - src.l_setshort = 0 - src.l_hacking = 0 - else - user.show_message("Unable to reset internal memory.", 1) - src.l_hacking = 0 - else src.l_hacking = 0 - return - //At this point you have exhausted all the special things to do when locked - // ... but it's still locked. - return - - // -> storage/attackby() what with handle insertion, etc - ..() - - -/obj/item/storage/secure/MouseDrop(over_object, src_location, over_location) - if(locked) - add_fingerprint(usr) - return - ..() - -/obj/item/storage/secure/AltClick(mob/usr) - if(locked) - add_fingerprint(usr) - return - ..() - -/obj/item/storage/secure/proc/show_lock_menu(mob/user) - if(user.incapacitated() || !user.Adjacent(src) || !user.client) - return - var/dat = text("\n\nLock Status: []", (locked ? "LOCKED" : "UNLOCKED")) - var/message = "Code" - if((l_set == 0) && (!emagged) && (!l_setshort)) - dat += text("

\n5-DIGIT PASSCODE NOT SET.
ENTER NEW PASSCODE.
") - if(emagged) - dat += text("

\nLOCKING SYSTEM ERROR - 1701") - if(l_setshort) - dat += text("

\nALERT: MEMORY SYSTEM ERROR - 6040 201") - message = text("[]", src.code) - if(!locked) - message = "*****" - dat += text("


\n>[]
\n
1-2-3
\n4-5-6
\n7-8-9
\nR-0-E
\n
", message, src, src, src, src, src, src, src, src, src, src, src, src) - - user.set_machine(src) - if(!lock_menu || lock_menu.user != user) - lock_menu = new /datum/browser(user, "mob[name]", "[src]", 300, 280) - lock_menu.set_content(dat) - else - lock_menu.set_content(dat) - lock_menu.update() - return - -/obj/item/storage/secure/attack_self(mob/user) - show_lock_menu(user) - if(lock_menu?.user == user) - lock_menu.open() - -/obj/item/storage/secure/Topic(href, href_list) - ..() - if((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1)) - return - if(href_list["type"]) - if(href_list["type"] == "E") - if(!l_set && length(code) == 5 && !l_setshort && code != "ERROR") - l_code = code - l_set = TRUE - else if(code == l_code && !emagged && l_set) - locked = FALSE - update_icon() - code = null - else - code = "ERROR" - else - if((href_list["type"] == "R") && !emagged && !l_setshort) - locked = TRUE - code = null - close(usr) - update_icon() - else - code += text("[]", href_list["type"]) - if(length(code) > 5) - code = "ERROR" - for(var/mob/M in viewers(1, src.loc)) - if((M.client && M.machine == src)) - show_lock_menu(M) - return - return - -/obj/item/storage/secure/emag_act(remaining_charges, mob/user, emag_source, visual_feedback = "", audible_feedback = "") - var/obj/item/melee/energy/WS = emag_source - if(WS.active) - on_hack_behavior(WS, user) - return TRUE - -/obj/item/storage/secure/proc/on_hack_behavior() - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, src.loc) - spark_system.start() - playsound(loc, 'sound/weapons/blade1.ogg', 50, 1) - playsound(loc, "spark", 50, 1) - if(!emagged) - emagged = TRUE - AddOverlays(image(icon, icon_sparking)) - sleep(6) - locked = FALSE - update_icon() - -// ----------------------------- -// Secure Briefcase -// ----------------------------- -/obj/item/storage/secure/briefcase - name = "secure briefcase" - icon_state = "secure" - item_state = "sec-case" - inspect_state = "secure-open" - desc = "A large briefcase with a digital locking system." - force = 8.0 - throw_range = 4 - w_class = ITEM_SIZE_HUGE - mod_weight = 1.5 - mod_reach = 0.75 - mod_handy = 1.0 - max_w_class = ITEM_SIZE_NORMAL - max_storage_space = DEFAULT_BACKPACK_STORAGE - -/obj/item/storage/secure/briefcase/attack_hand(mob/user) - if((src.loc == user) && (src.locked == 1)) - to_chat(usr, "[src] is locked and cannot be opened!") - else if((src.loc == user) && (!src.locked)) - src.open(usr) - else - ..() - for(var/mob/M in range(1)) - if(M.s_active == src) - src.close(M) - src.add_fingerprint(user) - return - -// ----------------------------- -// Secure Safe -// ----------------------------- - -/obj/item/storage/secure/safe - name = "secure safe" - icon_state = "safe" - icon_opened = "safe0" - icon_locking = "safeb" - icon_sparking = "safespark" - inspect_state = "safe-open" - force = 0 - w_class = ITEM_SIZE_NO_CONTAINER - max_w_class = ITEM_SIZE_HUGE - max_storage_space = 56 - anchored = 1.0 - density = 0 - cant_hold = list(/obj/item/storage/secure/briefcase) - -/obj/item/storage/secure/safe/New() - ..() - new /obj/item/paper(src) - new /obj/item/pen(src) - -/obj/item/storage/secure/safe/attack_hand(mob/user) - return attack_self(user) - -/obj/item/storage/secure/safe/HoS/New() - ..() - //new /obj/item/storage/lockbox/clusterbang(src) This item is currently broken... and probably shouldnt exist to begin with (even though it's cool) - -// ----------------------------- -// Detective's Guncase -// ----------------------------- - -/obj/item/storage/secure/guncase - name = "guncase" - desc = "A heavy-duty container with a digital locking system. Has a thick layer of foam inside." - icon_state = "guncase" - item_state = "guncase" - icon_opened = "guncase0" - inspect_state = FALSE - force = 8.0 - throw_range = 4 - w_class = ITEM_SIZE_LARGE - mod_weight = 1.4 - mod_reach = 0.7 - mod_handy = 1.0 - max_w_class = ITEM_SIZE_NORMAL - max_storage_space = DEFAULT_BACKPACK_STORAGE - - var/guntype = "" - var/gunspawned = 0 - -/obj/item/storage/secure/guncase/attack_hand(mob/user) - if((loc == user) && (locked == 1)) - to_chat(usr, SPAN("warning", "[src] is locked and cannot be opened!")) - else if((loc == user) && (!locked)) - open(usr) - else - ..() - for(var/mob/M in range(1)) - if(M.s_active == src) - close(M) - add_fingerprint(user) - return - -/obj/item/storage/secure/guncase/proc/spawn_set(set_name) - return - -/obj/item/storage/secure/guncase/detective - name = "detective's gun case" - icon_state = "guncasedet" - item_state = "guncasedet" - desc = "A heavy-duty container with a digital locking system. This one has a wooden coating and its locks are the color of brass." - guntype = "M1911" - -/obj/item/storage/secure/guncase/detective/show_lock_menu(mob/user) - if(user.incapacitated() || !user.Adjacent(src) || !user.client) - return - user.set_machine(src) - var/dat = text("\n\nLock Status: []", (locked ? "LOCKED" : "UNLOCKED")) - var/message = "Code" - - if((l_set == 0) && (!emagged) && (!l_setshort)) - dat += text("

\n5-DIGIT PASSCODE NOT SET.
ENTER NEW PASSCODE.
") - if(emagged) - dat += text("

\nLOCKING SYSTEM ERROR - 1701") - if(l_setshort) - dat += text("

\nALERT: MEMORY SYSTEM ERROR - 6040 201") - message = text("[]", src.code) - if(!locked) - message = "*****" - dat += text("


\n>[]
\n1-2-3
\n4-5-6
\n7-8-9
\nR-0-E
\n
", message, src, src, src, src, src, src, src, src, src, src, src, src) - - dat += text("


\nChosen Gun: []", guntype) - if(!gunspawned) - dat += text("

\n Be careful! Once you chose your weapon and unlock the gun case, you won't be able to change it.") - dat += text("


\nM1911", src) - dat += text("

\nS&W Legacy", src) - dat += text("

\nS&W 620", src) - dat += text("

\nM2019 Detective Special", src) - dat += text("

\nT9 Patrol", src) - dat += text("


") - if(guntype) - if(guntype == "M1911") - dat += text("

\n A cheap Martian knock-off of a Colt M1911. Uses .45 rounds. Extremely popular among space detectives nowadays.") - if(!gunspawned) - dat += text("

\n Comes with two .45 seven round magazines and two .45 rubber seven round magazines.") - else if(guntype == "S&W Legacy") - dat += text("

\n A cheap Martian knock-off of a Smith & Wesson Model 10. Uses .38-Special rounds. Used to be NanoTrasen's service weapon for detectives.") - if(!gunspawned) - dat += text("

\n Comes with two .38 six round speedloaders and two .38 rubber six round speedloaders.") - else if(guntype == "S&W 620") - dat += text("

\n A cheap Martian knock-off of a Smith & Wesson Model 620. Uses .38-Special rounds. Quite popular among professionals.") - if(!gunspawned) - dat += text("

\n Comes with two .38 six round speedloaders and two .38 rubber six round speedloaders.") - else if(guntype == "M2019") - dat += text("

\n Quite a controversial weapon. Combining both pros and cons of revolvers and railguns, it's extremely versatile, yet requires a lot of care.") - if(!gunspawned) - dat += text("

\n Comes with three .38 SPEC five round speedloaders, two .38 CHEM five round speedloaders, and two replaceable power cells.") - dat += text("

\n Brief instructions:

\n - M2019 Detective Special can be loaded with any type .38 rounds, yet works best with .38 CHEM and .38 SPEC.") - dat += text("

\n - With a powercell installed, M2019 can be used in two modes: non-lethal and lethal.") - dat += text("

\n - .38 SPEC no cell - works like a rubber bullet.

\n - .38 SPEC non-lethal - stuns the target.

\n - .38 SPEC lethal - accelerates the bullet, deals great damage and pierces medium armor.") - dat += text("

\n - .38 CHEM no cell - works like a flash bullet.

\n - .38 CHEM non-lethal - emmits a weak electromagnetic impulse.

\n - .38 CHEM lethal - not supposed to be used like this. The cartride reaches extremely high temperature and melts.") - else if(guntype == "T9 Patrol") - dat += text("

\n A relatively cheap and reliable knock-off of a Beretta M9. Uses 9mm rounds. Used to be a standart-issue gun in almost every security company.") - if(!gunspawned) - dat += text("

\n Comes with three ten round 9mm magazines and two 9mm flash ten round magazines.") - - if(!lock_menu || lock_menu.user != user) - lock_menu = new /datum/browser(user, "mob[name]", "[src]", 300, 280) - lock_menu.set_content(dat) - else - lock_menu.set_content(dat) - lock_menu.update() - return - -/obj/item/storage/secure/guncase/detective/Topic(href, href_list) - if((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1)) - return - if(href_list["type"]) - if (href_list["type"] == "m1911") - guntype = "M1911" - else if(href_list["type"] == "legacy") - guntype = "S&W Legacy" - else if(href_list["type"] == "saw620") - guntype = "S&W 620" - else if(href_list["type"] == "m2019") - guntype = "M2019" - else if(href_list["type"] == "det_m9") - guntype = "T9 Patrol" - else if(href_list["type"] == "E") - if((l_set == 0) && (length(code) == 5) && (!l_setshort) && (code != "ERROR")) - l_code = src.code - l_set = 1 - else if((code == l_code) && !emagged && (l_set == 1)) - locked = 0 - update_icon() - code = null - if(!gunspawned) - spawn_set(guntype) - else - code = "ERROR" - else - if((href_list["type"] == "R") && !emagged && (!l_setshort)) - locked = 1 - ClearOverlays() - code = null - close(usr) - else - code += text("[]", href_list["type"]) - if(length(code) > 5) - code = "ERROR" - for(var/mob/M in viewers(1, src.loc)) - if((M.client && M.machine == src)) - show_lock_menu(M) - return - return - -/obj/item/storage/secure/guncase/detective/spawn_set(set_name) - if(gunspawned) - return - switch(set_name) - if("M1911") - new /obj/item/gun/projectile/pistol/colt/detective(src) - new /obj/item/ammo_magazine/c45m/rubber(src) - new /obj/item/ammo_magazine/c45m/rubber(src) - new /obj/item/ammo_magazine/c45m/stun(src) - new /obj/item/ammo_magazine/c45m/stun(src) - new /obj/item/ammo_magazine/c45m(src) - new /obj/item/ammo_magazine/c45m(src) - if("S&W Legacy") - new /obj/item/gun/projectile/revolver/detective(src) - new /obj/item/ammo_magazine/c38/rubber(src) - new /obj/item/ammo_magazine/c38/rubber(src) - new /obj/item/ammo_magazine/c38(src) - new /obj/item/ammo_magazine/c38(src) - if("S&W 620") - new /obj/item/gun/projectile/revolver/detective/saw620(src) - new /obj/item/ammo_magazine/c38/rubber(src) - new /obj/item/ammo_magazine/c38/rubber(src) - new /obj/item/ammo_magazine/c38(src) - new /obj/item/ammo_magazine/c38(src) - if("M2019") - new /obj/item/gun/projectile/revolver/m2019/detective(src) - new /obj/item/ammo_magazine/c38/spec(src) - new /obj/item/ammo_magazine/c38/spec(src) - new /obj/item/ammo_magazine/c38/spec(src) - new /obj/item/ammo_magazine/c38/chem(src) - new /obj/item/ammo_magazine/c38/chem(src) - new /obj/item/cell/device/high(src) - if("T9 Patrol") - new /obj/item/gun/projectile/pistol/det_m9(src) - new /obj/item/ammo_magazine/mc9mm(src) - new /obj/item/ammo_magazine/mc9mm(src) - new /obj/item/ammo_magazine/mc9mm(src) - new /obj/item/ammo_magazine/mc9mm/flash(src) - new /obj/item/ammo_magazine/mc9mm/flash(src) - else - return - gunspawned = TRUE - - -/obj/item/storage/secure/guncase/security - name = "security hardcase" - icon_state = "guncasesec" - item_state = "guncase" - desc = "A heavy-duty container with an ID-based locking system. This one is painted in NT Security colors." - override_w_class = list(/obj/item/gun/energy/security) - max_storage_space = null - storage_slots = 7 - -/obj/item/storage/secure/guncase/security/attackby(obj/item/W, mob/user) - var/obj/item/card/id/I = W.get_id_card() - if(I) // For IDs and PDAs and wallets with IDs - if(!(access_security in I.GetAccess())) - to_chat(user, SPAN("warning", "Access denied!")) - return - if(!guntype) - to_chat(user, SPAN("warning", "\The [src] blinks red. You need to make a choice first.")) - return - if(!gunspawned) - spawn_set(guntype) - lock_menu.close(user) - for(var/thing in contents) - if(istype(thing, /obj/item/gun/energy/security)) - var/obj/item/gun/energy/security/gun = thing - gun.owner = I.registered_name - to_chat(user, SPAN("notice", "You [locked ? "un" : ""]lock \the [src].")) - locked = !locked - ClearOverlays() - update_icon() - return - return ..() - -/obj/item/storage/secure/guncase/security/attack_self(mob/user) - if(locked && !gunspawned) - return ..() - return attack_hand(user) - -/obj/item/storage/secure/guncase/security/spawn_set(set_name) - if(gunspawned) - return - var/obj/item/gun/energy/security/gun = null - switch(set_name) - if("Pistol") - gun = new /obj/item/gun/energy/security(src) - gun.subtype = decls_repository.get_decl(/decl/taser_types/pistol) - gun.update_subtype() - new /obj/item/shield/barrier(src) - if("SMG") - gun = new /obj/item/gun/energy/security(src) - gun.subtype = decls_repository.get_decl(/decl/taser_types/smg) - gun.update_subtype() - new /obj/item/shield/barrier(src) - if("Rifle") - gun = new /obj/item/gun/energy/security(src) - gun.subtype = decls_repository.get_decl(/decl/taser_types/rifle) - gun.update_subtype() - new /obj/item/shield/barrier(src) - if("Classic") - new /obj/item/gun/energy/classictaser(src) - if(prob(70)) - new /obj/item/reagent_containers/vessel/bottle/small/darkbeer(src) - else - new /obj/item/reagent_containers/vessel/bottle/whiskey(src) - else - return - new /obj/item/melee/baton/loaded(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) - new /obj/item/reagent_containers/food/donut/normal(src) - new /obj/item/reagent_containers/food/donut/normal(src) - gunspawned = TRUE - -/obj/item/storage/secure/guncase/security/show_lock_menu(mob/user) - if(user.incapacitated() || !user.Adjacent(src) || !user.client) - return - user.set_machine(src) - var/dat = text("It can be locked and unlocked by swiping your ID card across the lock.
") - - dat += text("


\nChosen Gun: []", "[guntype ? guntype : "none"]") - if(!gunspawned) - dat += text("

\n Be careful! Once you chose your weapon and unlock the gun case, you won't be able to change it.") - dat += text("


\nTaser Pistol", src) - dat += text("

\nTaser SMG", src) - dat += text("

\nTaser Rifle", src) - dat += text("

\nRusty Classic", src) - dat += text("


") - if(guntype) - switch(guntype) - if("Pistol") - dat += text("

\n A taser pistol. The smallest of all the tasers. It only has a single fire mode, but each shot wields power.") - dat += text("

\n Comes with a baton, a handheld barrier, a couple of handcuffs, and a pair of donuts.") - if("SMG") - dat += text("

\n A taser SMG. This model is not as powerful as pistols, but is capable of launching electrodes left and right with its remarkable rate of fire.") - dat += text("

\n Comes with a baton, a handheld barrier, a couple of handcuffs, and a pair of donuts.") - if("Rifle") - dat += text("

\n A taser rifle. Bulky and heavy, it must be wielded with both hands. Although its rate of fire is way below average, it is capable of shooting stun beams.") - dat += text("

\n Comes with a baton, a handheld barrier, a couple of handcuffs, and a pair of donuts.") - if("Classic") - dat += text("

\n A rusty-and-trusty taser. It's overall worse than the modern baseline tasers, but it still does its job. Useful for those who want to assert their robust dominance. Or, maybe, for old farts.") - dat += text("

\n Comes with a baton, a couple of handcuffs, a pair of donuts, and a drink to stay cool.") - - if(!lock_menu || lock_menu.user != user) - lock_menu = new /datum/browser(user, "mob[name]", "[src]", 300, 280) - lock_menu.set_content(dat) - else - lock_menu.set_content(dat) - lock_menu.update() - return - -/obj/item/storage/secure/guncase/security/Topic(href, href_list) - if((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1)) - return - if(href_list["type"]) - guntype = href_list["type"] - for(var/mob/M in viewers(1, loc)) - if((M.client && M.machine == src)) - show_lock_menu(M) - return - return - -/obj/item/storage/secure/guncase/security/hos - name = "high command security hardcase" - desc = "A heavy-duty container with an ID-based locking system. This one is painted in NT High Command Security colors." - icon_state = "guncasehos" - override_w_class = list(/obj/item/gun/projectile/lawgiver) - -/obj/item/storage/secure/guncase/security/hos/attackby(obj/item/W, mob/user) - var/obj/item/card/id/I = W.get_id_card() - if(I) // For IDs and PDAs and wallets with IDs - if(!(access_hos in I.GetAccess())) - to_chat(user, SPAN("warning", "Access denied!")) - return - if(!guntype) - to_chat(user, SPAN("warning", "\The [src] blinks red. You need to make a choice first.")) - return - if(!gunspawned) - spawn_set(guntype) - lock_menu.close(user) - to_chat(user, SPAN("notice", "You [locked ? "un" : ""]lock \the [src].")) - locked = !locked - ClearOverlays() - update_icon() - return - return ..() - -/obj/item/storage/secure/guncase/security/hos/spawn_set(set_name) - if(gunspawned) - return - switch(set_name) - if("lawgiver") - new /obj/item/gun/projectile/lawgiver(src) - new /obj/item/ammo_magazine/lawgiver(src) - if("Razor") - new /obj/item/gun/energy/rifle/cheap(src) - // Delete lawgiver steal contract, we can't get lawgiver legally. - GLOB.contracts_steal_items.Remove("the head of security's lawgiver gun") - for(var/datum/antag_contract/item/steal/C in GLOB.all_contracts) - if(C.target_type == /obj/item/gun/projectile/lawgiver) - C.remove() - else - return - gunspawned = TRUE - -/obj/item/storage/secure/guncase/security/hos/show_lock_menu(mob/user) - if(user.incapacitated() || !user.Adjacent(src) || !user.client) - return - user.set_machine(src) - var/dat = text("It can be locked and unlocked by swiping your ID card across the lock.
") - - dat += text("


\nChosen Gun: []", "[guntype ? guntype : "none"]") - if(!gunspawned) - dat += text("

\n Be careful! Once you chose your weapon and unlock the gun case, you won't be able to change it.") - dat += text("


\n\"Razor\" energy rifle", src) - dat += text("

\nLawgiver multitask pistol", src) - dat += text("


") - if(guntype) - switch(guntype) - // not cool type - if("Razor") - dat += text("

\n Hephaestus Industries G50SE \"Razor\", a cheaper version of G50XS \"Raijin\".") - dat += text("

\n It has lethal and stun settings.") - // cool type - if("lawgiver") - dat += text("

\n The Lawgiver II. A twenty-five round sidearm with mission-variable voice-programmed ammunition.") - dat += text("

\n You must use the words STUN, LASER, RAPID, FLASH and AP to change modes.") - - if(!lock_menu || lock_menu.user != user) - lock_menu = new /datum/browser(user, "mob[name]", "[src]", 300, 280) - lock_menu.set_content(dat) - else - lock_menu.set_content(dat) - lock_menu.update() - return - -/obj/item/storage/secure/guncase/security/hos/Topic(href, href_list) - if((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1)) - return - if(href_list["type"]) - guntype = href_list["type"] - for(var/mob/M in viewers(1, loc)) - if((M.client && M.machine == src)) - show_lock_menu(M) - return - return diff --git a/code/game/objects/items/storage/secure/_secure.dm b/code/game/objects/items/storage/secure/_secure.dm new file mode 100644 index 00000000000..adb56afbe47 --- /dev/null +++ b/code/game/objects/items/storage/secure/_secure.dm @@ -0,0 +1,204 @@ +/obj/item/storage/secure + name = "secstorage" + + w_class = ITEM_SIZE_NORMAL + max_w_class = ITEM_SIZE_SMALL + max_storage_space = DEFAULT_BOX_STORAGE + + var/icon_locking = "secureb" + var/icon_sparking = "securespark" + var/icon_opened = "secure0" + + /// Holds lock overlay of this storage. + var/image/lock_overlay + + var/locked = TRUE + /// The number currently sitting in the briefcase's panel. + var/numeric_input + /// The code that will open this safe, set by usually players. + /// Importantly, can be null if there's no password. + var/lock_code + + var/lock_setshort = FALSE + var/hacking = FALSE + var/emagged = FALSE + var/open = FALSE + +/obj/item/storage/secure/Destroy() + QDEL_NULL(lock_overlay) + return ..() + +/obj/item/storage/secure/on_update_icon() + CutOverlays(lock_overlay) + + if(being_inspected && istext(inspect_state)) + icon_state = inspect_state + return + + icon_state = base_icon_state ? base_icon_state : initial(icon_state) + if(emagged) + lock_overlay = image(icon, icon_locking) + else if(!locked) + lock_overlay = image(icon, icon_opened) + + AddOverlays(lock_overlay) + +/obj/item/storage/secure/examine(mob/user, infix) + . = ..() + . += "The service panel is [open ? "open" : "closed"]." + +/obj/item/storage/secure/attackby(obj/item/W, mob/user) + if(locked) + if(istype(W, /obj/item/melee/energy)) + emag_act(INFINITY, user, W, "You slice through the lock of \the [src]") + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() + spark_system.set_up(5, 0, loc) + spark_system.start() + playsound(loc, 'sound/weapons/blade1.ogg', 50, 1) + playsound(loc, SFX_SPARK, 50, 1) + return + + if(isScrewdriver(W)) + if(!do_after(user, 20, src)) + return + + if(QDELETED(src)) + return + + open = !open + show_splash_text(user, "service panel [open ? "opened" : "closed"]", "You [open ? "open" : "close"] \the [src] service panel.") + return + + if(isMultitool(W) && open && !hacking) + show_splash_text(user, "resetting internal memory...", "You begin resetting \the [src] internal memory...") + hacking = TRUE + if(!do_after(usr, 100, src)) + return + + if(QDELETED(src)) + return + + if(prob(40)) + lock_setshort = TRUE + show_splash_text(user, "internal memory reset!", SPAN("notice", "You reset \the [src] internal memory!")) + sleep(80) + lock_setshort = FALSE + hacking = FALSE + lock_code = null + else + show_splash_text(user, "unable to reset internal memory!", SPAN("warning", "You have failed to reset \the [src] internal memory!")) + hacking = FALSE + hacking = FALSE + + return + //At this point you have exhausted all the special things to do when locked + // ... but it's still locked. + return + + // -> storage/attackby() what with handle insertion, etc + return ..() + +/obj/item/storage/secure/MouseDrop(over_object, src_location, over_location) + if(locked) + add_fingerprint(usr) + return + + return ..() + +/obj/item/storage/secure/AltClick(mob/usr) + if(locked) + add_fingerprint(usr) + return + + return ..() + +/obj/item/storage/secure/attack_self(mob/user) + tgui_interact(user) + +/obj/item/storage/secure/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "LockedSafe", name) + ui.open() + +/obj/item/storage/secure/tgui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + + if(.) + return TRUE + + if(action != "keypad") + return + + if(emagged || lock_setshort) + return TRUE + + var/digit = params["digit"] + switch(digit) + if("C") // locking it back up + if(locked || isnull(lock_code)) + numeric_input = "" + return TRUE + + locked = TRUE + numeric_input = "" + close(usr) + update_icon() + return TRUE + + if("E") //inputting a new code if there isn't one set. + if(!lock_code) + if(length(numeric_input) != 5) + return TRUE + + lock_code = numeric_input + numeric_input = "" + return TRUE + + //unlocking the current code. + if(numeric_input != lock_code) + numeric_input = "" + return TRUE + + locked = FALSE + open(usr) + numeric_input = "" + update_icon() + return TRUE + + //putting digits in. + if("0", "1", "2", "3", "4", "5", "6", "7", "8", "9") + if(length(numeric_input) == 5) + return TRUE + + numeric_input += digit + return TRUE + +/obj/item/storage/secure/tgui_data(mob/user) + var/list/data = list( + "input_code" = numeric_input || "*****", + "locked" = locked, + "lock_code" = !!lock_code, + "emagged" = emagged, + "lock_setshort" = lock_setshort + ) + return data + +/obj/item/storage/secure/emag_act(remaining_charges, mob/user, emag_source, visual_feedback = "", audible_feedback = "") + var/obj/item/melee/energy/WS = emag_source + if(WS.active) + on_hack_behavior(WS, user) + return TRUE + +/obj/item/storage/secure/proc/on_hack_behavior() + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() + spark_system.set_up(5, 0, src.loc) + spark_system.start() + playsound(loc, 'sound/weapons/blade1.ogg', 50, 1) + playsound(loc, "spark", 50, 1) + if(!emagged) + emagged = TRUE + AddOverlays(image(icon, icon_sparking)) + sleep(6) + locked = FALSE + update_icon() diff --git a/code/game/objects/items/storage/secure/briefcase.dm b/code/game/objects/items/storage/secure/briefcase.dm new file mode 100644 index 00000000000..7a28faf0755 --- /dev/null +++ b/code/game/objects/items/storage/secure/briefcase.dm @@ -0,0 +1,29 @@ +/obj/item/storage/secure/briefcase + name = "secure briefcase" + icon_state = "secure" + item_state = "sec-case" + inspect_state = "secure-open" + desc = "A large briefcase with a digital locking system." + force = 8.0 + throw_range = 4 + w_class = ITEM_SIZE_HUGE + mod_weight = 1.5 + mod_reach = 0.75 + mod_handy = 1.0 + max_w_class = ITEM_SIZE_NORMAL + max_storage_space = DEFAULT_BACKPACK_STORAGE + +/obj/item/storage/secure/briefcase/attack_hand(mob/user) + if(loc == user && locked) + show_splash_text(user, "locked!", SPAN("warning", "\The [src] is locked!")) + + else if(loc == user && !locked) + open(user) + + else + ..() + for(var/mob/M in range(1)) + if(M.s_active == src) + close(M) + + add_fingerprint(user) diff --git a/code/game/objects/items/storage/secure/guncases.dm b/code/game/objects/items/storage/secure/guncases.dm new file mode 100644 index 00000000000..4e5b1ebe14f --- /dev/null +++ b/code/game/objects/items/storage/secure/guncases.dm @@ -0,0 +1,285 @@ +/obj/item/storage/secure/guncase + name = "guncase" + desc = "A heavy-duty container with a digital locking system. Has a thick layer of foam inside." + icon_state = "guncase" + item_state = "guncase" + icon_opened = "guncase0" + inspect_state = FALSE + force = 8.0 + throw_range = 4 + w_class = ITEM_SIZE_LARGE + mod_weight = 1.4 + mod_reach = 0.7 + mod_handy = 1.0 + max_w_class = ITEM_SIZE_NORMAL + max_storage_space = DEFAULT_BACKPACK_STORAGE + + var/guntype = null + var/gunspawned = FALSE + + /// An associative list of possible guns. 'gun name' = 'gun description' + var/list/possible_guns = list() + + /// An associative list of gun - contents. + var/list/gun_spawn = list() + +/obj/item/storage/secure/guncase/attack_hand(mob/user) + if(loc == user && locked == 1) + show_splash_text(user, "locked!", SPAN("warning", "\The [src] is locked!")) + + else if(loc == user && !locked) + open(usr) + + else + ..() + for(var/mob/M in range(1)) + if(M.s_active == src) + close(M) + + add_fingerprint(user) + +/obj/item/storage/secure/guncase/open(mob/user) + tgui_update() + return ..() + +/obj/item/storage/secure/guncase/close(mob/user) + tgui_update() + return ..() + +/obj/item/storage/secure/guncase/attack_self(mob/user) + return tgui_interact(user) + +/obj/item/storage/secure/guncase/proc/spawn_set(set_name) + if(gunspawned) + return + + if(!length(gun_spawn[set_name])) + return + + for(var/path in gun_spawn[set_name]) + new path (src) + + gunspawned = TRUE + +/obj/item/storage/secure/guncase/tgui_data(mob/user) + var/list/data = list( + "chosenGun" = guntype, + "gunSpawned" = gunspawned, + "possibleGuns", + ) + + for(var/gun_name in possible_guns) + var/list/gun_data = list( + "gunName" = gun_name, + "gunDesc" = possible_guns[gun_name] + ) + data["possibleGuns"] += list(gun_data) + + if(!isnull(guntype)) + data["chosenGunDesc"] = possible_guns[guntype] + + data += ..() + + return data + +/obj/item/storage/secure/guncase/tgui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + + if(.) + return TRUE + + if(action != "chooseGun") + return + + switch(action) + if("chooseGun") + guntype = params["gunName"] + return TRUE + +/obj/item/storage/secure/guncase/detective + name = "detective's gun case" + icon_state = "guncasedet" + item_state = "guncasedet" + desc = "A heavy-duty container with a digital locking system. This one has a wooden coating and its locks are the color of brass." + guntype = "M1911" + + possible_guns = list( + "M1911" = "A cheap Martian knock-off of a Colt M1911. Uses .45 rounds. Extremely popular among space detectives nowadays. Comes with two .45 seven round magazines and two .45 rubber seven round magazines.", + "S&W Legacy" = "A cheap Martian knock-off of a Smith & Wesson Model 10. Uses .38-Special rounds. Used to be NanoTrasen's service weapon for detectives. Comes with two .38 six round speedloaders and two .38 rubber six round speedloaders.", + "S&W 620" = "A cheap Martian knock-off of a Smith & Wesson Model 620. Uses .38-Special rounds. Quite popular among professionals.Comes with two .38 six round speedloaders and two .38 rubber six round speedloaders.", + "M2019" = "Quite a controversial weapon. Combining both pros and cons of revolvers and railguns, it's extremely versatile, yet requires a lot of care. Comes with three .38 SPEC five round speedloaders, two .38 CHEM five round speedloaders, and two replaceable power cells.", + "T9 Patrol" = "A relatively cheap and reliable knock-off of a Beretta M9. Uses 9mm rounds. Used to be a standart-issue gun in almost every security company. Comes with three ten round 9mm magazines and two 9mm flash ten round magazines." + ) + + gun_spawn = list( + "M1911" = list( + /obj/item/gun/projectile/pistol/colt/detective, + /obj/item/ammo_magazine/c45m/rubber, + /obj/item/ammo_magazine/c45m/rubber, + /obj/item/ammo_magazine/c45m/stun, + /obj/item/ammo_magazine/c45m/stun, + /obj/item/ammo_magazine/c45m, + /obj/item/ammo_magazine/c45m + ), + "S&W Legacy" = list( + /obj/item/gun/projectile/revolver/detective, + /obj/item/ammo_magazine/c38/rubber, + /obj/item/ammo_magazine/c38/rubber, + /obj/item/ammo_magazine/c38, + /obj/item/ammo_magazine/c38 + ), + "S&W 620" = list( + /obj/item/gun/projectile/revolver/detective/saw620, + /obj/item/ammo_magazine/c38/rubber, + /obj/item/ammo_magazine/c38/rubber, + /obj/item/ammo_magazine/c38, + /obj/item/ammo_magazine/c38 + ), + "M2019" = list( + /obj/item/gun/projectile/revolver/m2019/detective, + /obj/item/ammo_magazine/c38/spec, + /obj/item/ammo_magazine/c38/spec, + /obj/item/ammo_magazine/c38/spec, + /obj/item/ammo_magazine/c38/chem, + /obj/item/ammo_magazine/c38/chem, + /obj/item/cell/device/high + ), + "T9 Patrol" = list( + /obj/item/gun/projectile/pistol/det_m9, + /obj/item/ammo_magazine/mc9mm, + /obj/item/ammo_magazine/mc9mm, + /obj/item/ammo_magazine/mc9mm, + /obj/item/ammo_magazine/mc9mm/flash, + /obj/item/ammo_magazine/mc9mm/flash + ) + ) + +/obj/item/storage/secure/guncase/detective/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "DetectiveGuncase", name) + ui.open() + +/obj/item/storage/secure/guncase/detective/open(mob/user) + if(!guntype) + show_splash_text(user, "no gun selected!", SPAN("warning", "You must select a gun first!")) + return + + if(!gunspawned) + tgui_update() + spawn_set(guntype) + + return ..() + +/obj/item/storage/secure/guncase/security + name = "security hardcase" + icon_state = "guncasesec" + item_state = "guncase" + desc = "A heavy-duty container with an ID-based locking system. This one is painted in NT Security colors." + override_w_class = list(/obj/item/gun/energy/security) + max_storage_space = null + storage_slots = 7 + + possible_guns = list( + "Pistol" = "A taser pistol. The smallest of all the tasers. It only has a single fire mode, but each shot wields power. Comes with a baton, a handheld barrier, a couple of handcuffs, and a pair of donuts.", + "SMG" = "A taser SMG. This model is not as powerful as pistols, but is capable of launching electrodes left and right with its remarkable rate of fire. Comes with a baton, a handheld barrier, a couple of handcuffs, and a pair of donuts.", + "Rifle" = "A taser rifle. Bulky and heavy, it must be wielded with both hands. Although its rate of fire is way below average, it is capable of shooting stun beams. Comes with a baton, a handheld barrier, a couple of handcuffs, and a pair of donuts.", + "Classic" = "A rusty-and-trusty taser. It's overall worse than the modern baseline tasers, but it still does its job. Useful for those who want to assert their robust dominance. Or, maybe, for old farts. Comes with a baton, a couple of handcuffs, a pair of donuts, and a drink to stay cool." + ) + + gun_spawn = list( + "Pistol" = list( + /obj/item/gun/energy/security/pistol, + /obj/item/shield/barrier + ), + "SMG" = list( + /obj/item/gun/energy/security/smg, + /obj/item/shield/barrier + ), + "Rifle" = list( + /obj/item/gun/energy/security/rifle, + /obj/item/shield/barrier + ), + "Classic" = list( + /obj/item/gun/energy/classictaser + ) + ) + + req_access = list(access_security ) + +/obj/item/storage/secure/guncase/security/attackby(obj/item/W, mob/user) + var/obj/item/card/id/I = W.get_id_card() + if(istype(I)) + if(!allowed(user)) + show_splash_text(user, "access denied!", SPAN("warning", "\icon[src] Access Denied!")) + return + + if(!guntype) + show_splash_text(user, "no gun selected!", SPAN("warning", "You must select a gun first!")) + return + + if(!gunspawned) + tgui_update() + spawn_set(guntype) + for(var/obj/item/gun/energy/security/gun in contents) + gun.owner = I.registered_name + + show_splash_text(user, "[locked ? "un" : ""]locked", SPAN("notice", "You [locked ? "un" : ""]lock \the [src].")) + locked = !locked + update_icon() + return + + else return ..() + +/obj/item/storage/secure/guncase/security/spawn_set(set_name) + new /obj/item/melee/baton/loaded(src) + new /obj/item/handcuffs(src) + new /obj/item/handcuffs(src) + new /obj/item/reagent_containers/food/donut/normal(src) + new /obj/item/reagent_containers/food/donut/normal(src) + + if(set_name == "Classic") + if(prob(70)) + new /obj/item/reagent_containers/vessel/bottle/small/darkbeer(src) + else + new /obj/item/reagent_containers/vessel/bottle/whiskey(src) + + ..() + +/obj/item/storage/secure/guncase/security/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Guncase", name) + ui.open() + +/obj/item/storage/secure/guncase/security/hos + name = "high command security hardcase" + desc = "A heavy-duty container with an ID-based locking system. This one is painted in NT High Command Security colors." + icon_state = "guncasehos" + override_w_class = list(/obj/item/gun/projectile/lawgiver) + + possible_guns = list( + "Razor" = "Hephaestus Industries G50SE \"Razor\", a cheaper version of G50XS \"Raijin\". It has lethal and stun settings.", + "Lawgiver" = "The Lawgiver II. A twenty-five round sidearm with mission-variable voice-programmed ammunition. You must use the words STUN, LASER, RAPID, FLASH and AP to change modes." + ) + + gun_spawn = list( + "Lawgiver" = list( + /obj/item/gun/projectile/lawgiver, + /obj/item/ammo_magazine/lawgiver + ), + "Razor" = list( + /obj/item/gun/energy/rifle/cheap + ) + ) + + req_access = list(access_hos) + +/obj/item/storage/secure/guncase/security/hos/spawn_set(set_name) + if(set_name != "Lawgiver") // Delete lawgiver steal contract, we can't get lawgiver legally. + GLOB.contracts_steal_items.Remove("the head of security's lawgiver gun") + for(var/datum/antag_contract/item/steal/C in GLOB.all_contracts) + if(C.target_type == /obj/item/gun/projectile/lawgiver) + C.remove() + + ..() diff --git a/code/game/objects/items/storage/secure/safe.dm b/code/game/objects/items/storage/secure/safe.dm new file mode 100644 index 00000000000..4cd0731d7c3 --- /dev/null +++ b/code/game/objects/items/storage/secure/safe.dm @@ -0,0 +1,22 @@ +/obj/item/storage/secure/safe + name = "secure safe" + icon_state = "safe" + icon_opened = "safe0" + icon_locking = "safeb" + icon_sparking = "safespark" + inspect_state = "safe-open" + force = 0 + w_class = ITEM_SIZE_NO_CONTAINER + max_w_class = ITEM_SIZE_HUGE + max_storage_space = 56 + anchored = 1.0 + density = 0 + cant_hold = list(/obj/item/storage/secure/briefcase) + +/obj/item/storage/secure/safe/Initialize() + . = ..() + new /obj/item/paper(src) + new /obj/item/pen(src) + +/obj/item/storage/secure/safe/attack_hand(mob/user) + return attack_self(user) diff --git a/code/game/objects/items/storage/storage_ui/default.dm b/code/game/objects/items/storage/storage_ui/default.dm index f90031291f5..234550bbc94 100644 --- a/code/game/objects/items/storage/storage_ui/default.dm +++ b/code/game/objects/items/storage/storage_ui/default.dm @@ -192,9 +192,12 @@ //This proc determins the size of the inventory to be displayed. Please touch it only if you know what you're doing. /datum/storage_ui/default/proc/slot_orient_objs() + click_border_start.Cut() + click_border_end.Cut() + var/adjusted_contents = storage.contents.len var/row_num = 0 - var/col_count = min(7,storage.storage_slots) -1 + var/col_count = min(7, storage.storage_slots) - 1 if (adjusted_contents > 7) row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. arrange_item_slots(row_num, col_count) @@ -209,12 +212,15 @@ O.screen_loc = "[cx]:16,[cy]:16" O.maptext = "" O.hud_layerise() + click_border_start += (cx - 4) * 32 + click_border_end += (cx - 4) * 32 + 32 + cx++ if (cx > (4+cols)) cx = 4 cy-- - closer.screen_loc = "[4+cols+1]:16,2:16" + closer.screen_loc = "[4 + cols + 1]:16,2:16" /datum/storage_ui/default/proc/space_orient_objs() @@ -223,6 +229,8 @@ var/stored_cap_width = 4 //length of sprite for start and end of the box representing the stored item var/storage_width = min( round( 224 * storage.max_storage_space/baseline_max_storage_space ,1) ,284) //length of sprite for the box representing total storage space + click_border_start.Cut() + click_border_end.Cut() storage_start.ClearOverlays() storage_continue.SetTransform(scale_x = (storage_width - storage_cap_width * 2 + 3) / 32) @@ -238,6 +246,9 @@ startpoint = endpoint + 1 endpoint += storage_width * O.get_storage_cost()/storage.max_storage_space + click_border_start.Add(startpoint) + click_border_end.Add(endpoint) + stored_start.SetTransform(offset_x = startpoint) stored_end.SetTransform(offset_x = endpoint - stored_cap_width) stored_continue.SetTransform( diff --git a/code/game/objects/items/storage/storage_ui/storage_ui.dm b/code/game/objects/items/storage/storage_ui/storage_ui.dm index 5a39a34a196..1cafeb98dbb 100644 --- a/code/game/objects/items/storage/storage_ui/storage_ui.dm +++ b/code/game/objects/items/storage/storage_ui/storage_ui.dm @@ -1,5 +1,8 @@ /datum/storage_ui var/obj/item/storage/storage + var/list/click_border_start = list() + var/list/click_border_end = list() + /datum/storage_ui/New(storage) src.storage = storage diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm index b9f4ca840f9..f939587b07d 100644 --- a/code/game/objects/items/storage/wallets.dm +++ b/code/game/objects/items/storage/wallets.dm @@ -125,7 +125,7 @@ if(usr.incapacitated()) return - var/new_color = input(usr, "Pick a new color", "Wallet Color", color) as color|null + var/new_color = tgui_color_picker(usr, "Pick a new color", "Wallet Color", color) if(!new_color || new_color == color || usr.incapacitated()) return color = new_color diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index 4a8dc7c2d33..a8a6091962d 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -27,10 +27,11 @@ QDEL_NULL(ion_trail) return ..() -/obj/item/tank/jetpack/_examine_text(mob/living/user) +/obj/item/tank/jetpack/examine(mob/user, infix) . = ..() + if(air_contents.total_moles < 5) - . += "\nThe meter on \the [src] indicates you are almost out of gas!" + . += SPAN_DANGER("The meter on \the [src] indicates you are almost out of gas!") /obj/item/tank/jetpack/verb/toggle_rockets() set name = "Toggle Jetpack Stabilization" @@ -105,10 +106,9 @@ name = "jetpack" var/obj/item/rig/holder -/obj/item/tank/jetpack/rig/_examine_text(mob/user) +/obj/item/tank/jetpack/rig/examine(mob/user, infix) . = ..() - . += "\nIt's a jetpack. If you can see this, report it on the bug tracker." - return 0 + . += "It's a jetpack. If you can see this, report it on the bug tracker." /obj/item/tank/jetpack/rig/allow_thrust(num, mob/living/user as mob) diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index 62099541bef..9e09d0668c6 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -83,36 +83,38 @@ var/list/global/tank_gauge_cache = list() . = ..() -/obj/item/tank/_examine_text(mob/user) +/obj/item/tank/examine(mob/user, infix) . = ..() - if(get_dist(src, user) <= 0) - var/descriptive - if(air_contents.total_moles == 0) - descriptive = "empty" - else - var/celsius_temperature = CONV_KELVIN_CELSIUS(air_contents.temperature) - switch(celsius_temperature) - if(300 to INFINITY) - descriptive = "furiously hot" - if(100 to 300) - descriptive = "hot" - if(80 to 100) - descriptive = "warm" - if(40 to 80) - descriptive = "lukewarm" - if(20 to 40) - descriptive = "room temperature" - if(-20 to 20) - descriptive = "cold" - else - descriptive = "bitterly cold" - . += "\n\The [src] feels [descriptive]." + + if(get_dist(src, user) > 0) + return + + var/descriptive + if(air_contents.total_moles == 0) + descriptive = "empty" + else + var/celsius_temperature = CONV_KELVIN_CELSIUS(air_contents.temperature) + switch(celsius_temperature) + if(300 to INFINITY) + descriptive = "furiously hot" + if(100 to 300) + descriptive = "hot" + if(80 to 100) + descriptive = "warm" + if(40 to 80) + descriptive = "lukewarm" + if(20 to 40) + descriptive = "room temperature" + if(-20 to 20) + descriptive = "cold" + else + descriptive = "bitterly cold" + . += SPAN_NOTICE("\The [src] feels [descriptive].") if(proxyassembly.assembly || wired) - . += "\nIt seems to have [wired? "some wires ": ""][wired && proxyassembly.assembly? "and ":""][proxyassembly.assembly ? "some sort of assembly ":""]attached to it." + . += SPAN_WARNING("It seems to have [wired? "some wires ": ""][wired && proxyassembly.assembly? "and ":""][proxyassembly.assembly ? "some sort of assembly ":""]attached to it.") if(valve_welded) - . += "\n\The [src] emergency relief valve has been welded shut!" - + . += SPAN_WARNING("\The [src] emergency relief valve has been welded shut!") /obj/item/tank/attackby(obj/item/W as obj, mob/user as mob) ..() @@ -185,37 +187,41 @@ var/list/global/tank_gauge_cache = list() if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(WT.remove_fuel(1,user)) - if(!valve_welded) - to_chat(user, "You begin welding the \the [src] emergency pressure relief valve.") - if(do_after(user, 40,src)) - to_chat(user, "You carefully weld \the [src] emergency pressure relief valve shut. \The [src] may now rupture under pressure!") - valve_welded = 1 - leaking = 0 - else - GLOB.bombers += "[key_name(user)] attempted to weld a [src]. [CONV_KELVIN_CELSIUS(air_contents.temperature)]" - message_admins("[key_name_admin(user)] attempted to weld a [src]. [CONV_KELVIN_CELSIUS(air_contents.temperature)]") - if(WT.welding) - to_chat(user, "You accidentally rake \the [W] across \the [src]!") - maxintegrity -= rand(2,6) - integrity = min(integrity,maxintegrity) - WT.eyecheck(user) - else - to_chat(user, "The emergency pressure relief valve has already been welded.") - if (src.air_contents) - var/const/welder_temperature = 1893.15 - var/const/welder_mean_energy = 26000 - var/const/welder_heat_capacity = welder_mean_energy / welder_temperature + if(valve_welded) + to_chat(user, SPAN_NOTICE("The emergency pressure relief valve has already been welded.")) + + to_chat(user, SPAN_NOTICE("You begin welding the \the [src] emergency pressure relief valve.")) + + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) + GLOB.bombers += "[key_name(user)] attempted to weld a [src]. [CONV_KELVIN_CELSIUS(air_contents.temperature)]" + message_admins("[key_name_admin(user)] attempted to weld a [src]. [CONV_KELVIN_CELSIUS(air_contents.temperature)]") + if(WT.welding) + to_chat(user, SPAN_DANGER("You accidentally rake \the [W] across \the [src]!")) + maxintegrity -= rand(2,6) + integrity = min(integrity,maxintegrity) + + if(QDELETED(src) || !user) + return + + to_chat(user, SPAN_NOTICE("You carefully weld \the [src] emergency pressure relief valve shut.")) + to_chat(user, SPAN_WARNING("\The [src] may now rupture under pressure!")) + valve_welded = 1 + leaking = 0 + + if(air_contents) + var/const/welder_temperature = 1893.15 + var/const/welder_mean_energy = 26000 + var/const/welder_heat_capacity = welder_mean_energy / welder_temperature - var/current_energy = src.air_contents.heat_capacity() * src.air_contents.temperature - var/total_capacity = src.air_contents.heat_capacity() + welder_heat_capacity - var/total_energy = current_energy + welder_mean_energy + var/current_energy = src.air_contents.heat_capacity() * src.air_contents.temperature + var/total_capacity = src.air_contents.heat_capacity() + welder_heat_capacity + var/total_energy = current_energy + welder_mean_energy - var/new_temperature = total_energy / total_capacity + var/new_temperature = total_energy / total_capacity - src.air_contents.temperature = new_temperature - set_next_think(world.time) + src.air_contents.temperature = new_temperature + set_next_think(world.time) add_fingerprint(user) diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index 824bebee047..8332439f364 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -84,6 +84,7 @@ name = "maintenance jack" desc = "A special crowbar that can be used to safely remove airlock braces from airlocks." icon_state = "maintenance_jack" + item_state = "maintenance_jack" force = 13 mod_weight = 1.25 armor_penetration = 30 // A poor man's lucerne diff --git a/code/game/objects/items/tools/surgery.dm b/code/game/objects/items/tools/surgery.dm index 627c176a1d5..3b329116afd 100644 --- a/code/game/objects/items/tools/surgery.dm +++ b/code/game/objects/items/tools/surgery.dm @@ -244,17 +244,18 @@ if(CHANISAW_WELDING_CASE) if(!isWelder(W)) return ..() - var/obj/item/weldingtool/weldtool = W - if(weldtool.remove_fuel(5, user)) - playsound(user, 'sound/effects/flare.ogg', 50, 5, 7) - visible_message(SPAN("notice", "[usr] welded a case of \the [src]!")) - var/inhandy = (loc == user) && ishuman(user) - var/obj/item/material/twohanded/chainsaw/C = new /obj/item/material/twohanded/chainsaw(user.loc) - if(inhandy) - user.drop(src) - user.put_in_hands(C) - C.add_fingerprint(user) - qdel(src) + var/obj/item/weldingtool/WT = W + if(!WT.use_tool(src, user, amount = 5)) + return + + visible_message(SPAN("notice", "[usr] welded a case of \the [src]!")) + var/inhandy = (loc == user) && ishuman(user) + var/obj/item/material/twohanded/chainsaw/C = new /obj/item/material/twohanded/chainsaw(user.loc) + if(inhandy) + user.drop(src) + user.put_in_hands(C) + C.add_fingerprint(user) + qdel(src) ..() @@ -399,14 +400,17 @@ else ..() -/obj/item/organfixer/_examine_text(mob/user) +/obj/item/organfixer/examine(mob/user, infix) . = ..() - if(. && user.Adjacent(src)) - if(gel_amt_max > 0) - if(gel_amt == 0) - to_chat(user, "It's empty.") - else - to_chat(user, "It has [gel_amt] doses of gel left.") + + if(!user.Adjacent(src)) + return + + if(gel_amt_max > 0) + if(gel_amt == 0) + . += "It's empty." + else + . += "It has [gel_amt] doses of gel left." /obj/item/organfixer/emag_act(remaining_charges, mob/user) if(emagged) diff --git a/code/game/objects/items/tools/tools.dm b/code/game/objects/items/tools/tools.dm new file mode 100644 index 00000000000..3e1cbdd7495 --- /dev/null +++ b/code/game/objects/items/tools/tools.dm @@ -0,0 +1,58 @@ +/obj/item/proc/use_tool(atom/target, mob/living/user, delay = 0, amount = 0, volume = 0, quality = null, can_move = FALSE, datum/callback/extra_checks) + // No delay means there is no start message, and no reason to call tool_start_check before use_tool. + // Run the start check here so we wouldn't have to call it manually. + if(!tool_use_check(amount)) + return + + delay *= toolspeed + + // Play tool sound at the beginning of tool usage. + play_tool_sound(target, volume) + + if(delay) + var/datum/callback/tool_check = CALLBACK(src, nameof(.proc/tool_check_callback), user, amount, extra_checks, target) + if(ismob(target)) + if(!do_mob(user, target, delay, extra_checks = tool_check) || !is_tool_on()) + return + + else + if(!do_after(user, delay, target=target, can_move = can_move, extra_checks = tool_check) || !is_tool_on()) + return + + // Use tool's fuel, stack sheets or charges if amount is set. + if(amount && !use_tool_resources(amount, user)) + return + + // Play tool sound at the end of tool usage, + // but only if the delay between the beginning and the end is not too small + if(delay >= MIN_TOOL_SOUND_DELAY) + play_tool_sound(target, volume) + + return TRUE + +/// Plays tools's usesound. +/obj/item/proc/play_tool_sound(atom/target, volume = null) + if(target && tool_sound && volume) + var/played_sound = tool_sound + + if(islist(tool_sound)) + played_sound = pick(tool_sound) + + playsound(target, played_sound, 100, volume) + +/// Depending on the item checks whether it has enough resources (e.g. fuel) +/obj/item/proc/tool_use_check(used, mob/M = null) + return TRUE + +/// Depending on the item, it uses up fuel, charges, sheets, etc. +/obj/item/proc/use_tool_resources(used, mob/M = null) + return !used + +/// Returns whether or not the tool is currently on. +/obj/item/proc/is_tool_on() + return + +/// Callback to check during doafter. Do not override. Do not call it. +/obj/item/proc/tool_check_callback(mob/living/user, amount, datum/callback/extra_checks, target) + SHOULD_NOT_OVERRIDE(TRUE) + return tool_use_check(user, amount, target) && (!extra_checks || extra_checks.Invoke()) diff --git a/code/game/objects/items/tools/welding.dm b/code/game/objects/items/tools/welding.dm index 21115e6c71b..15b01c839c2 100644 --- a/code/game/objects/items/tools/welding.dm +++ b/code/game/objects/items/tools/welding.dm @@ -32,7 +32,10 @@ origin_tech = list(TECH_ENGINEERING = 1) //Welding tool specific stuff - var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) + /// Whether or not the welding tool is off(FALSE) or on (TRUE) + var/welding = FALSE + /// Whether or not the welding tool is currently welding + VAR_PRIVATE/currently_welding = FALSE var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) var/obj/item/welder_tank/tank = /obj/item/welder_tank // where the fuel is stored @@ -40,6 +43,10 @@ drop_sound = SFX_DROP_WELDINGTOOL pickup_sound = SFX_PICKUP_WELDINGTOOL + tool_sound = SFX_WELDING + var/toggle_on_sound = SFX_WELDER_ACTIVATE + var/toggle_off_sound = SFX_WELDER_DEACTIVATE + /obj/item/weldingtool/Initialize() if(ispath(tank)) tank = new tank @@ -53,13 +60,14 @@ return ..() -/obj/item/weldingtool/_examine_text(mob/user) +/obj/item/weldingtool/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 0) if(tank) - . += "\n\icon[tank] \The [tank] contains [get_fuel()]/[tank.max_fuel] units of fuel!" + . += "\icon[tank] \The [tank] contains [get_fuel()]/[tank.max_fuel] units of fuel!" else - . += "\nThere is no tank attached." + . += "There is no tank attached." /obj/item/weldingtool/attack(mob/living/M, mob/living/user, target_zone) if(ishuman(M)) @@ -189,16 +197,15 @@ /obj/item/weldingtool/proc/get_fuel() return tank ? tank.reagents.get_reagent_amount(/datum/reagent/fuel) : 0 - //Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use() -/obj/item/weldingtool/proc/remove_fuel(amount = 1, mob/M = null) +/obj/item/weldingtool/proc/remove_fuel(amount = 1, mob/M) if(!welding) return 0 if(get_fuel() >= amount) burn_fuel(amount) - if(M) + if(ismob(M)) eyecheck(M) - playsound(M.loc, 'sound/items/Welder.ogg', 20, 1) + playsound(get_turf(M), 'sound/items/Welder.ogg', 20, 1) return 1 else if(M) @@ -229,11 +236,11 @@ location.hotspot_expose(700, 5) //Returns whether or not the welding tool is currently on. -/obj/item/weldingtool/proc/isOn() - return src.welding +/obj/item/weldingtool/is_tool_on() + return welding /obj/item/weldingtool/get_storage_cost() - if(isOn()) + if(is_tool_on()) return ITEM_SIZE_NO_CONTAINER return ..() @@ -270,6 +277,8 @@ to_chat(M, "You switch the [src] on.") else if(T) T.visible_message("\The [src] turns on.") + + playsound(get_turf(src), GET_SFX(toggle_on_sound), 100, TRUE) force = 15 damtype = "fire" hitsound = 'sound/effects/flare.ogg' // Surprisingly it sounds just perfect @@ -288,6 +297,7 @@ to_chat(M, "You switch \the [src] off.") else if(T) T.visible_message("\The [src] turns off.") + playsound(get_turf(src), GET_SFX(toggle_off_sound), 100, TRUE) force = 3 damtype = "brute" hitsound = initial(hitsound) @@ -336,8 +346,69 @@ spawn(100) H.disabilities &= ~NEARSIGHTED +/obj/item/weldingtool/use_tool(atom/target, mob/living/user, delay = 0, amount = 0, volume = 0, can_move = FALSE, datum/callback/extra_checks) + if(!is_tool_on()) + show_splash_text(user, "Welder must be turned on!", "\The [src] must be turned on!") + return + + if(amount > get_fuel()) + show_splash_text(user, "Not enough fuel!", "\icon[src] Not enough fuel!") + return + + eyecheck(user) + playsound(loc, 'sound/items/Welder.ogg', 100, 1) + var/atom/movable/fake_overlay/welding_overlay/effect = new(get_turf(target)) + var/datum/callback/checks = CALLBACK(src, nameof(.proc/check_active_and_extra), extra_checks) + INVOKE_ASYNC(src, nameof(.proc/start_welding), target) + . = ..(target, user, delay, amount, volume, extra_checks = checks) + stop_welding() + qdel(effect) + +/obj/item/weldingtool/use_tool_resources(amount, mob) + . = remove_fuel(amount, mob) + if(!.) + show_splash_text(mob, "Not enough fuel!", "\icon[src] Not enough fuel!") + +/obj/item/weldingtool/proc/start_welding(atom/target) // Process of welding something + var/datum/effect/effect/system/spark_spread/spark = new /datum/effect/effect/system/spark_spread(volume = 10) + spark.set_up(1, 1, target) + currently_welding = TRUE + while(currently_welding) + sleep(10) + spark.start() + +/obj/item/weldingtool/proc/check_active_and_extra(datum/callback/extra_checks) + if(!is_tool_on() || !get_fuel()) + return FALSE + + if(!extra_checks) + return TRUE + + return extra_checks.Invoke() + +/obj/item/weldingtool/proc/stop_welding() + currently_welding = FALSE + +/atom/movable/fake_overlay/welding_overlay + density = FALSE + anchored = TRUE + layer = ABOVE_PROJECTILE_LAYER + plane = DEFAULT_PLANE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + + icon = 'icons/effects/effects.dmi' + icon_state = "welding_sparks" + +/atom/movable/fake_overlay/welding_overlay/Initialize(mapload) + . = ..() + set_light(0.6, 0.5, 1.5, 2, "#e38f46") + AddOverlays(emissive_appearance(icon, "[icon_state]-ea")) + +/obj/item/weldingtool/tool_use_check(mob/living/user, amount) + return get_fuel() >= amount + /obj/item/weldingtool/get_temperature_as_from_ignitor() - if(isOn()) + if(is_tool_on()) return 3800 return 0 diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 8aa8894d8f7..623f7f8c471 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -146,7 +146,7 @@ desc = "Blink. Blink. Blink. Ages 8 and up." icon = 'icons/obj/device.dmi' icon_state = "beacon" - item_state = "signaler" + item_state = "beacon" /* * Fake singularity @@ -175,9 +175,11 @@ attack_verb = list("attacked", "struck", "hit") var/bullets = 5 - _examine_text(mob/user) - if(..(user, 2) && bullets) - to_chat(user, "It is loaded with [bullets] foam darts!") + examine(mob/user) + . = ..() + + if(bullets) + . += SPAN_NOTICE("It is loaded with [bullets] foam darts!") attackby(obj/item/I, mob/user) if(istype(I, /obj/item/toy/ammo/crossbow)) @@ -804,6 +806,7 @@ name = "snail plush" desc = "A plushie of a snail. Still can't figure out where I've seen this before." icon_state = "snailplushie" + slot_flags = SLOT_HEAD //Toy cult sword /obj/item/toy/cultsword @@ -904,8 +907,9 @@ pixel_x = 0 pixel_y = 0 -/obj/item/toy/chubbyskeleton/_examine_text(mob/user) - return "*---------*
This is [src], a Skeleton!
He is wearing some black shorts.
He is wearing a blue hoodie.
He is wearing some slippers on his feet.
*---------*
" +/obj/item/toy/chubbyskeleton/examine(mob/user, infix) + . = ..() + . += SPAN_NOTICE("*---------*
This is [src], a Skeleton!
He is wearing some black shorts.
He is wearing a blue hoodie.
He is wearing some slippers on his feet.
*---------*") /obj/item/toy/chubbyskeleton/attack_hand(mob/user) if(spam_flag == 0) diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index cd496e60bd7..bf5e50a2c36 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -16,10 +16,11 @@ RSF var/mode = 1 w_class = ITEM_SIZE_NORMAL -/obj/item/rsf/_examine_text(mob/user) +/obj/item/rsf/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 0) - . += "\nIt currently holds [stored_matter]/30 fabrication-units." + . += "It currently holds [stored_matter]/30 fabrication-units." /obj/item/rsf/attackby(obj/item/W as obj, mob/user as mob) ..() diff --git a/code/game/objects/items/weapons/basketball.dm b/code/game/objects/items/weapons/basketball.dm new file mode 100644 index 00000000000..aa397eaa77d --- /dev/null +++ b/code/game/objects/items/weapons/basketball.dm @@ -0,0 +1,10 @@ +/obj/item/beach_ball/basketball + name = "basketball" + desc = "Here's your chance, do your dance at the Space Jam." + + icon_state = "basketball" + icon = 'icons/obj/basketball.dmi' + + item_state = "basketball" + + w_class = ITEM_SIZE_LARGE //Stops people from hiding it in their pockets diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index af33f025e96..009440bfe59 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -109,9 +109,9 @@ var/const/NO_EMAG_ACT = -50 user.visible_message("\The [src] fizzles and sparks - it seems it's been used once too often, and is now spent.") return 1 -/obj/item/card/emag/robot/_examine_text(mob/user) +/obj/item/card/emag/robot/examine(mob/user, infix) . = ..() - . += "\nIt has [uses] uses left." + . += SPAN_NOTICE("It has [uses] uses left.") /obj/item/card/id name = "identification card" @@ -148,11 +148,19 @@ var/const/NO_EMAG_ACT = -50 assignment = rank access |= j.get_access() -/obj/item/card/id/_examine_text(mob/user) +/obj/item/card/id/examine(mob/user, infix) + . = ..() + if(in_range(user, src)) show(user) - return desc - return SPAN("warning", "It is too far away.") + . += desc + return + + if(isghost(user)) + . += desc + return + + . += SPAN("warning", "It is too far away.") /obj/item/card/id/get_examine_line(examine_distance = 10) var/visible_name = examine_distance < 3 ? name : "ID Card" diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 2888797fce5..46a9746ea05 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -202,6 +202,7 @@ icon = 'icons/obj/defibrillator.dmi' icon_state = "defibpaddles" item_state = "defibpaddles" + improper_held_icon = TRUE gender = PLURAL force = 2 throwforce = 6 diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index c14ef2273a9..b9da7bc091a 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -51,11 +51,11 @@ reagents.add_reagent(ff_reagent, max_volume) ..() -/obj/item/extinguisher/_examine_text(mob/user) +/obj/item/extinguisher/examine(mob/user, infix) . = ..() + if((get_dist(src, user) <= 0) && !external_source) - . += "\n[text("\icon[] [] contains [] units of reagents left!", src, src.name, src.reagents.total_volume)]" - return + . += "[text("\icon[] [] contains [] units of reagents left!", src, src.name, src.reagents.total_volume)]" /obj/item/extinguisher/attack_self(mob/user) if(external_source) diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm index 9d6364450c3..c07bdfcbf54 100644 --- a/code/game/objects/items/weapons/gift_wrappaper.dm +++ b/code/game/objects/items/weapons/gift_wrappaper.dm @@ -67,7 +67,7 @@ /obj/item/book/wiki/chef_recipes, /obj/item/bikehorn, /obj/item/beach_ball, - /obj/item/beach_ball/holoball, + /obj/item/beach_ball/basketball, /obj/item/toy/water_balloon, /obj/item/toy/blink, /obj/item/toy/crossbow, @@ -188,10 +188,11 @@ return -/obj/item/wrapping_paper/_examine_text(mob/user) +/obj/item/wrapping_paper/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\n[text("There is about [] square units of paper left!", src.amount)]" + . += "[text("There is about [] square units of paper left!", src.amount)]" /obj/item/wrapping_paper/attack(mob/target as mob, mob/user as mob) if (!istype(target, /mob/living/carbon/human)) return diff --git a/code/game/objects/items/weapons/secrets_disk.dm b/code/game/objects/items/weapons/secrets_disk.dm index a5760d6a805..debfc2f660b 100644 --- a/code/game/objects/items/weapons/secrets_disk.dm +++ b/code/game/objects/items/weapons/secrets_disk.dm @@ -28,13 +28,14 @@ subject += " " + pick("that is extremely powerful", "which is highly efficient", "which is incredibly compact",\ "that runs off of plasma", "that runs off of hydrogen gas", "created by the Skrell", "that just looks really cool") -/obj/item/disk/secret_project/_examine_text(user) +/obj/item/disk/secret_project/examine(mob/user, infix) . = ..() + if(!locked) - . += "\nWith the disk's classified contents unlocked, \ + . += "With the disk's classified contents unlocked, \ you peer into its preview screen and see [subject]." else - . += "\nThe disk is locked, you cannot see its contents." + . += "The disk is locked, you cannot see its contents." /obj/item/disk/secret_project/emag_act(remaining_charges, mob/user) to_chat(user, "The cryptographic lock on this disk is far too complex. \ diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index f982e878a76..b98fd670a35 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -223,12 +223,13 @@ else set_light(0) -/obj/item/shield/barrier/_examine_text(mob/user) +/obj/item/shield/barrier/examine(mob/user, infix) . = ..() + if(cell) - . += SPAN("notice", "\nHas [CELL_PERCENT(cell)]% charge left.") + . += SPAN("notice", "Has [CELL_PERCENT(cell)]% charge left.") else - . += "\nHas no battery installed." + . += "Has no battery installed." /obj/item/shield/barrier/attackby(obj/item/I, mob/user) if(isScrewdriver(I)) diff --git a/code/game/objects/items/weapons/soap.dm b/code/game/objects/items/weapons/soap.dm index 6cb964d498f..f02a2e47c75 100644 --- a/code/game/objects/items/weapons/soap.dm +++ b/code/game/objects/items/weapons/soap.dm @@ -15,13 +15,14 @@ create_reagents(30) wet() -/obj/item/soap/_examine_text(mob/user) +/obj/item/soap/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 1) return + if(reagents.total_volume <= 0) - . += "\nIt's dry!" - return + . += "It's dry!" /obj/item/soap/proc/wet() reagents.add_reagent(/datum/reagent/space_cleaner, 15) diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 437a3f07e1e..c014d02f343 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -60,12 +60,13 @@ else set_light(0) -/obj/item/melee/baton/_examine_text(mob/user) +/obj/item/melee/baton/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 1) return - . += "\n[examine_cell()]" - return + + . += "[examine_cell()]" // Addition made by Techhead0, thanks for fullfilling the todo! /obj/item/melee/baton/proc/examine_cell() diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 97e83bf051d..a15def0817f 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -154,8 +154,10 @@ set_next_think(world.time + 1 SECOND) -/obj/effect/energy_net/Move() +/obj/effect/energy_net/Move(newloc, direct) . = ..() + if(!.) + return if(buckled_mob) buckled_mob.forceMove(loc, unbuckle_mob = FALSE) @@ -211,7 +213,7 @@ else health -= rand(1,3) - else if (MUTATION_HULK in user.mutations) + else if((MUTATION_HULK in user.mutations) || (MUTATION_STRONG in user.mutations)) health = 0 else health -= rand(5,8) diff --git a/code/game/objects/items/welding_covers.dm b/code/game/objects/items/welding_covers.dm index b6b091913f8..a257ba264a6 100644 --- a/code/game/objects/items/welding_covers.dm +++ b/code/game/objects/items/welding_covers.dm @@ -5,7 +5,7 @@ w_class = ITEM_SIZE_SMALL var/cover_desc = "This one looks exactly like a standard welding mask - what's the point?" -/obj/item/welding_cover/_examine_text(mob/user) +/obj/item/welding_cover/examine(mob/user, infix) . = ..() . += " [cover_desc]" diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 3300d50f37f..d3ceb5ac573 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -182,22 +182,20 @@ /obj/attackby(obj/item/O as obj, mob/user as mob) if(obj_flags & OBJ_FLAG_ANCHORABLE) - if(isWrench(O)) + if(isWrench(O) && !(atom_flags & ATOM_FLAG_NO_DECONSTRUCTION)) wrench_floor_bolts(user) update_icon() return return ..() -/obj/_examine_text(mob/user, infix, suffix) +/obj/examine(mob/user, infix) . = ..() if(hasHUD(user, HUD_SCIENCE)) - . += "\nStopping Power:" + . += "Stopping Power:" - . += "\nα-particle: [fmt_siunit(CONV_JOULE_ELECTRONVOLT(rad_resist[RADIATION_ALPHA_PARTICLE]), "eV", 3)]" - . += "\nβ-particle: [fmt_siunit(CONV_JOULE_ELECTRONVOLT(rad_resist[RADIATION_BETA_PARTICLE]), "eV", 3)]" - - return . + . += "α-particle: [fmt_siunit(CONV_JOULE_ELECTRONVOLT(rad_resist[RADIATION_ALPHA_PARTICLE]), "eV", 3)]" + . += "β-particle: [fmt_siunit(CONV_JOULE_ELECTRONVOLT(rad_resist[RADIATION_BETA_PARTICLE]), "eV", 3)]" /obj/proc/wrench_floor_bolts(mob/user, delay=20) playsound(loc, 'sound/items/Ratchet.ogg', 100, 1) diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index e68aa0533ba..20d1ae451b3 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -18,11 +18,13 @@ if(breakable) if(MUTATION_HULK in user.mutations) user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) - attack_generic(user,1,"smashes") + attack_generic(user, 1, "smashes") + else if(MUTATION_STRONG in user.mutations) + attack_generic(user, 1, "smashes") else if(istype(user,/mob/living/carbon/human)) var/mob/living/carbon/human/H = user if(H.species.can_shred(user)) - attack_generic(user,1,"slices") + attack_generic(user, 1, "slices") return ..() /obj/structure/attack_tk() diff --git a/code/game/objects/structures/alien/resin.dm b/code/game/objects/structures/alien/resin.dm index e67b4767cef..c4b404f6454 100644 --- a/code/game/objects/structures/alien/resin.dm +++ b/code/game/objects/structures/alien/resin.dm @@ -31,7 +31,7 @@ return ..() /obj/structure/alien/resin/attack_hand(mob/user) - if (MUTATION_HULK in user.mutations) + if((MUTATION_HULK in user.mutations) || (MUTATION_STRONG in user.mutations)) visible_message("\The [user] destroys \the [name]!") health = 0 else diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm index a901b23c19c..e35c7350f53 100644 --- a/code/game/objects/structures/artstuff.dm +++ b/code/game/objects/structures/artstuff.dm @@ -128,18 +128,20 @@ .["name"] = painting_name .["finalized"] = finalized -/obj/item/canvas/_examine_text(mob/user) +/obj/item/canvas/examine(mob/user, infix) . = ..() + tgui_interact(user) if(!user.mind || !is_propaganda) return + var/datum/antagonist/antag = GLOB.all_antag_types_[MODE_LOYALIST] var/is_loyalist_user = antag.is_antagonist(user.mind) || (user.mind.assigned_role in GLOB.command_positions) || (user.mind.assigned_role in GLOB.security_positions) antag = GLOB.all_antag_types_[MODE_REVOLUTIONARY] var/is_revolutionary_user = antag.is_antagonist(user.mind) var/message = SPAN_DANGER("You hate \the [src]. You want to burn it down!") if((is_revolutionary && is_loyalist_user) || (is_revolutionary_user && !is_revolutionary)) - . += "\n" + message + . += message /obj/item/canvas/tgui_act(action, params) . = ..() diff --git a/code/game/objects/structures/barricade/_barricade.dm b/code/game/objects/structures/barricade/_barricade.dm index cf7399612e3..b3f5eaaba7d 100644 --- a/code/game/objects/structures/barricade/_barricade.dm +++ b/code/game/objects/structures/barricade/_barricade.dm @@ -5,6 +5,8 @@ anchored = TRUE density = TRUE + layer = ABOVE_WINDOW_LAYER + /// Amount of points taken by an object. var/damage = 0 /// Maximum amount of object's damage points till it breaks apart. diff --git a/code/game/objects/structures/barricade/material.dm b/code/game/objects/structures/barricade/material.dm index 46bc872d3bf..72e735bf83f 100644 --- a/code/game/objects/structures/barricade/material.dm +++ b/code/game/objects/structures/barricade/material.dm @@ -57,15 +57,15 @@ /obj/structure/barricade/material/proc/_deconstruct(mob/user) - show_splash_text(user, "starting deconstruction.") + show_splash_text(user, "starting deconstruction.", "You begin deconstructing \the [src]!") if(do_after(user, 20, src)) - show_splash_text(user, "barricade deconstucted.") + show_splash_text(user, "barricade deconstucted.", "You deconstruct \the [src]!") playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) _dismantle() return - show_splash_text(user, "action interrupted!") + show_splash_text(user, "action interrupted!", "You must remain still while deconstructing!") /obj/structure/barricade/material/proc/_repair_damage(obj/item/stack/S, mob/user) @@ -73,18 +73,18 @@ return if(S.get_amount() < 1) - show_splash_text(user, "not enough material!") + show_splash_text(user, "not enough material!", "There's not enough [S] to repair \the [src]!") return - show_splash_text(user, "starting repair.") + show_splash_text(user, "starting repair.", "You begin to repair \the [src].") if(do_after(user, 20, src) && damage != 0) if(S.use(1)) damage = 0 - show_splash_text(user, "repair finished.") + show_splash_text(user, "repair finished.", "You have repaired \the [src]!") return - show_splash_text(user, "action interrupted!") + show_splash_text(user, "action interrupted!", "You must remain still while repairing!") /obj/structure/barricade/material/Break() diff --git a/code/game/objects/structures/barricade/security.dm b/code/game/objects/structures/barricade/security.dm index c7755ea3601..7abfc72420a 100644 --- a/code/game/objects/structures/barricade/security.dm +++ b/code/game/objects/structures/barricade/security.dm @@ -71,30 +71,24 @@ anchored = locked update_icon() - show_splash_text(user, "bolts [locked ? "dropped" : "lifted"].") + show_splash_text(user, "bolts [locked ? "dropped" : "lifted"].", "You [locked ? "drop" : "lift"] \the [src] bolts.") /obj/structure/barricade/security/proc/_repair_damage(mob/user, obj/item/weldingtool/WT) if(istype(WT)) return - if(!WT.remove_fuel(0, user)) - to_chat(user, "\The [WT] must be on to complete this task.") - return - - playsound(loc, 'sound/items/Welder.ogg', 50, 1) - if(do_after(user, 20, src)) - if(!WT.isOn()) - return - visible_message(SPAN("notice", "\The [user] has repaired \the [src]")) - damage = 0 - update_icon() + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 3)) + return + visible_message(SPAN("notice", "\The [user] has repaired \the [src]")) + damage = 0 + update_icon() /obj/structure/barricade/security/wrench_floor_bolts(mob/user, delay) if(locked) - show_splash_text(user, "bolts prevent wrenching!") + show_splash_text(user, "bolts prevent wrenching!", "\The [src] bolts prevent wrenching!") return return ..() @@ -122,7 +116,7 @@ s.start() playsound(src.loc, 'sound/effects/computer_emag.ogg', 25) - show_splash_text(user, "bolt locks broken!") + show_splash_text(user, "bolt locks broken!", "You burn out \the [src] bolt locks!") return TRUE diff --git a/code/game/objects/structures/barsign.dm b/code/game/objects/structures/barsign.dm index 827a5189b3c..9b5c1f3b775 100644 --- a/code/game/objects/structures/barsign.dm +++ b/code/game/objects/structures/barsign.dm @@ -21,17 +21,18 @@ if(initial) // We don't want this to be picked by random . -= "Off" -/obj/structure/sign/double/barsign/_examine_text(mob/user) +/obj/structure/sign/double/barsign/examine(mob/user, infix) . = ..() + switch(icon_state) if("Off") - . += "\nIt appears to be switched off." + . += "It appears to be switched off." if("Nar-sie Bistro") - . += "\nIt shows a picture of a large black and red being. Spooky!" + . += "It shows a picture of a large black and red being. Spooky!" if("on", "empty") - . += "\nThe lights are on, but there's no picture." + . += "The lights are on, but there's no picture." else - . += "\nIt says '[icon_state]'" + . += "It says '[icon_state]'" /obj/structure/sign/double/barsign/Initialize() . = ..() diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 5cdfc42d691..151e4901b5f 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -170,16 +170,18 @@ LINEN BINS var/obj/item/hidden = null -/obj/structure/bedsheetbin/_examine_text(mob/user) +/obj/structure/bedsheetbin/examine(mob/user, infix) . = ..() if(amount < 1) - . += "\nThere are no bed sheets in the bin." + . += "There are no bed sheets in the bin." return + if(amount == 1) - . += "\nThere is one bed sheet in the bin." + . += "There is one bed sheet in the bin." return - . += "\nThere are [amount] bed sheets in the bin." + + . += "There are [amount] bed sheets in the bin." /obj/structure/bedsheetbin/on_update_icon() diff --git a/code/game/objects/structures/catwalk.dm b/code/game/objects/structures/catwalk.dm index 0d62ffe3c20..1030b90c01a 100644 --- a/code/game/objects/structures/catwalk.dm +++ b/code/game/objects/structures/catwalk.dm @@ -59,15 +59,16 @@ /obj/structure/catwalk/attackby(obj/item/C, mob/user) if(isWelder(C)) var/obj/item/weldingtool/WT = C - if(WT.remove_fuel(0, user)) - playsound(src, 'sound/items/Welder.ogg', 100, 1) - to_chat(user, SPAN("notice", "Slicing catwalk joints ...")) - new /obj/item/stack/rods(loc) - new /obj/item/stack/rods(loc) - //Lattice would delete itself, but let's save ourselves a new obj - if((istype(loc, /turf/space) || istype(loc, /turf/simulated/open)) && !(locate(/obj/structure/lattice) in loc)) - new /obj/structure/lattice(loc) - qdel(src) + if(!WT.use_tool(src, user, amount = 1)) + return + + to_chat(user, SPAN("notice", "Slicing catwalk joints ...")) + new /obj/item/stack/rods(loc) + new /obj/item/stack/rods(loc) + //Lattice would delete itself, but let's save ourselves a new obj + if((istype(loc, /turf/space) || istype(loc, /turf/simulated/open)) && !(locate(/obj/structure/lattice) in loc)) + new /obj/structure/lattice(loc) + qdel_self() /obj/structure/catwalk/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) if(the_rcd.mode == RCD_DECONSTRUCT) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 2a48ed120bf..badedef82c5 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -171,23 +171,24 @@ /obj/structure/closet/proc/WillContain() return null -/obj/structure/closet/_examine_text(mob/user) +/obj/structure/closet/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1 && !opened) var/content_size = 0 for(var/atom/movable/AM in src.contents) if(!AM.anchored) content_size += content_size(AM) if(!content_size) - . += "\nIt is empty." + . += "It is empty." else if(storage_capacity > content_size*4) - . += "\nIt is barely filled." + . += "It is barely filled." else if(storage_capacity > content_size*2) - . += "\nIt is less than half full." + . += "It is less than half full." else if(storage_capacity > content_size) - . += "\nThere is still some free space." + . += "There is still some free space." else - . += "\nIt is full." + . += "It is full." if(isghost(user)) var/mob/observer/ghost/G = user @@ -197,7 +198,7 @@ if(src.opened) return - . += "\nIt contains: [items_english_list(contents)]." + . += "It contains: [items_english_list(contents)]." /obj/structure/closet/CanPass(atom/movable/mover, turf/target) if(wall_mounted) @@ -431,11 +432,13 @@ return FALSE if(istype(W,/obj/item/tk_grab)) return FALSE + if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(WT.isOn()) + if(WT.use_tool(src, user)) slice_into_parts(WT, user) return + if(istype(W, /obj/item/storage/laundry_basket) && W.contents.len) var/obj/item/storage/laundry_basket/LB = W var/turf/T = get_turf(src) @@ -508,12 +511,9 @@ return else if(isWelder(W) && (setup & CLOSET_CAN_BE_WELDED)) var/obj/item/weldingtool/WT = W - if(!WT.remove_fuel(0,user)) - if(!WT.isOn()) - return - else - to_chat(user, SPAN_NOTICE("You need more welding fuel to complete this task.")) - return + if(!WT.use_tool(src, user)) + return + src.welded = !src.welded src.update_icon() user.visible_message(SPAN_WARNING("\The [src] has been [welded?"welded shut":"unwelded"] by \the [user]."), blind_message = "You hear welding.", range = 3) @@ -542,9 +542,9 @@ src.attack_hand(user) /obj/structure/closet/proc/slice_into_parts(obj/item/weldingtool/WT, mob/user) - if(!WT.remove_fuel(0,user)) - to_chat(user, SPAN_NOTICE("You need more welding fuel to complete this task.")) + if(!WT.use_tool(src, user, amount = 1)) return + if(material != null) new material(loc) else diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index acb94bc78f6..d71dd40c5a4 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -58,15 +58,16 @@ if(. && closed_turf_height_offset) set_turf_height_offset(closed_turf_height_offset) -/obj/structure/closet/crate/_examine_text(mob/user) +/obj/structure/closet/crate/examine(mob/user, infix) . = ..() + if(rigged && opened) var/list/devices = list() for(var/obj/item/device/assembly_holder/H in src) devices += H for(var/obj/item/device/assembly/A in src) devices += A - . += "\nThere are some wires attached to the lid, connected to [english_list(devices)]." + . += "There are some wires attached to the lid, connected to [english_list(devices)]." /obj/structure/closet/crate/attackby(obj/item/W, mob/user) if(opened) diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 33d2b429805..1a95140f4b8 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -15,7 +15,7 @@ /obj/structure/largecrate/LateInitialize(mapload, ...) . = ..() if(mapload) // if it's the map loading phase, relevant items at the crate's loc are put in the contents - addtimer(CALLBACK(src, nameof(.proc/store_contents)), 10, TIMER_UNIQUE|TIMER_OVERRIDE) // It's here for a raisin, trust me + add_think_ctx("store_contents_mapload", CALLBACK(src, nameof(.proc/store_contents)), world.time + 1 SECOND) /obj/structure/largecrate/proc/store_contents() for(var/obj/I in loc) @@ -73,22 +73,36 @@ name = "Mulebot crate" held_type = /mob/living/bot/mulebot + /obj/structure/largecrate/animal/corgi name = "corgi carrier" held_type = /mob/living/simple_animal/corgi +/obj/structure/largecrate/animal/corgi/ian + held_type = /mob/living/simple_animal/corgi/Ian + +/obj/structure/largecrate/animal/corgi/lisa + held_type = /mob/living/simple_animal/corgi/Lisa + +/obj/structure/largecrate/animal/corgi/puppy + held_type = /mob/living/simple_animal/corgi/puppy + + /obj/structure/largecrate/animal/cow name = "cow crate" held_type = /mob/living/simple_animal/cow + /obj/structure/largecrate/animal/goat name = "goat crate" held_type = /mob/living/simple_animal/hostile/retaliate/goat + /obj/structure/largecrate/animal/pig name = "pig crate" held_type = /mob/living/simple_animal/pig + /obj/structure/largecrate/animal/cat name = "cat carrier" held_type = /mob/living/simple_animal/cat @@ -96,15 +110,24 @@ /obj/structure/largecrate/animal/cat/bones held_type = /mob/living/simple_animal/cat/fluff/bones +/obj/structure/largecrate/animal/cat/runtime + held_type = /mob/living/simple_animal/cat/fluff/Runtime + + /obj/structure/largecrate/animal/chick name = "chicken crate" held_count = 5 held_type = /mob/living/simple_animal/chick + /obj/structure/largecrate/animal/parrot name = "parrot crate" held_type = /mob/living/simple_animal/parrot +/obj/structure/largecrate/animal/parrot/poly + held_type = /mob/living/simple_animal/parrot/Poly + + /obj/structure/largecrate/animal/vatgrownbody/male name = "vat-grown body crate" icon_state = "vatgrowncrate_male" diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index d7d599c6c93..e327e8a41af 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -154,34 +154,36 @@ if(isWelder(W) && ( (istext(glass)) || (glass == 1) || (!anchored) )) var/obj/item/weldingtool/WT = W - if (WT.remove_fuel(0, user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) - if(istext(glass)) - user.visible_message("[user] welds the [glass] plating off the airlock assembly.", "You start to weld the [glass] plating off the airlock assembly.") - if(do_after(user, 40,src)) - if(!src || !WT.isOn()) return - to_chat(user, "You welded the [glass] plating off!") - var/M = text2path("/obj/item/stack/material/[glass]") - new M(src.loc, 2) - glass = 0 - else if(glass == 1) - user.visible_message("[user] welds the glass panel out of the airlock assembly.", "You start to weld the glass panel out of the airlock assembly.") - if(do_after(user, 40,src)) - if(!src || !WT.isOn()) return - to_chat(user, "You welded the glass panel out!") - new /obj/item/stack/material/glass/reinforced(src.loc) - glass = 0 - else if(!anchored) - user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.") - if(do_after(user, 40,src)) - if(!src || !WT.isOn()) return - to_chat(user, "You dissasembled the airlock assembly!") - new /obj/item/stack/material/steel(src.loc, 4) - qdel (src) - else - to_chat(user, "You need more welding fuel.") + + if(istext(glass)) + user.visible_message("[user] welds the [glass] plating off the airlock assembly.", "You start to weld the [glass] plating off the airlock assembly.") + else if(glass == 1) + user.visible_message("[user] welds the glass panel out of the airlock assembly.", "You start to weld the glass panel out of the airlock assembly.") + else if(!anchored) + user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.") + + + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) return + if(QDELETED(src) || !user) + return + + if(istext(glass)) + to_chat(user, SPAN_NOTICE("You welded the [glass] plating off!")) + var/M = text2path("/obj/item/stack/material/[glass]") + new M(src.loc, 2) + glass = 0 + else if(glass == 1) + to_chat(user, SPAN_NOTICE("You welded the glass panel out!")) + new /obj/item/stack/material/glass/reinforced(src.loc) + glass = 0 + else if(!anchored) + to_chat(user, SPAN_NOTICE("You dissasembled the airlock assembly!")) + new /obj/item/stack/material/steel(src.loc, 4) + qdel_self() + + else if(isWrench(W) && state == 0) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) if(anchored) @@ -291,7 +293,7 @@ update_state() /obj/structure/door_assembly/proc/finish_door(user) - show_splash_text(user, "Door finished!") + show_splash_text(user, "Door finished!", SPAN("notice", "You have finished assembling the door!")) var/path = get_finished_type() if(!isnull(path)) diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index cd30dc75477..82ac2b09ad7 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -114,7 +114,7 @@ if(emagged) return NO_EMAG_ACT - show_splash_text(user, "cabinet emagged!") + show_splash_text(user, "cabinet emagged!", "You hack \the [src] reagent fabricator!") emagged = TRUE return TRUE diff --git a/code/game/objects/structures/fitness.dm b/code/game/objects/structures/fitness.dm index a64ac20df54..64373e3d901 100644 --- a/code/game/objects/structures/fitness.dm +++ b/code/game/objects/structures/fitness.dm @@ -54,11 +54,21 @@ being_used = 1 playsound(src.loc, 'sound/effects/weightlifter.ogg', 50, 1) user.set_dir(SOUTH) - flick("[icon_state]_[weight]", src) - if(do_after(user, 20 + (weight * 10))) + + var/usetime = 20 + (weight * 10) + if((MUTATION_HULK in user.mutations) || (MUTATION_STRONG in user.mutations)) + flick("[icon_state]_[weight]s", src) + usetime = 14 + else + flick("[icon_state]_[weight]", src) + + if(do_after(user, usetime)) playsound(src.loc, 'sound/effects/weightdrop.ogg', 25, 1) user.remove_nutrition(weight * 10) - to_chat(user, "You lift the weights [qualifiers[weight]].") + if((MUTATION_HULK in user.mutations) || (MUTATION_STRONG in user.mutations)) + to_chat(user, SPAN("notice", "You shred the weights without barely noticing it.")) + else + to_chat(user, SPAN("notice", "You lift the weights [qualifiers[weight]].")) being_used = 0 else to_chat(user, "Against your previous judgement, perhaps working out is not for you.") diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 94948c206a1..416ac44532e 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -17,7 +17,7 @@ if(do_after(usr, TIME_CUT)) playsound(user, 'sound/weapons/chainsaw_attack1.ogg', 25, 1) to_chat(user, SPAN_WARNING("You cut down \the [src] with \the [W].")) - if(!istype(get_turf(loc), /turf/simulated/floor/holofloor)) + if(!(atom_flags & ATOM_FLAG_HOLOGRAM)) new /obj/item/stack/material/wood/ten(loc) qdel(src) return @@ -28,7 +28,7 @@ to_chat(user, SPAN_WARNING("You chop \the [src] with \the [W].")) playsound(src, 'sound/effects/fighting/chop3.ogg', 25, 1) if(cut_hits <= 0) - if(!istype(get_turf(loc), /turf/simulated/floor/holofloor)) + if(!(atom_flags & ATOM_FLAG_HOLOGRAM)) new /obj/item/stack/material/wood/ten(loc) qdel(src) return diff --git a/code/game/objects/structures/gas_stand.dm b/code/game/objects/structures/gas_stand.dm index e6f8a9b21e2..b4ae70bd171 100644 --- a/code/game/objects/structures/gas_stand.dm +++ b/code/game/objects/structures/gas_stand.dm @@ -179,16 +179,17 @@ add_fingerprint(user) update_icon() -/obj/structure/gas_stand/_examine_text(mob/user) +/obj/structure/gas_stand/examine(mob/user, infix) . = ..() + if(tank) - if (!is_loosen) - . += "\n\The [tank] connected to it." - . += "\nThe meter shows [round(tank.air_contents.return_pressure())]. The valve is [valve_opened == TRUE ? "open" : "closed"]." - if (tank.distribute_pressure == 0) - . += "\nUse wrench to replace tank." + if(!is_loosen) + . += "\The [tank] connected to it." + . += "The meter shows [round(tank.air_contents.return_pressure())]. The valve is [valve_opened == TRUE ? "open" : "closed"]." + if(tank.distribute_pressure == 0) + . += "Use wrench to replace tank." else - . += "\nIt is missing a tank!" + . += SPAN_WARNING("It is missing a tank!") /obj/structure/gas_stand/think() if(breather) diff --git a/code/game/objects/structures/geltanks.dm b/code/game/objects/structures/geltanks.dm index 9841b9fca87..bc73d18bc45 100644 --- a/code/game/objects/structures/geltanks.dm +++ b/code/game/objects/structures/geltanks.dm @@ -13,12 +13,13 @@ var/gel_type = "unknown" atom_flags = ATOM_FLAG_CLIMBABLE -/obj/structure/geltank/_examine_text(mob/user) +/obj/structure/geltank/examine(mob/user, infix) . = ..() + if(capacity >= 0) - . += "\nIt contains [capacity]/[capacity_max] units of gel." + . += "It contains [capacity]/[capacity_max] units of gel." else - . += "\nIt's empty." + . += "It's empty." /obj/structure/geltank/proc/use(amt = 1) capacity -= amt diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index ed39d5baa34..8c2737a52f9 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -16,12 +16,13 @@ icon_state = "displaced" anchored = 0 -/obj/structure/girder/_examine_text(mob/user) +/obj/structure/girder/examine(mob/user, infix) . = ..() + if(health <= 0.4 * max_health) - . += "\n[SPAN("warning", "It's heavily damaged!")]" + . += SPAN("warning", "It's heavily damaged!") else if(health < max_health) - . += "\n[SPAN("warning", "It's showing signs of damage.")]" + . += SPAN("warning", "It's showing signs of damage.") /obj/structure/girder/attack_generic(mob/user, damage, attack_message = "smashes apart", wallbreaker) if(!damage || !wallbreaker) @@ -76,25 +77,31 @@ user.visible_message(SPAN("notice", "[user] is securing \the [src]..."), \ SPAN("notice", "Now securing \the [src]...")) if(do_after(user, 40,src)) - if(!src) return + if(QDELETED(src)) + return user.visible_message(SPAN("notice", "[user] secured \the [src]!"), \ SPAN("notice", "You secured \the [src]!")) reset_girder() shove_everything(shove_objects = FALSE, shove_items = FALSE) + return else if((istype(W, /obj/item/gun/energy/plasmacutter) || (istype(W, /obj/item/melee/energy) && W.force > 20)) && user.a_intent == I_HELP) user.visible_message(SPAN("notice", "[user] is slicing apart \the [src]..."), \ SPAN("notice", "Now slicing apart \the [src]...")) if(do_after(user,30,src)) - if(!src) return + if(QDELETED(src)) + return + user.visible_message(SPAN("notice", "[user] slices apart \the [src]!"), \ SPAN("notice", "You slice apart \the [src]!")) dismantle() + return else if(istype(W, /obj/item/pickaxe/drill/diamonddrill)) user.visible_message(SPAN("notice", "[user] drills through \the [src]!"), \ SPAN("notice", "You drill through \the [src]!")) dismantle() + return else if(isScrewdriver(W)) if(state == 2) @@ -108,49 +115,57 @@ playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) reinforcing = !reinforcing to_chat(user, SPAN("notice", "\The [src] can now be [reinforcing? "reinforced" : "constructed"]!")) + return else if(isWirecutter(W) && state == 1) playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) to_chat(user, SPAN("notice", "Now removing the support struts from \the [src]...")) if(do_after(user, 40, src)) - if(!src) return + if(QDELETED(src)) + return + to_chat(user, SPAN("notice", "You removed the support struts from \the [src]!")) if(reinf_material) reinf_material.place_dismantled_product(get_turf(src)) reinf_material = null reset_girder() + return else if(isCrowbar(W) && state == 0 && anchored) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) user.visible_message(SPAN("notice", "[user] is dislodging \the [src]..."), \ SPAN("notice", "Now dislodging \the [src]...")) if(do_after(user, 40, src)) - if(!src) return + if(QDELETED(src)) + return + user.visible_message(SPAN("notice", "[user] dislodged \the [src]."), \ - SPAN("notice", "You dislodged \the [src].")) + SPAN("notice", "You dislodged \the [src].")) icon_state = "displaced" anchored = 0 cover = 40 + return else if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(!WT.isOn()) - return if(health == max_health) to_chat(user, SPAN("notice", "\The [src] is undamaged.")) return - if(!WT.remove_fuel(0,user)) - to_chat(user, SPAN("notice", "You need more welding fuel to complete this task.")) - return + user.visible_message(SPAN("notice", "[user] is repairing the damage to \the [src]..."), \ SPAN("notice", "You start repairing the damage to \the [src]...")) - playsound(src, 'sound/items/Welder.ogg', 100, 1) - if(!do_after(user, max(5, health / 3), src) && WT && WT.isOn()) + + if(!WT.use_tool(src, user, delay = max(5, health /3), amount = 5)) + return + + if(QDELETED(src) || !user) return + health = max_health user.visible_message(SPAN("notice", "[user] repairs \the [src]."), \ SPAN("notice", "You repair \the [src].")) + return else if(istype(W, /obj/item/stack/material)) if(reinforcing && !reinf_material) @@ -262,7 +277,7 @@ return FALSE /obj/structure/girder/attack_hand(mob/user as mob) - if(MUTATION_HULK in user.mutations) + if((MUTATION_HULK in user.mutations) || (MUTATION_STRONG in user.mutations)) user.visible_message(SPAN("danger", "[user] smashes \the [src] apart!"), \ SPAN("danger", "You smash \the [src] apart!")) dismantle() diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 1d633fe2306..92ed05e3bc7 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -38,7 +38,7 @@ playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) user.do_attack_animation(src) - var/damage_dealt = 1 + var/damage_dealt = 2 var/attack_message = "kicks" if(istype(user,/mob/living/carbon/human)) var/mob/living/carbon/human/H = user @@ -51,8 +51,9 @@ if(MUTATION_HULK in user.mutations) damage_dealt += 5 - else - damage_dealt += 1 + + if(MUTATION_STRONG in user.mutations) + damage_dealt += 5 attack_generic(user,damage_dealt,attack_message) diff --git a/code/game/objects/structures/hoop.dm b/code/game/objects/structures/hoop.dm new file mode 100644 index 00000000000..d8aaf5659f6 --- /dev/null +++ b/code/game/objects/structures/hoop.dm @@ -0,0 +1,24 @@ +/obj/structure/hoop + name = "basketball hoop" + desc = "Boom, Shakalaka!" + + icon_state = "hoop" + icon = 'icons/obj/basketball.dmi' + + anchored = TRUE + density = TRUE + throwpass = TRUE + +/obj/structure/hoop/CanPass(atom/movable/mover, turf/target) + if(mover.throwing && isitem(mover) && !istype(mover, /obj/item/projectile)) + var/obj/item/throwing_item = mover + + if(prob(50)) + throwing_item.forceMove(loc) + visible_message(SPAN_NOTICE("Swish! \the [throwing_item] lands in \the [src].")) + else + visible_message(SPAN_WARNING("\The [throwing_item] bounces off of \the [src]'s rim!")) + + return FALSE + + return ..() diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index 2d4c80c0fed..a978d466b0f 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -134,16 +134,18 @@ if(health == round(0.3 * initial(health))) visible_message(SPAN("warning", "\The [src] is barely holding up!")) -/obj/structure/inflatable/_examine_text(mob/user) +/obj/structure/inflatable/examine(mob/user, infix) . = ..() + if(health >= initial(health)) - . += "\n[SPAN("notice", "It's undamaged.")]" + . += SPAN("notice", "It's undamaged.") else if(health >= 0.5 * initial(health)) - . += "\n[SPAN("warning", "It's showing signs of damage.")]" + . += SPAN("warning", "It's showing signs of damage.") else if(health >= 0) - . += "\n[SPAN("danger", "It's heavily damaged!")]" + . += SPAN("danger", "It's heavily damaged!") + if(taped) - . += "\n[SPAN("notice", "It's been duct taped in few places.")]" + . += SPAN("notice", "It's been duct taped in few places.") /obj/structure/inflatable/bullet_act(obj/item/projectile/Proj) take_damage(Proj.get_structure_damage()) diff --git a/code/game/objects/structures/iv_drip.dm b/code/game/objects/structures/iv_drip.dm index 9a519c93487..5d781aef73c 100644 --- a/code/game/objects/structures/iv_drip.dm +++ b/code/game/objects/structures/iv_drip.dm @@ -155,21 +155,21 @@ mode = !mode to_chat(usr, "The IV drip is now [mode ? "injecting" : "taking blood"].") -/obj/structure/iv_drip/_examine_text(mob/user) +/obj/structure/iv_drip/examine(mob/user, infix) . = ..() - if (get_dist(src, user) > 2) + if(get_dist(src, user) > 2) return - . += "\nThe IV drip is [mode ? "injecting" : "taking blood"]." - . += "\nIt is set to transfer [transfer_amount]u of chemicals per cycle." + . += "The IV drip is [mode ? "injecting" : "taking blood"]." + . += "It is set to transfer [transfer_amount]u of chemicals per cycle." if(beaker) if(beaker.reagents && beaker.reagents.total_volume) - . += "\nAttached is \a [beaker] with [beaker.reagents.total_volume] units of liquid." + . += "Attached is \a [beaker] with [beaker.reagents.total_volume] units of liquid." else - . += "\nAttached is an empty [beaker]." + . += "Attached is an empty [beaker]." else - . += "\nNo chemicals are attached." + . += "No chemicals are attached." - . += "\n[attached ? attached : "No one"] is hooked up to it." + . += "[attached ? attached : "No one"] is hooked up to it." diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 8b56d6bee2e..b876a4015c0 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -21,11 +21,11 @@ create_reagents(180) -/obj/structure/janitorialcart/_examine_text(mob/user) +/obj/structure/janitorialcart/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\n[src] \icon[src] contains [reagents.total_volume] unit\s of liquid!" - //everything else is visible, so doesn't need to be mentioned + . += "[src] \icon[src] contains [reagents.total_volume] unit\s of liquid!" /obj/structure/janitorialcart/attackby(obj/item/I, mob/user) @@ -189,14 +189,15 @@ create_reagents(100) -/obj/structure/bed/chair/janicart/_examine_text(mob/user) +/obj/structure/bed/chair/janicart/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 1) return - . += "\n\icon[src] This [callme] contains [reagents.total_volume] unit\s of water!" + . += "\icon[src] This [callme] contains [reagents.total_volume] unit\s of water!" if(mybag) - . += "\n\A [mybag] is hanging on the [callme]." + . += "\A [mybag] is hanging on the [callme]." /obj/structure/bed/chair/janicart/attackby(obj/item/I, mob/user) @@ -232,11 +233,13 @@ to_chat(user, "You'll need the keys in one of your hands to drive this [callme].") -/obj/structure/bed/chair/janicart/Move() +/obj/structure/bed/chair/janicart/Move(newloc, direct) . = ..() - if(buckled_mob) - if(buckled_mob.buckled == src) - buckled_mob.forceMove(loc) + if(!.) + return + + if(buckled_mob?.buckled == src) + buckled_mob.forceMove(loc) /obj/structure/bed/chair/janicart/post_buckle_mob(mob/living/M) diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 713731d15b6..bb1b566d7be 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -56,11 +56,13 @@ return if(isWelder(C)) var/obj/item/weldingtool/WT = C - if(!WT.remove_fuel(0, user)) + if(!WT.use_tool(src, user, amount = 1)) return - to_chat(user, "Slicing lattice joints ...") + + to_chat(user, SPAN_NOTICE("Slicing lattice joints.")) new /obj/item/stack/rods(loc) qdel(src) + if (istype(C, /obj/item/stack/rods)) var/obj/item/stack/rods/R = C if(R.use(2)) diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm index f209cc1da73..fb6825c8ef0 100644 --- a/code/game/objects/structures/mop_bucket.dm +++ b/code/game/objects/structures/mop_bucket.dm @@ -1,3 +1,5 @@ +#define OXYLOS_PER_HEAD_DIP 10 + /obj/structure/mopbucket name = "mop bucket" desc = "Fill it with water, but don't forget a mop!" @@ -12,20 +14,61 @@ var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite -/obj/structure/mopbucket/New() +/obj/structure/mopbucket/Initialize() + . = ..() create_reagents(180) - ..() -/obj/structure/mopbucket/_examine_text(mob/user) +/obj/structure/mopbucket/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\n[src] \icon[src] contains [reagents.total_volume] unit\s of water!" + . += "[src] \icon[src] contains [reagents.total_volume] unit\s of water!" /obj/structure/mopbucket/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/mop)) if(reagents.total_volume < 1) - to_chat(user, "\The [src] is out of water!") + show_splash_text(user, "no water!", SPAN("warning", "\The [src] is empty!")) + return + else reagents.trans_to_obj(I, 5) - to_chat(user, "You wet \the [I] in \the [src].") + show_splash_text(user, "you wet the mop!", SPAN("notice", "You wet \the [I] in \the [src].")) playsound(loc, 'sound/effects/slosh.ogg', 25, 1) + return + + else if(istype(I, /obj/item/grab)) + var/obj/item/grab/G = I + + if(!isliving(G.affecting)) + return + + if(G.current_grab.state_name == NORM_PASSIVE) + to_chat(user, SPAN_NOTICE("You need a tighter grip!")) + return + + if(reagents.total_volume < 1) + show_splash_text(user, "no water!", SPAN("warning", "\The [src] is empty!")) + return + + user.visible_message(SPAN_DANGER("[user] starts to put [G.affecting.name]'s head into \the [src]!"), \ + SPAN_DANGER("You start to put [G.affecting.name]'s head into \the [src]!")) + reagents.trans_to(G.affecting, min(reagents.total_volume, 5)) + playsound(get_turf(src), GET_SFX(SFX_FOOTSTEP_WATER), 100, TRUE) + + if(!do_after(user, 3 SECONDS, src, TRUE)) + return + + if(QDELETED(src) || !G?.affecting) + return + + + user.visible_message(SPAN_DANGER("[user] finally raises [G.affecting.name]'s head out of \the [src]!"), \ + SPAN_DANGER("You raise [G.affecting.name]'s head out of \the [src]!")) + reagents.trans_to(G.affecting, min(reagents.total_volume, 5)) + playsound(get_turf(src), GET_SFX(SFX_FOOTSTEP_WATER), 100, TRUE) + if(!G?.affecting?.internal && !G.affecting.isSynthetic()) + G.affecting.adjustOxyLoss(OXYLOS_PER_HEAD_DIP) + G.affecting.emote("gasp") + return + +#undef OXYLOS_PER_HEAD_DIP diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm index fcaa897f3c6..5b1f47c5dce 100644 --- a/code/game/objects/structures/noticeboard.dm +++ b/code/game/objects/structures/noticeboard.dm @@ -35,7 +35,9 @@ // Since Topic() never seems to interact with usr on more than a superficial // level, it should be fine to let anyone mess with the board other than ghosts. -/obj/structure/noticeboard/_examine_text(mob/user) +/obj/structure/noticeboard/examine(mob/user, infix) + . = ..() + if(user && user.Adjacent(src)) var/dat = "Noticeboard
" for(var/obj/item/paper/P in src) @@ -44,8 +46,6 @@ dat += "[P.name] Remove
" show_browser(user, "Notices[dat]","window=noticeboard") onclose(user, "noticeboard") - else - . = ..() /obj/structure/noticeboard/Topic(href, href_list) ..() diff --git a/code/game/objects/structures/pew.dm b/code/game/objects/structures/pew.dm index 928c90382aa..22b73f5edb1 100644 --- a/code/game/objects/structures/pew.dm +++ b/code/game/objects/structures/pew.dm @@ -22,19 +22,19 @@ to_chat(user, SPAN("notice", "\The [src] doesn't look like it can be disassembled. Breaking it up is the only way to get rid of it.")) else if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(!WT.isOn()) - return if(health == max_health) to_chat(user, SPAN("notice", "\The [src] is undamaged.")) return - if(!WT.remove_fuel(0,user)) - to_chat(user, SPAN("notice", "You need more welding fuel to complete this task.")) - return + user.visible_message(SPAN("notice", "[user] is repairing the damage to \the [src]..."), \ SPAN("notice", "You start repairing the damage to \the [src]...")) - playsound(src, 'sound/items/Welder.ogg', 100, 1) - if(!do_after(user, max(5, health / 3), src) && WT && WT.isOn()) + + if(!WT.use_tool(src, user, delay = max(5, health / 3), amount = 5)) return + + if(QDELETED(src) || !user) + return + health = max_health user.visible_message(SPAN("notice", "[user] repairs \the [src]."), \ SPAN("notice", "You repair \the [src].")) diff --git a/code/game/objects/structures/pit.dm b/code/game/objects/structures/pit.dm index 7eb017cc2ef..7f141488068 100644 --- a/code/game/objects/structures/pit.dm +++ b/code/game/objects/structures/pit.dm @@ -131,9 +131,9 @@ /obj/structure/gravemarker/cross icon_state = "cross" -/obj/structure/gravemarker/_examine_text(mob/user) +/obj/structure/gravemarker/examine(mob/user, infix) . = ..() - . += "\nIt says: '[message]'" + . += "It says: '[message]'" /obj/structure/gravemarker/random/Initialize() generate() diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index 37d1a66a423..4db2ea6cfec 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -62,7 +62,7 @@ /obj/structure/plasticflaps/attackby(obj/item/O, mob/user) if(isWrench(O)) playsound(loc, 'sound/items/Ratchet.ogg', 100, 1) - show_splash_text(user, "deconstructing...") + show_splash_text(user, "deconstructing...", "You begin deconstructing \the [src].") if(do_after(user, 30, src)) new /obj/item/stack/material/plastic(loc, 5) qdel(src) diff --git a/code/game/objects/structures/railing.dm b/code/game/objects/structures/railing.dm index e72f304c8ac..56f33efb2fd 100644 --- a/code/game/objects/structures/railing.dm +++ b/code/game/objects/structures/railing.dm @@ -6,6 +6,7 @@ density = 1 anchored = 1 atom_flags = ATOM_FLAG_CHECKS_BORDER | ATOM_FLAG_CLIMBABLE + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION layer = 5.2 // Just above doors throwpass = 1 can_buckle = 1 @@ -21,6 +22,8 @@ if(anchored) update_icon(0) + AddElement(/datum/element/simple_rotation) + /obj/structure/railing/Destroy() var/turf/location = loc . = ..() @@ -39,16 +42,16 @@ return TRUE return ..() -/obj/structure/railing/_examine_text(mob/user) +/obj/structure/railing/examine(mob/user, infix) . = ..() if(health < maxhealth) switch(health / maxhealth) if(0.0 to 0.25) - . += "\nIt looks severely damaged!" + . += SPAN_WARNING("It looks severely damaged!") if(0.25 to 0.5) - . += "\nIt looks damaged!" + . += SPAN_WARNING("It looks damaged!") if(0.5 to 1.0) - . += "\nIt has a few scrapes and dents." + . += SPAN_WARNING("It has a few scrapes and dents.") /obj/structure/railing/proc/take_damage(amount) health -= amount @@ -120,44 +123,6 @@ if (WEST) AddOverlays(image('icons/obj/railing.dmi', "[material]mcorneroverlay", pixel_y = 32)) -/obj/structure/railing/verb/rotate() - set name = "Rotate Counter-Clockwise" - set category = "Object" - set src in oview(1) - - if(usr.incapacitated()) - return 0 - - if (!can_touch(usr) || ismouse(usr)) - return - - if(anchored) - to_chat(usr, "It is fastened to the floor therefore you can't rotate it!") - return 0 - - set_dir(turn(dir, 90)) - update_icon() - return - -/obj/structure/railing/verb/revrotate() - set name = "Rotate Clockwise" - set category = "Object" - set src in oview(1) - - if(usr.incapacitated()) - return 0 - - if (!can_touch(usr) || ismouse(usr)) - return - - if(anchored) - to_chat(usr, "It is fastened to the floor therefore you can't rotate it!") - return 0 - - set_dir(turn(dir, -90)) - update_icon() - return - /obj/structure/railing/verb/flip() // This will help push railing to remote places, such as open space turfs set name = "Flip Railing" set category = "Object" @@ -217,12 +182,15 @@ // Repair if(health < maxhealth && isWelder(W)) var/obj/item/weldingtool/F = W - if(F.welding) - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - if(do_after(user, 20, src)) - user.visible_message("\The [user] repairs some damage to \the [src].", "You repair some damage to \the [src].") - health = min(health+(maxhealth/4), maxhealth) // 25% repair per application - return + if(!F.use_tool(src, user, delay = 2 SECONDS, amount = 5)) + return + + if(QDELETED(src) || !user) + return + + user.visible_message(SPAN_NOTICE("\The [user] repairs some damage to \the [src]."), SPAN_NOTICE("You repair some damage to \the [src].")) + health = min(health + (maxhealth / 4), maxhealth) // 25% repair per application + return // (Un)Anchor if(isScrewdriver(W)) @@ -296,14 +264,14 @@ return user.visible_message("\The [user] starts climbing over \the [src]!") - climbers |= user + LAZYDISTINCTADD(climbers, user) if(!do_after(user,(issmall(user) ? 30 : 50), src)) - climbers -= user + LAZYREMOVE(climbers, user) return if (!can_climb(user)) - climbers -= user + LAZYREMOVE(climbers, user) return if(get_turf(user) == get_turf(src)) @@ -321,7 +289,7 @@ else user.visible_message("\The [user] climbs over \the [src]!") - climbers -= user + LAZYREMOVE(climbers, user) /obj/structure/railing/steel icon_state = "steel_railing_full" diff --git a/code/game/objects/structures/roulette.dm b/code/game/objects/structures/roulette.dm index 8c8a346e2d6..3d71e5fc417 100644 --- a/code/game/objects/structures/roulette.dm +++ b/code/game/objects/structures/roulette.dm @@ -18,9 +18,13 @@ var/spinning = FALSE +/obj/structure/casino/roulette/Initialize() + . = ..() + add_think_ctx("spin_context", CALLBACK(src, nameof(.proc/finish_spin)), 0) + /obj/structure/casino/roulette/attack_hand(mob/user) if(spinning) - show_splash_text(user, "already spinning!") + show_splash_text(user, "already spinning!", "The roulette is already spinning!") return visible_message(SPAN("notice", "[user] spins \the [src] and throws a little ball inside!")) @@ -43,7 +47,7 @@ else color = "red" - addtimer(CALLBACK(src, nameof(.proc/finish_spin), n, color), 5 SECONDS, TIMER_DELETE_ME) + set_next_think_ctx("spin_context", world.time + 5 SECONDS, n, color) /obj/structure/casino/roulette/proc/finish_spin(number, color) visible_message(SPAN("notice", "\The [src] stops spinning, the ball landing on [number], [color].")) diff --git a/code/game/objects/structures/secure_door_assembly.dm b/code/game/objects/structures/secure_door_assembly.dm index b1b5f1ccde7..39d466bc0a5 100644 --- a/code/game/objects/structures/secure_door_assembly.dm +++ b/code/game/objects/structures/secure_door_assembly.dm @@ -8,13 +8,18 @@ icon = 'icons/obj/doors/secure_door_assembly.dmi' anchored = FALSE density = TRUE - obj_flags = OBJ_FLAG_ANCHORABLE + obj_flags = OBJ_FLAG_ANCHORABLE | OBJ_FLAG_ANCHOR_BLOCKS_ROTATION var/state = STATE_UNANCHORED var/obj/item/device/assembly/signaler/signaler = null var/base_icon = null var/material_path = null var/door_path = null +/obj/structure/secure_door_assembly/Initialize() + . = ..() + + AddElement(/datum/element/simple_rotation) + /obj/structure/secure_door_assembly/Destroy() QDEL_NULL(signaler) return ..() @@ -66,20 +71,14 @@ return ..() /obj/structure/secure_door_assembly/proc/deconstruct_assembly(obj/item/weldingtool/WT, mob/user) - if (WT.remove_fuel(0, user)) - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) - user.visible_message("[user] dissassembles \the [src] .", "You start to dissassemble \the [src] .") - if(do_after(user, 40, src)) - if(!WT.isOn()) - return - - to_chat(user, SPAN_NOTICE("You dissasembled \the [src] a!")) - new /obj/item/stack/material/steel(loc, 10) - qdel(src) - else - to_chat(user, SPAN_NOTICE("You need more welding fuel.")) + user.visible_message("[user] dissassembles \the [src] .", "You start to dissassemble \the [src] .") + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) return + to_chat(user, SPAN_NOTICE("You dissasembled \the [src] a!")) + new /obj/item/stack/material/steel(loc, 10) + qdel(src) + /obj/structure/secure_door_assembly/wrench_floor_bolts(mob/user, delay = 40) . = ..() diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index 173fb06115f..5f0cf215735 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -524,12 +524,13 @@ claimant = user.real_name ..() -/obj/item/sign/medipolma/_examine_text(mob/user) +/obj/item/sign/medipolma/examine(mob/user, infix) . = ..() + if(claimant) - . += "\nThis one belongs to Dr.[claimant], MD." + . += "This one belongs to Dr.[claimant], MD." else - . += "\nThe name is left blank for some reason." + . += "The name is left blank for some reason." /obj/structure/sign/flag name = "large flag" diff --git a/code/game/objects/structures/skele_stand.dm b/code/game/objects/structures/skele_stand.dm index 51f49afec53..014d0351ee1 100644 --- a/code/game/objects/structures/skele_stand.dm +++ b/code/game/objects/structures/skele_stand.dm @@ -37,14 +37,15 @@ /obj/structure/skele_stand/Bumped(atom/thing) rattle_bones(null, thing) -/obj/structure/skele_stand/_examine_text(mob/user) +/obj/structure/skele_stand/examine(mob/user, infix) . = ..() + if(swag.len) var/list/swagnames = list() for(var/slot in swag) var/obj/item/clothing/C = swag[slot] swagnames += C.get_examine_line() - . += "\n[gender == MALE ? "He" : "She"] is wearing [english_list(swagnames)]." + . += "[gender == MALE ? "He" : "She"] is wearing [english_list(swagnames)]." /obj/structure/skele_stand/attackby(obj/item/W, mob/user) if(istype(W,/obj/item/pen)) diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 4ed27d678b6..5b70c167089 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -105,6 +105,9 @@ return /obj/structure/bed/attackby(obj/item/W as obj, mob/user as mob) + if(atom_flags & ATOM_FLAG_NO_DECONSTRUCTION) + return ..() + if(isWrench(W)) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) dismantle() @@ -157,9 +160,12 @@ if(Adjacent(user)) // Robots can open/close it, but not the AI. attack_hand(user) -/obj/structure/bed/Move() +/obj/structure/bed/Move(newloc, direct) . = ..() - if(buckled_mob) + if(!.) + return + + if(buckled_mob?.buckled == src) buckled_mob.forceMove(loc, unbuckle_mob = FALSE) /obj/structure/bed/forceMove() @@ -364,8 +370,11 @@ unbuckle() -/obj/structure/bed/roller/Move() +/obj/structure/bed/roller/Move(newloc, direct) . = ..() + if(!.) + return + if(buckled_bodybag) buckled_bodybag.set_glide_size(glide_size) buckled_bodybag.forceMove(loc) diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index c47c00c07b9..d60faecf13f 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -13,6 +13,11 @@ var/propelled = 0 // Check for fire-extinguisher-driven chairs var/foldable = TRUE +/obj/structure/bed/chair/Initialize() + . = ..() + + AddElement(/datum/element/simple_rotation) + /obj/structure/bed/chair/attackby(obj/item/W as obj, mob/user as mob) ..() if(!padding_material && istype(W, /obj/item/assembly/shock_kit)) @@ -73,35 +78,22 @@ stool_cache[cache_key] = I AddOverlays(stool_cache[cache_key]) +/obj/structure/bed/chair/can_rotate(mob/user) + if(isobserver(user) && config.ghost.ghost_interaction && Adjacent(user)) + var/area/A = get_area(src) + if(A?.holy) + show_splash_text(user, "you cannot turn it there!", "\The [src] is on sacred ground, you cannot turn in.") + return FALSE + + return TRUE + + return ..(user) + /obj/structure/bed/chair/set_dir() ..() if(buckled_mob) buckled_mob.set_dir(dir) -/obj/structure/bed/chair/AltClick(mob/living/L) - if(L.is_ventcrawling) - return - rotate() - -/obj/structure/bed/chair/verb/rotate() - set name = "Rotate Chair" - set category = "Object" - set src in oview(1) - - if(!usr || !Adjacent(usr)) - return - - if(usr.is_ic_dead() && config.ghost.ghost_interaction) - var/area/A = get_area(src) - if(A?.holy) - to_chat(usr, SPAN("warning", "\The [src] is on sacred ground, you cannot turn it.")) - return - else if(usr.incapacitated()) - return - - src.set_dir(turn(src.dir, 90)) - return - /* ======================================================= */ /* -------------------- Folded Chairs -------------------- */ /* ======================================================= */ @@ -165,6 +157,10 @@ /obj/structure/bed/chair/proc/fold(mob/user) if(!foldable) return + + if(atom_flags & ATOM_FLAG_NO_DECONSTRUCTION) // No folding, bozo + return + if(!user.Adjacent(src)) return @@ -258,8 +254,11 @@ return ..() -/obj/structure/bed/chair/office/Move() +/obj/structure/bed/chair/office/Move(newloc, direct) . = ..() + if(!.) + return + if(buckled_mob) var/mob/living/occupant = buckled_mob if (occupant && (src.loc != occupant.loc)) diff --git a/code/game/objects/structures/stool_bed_chair_nest/couches.dm b/code/game/objects/structures/stool_bed_chair_nest/couches.dm index 98fe070e404..8622f36b28b 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/couches.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/couches.dm @@ -20,23 +20,23 @@ to_chat(user, SPAN("notice", "\The [src] doesn't look like it can be disassembled. Breaking it up is the only way to get rid of it.")) else if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(!WT.isOn()) - return if(health == max_health) to_chat(user, SPAN("notice", "\The [src] is undamaged.")) return - if(!WT.remove_fuel(0,user)) - to_chat(user, SPAN("notice", "You need more welding fuel to complete this task.")) - return + user.visible_message(SPAN("notice", "[user] is repairing the damage to \the [src]..."), \ - SPAN("notice", "You start repairing the damage to \the [src]...")) - playsound(src, 'sound/items/Welder.ogg', 100, 1) - if(!do_after(user, max(5, health / 3), src) && WT && WT.isOn()) + SPAN("notice", "You start repairing the damage to \the [src]...")) + if(!WT.use_tool(src, user, delay = max(5, health / 3), amount = 5)) return + + if(QDELETED(src) || !user) + return + health = max_health user.visible_message(SPAN("notice", "[user] repairs \the [src]."), \ SPAN("notice", "You repair \the [src].")) update_icon() + else if(istype(W, /obj/item/grab)) var/obj/item/grab/G = W var/mob/living/affecting = G.affecting diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm index 244795f0b78..ef38e5244b2 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm @@ -48,7 +48,7 @@ var/global/list/stool_cache = list() //haha stool /obj/item/stool/bar_new name = "wooden bar stool" icon_state = "barstool_new_preview" //set for the map - item_state = "barstool_new" + item_state = "bar_stool" base_icon = "barstool_new" /obj/item/stool/bar_new/padded diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 15039509509..6a3ff015d5d 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -96,8 +96,11 @@ create_track() driving = 0 -/obj/structure/bed/chair/wheelchair/Move() +/obj/structure/bed/chair/wheelchair/Move(newloc, direct) . = ..() + if(!.) + return + if(buckled_mob) var/mob/living/occupant = buckled_mob if(!driving) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 44531b3283c..5bef7ad25b5 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -1,37 +1,45 @@ #define SHOWER_MAX_WORKING_TIME 30 SECONDS #define MIST_SPAWN_DELAY 10 SECONDS #define SHOWER_WASH_FLOOR_INTERVAL 10 SECONDS - +#define TOILET_BRUTELOSS_PER_LIDSTOMP 8 +#define TOILET_OXYLOSS_PER_SWIRLIE 10 /obj/structure/toilet name = "toilet" desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one seems remarkably clean." icon = 'icons/obj/watercloset.dmi' icon_state = "toilet00" base_icon_state = "toilet" - density = 0 - anchored = 1 - 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 - -/obj/structure/toilet/New() - ..() - open = round(rand(0, 1)) - -/obj/structure/toiler/Initialize() + density = FALSE + anchored = TRUE + /// State of the lid (raised or lowered) + var/lid_open = FALSE + /// State of the cistern bit (closed or lid_open) + var/cistern = FALSE + // 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 + +/obj/structure/toilet/Initialize() . = ..() + lid_open = round(rand(FALSE, TRUE)) update_icon() -/obj/structure/toilet/attack_hand(mob/living/user as mob) +/obj/structure/toilet/attack_hand(mob/living/user) if(swirlie) - usr.visible_message("[user] slams the toilet seat onto [swirlie.name]'s head!", "You slam the toilet seat onto [swirlie.name]'s head!", "You hear reverberating porcelain.") - swirlie.adjustBruteLoss(8) + THROTTLE(cooldown, 0.5 SECONDS) + if(!cooldown) + return + + visible_message(SPAN_DANGER("[user] slams the toilet seat onto [swirlie.name]'s head!"), \ + "You hear reverberating porcelain.") + swirlie.adjustBruteLoss(TOILET_BRUTELOSS_PER_LIDSTOMP) + playsound(get_turf(src), GET_SFX(SFX_FIGHTING_PUNCH), 100, TRUE) return - if(cistern && !open) + if(cistern && !lid_open) if(!contents.len) - to_chat(user, "The cistern is empty.") + show_splash_text(user, "the cistern is empty!", SPAN("notice", "The cistern is empty.")) return else var/obj/item/I = pick(contents) @@ -43,35 +51,85 @@ w_items -= I.w_class return - open = !open + lid_open = !lid_open update_icon() /obj/structure/toilet/on_update_icon() - icon_state = "[base_icon_state][open][cistern]" + icon_state = "[base_icon_state][lid_open][cistern]" -/obj/structure/toilet/attackby(obj/item/I as obj, mob/living/user as mob) +/obj/structure/toilet/attackby(obj/item/I, mob/living/user) if(isCrowbar(I)) - to_chat(user, "You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"].") + show_splash_text(user, "[cistern? "replacing the lid" : "lifting the lid"]", SPAN("notice", "You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"].")) playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1) - if(do_after(user, 30, src)) - user.visible_message("[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!", "You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!", "You hear grinding porcelain.") - cistern = !cistern - update_icon() + if(!do_after(user, 3 SECONDS, src)) + return + + if(QDELETED(src)) return - if(cistern && !istype(user,/mob/living/silicon/robot)) //STOP PUTTING YOUR MODULES IN THE TOILET. + visible_message(SPAN_NOTICE("[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!"), \ + "You hear grinding porcelain.") + cistern = !cistern + update_icon() + return + + else if(istype(I, /obj/item/grab) && lid_open && !swirlie) + var/obj/item/grab/G = I + + if(!isliving(G.affecting)) + return + + if(G.current_grab.state_name == NORM_PASSIVE) + show_splash_text(user, "tighter grip is needed!", SPAN("warning", "You need a tigher grip!")) + return + + if(get_dist(G.affecting, get_turf(src)) > 1) + show_splash_text(user, "victim needs to be on the toilet!", SPAN("warning", "The victim must be held right above the toilet!")) + return + + if(lid_open && !swirlie) + user.visible_message(SPAN_DANGER("[user] starts to give [G.affecting.name] a swirlie!"), \ + SPAN_DANGER("You start to give [G.affecting.name] a swirlie!")) + swirlie = G.affecting + if(!do_after(user, 3 SECONDS, src, FALSE)) + swirlie = null + return + + if(QDELETED(src) || !G?.affecting) + swirlie = null + return + + user.visible_message(SPAN_DANGER("[user] gives [G.affecting.name] a swirlie!"), \ + SPAN_DANGER("You give [G.affecting.name] a swirlie!")) + playsound(src, 'sound/effects/toilet_flush.ogg', 100, TRUE) + if(!G?.affecting?.internal && !G.affecting.isSynthetic()) + G.affecting.adjustOxyLoss(TOILET_OXYLOSS_PER_SWIRLIE) + G.affecting.emote("gasp") + swirlie = null + return + else + user.visible_message(SPAN_DANGER("[user] slams [G.affecting.name] into the [src]!"), \ + SPAN_DANGER("You slam [G.affecting.name] into the [src]!")) + G.affecting.adjustBruteLoss(TOILET_BRUTELOSS_PER_LIDSTOMP) + return + + if(cistern && !istype(user, /mob/living/silicon/robot)) //STOP PUTTING YOUR MODULES IN THE TOILET. if(I.w_class > ITEM_SIZE_NORMAL) - to_chat(user, "\The [I] does not fit.") + show_splash_text(user, "won't fit!", SPAN("notice", "\The [I] does not fit.")) return + if(w_items + I.w_class > 5) - to_chat(user, "The cistern is full.") + show_splash_text(user, "cistern is full!", SPAN("notice", "The cistern is full.")) return + if(!user.drop(I, src)) return w_items += I.w_class - to_chat(user, "You carefully place \the [I] into the cistern.") + show_splash_text(user, "item placed into the cistern", "You carefully place \the [I] into the cistern.") return + return ..() + /obj/structure/toilet/gold name = "golden toilet" desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one is LUXURIOUS." @@ -362,6 +420,7 @@ icon = 'icons/obj/watercloset.dmi' icon_state = "rubberducky" item_state = "rubberducky" + slot_flags = SLOT_HEAD @@ -453,6 +512,8 @@ R.cell.charge -= 20 else B.deductcharge(B.hitcost) + + playsound(get_turf(src), GET_SFX(SFX_SPARK_SMALL), 50, TRUE, -1) user.visible_message( \ "[user] was stunned by \his wet [O]!", \ "[user] was stunned by \his wet [O]!") @@ -518,3 +579,5 @@ #undef SHOWER_MAX_WORKING_TIME #undef MIST_SPAWN_DELAY #undef SHOWER_WASH_FLOOR_INTERVAL +#undef TOILET_BRUTELOSS_PER_LIDSTOMP +#undef TOILET_OXYLOSS_PER_SWIRLIE diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index a0d8fb0523a..87da96b2bce 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -30,6 +30,9 @@ /obj/structure/windoor_assembly/New(Loc, start_dir=NORTH, constructed=0) ..() + + AddElement(/datum/element/simple_rotation) + if(constructed) state = "01" anchored = 0 @@ -72,24 +75,22 @@ if("01") if(isWelder(W) && !anchored ) var/obj/item/weldingtool/WT = W - if (WT.remove_fuel(0,user)) - user.visible_message("[user] dissassembles the windoor assembly.", "You start to dissassemble the windoor assembly.") - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) - - if(do_after(user, 40,src)) - if(!src || !WT.isOn()) return - to_chat(user, "You dissasembled the windoor assembly!") - if(material_used == MATERIAL_REINFORCED_PLASS) - new /obj/item/stack/material/glass/rplass(get_turf(src), 5) - else - new /obj/item/stack/material/glass/reinforced(get_turf(src), 5) - if(secure) - new /obj/item/stack/rods(get_turf(src), 4) - qdel(src) - else - to_chat(user, "You need more welding fuel to dissassemble the windoor assembly.") + user.visible_message("[user] dissassembles the windoor assembly.", "You start to dissassemble the windoor assembly.") + if(!WT.use_tool(src, user, delay = 4 SECONDS, amount = 5)) return + if(QDELETED(src)|| !user) + return + + to_chat(user, SPAN_NOTICE("You dissasembled the windoor assembly!")) + if(material_used == MATERIAL_REINFORCED_PLASS) + new /obj/item/stack/material/glass/rplass(get_turf(src), 5) + else + new /obj/item/stack/material/glass/reinforced(get_turf(src), 5) + if(secure) + new /obj/item/stack/rods(get_turf(src), 4) + qdel(src) + //Wrenching an unsecure assembly anchors it in place. Step 4 complete if(isWrench(W) && !anchored) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) @@ -224,7 +225,7 @@ /obj/structure/windoor_assembly/proc/finish_door(mob/user) set_density(TRUE) - show_splash_text(user, "Door finished!") + show_splash_text(user, "Door finished!", SPAN("notice", "You have finished assembling the door!")) if(secure) var/obj/machinery/door/window/brigdoor/windoor = new created_windoor_secure(get_turf(loc)) @@ -266,20 +267,25 @@ qdel_self() //Rotates the windoor assembly clockwise -/obj/structure/windoor_assembly/verb/revrotate() - set name = "Rotate Windoor Assembly" - set category = "Object" - set src in oview(1) +/obj/structure/windoor_assembly/rotate(mob/user) + if(state != "01") + update_nearby_tiles(need_rebuild = TRUE) //Compel updates before + + ..() + + if(state != "01") + update_nearby_tiles(need_rebuild = TRUE) - if (src.anchored) - to_chat(usr, "It is fastened to the floor; therefore, you can't rotate it!") - return 0 - if(src.state != "01") + update_icon() + return + +/obj/structure/windoor_assembly/rotate_counter(mob/user) + if(state != "01") update_nearby_tiles(need_rebuild=1) //Compel updates before - src.set_dir(turn(src.dir, 270)) + ..() - if(src.state != "01") + if(state != "01") update_nearby_tiles(need_rebuild=1) update_icon() diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 63cf46ee659..e2fd1f9ccc8 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -9,6 +9,7 @@ layer = SIDE_WINDOW_LAYER anchored = 1.0 atom_flags = ATOM_FLAG_CHECKS_BORDER + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION var/maxhealth = 14.0 var/maximal_heat = 100 CELSIUS // Maximal heat before this window begins taking damage from fire var/damage_per_fire_tick = 2.0 // Amount of damage per fire tick. Regular windows are not fireproof so they might as well break quickly. @@ -22,7 +23,7 @@ var/glasstype = null // Set this in subtypes. Null is assumed strange or otherwise impossible to dismantle, such as for shuttle glass. var/silicate = 0 // number of units of silicate var/real_explosion_block // ignore this, just use explosion_block - var/is_full_window = FALSE + var/is_full_window = FALSE //TODO: Make full windows a separate type of window. hitby_sound = SFX_GLASS_HIT hitby_loudness_multiplier = 2.0 @@ -33,28 +34,29 @@ RADIATION_HAWKING = 1 ELECTRONVOLT ) -/obj/structure/window/_examine_text(mob/user) +/obj/structure/window/examine(mob/user, infix) . = ..() if(health == maxhealth) - . += "\nIt looks fully intact." + . += SPAN_NOTICE("It looks fully intact.") else var/perc = health / maxhealth if(perc > 0.75) - . += "\nIt has a few cracks." + . += SPAN_NOTICE("It has a few cracks.") else if(perc > 0.5) - . += "\nIt looks slightly damaged." + . += SPAN_NOTICE("It looks slightly damaged.") else if(perc > 0.25) - . += "\nIt looks moderately damaged." + . += SPAN_NOTICE("It looks moderately damaged.") else - . += "\nIt looks heavily damaged." + . += SPAN_DANGER("It looks heavily damaged.") + if(silicate) if (silicate < 30) - . += "\nIt has a thin layer of silicate." + . += SPAN_NOTICE("It has a thin layer of silicate.") else if (silicate < 70) - . += "\nIt is covered in silicate." + . += SPAN_NOTICE("It is covered in silicate.") else - . += "\nThere is a thick layer of silicate covering it." + . += SPAN_NOTICE("There is a thick layer of silicate covering it.") /obj/structure/window/GetExplosionBlock() return reinf && (state == 5) ? real_explosion_block : 0 @@ -103,8 +105,11 @@ if(display_message) visible_message("[src] shatters!") - cast_new(shardtype, is_full_window ? 4 : 1, loc) - if(reinf) cast_new(/obj/item/stack/rods, is_full_window ? 4 : 1, loc) + if(!(atom_flags & ATOM_FLAG_HOLOGRAM)) + cast_new(shardtype, is_full_window ? 4 : 1, loc) + if(reinf) + cast_new(/obj/item/stack/rods, is_full_window ? 4 : 1, loc) + qdel(src) return @@ -220,6 +225,11 @@ user.do_attack_animation(src) shatter() + else if(MUTATION_STRONG in user.mutations) + user.visible_message(SPAN("danger", "[user] smashes through [src]!")) + user.do_attack_animation(src) + shatter() + else if (user.a_intent && user.a_intent == I_HURT) if (istype(user,/mob/living/carbon/human)) @@ -306,7 +316,6 @@ if(health <= 7) set_anchored(FALSE) step(src, get_dir(user, src)) - update_verbs() else visible_message(SPAN("danger", "[user] hits [src] with [W], but it bounces off!")) playsound(loc, GET_SFX(SFX_GLASS_HIT), 75, 1) @@ -318,48 +327,23 @@ return -/obj/structure/window/proc/rotate() - set name = "Rotate Window Counter-Clockwise" - set category = "Object" - set src in oview(1) - - if(usr.incapacitated()) - return 0 - +/obj/structure/window/rotate(mob/user) if(is_full_window) // No point in rotating a window if it is full - return 0 - - if(anchored) - to_chat(usr, "It is fastened to the floor therefore you can't rotate it!") - return 0 + return + ..() update_nearby_tiles(need_rebuild=1) //Compel updates before - set_dir(turn(dir, 90)) updateSilicate() update_nearby_tiles(need_rebuild=1) - return - - -/obj/structure/window/proc/revrotate() - set name = "Rotate Window Clockwise" - set category = "Object" - set src in oview(1) - - if(usr.incapacitated()) - return 0 +/obj/structure/window/rotate_counter(mob/user) if(is_full_window) // No point in rotating a window if it is full - return 0 - - if(anchored) - to_chat(usr, "It is fastened to the floor therefore you can't rotate it!") - return 0 + return + ..() update_nearby_tiles(need_rebuild=1) //Compel updates before - set_dir(turn(dir, 270)) updateSilicate() update_nearby_tiles(need_rebuild=1) - return /obj/structure/window/New(Loc, start_dir=null, constructed=0) ..() @@ -391,7 +375,7 @@ W.update_icon() -/obj/structure/window/Move() +/obj/structure/window/Move(newloc, direct) var/ini_dir = dir update_nearby_tiles(need_rebuild=1) . = ..() @@ -402,7 +386,6 @@ if(anchored == new_anchored) return anchored = new_anchored - update_verbs() update_nearby_icons() //This proc is used to update the icons of nearby windows. It should not be confused with update_nearby_tiles(), which is an atmos proc! @@ -411,15 +394,6 @@ for(var/obj/structure/window/W in orange(src, 1)) W.update_icon() -//Updates the availabiliy of the rotation verbs -/obj/structure/window/proc/update_verbs() - if(anchored) - verbs -= /obj/structure/window/proc/rotate - verbs -= /obj/structure/window/proc/revrotate - else - verbs += /obj/structure/window/proc/rotate - verbs += /obj/structure/window/proc/revrotate - //merges adjacent full-tile windows into one (blatant ripoff from game/smoothwall.dm) /obj/structure/window/on_update_icon() //A little cludge here, since I don't know how it will work with slim windows. Most likely VERY wrong. @@ -530,6 +504,8 @@ real_explosion_block = explosion_block explosion_block = EXPLOSION_BLOCK_PROC + AddElement(/datum/element/simple_rotation) + /obj/structure/window/reinforced/full dir = 5 icon_state = "fwindow" @@ -540,7 +516,12 @@ desc = "It looks rather strong and opaque. Might take a few good hits to shatter it." icon_state = "twindow" basestate = "twindow" - opacity = 1 + opacity = TRUE + +/obj/structure/window/reinforced/tinted/full + icon_state = "rblackwindow_preview" + basestate = "rblackwindow" + is_full_window = TRUE /obj/structure/window/reinforced/tinted/frosted name = "frosted window" diff --git a/code/game/objects/structures/window_frame.dm b/code/game/objects/structures/window_frame.dm index 7dbe8537f2b..8295d9d1fbb 100644 --- a/code/game/objects/structures/window_frame.dm +++ b/code/game/objects/structures/window_frame.dm @@ -426,18 +426,20 @@ for(var/obj/structure/window_frame/W in orange(src, 1)) W.update_icon() -/obj/structure/window_frame/_examine_text(mob/user) +/obj/structure/window_frame/examine(mob/user, infix) . = ..() + if(outer_pane) if(frame_state == FRAME_REINFORCED) - . += "\nIt has an outer [outer_pane.name] installed. [outer_pane.get_damage_desc()]" + . += "It has an outer [outer_pane.name] installed. [outer_pane.get_damage_desc()]" else - . += "\nIt has a [outer_pane.name] installed. [outer_pane.get_damage_desc()]" + . += "It has a [outer_pane.name] installed. [outer_pane.get_damage_desc()]" + if(inner_pane) - . += "\nIt has an inner [inner_pane.name] installed. [inner_pane.get_damage_desc()]" + . += "It has an inner [inner_pane.name] installed. [inner_pane.get_damage_desc()]" if(signaler) - . += "\n There is a signaler attached to the wiring." + . += "There is a signaler attached to the wiring." /obj/structure/window_frame/Bumped(atom/user) if(ismob(user)) @@ -493,6 +495,11 @@ user.do_attack_animation(src) affected.shatter() + else if(MUTATION_STRONG in user.mutations) + user.visible_message(SPAN("danger", "[user] smashes through \the [src]!")) + user.do_attack_animation(src) + affected.shatter() + else if(user.a_intent == I_HURT) if(ishuman(user)) var/mob/living/carbon/human/H = user @@ -515,7 +522,7 @@ playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) user.do_attack_animation(src) - var/damage_dealt = 1 + var/damage_dealt = 2 var/attack_message = "kicks" if(istype(user,/mob/living/carbon/human)) var/mob/living/carbon/human/H = user @@ -528,8 +535,9 @@ if(MUTATION_HULK in user.mutations) damage_dealt += 5 - else - damage_dealt += 1 + + if(MUTATION_STRONG in user.mutations) + damage_dealt += 5 attack_generic(user, damage_dealt, attack_message) diff --git a/code/game/storyteller/characters/thirteen.dm b/code/game/storyteller/characters/thirteen.dm index 07bca6e60de..0ce9a4fdf8e 100644 --- a/code/game/storyteller/characters/thirteen.dm +++ b/code/game/storyteller/characters/thirteen.dm @@ -11,12 +11,12 @@ /datum/storyteller_character/thirteen/New() ..() - addtimer(CALLBACK(src, nameof(.proc/letthefunbegin)), 10 MINUTES) + set_next_think(world.time + 10 MINUTES) -/datum/storyteller_character/thirteen/proc/letthefunbegin() +/datum/storyteller_character/thirteen/think() difficulty_hard_cap += difficulty_increment if(difficulty_hard_cap > 100) simultaneous_event_fire = TRUE if(difficulty_hard_cap - difficulty_soft_cap > 75) difficulty_soft_cap += difficulty_increment - addtimer(CALLBACK(src, nameof(.proc/letthefunbegin)), 3 MINUTES) + set_next_think(world.time + 3 MINUTES) diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 31196998ee1..e5cb99c1058 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -113,6 +113,7 @@ icon = 'icons/turf/flooring/tiles.dmi' icon_state = "reinforced" initial_flooring = /decl/flooring/reinforced + holodeck_compatible = TRUE /turf/simulated/floor/reinforced/airless initial_gas = null diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index a2807f2a601..6d35569ee81 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -13,7 +13,9 @@ var/max_fire_temperature_sustained = 0 //The max temperature of the fire which it was subjected to var/dirt = 0 - var/timer_id +/turf/simulated/Initialize(mapload, ...) + . = ..() + add_think_ctx("unwet_context", CALLBACK(src, nameof(.proc/unwet_floor)), 0 ) /turf/simulated/post_change() ..() @@ -32,12 +34,12 @@ wet_overlay = image('icons/effects/water.dmi',src,"wet_floor") AddOverlays(wet_overlay) - timer_id = addtimer(CALLBACK(src, nameof(.proc/unwet_floor)), 20 SECONDS, TIMER_STOPPABLE|TIMER_UNIQUE|TIMER_NO_HASH_WAIT|TIMER_OVERRIDE) + set_next_think_ctx("unwet_context", world.time + 20 SECONDS) /turf/simulated/proc/unwet_floor(check_very_wet = TRUE) if(check_very_wet && wet >= 2) wet-- - timer_id = addtimer(CALLBACK(src, nameof(.proc/unwet_floor)), 20 SECONDS, TIMER_STOPPABLE|TIMER_UNIQUE|TIMER_NO_HASH_WAIT|TIMER_OVERRIDE) + set_next_think_ctx("unwet_context", world.time + 20 SECONDS) return wet = 0 diff --git a/code/game/turfs/simulated/floor_acts.dm b/code/game/turfs/simulated/floor_acts.dm index 3b1c0a0d3c2..79d2c6c6990 100644 --- a/code/game/turfs/simulated/floor_acts.dm +++ b/code/game/turfs/simulated/floor_acts.dm @@ -166,7 +166,7 @@ for(var/obj/machinery/door/door in src) if(istype(door, /obj/machinery/door/window)) continue - show_splash_text(user, "there's already a door!") + show_splash_text(user, "there's already a door!", "\icon[src] There's already a door!") return FALSE var/obj/structure/windoor_assembly/assembly = new (src, user.dir) @@ -176,7 +176,7 @@ return TRUE for(var/obj/machinery/door/door in src) - show_splash_text(user, "there's already a door!") + show_splash_text(user, "there's already a door!", "\icon[src] There's already a door!") return FALSE //create the assembly and let it finish itself @@ -205,7 +205,7 @@ if(RCD_DECONSTRUCT) if(rcd_proof) - show_splash_text(user, "it's too thick!") + show_splash_text(user, "it's too thick!", "\icon[src] It's too thick!") return FALSE dismantle_floor() diff --git a/code/game/turfs/simulated/floor_attackby.dm b/code/game/turfs/simulated/floor_attackby.dm index aff66436635..3c817beb0a5 100644 --- a/code/game/turfs/simulated/floor_attackby.dm +++ b/code/game/turfs/simulated/floor_attackby.dm @@ -1,4 +1,6 @@ /turf/simulated/floor/attackby(obj/item/C as obj, mob/user as mob) + if(atom_flags & ATOM_FLAG_NO_DECONSTRUCTION) + return if(!C || !user) return 0 @@ -128,30 +130,26 @@ else if(isWelder(C)) var/obj/item/weldingtool/welder = C - if(welder.isOn() && (is_plating())) + if((is_plating())) if(broken || burnt) - if(welder.isOn()) + if(welder.use_tool(src, user, amount = 1)) to_chat(user, "You fix some dents on the broken plating.") playsound(src, 'sound/items/Welder.ogg', 80, 1) icon_state = base_icon_state burnt = null broken = null - else - to_chat(user, "You need more welding fuel to complete this task.") - return else - if(welder.isOn()) - playsound(src, 'sound/items/Welder.ogg', 80, 1) - visible_message("[user] has started melting the plating's reinforcements!") - if(do_after(user, 5 SECONDS) && welder.isOn()) - visible_message("[user] has melted the plating's reinforcements! It should be possible to pry it off.") - playsound(src, 'sound/items/Welder.ogg', 80, 1) - burnt = 1 - remove_decals() - update_icon() - else - to_chat(user, "You need more welding fuel to complete this task.") - return + visible_message("[user] has started melting the plating's reinforcements!") + if(!welder.use_tool(src, user, delay = 5 SECONDS, amount = 5)) + return + + if(QDELETED(src) || !user) + return + + visible_message("[user] has melted the plating's reinforcements! It should be possible to pry it off.") + burnt = 1 + remove_decals() + update_icon() return ..() diff --git a/code/game/turfs/simulated/floor_icon.dm b/code/game/turfs/simulated/floor_icon.dm index 148719e0ede..ef41119cc87 100644 --- a/code/game/turfs/simulated/floor_icon.dm +++ b/code/game/turfs/simulated/floor_icon.dm @@ -57,6 +57,8 @@ var/list/flooring_cache = list() if(!isnull(burnt) && (flooring.flags & TURF_CAN_BURN)) AddOverlays(get_damage_overlay("burned[burnt]")) + update_graphic(zone?.air?.graphic) + if(update_neighbors) for(var/turf/simulated/floor/F in orange(src, 1)) F.update_icon() diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index de7e7aa96e7..bba402077fe 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -94,7 +94,7 @@ add_fingerprint(user) user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) var/rotting = (locate(/obj/effect/overlay/wallrot) in src) - if (MUTATION_HULK in user.mutations) + if((MUTATION_HULK in user.mutations) || (MUTATION_STRONG in user.mutations)) if (rotting || !prob(material.hardness)) success_smash(user) else @@ -139,12 +139,14 @@ if(locate(/obj/effect/overlay/wallrot) in src) if(isWelder(W)) var/obj/item/weldingtool/WT = W - if( WT.remove_fuel(0,user) ) - to_chat(user, SPAN("notice","You burn away the fungi with \the [WT].")) - playsound(src, 'sound/items/Welder.ogg', 10, 1) - for(var/obj/effect/overlay/wallrot/WR in src) - qdel(WR) + if(!WT.use_tool(src, user, amount = 1)) return + + to_chat(user, SPAN("notice","You burn away the fungi with \the [WT].")) + playsound(src, 'sound/items/Welder.ogg', 10, 1) + for(var/obj/effect/overlay/wallrot/WR in src) + qdel(WR) + return else if(!is_sharp(W) && W.force >= 10 || W.force >= 20) to_chat(user, SPAN("notice","\The [src] crumbles away under the force of your [W.name].")) src.dismantle_wall(1) @@ -154,10 +156,12 @@ if(thermite) if(isWelder(W)) var/obj/item/weldingtool/WT = W - if( WT.remove_fuel(0,user) ) - thermitemelt(user) + if(!WT.use_tool(src, user, amount = 1)) return + thermitemelt(user) + return + else if(istype(W, /obj/item/gun/energy/plasmacutter)) thermitemelt(user) return @@ -176,21 +180,16 @@ var/turf/T = user.loc //get user's location for delay checks if(damage && isWelder(W)) - var/obj/item/weldingtool/WT = W - - if(!WT.isOn()) + to_chat(user, SPAN("notice","You start repairing the damage to [src].")) + if(!WT.use_tool(src, user, delay = max(5, damage / 5), amount = 5)) return - if(WT.remove_fuel(0,user)) - to_chat(user, SPAN("notice","You start repairing the damage to [src].")) - playsound(src, 'sound/items/Welder.ogg', 100, 1) - if(do_after(user, max(5, damage / 5), src) && WT && WT.isOn()) - to_chat(user, SPAN("notice","You finish repairing the damage to [src].")) - take_damage(-damage) - else - to_chat(user, SPAN("notice","You need more welding fuel to complete this task.")) + if(QDELETED(src) || !user) return + + to_chat(user, SPAN("notice","You finish repairing the damage to [src].")) + take_damage(-damage) return // Basic dismantling. @@ -202,14 +201,19 @@ if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(!WT.isOn()) + to_chat(user, SPAN("notice", "You begin cutting through the outer plating.")) + + if(!WT.use_tool(src, user, cut_delay * 0.7, 5)) return - if(!WT.remove_fuel(0,user)) - to_chat(user, SPAN("notice","You need more welding fuel to complete this task.")) + + if(QDELETED(src) || !user) return - dismantle_verb = "cutting" - dismantle_sound = 'sound/items/Welder.ogg' - cut_delay *= 0.7 + + to_chat(user, SPAN("notice","You remove the outer plating.")) + dismantle_wall() + user.visible_message(SPAN("warning","\The [src] was torn open by [user]!")) + return + else if(istype(W,/obj/item/melee/energy/blade)) dismantle_sound = "spark" dismantle_verb = "slicing" @@ -229,7 +233,7 @@ if(cut_delay<0) cut_delay = 0 - if(!do_after(user,cut_delay,src)) + if(!do_after(user, cut_delay, src)) return to_chat(user, SPAN("notice","You remove the outer plating.")) @@ -267,27 +271,37 @@ to_chat(user, SPAN("notice", "You replace the outer grille.")) return if(4) - var/cut_cover if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(!WT.isOn()) + if(!WT.use_tool(src, user, amount = 1)) + return + + to_chat(user, SPAN("notice","You begin slicing through the metal cover.")) + if(!WT.use_tool(src, user, delay = 6 SECONDS, amount = 5) || !istype(src, /turf/simulated/wall) || construction_stage != 4) return - if(WT.remove_fuel(0,user)) - cut_cover=1 - else - to_chat(user, SPAN("notice", "You need more welding fuel to complete this task.")) + + if(QDELETED(src)) return + + construction_stage = 3 + update_icon() + to_chat(user, SPAN("notice","You press firmly on the cover, dislodging it.")) + return + else if (istype(W, /obj/item/gun/energy/plasmacutter)) - cut_cover = 1 - if(cut_cover) to_chat(user, SPAN("notice","You begin slicing through the metal cover.")) playsound(src, 'sound/items/Welder.ogg', 100, 1) if(!do_after(user, 60, src) || !istype(src, /turf/simulated/wall) || construction_stage != 4) return + + if(QDELETED(src)) + return + + to_chat(user, SPAN("notice","You press firmly on the cover, dislodging it.")) construction_stage = 3 update_icon() - to_chat(user, SPAN("notice","You press firmly on the cover, dislodging it.")) return + if(3) if(isCrowbar(W)) to_chat(user, SPAN("notice","You struggle to pry off the cover.")) @@ -309,26 +323,36 @@ to_chat(user, SPAN("notice","You remove the bolts anchoring the support rods.")) return if(1) - var/cut_cover if(isWelder(W)) var/obj/item/weldingtool/WT = W - if( WT.remove_fuel(0,user) ) - cut_cover=1 - else - to_chat(user, SPAN("notice","You need more welding fuel to complete this task.")) + to_chat(user, SPAN("notice","You begin slicing through the support rods.")) + if(!WT.use_tool(src, user, delay = 7 SECONDS, amount = 5) || !istype(src, /turf/simulated/wall) || construction_stage != 1) + return + + if(QDELETED(src)) return + + construction_stage = 0 + update_icon() + new /obj/item/stack/rods(src) + to_chat(user, SPAN("notice","The support rods drop out as you cut them loose from the frame.")) + return + else if(istype(W, /obj/item/gun/energy/plasmacutter)) - cut_cover = 1 - if(cut_cover) to_chat(user, SPAN("notice","You begin slicing through the support rods.")) playsound(src, 'sound/items/Welder.ogg', 100, 1) if(!do_after(user,70,src) || !istype(src, /turf/simulated/wall) || construction_stage != 1) return + + if(QDELETED(src)) + return + construction_stage = 0 update_icon() new /obj/item/stack/rods(src) to_chat(user, SPAN("notice","The support rods drop out as you cut them loose from the frame.")) return + if(0) if(isCrowbar(W)) to_chat(user, SPAN("notice","You struggle to pry off the outer sheath.")) diff --git a/code/game/turfs/simulated/wall_icon.dm b/code/game/turfs/simulated/wall_icon.dm index 9450b3b06b7..60f6d86b288 100644 --- a/code/game/turfs/simulated/wall_icon.dm +++ b/code/game/turfs/simulated/wall_icon.dm @@ -45,18 +45,18 @@ var/image/I if(!density) - I = OVERLAY(masks_icon, "[material.icon_base]fwall_open") - I.color = material.icon_colour - AddOverlays(I) + icon = masks_icon + icon_state = "[material.icon_base]fwall_open" + color = material.icon_colour return - I = image(GLOB.bitmask_icon_sheets["wall_[material.icon_base]"], "[wall_connections]") - I.color = material.icon_colour - AddOverlays(I) + icon = GLOB.bitmask_icon_sheets["wall_[material.icon_base]"] + icon_state = "[wall_connections]" + color = material.icon_colour if(reinf_material) if(construction_stage != null && construction_stage < 6) - I = OVERLAY(masks_icon, "reinf_construct-[construction_stage]") + I = OVERLAY(masks_icon, "reinf_construct-[construction_stage]", appearance_flags = RESET_COLOR) I.color = reinf_material.icon_colour AddOverlays(I) else @@ -65,10 +65,12 @@ if("[reinf_material.icon_reinf]0" in mask_overlay_states[masks_icon]) I = image(GLOB.bitmask_icon_sheets["wall_[reinf_material.icon_reinf]"], "[wall_connections]") I.color = reinf_material.icon_colour + I.appearance_flags = DEFAULT_APPEARANCE_FLAGS | RESET_COLOR AddOverlays(I) else I = OVERLAY(masks_icon, reinf_material.icon_reinf) I.color = reinf_material.icon_colour + I.appearance_flags = DEFAULT_APPEARANCE_FLAGS | RESET_COLOR AddOverlays(I) if(damage != 0) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index b00e2227f59..49589e893bb 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -6,7 +6,7 @@ opacity = 1 density = 1 blocks_air = 1 - plane = TURF_PLANE + plane = DEFAULT_PLANE // TURF_PLANE is for floors, but here we need structure-like rendering. thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT heat_capacity = 312500 //a little over 5 cm thick , 312500 for 1 m by 2.5 m by 0.25 m plasteel wall hitby_sound = 'sound/effects/metalhit2.ogg' @@ -276,22 +276,21 @@ return ..() //Appearance -/turf/simulated/wall/_examine_text(mob/user) +/turf/simulated/wall/examine(mob/user, infix) . = ..() - if(!damage) - . += "\nIt looks fully intact." + . += SPAN_NOTICE("It looks fully intact.") else var/dam = damage / material.integrity if(dam <= 0.3) - . += "\nIt looks slightly damaged." + . += SPAN_WARNING("It looks slightly damaged.") else if(dam <= 0.6) - . += "\nIt looks moderately damaged." + . += SPAN_WARNING("It looks moderately damaged.") else - . += "\nIt looks heavily damaged." + . += SPAN_WARNING("It looks heavily damaged.") if(locate(/obj/effect/overlay/wallrot) in src) - . += "\nThere is fungus growing on [src]." + . += SPAN_WARNING("There is fungus growing on [src].") //Damage diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 27a9101b39d..562671cac59 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -41,6 +41,9 @@ var/turf_height = 0 // "Vertical" offset. Mostly used for mobs and dropped items. + /// Whether this turf can be used inside a blank holodeck i.e reinforced tile. + var/holodeck_compatible = FALSE + /// If this turf contained an RCD'able object (or IS one, for walls) /// but is now destroyed, this will preserve the value. /// See __DEFINES/construction.dm for RCD_MEMORY_*. @@ -304,16 +307,14 @@ var/const/enterloopsanity = 100 /turf/allow_drop() return TRUE -/turf/_examine_text(mob/user, infix, suffix) +/turf/examine(mob/user, infix) . = ..() if(hasHUD(user, HUD_SCIENCE)) - . += "\nStopping Power:" - - . += "\nα-particle: [fmt_siunit(CONV_JOULE_ELECTRONVOLT(rad_resist[RADIATION_ALPHA_PARTICLE]), "eV", 3)]" - . += "\nβ-particle: [fmt_siunit(CONV_JOULE_ELECTRONVOLT(rad_resist[RADIATION_BETA_PARTICLE]), "eV", 3)]" + . += "Stopping Power:" - return . + . += "α-particle: [fmt_siunit(CONV_JOULE_ELECTRONVOLT(rad_resist[RADIATION_ALPHA_PARTICLE]), "eV", 3)]" + . += "β-particle: [fmt_siunit(CONV_JOULE_ELECTRONVOLT(rad_resist[RADIATION_BETA_PARTICLE]), "eV", 3)]" /turf/proc/get_footstep_sound() if(footstep_sound) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 711b29c1895..ac4cef30097 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -52,3 +52,8 @@ else to_chat(src, "Current Storyteller: [SSstoryteller.character.name] - [SSstoryteller.character.desc]") +/client/verb/fix_stat_panel() + set name = "Fix Stat Panel" + set hidden = TRUE + + init_verbs() diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 257afa45733..8150f64895e 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -78,6 +78,9 @@ entry += " (?)" + if(config.external.sql_enabled && watchlist.Check(C.ckey)) + entry += " (IN WATCHLIST!)" + lines += entry else if(rights) for(var/client/C in GLOB.clients) diff --git a/code/game/world.dm b/code/game/world.dm index 01910d1ec0e..f9e1a0fa27c 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -114,6 +114,29 @@ var/server_name = "OnyxBay" return #endif +/world/proc/__init_prometheus(server_name, port) + rustg_prom_set_labels(list("server" = server_name)) + rustg_prom_init(port) + + // Register all the metrics here + + rustg_prom_counter_register(PROM_MASTER_ITERATIONS, "How many times have we ran") + rustg_prom_gauge_float_register(PROM_MASTER_TICK_DRIFT, "Tick drift") + rustg_prom_gauge_float_register(PROM_SUBSYSTEM_COST, "Average time to execute") + rustg_prom_gauge_float_register(PROM_SUBSYSTEM_TICKS_TO_RUN, "How many ticks does this subsystem take to run on avg") + rustg_prom_gauge_float_register(PROM_SUBSYSTEM_TICK_USAGE, "Average tick usage") + rustg_prom_gauge_float_register(PROM_SUBSYSTEM_TICK_OVERRUN, "Average tick overrun") + rustg_prom_counter_register(PROM_RUNTIMES, "Total amount of runtimes") + rustg_prom_gauge_int_register(PROM_TOTAL_PLAYERS, "Total amount of players") + rustg_prom_gauge_int_register(PROM_GC_QUEUED, "Count of queued datums to be deleted") + rustg_prom_counter_register(PROM_GC_HARD_DELS, "Count of hard deleted datums") + rustg_prom_counter_register(PROM_GC_COLLECTED, "Count of garbage collected datums") + rustg_prom_counter_register(PROM_GC_ITEM_QDELS, "Total number of times it's passed thru qdel") + rustg_prom_counter_register(PROM_GC_ITEM_FAILURES, "Times it was queued for soft deletion but failed to soft delete.") + rustg_prom_counter_register(PROM_GC_ITEM_HARD_DELETES, "Different from failures because it also includes QDEL_HINT_HARDDEL deletions") + rustg_prom_gauge_int_register(PROM_MOBS_TOTAL, "Total amount of mobs") + rustg_prom_gauge_int_register(PROM_MOBS_INSTANCE_TOTAL, "Total amount of mob's instances") + #define RECOMMENDED_VERSION 514 /world/New() __init_tracy() @@ -130,6 +153,11 @@ var/server_name = "OnyxBay" // Load up the base config.toml config.load_configuration() + if(config.general.prometheus_port) + to_world_log("Enabled metrics endpoint on [config.general.prometheus_port]") + + __init_prometheus(config.general.server_id, config.general.prometheus_port) + if(config.general.server_port) var/port = OpenPort(config.general.server_port) to_world_log(port ? "Changed port to [port]" : "Failed to change port") diff --git a/code/modules/Z_item_worth/reagents.dm b/code/modules/Z_item_worth/reagents.dm index 2efe3f73cd2..e7bd2248423 100644 --- a/code/modules/Z_item_worth/reagents.dm +++ b/code/modules/Z_item_worth/reagents.dm @@ -108,12 +108,6 @@ /datum/reagent/drink/milk/cream value = 0.12 -/datum/reagent/drink/coffee - value = 0.12 - -/datum/reagent/drink/coffee/soy_latte - value = 0.13 - /datum/reagent/drink/hot_coco value = 0.11 @@ -153,7 +147,7 @@ /datum/reagent/ethanol/gin value = 0.1 -/datum/reagent/ethanol/coffee/kahlua +/datum/reagent/ethanol/kahlua value = 0.14 /datum/reagent/ethanol/melonliquor diff --git a/code/modules/Z_item_worth/worths_list.dm b/code/modules/Z_item_worth/worths_list.dm index e5b9a1a5b58..455dec00d4d 100644 --- a/code/modules/Z_item_worth/worths_list.dm +++ b/code/modules/Z_item_worth/worths_list.dm @@ -78,6 +78,7 @@ var/list/worths = list( /obj/item/stack/material/silver = -45, /obj/item/stack/material/platinum = -95, /obj/item/stack/material/mhydrogen = -110, + /obj/item/stack/material/adamantine = -125, /obj/item/stack/material/tritium = -100, /obj/item/stack/material/osmium = -100, /obj/item/stack/material/plasteel = -40, @@ -318,8 +319,7 @@ var/list/worths = list( /obj/item/board = 15, /obj/item/deck/holder = 10, /obj/item/pack = 6, - /obj/item/holo = 0, - /obj/item/beach_ball/holoball = 0, + /obj/item/beach_ball/basketball = 0, /obj/item/book = 15, //CLOTHING, //EARS, @@ -605,8 +605,7 @@ var/list/worths = list( /obj/structure/alien = 300, /obj/structure/closet = 15, /obj/structure/bed = 7, - /obj/structure/holostool = 0, - /obj/structure/holohoop = 0, + /obj/structure/hoop = 0, /obj/structure/bookcase = 50, /obj/structure/barricade/material = -1, /obj/structure = 30, @@ -742,7 +741,6 @@ var/list/worths = list( /obj/machinery/computer/account_database = -3000, /obj/machinery/atm = -4500, /obj/machinery/food_replicator = -9000, - /obj/machinery/readybutton = -0, /obj/machinery/botany/editor = -16000, /obj/machinery/botany = -9050, /obj/machinery/seed_storage = -500, diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index c93881ee5e4..688ac192339 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -200,7 +200,7 @@ var/global/floorIsLava = 0 var/f = 1 for(var/k in all_languages) var/datum/language/L = all_languages[k] - if(!(L.flags & INNATE)) + if(!(L.language_flags & INNATE)) if(!f) body += " | " else f = 0 if(L in M.languages) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index d5833b80190..836cda5d1db 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -196,7 +196,6 @@ var/list/admin_verbs_debug = list( /client/proc/air_report, /client/proc/reload_admins, /client/proc/reload_mentors, - /client/proc/restart_controller, /client/proc/print_random_map, /client/proc/create_random_map, /client/proc/apply_random_map, @@ -220,6 +219,8 @@ var/list/admin_verbs_debug = list( /datum/admins/proc/view_runtimes, /client/proc/cmd_analyse_health_context, /client/proc/cmd_analyse_health_panel, + /client/proc/cmd_view_language_context, + /client/proc/cmd_view_language_panel, /client/proc/visualpower, /client/proc/visualpower_remove, /client/proc/hard_del, @@ -295,7 +296,6 @@ var/list/admin_verbs_hideable = list( /datum/admins/proc/adrev, /datum/admins/proc/adspawn, /datum/admins/proc/adjump, - /client/proc/restart_controller, /client/proc/cmd_admin_list_open_jobs, /client/proc/callproc, /client/proc/callproc_target, @@ -354,28 +354,47 @@ var/list/admin_verbs_mentor = list( ) /client/proc/add_admin_verbs() - if(holder) - verbs += admin_verbs_default - if(holder.rights & R_BUILDMODE) verbs += /client/proc/togglebuildmodeself - if(holder.rights & R_ADMIN) verbs += admin_verbs_admin - if(holder.rights & R_BAN) verbs += admin_verbs_ban - if(holder.rights & R_FUN) verbs += admin_verbs_fun - if(holder.rights & R_SERVER) verbs += admin_verbs_server - if(holder.rights & R_DEBUG) - verbs += admin_verbs_debug - if(config.admin.debug_paranoid && !(holder.rights & R_ADMIN)) - verbs.Remove(admin_verbs_paranoid_debug) //Right now it's just callproc but we can easily add others later on. - if(holder.rights & R_POSSESS) verbs += admin_verbs_possess - if(holder.rights & R_PERMISSIONS) verbs += admin_verbs_permissions - if(holder.rights & R_STEALTH) verbs += /client/proc/stealth - if(holder.rights & R_REJUVINATE) verbs += admin_verbs_rejuv - if(holder.rights & R_SOUNDS) verbs += admin_verbs_sounds - if(holder.rights & R_SPAWN) verbs += admin_verbs_spawn - if(holder.rights & R_MOD) verbs += admin_verbs_mod - if(holder.rights & R_MENTOR) verbs += admin_verbs_mentor + if(isnull(holder)) + return + + var/list/verbs_to_add = list() + + verbs_to_add += admin_verbs_default + if(holder.rights & R_BUILDMODE) + verbs_to_add += /client/proc/togglebuildmodeself + if(holder.rights & R_ADMIN) + verbs_to_add += admin_verbs_admin + if(holder.rights & R_BAN) + verbs_to_add += admin_verbs_ban + if(holder.rights & R_FUN) + verbs_to_add += admin_verbs_fun + if(holder.rights & R_SERVER) + verbs_to_add += admin_verbs_server + if(holder.rights & R_DEBUG) + verbs_to_add += admin_verbs_debug + if(config.admin.debug_paranoid && !(holder.rights & R_ADMIN)) + verbs_to_add.Remove(admin_verbs_paranoid_debug) + if(holder.rights & R_POSSESS) + verbs_to_add += admin_verbs_possess + if(holder.rights & R_PERMISSIONS) + verbs_to_add += admin_verbs_permissions + if(holder.rights & R_STEALTH) + verbs_to_add += /client/proc/stealth + if(holder.rights & R_REJUVINATE) + verbs_to_add += admin_verbs_rejuv + if(holder.rights & R_SOUNDS) + verbs_to_add += admin_verbs_sounds + if(holder.rights & R_SPAWN) + verbs_to_add += admin_verbs_spawn + if(holder.rights & R_MOD) + verbs_to_add += admin_verbs_mod + if(holder.rights & R_MENTOR) + verbs_to_add += admin_verbs_mentor + + grant_verb(src, verbs_to_add) /client/proc/remove_admin_verbs() - verbs.Remove( + revoke_verb(src, list( admin_verbs_default, /client/proc/togglebuildmodeself, admin_verbs_admin, @@ -389,15 +408,18 @@ var/list/admin_verbs_mentor = list( admin_verbs_rejuv, admin_verbs_sounds, admin_verbs_spawn, - debug_verbs - ) + debug_verbs, + )) /client/proc/hide_most_verbs()//Allows you to keep some functionality while hiding some verbs set name = "Adminverbs - Hide Most" set category = "Admin" - verbs.Remove(/client/proc/hide_most_verbs, admin_verbs_hideable) - verbs += /client/proc/show_verbs + revoke_verb(src, list( + /client/proc/hide_most_verbs, + admin_verbs_hideable, + )) + grant_verb(src, /client/proc/show_verbs) to_chat(src, "Most of your adminverbs have been hidden.") feedback_add_details("admin_verb","HMV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -408,7 +430,7 @@ var/list/admin_verbs_mentor = list( set category = "Admin" remove_admin_verbs() - verbs += /client/proc/show_verbs + grant_verb(src, /client/proc/show_verbs) to_chat(src, "Almost all of your adminverbs have been hidden.") feedback_add_details("admin_verb","TAVVH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -418,16 +440,12 @@ var/list/admin_verbs_mentor = list( set name = "Adminverbs - Show" set category = "Admin" - verbs -= /client/proc/show_verbs + revoke_verb(src, /client/proc/show_verbs) add_admin_verbs() to_chat(src, "All of your adminverbs are now visible.") feedback_add_details("admin_verb","TAVVS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - - - /client/proc/admin_ghost() set category = "Admin" set name = "Aghost" @@ -563,7 +581,7 @@ var/list/admin_verbs_mentor = list( if(!holder) return var/response = alert(src, "Please choose a distinct color that is easy to read and doesn't mix with all the other chat and radio frequency colors.", "Change own OOC color", "Pick new color", "Reset to default", "Cancel") if(response == "Pick new color") - prefs.ooccolor = input(src, "Please select your OOC colour.", "OOC colour") as color + prefs.ooccolor = tgui_color_picker(src, "Please select your OOC colour.", "OOC colour") else if(response == "Reset to default") prefs.ooccolor = initial(prefs.ooccolor) SScharacter_setup.queue_preferences_save(prefs) @@ -702,7 +720,7 @@ var/list/admin_verbs_mentor = list( log_admin("[src] re-admined themself.") message_admins("[src] re-admined themself.", 1) to_chat(src, "You now have the keys to control the planet, or atleast a small space station") - verbs -= /client/proc/readmin_self + revoke_verb(src, /client/proc/readmin_self) /client/proc/deadmin_self() set name = "De-admin self" @@ -714,7 +732,7 @@ var/list/admin_verbs_mentor = list( message_admins("[src] deadmined themself.", 1) deadmin() to_chat(src, "You are now a normal player.") - verbs |= /client/proc/readmin_self + grant_verb(src, /client/proc/readmin_self) feedback_add_details("admin_verb","DAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/check_ai_laws() @@ -830,38 +848,38 @@ var/list/admin_verbs_mentor = list( switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Vox and Tajaran can result in unintended consequences.",,"Yes","No")) if("No") return - var/new_facial = input("Please select facial hair color.", "Character Generation") as color + var/new_facial = tgui_color_picker("Please select facial hair color.", "Character Generation") if(new_facial) M.r_facial = hex2num(copytext(new_facial, 2, 4)) M.g_facial = hex2num(copytext(new_facial, 4, 6)) M.b_facial = hex2num(copytext(new_facial, 6, 8)) - var/new_hair = input("Please select hair color.", "Character Generation") as color + var/new_hair = tgui_color_picker("Please select hair color.", "Character Generation") if(new_hair) M.r_hair = hex2num(copytext(new_hair, 2, 4)) M.g_hair = hex2num(copytext(new_hair, 4, 6)) M.b_hair = hex2num(copytext(new_hair, 6, 8)) - var/new_s_hair = input("Please select secondary hair color.", "Character Generation") as color + var/new_s_hair = tgui_color_picker("Please select secondary hair color.", "Character Generation") if(new_s_hair) M.r_s_hair = hex2num(copytext(new_s_hair, 2, 4)) M.g_s_hair = hex2num(copytext(new_s_hair, 4, 6)) M.b_s_hair = hex2num(copytext(new_s_hair, 6, 8)) - var/new_eyes = input("Please select eye color.", "Character Generation") as color + var/new_eyes = tgui_color_picker("Please select eye color.", "Character Generation") if(new_eyes) M.r_eyes = hex2num(copytext(new_eyes, 2, 4)) M.g_eyes = hex2num(copytext(new_eyes, 4, 6)) M.b_eyes = hex2num(copytext(new_eyes, 6, 8)) M.update_eyes() - var/new_skin = input("Please select body color. This is for Tajaran, Unathi, and Skrell only!", "Character Generation") as color + var/new_skin = tgui_color_picker("Please select body color. This is for Tajaran, Unathi, and Skrell only!", "Character Generation") if(new_skin) M.r_skin = hex2num(copytext(new_skin, 2, 4)) M.g_skin = hex2num(copytext(new_skin, 4, 6)) M.b_skin = hex2num(copytext(new_skin, 6, 8)) - var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text + var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text if (new_tone) M.s_tone = max(min(round(text2num(new_tone)), 220), 1) @@ -887,6 +905,7 @@ var/list/admin_verbs_mentor = list( M.gender = NEUTER M.update_hair() + M.update_facial_hair() M.update_body() M.check_dna(M) diff --git a/code/modules/admin/bluespace_tech.dm b/code/modules/admin/bluespace_tech.dm index be7b1f0b6f9..f5fe52d0910 100644 --- a/code/modules/admin/bluespace_tech.dm +++ b/code/modules/admin/bluespace_tech.dm @@ -74,7 +74,7 @@ bst.add_language(LANGUAGE_SPACER) bst.add_language(LANGUAGE_ROBOT) - addtimer(CALLBACK(src, nameof(.proc/bluespace_tech_post_spawn), bst), 10) + add_think_ctx("bluespace_tech_post_spawn", CALLBACK(src, nameof(.proc/bluespace_tech_post_spawn)), world.time + 1 SECOND, bst) log_debug("Bluespace Tech Spawned: X:[bst.x] Y:[bst.y] Z:[bst.z] User:[src]") /client/proc/bluespace_tech_post_spawn(mob/living/carbon/human/bluespace_tech/bst) @@ -132,6 +132,7 @@ ghost.admin_ghosted = 1 ghost.can_reenter_corpse = 1 ghost.reload_fullscreen() + ghost.client?.init_verbs() /mob/living/carbon/human/bluespace_tech/verb/antigrav() set name = "Toggle Gravity" diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index 7ac5da9692e..c9f4fd2893d 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -42,11 +42,11 @@ var/list/admin_datums = list() owner.holder = src owner.add_admin_verbs() //TODO GLOB.admins |= C - + /datum/admins/proc/disassociate() if(owner) GLOB.admins -= owner - GLOB.deadmined_list |= src + GLOB.deadmined_list |= src owner.remove_admin_verbs() owner.deadmin_holder = owner.holder owner.holder = null @@ -54,7 +54,7 @@ var/list/admin_datums = list() /datum/admins/proc/reassociate() if(owner) GLOB.admins += owner - GLOB.deadmined_list -= src + GLOB.deadmined_list -= src owner.holder = src owner.deadmin_holder = null owner.add_admin_verbs() @@ -111,14 +111,11 @@ NOTE: It checks usr by default. Supply the "user" argument if you wish to check //qdel(holder) return 1 -/mob/Stat() +/mob/get_status_tab_items() . = ..() - if(!client) - return - var/stealth_status = client.is_stealthed() - if(stealth_status && statpanel("Status")) - stat("Stealth", "Engaged [client.holder.stealthy_ == STEALTH_AUTO ? "(Auto)" : "(Manual)"]") + if(client?.is_stealthed()) + . += "Stealth: Engaged [client.holder.stealthy_ == STEALTH_AUTO ? "(Auto)" : "(Manual)"]" /client/proc/is_stealthed() if(!holder) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 940585214bf..d2e59113953 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -353,37 +353,59 @@ GLOB.error_cache.show_to(usr.client) +/client/proc/cmd_analyse_health(mob/living/carbon/human/target_human) + if(!check_rights(R_DEBUG)) + return + + if(!istype(target_human)) + return + + var/dat = target_human.get_medical_data() + + dat += text("
Close", usr) + show_browser(usr, dat, "window=scanconsole;size=430x600") + /client/proc/cmd_analyse_health_panel() set category = "Debug" set name = "Analyse Health" - set desc = "Get an advanced health reading on a human mob." - var/mob/living/carbon/human/H = input("Select mob.", "Analyse Health") as null|anything in GLOB.human_mob_list - if(!H) return + var/mob/living/carbon/human/chosen_one = tgui_input_list(src, "Select mob a mob to analyse.", "Analyse Health", GLOB.human_mob_list) - cmd_analyse_health(H) + if(isnull(chosen_one)) + return -/client/proc/cmd_analyse_health(mob/living/carbon/human/H) + cmd_analyse_health(chosen_one) +/client/proc/cmd_analyse_health_context(mob/living/carbon/human/H as mob in GLOB.human_mob_list) + set name = "Analyse Human Health" + + cmd_analyse_health(H) + feedback_add_details("admin_verb","ANLS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_view_language(mob/target_mob) if(!check_rights(R_DEBUG)) return - if(!H) return + if(!istype(target_mob)) + return - var/dat = H.get_medical_data() + target_mob.language_menu.tgui_interact(usr) - dat += text("
Close", usr) - show_browser(usr, dat, "window=scanconsole;size=430x600") +/client/proc/cmd_view_language_panel() + set category = "Debug" + set name = "Check Languages" -/client/proc/cmd_analyse_health_context(mob/living/carbon/human/H as mob in GLOB.human_mob_list) - set category = null - set name = "Analyse Human Health" + var/mob/chosen_one = tgui_input_list(src, "Select mob a mob to view it's languages.", "Check Languages", GLOB.living_mob_list_) - if(!check_rights(R_DEBUG)) + if(isnull(chosen_one)) return - if(!ishuman(H)) return - cmd_analyse_health(H) - feedback_add_details("admin_verb","ANLS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + cmd_view_language(chosen_one) + +/client/proc/cmd_view_language_context(mob/target_mob as mob in GLOB.living_mob_list_) + set name = "Check Mob Languages" + + cmd_view_language(target_mob) /obj/effect/debugmarker icon = 'icons/effects/lighting_overlay.dmi' diff --git a/code/modules/admin/verbs/possess.dm b/code/modules/admin/verbs/possess.dm index f47e7f78503..46fee6c5184 100644 --- a/code/modules/admin/verbs/possess.dm +++ b/code/modules/admin/verbs/possess.dm @@ -47,6 +47,8 @@ set desc = "Give this guy possess/release verbs" set category = "Debug" set name = "Give Possessing Verbs" - M.verbs += /proc/possess - M.verbs += /proc/release + grant_verb(M, list( + /proc/possess, + /proc/release, + )) feedback_add_details("admin_verb","GPV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 4269066397b..74f1c221bf4 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -350,7 +350,7 @@ Ccomp's first proc. if(config.ghost.allow_antag_hud) for(var/mob/observer/ghost/g in get_ghosts()) if(!g.client.holder) //Remove the verb from non-admin ghosts - g.verbs -= /mob/observer/ghost/verb/toggle_antagHUD + revoke_verb(g, /mob/observer/ghost/verb/toggle_antagHUD) if(g.antagHUD) g.antagHUD = 0 // Disable it on those that have it enabled g.has_enabled_antagHUD = 2 // We'll allow them to respawn @@ -361,7 +361,7 @@ Ccomp's first proc. else for(var/mob/observer/ghost/g in get_ghosts()) if(!g.client.holder) // Add the verb back for all non-admin ghosts - g.verbs += /mob/observer/ghost/verb/toggle_antagHUD + grant_verb(g, /mob/observer/ghost/verb/toggle_antagHUD) to_chat(g, "The Administrator has enabled AntagHUD ")// Notify all observers they can now use AntagHUD config.ghost.allow_antag_hud = 1 diff --git a/code/modules/admin/view_variables/topic.dm b/code/modules/admin/view_variables/topic.dm index a0e38890919..5038232f81e 100644 --- a/code/modules/admin/view_variables/topic.dm +++ b/code/modules/admin/view_variables/topic.dm @@ -401,7 +401,7 @@ if(!verb || verb == "Cancel") return else - H.verbs += verb + grant_verb(H, verb) else if(href_list["remverb"]) if(!check_rights(R_DEBUG)) return @@ -418,7 +418,7 @@ if(!verb) return else - H.verbs -= verb + revoke_verb(H, verb) else if(href_list["addorgan"]) if(!check_rights(R_SPAWN)) return diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index de5dd9bfe43..f4498b04cd7 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -34,7 +34,7 @@ if(!secured || cooldown > 0) return FALSE cooldown = 2 - addtimer(CALLBACK(src, nameof(.proc/process_cooldown)), 1 SECOND) + set_next_think(world.time + 1 SECOND) return TRUE //Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs @@ -69,13 +69,13 @@ return 1 return 0 -//Called via spawn(10) to have it count down the cooldown var -/obj/item/device/assembly/proc/process_cooldown() +/obj/item/device/assembly/think() cooldown-- if(cooldown <= 0) - return 0 - addtimer(CALLBACK(src, nameof(.proc/process_cooldown)), 1 SECOND) - return 1 + set_next_think(0) + return FALSE + + set_next_think(world.time + 1 SECOND) //Called when the holder is moved /obj/item/device/assembly/proc/holder_movement() @@ -105,13 +105,14 @@ return PROCESS_KILL -/obj/item/device/assembly/_examine_text(mob/user) +/obj/item/device/assembly/examine(mob/user, infix) . = ..() + if((in_range(src, user) || loc == user)) if(secured) - . += "\n\The [src] is ready!" + . += "\The [src] is ready!" else - . += "\n\The [src] can be attached!" + . += "\The [src] can be attached!" /obj/item/device/assembly/attack_self(mob/user) if(!user) return 0 diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index f2d7ae59f2c..69ea9fe6fe0 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -74,15 +74,14 @@ if(master) master.update_icon() -/obj/item/device/assembly_holder/_examine_text(mob/user) +/obj/item/device/assembly_holder/examine(mob/user, infix) . = ..() - if ((in_range(src, user) || src.loc == user)) - if (src.secured) - . += "\n\The [src] is ready!" - else - . += "\n\The [src] can be attached!" - return + if((in_range(src, user) || src.loc == user)) + if(src.secured) + . += "\The [src] is ready!" + else + . += "\The [src] can be attached!" /obj/item/device/assembly_holder/HasProximity(atom/movable/AM) if(a_left) @@ -235,7 +234,7 @@ loc.verbs += /obj/item/device/assembly_holder/timer_igniter/verb/configure /obj/item/device/assembly_holder/timer_igniter/detached() - loc.verbs -= /obj/item/device/assembly_holder/timer_igniter/verb/configure + loc.remove_verb(loc.loc, /obj/item/device/assembly_holder/timer_igniter/verb/configure) ..() /obj/item/device/assembly_holder/timer_igniter/verb/configure() diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 59f8a187d7e..b729225b6af 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -27,6 +27,8 @@ seen_turfs = list() proximity_trigger = new(src, /obj/item/device/assembly/infra/proc/on_beam_entered, /obj/item/device/assembly/infra/proc/on_visibility_change, world.view, PROXIMITY_EXCLUDE_HOLDER_TURF) + AddElement(/datum/element/simple_rotation) + /obj/item/device/assembly/infra/Destroy() qdel(proximity_trigger) proximity_trigger = null @@ -105,13 +107,6 @@ return TOPIC_REFRESH -/obj/item/device/assembly/infra/verb/rotate()//This could likely be better - set name = "Rotate Infrared Laser" - set category = "Object" - set src in usr - - set_dir(turn(dir, 90)) - /obj/item/device/assembly/infra/retransmit_moved(mover, old_loc, new_loc) if(on) ..() @@ -130,7 +125,7 @@ if(!holder) visible_message("\icon[src] *beep* *beep*") cooldown = 2 - addtimer(CALLBACK(src, nameof(.proc/process_cooldown)), 1 SECOND) + set_next_think(world.time + 1 SECOND) /obj/item/device/assembly/infra/proc/on_visibility_change(list/old_turfs, list/new_turfs) seen_turfs = new_turfs @@ -186,6 +181,6 @@ /obj/effect/beam/ir_beam name = "ir beam" icon = 'icons/obj/projectiles.dmi' - icon_state = "ibeam" + icon_state = "infrared" anchored = TRUE simulated = FALSE diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 9f0c902510b..5ceac60a980 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -9,10 +9,11 @@ drop_sound = SFX_DROP_COMPONENT pickup_sound = SFX_PICKUP_COMPONENT - _examine_text(mob/user) - . = ..(user) + examine(mob/user) + . = ..() + if(armed) - to_chat(user, "It looks like it's armed.") + . += "It looks like it's armed." update_icon() if(armed) diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index 63a1dbbf89a..640941d80e5 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -62,7 +62,7 @@ mainloc.visible_message(SPAN("danger" ,"\icon[src] *beep* *beep*"), SPAN("danger" ,"*beep* *beep*")) playsound(mainloc, 'sound/signals/warning8.ogg', 35) cooldown = 2 - addtimer(CALLBACK(src, nameof(.proc/process_cooldown)), 1 SECOND) + set_next_think(world.time + 1 SECOND) /obj/item/device/assembly/prox_sensor/think() if(!timing) @@ -105,8 +105,11 @@ return -/obj/item/device/assembly/prox_sensor/Move() +/obj/item/device/assembly/prox_sensor/Move(newloc, direct) . = ..() + if(!.) + return + sense() diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index 619b949d860..6cdf3c6e271 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -29,7 +29,7 @@ if(findtext(msg, recorded)) pulse(0) cooldown = 2 - addtimer(CALLBACK(src, nameof(.proc/process_cooldown)), 1 SECOND) + set_next_think(world.time + 1 SECOND) /obj/item/device/assembly/voice/activate() diff --git a/code/modules/atmospherics/components/binary_devices/circulator.dm b/code/modules/atmospherics/components/binary_devices/circulator.dm index 3de36099c51..79115d6ce7a 100644 --- a/code/modules/atmospherics/components/binary_devices/circulator.dm +++ b/code/modules/atmospherics/components/binary_devices/circulator.dm @@ -7,6 +7,7 @@ icon = 'icons/obj/pipes.dmi' icon_state = "circ-off" anchored = 0 + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION var/kinetic_efficiency = 0.04 //combined kinetic and kinetic-to-electric efficiency var/volume_ratio = 0.2 @@ -27,6 +28,8 @@ desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]." air1.volume = 400 + AddElement(/datum/element/simple_rotation) + /obj/machinery/atmospherics/binary/circulator/proc/return_transfer_air() var/datum/gas_mixture/removed if(anchored && !(stat&BROKEN) && network1) @@ -121,25 +124,12 @@ else ..() -/obj/machinery/atmospherics/binary/circulator/verb/rotate_clockwise() - set category = "Object" - set name = "Rotate Circulator (Clockwise)" - set src in view(1) - - if (usr.stat || usr.restrained() || anchored) - return +/obj/machinery/atmospherics/binary/circulator/rotate(mob/user) + ..() - src.set_dir(turn(src.dir, 90)) desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]." +/obj/machinery/atmospherics/binary/circulator/rotate_counter(mob/user) + ..() -/obj/machinery/atmospherics/binary/circulator/verb/rotate_anticlockwise() - set category = "Object" - set name = "Rotate Circulator (Counterclockwise)" - set src in view(1) - - if (usr.stat || usr.restrained() || anchored) - return - - src.set_dir(turn(src.dir, -90)) desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]." diff --git a/code/modules/atmospherics/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/components/binary_devices/dp_vent_pump.dm index 866ccecb68a..d37bf66734f 100644 --- a/code/modules/atmospherics/components/binary_devices/dp_vent_pump.dm +++ b/code/modules/atmospherics/components/binary_devices/dp_vent_pump.dm @@ -192,10 +192,11 @@ if(frequency) set_frequency(frequency) -/obj/machinery/atmospherics/binary/dp_vent_pump/_examine_text(mob/user) +/obj/machinery/atmospherics/binary/dp_vent_pump/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\nA small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W" + . += "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W" /obj/machinery/atmospherics/binary/dp_vent_pump/receive_signal(datum/signal/signal) if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) diff --git a/code/modules/atmospherics/components/binary_devices/oxyregenerator.dm b/code/modules/atmospherics/components/binary_devices/oxyregenerator.dm index 88d4b8b5f3f..ed20094237f 100644 --- a/code/modules/atmospherics/components/binary_devices/oxyregenerator.dm +++ b/code/modules/atmospherics/components/binary_devices/oxyregenerator.dm @@ -8,6 +8,7 @@ use_power = POWER_USE_OFF idle_power_usage = 200 WATTS //internal circuitry, friction losses and stuff power_rating = 10000 + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION var/target_pressure = 10*ONE_ATMOSPHERE var/id = null var/power_setting = 1 //power consumption setting, 1 through five @@ -29,6 +30,8 @@ component_parts += new /obj/item/stock_parts/matter_bin(src)//Stores carbon RefreshParts() + AddElement(/datum/element/simple_rotation) + /obj/machinery/atmospherics/binary/oxyregenerator/RefreshParts() for(var/obj/item/stock_parts/P in component_parts) if(istype(P, /obj/item/stock_parts/matter_bin)) @@ -38,9 +41,9 @@ if(istype(P, /obj/item/stock_parts/micro_laser)) power_rating -= power_rating * 0.05 * (P.rating-1) //5% better power efficiency per stock item rank -/obj/machinery/atmospherics/binary/oxyregenerator/_examine_text(user) +/obj/machinery/atmospherics/binary/oxyregenerator/examine(mob/user, infix) . = ..() - . += "\nIts outlet port is to the [dir2text(dir)]" + . += "Its outlet port is to the [dir2text(dir)]" /obj/machinery/atmospherics/binary/oxyregenerator/attackby(obj/item/O as obj, mob/user as mob) if(default_deconstruction_screwdriver(user, O)) @@ -81,26 +84,6 @@ node1 = null node2 = null -/obj/machinery/atmospherics/binary/oxyregenerator/verb/rotate_clockwise() - set category = "Object" - set name = "Rotate (Clockwise)" - set src in view(1) - - if (usr.incapacitated() || anchored) - return - - src.set_dir(turn(src.dir, -90)) - -/obj/machinery/atmospherics/binary/oxyregenerator/verb/rotate_anticlockwise() - set category = "Object" - set name = "Rotate (Counterclockwise)" - set src in view(1) - - if (usr.incapacitated() || anchored) - return - - src.set_dir(turn(src.dir, 90)) - /obj/machinery/atmospherics/binary/oxyregenerator/Process(delay) if((stat & (NOPOWER|BROKEN)) || !use_power) return diff --git a/code/modules/atmospherics/components/binary_devices/passive_gate.dm b/code/modules/atmospherics/components/binary_devices/passive_gate.dm index 92fc4c98e85..16a393e4503 100644 --- a/code/modules/atmospherics/components/binary_devices/passive_gate.dm +++ b/code/modules/atmospherics/components/binary_devices/passive_gate.dm @@ -261,7 +261,7 @@ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) + new /obj/item/pipe(loc, null, null, src) qdel(src) #undef REGULATE_NONE diff --git a/code/modules/atmospherics/components/binary_devices/pump.dm b/code/modules/atmospherics/components/binary_devices/pump.dm index 15e13564a73..914f9ea5c86 100644 --- a/code/modules/atmospherics/components/binary_devices/pump.dm +++ b/code/modules/atmospherics/components/binary_devices/pump.dm @@ -54,7 +54,7 @@ Thus, the two variables affect pump operation are set in New(): if(!allowed(user)) return - show_splash_text(user, "toggled [use_power ? "off" : "on"]") + show_splash_text(user, "toggled [use_power ? "off" : "on"]", "You toggle \the [src] [use_power ? "off" : "on"].") update_use_power(!use_power) update_icon() @@ -69,7 +69,7 @@ Thus, the two variables affect pump operation are set in New(): return target_pressure = max_pressure_setting - show_splash_text(user, "target pressure set to [target_pressure] kPa") + show_splash_text(user, "target pressure set to [target_pressure] kPa", "You set the target pressure to [target_pressure] kPa.") /obj/machinery/atmospherics/binary/pump/on icon_state = "map_on" @@ -254,5 +254,5 @@ Thus, the two variables affect pump operation are set in New(): SPAN_NOTICE("\The [user] unfastens \the [src]."), \ SPAN_NOTICE("You have unfastened \the [src]."), \ "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) + new /obj/item/pipe(loc, null, null, src) qdel(src) diff --git a/code/modules/atmospherics/components/omni_devices/omni_base.dm b/code/modules/atmospherics/components/omni_devices/omni_base.dm index 74143b9c171..e982276042c 100644 --- a/code/modules/atmospherics/components/omni_devices/omni_base.dm +++ b/code/modules/atmospherics/components/omni_devices/omni_base.dm @@ -86,7 +86,7 @@ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") - var/obj/item/pipe/P = new(loc, make_from=src) + var/obj/item/pipe/P = new(loc, null, null, src) if ((int_pressure - env_air.return_pressure()) > 2*ONE_ATMOSPHERE) to_chat(user, "\the [src] flies off because of the overpressure in it!") P.throw_at_random(0, round((int_pressure - env_air.return_pressure()) / 100), 30) diff --git a/code/modules/atmospherics/components/portables_connector.dm b/code/modules/atmospherics/components/portables_connector.dm index 5136ac01468..9dd04cbcac8 100644 --- a/code/modules/atmospherics/components/portables_connector.dm +++ b/code/modules/atmospherics/components/portables_connector.dm @@ -148,5 +148,5 @@ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") - new /obj/item/pipe(loc, make_from=src) + new /obj/item/pipe(loc, null, null, src) qdel(src) diff --git a/code/modules/atmospherics/components/shutoff.dm b/code/modules/atmospherics/components/shutoff.dm index 316c4d13392..1da8f46c938 100644 --- a/code/modules/atmospherics/components/shutoff.dm +++ b/code/modules/atmospherics/components/shutoff.dm @@ -12,9 +12,9 @@ /obj/machinery/atmospherics/valve/shutoff/on_update_icon() icon_state = "vclamp[open]" -/obj/machinery/atmospherics/valve/shutoff/_examine_text(mob/user) +/obj/machinery/atmospherics/valve/shutoff/examine(mob/user, infix) . = ..() - . += "\nThe automatic shutoff circuit is [override_open ? "disabled" : "enabled"]." + . += "The automatic shutoff circuit is [override_open ? "disabled" : "enabled"]." /obj/machinery/atmospherics/valve/shutoff/Initialize() . = ..() diff --git a/code/modules/atmospherics/components/trinary_devices/filter.dm b/code/modules/atmospherics/components/trinary_devices/filter.dm index fe9c81b90e0..4e91bffe3e6 100644 --- a/code/modules/atmospherics/components/trinary_devices/filter.dm +++ b/code/modules/atmospherics/components/trinary_devices/filter.dm @@ -138,7 +138,7 @@ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") - new /obj/item/pipe(loc, make_from=src) + new /obj/item/pipe(loc, null, null, src) qdel(src) diff --git a/code/modules/atmospherics/components/trinary_devices/mixer.dm b/code/modules/atmospherics/components/trinary_devices/mixer.dm index efa496874f6..f56d0537036 100644 --- a/code/modules/atmospherics/components/trinary_devices/mixer.dm +++ b/code/modules/atmospherics/components/trinary_devices/mixer.dm @@ -113,7 +113,7 @@ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) + new /obj/item/pipe(loc, null, null, src) qdel(src) /obj/machinery/atmospherics/trinary/mixer/attack_hand(user as mob) diff --git a/code/modules/atmospherics/components/tvalve.dm b/code/modules/atmospherics/components/tvalve.dm index 99ae6f16d59..0b5f1286316 100644 --- a/code/modules/atmospherics/components/tvalve.dm +++ b/code/modules/atmospherics/components/tvalve.dm @@ -359,7 +359,7 @@ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") - new /obj/item/pipe(loc, make_from=src) + new /obj/item/pipe(loc, null, null, src) qdel(src) /obj/machinery/atmospherics/tvalve/mirrored diff --git a/code/modules/atmospherics/components/unary/cold_sink.dm b/code/modules/atmospherics/components/unary/cold_sink.dm index ebb72f66844..4733b4ea7f6 100644 --- a/code/modules/atmospherics/components/unary/cold_sink.dm +++ b/code/modules/atmospherics/components/unary/cold_sink.dm @@ -183,7 +183,8 @@ ..() -/obj/machinery/atmospherics/unary/freezer/_examine_text(mob/user) +/obj/machinery/atmospherics/unary/freezer/examine(mob/user, infix) . = ..() + if(panel_open) - . += "\nThe maintenance hatch is open." + . += "The maintenance hatch is open." diff --git a/code/modules/atmospherics/components/unary/heat_exchanger.dm b/code/modules/atmospherics/components/unary/heat_exchanger.dm index d561ec765ec..4d0662f93c8 100644 --- a/code/modules/atmospherics/components/unary/heat_exchanger.dm +++ b/code/modules/atmospherics/components/unary/heat_exchanger.dm @@ -82,7 +82,7 @@ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") - var/obj/item/pipe/P = new(loc, make_from=src) + var/obj/item/pipe/P = new(loc, null, null, src) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) to_chat(user, "\the [src] flies off because of the overpressure in it!") P.throw_at_random(0, round((int_air.return_pressure()-env_air.return_pressure()) / 100), 30) diff --git a/code/modules/atmospherics/components/unary/heat_source.dm b/code/modules/atmospherics/components/unary/heat_source.dm index 27cbf0ce16b..8c19c7717c1 100644 --- a/code/modules/atmospherics/components/unary/heat_source.dm +++ b/code/modules/atmospherics/components/unary/heat_source.dm @@ -171,7 +171,8 @@ ..() -/obj/machinery/atmospherics/unary/heater/_examine_text(mob/user) +/obj/machinery/atmospherics/unary/heater/examine(mob/user, infix) . = ..() + if(panel_open) - . += "\nThe maintenance hatch is open." + . += "The maintenance hatch is open." diff --git a/code/modules/atmospherics/components/unary/vent_pump.dm b/code/modules/atmospherics/components/unary/vent_pump.dm index b589ec1e73d..b2ae1636d97 100644 --- a/code/modules/atmospherics/components/unary/vent_pump.dm +++ b/code/modules/atmospherics/components/unary/vent_pump.dm @@ -350,13 +350,11 @@ var/obj/item/weldingtool/WT = W - if(!WT.isOn()) - to_chat(user, "The welding tool needs to be on to start this task.") - return 1 + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 5)) + return - if(!WT.remove_fuel(0,user)) - to_chat(user, "You need more welding fuel to complete this task.") - return 1 + if(QDELETED(src) || !user) + return if(broken) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) @@ -364,13 +362,6 @@ SPAN_NOTICE("Now repairing \the [src]."), \ "You hear welding.") - if(!do_after(user, 10, src)) - to_chat(user, SPAN_NOTICE("You must remain still to finish this task!")) - return 1 - if(!WT.isOn()) - to_chat(user, SPAN_NOTICE("The welding tool needs to be on to finish this task.")) - return 1 - switch(broken) if(VENT_DAMAGED_STAGE_ONE) broken=VENT_UNDAMAGED @@ -386,18 +377,12 @@ return to_chat(user, "Now welding \the [src].") - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) - if(!do_after(user, 20, src)) - to_chat(user, "You must remain close to finish this task.") - return 1 - - if(!src) - return 1 + if(!W.use_tool(src, user, delay = 2 SECONDS, amount = 5)) + return - if(!WT.isOn()) - to_chat(user, "The welding tool needs to be on to finish this task.") - return 1 + if(QDELETED(src) || !user) + return welded = !welded update_icon() @@ -409,24 +394,27 @@ else ..() -/obj/machinery/atmospherics/unary/vent_pump/_examine_text(mob/user) +/obj/machinery/atmospherics/unary/vent_pump/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\nA small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W" + . += "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W" else - . += "\nYou are too far away to read the gauge." + . += "You are too far away to read the gauge." + if(welded) - . += "\nIt seems welded shut." + . += "It seems welded shut." + if(broken) switch(broken) if(VENT_DAMAGED_STAGE_ONE) - . += "\nIt seems slightly damaged." + . += "It seems slightly damaged." if(VENT_DAMAGED_STAGE_TWO) - . += "\nIt seems pretty damaged." + . += "It seems pretty damaged." if(VENT_DAMAGED_STAGE_THREE) - . += "\nIt seems heavily damaged." + . += "It seems heavily damaged." if(VENT_BROKEN) - . += "\nIt seems absolutely destroyed." + . += "It seems absolutely destroyed." /obj/machinery/atmospherics/unary/vent_pump/attackby(obj/item/W as obj, mob/user as mob) if(!isWrench(W)) @@ -447,7 +435,7 @@ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") - var/obj/item/pipe/P = new(loc, make_from=src) + var/obj/item/pipe/P = new(loc, null, null, src) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) to_chat(user, "\the [src] flies off because of the overpressure in it!") P.throw_at_random(0, round((int_air.return_pressure()-env_air.return_pressure()) / 100), 30) diff --git a/code/modules/atmospherics/components/unary/vent_scrubber.dm b/code/modules/atmospherics/components/unary/vent_scrubber.dm index 8bd8972da3d..2f2a0795aaf 100644 --- a/code/modules/atmospherics/components/unary/vent_scrubber.dm +++ b/code/modules/atmospherics/components/unary/vent_scrubber.dm @@ -292,7 +292,7 @@ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") - var/obj/item/pipe/P = new(loc, make_from=src) + var/obj/item/pipe/P = new(loc, null, null, src) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) to_chat(user, "\the [src] flies off because of the overpressure in it!") P.throw_at_random(0, round((int_air.return_pressure()-env_air.return_pressure()) / 100), 30) @@ -303,27 +303,17 @@ var/obj/item/weldingtool/WT = W - if(!WT.isOn()) - to_chat(user, "The welding tool needs to be on to start this task.") - return 1 + if(broken) + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 5)) + return - if(!WT.remove_fuel(0,user)) - to_chat(user, "You need more welding fuel to complete this task.") - return 1 + if(QDELETED(src) || !user) + return - if(broken) - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) user.visible_message(SPAN_NOTICE("\The [user] repairing \the [src]."), \ SPAN_NOTICE("Now repairing \the [src]."), \ "You hear welding.") - if(!do_after(user, 10, src)) - to_chat(user, SPAN_NOTICE("You must remain still to finish this task!")) - return 1 - if(!WT.isOn()) - to_chat(user, SPAN_NOTICE("The welding tool needs to be on to finish this task.")) - return 1 - switch(broken) if(VENT_DAMAGED_STAGE_ONE) broken=VENT_UNDAMAGED @@ -333,49 +323,45 @@ broken=VENT_DAMAGED_STAGE_TWO if(VENT_BROKEN) to_chat(user, SPAN_NOTICE("\The [src] is ruined! You can't repair it!")) - return 1 + return update_icon() return - to_chat(user, "Now welding \the [src].") - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) - - if(!do_after(user, 20, src)) - to_chat(user, "You must remain close to finish this task.") - return 1 - - if(!src) - return 1 + else + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 5)) + return - if(!WT.isOn()) - to_chat(user, "The welding tool needs to be on to finish this task.") - return 1 + if(QDELETED(src) || !user) + return - welded = !welded - update_icon() - user.visible_message("\The [user] [welded ? "welds \the [src] shut" : "unwelds \the [src]"].", \ - "You [welded ? "weld \the [src] shut" : "unweld \the [src]"].", \ - "You hear welding.") - return 1 + welded = !welded + update_icon() + user.visible_message("\The [user] [welded ? "welds \the [src] shut" : "unwelds \the [src]"].", \ + "You [welded ? "weld \the [src] shut" : "unweld \the [src]"].", \ + "You hear welding.") + return return ..() -/obj/machinery/atmospherics/unary/vent_scrubber/_examine_text(mob/user) +/obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\nA small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W" + . += "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W" else - . += "\nYou are too far away to read the gauge." + . += "You are too far away to read the gauge." + if(welded) - . += "\nIt seems welded shut." + . += "It seems welded shut." + if(broken) switch(broken) if(VENT_DAMAGED_STAGE_ONE) - . += "\nIt seems slightly damaged." + . += "It seems slightly damaged." if(VENT_DAMAGED_STAGE_TWO) - . += "\nIt seems pretty damaged." + . += "It seems pretty damaged." if(VENT_DAMAGED_STAGE_THREE) - . += "\nIt seems heavily damaged." + . += "It seems heavily damaged." if(VENT_BROKEN) - . += "\nIt seems absolutely destroyed." + . += "It seems absolutely destroyed." diff --git a/code/modules/atmospherics/components/valve.dm b/code/modules/atmospherics/components/valve.dm index 839df7983f3..7437668e98a 100644 --- a/code/modules/atmospherics/components/valve.dm +++ b/code/modules/atmospherics/components/valve.dm @@ -292,12 +292,12 @@ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") - var/obj/item/pipe/P = new(loc, make_from=src) + var/obj/item/pipe/P = new(loc, null, null, src) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) to_chat(user, "\the [src] flies off because of the overpressure in it!") P.throw_at_random(0, round((int_air.return_pressure()-env_air.return_pressure()) / 100), 30) qdel(src) -/obj/machinery/atmospherics/valve/_examine_text(mob/user) +/obj/machinery/atmospherics/valve/examine(mob/user, infix) . = ..() - . += "\nIt is [open ? "open" : "closed"]." + . += "It is [open ? "open" : "closed"]." diff --git a/code/modules/atmospherics/pipes.dm b/code/modules/atmospherics/pipes.dm index 007c7c75add..37364c4fa48 100644 --- a/code/modules/atmospherics/pipes.dm +++ b/code/modules/atmospherics/pipes.dm @@ -123,7 +123,7 @@ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ "You hear a ratchet.") - var/obj/item/pipe/P = new(loc, make_from=src) + var/obj/item/pipe/P = new(loc, null, null, src) if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) to_chat(user, "\the [src] flies off because of the overpressure in it!") P.throw_at_random(0, round((int_air.return_pressure()-env_air.return_pressure()) / 100), 30) @@ -293,7 +293,7 @@ if(!node1 && !node2) var/turf/T = get_turf(src) - new /obj/item/pipe(loc, make_from=src) + new /obj/item/pipe(loc, null, null, src) for (var/obj/machinery/meter/meter in T) if (meter.target == src) new /obj/item/pipe_meter(T) @@ -546,7 +546,7 @@ if(!node1 && !node2 && !node3) var/turf/T = get_turf(src) - new /obj/item/pipe(loc, make_from=src) + new /obj/item/pipe(loc, null, null, src) for (var/obj/machinery/meter/meter in T) if (meter.target == src) new /obj/item/pipe_meter(T) @@ -805,7 +805,7 @@ if(!node1 && !node2 && !node3 && !node4) var/turf/T = get_turf(src) - new /obj/item/pipe(loc, make_from=src) + new /obj/item/pipe(loc, null, null, src) for (var/obj/machinery/meter/meter in T) if (meter.target == src) new /obj/item/pipe_meter(T) diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index e1e9a07dc7c..88b3e14a098 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -45,9 +45,6 @@ var/datum/eams_info/eams_info = new var/list/topiclimiter - // comment out the line below when debugging locally to enable the options & messages menu - // control_freak = 1 - // * Database related things * // So admins know why it isn't working - Used to determine how old the account is - in days. @@ -65,11 +62,27 @@ // For tracking shift key (world.time) var/shift_released_at = 0 + /// Currently viewed stat tab. + var/stat_tab + + /// List of all stat panel tabs. + var/list/panel_tabs = list() + /// List of stat panel tabs containing spells and abilities. + var/list/spell_tabs = list() + + /// Stat panel window. + var/datum/tgui_window/stat_panel + /// Stores info about and handles behavior for the object tab. + var/datum/object_window_info/obj_window + /// Settings window. var/datum/player_settings/settings = null /// Messages currently seen by this client var/list/seen_messages + /// List of atom refs that were recently examined via `run_examinare` proc. + var/list/recent_examines + /// Whether typing indicators are enabled var/typing_indicators diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 1147321b380..761400e50ea 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -72,7 +72,7 @@ to_chat(src, SPAN("danger", "[msg]")) return - if(config.general.second_topic_limit) + if(config.general.second_topic_limit && href_list["window_id"] != "statbrowser") var/second = round(world.time, 10) if(!topiclimiter) topiclimiter = new(LIMITER_SIZE) @@ -91,6 +91,9 @@ if(tgui_Topic(href_list)) return + if(href_list["reload_statbrowser"]) + stat_panel.reinitialize() + // ask BYOND client to stop spamming us with assert arrival confirmations (see byond bug ID:2256651) if(asset_cache_job && (asset_cache_job in completed_asset_jobs)) to_chat(src, SPAN("danger", "An error has been detected in how your client is receiving resources. Attempting to correct... (If you keep seeing these messages you might want to close byond and reconnect)")) @@ -177,6 +180,10 @@ GLOB.clients += src GLOB.ckey_directory[ckey] = src + // Instantiate tgui stat panel + stat_panel = new(src, "statbrowser") + stat_panel.subscribe(src, nameof(.proc/on_stat_panel_message)) + // Instantiate tgui panel tgui_panel = new(src) @@ -185,7 +192,7 @@ if(admin_datum) if(admin_datum in GLOB.deadmined_list) deadmin_holder = admin_datum - verbs |= /client/proc/readmin_self + grant_verb(src, /client/proc/readmin_self) else holder = admin_datum GLOB.admins += src @@ -255,6 +262,13 @@ settings = new(src) + stat_panel.initialize( + inline_html = file("html/statbrowser/statbrowser.html"), + inline_css = file("html/statbrowser/statbrowser.css"), + inline_js = file("html/statbrowser/statbrowser.js") + ) + add_think_ctx("check_panel_loaded", CALLBACK(src, nameof(.proc/check_panel_loaded)), world.time + 30 SECONDS) + if(config.general.player_limit && is_player_rejected_by_player_limit(usr, ckey)) if(config.multiaccount.panic_server_address && TopicData != "redirect") DIRECT_OUTPUT(src, SPAN("warning", "

This server is currently full and not accepting new connections. Sending you to [config.multiaccount.panic_server_name ? config.multiaccount.panic_server_name : config.multiaccount.panic_server_address]

")) @@ -268,9 +282,6 @@ qdel(src) return -/* if(holder) - src.control_freak = 0 // Devs need 0 for profiler access -*/ ////////////// //DISCONNECT// ////////////// @@ -377,19 +388,6 @@ var/seconds = inactivity/10 return "[round(seconds / 60)] minute\s, [seconds % 60] second\s" -// Byond seemingly calls stat, each tick. -// Calling things each tick can get expensive real quick. -// So we slow this down a little. -// See: http://www.byond.com/docs/ref/info.html#/client/proc/Stat -/client/Stat() - if(!usr) - return - // Add always-visible stat panel calls here, to define a consistent display order. - statpanel("Status") - - . = ..() - stoplag(1) - // send resources to the client. It's here in its own proc so we can move it around easiliy if need be /client/proc/send_resources() @@ -464,67 +462,122 @@ if(prefs) prefs.open_setup_window(usr) +/client/proc/check_panel_loaded() + if(stat_panel.is_ready()) + return + + to_chat(src, SPAN_DANGER(FONT_HUGE("Statpanel failed to load, click here to reload the panel."))) + +/// Compiles a full list of verbs and sends it to the stat panel browser. +/client/proc/init_verbs() + var/list/verblist = list() + var/list/verbstoprocess = verbs.Copy() + + if(mob) + verbstoprocess += mob.verbs + for(var/atom/movable/thing as anything in mob.contents) + verbstoprocess += thing.verbs + + panel_tabs.Cut() // panel_tabs get reset in init_verbs on JS side anyway + + for(var/procpath/verb_to_init as anything in verbstoprocess) + if(!verb_to_init) + continue + if(verb_to_init.hidden) + continue + if(!istext(verb_to_init.category)) + continue + panel_tabs |= verb_to_init.category + verblist[++verblist.len] = list(verb_to_init.category, verb_to_init.name) + + stat_panel.send_message("init_verbs", list(panel_tabs = panel_tabs, verblist = verblist)) + +/** + * Handles incoming messages from the stat-panel TGUI. + */ +/client/proc/on_stat_panel_message(type, list/payload, list/href_list) + switch(type) + if("Update-Verbs") + init_verbs() + if("Remove-Tabs") + panel_tabs -= payload["tab"] + if("Send-Tabs") + panel_tabs |= payload["tab"] + if("Reset-Tabs") + panel_tabs = list() + if("Set-Tab") + stat_tab = payload["tab"] + SSstatpanels.immediate_send_stat_data(src) + /client/proc/apply_fps(client_fps) if(world.byond_version >= 511 && byond_version >= 511 && client_fps >= CLIENT_MIN_FPS && client_fps <= CLIENT_MAX_FPS) fps = client_fps -/client/proc/update_chat_position(use_alternative) - var/input_height = 0 - var/mode = get_preference_value(/datum/client_preference/chat_position) - var/currently_alternative = (winget(src, "input", "is-default") == "false") ? TRUE : FALSE +#define VERTICAL_INPUT_MARGIN 9 + +/** + * Manages `input` and `input_alt` visibility, due to skin limitations this proc is extreely + * snowflake, thus be sure to change `VERTICAL_INPUT_MARGIN` when moving it's elements + * inside `skin.dmf`. + * + * Known bugs: + * - Doesn't mount instantly due to user prefs loading. + * - Doesn't display typing indicator 'cause code copypasta is bad. + */ +/client/proc/update_chat_position(new_position) + var/alternate = winget(src, "input", "is-default") == "false" - // Hell - if(mode == GLOB.PREF_YES && !currently_alternative) - input_height = winget(src, "input", "size") - input_height = text2num(splittext(input_height, "x")[2]) + if(!alternate && new_position == GLOB.PREF_LEGACY) + var/list/game_size = splittext(winget(src, "mainvsplit", "size"), "x") + var/list/input_size = splittext(winget(src, "input_alt", "size"), "x") + + winset(src, "mainvsplit", "size=[game_size[1]]x[text2num(game_size[2]) - text2num(input_size[2]) - VERTICAL_INPUT_MARGIN]") + + var/list/chat_size = splittext(winget(src, "outputwindow", "size"), "x") + + winset(src, "browseroutput", "size=[chat_size[1]]x[chat_size[2]]") + winset(src, "output", "size=[chat_size[1]]x[chat_size[2]]") winset(src, "input_alt", "is-visible=true;is-disabled=false;is-default=true") - winset(src, "hotkey_toggle_alt", "is-visible=true;is-disabled=false;is-default=true") winset(src, "saybutton_alt", "is-visible=true;is-disabled=false;is-default=true") + winset(src, "hotkey_toggle_alt", "is-visible=true;is-disabled=false;is-default=true") winset(src, "input", "is-visible=false;is-disabled=true;is-default=false") - winset(src, "hotkey_toggle", "is-visible=false;is-disabled=true;is-default=false") winset(src, "saybutton", "is-visible=false;is-disabled=true;is-default=false") + winset(src, "hotkey_toggle", "is-visible=false;is-disabled=true;is-default=false") + + else if(alternate && new_position == GLOB.PREF_MODERN) + var/list/game_size = splittext(winget(src, "mainvsplit", "size"), "x") + var/list/alt_input_size = splittext(winget(src, "input_alt", "size"), "x") - var/current_size = splittext(winget(src, "outputwindow.output", "size"), "x") - var/new_size = "[current_size[1]]x[text2num(current_size[2]) - input_height]" - winset(src, "outputwindow.output", "size=[new_size]") - winset(src, "outputwindow.browseroutput", "size=[new_size]") + winset(src, "mainvsplit", "size=[game_size[1]]x[text2num(game_size[2]) + text2num(alt_input_size[2]) + 9]") - current_size = splittext(winget(src, "mainwindow.mainvsplit", "size"), "x") - new_size = "[current_size[1]]x[text2num(current_size[2]) + input_height]" - winset(src, "mainwindow.mainvsplit", "size=[new_size]") - else if(mode == GLOB.PREF_NO && currently_alternative) - input_height = winget(src, "input_alt", "size") - input_height = text2num(splittext(input_height, "x")[2]) + var/list/chat_size = splittext(winget(src, "outputwindow", "size"), "x") + var/list/input_size = splittext(winget(src, "input", "size"), "x") + + var/output_height = text2num(chat_size[2]) - text2num(input_size[2]) - VERTICAL_INPUT_MARGIN + + winset(src, "browseroutput", "size=[chat_size[1]]x[output_height]") + winset(src, "output", "size=[chat_size[1]]x[output_height]") winset(src, "input_alt", "is-visible=false;is-disabled=true;is-default=false") - winset(src, "hotkey_toggle_alt", "is-visible=false;is-disabled=true;is-default=false") winset(src, "saybutton_alt", "is-visible=false;is-disabled=true;is-default=false") + winset(src, "hotkey_toggle_alt", "is-visible=false;is-disabled=true;is-default=false") winset(src, "input", "is-visible=true;is-disabled=false;is-default=true") - winset(src, "hotkey_toggle", "is-visible=true;is-disabled=false;is-default=true") winset(src, "saybutton", "is-visible=true;is-disabled=false;is-default=true") + winset(src, "hotkey_toggle", "is-visible=true;is-disabled=false;is-default=true") - var/current_size = splittext(winget(src, "outputwindow.output", "size"), "x") - var/new_size = "[current_size[1]]x[text2num(current_size[2]) + input_height]" - winset(src, "outputwindow.output", "size=[new_size]") - winset(src, "outputwindow.browseroutput", "size=[new_size]") - - current_size = splittext(winget(src, "mainwindow.mainvsplit", "size"), "x") - new_size = "[current_size[1]]x[text2num(current_size[2]) - input_height]" - winset(src, "mainwindow.mainvsplit", "size=[new_size]") +#undef VERTICAL_INPUT_MARGIN /client/proc/toggle_fullscreen(new_value) if((new_value == GLOB.PREF_BASIC) || (new_value == GLOB.PREF_FULL)) winset(src, "mainwindow", "is-maximized=false;can-resize=false;titlebar=false") if(new_value == GLOB.PREF_FULL) - winset(src, "mainwindow", "menu=null;statusbar=false") - winset(src, "mainwindow.mainvsplit", "pos=0x0") + winset(src, "mainwindow", "menu=null;") else winset(src, "mainwindow", "is-maximized=false;can-resize=true;titlebar=true") - winset(src, "mainwindow", "menu=menu;statusbar=true") - winset(src, "mainwindow.mainvsplit", "pos=3x0") + winset(src, "mainwindow", "menu=menu;") winset(src, "mainwindow", "is-maximized=true") /client/verb/fit_viewport() diff --git a/code/modules/client/preference_setup/general/02_language.dm b/code/modules/client/preference_setup/general/02_language.dm index 4484d355cd6..48514714aba 100644 --- a/code/modules/client/preference_setup/general/02_language.dm +++ b/code/modules/client/preference_setup/general/02_language.dm @@ -71,7 +71,7 @@ var/datum/species/S = all_species[pref.species] || all_species[SPECIES_HUMAN] if(lang.name in S.secondary_langs) return TRUE - if(!(lang.flags & RESTRICTED) && is_alien_whitelisted(user, lang)) + if(!(lang.language_flags & RESTRICTED) && is_alien_whitelisted(user, lang)) return TRUE return FALSE diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index 745e9655bf1..da6dea5a1ab 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -367,7 +367,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O else if(href_list["hair_color"]) if(!has_flag(mob_species, HAS_HAIR_COLOR)) return TOPIC_NOACTION - var/new_hair = input(user, "Choose your character's hair color:", CHARACTER_PREFERENCE_INPUT_TITLE, rgb(pref.r_hair, pref.g_hair, pref.b_hair)) as color|null + var/new_hair = tgui_color_picker(user, "Choose your character's hair color:", CHARACTER_PREFERENCE_INPUT_TITLE, rgb(pref.r_hair, pref.g_hair, pref.b_hair)) if(new_hair && has_flag(all_species[pref.species], HAS_HAIR_COLOR) && CanUseTopic(user)) pref.r_hair = hex2num(copytext(new_hair, 2, 4)) pref.g_hair = hex2num(copytext(new_hair, 4, 6)) @@ -379,7 +379,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O return TOPIC_NOACTION if(has_flag(mob_species, SECONDARY_HAIR_IS_SKIN)) return TOPIC_NOACTION - var/new_hair = input(user, "Choose your character's secondary hair color:", CHARACTER_PREFERENCE_INPUT_TITLE, rgb(pref.r_s_hair, pref.g_s_hair, pref.b_s_hair)) as color|null + var/new_hair = tgui_color_picker(user, "Choose your character's secondary hair color:", CHARACTER_PREFERENCE_INPUT_TITLE, rgb(pref.r_s_hair, pref.g_s_hair, pref.b_s_hair)) if(new_hair && has_flag(all_species[pref.species], HAS_HAIR_COLOR) && CanUseTopic(user)) pref.r_s_hair = hex2num(copytext(new_hair, 2, 4)) pref.g_s_hair = hex2num(copytext(new_hair, 4, 6)) @@ -407,7 +407,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O else if(href_list["facial_color"]) if(!has_flag(mob_species, HAS_HAIR_COLOR)) return TOPIC_NOACTION - var/new_facial = input(user, "Choose your character's facial-hair color:", CHARACTER_PREFERENCE_INPUT_TITLE, rgb(pref.r_facial, pref.g_facial, pref.b_facial)) as color|null + var/new_facial = tgui_color_picker(user, "Choose your character's facial-hair color:", CHARACTER_PREFERENCE_INPUT_TITLE, rgb(pref.r_facial, pref.g_facial, pref.b_facial)) if(new_facial && has_flag(all_species[pref.species], HAS_HAIR_COLOR) && CanUseTopic(user)) pref.r_facial = hex2num(copytext(new_facial, 2, 4)) pref.g_facial = hex2num(copytext(new_facial, 4, 6)) @@ -417,7 +417,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O else if(href_list["eye_color"]) if(!has_flag(mob_species, HAS_EYE_COLOR)) return TOPIC_NOACTION - var/new_eyes = input(user, "Choose your character's eye color:", CHARACTER_PREFERENCE_INPUT_TITLE, rgb(pref.r_eyes, pref.g_eyes, pref.b_eyes)) as color|null + var/new_eyes = tgui_color_picker(user, "Choose your character's eye color:", CHARACTER_PREFERENCE_INPUT_TITLE, rgb(pref.r_eyes, pref.g_eyes, pref.b_eyes)) if(new_eyes && has_flag(all_species[pref.species], HAS_EYE_COLOR) && CanUseTopic(user)) pref.r_eyes = hex2num(copytext(new_eyes, 2, 4)) pref.g_eyes = hex2num(copytext(new_eyes, 4, 6)) @@ -441,7 +441,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O else if(href_list["skin_color"]) if(!has_flag(mob_species, HAS_SKIN_COLOR)) return TOPIC_NOACTION - var/new_skin = input(user, "Choose your character's skin color: ", CHARACTER_PREFERENCE_INPUT_TITLE, rgb(pref.r_skin, pref.g_skin, pref.b_skin)) as color|null + var/new_skin = tgui_color_picker(user, "Choose your character's skin color: ", CHARACTER_PREFERENCE_INPUT_TITLE, rgb(pref.r_skin, pref.g_skin, pref.b_skin)) if(new_skin && has_flag(all_species[pref.species], HAS_SKIN_COLOR) && CanUseTopic(user)) pref.r_skin = hex2num(copytext(new_skin, 2, 4)) pref.g_skin = hex2num(copytext(new_skin, 4, 6)) @@ -498,7 +498,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O else if(href_list["marking_color"]) var/M = href_list["marking_color"] - var/mark_color = input(user, "Choose the [M] color: ", CHARACTER_PREFERENCE_INPUT_TITLE, pref.body_markings[M]) as color|null + var/mark_color = tgui_color_picker(user, "Choose the [M] color: ", CHARACTER_PREFERENCE_INPUT_TITLE, pref.body_markings[M]) if(mark_color && CanUseTopic(user)) pref.body_markings[M] = "[mark_color]" return TOPIC_REFRESH_UPDATE_PREVIEW diff --git a/code/modules/client/preference_setup/global/01_ui.dm b/code/modules/client/preference_setup/global/01_ui.dm index e93660bb44a..20c4b4dd638 100644 --- a/code/modules/client/preference_setup/global/01_ui.dm +++ b/code/modules/client/preference_setup/global/01_ui.dm @@ -26,9 +26,9 @@ /datum/category_item/player_setup_item/player_global/ui/sanitize_preferences() pref.UI_style = sanitize_inlist(pref.UI_style, GLOB.all_ui_styles, initial(pref.UI_style)) - pref.UI_style_color = sanitize_hexcolor(pref.UI_style_color, initial(pref.UI_style_color)) + pref.UI_style_color = sanitize_hexcolor(pref.UI_style_color, desired_format = 6, include_crunch = TRUE, default = initial(pref.UI_style_color)) pref.UI_style_alpha = sanitize_integer(pref.UI_style_alpha, 0, 255, initial(pref.UI_style_alpha)) - pref.ooccolor = sanitize_hexcolor(pref.ooccolor, initial(pref.ooccolor)) + pref.ooccolor = sanitize_hexcolor(pref.ooccolor, desired_format = 6, include_crunch = TRUE, default = initial(pref.ooccolor)) pref.clientfps = sanitize_integer(pref.clientfps, CLIENT_MIN_FPS, CLIENT_MAX_FPS, initial(pref.clientfps)) /datum/category_item/player_setup_item/player_global/ui/content(mob/user) @@ -53,7 +53,7 @@ return TOPIC_REFRESH else if(href_list["select_color"]) - var/UI_style_color_new = input(user, "Choose UI color, dark colors are not recommended!", "Global Preference", pref.UI_style_color) as color|null + var/UI_style_color_new = tgui_color_picker(user, "Choose UI color, dark colors are not recommended!", "Global Preference", pref.UI_style_color) if(isnull(UI_style_color_new) || !CanUseTopic(user)) return TOPIC_NOACTION pref.UI_style_color = UI_style_color_new return TOPIC_REFRESH @@ -65,7 +65,7 @@ return TOPIC_REFRESH else if(href_list["select_ooc_color"]) - var/new_ooccolor = input(user, "Choose OOC color:", "Global Preference") as color|null + var/new_ooccolor = tgui_color_picker(user, "Choose OOC color:", "Global Preference") if(new_ooccolor && can_select_ooc_color(user) && CanUseTopic(user)) pref.ooccolor = new_ooccolor return TOPIC_REFRESH diff --git a/code/modules/client/preference_setup/global/preferences.dm b/code/modules/client/preference_setup/global/preferences.dm index feab9fae5fd..314c71cda69 100644 --- a/code/modules/client/preference_setup/global/preferences.dm +++ b/code/modules/client/preference_setup/global/preferences.dm @@ -10,6 +10,17 @@ GLOBAL_VAR_CONST(PREF_SHOW, "Show") GLOBAL_VAR_CONST(PREF_HIDE, "Hide") GLOBAL_VAR_CONST(PREF_FANCY, "Fancy") GLOBAL_VAR_CONST(PREF_PLAIN, "Plain") +GLOBAL_VAR_CONST(PREF_STRETCH, "Stretch to Fit") +GLOBAL_VAR_CONST(PREF_X1, "x1") +GLOBAL_VAR_CONST(PREF_X15, "x1.5") +GLOBAL_VAR_CONST(PREF_X2, "x2") +GLOBAL_VAR_CONST(PREF_X25, "x2.5") +GLOBAL_VAR_CONST(PREF_X3, "x3") +GLOBAL_VAR_CONST(PREF_NORMAL, "Normal") +GLOBAL_VAR_CONST(PREF_DISTORT, "Distort") +GLOBAL_VAR_CONST(PREF_BLUR, "Blur") +GLOBAL_VAR_CONST(PREF_MODERN, "Modern") +GLOBAL_VAR_CONST(PREF_LEGACY, "Legacy") GLOBAL_VAR_CONST(PREF_PRIMARY, "Primary") GLOBAL_VAR_CONST(PREF_ALL, "All") GLOBAL_VAR_CONST(PREF_OFF, "Off") @@ -34,6 +45,9 @@ GLOBAL_VAR_CONST(PREF_DARKNESS_VISIBLE, "Fully visible") GLOBAL_VAR_CONST(PREF_DARKNESS_MOSTLY_VISIBLE, "Mostly visible") GLOBAL_VAR_CONST(PREF_DARKNESS_BARELY_VISIBLE, "Barely visible") GLOBAL_VAR_CONST(PREF_DARKNESS_INVISIBLE, "Invisible") +GLOBAL_VAR_CONST(PREF_SPLASH_MAPTEXT, "Maptext only") +GLOBAL_VAR_CONST(PREF_SPLASH_CHAT, "Chat only") +GLOBAL_VAR_CONST(PREF_SPLASH_BOTH, "Maptext and chat") var/global/list/_client_preferences var/global/list/_client_preferences_by_key @@ -115,8 +129,8 @@ var/global/list/_client_preferences_by_type /datum/client_preference/splashes description = "Show Splashes (Runechat-Like-Popups)" key = "CHAT_SPLASHES" - default_value = GLOB.PREF_YES - options = list(GLOB.PREF_YES, GLOB.PREF_NO) + default_value = GLOB.PREF_SPLASH_BOTH + options = list(GLOB.PREF_SPLASH_BOTH, GLOB.PREF_SPLASH_MAPTEXT, GLOB.PREF_SPLASH_CHAT) /datum/client_preference/play_admin_midis description ="Play admin midis" @@ -305,6 +319,40 @@ var/global/list/_client_preferences_by_type var/atom/movable/renderer/R = preference_mob.renderers[GAME_RENDERER] R.GraphicsUpdate() +/datum/client_preference/graphics_quality + description = "Graphics Quality (quality of effects)" + key = "GRAPHICS_QUALITY" + options = list(GLOB.PREF_LOW, GLOB.PREF_MED, GLOB.PREF_HIGH) + category = PREF_CATEGORY_GRAPHICS + default_value = GLOB.PREF_HIGH + +/datum/client_preference/graphics_quality/changed(mob/preference_mob, new_value) + if(isnull(preference_mob.client)) + return + + var/atom/movable/renderer/R = preference_mob.renderers[TEMPERATURE_EFFECT_RENDERER] + R.GraphicsUpdate() + +/datum/client_preference/pixel_size + description = "Pixel Size" + key = "PIXEL_SIZE" + category = PREF_CATEGORY_GRAPHICS + options = list(GLOB.PREF_STRETCH, GLOB.PREF_X1, GLOB.PREF_X15, GLOB.PREF_X2, GLOB.PREF_X25, GLOB.PREF_X3) + default_value = GLOB.PREF_STRETCH + +/datum/client_preference/pixel_size/changed(mob/preference_mob, new_value) + winset(preference_mob, "mapwindow.map", "zoom=[zoom_pref2value(new_value)]") + +/datum/client_preference/scaling_method + description = "Scaling Method" + key = "SCALING_METHOD" + category = PREF_CATEGORY_GRAPHICS + options = list(GLOB.PREF_NORMAL, GLOB.PREF_DISTORT, GLOB.PREF_BLUR) + default_value = GLOB.PREF_NORMAL + +/datum/client_preference/scaling_method/changed(mob/preference_mob, new_value) + winset(preference_mob, "mapwindow.map", "zoom-mode=[lowertext(new_value)]") + /datum/client_preference/fullscreen_mode description = "Fullscreen Mode" key = "FULLSCREEN" @@ -316,15 +364,24 @@ var/global/list/_client_preferences_by_type if(preference_mob.client) preference_mob.client.toggle_fullscreen(new_value) -/datum/client_preference/chat_position - description = "Use Alternative Chat Position" - key = "CHAT_ALT" +/datum/client_preference/statusbar + description = "Show Statusbar" + key = "STATUSBAR" category = PREF_CATEGORY_UI - options = list(GLOB.PREF_NO, GLOB.PREF_YES) + options = list(GLOB.PREF_YES, GLOB.PREF_NO) -/datum/client_preference/chat_position/changed(mob/preference_mob, new_value) - if(preference_mob.client) - preference_mob.client.update_chat_position() +/datum/client_preference/statusbar/changed(mob/preference_mob, new_value) + winset(preference_mob, "statusbar", "is-visible=[new_value == GLOB.PREF_YES]") + +/datum/client_preference/legacy_input + description = "Oldschool™ Input Position" + key = "INPUT_POSITION" + category = PREF_CATEGORY_UI + options = list(GLOB.PREF_MODERN, GLOB.PREF_LEGACY) + default_value = GLOB.PREF_MODERN + +/datum/client_preference/legacy_input/changed(mob/preference_mob, new_value) + preference_mob?.client?.update_chat_position(new_value) /datum/client_preference/cinema_credits description = "Show Cinema-like Credits At Round-end" @@ -486,3 +543,17 @@ var/global/list/_client_preferences_by_type key = "SOUND_PRAY" category = PREF_CATEGORY_STAFF flags = R_PERMISSIONS + +/datum/client_preference/staff/fast_mc_refresh + description = "Fast MC Refresh" + key = "FAST_REFRESH" + category = PREF_CATEGORY_STAFF + default_value = GLOB.PREF_NO + flags = R_DEBUG + +/datum/client_preference/staff/split_admin_tabs + description = "Split Admin Tabs" + key = "SPLIT_TABS" + category = PREF_CATEGORY_STAFF + default_value = GLOB.PREF_NO + flags = R_PERMISSIONS diff --git a/code/modules/client/preference_setup/loadout/gear_tweaks.dm b/code/modules/client/preference_setup/loadout/gear_tweaks.dm index 7230349162f..1ddadf7f32f 100644 --- a/code/modules/client/preference_setup/loadout/gear_tweaks.dm +++ b/code/modules/client/preference_setup/loadout/gear_tweaks.dm @@ -58,7 +58,7 @@ /datum/gear_tweak/color/get_metadata(user, metadata, title = CHARACTER_PREFERENCE_INPUT_TITLE) if(valid_colors) return input(user, "Choose a color.", title, metadata) as null|anything in valid_colors - return input(user, "Choose a color.", title, metadata) as color|null + return tgui_color_picker(user, "Choose a color.", title, metadata) /datum/gear_tweak/color/tweak_item(obj/item/I, metadata) if(valid_colors && !(metadata in valid_colors)) diff --git a/code/modules/client/preference_setup/loadout/lists/accessories.dm b/code/modules/client/preference_setup/loadout/lists/accessories.dm index 43fe2997cae..2d9c8bbb479 100644 --- a/code/modules/client/preference_setup/loadout/lists/accessories.dm +++ b/code/modules/client/preference_setup/loadout/lists/accessories.dm @@ -131,3 +131,18 @@ dogtag.stored_name = H.real_name dogtag.religion = H.religion dogtag.stored_blood_type = H.b_type + +/datum/gear/accessory/pin + display_name = "pin selection" + description = "A Nanotrasen holographic pin to show off your loyalty to the company, reminding the crew of your unwavering commitment to whatever NanoTrasen's up to!" + path = /obj/item/clothing/accessory/pin + +/datum/gear/accessory/pin/New() + ..() + var/pinies = list() + pinies["NanoTrasen pin"] = /obj/item/clothing/accessory/pin + pinies["pig pin"] = /obj/item/clothing/accessory/pin/pig + pinies["skull pin"] = /obj/item/clothing/accessory/pin/skull + pinies["rainbow pin"] = /obj/item/clothing/accessory/pin/pride + + gear_tweaks += new /datum/gear_tweak/path(pinies) diff --git a/code/modules/client/preference_setup/loadout/lists/uniforms.dm b/code/modules/client/preference_setup/loadout/lists/uniforms.dm index 09da7be8d41..5116a9b2b94 100644 --- a/code/modules/client/preference_setup/loadout/lists/uniforms.dm +++ b/code/modules/client/preference_setup/loadout/lists/uniforms.dm @@ -74,16 +74,30 @@ path = /obj/item/clothing/under/skirt flags = GEAR_HAS_TYPE_SELECTION -/datum/gear/uniform/skirt_c - display_name = "short skirt, colour select" - path = /obj/item/clothing/under/skirt_c - flags = GEAR_HAS_COLOR_SELECTION - /datum/gear/uniform/skirt_c/dress display_name = "simple dress, colour select" path = /obj/item/clothing/under/skirt_c/dress flags = GEAR_HAS_COLOR_SELECTION +/datum/gear/uniform/skirts_color + display_name = "skirt selection, colour select" + path = /obj/item/clothing/under/skirt_c + flags = GEAR_HAS_COLOR_SELECTION + +/datum/gear/uniform/skirts_color/New() + ..() + var/skirts_colorable = list() + skirts_colorable += /obj/item/clothing/under/skirt_c + skirts_colorable += /obj/item/clothing/under/skirt_c/pencil + skirts_colorable += /obj/item/clothing/under/skirt_c/casual + skirts_colorable += /obj/item/clothing/under/skirt_c/high + skirts_colorable += /obj/item/clothing/under/skirt_c/long + skirts_colorable += /obj/item/clothing/under/skirt_c/swept + skirts_colorable += /obj/item/clothing/under/skirt_c/plaid + skirts_colorable += /obj/item/clothing/under/skirt_c/skater + skirts_colorable += /obj/item/clothing/under/skirt_c/tube + gear_tweaks += new /datum/gear_tweak/path/specified_types_list(skirts_colorable) + /datum/gear/uniform/casual_pants display_name = "casual pants selection" path = /obj/item/clothing/under/casual_pants diff --git a/code/modules/client/preference_setup/matchmaking/matchmaking.dm b/code/modules/client/preference_setup/matchmaking/matchmaking.dm index 070fdd3afbe..54747fd3cec 100644 --- a/code/modules/client/preference_setup/matchmaking/matchmaking.dm +++ b/code/modules/client/preference_setup/matchmaking/matchmaking.dm @@ -17,7 +17,7 @@ var/global/datum/matchmaker/matchmaker = new() /datum/matchmaker/proc/do_matchmaking() var/list/to_warn = list() for(var/datum/relation/R in relations) - if(!R.holder.current || R.holder.current.isSynthetic()) + if(!R.holder.current || issilicon(R.holder.current)) continue if(!R.other) R.find_match() @@ -73,7 +73,7 @@ var/global/datum/matchmaker/matchmaker = new() if(!M.current) //no extremely platonic relationships return FALSE - if(M.current.isSynthetic()) // No relationships with robots + if(issilicon(M.current)) // No relationships with robots return FALSE return TRUE diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index f596e4f3c3f..95116f058d5 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -391,7 +391,7 @@ datum/preferences/proc/clear_character_previews() var/metadata = all_underwear_metadata[underwear_category_name] var/obj/item/underwear/UW = UWD.create_underwear(metadata) if(UW) - UW.ForceEquipUnderwear(character, FALSE) + UW.ForceEquipUnderwear(character, null, FALSE) else all_underwear -= underwear_category_name @@ -415,6 +415,7 @@ datum/preferences/proc/clear_character_previews() character.update_body(0) character.update_underwear(0) character.update_hair(0) + character.update_facial_hair(0) character.update_deformities(0) character.update_icons() @@ -474,7 +475,14 @@ datum/preferences/proc/clear_character_previews() ASSERT(client) client.apply_fps(clientfps) - client.update_chat_position(client.get_preference_value(/datum/client_preference/chat_position)) + + client.update_chat_position(client.get_preference_value("INPUT_POSITION")) + + var/zoom = client.get_preference_value("PIXEL_SIZE") + winset(client, "mapwindow.map", "zoom=[zoom_pref2value(zoom)]") + + var/zoom_mode = client.get_preference_value("SCALING_METHOD") + winset(client, "mapwindow.map", "zoom-mode=[lowertext(zoom_mode)]") if(client.get_preference_value(/datum/client_preference/fullscreen_mode) != GLOB.PREF_NO) client.toggle_fullscreen(client.get_preference_value(/datum/client_preference/fullscreen_mode)) @@ -484,3 +492,6 @@ datum/preferences/proc/clear_character_previews() winset(client, "browseroutput", "is-disabled=1;is-visible=0") else client.tgui_panel.initialize() + + if(client.get_preference_value("STATUSBAR") != GLOB.PREF_YES) + winset(client, "statusbar", "is-visible=0") diff --git a/code/modules/client/preferences_toggle.dm b/code/modules/client/preferences_toggle.dm deleted file mode 100644 index 76661db271d..00000000000 --- a/code/modules/client/preferences_toggle.dm +++ /dev/null @@ -1,63 +0,0 @@ -var/list/client_preference_stats_ - -/proc/client_preference_stats_for_usr(mob/user = usr) - . = list() - if(!user) - return - if(!SScharacter_setup.initialized) - return - if(!client_preference_stats_) - client_preference_stats_ = list() - for(var/datum/client_preference/client_pref in get_client_preferences()) - client_preference_stats_[client_pref.description] = new /stat_client_preference(null, client_pref) - - for(var/client_pref_description in client_preference_stats_) - var/stat_client_preference/scp = client_preference_stats_[client_pref_description] - if(scp.client_preference.may_set(user.client)) - scp.update_name(user) - .[client_pref_description] = scp - -/client/verb/toggle_preference_verb(client_pref_name in client_preference_stats_for_usr()) - set name = "Toggle Preference" - set desc = "Toggles the selected preference." - set category = "OOC" - - var/list/client_stats = client_preference_stats_for_usr() - var/stat_client_preference/scp = client_stats[client_pref_name] - if(istype(scp)) - scp.Click() - -/mob/Stat() - . = ..() - if(!client || !statpanel("Preferences")) - return - var/list/preferences = client_preference_stats_for_usr(src) - for(var/client_preference_description in preferences) - var/stat_client_preference/scp = client_preference_stats_[client_preference_description] - stat(scp.client_preference.description, scp) - -/stat_client_preference - parent_type = /atom/movable - simulated = 0 - var/datum/client_preference/client_preference - -/stat_client_preference/New(loc, preference) - client_preference = preference - update_name(usr) - ..() - -/stat_client_preference/Destroy() - client_preference = null - . = ..() - -/stat_client_preference/Click() - if(!usr.client) - return - if(!usr.cycle_preference(client_preference)) - return - - SScharacter_setup.queue_preferences_save(usr.client.prefs) - to_chat(usr, "[client_preference.description]: [usr.get_preference_value(client_preference)]") - -/stat_client_preference/proc/update_name(mob/user) - name = user.get_preference_value(client_preference) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 597c2f0858e..f72a0c5e4bb 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -354,7 +354,6 @@ /obj/item/clothing/gloves/color/white/bluespace_tech, /obj/item/clothing/gloves/color/white/modified, /obj/item/clothing/gloves/color/modified, - /obj/item/clothing/gloves/boxing/hologlove, /obj/item/clothing/gloves/duty/modified, /obj/item/clothing/gloves/latex/modified, /obj/item/clothing/gloves/latex/nitrile/modified, @@ -393,9 +392,9 @@ unarmed_damage_override = 10 origin_tech = list(TECH_ILLEGAL = 5) -/obj/item/clothing/gloves/chameleon/robust/_examine_text(mob/user) +/obj/item/clothing/gloves/chameleon/robust/examine(mob/user, infix) . = ..() - . += "\nThese look extra robust." + . += "These look extra robust." //****************** //**Chameleon Mask** diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index a9523bf9ad1..d1c6b82567a 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -13,7 +13,7 @@ var/list/species_restricted = null var/gunshot_residue //Used by forensics. - var/list/accessories = list() + var/list/accessories var/list/valid_accessory_slots var/list/restricted_accessory_slots var/list/starting_accessories @@ -45,10 +45,12 @@ GLOBAL_LIST_EMPTY(clothing_blood_icons) /obj/item/clothing/get_mob_overlay(mob/user_mob, slot) - var/image/ret = ..() + . = ..() if(slot == slot_l_hand_str || slot == slot_r_hand_str) - return ret + return + + var/image/ret = . ? . : image('icons/effects/blank.dmi') if(ishuman(user_mob)) var/mob/living/carbon/human/user_human = user_mob @@ -63,9 +65,8 @@ GLOBAL_LIST_EMPTY(clothing_blood_icons) ret.AddOverlays(GLOB.clothing_blood_icons[cache_index]) - if(length(accessories)) - for(var/obj/item/clothing/accessory/A in accessories) - ret.AddOverlays(A.get_mob_overlay(user_mob, slot_tie_str)) + for(var/obj/item/clothing/accessory/A in accessories) + ret.AddOverlays(A.get_mob_overlay(user_mob, slot_tie_str)) return ret // Aurora forensics port. @@ -177,18 +178,29 @@ GLOBAL_LIST_EMPTY(clothing_blood_icons) else icon = initial(icon) +/obj/item/clothing/examine(mob/user, infix) + . = ..() + + . += "Show protection classes." + /obj/item/clothing/get_examine_line(is_visible=TRUE) . = ..() if(is_visible) - var/list/ties = list() + var/list/ties for(var/obj/item/clothing/accessory/accessory in accessories) if(accessory.high_visibility) - ties += "\icon[accessory] \a [accessory]" - if(ties.len) + LAZYADD(ties, "\icon[accessory] \a [accessory]") + if(LAZYLEN(ties)) .+= " with [english_list(ties)] attached" - if(accessories.len > ties.len) + if(LAZYLEN(accessories) > LAZYLEN(ties)) .+= ". \[See accessories\]" +/obj/item/clothing/Topic(href, href_list, datum/topic_state/state) + . = ..() + + if(href_list["examine_protection"]) + to_chat(usr, EXAMINE_BLOCK(get_protection_stats().Join("\n"))) + /obj/item/clothing/CanUseTopic(mob/user, datum/topic_state/state, href_list) if(href_list && href_list["list_ungabunga"] && (user in view(get_turf(src)))) //)))))) return STATUS_INTERACTIVE @@ -197,7 +209,7 @@ GLOBAL_LIST_EMPTY(clothing_blood_icons) /obj/item/clothing/OnTopic(user, list/href_list, datum/topic_state/state) if(href_list["list_ungabunga"]) - if(accessories.len) + if(LAZYLEN(accessories)) var/list/ties = list() for(var/accessory in accessories) ties += "\icon[accessory] \a [accessory]" @@ -228,3 +240,70 @@ GLOBAL_LIST_EMPTY(clothing_blood_icons) return list(armor[type], coverage) return + +/obj/item/clothing/proc/get_protection_stats(mob/user) + RETURN_TYPE(/list) + + . = list() + + for(var/armor_type in armor) + var/armor_value = armor[armor_type] + + if(armor_value == 0) + continue + + . += _describe_armor(armor_type, GLOB.descriptive_attack_types[armor_type]) + + . += "" + + if(item_flags & ITEM_FLAG_AIRTIGHT) + . += "It is airtight." + + if(item_flags & ITEM_FLAG_STOPPRESSUREDAMAGE) + . += "Wearing this will protect you from the vacuum of space." + + if(item_flags & ITEM_FLAG_THICKMATERIAL) + . += "The material is exceptionally thick." + + if(max_heat_protection_temperature >= FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE) + . += "It provides very good protection against fire and heat." + + if(min_cold_protection_temperature == SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE) + . += "It provides very good protection against very cold temperatures." + + var/list/covers + for(var/name in string_part_flags) + if(body_parts_covered & string_part_flags[name]) + LAZYADD(covers, name) + + var/list/slots + for(var/name in string_slot_flags) + if(slot_flags & string_slot_flags[name]) + LAZYADD(slots, name) + + if(length(covers)) + . += "It grants [round(coverage * 100)]% protection of the [english_list(covers)]." + + if(length(slots)) + . += "It can be worn on your [english_list(slots)]." + +/obj/item/clothing/proc/_describe_armor(armor_type, descriptive_attack_type) + switch(armor[armor_type]) + if(1 to 9) + return "It barely protects against [descriptive_attack_type]." + if(10 to 19) + return "It provides a very small defense against [descriptive_attack_type]." + if(20 to 39) + return "It offers a small amount of protection against [descriptive_attack_type]." + if(40 to 59) + return "It offers a moderate defense against [descriptive_attack_type]." + if(60 to 79) + return "It provides a strong defense against [descriptive_attack_type]." + if(80 to 99) + return "It is very strong against [descriptive_attack_type]." + if(100 to 124) + return "This gives a very robust defense against [descriptive_attack_type]." + if(125 to 149) + return "Wearing this would make you nigh-invulerable against [descriptive_attack_type]." + if(150 to INFINITY) + return "You would be practically immune to [descriptive_attack_type] if you wore this." diff --git a/code/modules/clothing/clothing_accessories.dm b/code/modules/clothing/clothing_accessories.dm index d82c9ce6fbf..bd4a712d10c 100644 --- a/code/modules/clothing/clothing_accessories.dm +++ b/code/modules/clothing/clothing_accessories.dm @@ -1,16 +1,16 @@ /obj/item/clothing/proc/can_attach_accessory(obj/item/clothing/accessory/A) - if(valid_accessory_slots && istype(A) && (A.slot in valid_accessory_slots)) + if(istype(A) && LAZYISIN(valid_accessory_slots, A.slot)) .=1 else return 0 - if(accessories.len && restricted_accessory_slots && (A.slot in restricted_accessory_slots)) + if(LAZYLEN(accessories) && LAZYISIN(restricted_accessory_slots, A.slot)) for(var/obj/item/clothing/accessory/AC in accessories) if (AC.slot == A.slot) return 0 /obj/item/clothing/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/clothing/accessory)) - if(!valid_accessory_slots || !valid_accessory_slots.len) + if(!LAZYLEN(valid_accessory_slots)) to_chat(usr, SPAN("warning", "You cannot attach accessories of any kind to \the [src].")) return @@ -29,7 +29,7 @@ /obj/item/clothing/attack_hand(mob/user) //only forward to the attached accessory if the clothing is equipped (not in a storage) - if(accessories.len && src.loc == user) + if(LAZYLEN(accessories) && src.loc == user) var/obj/item/clothing/accessory/A = accessories[accessories.len] // only upper accessory can be fast accessed A.attack_hand(user) return @@ -56,10 +56,10 @@ usr.put_in_l_hand(src) add_fingerprint(usr) -/obj/item/clothing/_examine_text(mob/user) +/obj/item/clothing/examine(mob/user, infix) . = ..() for(var/obj/item/clothing/accessory/A in accessories) - . += "\n\icon[A] \A [A] is attached to it." + . += "\icon[A] \A [A] is attached to it." /obj/item/clothing/proc/update_accessory_slowdown() slowdown_accessory = 0 @@ -76,18 +76,18 @@ * items on spawn */ /obj/item/clothing/proc/attach_accessory(mob/user, obj/item/clothing/accessory/A) - accessories += A + LAZYADD(accessories, A) A.on_attached(src, user) - src.verbs |= /obj/item/clothing/proc/removetie_verb + add_verb(loc, /obj/item/clothing/proc/removetie_verb) update_accessory_slowdown() update_clothing_icon() /obj/item/clothing/proc/remove_accessory(mob/user, obj/item/clothing/accessory/A) - if(!A || !(A in accessories)) + if(!A || !LAZYISIN(accessories, A)) return A.on_removed(user) - accessories -= A + LAZYREMOVE(accessories, A) update_accessory_slowdown() update_clothing_icon() @@ -97,18 +97,20 @@ set src in usr if(!istype(usr, /mob/living)) return if(usr.stat) return - if(!accessories.len) return + if(!LAZYLEN(accessories)) + return + var/obj/item/clothing/accessory/A if(accessories.len > 1) A = show_radial_menu(usr, usr, make_item_radial_menu_choices(accessories), radius = 42) else A = accessories[1] src.remove_accessory(usr,A) - if(!accessories.len) - src.verbs -= /obj/item/clothing/proc/removetie_verb + if(!LAZYLEN(accessories)) + remove_verb(loc, /obj/item/clothing/proc/removetie_verb) /obj/item/clothing/emp_act(severity) - if(accessories.len) + if(LAZYLEN(accessories)) for(var/obj/item/clothing/accessory/A in accessories) A.emp_act(severity) ..() diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 84fda4f552e..d064e6c348a 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -218,12 +218,13 @@ var/sec_hud = FALSE var/med_hud = FALSE -/obj/item/clothing/glasses/hud/_examine_text(mob/user) +/obj/item/clothing/glasses/hud/examine(mob/user, infix) . = ..() + if(matrix) - . += "\nIt has a [matrix.matrix_type] optical matrix installed." + . += "It has a [matrix.matrix_type] optical matrix installed." if(lenses) - . += "\nIt has [lenses] installed." + . += "It has [lenses] installed." /obj/item/clothing/glasses/hud/Initialize() . = ..() diff --git a/code/modules/clothing/gloves.dm b/code/modules/clothing/gloves.dm index 0226b7c2174..85ad55969e4 100644 --- a/code/modules/clothing/gloves.dm +++ b/code/modules/clothing/gloves.dm @@ -16,6 +16,11 @@ drop_sound = SFX_DROP_GLOVES pickup_sound = SFX_PICKUP_GLOVES + item_state_slots = list( + slot_l_hand_str = "bgloves", + slot_r_hand_str = "bgloves", + ) + var/transfer_blood = 0 var/mob/living/carbon/human/bloody_hands_mob diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm index b5bef3aa696..9e2c186e46b 100644 --- a/code/modules/clothing/gloves/boxing.dm +++ b/code/modules/clothing/gloves/boxing.dm @@ -4,6 +4,28 @@ icon_state = "boxing" armor = list(melee = 60, bullet = 30, laser = 50, energy = 15, bomb = 0, bio = 0) + /// Holder for boxing unarmed attacks with no real damage. + var/static/datum/unarmed_attack/punch/boxing/attack = /datum/unarmed_attack/punch/boxing + species_restricted = list("exclude", SPECIES_VOX) + +/obj/item/clothing/gloves/boxing/hologloves + alpha = 180 // Semi-transparent since its a hologram + +/obj/item/clothing/gloves/boxing/hologloves/green + icon_state = "boxinggreen" + +/obj/item/clothing/gloves/boxing/hologloves/blue + icon_state = "boxingblue" + +/obj/item/clothing/gloves/boxing/hologloves/yellow + icon_state = "boxingyellow" + + +/obj/item/clothing/gloves/boxing/Initialize() + . = ..() + if(ispath(attack)) + attack = new attack() + /obj/item/clothing/gloves/boxing/attackby(obj/item/W, mob/user) if(isWirecutter(W) || istype(W, /obj/item/scalpel) || isCoil(W)) to_chat(user, SPAN("notice", "That won't work."))//Nope @@ -23,3 +45,17 @@ name = "white gloves" desc = "These look pretty fancy." icon_state = "white" + + item_state_slots = list( + slot_l_hand_str = "lgloves", + slot_r_hand_str = "lgloves", + ) + +/datum/unarmed_attack/punch/boxing + attack_verb = list("punched") + attack_noun = list("fist") + eye_attack_text = "fingers" + eye_attack_text_victim = "digits" + damage = 0 + + deal_halloss = 1 diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 9d4bac0947b..5b006dbba47 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -3,6 +3,11 @@ icon_state = "white" armor = list(melee = 10, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0) + item_state_slots = list( + slot_l_hand_str = "lgloves", + slot_r_hand_str = "lgloves", + ) + /obj/item/clothing/gloves/color/modified item_flags = ITEM_FLAG_PREMODIFIED diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 777482eb83a..ebe65fc1f5e 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -17,6 +17,11 @@ drop_sound = SFX_DROP_RUBBER pickup_sound = SFX_PICKUP_RUBBER + item_state_slots = list( + slot_l_hand_str = "ygloves", + slot_r_hand_str = "ygloves", + ) + /obj/item/clothing/gloves/insulated/cheap //Cheap Chinese Crap desc = "These gloves are cheap copies of the coveted gloves, no way this can end badly." name = "budget insulated gloves" @@ -100,6 +105,11 @@ drop_sound = SFX_DROP_RUBBER pickup_sound = SFX_PICKUP_RUBBER + item_state_slots = list( + slot_l_hand_str = "lgloves", + slot_r_hand_str = "lgloves", + ) + /obj/item/clothing/gloves/latex/modified item_flags = ITEM_FLAG_PREMODIFIED diff --git a/code/modules/clothing/gloves/stun.dm b/code/modules/clothing/gloves/stun.dm index 561a063c358..63d5db1233d 100644 --- a/code/modules/clothing/gloves/stun.dm +++ b/code/modules/clothing/gloves/stun.dm @@ -37,8 +37,9 @@ if(bcell) AddOverlays(image(icon, "gloves_cell")) -/obj/item/clothing/gloves/stun/_examine_text() +/obj/item/clothing/gloves/stun/examine(mob/user, infix) . = ..() + if(!bcell) . += "
\The [src] have no power cell installed." else diff --git a/code/modules/clothing/head.dm b/code/modules/clothing/head.dm index 6ab3410c2b4..f0b61740bcd 100644 --- a/code/modules/clothing/head.dm +++ b/code/modules/clothing/head.dm @@ -23,7 +23,13 @@ pickup_sound = SFX_PICKUP_HAT /obj/item/clothing/head/get_mob_overlay(mob/user_mob, slot) - var/image/ret = ..() + . = ..() + + if(slot == slot_l_hand_str || slot == slot_r_hand_str) + return + + var/image/ret = . + var/species_name = "Default" if(ishuman(user_mob)) var/mob/living/carbon/human/user_human = user_mob diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index eec79d7f2fc..e9b24751c79 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -36,8 +36,9 @@ pickup_sound = SFX_PICKUP_HELMET drop_sound = SFX_DROP_HELMET -/obj/item/clothing/head/welding/_examine_text(mob/user) +/obj/item/clothing/head/welding/examine(mob/user, infix) . = ..() + if(cover) . += " [cover.cover_desc]" diff --git a/code/modules/clothing/mask.dm b/code/modules/clothing/mask.dm index ccb0a124a88..5dfa97ab22c 100644 --- a/code/modules/clothing/mask.dm +++ b/code/modules/clothing/mask.dm @@ -18,12 +18,15 @@ var/down_flags_inv = 0 var/pull_mask = 0 var/hanging = 0 + var/can_use_alt_layer = FALSE var/atom/movable/screen/overlay = null /obj/item/clothing/mask/New() if(pull_mask) action_button_name = "Adjust Mask" verbs += /obj/item/clothing/mask/proc/adjust_mask + if(can_use_alt_layer) + verbs += /obj/item/clothing/mask/proc/toggle_layer ..() /obj/item/clothing/mask/Destroy() @@ -71,6 +74,24 @@ update_clothing_icon() user.update_action_buttons() + +/obj/item/clothing/mask/proc/toggle_layer() + set name = "Switch Mask Layer" + set category = "Object" + set src in usr + + if(!isliving(usr)) + return + + if(usr.stat) + return + + if(!can_use_alt_layer) + return + + use_alt_layer = !use_alt_layer + update_clothing_icon() + /obj/item/clothing/mask/attack_self(mob/user) if(pull_mask) adjust_mask(user) diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 70741c84cc6..7c1aa76fbc7 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -18,6 +18,14 @@ RADIATION_BETA_PARTICLE = 2.6 MEGA ELECTRONVOLT, RADIATION_HAWKING = 1 ELECTRONVOLT ) + + item_state_slots = list( + slot_l_hand_str = "breathmask", + slot_r_hand_str = "breathmask", + ) + use_alt_layer = TRUE + can_use_alt_layer = TRUE + /obj/item/clothing/mask/breath/medical desc = "A close-fitting sterile mask that can be manually connected to an air supply for treatment." name = "medical mask" @@ -26,6 +34,13 @@ permeability_coefficient = 0.01 armor = list(melee = 5, bullet = 3, laser = 3, energy = 0, bomb = 0, bio = 35) + item_state_slots = list( + slot_l_hand_str = "m_mask", + slot_r_hand_str = "m_mask", + ) + use_alt_layer = FALSE + can_use_alt_layer = FALSE + /obj/item/clothing/mask/breath/anesthetic desc = "A close-fitting sterile mask that is used by the anesthetic wallmounted pump." name = "anesthetic mask" @@ -33,6 +48,13 @@ item_state = "medical" permeability_coefficient = 0.01 + item_state_slots = list( + slot_l_hand_str = "m_mask", + slot_r_hand_str = "m_mask", + ) + use_alt_layer = FALSE + can_use_alt_layer = FALSE + /obj/item/clothing/mask/breath/emergency desc = "A close-fitting mask that is used by the wallmounted emergency oxygen pump." name = "emergency mask" diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 6e4651584d8..2be044e3935 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -130,6 +130,11 @@ item_state = "clown" istinted = 0 + item_state_slots = list( + slot_l_hand_str = "clown_hat", + slot_r_hand_str = "clown_hat", + ) + /obj/item/clothing/mask/gas/sexyclown name = "sexy-clown wig and mask" desc = "A feminine clown mask for the dabbling crossdressers or female entertainers." @@ -181,6 +186,11 @@ istinted = 0 siemens_coefficient = 1.0 + item_state_slots = list( + slot_l_hand_str = "owl_mask", + slot_r_hand_str = "owl_mask", + ) + /obj/item/clothing/mask/gas/vox name = "vox breathing mask" desc = "A small oxygen filter for use by Vox" @@ -204,3 +214,8 @@ filtered_gases = list("phoron", "sleeping_agent", "oxygen") say_messages = list("Mmfph!", "Mmmf mrrfff!", "Mmmf mnnf!") say_verbs = list("mumbles") + + item_state_slots = list( + slot_l_hand_str = "plasticbag", + slot_r_hand_str = "plasticbag", + ) diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 1b7963dbf92..b473a3fa2c7 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -15,13 +15,14 @@ icon_state = "tape_cross" item_state = null w_class = ITEM_SIZE_TINY - + use_alt_layer = TRUE /obj/item/clothing/mask/muzzle/ballgag name = "Ballgag" desc = "For when Master wants silence." icon_state = "ballgag" item_state = "ballgag" + can_use_alt_layer = TRUE /obj/item/clothing/mask/muzzle/Initialize() . = ..() @@ -54,6 +55,7 @@ RADIATION_BETA_PARTICLE = 2.2 MEGA ELECTRONVOLT, RADIATION_HAWKING = 1 ELECTRONVOLT ) + use_alt_layer = TRUE /obj/item/clothing/mask/fakemoustache name = "fake moustache" @@ -62,6 +64,7 @@ flags_inv = HIDEFACE body_parts_covered = NO_BODYPARTS visible_name = "Scoundrel" + can_use_alt_layer = TRUE /obj/item/clothing/mask/snorkel name = "Snorkel" @@ -78,6 +81,7 @@ body_parts_covered = NO_BODYPARTS item_flags = 0 w_class = ITEM_SIZE_SMALL + can_use_alt_layer = TRUE /obj/item/clothing/mask/uwu name = "UwU mask" @@ -87,6 +91,7 @@ body_parts_covered = NO_BODYPARTS item_flags = 0 w_class = ITEM_SIZE_SMALL + use_alt_layer = TRUE /obj/item/clothing/mask/redwscarf name = "red white scarf" @@ -96,6 +101,7 @@ body_parts_covered = NO_BODYPARTS item_flags = 0 w_class = ITEM_SIZE_SMALL + can_use_alt_layer = TRUE /obj/item/clothing/mask/greenscarf name = "green scarf" @@ -104,6 +110,7 @@ item_state = "green_scarf" body_parts_covered = NO_BODYPARTS w_class = ITEM_SIZE_SMALL + can_use_alt_layer = TRUE /obj/item/clothing/mask/ninjascarf name = "ninja scarf" @@ -112,6 +119,7 @@ item_state = "ninja_scarf" body_parts_covered = NO_BODYPARTS w_class = ITEM_SIZE_SMALL + can_use_alt_layer = TRUE /obj/item/clothing/mask/sbluescarf name = "stripped blue scarf" @@ -120,6 +128,7 @@ item_state = "sblue_scarf" body_parts_covered = NO_BODYPARTS w_class = ITEM_SIZE_SMALL + can_use_alt_layer = TRUE /obj/item/clothing/mask/sgreenscarf name = "stripped green scarf" @@ -128,6 +137,7 @@ item_state = "sgreen_scarf" body_parts_covered = NO_BODYPARTS w_class = ITEM_SIZE_SMALL + can_use_alt_layer = TRUE /obj/item/clothing/mask/sredscarf name = "stripped red scarf" @@ -136,6 +146,7 @@ item_state = "sred_scarf" body_parts_covered = NO_BODYPARTS w_class = ITEM_SIZE_SMALL + can_use_alt_layer = TRUE /obj/item/clothing/mask/redscarf name = "red scarf" @@ -144,6 +155,7 @@ item_state = "red_scarf" body_parts_covered = NO_BODYPARTS w_class = ITEM_SIZE_SMALL + can_use_alt_layer = TRUE /obj/item/clothing/mask/ai name = "camera MIU" @@ -155,6 +167,9 @@ action_button_name = "Toggle MUI" origin_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5) armor = list(melee = 10, bullet = 10, laser = 10, energy = 5, bomb = 0, bio = 0) //Well it's made of some sort of plastic. + use_alt_layer = TRUE + can_use_alt_layer = TRUE + var/active = FALSE var/mob/observer/eye/cameranet/eye @@ -299,6 +314,8 @@ RADIATION_BETA_PARTICLE = 2.18 MEGA ELECTRONVOLT, RADIATION_HAWKING = 1 ELECTRONVOLT ) + use_alt_layer = TRUE + can_use_alt_layer = TRUE /obj/item/clothing/mask/bandana/equipped(mob/user, slot) switch(slot) @@ -381,6 +398,7 @@ w_class = ITEM_SIZE_NORMAL armor = list(melee = 15, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0) siemens_coefficient = 0.8 + can_use_alt_layer = TRUE /obj/item/clothing/mask/plasticbag name = "plastic bag" diff --git a/code/modules/clothing/shoes.dm b/code/modules/clothing/shoes.dm index 9068f48a700..a7908f94868 100644 --- a/code/modules/clothing/shoes.dm +++ b/code/modules/clothing/shoes.dm @@ -20,6 +20,11 @@ drop_sound = SFX_DROP_SHOES pickup_sound = SFX_PICKUP_SHOES + item_state_slots = list( + slot_l_hand_str = "shoes", + slot_r_hand_str = "shoes", + ) + var/overshoes = 0 var/can_hold_knife var/obj/item/holding @@ -51,7 +56,7 @@ holding.forceMove(src) if(!holding) - verbs -= /obj/item/clothing/shoes/proc/draw_knife + remove_verb(loc, /obj/item/clothing/shoes/proc/draw_knife) update_icon() return @@ -71,7 +76,7 @@ return holding = I user.visible_message("\The [user] shoves \the [I] into \the [src].", range = 1) - verbs |= /obj/item/clothing/shoes/proc/draw_knife + add_verb(loc, /obj/item/clothing/shoes/proc/draw_knife) update_icon() else if(istype(I, /obj/item/flame/match)) var/obj/item/flame/match/M = I diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index 1ec8461ad4b..6ac482f45fe 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -8,11 +8,21 @@ heat_protection = FEET max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE + item_state_slots = list( + slot_l_hand_str = "bl_shoes", + slot_r_hand_str = "bl_shoes", + ) + /obj/item/clothing/shoes/brown name = "brown shoes" desc = "A pair of brown shoes." icon_state = "brown" + item_state_slots = list( + slot_l_hand_str = "b_shoes", + slot_r_hand_str = "b_shoes", + ) + /obj/item/clothing/shoes/blue name = "blue shoes" icon_state = "blue" @@ -34,21 +44,41 @@ desc = "Stylish red shoes." icon_state = "red" + item_state_slots = list( + slot_l_hand_str = "r_shoes", + slot_r_hand_str = "r_shoes", + ) + /obj/item/clothing/shoes/white name = "white shoes" icon_state = "white" permeability_coefficient = 0.01 + item_state_slots = list( + slot_l_hand_str = "w_shoes", + slot_r_hand_str = "w_shoes", + ) + /obj/item/clothing/shoes/leather name = "leather shoes" desc = "A sturdy pair of leather shoes." icon_state = "leather" + item_state_slots = list( + slot_l_hand_str = "leather_shoes", + slot_r_hand_str = "leather_shoes", + ) + /obj/item/clothing/shoes/rainbow name = "rainbow shoes" desc = "Very gay shoes." icon_state = "rain_bow" + item_state_slots = list( + slot_l_hand_str = "r_shoes", + slot_r_hand_str = "r_shoes", + ) + /obj/item/clothing/shoes/orange name = "orange shoes" icon_state = "orange" @@ -56,6 +86,11 @@ throwforce = 0 siemens_coefficient = 1 // prisoners shall be scared of tasers desc = "A pair of flimsy, cheap shoes. The soles have been made of a soft rubber." + item_state_slots = list( + slot_l_hand_str = "o_shoes", + slot_r_hand_str = "o_shoes", + ) + var/obj/item/handcuffs/chained = null /obj/item/clothing/shoes/orange/proc/attach_cuffs(obj/item/handcuffs/cuffs, mob/user as mob) @@ -66,6 +101,10 @@ chained = cuffs slowdown_per_slot[slot_shoes] += 15 icon_state = "orange1" + item_state_slots = list( + slot_l_hand_str = "o_shoes1", + slot_r_hand_str = "o_shoes1", + ) /obj/item/clothing/shoes/orange/proc/remove_cuffs(mob/user as mob) if(!chained) @@ -76,6 +115,10 @@ slowdown_per_slot[slot_shoes] -= 15 icon_state = "orange" + item_state_slots = list( + slot_l_hand_str = "o_shoes", + slot_r_hand_str = "o_shoes", + ) chained = null /obj/item/clothing/shoes/orange/attack_self(mob/user as mob) diff --git a/code/modules/clothing/shoes/jobs.dm b/code/modules/clothing/shoes/jobs.dm index 8fef9231f24..0ba19e899cb 100644 --- a/code/modules/clothing/shoes/jobs.dm +++ b/code/modules/clothing/shoes/jobs.dm @@ -2,6 +2,7 @@ desc = "Rubber boots." name = "galoshes" icon_state = "galoshes" + item_state_slots = null permeability_coefficient = 0.05 item_flags = ITEM_FLAG_NOSLIP can_hold_knife = 1 @@ -21,6 +22,7 @@ name = "jackboots" desc = "Tall synthleather boots with an artificial shine." icon_state = "jackboots" + item_state_slots = null force = 3 armor = list(melee = 70, bullet = 70, laser = 60, energy = 25, bomb = 20, bio = 30) siemens_coefficient = 0.5 @@ -56,6 +58,11 @@ drop_sound = SFX_DROP_BOOTS pickup_sound = SFX_PICKUP_BOOTS + item_state_slots = list( + slot_l_hand_str = "jackboots", + slot_r_hand_str = "jackboots", + ) + /obj/item/clothing/shoes/workboots/toeless name = "toe-less workboots" desc = "A pair of toeless work boots designed for use in industrial settings. Modified for species whose toes have claws." diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index b5646103aa4..185c8c8b132 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -27,6 +27,11 @@ drop_sound = SFX_DROP_BOOTS pickup_sound = SFX_PICKUP_BOOTS + item_state_slots = list( + slot_l_hand_str = "magboots", + slot_r_hand_str = "magboots", + ) + /obj/item/clothing/shoes/magboots/proc/set_slowdown() slowdown_per_slot[slot_shoes] = shoes? max(0, shoes.slowdown_per_slot[slot_shoes]): 0 //So you can't put on magboots to make you walk faster. if (magpulse) @@ -95,9 +100,11 @@ wearer.update_floating() wearer = null -/obj/item/clothing/shoes/magboots/_examine_text(mob/user) +/obj/item/clothing/shoes/magboots/examine(mob/user, infix) . = ..() + var/state = "disabled" if(item_flags & ITEM_FLAG_NOSLIP) state = "enabled" - . += "\nIts [traction_system] traction system appears to be [state]." + + . += "Its [traction_system] traction system appears to be [state]." diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 6c6182db405..1ba0127b88f 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -11,10 +11,20 @@ armor = list(melee = 70, bullet = 40, laser = 40, energy = 35, bomb = 20, bio = 60) + item_state_slots = list( + slot_l_hand_str = "b_shoes", + slot_r_hand_str = "b_shoes", + ) + /obj/item/clothing/shoes/mime name = "mime shoes" icon_state = "mime" + item_state_slots = list( + slot_l_hand_str = "w_shoes", + slot_r_hand_str = "w_shoes", + ) + /obj/item/clothing/shoes/swat name = "\improper SWAT boots" desc = "When you want to turn up the heat." @@ -25,6 +35,11 @@ siemens_coefficient = 0.4 can_hold_knife = 1 + item_state_slots = list( + slot_l_hand_str = "jackboots", + slot_r_hand_str = "jackboots", + ) + /obj/item/clothing/shoes/combat //Basically SWAT shoes combined with galoshes. name = "combat boots" desc = "When you REALLY want to turn up the heat." @@ -40,6 +55,11 @@ heat_protection = FEET max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE + item_state_slots = list( + slot_l_hand_str = "jackboots", + slot_r_hand_str = "jackboots", + ) + /obj/item/clothing/shoes/dress name = "dress shoes" desc = "The height of fashion, and they're pre-polished!" @@ -59,6 +79,11 @@ armor = list(melee = 10, bullet = 10, laser = 10, energy = 5, bomb = 10, bio = 3) + item_state_slots = list( + slot_l_hand_str = "wizshoe", + slot_r_hand_str = "wizshoe", + ) + /obj/item/clothing/shoes/sandal/marisa desc = "A pair of magic, black shoes." name = "magic shoes" @@ -66,6 +91,11 @@ body_parts_covered = FEET coverage = 1.0 + item_state_slots = list( + slot_l_hand_str = "bl_shoes", + slot_r_hand_str = "bl_shoes", + ) + /obj/item/clothing/shoes/sandal/color name = "sandals" desc = "A pair of plain sandals." @@ -112,6 +142,11 @@ armor = list(melee = 35, bullet = 35, laser = 35, energy = 15, bomb = 25, bio = 30) + item_state_slots = list( + slot_l_hand_str = "clown_shoes", + slot_r_hand_str = "clown_shoes", + ) + /obj/item/clothing/shoes/clown_shoes/New() ..() slowdown_per_slot[slot_shoes] = 0 @@ -183,6 +218,7 @@ name = "budget jackboots" desc = "Tall cheap-ass leatherlike boots with a hint of artificial shine." icon_state = "jackboots" + item_state_slots = null can_hold_knife = 1 cold_protection = FEET min_cold_protection_temperature = HELMET_MIN_COLD_PROTECTION_TEMPERATURE @@ -195,3 +231,8 @@ name = "workboots" icon_state = "workbootscheap" desc = "A pair of sham work boots. These have never been designed for use in industrial settings." + + item_state_slots = list( + slot_l_hand_str = "jackboots", + slot_r_hand_str = "jackboots", + ) diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index 54cd6408867..15490e51a8f 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -476,7 +476,8 @@ magpulse = 0 canremove = 1 -/obj/item/clothing/shoes/magboots/vox/_examine_text(mob/user) +/obj/item/clothing/shoes/magboots/vox/examine(mob/user, infix) . = ..() - if (magpulse) - . += "\nIt would be hard to take these off without relaxing your grip first."//theoretically this message should only be seen by the wearer when the claws are equipped. + + if(magpulse) + . += "It would be hard to take these off without relaxing your grip first."//theoretically this message should only be seen by the wearer when the claws are equipped. diff --git a/code/modules/clothing/spacesuits/breaches.dm b/code/modules/clothing/spacesuits/breaches.dm index b5562c3f655..a5da76c5ba0 100644 --- a/code/modules/clothing/spacesuits/breaches.dm +++ b/code/modules/clothing/spacesuits/breaches.dm @@ -203,18 +203,16 @@ return else if(isWelder(W)) - if(istype(src.loc,/mob/living)) to_chat(user, "How do you intend to patch a powersuit while someone is wearing it?") return - if (brute_damage <= 0) + if(brute_damage <= 0) to_chat(user, "There is no structural damage on \the [src] to repair.") return var/obj/item/weldingtool/WT = W - if(!WT.remove_fuel(5)) - to_chat(user, "You need more welding fuel to repair this suit.") + if(!WT.use_tool(src, user, amount = 5)) return repair_breaches(BRUTE, 3, user) @@ -239,8 +237,9 @@ ..() -/obj/item/clothing/suit/space/_examine_text(mob/user) +/obj/item/clothing/suit/space/examine(mob/user, infix) . = ..() + if(can_breach && breaches && breaches.len) for(var/datum/breach/B in breaches) - . += "\nIt has \a [B.descriptor]." + . += SPAN_DANGER("It has \a [B.descriptor].") diff --git a/code/modules/clothing/spacesuits/rig/modules/computer.dm b/code/modules/clothing/spacesuits/rig/modules/computer.dm index 06d6d06327a..e99281b9431 100644 --- a/code/modules/clothing/spacesuits/rig/modules/computer.dm +++ b/code/modules/clothing/spacesuits/rig/modules/computer.dm @@ -50,13 +50,6 @@ /mob var/get_rig_stats = 0 -/mob/living/Stat() - . = ..() - if(. && get_rig_stats) - var/obj/item/rig/rig = get_rig() - if(rig) - SetupStat(rig) - /obj/item/rig_module/ai_container/Process() if(integrated_ai) var/obj/item/rig/rig = get_rig() diff --git a/code/modules/clothing/spacesuits/rig/modules/modules.dm b/code/modules/clothing/spacesuits/rig/modules/modules.dm index b861d9abe0f..fe6e077a9af 100644 --- a/code/modules/clothing/spacesuits/rig/modules/modules.dm +++ b/code/modules/clothing/spacesuits/rig/modules/modules.dm @@ -63,15 +63,16 @@ var/list/stat_rig_module/stat_modules = new() -/obj/item/rig_module/_examine_text(mob/user) +/obj/item/rig_module/examine(mob/user, infix) . = ..() + switch(damage) if(0) - . += "\nIt is undamaged." + . += "It is undamaged." if(1) - . += "\nIt is badly damaged." + . += "It is badly damaged." if(2) - . += "\nIt is almost completely destroyed." + . += "It is almost completely destroyed." /obj/item/rig_module/attackby(obj/item/W, mob/user) @@ -257,23 +258,22 @@ /obj/item/rig_module/proc/accepts_item(obj/item/input_device) return 0 -/mob/living/carbon/human/Stat() +/mob/living/carbon/human/get_actions_for_statpanel() . = ..() - if(. && istype(back,/obj/item/rig)) - var/obj/item/rig/R = back - SetupStat(R) - -/mob/proc/SetupStat(obj/item/rig/R) - if(R && !R.canremove && R.installed_modules.len && statpanel("Powersuit Modules")) - var/cell_status = R.cell ? "[R.cell.charge]/[R.cell.maxcharge]" : "ERROR" - stat("Suit charge", cell_status) - for(var/obj/item/rig_module/module in R.installed_modules) - { - for(var/stat_rig_module/SRM in module.stat_modules) - if(SRM.CanUse()) - stat(SRM.module.interface_name,SRM) - } + var/obj/item/rig/wearing_rig = back + if(istype(wearing_rig) && !wearing_rig.canremove) + for(var/obj/item/rig_module/module as anything in wearing_rig.installed_modules) + for(var/stat_rig_module/stat_module in module.stat_modules) + if(!stat_module.CanUse()) + continue + + . += list(list( + "Powersuit Modules", + stat_module.module.interface_name, + stat_module.name, + ref(stat_module), + )) /stat_rig_module parent_type = /atom/movable diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 3fb4dfd2177..85d6ec534f7 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -86,25 +86,29 @@ var/datum/wires/rig/wires var/datum/effect/effect/system/spark_spread/spark_system -/obj/item/rig/_examine_text(mob/user) +/obj/item/rig/examine(mob/user, infix) . = ..() + if(wearer) for(var/obj/item/piece in list(helmet,gloves,chest,boots)) if(!piece || piece.loc != wearer) continue - . += "\n\icon[piece] \The [piece] [piece.gender == PLURAL ? "are" : "is"] deployed." + + . += "\icon[piece] \The [piece] [piece.gender == PLURAL ? "are" : "is"] deployed." if(src.loc == usr) - . += "\nThe access panel is [locked? "locked" : "unlocked"]." - . += "\nThe maintenance panel is [open ? "open" : "closed"]." - . += "\nPowersuit systems are [offline ? "offline" : "online"]." + . += "The access panel is [locked? "locked" : "unlocked"]." + . += "The maintenance panel is [open ? "open" : "closed"]." + . += "Powersuit systems are [offline ? "offline" : "online"]." if(open) - . += "\nIt's equipped with [english_list(installed_modules)]." + . += "It's equipped with [english_list(installed_modules)]." /obj/item/rig/Initialize() . = ..() + add_think_ctx("booting_context", CALLBACK(src, nameof(.proc/r_booting_done)), 0) + item_state = icon_state wires = new(src) @@ -192,7 +196,13 @@ return ..() /obj/item/rig/get_mob_overlay(mob/user_mob, slot) - var/image/ret = ..() + . = ..() + + if(slot == slot_l_hand_str || slot == slot_r_hand_str) + return + + var/image/ret = . + if(icon_override) ret.icon = icon_override else if(slot == slot_back_str) @@ -349,7 +359,7 @@ to_chat(wearer, "Your entire suit [canremove ? "loosens as the components relax" : "tightens around you as the components lock into place"].") if(wearer.client) wearer.client.screen -= booting_L - addtimer(CALLBACK(src, nameof(.proc/r_booting_done), wearer.client, booting_R), 80) + set_next_think_ctx("booting_context", world.time + 8 SECONDS, wearer.client, booting_R) qdel(booting_L) booting_R.icon_state = "boot_done" @@ -585,7 +595,13 @@ return /obj/item/rig/get_mob_overlay(mob/user_mob, slot) - var/image/ret = ..() + . = ..() + + if(slot == slot_l_hand_str || slot == slot_r_hand_str) + return + + var/image/ret = . + if(slot != slot_back_str || offline) return ret diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm index 4dd108e026e..da8d304d10c 100644 --- a/code/modules/clothing/spacesuits/rig/suits/light.dm +++ b/code/modules/clothing/spacesuits/rig/suits/light.dm @@ -117,7 +117,7 @@ input = "\improper [input]" SetName(input) to_chat(M, "Suit naming succesful!") - verbs -= /obj/item/rig/light/ninja/verb/rename_suit + remove_verb(loc, /obj/item/rig/light/ninja/verb/rename_suit) return 1 @@ -132,7 +132,7 @@ if(src && input && !M.incapacitated() && in_range(M,src)) desc = input to_chat(M, "Suit description succesful!") - verbs -= /obj/item/rig/light/ninja/verb/rename_suit + remove_verb(loc, /obj/item/rig/light/ninja/verb/rename_suit) return 1 /obj/item/clothing/gloves/rig/light/ninja diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index 1da7d7c8d0c..71af0323410 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -65,10 +65,11 @@ else to_chat(usr, "Camera deactivated.") -/obj/item/clothing/head/helmet/space/_examine_text(mob/user) +/obj/item/clothing/head/helmet/space/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1 && camera) - . += "\nThis helmet has a built-in camera. Its [!ispath(camera) && camera.status ? "" : "in"]active." + . += "This helmet has a built-in camera. Its [!ispath(camera) && camera.status ? "" : "in"]active." /obj/item/clothing/suit/space name = "Space suit" diff --git a/code/modules/clothing/spacesuits/void/_void.dm b/code/modules/clothing/spacesuits/void/_void.dm index cdf767112b7..926fb1cf083 100644 --- a/code/modules/clothing/spacesuits/void/_void.dm +++ b/code/modules/clothing/spacesuits/void/_void.dm @@ -89,14 +89,17 @@ else if(##equipment_var) {\ ..() slowdown_per_slot[slot_wear_suit] = 1 -/obj/item/clothing/suit/space/void/_examine_text(user) +/obj/item/clothing/suit/space/void/examine(mob/user, infix) . = ..() + var/list/part_list = new for(var/obj/item/I in list(helmet,boots,tank)) part_list += "\a [I]" - . += "\n\The [src] has [english_list(part_list)] installed." + + . += "\The [src] has [english_list(part_list)] installed." + if(tank && in_range(src,user)) - . += "\nThe wrist-mounted pressure gauge reads [max(round(tank.air_contents.return_pressure()),0)] kPa remaining in \the [tank]." + . += SPAN_NOTICE("The wrist-mounted pressure gauge reads [max(round(tank.air_contents.return_pressure()),0)] kPa remaining in \the [tank].") /obj/item/clothing/suit/space/void/refit_for_species(target_species) ..() diff --git a/code/modules/clothing/spacesuits/void/misc.dm b/code/modules/clothing/spacesuits/void/misc.dm index 5f3fd398cb9..17f70448213 100644 --- a/code/modules/clothing/spacesuits/void/misc.dm +++ b/code/modules/clothing/spacesuits/void/misc.dm @@ -235,100 +235,6 @@ animate(H,alpha = 85, alpha = 255, time = 10) -// Rmc(Only) -/obj/item/clothing/head/helmet/space/void/rmc_red - name = "rmc red helmet" - desc = "An atmos resistant helmet for space and planet exploration." - icon_state = "rig0_rmc_red" - item_state = "rmc_red_helm" - armor = list(melee = 40, bullet = 5, laser = 15,energy = 5, bomb = 5, bio = 100) - max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE - light_overlay = "helmet_light_dual" - -/obj/item/clothing/suit/space/void/rmc_red - name = "rmc red voidsuit" - desc = "An atmos resistant voidsuit for space and planet exploration." - icon_state = "rmc_red" - item_state = "rmc_red" - armor = list(melee = 40, bullet = 5, laser = 15,energy = 5, bomb = 5, bio = 100) - max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE - allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/toolbox,/obj/item/storage/briefcase/inflatable,/obj/item/device/t_scanner,/obj/item/construction/rcd) - -/obj/item/clothing/suit/space/void/rmc_red/prepared - helmet = /obj/item/clothing/head/helmet/space/void/rmc_red - boots = /obj/item/clothing/shoes/magboots - -/obj/item/clothing/head/helmet/space/void/rmc_green - name = "rmc red helmet" - desc = "An atmos resistant helmet for space and planet exploration." - icon_state = "rig0_rmc_green" - item_state = "rmc_green_helm" - armor = list(melee = 40, bullet = 5, laser = 15,energy = 5, bomb = 5, bio = 100) - max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE - light_overlay = "helmet_light_dual" - -/obj/item/clothing/suit/space/void/rmc_green - name = "rmc green voidsuit" - desc = "An atmos resistant voidsuit for space and planet exploration." - icon_state = "rmc_green" - item_state = "rmc_green" - armor = list(melee = 40, bullet = 5, laser = 15,energy = 5, bomb = 5, bio = 100) - max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE - allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/toolbox,/obj/item/storage/briefcase/inflatable,/obj/item/device/t_scanner,/obj/item/construction/rcd) - -/obj/item/clothing/suit/space/void/rmc_green/prepared - helmet = /obj/item/clothing/head/helmet/space/void/rmc_green - boots = /obj/item/clothing/shoes/magboots - -/obj/item/clothing/head/helmet/space/void/rmc_royal - name = "rmc royal helmet" - desc = "An atmos resistant helmet for space and planet exploration." - icon_state = "rig0_rmc_royal" - item_state = "rmc_royal_helm" - armor = list(melee = 40, bullet = 5, laser = 15,energy = 5, bomb = 5, bio = 100) - max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE - light_overlay = "helmet_light_dual" - -/obj/item/clothing/suit/space/void/rmc_royal - name = "rmc royal voidsuit" - desc = "An atmos resistant voidsuit for space and planet exploration." - icon_state = "rmc_royal" - item_state = "rmc_royal" - armor = list(melee = 40, bullet = 5, laser = 15,energy = 5, bomb = 5, bio = 100) - max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE - allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/toolbox,/obj/item/storage/briefcase/inflatable,/obj/item/device/t_scanner,/obj/item/construction/rcd) - -/obj/item/clothing/suit/space/void/rmc_royal/prepared - helmet = /obj/item/clothing/head/helmet/space/void/rmc_royal - boots = /obj/item/clothing/shoes/magboots - -/obj/item/clothing/suit/space/void/engsuit_spc - name = "engineer spc voidsuit" - desc = "An atmos resistant voidsuit for space and planet exploration." - icon_state = "engsuit_spc" - item_state = "engsuit_spc" - armor = list(melee = 40, bullet = 5, laser = 15,energy = 5, bomb = 5, bio = 100) - max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE - allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/toolbox,/obj/item/storage/briefcase/inflatable,/obj/item/device/t_scanner,/obj/item/construction/rcd) - -/obj/item/clothing/suit/space/void/secsuit_spc - name = "security spc voidsuit" - desc = "An atmos resistant voidsuit for space and planet exploration." - icon_state = "secsuit_spc" - item_state = "secsuit_spc" - armor = list(melee = 40, bullet = 5, laser = 15,energy = 5, bomb = 5, bio = 100) - max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE - allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/toolbox,/obj/item/storage/briefcase/inflatable,/obj/item/device/t_scanner,/obj/item/construction/rcd) - -/obj/item/clothing/head/helmet/space/void/pilot_spc - name = "pilot spc helmet" - desc = "An atmos resistant helmet for space and planet exploration." - icon_state = "pilot_spc" - item_state = "pilot_spc" - armor = list(melee = 40, bullet = 5, laser = 15,energy = 5, bomb = 5, bio = 100) - max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE - light_overlay = "helmet_light_dual" - /obj/item/clothing/head/helmet/space/void/templar name = "templar helmet" desc = "An atmos resistant helmet for space and planet exploration." diff --git a/code/modules/clothing/suit.dm b/code/modules/clothing/suit.dm index 6e388454ac6..1b2aa6b8d93 100644 --- a/code/modules/clothing/suit.dm +++ b/code/modules/clothing/suit.dm @@ -24,7 +24,13 @@ M.update_inv_wear_suit() /obj/item/clothing/suit/get_mob_overlay(mob/user_mob, slot) - var/image/ret = ..() + . = ..() + + if(slot == slot_l_hand_str || slot == slot_r_hand_str) + return + + var/image/ret = . + if(item_state_slots && item_state_slots[slot]) ret.icon_state = item_state_slots[slot] else diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 067f4715871..ec38e475655 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -12,6 +12,11 @@ valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) + item_state_slots = list( + slot_l_hand_str = "labcoat", + slot_r_hand_str = "labcoat", + ) + /obj/item/clothing/suit/storage/toggle/labcoat/cmo name = "chief medical officer's labcoat" desc = "Bluer than the standard model." diff --git a/code/modules/clothing/suits/storage.dm b/code/modules/clothing/suits/storage.dm index d98d741474f..2bcf572ec67 100644 --- a/code/modules/clothing/suits/storage.dm +++ b/code/modules/clothing/suits/storage.dm @@ -22,7 +22,7 @@ /obj/item/clothing/suit/storage/attackby(obj/item/W as obj, mob/user as mob) ..() - if(!(W in accessories)) //Make sure that an accessory wasn't successfully attached to suit. + if(!LAZYISIN(accessories, W)) //Make sure that an accessory wasn't successfully attached to suit. pockets.attackby(W, user) /obj/item/clothing/suit/storage/emp_act(severity) diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 49463779c46..377c5997cab 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -165,3 +165,10 @@ allowed = list(/obj/item/teleportation_scroll) siemens_coefficient = 0.8 wizard_garb = TRUE + +/obj/item/clothing/suit/musclemancer + name = "scholar robe" + desc = "Some sort of a plain, dark navy robe. Looks kinda old-fashioned, but doesn't appear to be special in any way." + icon_state = "muscle_robe" + item_state = "muscle_robe" + body_parts_covered = UPPER_TORSO|ARMS diff --git a/code/modules/clothing/under.dm b/code/modules/clothing/under.dm index 9178c433836..aae2ad9d83f 100644 --- a/code/modules/clothing/under.dm +++ b/code/modules/clothing/under.dm @@ -58,7 +58,7 @@ verbs -= /obj/item/clothing/under/verb/rollsleeves /obj/item/clothing/under/attack_hand(mob/user) - if(accessories && accessories.len) + if(LAZYLEN(accessories)) ..() if ((ishuman(usr) || issmall(usr)) && src.loc == user) return @@ -115,17 +115,18 @@ M.update_inv_wear_id() -/obj/item/clothing/under/_examine_text(mob/user) +/obj/item/clothing/under/examine(mob/user, infix) . = ..() - switch(src.sensor_mode) + + switch(sensor_mode) if(0) - . += "\nIts sensors appear to be disabled." + . += "It's sensors appear to be disabled." if(1) - . += "\nIts binary life sensors appear to be enabled." + . += "It's binary life sensors appear to be enabled." if(2) - . += "\nIts vital tracker appears to be enabled." + . += "It's vital tracker appears to be enabled." if(3) - . += "\nIts vital tracker and tracking beacon appear to be enabled." + . += "It's vital tracker and tracking beacon appear to be enabled." /obj/item/clothing/under/proc/set_sensors(mob/user as mob) var/mob/M = user diff --git a/code/modules/clothing/under/accessories/clothing.dm b/code/modules/clothing/under/accessories/clothing.dm index 05cbaaeb9b4..f48a1d0e1f6 100644 --- a/code/modules/clothing/under/accessories/clothing.dm +++ b/code/modules/clothing/under/accessories/clothing.dm @@ -82,11 +82,11 @@ /obj/item/clothing/accessory/toggleable/on_attached(obj/item/clothing/under/S, mob/user as mob) ..() - has_suit.verbs += /obj/item/clothing/accessory/toggleable/verb/toggle + has_suit.add_verb(has_suit.loc, /obj/item/clothing/accessory/toggleable/verb/toggle) /obj/item/clothing/accessory/toggleable/on_removed(mob/user as mob) if(has_suit) - has_suit.verbs -= /obj/item/clothing/accessory/toggleable/verb/toggle + has_suit.remove_verb(has_suit.loc, /obj/item/clothing/accessory/toggleable/verb/toggle) ..() /obj/item/clothing/accessory/toggleable/verb/toggle() @@ -189,13 +189,13 @@ /obj/item/clothing/accessory/toggleable/flannel/on_attached(obj/item/clothing/under/S, mob/user as mob) ..() - has_suit.verbs += /obj/item/clothing/accessory/toggleable/flannel/verb/tuck - has_suit.verbs += /obj/item/clothing/accessory/toggleable/flannel/verb/roll_up_sleeves + has_suit.add_verb(has_suit.loc, /obj/item/clothing/accessory/toggleable/flannel/verb/tuck) + has_suit.add_verb(has_suit.loc, /obj/item/clothing/accessory/toggleable/flannel/verb/roll_up_sleeves) /obj/item/clothing/accessory/toggleable/flannel/on_removed(mob/user as mob) if(has_suit) - has_suit.verbs -= /obj/item/clothing/accessory/toggleable/flannel/verb/tuck - has_suit.verbs -= /obj/item/clothing/accessory/toggleable/flannel/verb/roll_up_sleeves + has_suit.remove_verb(has_suit.loc, /obj/item/clothing/accessory/toggleable/flannel/verb/tuck) + has_suit.remove_verb(has_suit.loc, /obj/item/clothing/accessory/toggleable/flannel/verb/roll_up_sleeves) ..() /obj/item/clothing/accessory/toggleable/flannel/do_toggle(user) @@ -280,11 +280,11 @@ /obj/item/clothing/accessory/security_shirt/on_attached(obj/item/clothing/under/S, mob/user) ..() - has_suit.verbs += /obj/item/clothing/accessory/security_shirt/verb/roll_up_sleeves + has_suit.add_verb(has_suit.loc, /obj/item/clothing/accessory/security_shirt/verb/roll_up_sleeves) /obj/item/clothing/accessory/security_shirt/on_removed(mob/user) if(has_suit) - has_suit.verbs -= /obj/item/clothing/accessory/security_shirt/verb/roll_up_sleeves + has_suit.remove_verb(has_suit.loc, /obj/item/clothing/accessory/security_shirt/verb/roll_up_sleeves) ..() /obj/item/clothing/accessory/security_shirt/verb/roll_up_sleeves() diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm index 72d83a97291..2a4ee03803a 100644 --- a/code/modules/clothing/under/accessories/holster.dm +++ b/code/modules/clothing/under/accessories/holster.dm @@ -33,7 +33,7 @@ /obj/item/clothing/accessory/holster/Destroy() if(has_suit) - has_suit.verbs -= /obj/item/clothing/accessory/holster/verb/holster_verb + has_suit.remove_verb(has_suit.loc, /obj/item/clothing/accessory/holster/verb/holster_verb) QDEL_NULL(holstered) QDEL_NULL(holster_action) return ..() @@ -119,20 +119,21 @@ holstered.emp_act(severity) ..() -/obj/item/clothing/accessory/holster/_examine_text(mob/user) +/obj/item/clothing/accessory/holster/examine(mob/user, infix) . = ..() - if (holstered) - . += "\nA [holstered] is holstered here." + + if(holstered) + . += "A [holstered] is holstered here." else - . += "\nIt is empty." + . += "It is empty." /obj/item/clothing/accessory/holster/on_attached(obj/item/clothing/under/S, mob/user) ..() - has_suit.verbs += /obj/item/clothing/accessory/holster/verb/holster_verb + has_suit.add_verb(has_suit.loc, /obj/item/clothing/accessory/holster/verb/holster_verb) /obj/item/clothing/accessory/holster/on_removed(mob/user) if(has_suit) - has_suit.verbs -= /obj/item/clothing/accessory/holster/verb/holster_verb + has_suit.remove_verb(has_suit.loc, /obj/item/clothing/accessory/holster/verb/holster_verb) ..() //For the holster hotkey @@ -153,7 +154,7 @@ H = src else if (istype(src, /obj/item/clothing/under)) var/obj/item/clothing/under/S = src - if (S.accessories.len) + if(LAZYLEN(S.accessories)) H = locate() in S.accessories if (!H) diff --git a/code/modules/clothing/under/accessories/pins.dm b/code/modules/clothing/under/accessories/pins.dm new file mode 100644 index 00000000000..081c4e4162d --- /dev/null +++ b/code/modules/clothing/under/accessories/pins.dm @@ -0,0 +1,81 @@ + +/obj/item/clothing/accessory/pin + name = "NT pin" + desc = "A Nanotrasen holographic pin to show off your loyalty to the company, reminding the crew of your unwavering commitment to whatever NanoTrasen's up to!" + icon_state = "nt" + slot_flags = SLOT_TIE + slot = ACCESSORY_SLOT_INSIGNIA + +/obj/item/clothing/accessory/pin/pig + name = "pig pin" + desc = "A holographic pin to show off your true nature." + icon_state = "pig" + +/obj/item/clothing/accessory/pin/skull + name = "skull pin" + desc = "A holographic pin to show off your edgy nature." + icon_state = "skull" + +/obj/item/clothing/accessory/pin/pride + name = "rainbow pin" + desc = "A Nanotrasen Diversity & Inclusion Center-sponsored holographic pin to show off your pride, reminding the crew of their unwavering commitment to equity, diversity, and inclusion!" + icon_state = "pride" + + var/pride = 0 + var/static/list/prides = list( + "rainbow:pride", + "bisexual:pride_bi", + "pansexual:pride_pan", + "asexual:pride_ace", + "non-binary:pride_enby", + "transgender:pride_trans", + "intersex:pride_intersex", + "lesbian:pride_lesbian" + ) + +/obj/item/clothing/accessory/pin/pride/Initialize() + . = ..() + for(var/i = 1 to length(prides)) + if(findtext(prides[i], icon_state)) + pride = i + break + +/obj/item/clothing/accessory/pin/pride/attack_self(mob/user) + if(!pride) + return + + to_chat(user, "You toggle the pin.") + add_fingerprint(user) + + pride = pride >= length(prides) ? 1 : pride + 1 + var/sep_pos = findtext(prides[pride], ":") + name = copytext(prides[pride], 1, sep_pos) + " pin" + icon_state = copytext(prides[pride], sep_pos + 1) + +/obj/item/clothing/accessory/pin/pride/bi + name = "bisexual pin" + icon_state = "pride_bi" + +/obj/item/clothing/accessory/pin/pride/pan + name = "pansexual pin" + icon_state = "pride_pan" + +/obj/item/clothing/accessory/pin/pride/ace + name = "asexual pin" + icon_state = "pride_ace" + +/obj/item/clothing/accessory/pin/pride/enby + name = "non-binary pin" + icon_state = "pride_enby" + +/obj/item/clothing/accessory/pin/pride/trans + name = "transgender pin" + icon_state = "pride_trans" + +/obj/item/clothing/accessory/pin/pride/intersex + name = "intersex pin" + icon_state = "pride_intersex" + +/obj/item/clothing/accessory/pin/pride/lesbian + name = "lesbian pin" + icon_state = "pride_lesbian" diff --git a/code/modules/clothing/under/accessories/ties.dm b/code/modules/clothing/under/accessories/ties.dm index 142463cfe64..9e78c4cd0dc 100644 --- a/code/modules/clothing/under/accessories/ties.dm +++ b/code/modules/clothing/under/accessories/ties.dm @@ -55,11 +55,11 @@ /obj/item/clothing/accessory/bowtie/on_attached(obj/item/clothing/under/S, mob/user as mob) ..() - has_suit.verbs += /obj/item/clothing/accessory/bowtie/verb/toggle + has_suit.add_verb(has_suit.loc, /obj/item/clothing/accessory/bowtie/verb/toggle) /obj/item/clothing/accessory/bowtie/on_removed(mob/user as mob) if(has_suit) - has_suit.verbs -= /obj/item/clothing/accessory/bowtie/verb/toggle + has_suit.remove_verb(has_suit.loc, /obj/item/clothing/accessory/bowtie/verb/toggle) ..() /obj/item/clothing/accessory/bowtie/verb/toggle() diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 3781d6fdcb4..f9e40aedc1f 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -547,6 +547,11 @@ item_state = "sl_suit" worn_state = "navy_suit" +/obj/item/clothing/under/suit_jacket/navy/scholar + name = "scholar suit" + desc = "A navy suit. It resembles some sort of a school uniform." + starting_accessories = list(/obj/item/clothing/accessory/red) + /obj/item/clothing/under/suit_jacket/burgundy name = "burgundy suit" desc = "A burgundy suit and black tie. Somewhat formal." diff --git a/code/modules/clothing/under/skirts.dm b/code/modules/clothing/under/skirts.dm index 7f163d1c4c6..4c3db7762ce 100644 --- a/code/modules/clothing/under/skirts.dm +++ b/code/modules/clothing/under/skirts.dm @@ -29,21 +29,6 @@ worn_state = "plaid_purple" // discreet skirts, dont cover upper/arms etc -/obj/item/clothing/under/skirt/khaki - name = "khaki skirt" - desc = "A khaki skirt with a flare at the hem." - icon_state = "skirt_khaki" - worn_state = "skirt_khaki" - body_parts_covered = LOWER_TORSO - coverage = 0.7 - -/obj/item/clothing/under/skirt/swept - name = "swept skirt" - desc = "A skirt that is swept to one side." - icon_state = "skirt_swept" - worn_state = "skirt_swept" - body_parts_covered = LOWER_TORSO - coverage = 0.6 // colour selection, needs to be different for loadout type selection @@ -55,6 +40,61 @@ body_parts_covered = LOWER_TORSO coverage = 0.7 +/obj/item/clothing/under/skirt_c/casual + name = "casual skirt" + desc = "A short, colorful skirt." + icon_state = "skirt_casual" + item_state = "skirt_casual" + worn_state = "skirt_casual" + +/obj/item/clothing/under/skirt_c/high + name = "high skirt" + desc = "A modest skirt going up to the waist." + icon_state = "skirt_high" + item_state = "skirt_high" + worn_state = "skirt_high" + +/obj/item/clothing/under/skirt_c/long + name = "long skirt" + desc = "A long, modest skirt." + icon_state = "skirt_long" + item_state = "skirt_long" + worn_state = "skirt_long" + +/obj/item/clothing/under/skirt_c/swept + name = "swept skirt" + desc = "A skirt that is swept to one side." + icon_state = "skirt_swept" + worn_state = "skirt_swept" + +/obj/item/clothing/under/skirt_c/pencil + name = "pencil skirt" + desc = "A professional-looking pencil skirt." + icon_state = "skirt_pencil" + item_state = "skirt_pencil" + worn_state = "skirt_pencil" + +/obj/item/clothing/under/skirt_c/plaid + name = "plaid skirt" + desc = "A preppy plaid skirt." + icon_state = "skirt_plaid" + item_state = "skirt_plaid" + worn_state = "skirt_plaid" + +/obj/item/clothing/under/skirt_c/skater + name = "skater skirt" + desc = "A plush skater skirt." + icon_state = "skirt_skater" + item_state = "skirt_skater" + worn_state = "skirt_skater" + +/obj/item/clothing/under/skirt_c/tube + name = "tube skirt" + desc = "A long tube skirt." + icon_state = "skirt_tube" + item_state = "skirt_tube" + worn_state = "skirt_tube" + // dresses /obj/item/clothing/under/skirt_c/dress name = "short dress" diff --git a/code/modules/clothing/underwear/base.dm b/code/modules/clothing/underwear/base.dm index 77b10349ca7..4e887320df8 100644 --- a/code/modules/clothing/underwear/base.dm +++ b/code/modules/clothing/underwear/base.dm @@ -74,17 +74,21 @@ /obj/item/underwear/proc/EquipUnderwear(mob/user, mob/living/carbon/human/H) if(!CanEquipUnderwear(user, H)) return FALSE - if(!user.drop(src)) - return FALSE - return ForceEquipUnderwear(H) + return ForceEquipUnderwear(H, user) -/obj/item/underwear/proc/ForceEquipUnderwear(mob/living/carbon/human/H, update_icons = TRUE) +/obj/item/underwear/proc/ForceEquipUnderwear(mob/living/carbon/human/H, mob/user, update_icons = TRUE) // No matter how forceful, we still don't allow multiples of the same underwear type if(is_path_in_list(type, H.worn_underwear)) return FALSE + if(isnull(user)) + forceMove(H) + _add_verb_to_stat(H, /obj/item/underwear/verb/RemoveSocks) + else if(!user.drop(src, H, changing_slots = H == user)) + return FALSE + H.worn_underwear += src - forceMove(H) + if(update_icons) H.update_underwear() diff --git a/code/modules/detectivework/tools/evidencebag.dm b/code/modules/detectivework/tools/evidencebag.dm index 4e7e87b45bd..f99c79787fa 100644 --- a/code/modules/detectivework/tools/evidencebag.dm +++ b/code/modules/detectivework/tools/evidencebag.dm @@ -108,11 +108,13 @@ icon_state = "[base_icon_state]obj" return -/obj/item/evidencebag/_examine_text(mob/user) +/obj/item/evidencebag/examine(mob/user, infix) . = ..() - if (!stored_item) + + if(!stored_item) return - . += "\n[stored_item._examine_text(user)]" + + . += user.run_examinate(stored_item) /obj/item/evidencebag/cyborg name = "integrated evidence bag dispenser" diff --git a/code/modules/donations/donations.dm b/code/modules/donations/donations.dm index f9753a3bd1c..17d19a1b1e1 100644 --- a/code/modules/donations/donations.dm +++ b/code/modules/donations/donations.dm @@ -50,13 +50,13 @@ SUBSYSTEM_DEF(donations) var/was_donator = player.donator_info.donator var/DBQuery/query = sql_query({" - SELECT + SELECT patron_types.type - FROM + FROM players - JOIN + JOIN patron_types ON players.patron_type = patron_types.id - WHERE + WHERE ckey = $ckey LIMIT 0,1 "}, dbcon_don, list(ckey = player.ckey)) @@ -65,13 +65,13 @@ SUBSYSTEM_DEF(donations) player.donator_info.patron_type = query.item[1] query = sql_query({" - SELECT + SELECT `change` - FROM + FROM points_transactions - JOIN + JOIN players ON players.id = points_transactions.player - WHERE + WHERE ckey = $ckey "}, dbcon_don, list(ckey = player.ckey)) @@ -94,11 +94,11 @@ SUBSYSTEM_DEF(donations) return FALSE var/DBQuery/query = sql_query({" - SELECT + SELECT item_path - FROM + FROM store_players_items - WHERE + WHERE player = (SELECT id FROM players WHERE ckey = $ckey) "}, dbcon_don, list(ckey = player.ckey)) @@ -134,16 +134,16 @@ SUBSYSTEM_DEF(donations) var/transaction_id var/DBQuery/query = sql_query({" - SELECT + SELECT id - FROM + FROM points_transactions WHERE - player = (SELECT id FROM players WHERE ckey = $ckey) + player = (SELECT id FROM players WHERE ckey = $ckey) AND comment = $comment - ORDER BY - id + ORDER BY + id DESC "}, dbcon_don, list(ckey = player.ckey, comment = comment)) @@ -207,7 +207,24 @@ SUBSYSTEM_DEF(donations) var/discord_id = query.item[2] - sql_query("UPDATE players SET discord = $discord_id WHERE ckey = $ckey", dbcon_don, list(discord_id = discord_id, ckey = player.ckey)) + // Check if we have two distinct records for user's discord and ckey in the players table + // If that's true, then we have to merge them + query = sql_query("SELECT id FROM players WHERE discord = $discord_id AND ckey IS NULL", dbcon_don, list(discord_id = discord_id)) + if(!query.NextRow()) //We don't have that, use an old method + sql_query("UPDATE players SET discord = $discord_id WHERE ckey = $ckey", dbcon_don, list(discord_id = discord_id, ckey = player.ckey)) + else + var/discord_player_id = query.item[1] + query = sql_query("SELECT id FROM players WHERE ckey = $ckey", dbcon_don, list(ckey = player.ckey)) + if(query.NextRow()) + var/ckey_player_id = query.item[1] + + //Update donations to old record + sql_query("UPDATE points_transactions SET player = $discord_player_id WHERE player = $ckey_player_id", dbcon_don, list(discord_player_id = discord_player_id, ckey_player_id = ckey_player_id)) + sql_query("UPDATE money_transactions SET player = $discord_player_id WHERE player = $ckey_player_id", dbcon_don, list(discord_player_id = discord_player_id, ckey_player_id = ckey_player_id)) + + sql_query("DELETE FROM players WHERE id = $ckey_player_id", dbcon_don, list(ckey_player_id = ckey_player_id)) + + sql_query("UPDATE players SET ckey = $ckey WHERE discord = $discord_id", dbcon_don, list(ckey = player.ckey, discord_id = discord_id)) sql_query("DELETE FROM tokens WHERE token = $token", dbcon_don, list(token = token)) diff --git a/code/modules/economy/cash.dm b/code/modules/economy/cash.dm index 3c2d27e1157..dc06ee3cfa0 100644 --- a/code/modules/economy/cash.dm +++ b/code/modules/economy/cash.dm @@ -4,6 +4,7 @@ gender = PLURAL icon = 'icons/obj/items.dmi' icon_state = "spacecash1" + item_state = "cash" opacity = 0 density = 0 anchored = 0.0 @@ -185,10 +186,13 @@ desc = "A card that holds an amount of money." var/owner_name = "" //So the ATM can set it so the EFTPOS can put a valid name on transactions. -/obj/item/spacecash/ewallet/_examine_text(mob/user) +/obj/item/spacecash/ewallet/examine(mob/user, infix) . = ..() - if (!(user in view(2)) && user!=src.loc) return - . += "\nCharge card's owner: [src.owner_name]. Credits remaining: [src.worth]." + + if(!(user in view(2)) && user != loc) + return + + . += SPAN_NOTICE("Charge card's owner: [src.owner_name]. Credits remaining: [src.worth].") /obj/item/spacecash/ewallet/lotto name = "space lottery card" diff --git a/code/modules/emotes/emote.dm b/code/modules/emotes/emote.dm index 2770b013d69..a940fd1ea03 100644 --- a/code/modules/emotes/emote.dm +++ b/code/modules/emotes/emote.dm @@ -146,14 +146,14 @@ GLOBAL_LIST_INIT(all_emotes, list(); for(var/emotepath in subtypesof(/datum/emot var/msg_1p = get_emote_message_1p(user, target, additional_params) var/text_3p = get_emote_message_3p(user, target, additional_params) - var/msg_3p = text_3p ? "[user] [text_3p]" : null + var/msg_3p = text_3p ? "[user] [text_3p]" : null var/range = !isnull(emote_range) ? emote_range : world.view var/impaired_msg = get_impaired_msg(user) if(impaired_msg) if(message_type & VISIBLE_MESSAGE) impaired_msg = "[impaired_msg]" else if(message_type & AUDIBLE_MESSAGE) - impaired_msg = "[user] [impaired_msg]" + impaired_msg = "[user] [impaired_msg]" if(!msg_1p) msg_1p = msg_3p diff --git a/code/modules/emotes/emote_mob.dm b/code/modules/emotes/emote_mob.dm index 42ac4f89115..e547bbe675d 100644 --- a/code/modules/emotes/emote_mob.dm +++ b/code/modules/emotes/emote_mob.dm @@ -18,7 +18,7 @@ var/datum/emote/E = GLOB.all_emotes[path] set_emote(E.key, E) if(!isnull(E.statpanel_proc)) - verbs |= E.statpanel_proc + grant_verb(src, E.statpanel_proc) default_emotes = null @@ -32,7 +32,7 @@ for(var/datum/emote/E in GLOB.all_emotes) clear_emote(E.key) if(!isnull(E.statpanel_proc)) - verbs -= E.statpanel_proc + revoke_verb(src, E.statpanel_proc) /mob/proc/get_emote(key) return LAZYACCESS(current_emotes, key) @@ -66,7 +66,7 @@ var/datum/emote/E = GLOB.all_emotes[path] set_emote(E.key, E) if(!isnull(E.statpanel_proc)) - verbs |= E.statpanel_proc + grant_verb(src, E.statpanel_proc) /// A simple emote - just the message, and it's type. For anything more complex use datumized emotes. /mob/proc/custom_emote(message_type = VISIBLE_MESSAGE, message, intentional = FALSE) @@ -79,9 +79,9 @@ message += "." if(findtext(message, "^")) - message = "[capitalize(replacetext(message, regex(@"\^+", "g"), user_name))]" + message = "[capitalize(replacetext(message, regex(@"\^+", "g"), user_name))]" else - message = "[user_name] [message]" + message = "[user_name] [message]" if(message_type & VISIBLE_MESSAGE) visible_message(message, checkghosts = /datum/client_preference/ghost_sight) diff --git a/code/modules/emotes/generic/gesture.dm b/code/modules/emotes/generic/gesture.dm index 11ad8c855e6..ea113331d04 100644 --- a/code/modules/emotes/generic/gesture.dm +++ b/code/modules/emotes/generic/gesture.dm @@ -108,6 +108,18 @@ /datum/emote/clap/get_sfx_volume() return rand(25, 35) +/datum/emote/clap/do_emote(mob/user, emote_key, intentional, target, additional_params) + . = ..() + + if(rand(0, 5000)) + return + + var/area/A = get_area(user) + if(!istype(A)) + return + + A.set_lightswitch(!A.lightswitch) + /mob/proc/clap_emote() set name = "Clap" set category = "Emotes" diff --git a/code/modules/error_handler/error_handler.dm b/code/modules/error_handler/error_handler.dm index bde786d8fa6..8966ea58053 100644 --- a/code/modules/error_handler/error_handler.dm +++ b/code/modules/error_handler/error_handler.dm @@ -15,6 +15,7 @@ GLOBAL_VAR_INIT(total_runtimes_skipped, 0) return ..() GLOB.total_runtimes++ + rustg_prom_counter_inc(PROM_RUNTIMES, null) var/erroruid = "[E.file],[E.line]" var/last_seen = error_last_seen[erroruid] diff --git a/code/modules/examine/descriptions/armor.dm b/code/modules/examine/descriptions/armor.dm deleted file mode 100644 index 8aad1dda377..00000000000 --- a/code/modules/examine/descriptions/armor.dm +++ /dev/null @@ -1,83 +0,0 @@ -/obj/item/clothing/proc/describe_armor(armor_type, descriptive_attack_type) - if(armor[armor_type]) - switch(armor[armor_type]) - if(1 to 9) - return "It barely protects against [descriptive_attack_type]." - if(10 to 19) - return "It provides a very small defense against [descriptive_attack_type]." - if(20 to 39) - return "It offers a small amount of protection against [descriptive_attack_type]." - if(40 to 59) - return "It offers a moderate defense against [descriptive_attack_type]." - if(60 to 79) - return "It provides a strong defense against [descriptive_attack_type]." - if(80 to 99) - return "It is very strong against [descriptive_attack_type]." - if(100 to 124) - return "This gives a very robust defense against [descriptive_attack_type]." - if(125 to 149) - return "Wearing this would make you nigh-invulerable against [descriptive_attack_type]." - if(150 to INFINITY) - return "You would be practically immune to [descriptive_attack_type] if you wore this." - - - -/obj/item/clothing/get_description_info() - . = list() - . += description_info + "\ -
" - - if(armor["melee"]) - . += "[describe_armor("melee","blunt force")] \n" - if(armor["bullet"]) - . += "[describe_armor("bullet","ballistics")] \n" - if(armor["laser"]) - . += "[describe_armor("laser","lasers")] \n" - if(armor["energy"]) - . += "[describe_armor("energy","energy")] \n" - if(armor["bomb"]) - . += "[describe_armor("bomb","explosions")] \n" - if(armor["bio"]) - . += "[describe_armor("bio","biohazards")] \n" - - . += "\n" - - if(item_flags & ITEM_FLAG_AIRTIGHT) - . += "It is airtight. \n" - - if(item_flags & ITEM_FLAG_STOPPRESSUREDAMAGE) - . += "Wearing this will protect you from the vacuum of space. \n" - - if(item_flags & ITEM_FLAG_THICKMATERIAL) - . += "The material is exceptionally thick. \n" - - if(max_heat_protection_temperature >= FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE) - . += "It provides very good protection against fire and heat. \n" - - if(min_cold_protection_temperature == SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE) - . += "It provides very good protection against very cold temperatures. \n" - - var/islist_coverage = islist(coverage) - var/list/covers = list() - var/list/slots = list() - - for(var/name in string_part_flags) - if(body_parts_covered & string_part_flags[name]) - var/coverage_entry = name - if(islist_coverage) - for(var/entry in coverage) - if(entry == name) - coverage_entry += " ([round(coverage[entry] * 100)]%)" - covers += coverage_entry - - for(var/name in string_slot_flags) - if(slot_flags & string_slot_flags[name]) - slots += name - - if(length(covers)) - . += "It covers [!islist_coverage ? ("[round(coverage * 100)]% of ") : ""]the [english_list(covers)]. \n" - - if(slots.len) - . += "It can be worn on your [english_list(slots)]. \n" - - return jointext(., null) diff --git a/code/modules/examine/descriptions/items.dm b/code/modules/examine/descriptions/items.dm deleted file mode 100644 index 1da24ecc313..00000000000 --- a/code/modules/examine/descriptions/items.dm +++ /dev/null @@ -1,67 +0,0 @@ - -/obj/item/get_description_combat() - . = "" - - if(force) - . = "Weight: " - switch(mod_weight) - if(0 to 0.4) - . += "Very light" - if(0.4 to 0.8) - . += "Light" - if(0.8 to 1.25) - . += "Moderate" - if(1.25 to 1.65) - . += "Heavy" - else - . += "Very heavy" - - . += "\nReach: " - switch(mod_reach) - if(0 to 0.4) - . += "Very short" - if(0.4 to 0.8) - . += "Short" - if(0.8 to 1.25) - . += "Average" - if(1.25 to 1.65) - . += "Long" - else - . += "Very long" - - . += "\nConvenience: " - switch(mod_handy) - if(0 to 0.4) - . += "Unhandy" - if(0.4 to 0.8) - . += "Not that handy" - if(0.8 to 1.25) - . += "Handy" - if(1.25 to 1.65) - . += "Really handy" - else - . += "Outstandingly handy" - - if(armor_penetration) - switch(armor_penetration) - if(1 to 19) - . += "\nIt's good for penetrating light armor." - if(20 to 39) - . += "\nIt's good for penetrating medium armor." - if(40 to 59) - . += "\nIt's good for penetrating above-average armor." - if(60 to 79) - . += "\nIt's good for penetrating heavy armor." - if(80 to 99) - . += "\nIt's exceptionally good for penetrating most armor." - if(100 to INFINITY) - . += "\nIt goes through most armor as a hot knife through butter." - else - . += "\nIt's not that good at penetrating armor." - - . += "\nAttack Cooldown: [round((attack_cooldown + DEFAULT_WEAPON_COOLDOWN * (mod_weight / mod_handy)) * mod_speed * 0.1, 0.1)]s" - . += "\nParry Window: [round(mod_handy * 12 * 0.1, 0.1)]s" - if(block_tier == BLOCK_TIER_ADVANCED) - . += "\nIt may block or reflect projectiles really well." - else if(mod_shield == BLOCK_TIER_PROJECTILE) - . += "\nIt may block projectiles." diff --git a/code/modules/examine/examine.dm b/code/modules/examine/examine.dm index 9719c413491..62e43762040 100644 --- a/code/modules/examine/examine.dm +++ b/code/modules/examine/examine.dm @@ -1,77 +1,63 @@ -/* This code is responsible for the examine tab. When someone examines something, it copies the examined object's description_info, - description_fluff, and description_antag, and shows it in a new tab. +/atom/proc/get_description_info() + return description_info - In this file, some atom and mob stuff is defined here. It is defined here instead of in the normal files, to keep the whole system self-contained. - This means that this file can be unchecked, along with the other examine files, and can be removed entirely with no effort. -*/ +/atom/proc/get_description_fluff() + return description_fluff +/atom/proc/get_description_antag() + return description_antag -/atom/ - var/description_info = null //Helpful blue text. - var/description_fluff = null //Green text about the atom's fluff, if any exists. - var/description_antag = null //Malicious red text, for the antags. +/// Called when `user` examines this atom. +/atom/proc/examine(mob/user, infix) + RETURN_TYPE(/list) -//Override these if you need special behaviour for a specific type. -/atom/proc/get_description_info() - if(description_info) - return description_info - return + var/examine_string = get_examine_string(user, infix) + if(examine_string) + . = list(examine_string) + else + . = list() -/atom/proc/get_description_fluff() - if(description_fluff) - return description_fluff - return + if(desc) + . += desc -/atom/proc/get_description_antag() - if(description_antag) - return description_antag - return - -/atom/proc/get_description_combat() - return - -/mob/living/get_description_fluff() - if(flavor_text) //Get flavor text for the green text. - return flavor_text - else //No flavor text? Try for hardcoded fluff instead. - return ..() - -/mob/living/carbon/human/get_description_fluff() - return print_flavor_text(0) - -/* The examine panel itself */ - -/client/var/description_holders[0] - -/client/proc/update_description_holders(atom/A, update_antag_info=0) - description_holders["info"] = A.get_description_info() - description_holders["fluff"] = A.get_description_fluff() - description_holders["antag"] = (update_antag_info)? A.get_description_antag() : "" - description_holders["combat"] = A.get_description_combat() - - description_holders["name"] = "[A.name]" - description_holders["icon"] = "\icon[A]" - description_holders["desc"] = A.desc - -/mob/Stat() - . = ..() - if(client && statpanel("Examine")) - stat(null,"[client.description_holders["icon"]] [client.description_holders["name"]]") //The name, written in big letters. - stat(null,"[client.description_holders["desc"]]") //the default examine text. - if(client.description_holders["combat"]) - stat(null,"[client.description_holders["combat"]]") //Colorless, combat stats. - if(client.description_holders["info"]) - stat(null,"[client.description_holders["info"]]") //Blue, informative text. - if(client.description_holders["fluff"]) - stat(null,"[client.description_holders["fluff"]]") //Yellow, fluff-related text. - if(client.description_holders["antag"]) - stat(null,"[client.description_holders["antag"]]") //Red, malicious antag-related text - -//override examinate verb to update description holders when things are examined -/mob/examinate(atom/A as mob|obj|turf in view(src.client.eye)) - if(..()) - return 1 - - var/is_antag = ((mind && mind.special_role) || isghost(src)) //ghosts don't have minds - if(client) - client.update_description_holders(A, is_antag) + SEND_SIGNAL(src, SIGNAL_EXAMINED, user, .) + SEND_SIGNAL(user, SIGNAL_MOB_EXAMINED, src, .) + +/// Called when `user` examines this atom multiple times in ~1 second window. +/atom/proc/examine_more(mob/user) + RETURN_TYPE(/list) + + . = list() + + var/info_text = get_description_info() + if(info_text) + . += "[info_text]" + + var/fluff_text = get_description_fluff() + if(fluff_text) + . += "[fluff_text]" + + var/antag_text = get_description_antag() + if(antag_text && (user?.mind?.special_role || isghost(user))) + . += "[antag_text]" + + SEND_SIGNAL(src, SIGNAL_EXAMINED_MORE, user, .) + SEND_SIGNAL(user, SIGNAL_MOB_EXAMINED_MORE, src, .) + +/// Generates fancy object's name including article and dirty status. +/atom/proc/get_examine_name(mob/user, infix) + var/examine_name = "\a [SPAN_INFO("[src] [infix]")]." + + if(is_bloodied) + examine_name = gender == PLURAL ? "some " : "a " + + if(blood_color != SYNTH_BLOOD_COLOUR) + examine_name += "[SPAN_DANGER("blood-stained")] [SPAN_INFO("[name] [infix]")]!" + else + examine_name += "oil-stained [name] [infix]." + + return examine_name + +/// Generates leading examine line containing object's name and icon. +/atom/proc/get_examine_string(mob/user) + return "\icon[src] That's [get_examine_name(user)]" diff --git a/code/modules/food/replicator.dm b/code/modules/food/replicator.dm index b8a9f083efd..ff3bf13a977 100644 --- a/code/modules/food/replicator.dm +++ b/code/modules/food/replicator.dm @@ -155,7 +155,8 @@ start_making = 1 ..() -/obj/machinery/food_replicator/_examine_text(mob/user) +/obj/machinery/food_replicator/examine(mob/user, infix) . = ..() + if(panel_open) - . += "\nThe maintenance hatch is open." + . += "The maintenance hatch is open." diff --git a/code/modules/games/boardgame.dm b/code/modules/games/boardgame.dm index 719740de71b..d463b526e37 100644 --- a/code/modules/games/boardgame.dm +++ b/code/modules/games/boardgame.dm @@ -9,11 +9,12 @@ var/board = list() var/selected = -1 -/obj/item/board/_examine_text(mob/user) +/obj/item/board/examine(mob/user, infix) if(in_range(user,src)) user.set_machine(src) interact(user) return + . = ..() /obj/item/board/attack_hand(mob/living/carbon/human/M) diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index 9cdd6c41e18..65a4232a645 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -229,12 +229,13 @@ update_icon() user.visible_message("\The [user] [concealed ? "conceals" : "reveals"] their hand.") -/obj/item/hand/_examine_text(mob/user) +/obj/item/hand/examine(mob/user, infix) . = ..() + if((!concealed || src.loc == user) && cards.len) - . += "\nIt contains: " + . += "It contains: " for(var/datum/playingcard/P in cards) - . += "\nThe [P.name]." + . += "The [P.name]." /obj/item/hand/on_update_icon(direction = 0) diff --git a/code/modules/genetics/side_effects.dm b/code/modules/genetics/side_effects.dm index 2fe66965e4a..aac89604141 100644 --- a/code/modules/genetics/side_effects.dm +++ b/code/modules/genetics/side_effects.dm @@ -15,19 +15,18 @@ /datum/genetics/side_effect/proc/trigger_side_effect(mob/living/carbon/human/H) if(ishuman(H)) - addtimer(CALLBACK(src, nameof(.proc/do_side_effect), H), 0) + INVOKE_ASYNC(src, nameof(.proc/do_side_effect), H) /datum/genetics/side_effect/proc/do_side_effect(mob/living/carbon/human/H) var/tp = pick(typesof(/datum/genetics/side_effect) - /datum/genetics/side_effect) var/datum/genetics/side_effect/S = new tp S.start(H) - addtimer(CALLBACK(H, nameof(/mob.proc/Weaken), rand(0, S.duration / 50)), 20) + H.set_next_think_ctx("weaken_context", world.time + rand(0, S.duration / 50), 20) sleep(S.duration) H.SetWeakened(0) S.finish(H) - /datum/genetics/side_effect/genetic_burn name = "Genetic Burn" symptom = "Subject's skin turns unusualy red." diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm deleted file mode 100644 index 6b1855b6c7d..00000000000 --- a/code/modules/holodeck/HolodeckControl.dm +++ /dev/null @@ -1,365 +0,0 @@ -/obj/machinery/computer/HolodeckControl - name = "holodeck control console" - desc = "A computer used to control a nearby holodeck." - icon_keyboard = "tech_key" - icon_screen = "holocontrol" - light_color = "#41E0FC" - req_access = list(access_heads) - var/islocked = 0 - - active_power_usage = 8 KILO WATTS // 8kW for the scenery + 500W per holoitem - - circuit = /obj/item/circuitboard/holodeckcontrol - - var/item_power_usage = 500 - - var/area/linkedholodeck = null - var/linkedholodeck_area - var/active = 0 - var/list/holographic_objs = list() - var/list/holographic_mobs = list() - var/damaged = 0 - var/safety_disabled = 0 - var/mob/last_to_emag = null - var/last_change = 0 - var/last_gravity_change = 0 - var/programs_list_id = null - var/list/supported_programs = list() - var/list/restricted_programs = list() - -/obj/machinery/computer/HolodeckControl/New() - ..() - linkedholodeck = locate(linkedholodeck_area) - if (programs_list_id in GLOB.using_map.holodeck_supported_programs) - supported_programs |= GLOB.using_map.holodeck_supported_programs[programs_list_id] - if (programs_list_id in GLOB.using_map.holodeck_restricted_programs) - restricted_programs |= GLOB.using_map.holodeck_restricted_programs[programs_list_id] - -/obj/machinery/computer/HolodeckControl/attack_ai(mob/user as mob) - return src.attack_hand(user) - -/obj/machinery/computer/HolodeckControl/attack_hand(mob/user as mob) - if(..()) - return 1 - - user.set_machine(src) - var/dat = "" - - dat += "Holodeck Control System
" - if(!islocked) - dat += "Holodeck is (UNLOCKED)
" - else - dat += "Holodeck is (LOCKED)
" - show_browser(user, dat, "window=computer;size=400x500") - onclose(user, "computer") - return - - dat += "
Current Loaded Programs:
" - - if(!linkedholodeck) - dat += "Warning: Unable to locate holodeck.
" - show_browser(user, dat, "window=computer;size=400x500") - onclose(user, "computer") - return - - if(!supported_programs.len) - dat += "Warning: No supported holo-programs loaded.
" - show_browser(user, dat, "window=computer;size=400x500") - onclose(user, "computer") - return - - for(var/prog in supported_programs) - dat += "([prog])
" - - dat += "
" - dat += "(Turn Off)
" - - dat += "
" - dat += "Please ensure that only holographic weapons are used in the holodeck if a combat simulation has been loaded.
" - - if(issilicon(user)) - dat += "
" - if(safety_disabled) - if (emagged) - dat += "ERROR: Cannot re-enable Safety Protocols.
" - else - dat += "(Re-Enable Safety Protocols?)
" - else - dat += "(Override Safety Protocols?)
" - - dat += "
" - - if(safety_disabled) - for(var/prog in restricted_programs) - dat += "(Begin [prog])
" - dat += "Ensure the holodeck is empty before testing.
" - dat += "
" - dat += "Safety Protocols are DISABLED
" - else - dat += "Safety Protocols are ENABLED
" - - if(linkedholodeck.has_gravity) - dat += "Gravity is (ON)
" - else - dat += "Gravity is (OFF)
" - show_browser(user, dat, "window=computer;size=400x500") - onclose(user, "computer") - return - -/obj/machinery/computer/HolodeckControl/Topic(href, href_list) - if(..()) - return 1 - if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.set_machine(src) - - if(href_list["program"]) - var/prog = href_list["program"] - if(prog in GLOB.using_map.holodeck_programs) - loadProgram(GLOB.using_map.holodeck_programs[prog]) - - else if(href_list["AIoverride"]) - if(!issilicon(usr)) - return - - if(safety_disabled && emagged) - return //if a traitor has gone through the trouble to emag the thing, let them keep it. - - safety_disabled = !safety_disabled - update_projections() - if(safety_disabled) - message_admins("[key_name_admin(usr)] overrode the holodeck's safeties") - log_game("[key_name(usr)] overrided the holodeck's safeties") - else - message_admins("[key_name_admin(usr)] restored the holodeck's safeties") - log_game("[key_name(usr)] restored the holodeck's safeties") - - else if(href_list["gravity"]) - toggleGravity(linkedholodeck) - - else if(href_list["togglehololock"]) - togglelock(usr) - - src.add_fingerprint(usr) - src.updateUsrDialog() - return - -/obj/machinery/computer/HolodeckControl/emag_act(remaining_charges, mob/user as mob) - last_to_emag = user //emag again to change the owner - if (!emagged) - playsound(src.loc, 'sound/effects/computer_emag.ogg', 25) - emagged = 1 - safety_disabled = 1 - update_projections() - to_chat(user, "You vastly increase projector power and override the safety and security protocols.") - to_chat(user, "Warning. Automatic shutoff and derezing protocols have been corrupted. Please call [GLOB.using_map.company_name] maintenance and do not use the simulator.") - log_game("[key_name(usr)] emagged the Holodeck Control Computer") - src.updateUsrDialog() - return 1 - else - ..() - -/obj/machinery/computer/HolodeckControl/proc/update_projections() - if (safety_disabled) - item_power_usage = 2500 - for(var/obj/item/holo/esword/H in linkedholodeck) - H.damtype = BRUTE - else - item_power_usage = initial(item_power_usage) - for(var/obj/item/holo/esword/H in linkedholodeck) - H.damtype = initial(H.damtype) - - for(var/mob/living/simple_animal/hostile/carp/holodeck/C in holographic_mobs) - C.set_safety(!safety_disabled) - if (last_to_emag) - C.friends = list(weakref(last_to_emag)) - -//This could all be done better, but it works for now. -/obj/machinery/computer/HolodeckControl/Destroy() - emergencyShutdown() - ..() - -/obj/machinery/computer/HolodeckControl/ex_act(severity) - emergencyShutdown() - ..() - -/obj/machinery/computer/HolodeckControl/power_change() - . = ..() - if (. && active && (stat & NOPOWER)) - emergencyShutdown() - -/obj/machinery/computer/HolodeckControl/Process() - for(var/item in holographic_objs) // do this first, to make sure people don't take items out when power is down. - if(!(get_turf(item) in linkedholodeck)) - derez(item, 0) - - if (!safety_disabled) - for(var/mob/living/simple_animal/hostile/carp/holodeck/C in holographic_mobs) - if (get_area(C.loc) != linkedholodeck) - holographic_mobs -= C - C.death() - - if(!..()) - return - if(active) - use_power_oneoff(item_power_usage * (holographic_objs.len + holographic_mobs.len)) - - if(!checkInteg(linkedholodeck)) - damaged = 1 - loadProgram(GLOB.using_map.holodeck_programs["turnoff"], 0) - active = 0 - update_use_power(POWER_USE_IDLE) - for(var/mob/M in range(10,src)) - M.show_message("The holodeck overloads!") - - - for(var/turf/T in linkedholodeck) - if(prob(30)) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(2, 1, T) - s.start() - T.ex_act(3) - T.hotspot_expose(1000,500,1) - -/obj/machinery/computer/HolodeckControl/proc/derez(obj/obj , silent = 1) - holographic_objs.Remove(obj) - - if(obj == null) - return - - if(isobj(obj)) - var/mob/M = obj.loc - if(ismob(M)) - M.drop(obj) - M.update_icons() //so their overlays update - - if(!silent) - var/obj/oldobj = obj - visible_message("The [oldobj.name] fades away!") - qdel(obj) - -/obj/machinery/computer/HolodeckControl/proc/checkInteg(area/A) - for(var/turf/T in A) - if(istype(T, /turf/space)) - return 0 - - return 1 - -//Why is it called toggle if it doesn't toggle? -/obj/machinery/computer/HolodeckControl/proc/togglePower(toggleOn = 0) - if(toggleOn) - loadProgram(GLOB.using_map.holodeck_programs["emptycourt"], 0) - else - loadProgram(GLOB.using_map.holodeck_programs["turnoff"], 0) - - if(!linkedholodeck.has_gravity) - linkedholodeck.gravitychange(1) - - active = 0 - update_use_power(POWER_USE_IDLE) - - -/obj/machinery/computer/HolodeckControl/proc/loadProgram(datum/holodeck_program/HP, check_delay = 1) - if(!HP) - return - var/area/A = locate(HP.target) - if(!A) - return - - if(check_delay) - if(world.time < (last_change + 25)) - if(world.time < (last_change + 15))//To prevent super-spam clicking, reduced process size and annoyance -Sieve - return - for(var/mob/M in range(3,src)) - M.show_message("ERROR. Recalibrating projection apparatus.") - last_change = world.time - return - - last_change = world.time - active = 1 - update_use_power(POWER_USE_ACTIVE) - - for(var/item in holographic_objs) - derez(item) - - for(var/mob/living/simple_animal/hostile/carp/holodeck/C in holographic_mobs) - holographic_mobs -= C - C.death() - - for(var/obj/effect/decal/cleanable/blood/B in linkedholodeck) - qdel(B) - - holographic_objs = A.copy_contents_to(linkedholodeck, TRUE, FALSE) - for(var/obj/holo_obj in holographic_objs) - holo_obj.alpha *= 0.8 //give holodeck objs a slight transparency - - if(HP.ambience) - linkedholodeck.ambience_powered = HP.ambience - - for(var/mob/living/M in mobs_in_area(linkedholodeck)) - if(M.mind) - linkedholodeck.play_ambience(M, custom_period=30 SECONDS) - - linkedholodeck.sound_env = A.sound_env - - spawn(30) - for(var/obj/effect/landmark/L in linkedholodeck) - if(L.name=="Atmospheric Test Start") - spawn(20) - var/turf/T = get_turf(L) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(2, 1, T) - s.start() - if(T) - T.temperature = 5000 - T.hotspot_expose(50000,50000,1) - if(L.name=="Holocarp Spawn") - holographic_mobs += new /mob/living/simple_animal/hostile/carp/holodeck(L.loc) - - if(L.name=="Holocarp Spawn Random") - if (prob(4)) //With 4 spawn points, carp should only appear 15% of the time. - holographic_mobs += new /mob/living/simple_animal/hostile/carp/holodeck(L.loc) - - update_projections() - - -/obj/machinery/computer/HolodeckControl/proc/toggleGravity(area/A) - if(world.time < (last_gravity_change + 25)) - if(world.time < (last_gravity_change + 15))//To prevent super-spam clicking - return - for(var/mob/M in range(3,src)) - M.show_message("ERROR. Recalibrating gravity field.") - last_change = world.time - return - - last_gravity_change = world.time - active = 1 - update_use_power(POWER_USE_IDLE) - - if(A.has_gravity) - A.gravitychange(0,A) - else - A.gravitychange(1,A) - -/obj/machinery/computer/HolodeckControl/proc/emergencyShutdown() - //Turn it back to the regular non-holographic room - loadProgram(GLOB.using_map.holodeck_programs["turnoff"], 0) - - if(!linkedholodeck.has_gravity) - linkedholodeck.gravitychange(1,linkedholodeck) - - active = 0 - update_use_power(POWER_USE_IDLE) - -// Locking system - -/obj/machinery/computer/HolodeckControl/proc/togglelock(mob/user) - if(cantogglelock(user)) - islocked = !islocked - audible_message("\The [src] emits a series of beeps to announce it has been [islocked ? null : "un"]locked.", hearing_distance = 3, splash_override = "*beep-beep-beep*") - return 0 - else - to_chat(user, "Access denied.") - return 1 - -/obj/machinery/computer/HolodeckControl/proc/cantogglelock(mob/user) - return allowed(user) diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm deleted file mode 100644 index 87a0277e72a..00000000000 --- a/code/modules/holodeck/HolodeckObjects.dm +++ /dev/null @@ -1,437 +0,0 @@ -// Holographic Items! - -// Holographic tables are in code/modules/tables/presets.dm -// Holographic racks are in code/modules/tables/rack.dm - -/turf/simulated/floor/holofloor - thermal_conductivity = 0 - -/turf/simulated/floor/holofloor/attackby(obj/item/W, mob/user) - return - // HOLOFLOOR DOES NOT GIVE A FUCK - -/turf/simulated/floor/holofloor/set_flooring() - return - -/turf/simulated/floor/holofloor/carpet - name = "brown carpet" - icon = 'icons/turf/flooring/carpet.dmi' - icon_state = "brown" - initial_flooring = /decl/flooring/carpet - -/turf/simulated/floor/holofloor/tiled - name = "floor" - icon = 'icons/turf/flooring/tiles.dmi' - icon_state = "steel" - initial_flooring = /decl/flooring/tiling - -/turf/simulated/floor/holofloor/tiled/dark - name = "dark floor" - icon_state = "dark" - initial_flooring = /decl/flooring/tiling/dark - -/turf/simulated/floor/holofloor/lino - name = "lino" - icon = 'icons/turf/flooring/linoleum.dmi' - icon_state = "lino" - initial_flooring = /decl/flooring/linoleum - -/turf/simulated/floor/holofloor/wood - name = "wooden floor" - icon = 'icons/turf/flooring/wood.dmi' - icon_state = "wood" - initial_flooring = /decl/flooring/wood - -/turf/simulated/floor/holofloor/grass - name = "lush grass" - icon = 'icons/turf/flooring/grass.dmi' - icon_state = "grass0" - initial_flooring = /decl/flooring/grass - -/turf/simulated/floor/holofloor/snow - name = "snow" - base_name = "snow" - icon = 'icons/turf/floors.dmi' - base_icon = 'icons/turf/floors.dmi' - icon_state = "snow" - base_icon_state = "snow" - -/turf/simulated/floor/holofloor/space - icon = 'icons/turf/space.dmi' - name = "\proper space" - icon_state = "0" - -/turf/simulated/floor/holofloor/reinforced - icon = 'icons/turf/flooring/tiles.dmi' - initial_flooring = /decl/flooring/reinforced - name = "reinforced holofloor" - icon_state = "reinforced" - -/turf/simulated/floor/holofloor/space/New() - icon_state = "[((x + y) ^ ~(x * y) + z) % 25]" - -/turf/simulated/floor/holofloor/beach - desc = "Uncomfortably gritty for a hologram." - base_desc = "Uncomfortably gritty for a hologram." - icon = 'icons/misc/beach.dmi' - base_icon = 'icons/misc/beach.dmi' - initial_flooring = null - -/turf/simulated/floor/holofloor/beach/sand - name = "sand" - icon_state = "desert0" - base_icon_state = "desert0" - -/turf/simulated/floor/holofloor/beach/coastline - name = "coastline" - icon = 'icons/misc/beach2.dmi' - icon_state = "sandwater" - base_icon_state = "sandwater" - -/turf/simulated/floor/holofloor/beach/water - name = "water" - icon_state = "seashallow" - base_icon_state = "seashallow" - -/turf/simulated/floor/holofloor/desert - name = "desert sand" - base_name = "desert sand" - desc = "Uncomfortably gritty for a hologram." - base_desc = "Uncomfortably gritty for a hologram." - icon_state = "sand0" - base_icon_state = "sand0" - icon = 'icons/turf/flooring/sand.dmi' - base_icon = 'icons/turf/flooring/sand.dmi' - initial_flooring = null - -/turf/simulated/floor/holofloor/desert/New() - ..() - if(prob(10)) - AddOverlays("asteroid[rand(0,9)]") - -/obj/structure/holostool - name = "stool" - desc = "Apply butt." - icon = 'icons/obj/furniture.dmi' - icon_state = "stool_padded_preview" - anchored = 1.0 - -/obj/item/clothing/gloves/boxing/hologlove - name = "boxing gloves" - desc = "Because you really needed another excuse to punch your crewmates." - icon_state = "boxing" - item_state = "boxing" - -/obj/structure/window/reinforced/holowindow/Destroy() - return ..() - -/obj/structure/window/reinforced/holowindow/attackby(obj/item/W, mob/user) - - if(!istype(W) || W.item_flags & ITEM_FLAG_NO_BLUDGEON) return - - if(isScrewdriver(W)) - to_chat(user, ("It's a holowindow, you can't unfasten it!")) - else if(isCrowbar(W) && reinf && state <= 1) - to_chat(user, ("It's a holowindow, you can't pry it!")) - else if(isWrench(W) && !anchored && (!state || !reinf)) - to_chat(user, ("It's a holowindow, you can't dismantle it!")) - else - if(W.damtype == BRUTE || W.damtype == BURN) - hit(W.force) - if(health <= 7) - anchored = 0 - update_nearby_icons() - step(src, get_dir(user, src)) - else - playsound(loc, GET_SFX(SFX_GLASS_HIT), 75, 1) - ..() - return - -/obj/structure/window/reinforced/holowindow/shatter(display_message = 1) - playsound(src, SFX_BREAK_WINDOW, 70, 1) - if(display_message) - visible_message("[src] fades away as it shatters!") - qdel(src) - return - -/obj/structure/window/reinforced/holowindow/disappearing/Destroy() - return ..() - -/obj/machinery/door/window/holowindoor/Destroy() - return ..() - -/obj/machinery/door/window/holowindoor/attackby(obj/item/I, mob/user) - - if (src.operating == 1) - return - - if(density && user.a_intent == I_HURT && !(istype(I, /obj/item/card) || istype(I, /obj/item/device/pda))) - var/aforce = I.force - playsound(src.loc, GET_SFX(SFX_GLASS_HIT), 75, 1) - visible_message("\The [src] was hit by \the [I].") - if(I.damtype == BRUTE || I.damtype == BURN) - take_damage(aforce) - return - - src.add_fingerprint(user) - if (!src.requiresID()) - user = null - - if (src.allowed(user)) - if (src.density) - open() - else - close() - - else if (src.density) - flick(text("[]deny", src.base_state), src) - - return - -/obj/machinery/door/window/holowindoor/shatter(display_message = 1) - src.set_density(0) - playsound(src, SFX_BREAK_WINDOW, 70, 1) - if(display_message) - visible_message("[src] fades away as it shatters!") - qdel(src) - -/obj/structure/bed/chair/holochair/Destroy() - return ..() - -/obj/structure/bed/chair/holochair/attackby(obj/item/W, mob/user) - if(isWrench(W)) - to_chat(user, SPAN("notice", "It's a holochair, you can't dismantle it!")) - return - -/obj/structure/bed/chair/holochair/fold(mob/user) - if(!foldable) - return - - var/list/collapse_message = list(SPAN_WARNING("\The [name] has collapsed!"), null) - - if(buckled_mob) - collapse_message = list(\ - SPAN_WARNING("[buckled_mob] falls down [user ? "as [user] collapses" : "from collapsing"] \the [name]!"),\ - user ? SPAN_NOTICE("You collapse \the [name] and made [buckled_mob] fall down!") : null) - - var/mob/living/occupant = unbuckle_mob() - var/blocked = occupant.run_armor_check(BP_GROIN, "melee") - - occupant.apply_effect(4, STUN, blocked) - occupant.apply_effect(4, WEAKEN, blocked) - occupant.apply_damage(rand(5,10), BRUTE, BP_GROIN, blocked) - playsound(src, 'sound/effects/fighting/punch1.ogg', 50, 1, -1) - else if(user) - collapse_message = list("[user] collapses \the [name].", "You collapse \the [name].") - - visible_message(collapse_message[1], collapse_message[2]) - var/obj/item/foldchair/holochair/O = new /obj/item/foldchair/holochair(get_turf(src)) - if(user) - O.add_fingerprint(user) - QDEL_IN(src, 0) - -/obj/item/foldchair/holochair/attackby(obj/item/W, mob/user) - if(isWrench(W)) - to_chat(user,SPAN("notice", "It's a holochair, you can't dismantle it!")) - -/obj/item/foldchair/holochair/attack_self(mob/user) - var/obj/structure/bed/chair/holochair/O = new /obj/structure/bed/chair/holochair(user.loc) - O.add_fingerprint(user) - O.dir = user.dir - O.update_icon() - visible_message("[user] unfolds \the [O.name].") - qdel(src) - -/obj/item/holo - damtype = PAIN - no_attack_log = 1 - -/obj/item/holo/esword - name = "holosword" - desc = "May the force be within you. Sorta." - icon = 'icons/obj/weapons.dmi' - icon_state = "sword0" - hitsound = 'sound/effects/fighting/energy1.ogg' - force = 3.0 - throw_range = 5 - throwforce = 0 - w_class = ITEM_SIZE_SMALL - atom_flags = ATOM_FLAG_NO_BLOOD - var/active = 0 - var/item_color - -/obj/item/holo/esword/green - New() - item_color = "green" - -/obj/item/holo/esword/red - New() - item_color = "red" - -/obj/item/holo/esword/New() - item_color = pick("red","blue","green","purple") - -/obj/item/holo/esword/attack_self(mob/living/user) - active = !active - if (active) - force = 30 - icon_state = "sword[item_color]" - w_class = ITEM_SIZE_HUGE - playsound(user, 'sound/weapons/saberon.ogg', 50, 1) - to_chat(user, "[src] is now active.") - else - force = 3 - icon_state = "sword0" - w_class = ITEM_SIZE_SMALL - playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) - to_chat(user, "[src] can now be concealed.") - - update_held_icon() - - add_fingerprint(user) - return - -//BASKETBALL OBJECTS - -/obj/item/beach_ball/holoball - icon = 'icons/obj/basketball.dmi' - icon_state = "basketball" - name = "basketball" - item_state = "basketball" - desc = "Here's your chance, do your dance at the Space Jam." - w_class = ITEM_SIZE_LARGE //Stops people from hiding it in their pockets - -/obj/structure/holohoop - name = "basketball hoop" - desc = "Boom, Shakalaka!" - icon = 'icons/obj/basketball.dmi' - icon_state = "hoop" - anchored = 1 - density = 1 - throwpass = 1 - -/obj/structure/holohoop/CanPass(atom/movable/mover, turf/target) - if(istype(mover,/obj/item) && mover.throwing) - var/obj/item/I = mover - if(istype(I, /obj/item/projectile)) - return TRUE - if(prob(50)) - I.forceMove(loc) - visible_message("Swish! \the [I] lands in \the [src].") - else - visible_message("\The [I] bounces off of \the [src]'s rim!") - return FALSE - return ..() - - -/obj/machinery/readybutton - name = "Ready Declaration Device" - desc = "This device is used to declare ready. If all devices in an area are ready, the event will begin!" - icon = 'icons/obj/monitors.dmi' - icon_state = "auth_off" - layer = ABOVE_WINDOW_LAYER - var/ready = 0 - var/area/currentarea = null - var/eventstarted = 0 - - anchored = 1.0 - power_channel = STATIC_ENVIRON - -/obj/machinery/readybutton/attack_ai(mob/user) - to_chat(user, "The AI is not to interact with these devices!") - return - -/obj/machinery/readybutton/New() - ..() - - -/obj/machinery/readybutton/attackby(obj/item/W, mob/user) - to_chat(user, "The device is a holographic button, there's nothing you can do with it!") - -/obj/machinery/readybutton/attack_hand(mob/user) - - if(user.stat) - to_chat(src, "You are incapacitated.") - return - - if(stat & BROKEN) - to_chat(user, "This device is broken.") - return - - if(!user.IsAdvancedToolUser()) - return 0 - - currentarea = get_area(src.loc) - if(!currentarea) - qdel(src) - - if(eventstarted) - to_chat(usr, "The event has already begun!") - return - - ready = !ready - - update_icon() - - var/numbuttons = 0 - var/numready = 0 - for(var/obj/machinery/readybutton/button in currentarea) - numbuttons++ - if (button.ready) - numready++ - - if(numbuttons == numready) - begin_event() - -/obj/machinery/readybutton/on_update_icon() - if(ready) - icon_state = "auth_on" - else - icon_state = "auth_off" - -/obj/machinery/readybutton/proc/begin_event() - - eventstarted = 1 - - for(var/obj/structure/window/reinforced/holowindow/disappearing/W in currentarea) - qdel(W) - - for(var/mob/M in currentarea) - to_chat(M, "FIGHT!") - -//Holocarp - -/mob/living/simple_animal/hostile/carp/holodeck - icon = 'icons/mob/hologram.dmi' - icon_state = "Carp" - icon_living = "Carp" - icon_dead = "Carp" - alpha = 127 - icon_gib = null - meat_amount = 0 - meat_type = null - -/mob/living/simple_animal/hostile/carp/holodeck/New() - ..() - set_light(0.5, 0.1, 2) //hologram lighting - -/mob/living/simple_animal/hostile/carp/holodeck/proc/set_safety(safe) - if (safe) - faction = "neutral" - melee_damage_lower = 0 - melee_damage_upper = 0 - environment_smash = 0 - destroy_surroundings = 0 - else - faction = "carp" - melee_damage_lower = initial(melee_damage_lower) - melee_damage_upper = initial(melee_damage_upper) - environment_smash = initial(environment_smash) - destroy_surroundings = initial(destroy_surroundings) - -/mob/living/simple_animal/hostile/carp/holodeck/gib(anim, do_gibs) - death() - -/mob/living/simple_animal/hostile/carp/holodeck/death() - ..(null, "fades away!", "You have been destroyed.") - qdel(src) diff --git a/code/modules/holodeck/HolodeckPrograms.dm b/code/modules/holodeck/HolodeckPrograms.dm deleted file mode 100644 index f46cedfe851..00000000000 --- a/code/modules/holodeck/HolodeckPrograms.dm +++ /dev/null @@ -1,8 +0,0 @@ - -/datum/holodeck_program - var/target - var/list/ambience = null - -/datum/holodeck_program/New(target, list/ambience = null) - src.target = target - src.ambience = ambience diff --git a/code/modules/holodeck/README.md b/code/modules/holodeck/README.md new file mode 100644 index 00000000000..3679810a9ca --- /dev/null +++ b/code/modules/holodeck/README.md @@ -0,0 +1,23 @@ +## Структура + +- computer.dm - реализация консоли управления голодеком. +- effects.dm - реализация и подтипы эффектов голодека. +- objects.dm - объекты, используемые **ТОЛЬКО** внутри голодека. +- templates.dm - реализация и подтипы шаблонов карт. +- turfs.dm - полы, используемые **ТОЛЬКО** внутри голодека. + +## Использование + +### Создание программы + +Карты хранятся в отдельных файлах в папке `maps/templates` с префиксом `holodeck_`, размер сетки должен составлять **10х10**. + +Каждому файлу карты должен соответствовать шаблон `/datum/map_template/holodeck`, для редактирования доступны поля: name, template_id, mappaths, restticted, ambience, ambience_music. Подробнее о переменных можно прочесть над их объявлениями. + +### Добавление интерактивности + +Для добавления специальных эффектов или созданя сущностей, зависящих от статуса взлома консоли, к примеру, голографические карпы, требуется использовать `/obj/effect/holodeck_effect`. + +### Использование объектов на картах + +Любой атом может быть размещен внутри карты, но стоит учитывать: не у всех их может быть логика, проверябщая является ли он реальным, а не голографическим. Это может привести к "дюпам" и иным ошибкам, в следтсвие чего стоит проверять наличие логики, проверяющей наличие флагов `ATOM_FLAG_HOLOGRAM` и `ATOM_FLAG_NO_DECONSTRUCTION` у размещаемых атомов. diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm new file mode 100644 index 00000000000..6f694a7a54e --- /dev/null +++ b/code/modules/holodeck/computer.dm @@ -0,0 +1,414 @@ +#define PROJECTION_POWER_COST 5 HECTO WATTS + +/obj/machinery/computer/holodeck + name = "holodeck control console" + desc = "A computer used to control a nearby holodeck." + + req_access = list(access_heads) + + circuit = /obj/item/circuitboard/holodeckcontrol + + icon_keyboard = "tech_key" + icon_screen = "holocontrol" + light_color = "#41E0FC" + + active_power_usage = 8 KILO WATTS + + /// Area type holodeck console should look for. + var/mapped_start_area_typepath = /area/holodeck + /// Reference to a linked area. + var/area/holodeck/linked_area + /// Reference to a bottom left turf. + var/turf/bottom_left + + /// Reference to a currently used map template. + var/datum/map_template/holodeck/using_template + /// List of all atoms included in map template plus extra added via `add_to_spawned`. + var/list/atom/spawned + /// List of all special effect included in map template. + var/list/obj/effect/effects + + /// List of json-like objects representing programs, used by UI. + var/list/programs_cache + /// List of json-like objects representing restricted programs, used by UI. + var/list/emag_programs_cache + + /// Whether holodeck is currently loading a program. Blocks other `load_program` calls. + var/loading_map = FALSE + + /// Currently loaded program's `template_id`. + var/program + /// Previously loaded program's `template_id`. + var/last_program + /// `template_id` of the template that should be loaded by default. + var/offline_program = "holodeck_offline" + + /// Whether not `offline_program` is currently loaded. + var/active = FALSE + /// Whether controls are locked. + var/locked = FALSE + /// Whether safety is disabled. Allows to spawn unnerfed weapons ant etc. + var/safety_disabled = FALSE + /// Whether gravity is disabled inside a holodeck zone. + var/gravity_disabled = FALSE + +/obj/machinery/computer/holodeck/Initialize() + . = ..() + + LAZYINITLIST(spawned) + LAZYINITLIST(effects) + + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/computer/holodeck/LateInitialize() + linked_area = pick_area_by_type(mapped_start_area_typepath, list()) + if(isnull(linked_area)) + log_debug("[src] has no matching holodeck area.") + qdel(src) + return + + if(get_area(src) == linked_area) + log_debug("[src] was placed inside managed area! This might cause recursion and other errors.") + qdel(src) + return + + bottom_left = locate(linked_area.x, linked_area.y, z) + if(isnull(bottom_left)) + log_debug("[src] has an invalid holodeck area.") + qdel(src) + return + + if(isnull(offline_program)) + log_debug("[src] created without offline ptogram.") + qdel(src) + return + + generate_programs_list() + load_program(offline_program, TRUE) + +/obj/machinery/computer/holodeck/proc/generate_programs_list() + for(var/typepath in subtypesof(/datum/map_template/holodeck)) + var/datum/map_template/holodeck/program = typepath + var/list/program_data = list("id" = initial(program.template_id), "name" = initial(program.name)) + if(initial(program.restricted)) + LAZYADD(emag_programs_cache, list(program_data)) + else + LAZYADD(programs_cache, list(program_data)) + +/obj/machinery/computer/holodeck/proc/load_program(map_id, force = FALSE) + if(program == map_id) + return + + THROTTLE(cooldown, 10 SECONDS) + if(!cooldown && !force) + audible_message(SPAN_WARNING("ERROR. Recalibrating projection apparatus.")) + return + + if(loading_map) + return + + loading_map = TRUE + + clear_projections() + + using_template = SSmapping.holodeck_templates[map_id] + using_template.load(bottom_left) + + spawned = using_template.created_atoms + + last_program = program + program = map_id + + active = program != offline_program + + linked_area.forced_ambience = length(using_template.ambience) ? using_template.ambience : initial(linked_area.forced_ambience) + linked_area.ambient_music_tags = length(using_template.ambience_music) ? using_template.ambience_music : initial(linked_area.ambient_music_tags) + + finish_loading() + nerf(!emagged) + + loading_map = FALSE + + update_use_power(active ? POWER_USE_ACTIVE : POWER_USE_IDLE) + +/obj/machinery/computer/holodeck/proc/clear_projections() + for(var/holo_atom in spawned) + derez(holo_atom) + + for(var/obj/effect/holodeck_effect/holo_effect as anything in effects) + effects -= holo_effect + holo_effect.deactivate() + +/obj/machinery/computer/holodeck/proc/finish_loading() + for(var/atom/holo_atom as anything in spawned) + if(QDELETED(holo_atom)) + spawned -= holo_atom + continue + + if(isturf(holo_atom)) + spawned -= holo_atom + + finalize_spawned(holo_atom) + +/obj/machinery/computer/holodeck/proc/nerf(nerf = TRUE) + for(var/obj/item/nerfing_item in spawned) + nerfing_item.damtype = nerf ? PAIN : initial(nerfing_item.damtype) + + for(var/obj/effect/holodeck_effect/nerfing_effect as anything in effects) + nerfing_effect.nerf(nerf) + +/obj/machinery/computer/holodeck/proc/finalize_spawned(atom/holo_atom) + holo_atom.atom_flags |= ATOM_FLAG_HOLOGRAM + + if(isturf(holo_atom)) + holo_atom.atom_flags |= ATOM_FLAG_NO_DECONSTRUCTION + return + + register_signal(holo_atom, SIGNAL_QDELETING, nameof(.proc/remove_from_spawned)) + + if(isholoeffect(holo_atom)) + var/obj/effect/holodeck_effect/holo_effect = holo_atom + + effects += holo_effect + spawned -= holo_effect + + var/atom/holo_effect_product = holo_effect.activate() + if(istype(holo_effect_product)) + add_to_spawned(holo_effect_product) + + if(islist(holo_effect_product)) + for(var/atom/atom_product as anything in holo_effect_product) + add_to_spawned(holo_effect_product) + + return + + if(isobj(holo_atom)) + var/obj/holo_obj = holo_atom + holo_obj.unacidable = TRUE + holo_obj.atom_flags |= ATOM_FLAG_NO_DECONSTRUCTION + return + +/obj/machinery/computer/holodeck/proc/add_to_spawned(atom/holo_atom) + spawned |= holo_atom + + if(emagged && isitem(holo_atom)) + var/obj/item/holo_item = holo_atom + holo_item.damtype = PAIN + + finalize_spawned(holo_atom) + +/obj/machinery/computer/holodeck/proc/remove_from_spawned(datum/to_remove, _force) + SIGNAL_HANDLER + spawned -= to_remove + unregister_signal(to_remove, SIGNAL_QDELETING) + +/obj/machinery/computer/holodeck/proc/derez(atom/holo_atom, silent = TRUE) + spawned -= holo_atom + if(isnull(holo_atom) || isturf(holo_atom)) + return + + unregister_signal(holo_atom, SIGNAL_QDELETING) + + var/turf/target_turf = get_turf(holo_atom) + for(var/atom/movable/atom_contents as anything in holo_atom) + if(atom_contents.atom_flags & ATOM_FLAG_HOLOGRAM) + continue + + atom_contents.forceMove(target_turf) + + if(!silent) + visible_message(SPAN_NOTICE("\The [holo_atom] fades away!")) + + qdel(holo_atom) + +/obj/machinery/computer/holodeck/Destroy() + emergency_shutdown() + return ..() + +/obj/machinery/computer/holodeck/proc/reset_to_default() + if(program == offline_program) + return + + program = offline_program + clear_projections() + + var/offline_template = SSmapping.holodeck_templates[offline_program] + INVOKE_ASYNC(CALLBACK(offline_template, nameof(/datum/map_template.proc/load), bottom_left)) + +/obj/machinery/computer/holodeck/Process() + if(!active) + return + + if(!check_flooring()) + audible_message(SPAN_WARNING("ERROR! Structural damage detected, overload imminent.")) + emergency_shutdown() + + for(var/turf/affected_turf in linked_area) + if(prob(30)) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(2, 1, affected_turf) + s.start() + + affected_turf.ex_act(EXPLODE_LIGHT) + affected_turf.hotspot_expose(1000, 500, 1) + + if(!emagged) + for(var/spawned_atom in spawned) + if(get_area(spawned_atom) != linked_area) + derez(spawned_atom, FALSE) + + if(active) + use_power_oneoff(active_power_usage + length(spawned) * PROJECTION_POWER_COST + length(effects) * PROJECTION_POWER_COST) + +/obj/machinery/computer/holodeck/proc/check_flooring() + for(var/turf/checking_turf in linked_area) + if(!checking_turf.holodeck_compatible && !(checking_turf.atom_flags & ATOM_FLAG_HOLOGRAM)) + return FALSE + + return TRUE + +/obj/machinery/computer/holodeck/proc/emergency_shutdown() + load_program(offline_program, TRUE) + set_gravity() + +/obj/machinery/computer/holodeck/proc/set_gravity(new_value) + if(isnull(new_value)) + var/obj/machinery/gravity_generator/main/gravity_generator = GLOB.station_gravity_generator + linked_area.gravitychange(gravity_generator?.enabled) + return + + linked_area.gravitychange(new_value) + +/obj/machinery/computer/holodeck/power_change() + . = ..() + INVOKE_ASYNC(src, nameof(.proc/toggle_power), !(stat & NOPOWER)) + +/obj/machinery/computer/holodeck/proc/toggle_power(new_state) + if(active == new_state) + return + + if(active) + load_program(offline_program) + set_gravity() + return + + if(last_program) + load_program(last_program) + set_gravity(!gravity_disabled) + +/obj/machinery/computer/holodeck/attack_hand(mob/user) + tgui_interact(user) + +/obj/machinery/computer/holodeck/attack_ai(mob/user) + tgui_interact(user) + +/obj/machinery/computer/holodeck/tgui_state(mob/user) + return GLOB.tgui_machinery_noaccess_state + +/obj/machinery/computer/holodeck/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + + if(!ui) + ui = new(user, src, "Holodeck") + ui.open() + +/obj/machinery/computer/holodeck/tgui_data(mob/user) + var/list/data = list() + + data["isLocked"] = locked + data["canToggleSafety"] = allowed(user) + data["isSafetyDisabled"] = safety_disabled + data["isGravityDisabled"] = gravity_disabled + + data["currentProgram"] = program + data["programs"] = emagged ? programs_cache + emag_programs_cache : programs_cache + + return data + +/obj/machinery/computer/holodeck/tgui_act(action, params) + . = ..() + if(.) + return + + switch(action) + if("toggleLock") + if(!allowed(usr)) + return + + locked = !locked + return TRUE + + if("toggleSafety") + if(locked) + return + + if(!allowed(usr)) + return + + toggle_safety() + return TRUE + + if("toggleGravity") + if(locked) + return + + toggle_gravity() + return TRUE + + if("changeProgram") + if(locked) + return + + var/program_id = params["id"] + if(isnull(program_id)) + return + + if(!is_valid_program_id(program_id)) + return + + load_program(program_id) + return TRUE + +/obj/machinery/computer/holodeck/proc/toggle_safety(new_value) + safety_disabled = isnull(new_value) ? !safety_disabled : new_value + nerf(!safety_disabled) + + log_game("[key_name(usr)] [safety_disabled ? "restored" : "overrode"] the holodeck's safeties", notify_admin = TRUE) + +/obj/machinery/computer/holodeck/proc/toggle_gravity() + THROTTLE(cooldown, 3 SECONDS) + if(!cooldown) + audible_message(SPAN_WARNING("ERROR. Recalibrating gravity field.")) + return + + gravity_disabled = !gravity_disabled + set_gravity(!gravity_disabled) + +/obj/machinery/computer/holodeck/proc/is_valid_program_id(verifying_id) + var/programs = emagged ? programs_cache + emag_programs_cache : programs_cache + + for(var/list/program as anything in programs) + if(program["id"] == verifying_id) + return TRUE + + return FALSE + +/obj/machinery/computer/holodeck/emag_act(remaining_charges, mob/user, emag_source) + if(emagged) + return FALSE + + toggle_safety(FALSE) + emagged = TRUE + + audible_message(SPAN_WARNING("WARNING! Automatic shutoff and derezing protocols have been corrupted. Please call [GLOB.using_map.company_name] maintenance and do not use the simulator.")) + show_splash_text(user, "projector power increased") + + log_game("[key_name(usr)] emagged the holodeck computer", notify_admin = TRUE) + + return TRUE + +/obj/machinery/computer/holodeck/ex_act(severity) + emergency_shutdown() + return ..() + +#undef PROJECTION_POWER_COST diff --git a/code/modules/holodeck/effects.dm b/code/modules/holodeck/effects.dm new file mode 100644 index 00000000000..76694eaf17c --- /dev/null +++ b/code/modules/holodeck/effects.dm @@ -0,0 +1,40 @@ +/obj/effect/holodeck_effect + icon = 'icons/misc/landmarks.dmi' + invisibility = INVISIBILITY_MAXIMUM + +/obj/effect/holodeck_effect/proc/activate() + return + +/obj/effect/holodeck_effect/proc/deactivate() + SHOULD_CALL_PARENT(TRUE) + + qdel(src) + +/obj/effect/holodeck_effect/proc/nerf(nerf = TRUE) + return + +/obj/effect/holodeck_effect/carp + icon_state = "holocarp" + + var/weakref/carp_ref + +/obj/effect/holodeck_effect/carp/activate() + var/mob/living/simple_animal/hostile/carp/holographic/holo_carp = new(get_turf(src)) + + carp_ref = weakref(holo_carp) + + return holo_carp + +/obj/effect/holodeck_effect/carp/nerf(nerf = TRUE) + var/mob/living/simple_animal/hostile/carp/holographic/holo_carp = carp_ref?.resolve() + if(!istype(holo_carp)) + return + + holo_carp.faction = nerf ? "neutral" : "carp" + +/obj/effect/holodeck_effect/carp/random + icon_state = "holocarp_random" + +/obj/effect/holodeck_effect/carp/random/activate() + if(prob(50)) + return ..() diff --git a/code/modules/holodeck/objects.dm b/code/modules/holodeck/objects.dm new file mode 100644 index 00000000000..70b4987b869 --- /dev/null +++ b/code/modules/holodeck/objects.dm @@ -0,0 +1,57 @@ +/obj/machinery/button/minigame + name = "Ready Declaration Device" + desc = "This device is used to declare ready. If all devices in an area are ready, the event will begin!" + + icon = 'icons/obj/monitors.dmi' + icon_state = "auth_off" + + var/area/current_area + var/disabled = FALSE + +/obj/machinery/button/minigame/Initialize() + . = ..() + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/button/minigame/LateInitialize() + current_area = get_area(loc) + if(isnull(current_area)) + log_debug("[src] has no area.") + qdel(src) + return + +/obj/machinery/button/minigame/on_update_icon() + icon_state = "auth_[active ? "on" : "off"]" + +/obj/machinery/button/minigame/attackby(obj/item/W, mob/user) + return + +/obj/machinery/button/minigame/attack_ai(mob/user) + return + +/obj/machinery/button/minigame/activate(mob/living/user) + if(disabled) + show_splash_text(user, "event already started") + return + + active = !active + update_icon() + + var/buttons_total = 0 + var/buttons_ready = 0 + for(var/obj/machinery/button/minigame/button in current_area) + buttons_total++ + + if(button.active) + buttons_ready++ + + if(buttons_total == buttons_ready) + inititate_event() + +/obj/machinery/button/minigame/proc/inititate_event() + disabled = TRUE + + for(var/obj/structure/window/basic/window in current_area) + qdel(window) + + for(var/mob/participant in current_area) + to_chat(participant, SPAN_DANGER("FIGHT!")) diff --git a/code/modules/holodeck/templates.dm b/code/modules/holodeck/templates.dm new file mode 100644 index 00000000000..d2a6327039e --- /dev/null +++ b/code/modules/holodeck/templates.dm @@ -0,0 +1,107 @@ +/datum/map_template/holodeck + returns_created_atoms = TRUE + /// Internal template identifier, might be or might not be a file name, used generally by UI. + var/template_id + /// Whether the template can be unlocked by emagging a console. + var/restricted = FALSE + /// List of SFX tags to be played when template is loaded. + var/list/ambience + /// List of SFX tags to be played as ambience music when template is loaded. + var/list/ambience_music + +/datum/map_template/holodeck/update_blacklist(turf/source_turf, centered, list/turf_blacklist) + for(var/turf/affecting_turf as anything in get_affected_turfs(source_turf, centered)) + if(affecting_turf.holodeck_compatible || (affecting_turf.atom_flags & ATOM_FLAG_HOLOGRAM)) + continue + + turf_blacklist[affecting_turf] = TRUE + +/datum/map_template/holodeck/basketball + name = "basketball field" + template_id = "holodeck_basketball" + mappaths = list("maps/templates/holodeck_basketball.dmm") + ambience_music = list(SFX_AMBIENT_MUSIC_THUNDERDOME) + +/datum/map_template/holodeck/beach + name = "sunny beach" + template_id = "holodeck_beach" + mappaths = list("maps/templates/holodeck_beach.dmm") + +/datum/map_template/holodeck/boxing + name = "boxing arena" + template_id = "holodeck_boxing" + mappaths = list("maps/templates/holodeck_boxing.dmm") + ambience_music = list(SFX_AMBIENT_MUSIC_THUNDERDOME) + +/datum/map_template/holodeck/chess + name = "space chess" + template_id = "holodeck_chess" + mappaths = list("maps/templates/holodeck_chess.dmm") + +/datum/map_template/holodeck/courtroom + name = "courtroom" + template_id = "holodeck_courtroom" + mappaths = list("maps/templates/holodeck_courtroom.dmm") + ambience_music = list(SFX_AMBIENT_MUSIC_COURT) + +/datum/map_template/holodeck/desert + name = "space-mexican desert" + template_id = "holodeck_desert" + mappaths = list("maps/templates/holodeck_desert.dmm") + ambience = list(SFX_AMBIENT_DESERT) + +/datum/map_template/holodeck/disco + name = "disco room" + template_id = "holodeck_disco" + mappaths = list("maps/templates/holodeck_disco.dmm") + +/datum/map_template/holodeck/lasertag + name = "lasertag arena" + template_id = "holodeck_lasertag" + mappaths = list("maps/templates/holodeck_lasertag.dmm") + ambience_music = list(SFX_AMBIENT_MUSIC_THUNDERDOME) + +/datum/map_template/holodeck/meetingroom + name = "meeting room" + template_id = "holodeck_meetingroom" + mappaths = list("maps/templates/holodeck_meetingroom.dmm") + +/datum/map_template/holodeck/offline + name = "offline" + template_id = "holodeck_offline" + mappaths = list("maps/templates/holodeck_offline.dmm") + +/datum/map_template/holodeck/picnic + name = "mediterranean picnic" + template_id = "holodeck_picnic" + mappaths = list("maps/templates/holodeck_picnic.dmm") + ambience_music = list(SFX_AMBIENT_MUSIC_PICNIC) + +/datum/map_template/holodeck/snow + name = "snow desert" + template_id = "holodeck_snow" + mappaths = list("maps/templates/holodeck_snow.dmm") + ambience = list(SFX_AMBIENT_DESERT) + +/datum/map_template/holodeck/space + name = "totally accurate space" + template_id = "holodeck_space" + mappaths = list("maps/templates/holodeck_space.dmm") + ambience = list(SFX_AMBIENT_SPACE) + +/datum/map_template/holodeck/theatre + name = "space theatre" + template_id = "holodeck_theatre" + mappaths = list("maps/templates/holodeck_theatre.dmm") + +/datum/map_template/holodeck/thunderdome + name = "thunderdome arena" + template_id = "holodeck_thunderdome" + mappaths = list("maps/templates/holodeck_thunderdome.dmm") + ambience_music = list(SFX_AMBIENT_MUSIC_THUNDERDOME) + +/datum/map_template/holodeck/wildlife + name = "wildlife simulation" + template_id = "holodeck_wildlife" + mappaths = list("maps/templates/holodeck_wildlife.dmm") + restricted = TRUE diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm new file mode 100644 index 00000000000..b1f46b512ee --- /dev/null +++ b/code/modules/holodeck/turfs.dm @@ -0,0 +1,10 @@ +/turf/simulated/floor/holospace + name = "\proper space" + desc = "It's spa-a-ace!1!" + + icon_state = "0" + icon = 'icons/turf/space.dmi' + +/turf/simulated/floor/holospace/Initialize(mapload, ...) + . = ..() + icon_state = "[((x + y) ^ ~(x * y) + z) % 25]" diff --git a/code/modules/hydroponics/beekeeping/beehive.dm b/code/modules/hydroponics/beekeeping/beehive.dm index 5e207a51fd4..71a4bf76791 100644 --- a/code/modules/hydroponics/beekeeping/beehive.dm +++ b/code/modules/hydroponics/beekeeping/beehive.dm @@ -34,10 +34,11 @@ if(81 to 100) AddOverlays("bees3") -/obj/machinery/beehive/_examine_text(mob/user) +/obj/machinery/beehive/examine(mob/user, infix) . = ..() + if(!closed) - . += "\nThe lid is open." + . += "The lid is open." /obj/machinery/beehive/attackby(obj/item/I, mob/user) if(isCrowbar(I)) diff --git a/code/modules/hydroponics/grown_predefined.dm b/code/modules/hydroponics/grown_predefined.dm index 7ad98dcd253..b40d6ac4d14 100644 --- a/code/modules/hydroponics/grown_predefined.dm +++ b/code/modules/hydroponics/grown_predefined.dm @@ -112,3 +112,15 @@ plantname = "flamechili" name = "flamechili" icon_state = "flamechili-product" + +/obj/item/reagent_containers/food/grown/coffee + plantname = "coffeea" + name = "coffee arabica beans" + desc = "Dry them out to make coffee." + icon_state = "arabica_beans" + +/obj/item/reagent_containers/food/grown/coffee/robusta + plantname = "coffeea_robusta" + name = "coffee robusta beans" + desc = "Dry them out to make coffee. Increases your robustness!" + icon_state = "robusta_beans" diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index 57f0ea18483..d3a8a69fd78 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -28,7 +28,7 @@ mutants = null chems = list(/datum/reagent/frostoil = list(3,5), /datum/reagent/nutriment = list(1,50)) kitchen_tag = "icechili" - canonical_icon = "icechili" + canonical_icon = "chiliice" /datum/seed/chili/ice/New() ..() @@ -44,7 +44,7 @@ chems = list(/datum/reagent/fuel = list(5,10)) kitchen_tag = "flamechili" fun_level = 1 - canonical_icon = "chili" + canonical_icon = null /datum/seed/chili/flame/New() ..() @@ -1561,3 +1561,35 @@ set_trait(TRAIT_PLANT_COLOUR,"#4c7f28") set_trait(TRAIT_WATER_CONSUMPTION, 10) set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.25) + +/datum/seed/coffeea + name = "coffeea" + seed_name = "coffeea" + display_name = "coffee arabica bush" + mutants = list("coffeea_robusta") + kitchen_tag = "coffeebean" + canonical_icon = "coffeea" + has_custom_product = /obj/item/reagent_containers/food/grown/coffee + +/datum/seed/coffeea/New() + ..() + set_trait(TRAIT_HARVEST_REPEAT, 1) + set_trait(TRAIT_MATURATION, 5) + set_trait(TRAIT_YIELD, 5) + set_trait(TRAIT_POTENCY, 3) + set_trait(TRAIT_PRODUCTION, 3) + set_trait(TRAIT_IDEAL_LIGHT, 6) + set_trait(TRAIT_PRODUCT_ICON, "arabica_beans") + set_trait(TRAIT_PLANT_ICON, "coffeea") + set_trait(TRAIT_WATER_CONSUMPTION, 10) + set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.3) + +/datum/seed/coffeea/robusta + name = "coffeea_robusta" + display_name = "coffee robusta bush" + seed_name = "coffeea-robusta" + has_custom_product = /obj/item/reagent_containers/food/grown/coffee/robusta + +/datum/seed/coffeea/robusta/New() + ..() + set_trait(TRAIT_PRODUCT_ICON, "robusta_beans") diff --git a/code/modules/hydroponics/seed_packets.dm b/code/modules/hydroponics/seed_packets.dm index 1a85b4d99d5..4648e11d31d 100644 --- a/code/modules/hydroponics/seed_packets.dm +++ b/code/modules/hydroponics/seed_packets.dm @@ -57,10 +57,11 @@ var/global/list/plant_seed_sprites = list() src.SetName("sample of [seed.seed_name] [seed.seed_noun]") src.desc = "It's labelled as coming from [seed.display_name]." -/obj/item/seeds/_examine_text(mob/user) - . = ..(user) +/obj/item/seeds/examine(mob/user, infix) + . = ..() + if(seed && !seed.roundstart) - . += "\nIt's tagged as variety #[seed.uid]." + . += "It's tagged as variety #[seed.uid]." /obj/item/seeds/cutting name = "cuttings" @@ -329,3 +330,6 @@ var/global/list/plant_seed_sprites = list() /obj/item/seeds/cowcownutseed seed_type = "cowcownut" + +/obj/item/seeds/coffeea + seed_type = "coffeea" diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index 9de4939e805..dda716e23c7 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -220,12 +220,14 @@ update_icon() /obj/machinery/portable_atmospherics/hydroponics/proc/die() - dead = 1 + dead = TRUE mutation_level = 0 harvest = 0 weedlevel += 1 * HYDRO_SPEED_MULTIPLIER pestlevel = 0 + update_icon() // Explicitly calling update_icons here since our processing is an entangled mess. + //Process reagents being input into the tray. /obj/machinery/portable_atmospherics/hydroponics/proc/process_reagents() @@ -565,31 +567,30 @@ else if(dead) remove_dead(user) -/obj/machinery/portable_atmospherics/hydroponics/_examine_text(mob/user) - +/obj/machinery/portable_atmospherics/hydroponics/examine(mob/user, infix) . = ..() if(!seed) - . += "\n[src] is empty." + . += "[src] is empty." return - . += "\n[seed.display_name] are growing here." + . += SPAN_NOTICE("[seed.display_name] are growing here.") if(!Adjacent(usr)) return - . += "\nWater: [round(waterlevel,0.1)]/100" - . += "\nNutrient: [round(nutrilevel,0.1)]/10" + . += "Water: [round(waterlevel,0.1)]/100" + . += "Nutrient: [round(nutrilevel,0.1)]/10" if(weedlevel >= 5) - . += "\n\The [src] is infested with weeds!" + . += "\The [src] is infested with weeds!" if(pestlevel >= 5) - . += "\n\The [src] is infested with tiny worms!" + . += "\The [src] is infested with tiny worms!" if(dead) - . += "\nThe plant is dead." + . += SPAN_DANGER("The plant is dead.") else if(health <= (seed.get_trait(TRAIT_ENDURANCE)/ 2)) - . += "\nThe plant looks unhealthy." + . += "The plant looks [SPAN_DANGER("unhealthy")]." if(mechanical) var/turf/T = loc @@ -612,7 +613,7 @@ var/light_available = T.get_lumcount() * 5 light_string = "a light level of [light_available] lumens" - . += "\nThe tray's sensor suite is reporting [light_string] and a temperature of [environment.temperature]K." + . += "The tray's sensor suite is reporting [light_string] and a temperature of [environment.temperature]K." /obj/machinery/portable_atmospherics/hydroponics/verb/close_lid_verb() set name = "Toggle Tray Lid" diff --git a/code/modules/hydroponics/trays/tray_update_icons.dm b/code/modules/hydroponics/trays/tray_update_icons.dm index b3502c559a3..4d6b55436af 100644 --- a/code/modules/hydroponics/trays/tray_update_icons.dm +++ b/code/modules/hydroponics/trays/tray_update_icons.dm @@ -75,7 +75,7 @@ new_overlays += plant_overlay if(harvest && overlay_stage == seed.growth_stages) - ikey = "product-[seed.get_trait(TRAIT_PRODUCT_ICON)]" + (seed.customsprite ? "" : "-[seed.get_trait(TRAIT_PLANT_COLOUR)]") + ikey = "product-[seed.get_trait(TRAIT_PRODUCT_ICON)]" + (seed.customsprite ? "" : "-[seed.get_trait(TRAIT_PRODUCT_COLOUR)]") var/image/harvest_overlay = SSplants.plant_icon_cache[ikey] if(!harvest_overlay) diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index c3e425e1ce4..dd7453ae5ee 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -74,8 +74,9 @@ /obj/item/device/electronic_assembly/GetAccess() return access_card ? access_card.GetAccess() : list() -/obj/item/device/electronic_assembly/_examine_text(mob/user) +/obj/item/device/electronic_assembly/examine(mob/user, infix) . = ..() + if(can_anchor) to_chat(user, SPAN_NOTICE("The anchoring bolts [anchored ? "are" : "can be"] wrenched in place and the maintenance panel [opened ? "can be" : "is"] screwed in place.")) else @@ -86,6 +87,7 @@ for(var/obj/item/integrated_circuit/I in assembly_components) I.external_examine(user) + interact(user) /obj/item/device/electronic_assembly/proc/check_interactivity(mob/user, datum/topic = GLOB.physical_state) @@ -650,9 +652,6 @@ /obj/item/device/electronic_assembly/proc/welder_act(mob/living/user, obj/item/weldingtool/I) var/type_to_use - if(!I.isOn()) - return - if(!sealed) type_to_use = input("What would you like to do?","[src] type setting") as null|anything in list("repair", "seal") else @@ -670,10 +669,12 @@ if("seal") if(!opened) - if(I.remove_fuel(3,user)) - sealed = TRUE - to_chat(user,SPAN_NOTICE("You seal the assembly, making it impossible to be opened.")) - return TRUE + if(!I.use_tool(src, user, amount = 3)) + return + + sealed = TRUE + to_chat(user,SPAN_NOTICE("You seal the assembly, making it impossible to be opened.")) + return TRUE else to_chat(user,SPAN_NOTICE("You need to close the assembly first before sealing it indefinitely!")) @@ -681,14 +682,16 @@ if("unseal") to_chat(user,SPAN_NOTICE("You start unsealing the assembly carefully...")) - if(I.remove_fuel(3,user)) - for(var/obj/item/integrated_circuit/IC in assembly_components) - if(prob(50)) - IC.disconnect_all() + if(!I.use_tool(src, user, amount = 3)) + return - to_chat(user,SPAN_NOTICE("You unsealed the assembly.")) - sealed = FALSE - return TRUE + for(var/obj/item/integrated_circuit/IC in assembly_components) + if(prob(50)) + IC.disconnect_all() + + to_chat(user,SPAN_NOTICE("You unsealed the assembly.")) + sealed = FALSE + return TRUE /obj/item/device/electronic_assembly/proc/default_unfasten_wrench(mob/user, obj/item/I, time = 20) if(isWrench(I) && istype(loc, /turf) && can_anchor) diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm index c82e0f8a95f..2e3b5427429 100644 --- a/code/modules/integrated_electronics/core/integrated_circuit.dm +++ b/code/modules/integrated_electronics/core/integrated_circuit.dm @@ -38,7 +38,7 @@ a creative player the means to solve many problems. Circuits are held inside an electronic assembly, and are wired using special tools. */ -/obj/item/integrated_circuit/_examine_text(mob/user) +/obj/item/integrated_circuit/examine(mob/user, infix) interact(user) external_examine(user) . = ..() diff --git a/code/modules/integrated_electronics/core/printer.dm b/code/modules/integrated_electronics/core/printer.dm index 7e58ffb589a..ce3d3f9c694 100644 --- a/code/modules/integrated_electronics/core/printer.dm +++ b/code/modules/integrated_electronics/core/printer.dm @@ -18,6 +18,10 @@ var/metal_max = 25 * SHEET_MATERIAL_AMOUNT var/weakref/idlock = null +/obj/item/device/integrated_circuit_printer/Initialize() + . = ..() + add_think_ctx("print_context", CALLBACK(src, nameof(.proc/print_program)), 0) + /obj/item/device/integrated_circuit_printer/proc/check_interactivity(mob/user) return CanUseTopic(user) && (get_dist(src, user) < 2) @@ -363,7 +367,7 @@ cloning = TRUE to_chat(usr, SPAN_NOTICE("You begin printing a custom assembly. This will take approximately [round(cloning_time/10)] seconds. You can still print off normal parts during this time.")) playsound(src, 'sound/items/poster_being_created.ogg', 50, TRUE) - addtimer(CALLBACK(src, nameof(.proc/print_program), usr), cloning_time) + set_next_think_ctx("print_context", world.time + cloning_time, usr) if("cancel") if(!cloning || !program) diff --git a/code/modules/integrated_electronics/core/special_pins/color_pin.dm b/code/modules/integrated_electronics/core/special_pins/color_pin.dm index f0932cbad13..0c0af5bf3b5 100644 --- a/code/modules/integrated_electronics/core/special_pins/color_pin.dm +++ b/code/modules/integrated_electronics/core/special_pins/color_pin.dm @@ -3,7 +3,7 @@ name = "color pin" /datum/integrated_io/color/ask_for_pin_data(mob/user) - var/new_data = input("Please select a color.","[src] color writing") as color|null + var/new_data = tgui_color_picker("Please select a color.","[src] color writing") if(holder.check_interactivity(user) ) to_chat(user, SPAN("notice", "You input a new color into the pin.")) write_data_to_pin(new_data) diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index d2f48e6d171..7c0e9b60465 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -141,7 +141,7 @@ radial_menu_icon = "colorpad" /obj/item/integrated_circuit/input/colorpad/ask_for_input(mob/user) - var/new_color = input(user, "Enter a color, please.", "Color", "#ffffff") as color|null + var/new_color = tgui_color_picker(user, "Enter a color, please.", "Color", "#ffffff") if(new_color && user.IsAdvancedToolUser()) set_pin_data(IC_OUTPUT, 1, new_color) push_data() @@ -152,7 +152,7 @@ /obj/item/integrated_circuit/input/colorpad/OnICTopic(href_list, mob/user) if(href_list["enter_color"]) - var/new_color = input(user, "Enter a color, please.", "Color", "#ffffff") as color|null + var/new_color = tgui_color_picker(user, "Enter a color, please.", "Color", "#ffffff") if(new_color && user.IsAdvancedToolUser()) set_pin_data(IC_OUTPUT, 1, new_color) push_data() @@ -355,7 +355,7 @@ if(istype(H, /mob/living/carbon/human)) var/mob/living/carbon/human/M = H - var/msg = M._examine_text() + var/msg = M.run_examinate(src) if(msg) set_pin_data(IC_OUTPUT, 2, msg) diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index 4cf6b3d6334..965e92711ed 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -87,7 +87,7 @@ else return ..() -/obj/item/integrated_circuit/manipulation/grenade/proc/before_activation_action() +/obj/item/integrated_circuit/manipulation/grenade/think() grenade_activated = FALSE detach_grenade() @@ -99,8 +99,8 @@ dt = Clamp(detonation_time.data, 1, 12)*10 else dt = 15 - addtimer(CALLBACK(attached_grenade, nameof(/obj/item/grenade.proc/activate)), dt) - addtimer(CALLBACK(src, nameof(.proc/before_activation_action)), dt - 1) + attached_grenade.set_next_think_ctx("think_activate", world.time + dt) + set_next_think(world.time + dt - 1) grenade_activated = TRUE var/atom/holder = loc var/atom/A = get_object() diff --git a/code/modules/integrated_electronics/subtypes/memory.dm b/code/modules/integrated_electronics/subtypes/memory.dm index 90d6416aebb..d26946dca70 100644 --- a/code/modules/integrated_electronics/subtypes/memory.dm +++ b/code/modules/integrated_electronics/subtypes/memory.dm @@ -18,8 +18,9 @@ complexity = number_of_pins . = ..() -/obj/item/integrated_circuit/memory/_examine_text(mob/user) +/obj/item/integrated_circuit/memory/examine(mob/user, infix) . = ..() + var/i for(i = 1, i <= outputs.len, i++) var/datum/integrated_io/O = outputs[i] @@ -30,7 +31,7 @@ data = "[d]" else if(!isnull(O.data)) data = O.data - to_chat(user, "\The [src] has [data] saved to address [i].") + . += "\The [src] has [data] saved to address [i]." /obj/item/integrated_circuit/memory/do_work() for(var/i = 1 to inputs.len) diff --git a/code/modules/integrated_electronics/subtypes/mining.dm b/code/modules/integrated_electronics/subtypes/mining.dm index 5e1e9bc4b9d..d5897f387a5 100644 --- a/code/modules/integrated_electronics/subtypes/mining.dm +++ b/code/modules/integrated_electronics/subtypes/mining.dm @@ -150,8 +150,10 @@ usedx = assembly.loc.x usedy = assembly.loc.y playsound(src, 'sound/items/Ratchet.ogg',50,1) - addtimer(CALLBACK(src, nameof(.proc/drill)), 50) + set_next_think(world.time + 5 SECONDS) +/obj/item/integrated_circuit/mining/mining_drill/think() + drill() /obj/item/integrated_circuit/mining/mining_drill/proc/drill() busy = FALSE diff --git a/code/modules/integrated_electronics/subtypes/reagents.dm b/code/modules/integrated_electronics/subtypes/reagents.dm index 5e846d9a86a..6c41a7b4270 100644 --- a/code/modules/integrated_electronics/subtypes/reagents.dm +++ b/code/modules/integrated_electronics/subtypes/reagents.dm @@ -104,6 +104,11 @@ var/transfer_amount = 10 var/busy = FALSE +/obj/item/integrated_circuit/reagent/injector/Initialize() + . = ..() + add_think_ctx("inject_after", CALLBACK(src, nameof(.proc/inject_after)), 0) + add_think_ctx("draw_after", CALLBACK(src, nameof(.proc/draw_after)), 0) + /obj/item/integrated_circuit/reagent/injector/on_reagent_change(changetype) push_vol() @@ -188,7 +193,7 @@ L.visible_message(SPAN("danger", "[acting_object] is trying to inject [L]!"), \ SPAN("danger", "[acting_object] is trying to inject you!")) busy = TRUE - addtimer(CALLBACK(src, nameof(.proc/inject_after), weakref(L)), injection_status * 3 SECONDS) + set_next_think_ctx("inject_after", world.time + injection_status * 3 SECONDS, weakref(L)) return else if(!AM.is_open_container()) @@ -215,7 +220,7 @@ C.visible_message(SPAN("danger", "[acting_object] takes a blood sample from [C]!"), \ SPAN("danger", "[acting_object] takes a blood sample from you!")) busy = TRUE - addtimer(CALLBACK(src, nameof(.proc/draw_after), weakref(C), tramount), injection_status * 3 SECONDS) + set_next_think_ctx("draw_after", world.time + injection_status * 3 SECONDS, weakref(C), tramount) return else diff --git a/code/modules/integrated_electronics/subtypes/time.dm b/code/modules/integrated_electronics/subtypes/time.dm index b0e185b0576..f82b125a2a8 100644 --- a/code/modules/integrated_electronics/subtypes/time.dm +++ b/code/modules/integrated_electronics/subtypes/time.dm @@ -16,8 +16,12 @@ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH power_draw_per_use = 2 +/obj/item/integrated_circuit/time/delay/Initialize() + . = ..() + add_think_ctx("activate_pin", CALLBACK(src, nameof(.proc/activate_pin)), 0) + /obj/item/integrated_circuit/time/delay/do_work() - addtimer(CALLBACK(src, nameof(.proc/activate_pin), 2), delay) + set_next_think_ctx("activate_pin", world.time + delay, 2) /obj/item/integrated_circuit/time/delay/five_sec name = "five-sec delay circuit" diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index aea811de460..700fcbae046 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -76,6 +76,10 @@ obj_flags = OBJ_FLAG_ANCHORABLE var/obj/item/print_object +/obj/machinery/bookbinder/Initialize() + . = ..() + add_think_ctx("handle_paper", CALLBACK(src, nameof(.proc/handle_paper)), 0) + /obj/machinery/bookbinder/attack_hand(mob/user) if(print_object) src.visible_message("[src] whirs as it spitting out \the [print_object].") @@ -96,7 +100,7 @@ if((istype(O, /obj/item/paper) || istype(O, /obj/item/book/wiki/template)) && user.drop(O, src)) user.visible_message("[user] loads some paper into [src].", "You load some paper into [src].") visible_message("[src] begins to hum as it warms up its printing drums.") - addtimer(CALLBACK(src, nameof(.proc/handle_paper), O), rand(200,400)) + set_next_think_ctx("handle_paper", world.time + rand(20 SECONDS, 40 SECONDS), O) else if(istype(O, /obj/item/canvas) && user.drop(O, src)) print_object = O user.visible_message("[user] loads \the [O] into [src].", "You load \the [O] into [src].") diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index db412969853..f3f63ffe0c8 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -90,7 +90,7 @@ if(loc != old_loc) {\ }\ } -/atom/movable/Move() +/atom/movable/Move(newloc, direct) LIGHT_MOVE_UPDATE /atom/movable/forceMove() diff --git a/code/modules/maps/map_template.dm b/code/modules/maps/map_template.dm index 90a950c28dc..cdc9ef95f07 100644 --- a/code/modules/maps/map_template.dm +++ b/code/modules/maps/map_template.dm @@ -9,6 +9,10 @@ var/base_turf_for_zs = null var/accessibility_weight = 0 var/template_flags = TEMPLATE_FLAG_ALLOW_DUPLICATES + /// Whether this template will put initialized atoms in `created_atoms`. + var/returns_created_atoms = FALSE + /// List of all atoms created during template loading, use with `returns_created_atoms`. + var/list/atom/created_atoms /datum/map_template/New(list/paths = null, rename = null) if(paths && !islist(paths)) @@ -54,7 +58,10 @@ if(istype(A, /obj/machinery)) machines += A - SSatoms.InitializeAtoms(atoms) + if(returns_created_atoms) + created_atoms = SSatoms.InitializeAtoms(atoms) + else + SSatoms.InitializeAtoms(atoms) SSmachines.setup_template_powernets(cables) SSair.setup_template_machinery(atmos_machines) @@ -100,21 +107,27 @@ return locate(world.maxx/2, world.maxy/2, world.maxz) -/datum/map_template/proc/load(turf/T, centered=FALSE, clear_contents=FALSE) +/datum/map_template/proc/load(turf/T, centered = FALSE, clear_contents = 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) return + if(T.y+height > world.maxy) return var/list/atoms_to_initialise = list() - for (var/mappath in mappaths) - var/datum/map_load_metadata/M = maploader.load_map(file(mappath), T.x, T.y, T.z, cropMap=TRUE, clear_contents= clear_contents) - if (M) + var/list/turf_blacklist = list() + update_blacklist(T, centered, turf_blacklist) + + for(var/mappath in mappaths) + var/datum/map_load_metadata/M = maploader.load_map(file(mappath), T.x, T.y, T.z, cropMap=TRUE, clear_contents= clear_contents, turf_blacklist=turf_blacklist) + if(M) atoms_to_initialise += M.atoms_to_initialise else return FALSE @@ -128,6 +141,9 @@ return TRUE +/datum/map_template/proc/update_blacklist(turf/source_turf, centered = FALSE, list/turf_blacklist) + return + /datum/map_template/proc/extend_bounds_if_needed(list/existing_bounds, list/new_bounds) var/list/bounds_to_combine = existing_bounds.Copy() for (var/min_bound in list(MAP_MINX, MAP_MINY, MAP_MINZ)) diff --git a/code/modules/maps/reader.dm b/code/modules/maps/reader.dm index df0338a3289..fe703dd6dc4 100644 --- a/code/modules/maps/reader.dm +++ b/code/modules/maps/reader.dm @@ -33,21 +33,21 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) * 2) Read the map line by line, parsing the result (using parse_grid) * */ -/dmm_suite/load_map(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, clear_contents, lower_crop_x, lower_crop_y, upper_crop_x, upper_crop_y) +/dmm_suite/load_map(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, clear_contents, lower_crop_x, lower_crop_y, upper_crop_x, upper_crop_y, turf_blacklist) //How I wish for RAII Master.StartLoadingMap() space_key = null #ifdef TESTING turfsSkipped = 0 #endif - . = load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, clear_contents, lower_crop_x, upper_crop_x, lower_crop_y, upper_crop_y) + . = load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, clear_contents, lower_crop_x, upper_crop_x, lower_crop_y, upper_crop_y, turf_blacklist) #ifdef TESTING if(turfsSkipped) testing("Skipped loading [turfsSkipped] default turfs") #endif Master.StopLoadingMap() -/dmm_suite/proc/load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, clear_contents, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY) +/dmm_suite/proc/load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, clear_contents, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, turf_blacklist) var/tfile = dmm_file//the map file we're creating if(isfile(tfile)) tfile = file2text(tfile) @@ -169,7 +169,7 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) if(!no_afterchange || (model_key != space_key)) if(!grid_models[model_key]) throw EXCEPTION("Undefined model key in DMM.") - var/datum/grid_load_metadata/M = parse_grid(grid_models[model_key], model_key, xcrd, ycrd, zcrd, no_changeturf || zexpansion, clear_contents) + var/datum/grid_load_metadata/M = parse_grid(grid_models[model_key], model_key, xcrd, ycrd, zcrd, no_changeturf || zexpansion, clear_contents, turf_blacklist) if (M) atoms_to_initialise += M.atoms_to_initialise atoms_to_delete += M.atoms_to_delete @@ -233,7 +233,7 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) /obj/structure, ) -/dmm_suite/proc/parse_grid(model as text, model_key as text, xcrd as num,ycrd as num,zcrd as num, no_changeturf as num, clear_contents as num) +/dmm_suite/proc/parse_grid(model as text, model_key as text, xcrd as num,ycrd as num,zcrd as num, no_changeturf as num, clear_contents as num, turf_blacklist) /*Method parse_grid() - Accepts a text string containing a comma separated list of type paths of the same construction as those contained in a .dmm file, and instantiates them. @@ -320,6 +320,9 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) //The next part of the code assumes there's ALWAYS an /area AND a /turf on a given tile var/turf/crds = locate(xcrd,ycrd,zcrd) + if(turf_blacklist?[crds]) + return + var/is_not_noop = FALSE var/atoms_to_delete = list() diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index 0b12d2f243a..fcda78d13bc 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -69,7 +69,7 @@ recipes += new /datum/stack_recipe("machine frame", /obj/machinery/constructable_frame/machine_frame, 5, time = 25, one_per_turf = 1, on_floor = 1) recipes += new /datum/stack_recipe("vending frame", /obj/machinery/vending_frame, 5, time = 25, one_per_turf = 1, on_floor = 1) recipes += new /datum/stack_recipe("turret frame", /obj/machinery/turret_frame, 5, time = 25, one_per_turf = 1, on_floor = 1) - recipes += new /datum/stack_recipe("turret frame", /obj/structure/turret_control_frame, 5, time = 25, one_per_turf = 1, on_floor = 1) + recipes += new /datum/stack_recipe("turret control frame", /obj/structure/turret_control_frame, 5, time = 25, one_per_turf = 1, on_floor = 1) recipes += new /datum/stack_recipe("shutters assembly", /obj/structure/secure_door_assembly/shutters, 10, time = 50, one_per_turf = 1, on_floor = 1) recipes += new /datum/stack_recipe_list("airlock assemblies", list( \ new /datum/stack_recipe("standard airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ @@ -155,12 +155,14 @@ recipes += new /datum/stack_recipe("large box", /obj/item/storage/box/large, 2) recipes += new /datum/stack_recipe("donut box", /obj/item/storage/box/donut/empty) recipes += new /datum/stack_recipe("egg box", /obj/item/storage/fancy/egg_box/empty) + recipes += new /datum/stack_recipe("condiments display", /obj/structure/coffee_condi_display) recipes += new /datum/stack_recipe("light tubes box", /obj/item/storage/box/lights/tubes/empty) recipes += new /datum/stack_recipe("light bulbs box", /obj/item/storage/box/lights/bulbs/empty) recipes += new /datum/stack_recipe("mouse traps box", /obj/item/storage/box/mousetraps/empty) recipes += new /datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3) recipes += new /datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg) recipes += new /datum/stack_recipe("pizza box", /obj/item/pizzabox) + recipes += new /datum/stack_recipe("takeaway cups", /obj/item/reagent_containers/vessel/takeaway, 1, 4) recipes += new /datum/stack_recipe_list("folders",list( \ new /datum/stack_recipe("blue folder", /obj/item/folder/blue), \ new /datum/stack_recipe("grey folder", /obj/item/folder), \ diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index e119e6dd46b..3386c447695 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -1,5 +1,6 @@ // Stacked resources. They use a material datum for a lot of inherited values. /obj/item/stack/material + item_state = "sheet-metal" // Placeholder, since we don't have icons for all the sheets yet. Better than invisible icons, I suppose ~ToTh force = 5.0 throwforce = 5 w_class = ITEM_SIZE_NORMAL @@ -101,8 +102,9 @@ /obj/item/stack/material/iron name = "iron" icon_state = "silver" + item_state = "sheet-silver" default_type = MATERIAL_IRON - apply_colour = 1 + apply_colour = TRUE /obj/item/stack/material/sandstone name = "sandstone brick" @@ -126,6 +128,7 @@ /obj/item/stack/material/diamond name = "diamond" icon_state = "diamond" + item_state = "sheet-diamond" default_type = MATERIAL_DIAMOND /obj/item/stack/material/diamond/ten @@ -134,6 +137,7 @@ /obj/item/stack/material/uranium name = MATERIAL_URANIUM icon_state = "uranium" + item_state = "sheet-uranium" default_type = MATERIAL_URANIUM /obj/item/stack/material/uranium/ten @@ -142,6 +146,7 @@ /obj/item/stack/material/plasma name = "solid plasma" icon_state = "solid_plasma" + item_state = "sheet-plasma" default_type = MATERIAL_PLASMA /obj/item/stack/material/plasma/ten @@ -153,6 +158,7 @@ /obj/item/stack/material/plastic name = "plastic" icon_state = "plastic" + item_state = "sheet-plastic" default_type = MATERIAL_PLASTIC /obj/item/stack/material/plastic/ten @@ -164,6 +170,7 @@ /obj/item/stack/material/gold name = "gold" icon_state = "gold" + item_state = "sheet-gold" default_type = MATERIAL_GOLD /obj/item/stack/material/gold/ten @@ -172,6 +179,7 @@ /obj/item/stack/material/silver name = "silver" icon_state = "silver" + item_state = "sheet-silver" default_type = MATERIAL_SILVER /obj/item/stack/material/silver/ten @@ -181,6 +189,7 @@ /obj/item/stack/material/platinum name = "platinum" icon_state = "adamantine" + item_state = "sheet-platinum" default_type = MATERIAL_PLATINUM /obj/item/stack/material/platinum/ten @@ -190,17 +199,26 @@ /obj/item/stack/material/mhydrogen name = "metallic hydrogen" icon_state = "hydrogen" + item_state = "sheet-hydrogen" default_type = MATERIAL_HYDROGEN /obj/item/stack/material/mhydrogen/ten amount = 10 +//God tier resource, cargo can sell it. +/obj/item/stack/material/adamantine + name = "adamantine" + icon_state = "adamantine" + default_type = MATERIAL_ADAMANTINE + apply_colour = TRUE + //Fuel for MRSPACMAN generator. /obj/item/stack/material/tritium name = "tritium" icon_state = "silver" + item_state = "sheet-silver" default_type = MATERIAL_TRITIUM - apply_colour = 1 + apply_colour = TRUE /obj/item/stack/material/tritium/ten amount = 10 @@ -211,8 +229,9 @@ /obj/item/stack/material/osmium name = "osmium" icon_state = "silver" + item_state = "sheet-silver" default_type = MATERIAL_OSMIUM - apply_colour = 1 + apply_colour = TRUE /obj/item/stack/material/osmium/ten amount = 10 @@ -220,9 +239,9 @@ /obj/item/stack/material/ocp name = "osmium-carbide plasteel" icon_state = "plasteel" - item_state = "sheet-metal" + item_state = "sheet-plasteel" default_type = MATERIAL_OSMIUM_CARBIDE_PLASTEEL - apply_colour = 1 + apply_colour = TRUE /obj/item/stack/material/ocp/ten amount = 10 @@ -234,8 +253,9 @@ /obj/item/stack/material/deuterium name = "deuterium" icon_state = "silver" + item_state = "sheet-silver" default_type = MATERIAL_DEUTERIUM - apply_colour = 1 + apply_colour = TRUE /obj/item/stack/material/deuterium/fifty amount = 50 @@ -243,6 +263,7 @@ /obj/item/stack/material/steel name = "steel" icon_state = "metal" + item_state = "sheet-metal" default_type = MATERIAL_STEEL /obj/item/stack/material/steel/ten @@ -254,7 +275,7 @@ /obj/item/stack/material/plasteel name = "plasteel" icon_state = "plasteel" - item_state = "sheet-metal" + item_state = "sheet-plasteel" default_type = MATERIAL_PLASTEEL /obj/item/stack/material/plasteel/ten @@ -266,9 +287,9 @@ /obj/item/stack/material/plasteel/titanium name = "titanium" icon_state = "metal" - item_state = "metal" + item_state = "sheet-titanium" default_type = MATERIAL_TITANIUM - apply_colour = 1 + apply_colour = TRUE /obj/item/stack/material/plasteel/titanium/ten amount = 10 @@ -279,6 +300,7 @@ /obj/item/stack/material/wood name = "wooden plank" icon_state = "wood" + item_state = "sheet-wood" default_type = MATERIAL_WOOD drop_sound = SFX_DROP_WOODEN pickup_sound = SFX_PICKUP_WOODEN @@ -292,6 +314,7 @@ /obj/item/stack/material/darkwood name = "darkwood plank" icon_state = "darkwood" + item_state = "sheet-wood" default_type = MATERIAL_DARKWOOD /obj/item/stack/material/darkwood/ten @@ -308,6 +331,7 @@ /obj/item/stack/material/cardboard name = "cardboard" icon_state = "card" + item_state = "sheet-card" default_type = MATERIAL_CARDBOARD /obj/item/stack/material/cardboard/ten @@ -320,6 +344,7 @@ name = "leather" desc = "The by-product of mob grinding." icon_state = "leather" + item_state = "clipboard" default_type = MATERIAL_LEATHER drop_sound = SFX_DROP_LEATHER @@ -328,6 +353,7 @@ /obj/item/stack/material/glass name = "glass" icon_state = "glass" + item_state = "sheet-glass" default_type = MATERIAL_GLASS drop_sound = SFX_DROP_GLASS pickup_sound = SFX_PICKUP_GLASS @@ -341,6 +367,7 @@ /obj/item/stack/material/glass/reinforced name = "reinforced glass" icon_state = "rglass" + item_state = "sheet-rglass" default_type = MATERIAL_REINFORCED_GLASS /obj/item/stack/material/glass/reinforced/ten @@ -354,6 +381,7 @@ desc = "This sheet is special plasma-glass alloy designed to withstand large temperatures." singular_name = "plass sheet" icon_state = "plass" + item_state = "sheet-plass" default_type = MATERIAL_PLASS /obj/item/stack/material/glass/plass/ten @@ -367,6 +395,7 @@ desc = "This sheet is special plasma-glass alloy designed to withstand large temperatures. It is reinforced with few rods." singular_name = "reinforced plass sheet" icon_state = "rplass" + item_state = "sheet-rplass" default_type = MATERIAL_REINFORCED_PLASS /obj/item/stack/material/glass/rplass/ten @@ -379,6 +408,7 @@ name = "tinted glass" singular_name = "tinted glass sheet" icon_state = "bglass" + item_state = "sheet-glass" default_type = MATERIAL_BLACK_GLASS /obj/item/stack/material/glass/black/ten @@ -391,6 +421,7 @@ name = "reinforced tinted glass" singular_name = "reinforced tinted glass sheet" icon_state = "rbglass" + item_state = "sheet-rglass" default_type = MATERIAL_REINFORCED_BLACK_GLASS /obj/item/stack/material/glass/rblack/ten diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 6601d8c8919..360a55f3815 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -743,6 +743,17 @@ var/list/name_to_material sheet_singular_name = "ingot" sheet_plural_name = "ingots" +/material/adamantine + name = MATERIAL_ADAMANTINE + stack_type = /obj/item/stack/material/adamantine + icon_colour = "#b2ffe8" + weight = 27 + resilience = 16 + reflectance = 20 + stack_origin_tech = list(TECH_MATERIAL = 6) + sheet_singular_name = "ingot" + sheet_plural_name = "ingots" + /material/iron name = MATERIAL_IRON stack_type = /obj/item/stack/material/iron diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index e7c80910162..521faa1936e 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -283,6 +283,7 @@ name = "mining drill brace" desc = "A machinery brace for an industrial drill. It looks easily two feet thick." icon_state = "mining_brace" + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION var/obj/machinery/mining/drill/connected /obj/machinery/mining/brace/New() @@ -291,6 +292,8 @@ component_parts = list() component_parts += new /obj/item/circuitboard/miningdrillbrace(src) + AddElement(/datum/element/simple_rotation) + /obj/machinery/mining/brace/attackby(obj/item/W as obj, mob/user as mob) if(connected && connected.active) to_chat(user, "You can't work with the brace of a running drill!") @@ -347,17 +350,3 @@ connected.supports -= src connected.check_supports() connected = null - -/obj/machinery/mining/brace/verb/rotate() - set name = "Rotate" - set category = "Object" - set src in oview(1) - - if(usr.stat) return - - if (src.anchored) - to_chat(usr, "It is anchored in place!") - return 0 - - src.set_dir(turn(src.dir, 90)) - return 1 diff --git a/code/modules/mining/drilling/scanner.dm b/code/modules/mining/drilling/scanner.dm index 06ee11154c3..f4ba7b27572 100644 --- a/code/modules/mining/drilling/scanner.dm +++ b/code/modules/mining/drilling/scanner.dm @@ -10,9 +10,9 @@ matter = list(MATERIAL_STEEL = 150) var/survey_data = 0 -/obj/item/mining_scanner/_examine_text(mob/user) +/obj/item/mining_scanner/examine(mob/user, infix) . = ..() - . += "\nTiny indicator shows it holds [survey_data] Good Explorer Points worth of data." + . += "Tiny indicator shows it holds [survey_data] Good Explorer Points worth of data." /obj/item/mining_scanner/attack_self(mob/user as mob) to_chat(user, "You begin sweeping \the [src] about, scanning for metal deposits.") @@ -99,9 +99,9 @@ icon_state = "nucleardisk" var/data -/obj/item/disk/survey/_examine_text(mob/user) +/obj/item/disk/survey/examine(mob/user, infix) . = ..() - . += "\nTiny indicator shows it holds [data] Good Explorer Points of data." + . += "Tiny indicator shows it holds [data] Good Explorer Points of data." /obj/item/disk/survey/Value() if(data < 10000) diff --git a/code/modules/mining/machines/mineral.dm b/code/modules/mining/machines/mineral.dm index a8f7bda7c13..a4f6e024112 100644 --- a/code/modules/mining/machines/mineral.dm +++ b/code/modules/mining/machines/mineral.dm @@ -30,7 +30,7 @@ /obj/machinery/mineral/attackby(obj/item/W, mob/user) if(!(stat & POWEROFF)) - show_splash_text(user, "turn off first!") + show_splash_text(user, "turn off first!", "You have to turn \the [src] off first!") return if(default_deconstruction_screwdriver(user, W)) @@ -104,7 +104,7 @@ if(istype(hhelper)) qdel(hhelper) - show_splash_text(usr, "holo-projector enabled.") + show_splash_text(usr, "holo-projector enabled.", "You toggle the holo-projector!") holohelper = weakref(new holodir_helper_path(loc, src)) /obj/machinery/mineral/power_change() diff --git a/code/modules/mining/machines/processing.dm b/code/modules/mining/machines/processing.dm index 1cc5aa13ca5..32c44a456ca 100644 --- a/code/modules/mining/machines/processing.dm +++ b/code/modules/mining/machines/processing.dm @@ -39,7 +39,7 @@ if(response == "Yes" && Adjacent(user)) var/obj/machinery/mineral/processing_unit/p_unit = locate_unit(/obj/machinery/mineral/processing_unit) if(!p_unit) - show_splash_text(user, "no ore processing unit found!") + show_splash_text(user, "no ore processing unit found!", SPAN("warning", "\The [src] has failed to detect any ore stacking units!")) return p_unit.console_ref = weakref(src) diff --git a/code/modules/mining/machines/stacking.dm b/code/modules/mining/machines/stacking.dm index 8e496ccc107..8f2d59fe883 100644 --- a/code/modules/mining/machines/stacking.dm +++ b/code/modules/mining/machines/stacking.dm @@ -32,7 +32,7 @@ if(response == "Yes" && Adjacent(user)) var/obj/machinery/mineral/stacking_machine/s_machine = locate_unit(/obj/machinery/mineral/stacking_machine) if(!s_machine) - show_splash_text(user, "no ore stacking units found!") + show_splash_text(user, "no ore stacking units found!", SPAN("warning", "\The [src] has failed to detect any ore stacking units!")) return machine_ref = weakref(s_machine) @@ -137,6 +137,9 @@ unload_item(incoming_stack.type, stack_amt) /obj/machinery/mineral/stacking_machine/unload_item(type, amount) + if(amount <= 0) + return + var/obj/item/stack/material/out = new type() out.amount = amount machine_storage[type] -= amount diff --git a/code/modules/mining/machines/unloading.dm b/code/modules/mining/machines/unloading.dm index 42b5ebb2098..a9f5c63f33f 100644 --- a/code/modules/mining/machines/unloading.dm +++ b/code/modules/mining/machines/unloading.dm @@ -38,7 +38,7 @@ return toggle() - show_splash_text(user, "you toggle \the [src] [!(stat & POWEROFF) ? "on" : "off"].") + show_splash_text(user, "you toggle \the [src] [!(stat & POWEROFF) ? "on" : "off"].", "You toggle \the [src] [!(stat & POWEROFF) ? "on" : "off"].") /obj/machinery/mineral/unloading_machine/attackby(obj/item/W, mob/user) ..() diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 23545b9f7fc..0a18b03acaf 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -159,12 +159,14 @@ mod_handy = 1.2 mod_weight = 2.0 mod_reach = 1.5 + improper_held_icon = TRUE else wielded = FALSE force = 17.5 mod_weight = 1.5 mod_reach = 1.0 mod_handy = 0.4 + improper_held_icon = FALSE update_icon() ..() @@ -443,12 +445,13 @@ if(!malfunctioning) malfunctioning = TRUE -/obj/item/lazarus_injector/_examine_text(mob/user) +/obj/item/lazarus_injector/examine(mob/user, infix) . = ..() + if(!loaded) - . += "\n[src] is empty." + . += SPAN_INFO("[src] is empty.") if(malfunctioning || emagged) - . += "\nThe display on [src] seems to be flickering." + . += SPAN_INFO("The display on [src] seems to be flickering.") /**********************Point Transfer Card**********************/ @@ -469,9 +472,9 @@ to_chat(user, "There's no points left on [src].") ..() -/obj/item/card/mining_point_card/_examine_text(mob/user) +/obj/item/card/mining_point_card/examine(mob/user, infix) . = ..() - . += "\nThere's [points] point\s on the card." + . += "There's [points] point\s on the card." /**********************Resonator**********************/ @@ -542,8 +545,8 @@ var/creator var/obj/item/resonator/res -/obj/effect/resonance/New(loc, set_creator, timetoburst, set_resonator) - ..() +/obj/effect/resonance/Initialize(mapload, loc, set_creator, timetoburst, set_resonator) + . = ..() creator = set_creator res = set_resonator var/turf/proj_turf = get_turf(src) @@ -555,7 +558,7 @@ name = "strong resonance field" resonance_damage = 30 - addtimer(CALLBACK(src, nameof(.proc/burst), loc), timetoburst) + add_think_ctx("burst_context", CALLBACK(src, nameof(.proc/burst)), world.time + timetoburst, loc) /obj/effect/resonance/Destroy() if(res) @@ -652,6 +655,7 @@ desc = "A finely chiselled sculpting block, it is ready to be your canvas." icon = 'icons/obj/mining.dmi' icon_state = "sculpting_block" + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION density = 1 opacity = 1 anchored = 0 @@ -660,16 +664,10 @@ var/times_carved = 0 var/last_struck = 0 -/obj/structure/sculpting_block/verb/rotate() - set name = "Rotate" - set category = "Object" - set src in oview(1) +/obj/structure/sculpting_block/Initialize() + . = ..() - if (src.anchored || usr:stat) - to_chat(usr, "It is fastened to the floor!") - return 0 - src.set_dir(turn(src.dir, 90)) - return 1 + AddElement(/datum/element/simple_rotation) /obj/structure/sculpting_block/attackby(obj/item/C as obj, mob/user as mob) diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 1f23dc4cab2..3c51904f43a 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -40,7 +40,7 @@ else stored_ore[O.name] = 1 -/obj/structure/ore_box/_examine_text(mob/user) +/obj/structure/ore_box/examine(mob/user, infix) . = ..() // Borgs can now check contents too. @@ -53,18 +53,16 @@ add_fingerprint(user) if(!contents.len) - . += "\nIt is empty." + . += "It is empty." return if(world.time > last_update + 10) update_ore_count() last_update = world.time - . += "\nIt holds:" + . += "It holds:" for(var/ore in stored_ore) - . += "\n- [stored_ore[ore]] [ore]" - return - + . += "- [stored_ore[ore]] [ore]" /obj/structure/ore_box/verb/empty_box() set name = "Empty Ore Box" diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm index 1bfaa8e26a2..6899b53cdb1 100644 --- a/code/modules/mob/death.dm +++ b/code/modules/mob/death.dm @@ -21,9 +21,9 @@ if(do_gibs) gibs(loc, dna) - addtimer(CALLBACK(src, nameof(.proc/check_delete), animation), 15) + set_next_think_ctx("dust_delete", world.time + 1.5 SECONDS, animation) -/mob/proc/check_delete(atom/movable/fake_overlay/animation) +/mob/proc/dust_check_delete(atom/movable/fake_overlay/animation) if(animation) qdel(animation) if(src) @@ -50,8 +50,7 @@ new remains(loc) remove_from_dead_mob_list() - addtimer(CALLBACK(src, nameof(.proc/check_delete), animation), 15) - + set_next_think_ctx("dust_deletion", world.time + 1.5 SECONDS, animation) /mob/proc/death(gibbed, deathmessage = "seizes up and falls limp...", show_dead_message = "You have died.") diff --git a/code/modules/mob/grab/grab_object.dm b/code/modules/mob/grab/grab_object.dm index 0ec8f3071ca..8bf743832ae 100644 --- a/code/modules/mob/grab/grab_object.dm +++ b/code/modules/mob/grab/grab_object.dm @@ -39,13 +39,15 @@ SetName("[name] ([O.name])") + add_think_ctx("handle_resist", CALLBACK(src, nameof(.proc/handle_resist)), 0) + if(start_grab_name) current_grab = all_grabstates[start_grab_name] -/obj/item/grab/_examine_text(user) +/obj/item/grab/examine(mob/user, infix) . = ..() var/obj/item/O = get_targeted_organ() - . += "\nA grab on \the [affecting]'s [O.name]." + . += "A grab on \the [affecting]'s [O.name]." /obj/item/grab/think() current_grab.process(src) diff --git a/code/modules/mob/grab/normal/grab_normal.dm b/code/modules/mob/grab/normal/grab_normal.dm index 8fcf9c237af..5a647878cae 100644 --- a/code/modules/mob/grab/normal/grab_normal.dm +++ b/code/modules/mob/grab/normal/grab_normal.dm @@ -25,6 +25,11 @@ if(!(affecting.a_intent == I_HELP)) upgrade(TRUE) +/// For when we start choking 'em straight away +/obj/item/grab/normal/quickchoke + type_name = GRAB_QUICKCHOKE + start_grab_name = NORM_KILL + /datum/grab/normal type_name = GRAB_NORMAL diff --git a/code/modules/mob/grab/normal/norm_kill.dm b/code/modules/mob/grab/normal/norm_kill.dm index 173fd6f84af..1e22c475678 100644 --- a/code/modules/mob/grab/normal/norm_kill.dm +++ b/code/modules/mob/grab/normal/norm_kill.dm @@ -33,7 +33,11 @@ affecting.Weaken(3) affecting.Stun(2) - affecting.adjustOxyLoss(1) + if((MUTATION_HULK in G.assailant.mutations) || (MUTATION_STRONG in G.assailant.mutations)) + affecting.adjustOxyLoss(3) + affecting.Stun(2) + else + affecting.adjustOxyLoss(1) affecting.apply_effect(STUTTER, 5) //It will hamper your voice, being choked and all. affecting.losebreath = max(affecting.losebreath + 2, 3) diff --git a/code/modules/mob/grab/normal/norm_struggle.dm b/code/modules/mob/grab/normal/norm_struggle.dm index 9535f24bf06..8f5273cd165 100644 --- a/code/modules/mob/grab/normal/norm_struggle.dm +++ b/code/modules/mob/grab/normal/norm_struggle.dm @@ -43,7 +43,7 @@ else affecting.visible_message("[affecting] struggles against [assailant]!") G.done_struggle = FALSE - addtimer(CALLBACK(G, nameof(.proc/handle_resist)), 1 SECOND) + G.set_next_think_ctx("handle_resist", 1 SECOND) resolve_struggle(G) /datum/grab/normal/struggle/proc/resolve_struggle(obj/item/grab/G) diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index 5528ea440d1..c936f5bcec2 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -29,11 +29,11 @@ return //non-verbal languages are garbled if you can't see the speaker. Yes, this includes if they are inside a closet. - if (language?.flags & NONVERBAL) + if (language?.language_flags & NONVERBAL) if (!speaker || (src.sdisabilities & BLIND || src.blinded) || !near) message = stars(message) - if(!(language && (language.flags & INNATE))) // skip understanding checks for INNATE languages + if(!(language && (language.language_flags & INNATE))) // skip understanding checks for INNATE languages if(!say_understands(speaker,language)) if(istype(speaker,/mob/living/simple_animal)) var/understand_animals = FALSE @@ -82,7 +82,7 @@ message = "[message]" if(is_deaf()) - if(!language || !(language.flags & INNATE)) // INNATE is the flag for audible-emote-language, so we don't want to show an "x talks but you cannot hear them" message if it's set + if(!language || !(language.language_flags & INNATE)) // INNATE is the flag for audible-emote-language, so we don't want to show an "x talks but you cannot hear them" message if it's set if(speaker == src) to_chat(src, SPAN("warning", "You cannot hear yourself speak!")) else if(!is_blind()) @@ -149,11 +149,11 @@ var/track = null //non-verbal languages are garbled if you can't see the speaker. Yes, this includes if they are inside a closet. - if (language?.flags & NONVERBAL) + if (language?.language_flags & NONVERBAL) if (!speaker || (src.sdisabilities & BLIND || src.blinded) || !(speaker in view(src))) message = stars(message) - if(!(language?.flags & INNATE)) // skip understanding checks for INNATE languages + if(!(language?.language_flags & INNATE)) // skip understanding checks for INNATE languages if(!say_understands(speaker, language)) if(istype(speaker,/mob/living/simple_animal)) var/mob/living/simple_animal/S = speaker diff --git a/code/modules/mob/language/generic.dm b/code/modules/mob/language/generic.dm index 78a41a6a168..adfb3570c97 100644 --- a/code/modules/mob/language/generic.dm +++ b/code/modules/mob/language/generic.dm @@ -3,7 +3,7 @@ name = "Noise" desc = "Noises" key = "" - flags = RESTRICTED|NONGLOBAL|INNATE|NO_TALK_MSG|NO_STUTTER + language_flags = RESTRICTED|NONGLOBAL|INNATE|NO_TALK_MSG|NO_STUTTER /datum/language/noise/format_message(message, verb) return "[message]" @@ -25,7 +25,7 @@ speech_verb = "says" whisper_verb = "whispers" key = "0" - flags = RESTRICTED + language_flags = RESTRICTED syllables = list("blah","blah","blah","bleh","meh","neh","nah","wah") shorthand = "GC" @@ -72,5 +72,5 @@ signlang_verb = list("gestures") colour = "say_quote" key = "s" - flags = SIGNLANG | NO_STUTTER | NONVERBAL + language_flags = SIGNLANG | NO_STUTTER | NONVERBAL shorthand = "HS" diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index 53f95881d92..c7efb3a3305 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -14,7 +14,7 @@ var/signlang_verb = list("signs", "gestures") // list of emotes that might be displayed if this language has NONVERBAL or SIGNLANG flags var/colour = "body" // CSS style to use for strings in this language. var/key = "x" // Character used to speak in language eg. :o for Unathi. - var/flags = 0 // Various language flags. + var/language_flags = 0 // Various language flags. var/native // If set, non-native speakers will have trouble speaking. var/list/syllables // Used when scrambling text for a non-speaker. var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string @@ -166,7 +166,7 @@ if (only_species_language && speaking != all_languages[species_language]) return 0 - return (speaking.can_speak_special(src) && (universal_speak || (speaking && speaking.flags & INNATE) || (speaking in src.languages))) + return (speaking.can_speak_special(src) && (universal_speak || (speaking && speaking.language_flags & INNATE) || (speaking in src.languages))) /mob/proc/get_language_prefix() return get_prefix_key(/decl/prefix/language) @@ -174,59 +174,16 @@ /mob/proc/is_language_prefix(prefix) return prefix == get_prefix_key(/decl/prefix/language) -//TBD /mob/verb/check_languages() set name = "Check Known Languages" set category = "IC" set src = usr - var/dat = "Known Languages

" - - for(var/datum/language/L in languages) - if(!(L.flags & NONGLOBAL)) - dat += "[L.name]([L.shorthand]) ([get_language_prefix()][L.key])
[L.desc]

" - - show_browser(src, dat, "window=checklanguage") - return - -/mob/living/check_languages() - var/dat = "Known Languages

" - - if(default_language) - dat += "Current default language: [default_language] - reset

" - - for(var/datum/language/L in languages) - if(!(L.flags & NONGLOBAL)) - if(L == default_language) - dat += "[L.name]([L.shorthand]) ([get_language_prefix()][L.key]) - default - reset
[L.desc]

" - else if (can_speak(L)) - dat += "[L.name]([L.shorthand]) ([get_language_prefix()][L.key]) - set default
[L.desc]

" - else - dat += "[L.name]([L.shorthand]) ([get_language_prefix()][L.key]) - cannot speak!
[L.desc]

" - - show_browser(src, dat, "window=checklanguage") - -/mob/living/Topic(href, href_list) - if(href_list["default_lang"]) - if(href_list["default_lang"] == "reset") - - if (species_language) - set_default_language(all_languages[species_language]) - else - set_default_language(null) - - else - var/datum/language/L = locate(href_list["default_lang"]) - if(L && (L in languages)) - set_default_language(L) - check_languages() - return 1 - else - return ..() + language_menu.tgui_interact(usr) /proc/transfer_languages(mob/source, mob/target, except_flags) for(var/datum/language/L in source.languages) - if(L.flags & except_flags) + if(L.language_flags & except_flags) continue target.add_language(L.name) diff --git a/code/modules/mob/language/outsider.dm b/code/modules/mob/language/outsider.dm index 3579b23570c..1d85d9999df 100644 --- a/code/modules/mob/language/outsider.dm +++ b/code/modules/mob/language/outsider.dm @@ -6,7 +6,7 @@ ask_verb = "hisses" exclaim_verb = "hisses" key = "4" - flags = RESTRICTED + language_flags = RESTRICTED syllables = list("sss","sSs","SSS") machine_understands = 0 shorthand = "Xeno" @@ -19,7 +19,7 @@ exclaim_verb = "hisses" colour = "alien" key = "a" - flags = RESTRICTED | HIVEMIND + language_flags = RESTRICTED | HIVEMIND shorthand = "N/A" /datum/language/xenos/check_special_condition(mob/other) @@ -38,7 +38,7 @@ speech_verb = "says" colour = "changeling" key = "g" - flags = RESTRICTED | HIVEMIND + language_flags = RESTRICTED | HIVEMIND shorthand = "N/A" /datum/language/ling/broadcast(mob/living/speaker,message,speaker_mask) @@ -56,7 +56,7 @@ exclaim_verb = "sings" colour = "alien" key = "x" - flags = RESTRICTED | HIVEMIND + language_flags = RESTRICTED | HIVEMIND shorthand = "N/A" /datum/language/corticalborer/broadcast(mob/living/speaker,message,speaker_mask) @@ -81,7 +81,7 @@ exclaim_verb = "SHRIEKS" colour = "vox" key = "5" - flags = WHITELISTED + language_flags = WHITELISTED syllables = list("ti","ti","ti","hi","hi","ki","ki","ki","ki","ya","ta","ha","ka","ya","chi","cha","kah", \ "SKRE","AHK","EHK","RAWK","KRA","AAA","EEE","KI","II","KRI","KA") machine_understands = 0 @@ -98,7 +98,7 @@ exclaim_verb = "chants" colour = "cult" key = "f" - flags = RESTRICTED + language_flags = RESTRICTED space_chance = 100 syllables = list("ire","ego","nahlizet","certum","veri","jatkaa","mgar","balaq", "karazet", "geeri", \ "orkan", "allaq", "sas'so", "c'arta", "forbici", "tarem", "n'ath", "reth", "sh'yro", "eth", "d'raggathnor", \ @@ -118,5 +118,5 @@ exclaim_verb = "chants" colour = "cult" key = "y" - flags = RESTRICTED | HIVEMIND + language_flags = RESTRICTED | HIVEMIND shorthand = "N/A" diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm index 304544a3655..ec276a54af4 100644 --- a/code/modules/mob/language/station.dm +++ b/code/modules/mob/language/station.dm @@ -6,7 +6,7 @@ exclaim_verb = "rustles" colour = "soghun" key = "q" - flags = RESTRICTED + language_flags = RESTRICTED syllables = list("hs","zt","kr","st","sh") shorthand = "RT" @@ -19,7 +19,7 @@ name = LANGUAGE_ROOTGLOBAL desc = "A complex language known instinctively by Dionaea, 'spoken' by emitting modulated radio waves. This version uses low frequency waves for slow communication at long ranges." key = "w" - flags = RESTRICTED | HIVEMIND + language_flags = RESTRICTED | HIVEMIND shorthand = "N/A" /datum/language/unathi @@ -30,7 +30,7 @@ exclaim_verb = "roars" colour = "soghun" key = "o" - flags = WHITELISTED + language_flags = WHITELISTED space_chance = 40 syllables = list( "za", "az", "ze", "ez", "zi", "iz", "zo", "oz", "zu", "uz", "zs", "sz", @@ -51,7 +51,7 @@ exclaim_verb = "yowls" colour = "tajaran" key = "j" - flags = WHITELISTED + language_flags = WHITELISTED syllables = list("mrr","rr","tajr","kir","raj","kii","mir","kra","ahk","nal","vah","khaz","jri","ran","darr", "mi","jri","dynh","manq","rhe","zar","rrhaz","kal","chur","eech","thaa","dra","jurl","mah","sanu","dra","ii'r", "ka","aasi","far","wa","baq","ara","qara","zir","sam","mak","hrar","nja","rir","khan","jun","dar","rik","kah", @@ -75,7 +75,7 @@ exclaim_verb = "warbles" colour = "skrell" key = "k" - flags = WHITELISTED + language_flags = WHITELISTED syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix","*","!") shorthand = "SK" @@ -86,7 +86,7 @@ whisper_verb = "whispers" colour = "solcom" key = "1" - flags = WHITELISTED + language_flags = WHITELISTED shorthand = "Sol" //syllables are at the bottom of the file @@ -116,7 +116,7 @@ exclaim_verb = "whistles loudly" colour = "changeling" key = "6" - flags = NO_STUTTER + language_flags = NO_STUTTER syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz") space_chance = 10 shorthand = "EAL" @@ -196,7 +196,7 @@ signlang_verb = list("uses their tail to convey", "gestures with their tail", "gestures with their tail elaborately") colour = "tajaran" key = "l" - flags = WHITELISTED | SIGNLANG | NO_STUTTER | NONVERBAL + language_flags = WHITELISTED | SIGNLANG | NO_STUTTER | NONVERBAL shorthand = "TS" /datum/language/confederate diff --git a/code/modules/mob/language/synthetic.dm b/code/modules/mob/language/synthetic.dm index 76a59bc67a2..94cccf31799 100644 --- a/code/modules/mob/language/synthetic.dm +++ b/code/modules/mob/language/synthetic.dm @@ -6,7 +6,7 @@ ask_verb = "queries" exclaim_verb = "declares" key = "b" - flags = RESTRICTED | HIVEMIND + language_flags = RESTRICTED | HIVEMIND shorthand = "N/A" var/drone_only @@ -62,6 +62,6 @@ exclaim_verb = "transmits" colour = "say_quote" key = "d" - flags = RESTRICTED | HIVEMIND + language_flags = RESTRICTED | HIVEMIND drone_only = 1 shorthand = "N/A" diff --git a/code/modules/mob/living/autohiss.dm b/code/modules/mob/living/autohiss.dm index 538bc74365d..16a9736e5a5 100644 --- a/code/modules/mob/living/autohiss.dm +++ b/code/modules/mob/living/autohiss.dm @@ -24,7 +24,7 @@ /datum/species/proc/handle_autohiss(message, datum/language/lang) if(!hiss_letters) return message - if(lang.flags & NO_STUTTER) // Currently prevents EAL, Sign language, and emotes from autohissing + if(lang.language_flags & NO_STUTTER) // Currently prevents EAL, Sign language, and emotes from autohissing return message if(autohiss_exempt && (lang.name in autohiss_exempt)) return message diff --git a/code/modules/mob/living/bot/ed209bot.dm b/code/modules/mob/living/bot/ed209bot.dm index aea1241c37a..86ad573cd81 100644 --- a/code/modules/mob/living/bot/ed209bot.dm +++ b/code/modules/mob/living/bot/ed209bot.dm @@ -121,10 +121,12 @@ if(3) if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(WT.remove_fuel(0, user)) - build_step++ - SetName("shielded frame assembly") - to_chat(user, "You welded the vest to [src].") + if(!WT.use_tool(src, user, amount = 1)) + return + + build_step++ + SetName("shielded frame assembly") + to_chat(user, "You welded the vest to [src].") if(4) if(istype(W, /obj/item/clothing/head/helmet)) if(!user.drop(W)) diff --git a/code/modules/mob/living/bot/remotebot.dm b/code/modules/mob/living/bot/remotebot.dm index e1502d95c0d..3ae1495a574 100644 --- a/code/modules/mob/living/bot/remotebot.dm +++ b/code/modules/mob/living/bot/remotebot.dm @@ -14,10 +14,11 @@ . = ..() add_movespeed_modifier(/datum/movespeed_modifier/remotebot) -/mob/living/bot/remotebot/_examine_text(mob/user) +/mob/living/bot/remotebot/examinate(atom/to_axamine) . = ..() + if(holding) - . += "\nIt is holding \the \icon[holding] [holding]." + . += SPAN_NOTICE("It is holding \the \icon[holding] [holding].") /mob/living/bot/remotebot/explode() on = 0 diff --git a/code/modules/mob/living/bot/secbot.dm b/code/modules/mob/living/bot/secbot.dm index 49638c3bcc7..f7feb1fe5f5 100644 --- a/code/modules/mob/living/bot/secbot.dm +++ b/code/modules/mob/living/bot/secbot.dm @@ -111,7 +111,7 @@ handcuffs = new(src) - src.verbs |= secbot_verbs_default + grant_verb(src, secbot_verbs_default) hud_list[ID_HUD] = new /image/hud_overlay('icons/mob/huds/hud.dmi', src, "hudblank") hud_list[WANTED_HUD] = new /image/hud_overlay('icons/mob/huds/hud.dmi', src, "hudblank") @@ -372,10 +372,12 @@ ..() if(isWelder(O) && !build_step) var/obj/item/weldingtool/WT = O - if(WT.remove_fuel(0, user)) - build_step = 1 - AddOverlays(image('icons/obj/aibots.dmi', "hs_hole")) - to_chat(user, "You weld a hole in \the [src].") + if(!WT.use_tool(src, user, amount = 1)) + return + + build_step = 1 + AddOverlays(image('icons/obj/aibots.dmi', "hs_hole")) + to_chat(user, "You weld a hole in \the [src].") else if(isprox(O) && (build_step == 1)) if(!user.drop(O)) @@ -468,44 +470,6 @@ if(!client && prob(10)) to_chat(src, SPAN_NOTICE("...[pick(secbot_dreams)]...")) -/mob/living/bot/secbot/Stat() - ..() - if(statpanel("Status")) - stat(null,"-------------") - switch(emagged) - if(0) - stat(null,"Threat identifier status: Normal") - if(1) - stat(null,"Threat identifier status: Scrambled (DANGER)") - if(2) - stat(null,"Threat identifier status: ERROROROROROR-----") - if(idcheck) - stat(null,"Check for weapon authorization: Yes") - else - stat(null,"Check for weapon authorization: No") - - if(check_records) - stat(null,"Check security records:: Yes") - else - stat(null,"Check security records:: No") - - if(check_arrest) - stat(null,"Check arrest status: Yes") - else - stat(null,"Check arrest status: No") - - if(declare_arrests) - stat(null,"Report arrests: Yes") - else - stat(null,"Report arrests: No") - - if(will_patrol) - stat(null,"Auto patrol: On") - else - stat(null,"Auto patrol: Off") - - stat(null,"-------------") - //**///////////////////////////////////////////////////////////**// //**///////////////////////////BOOPSKY/////////////////////////**// //**///////////////////////////////////////////////////////////**// diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index f2a338f3055..4e7114ff462 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -25,8 +25,10 @@ time_of_birth = world.time - verbs += /mob/living/proc/ventcrawl - verbs += /mob/living/proc/hide + grant_verb(src, list( + /mob/living/proc/ventcrawl, + /mob/living/proc/hide, + )) instance_num = rand(1, 1000) name = "[initial(name)] ([instance_num])" @@ -43,9 +45,6 @@ /mob/living/carbon/alien/__unequip(obj/W) return -/mob/living/carbon/alien/Stat() - . = ..() - /mob/living/carbon/alien/restrained() return 0 diff --git a/code/modules/mob/living/carbon/alien/alien_attacks.dm b/code/modules/mob/living/carbon/alien/alien_attacks.dm index ab846f0aba2..ec2c816c8b2 100644 --- a/code/modules/mob/living/carbon/alien/alien_attacks.dm +++ b/code/modules/mob/living/carbon/alien/alien_attacks.dm @@ -15,7 +15,7 @@ else var/damage = rand(1, 9) if (prob(90)) - if (MUTATION_HULK in M.mutations) + if((MUTATION_HULK in M.mutations) || (MUTATION_STRONG in M.mutations)) damage += 5 spawn(0) Paralyse(1) diff --git a/code/modules/mob/living/carbon/alien/diona/diona.dm b/code/modules/mob/living/carbon/alien/diona/diona.dm index 182f9e52de4..5b1e3a4cc2a 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona.dm @@ -27,19 +27,20 @@ var/mob/living/carbon/alien/diona/next_nymph var/mob/living/carbon/alien/diona/last_nymph -/mob/living/carbon/alien/diona/_examine_text(mob/user) +/mob/living/carbon/alien/diona/examinate(atom/to_axamine) . = ..() + if(holding_item) - to_chat(user, SPAN("notice", "It is holding \icon[holding_item] \a [holding_item].")) + . += SPAN("notice", "It is holding \icon[holding_item] \a [holding_item].") if(hat) - to_chat(user, SPAN("notice", "It is wearing \icon[hat] \a [hat].")) + . += SPAN("notice", "It is wearing \icon[hat] \a [hat].") /mob/living/carbon/alien/diona/drop(obj/item/W, atom/Target = null, force = null, changing_slots) . = ..() if(W == hat) hat = null update_icons() - verbs -= /mob/living/carbon/alien/diona/proc/drop_hat + revoke_verb(src, /mob/living/carbon/alien/diona/proc/drop_hat) else if(W == holding_item) holding_item = null @@ -51,8 +52,11 @@ species = all_species[SPECIES_DIONA] add_language(LANGUAGE_ROOTGLOBAL) add_language(LANGUAGE_GALCOM) - verbs += /mob/living/carbon/alien/diona/proc/merge - verbs += /mob/living/carbon/alien/diona/proc/drop_holding_item + + grant_verb(src, list( + /mob/living/carbon/alien/diona/proc/merge, + /mob/living/carbon/alien/diona/proc/drop_holding_item, + )) /mob/living/carbon/alien/diona/put_in_hands(obj/item/W) // No hands. Use mouth. if(can_collect(W)) @@ -67,7 +71,7 @@ hat = new_hat new_hat.forceMove(src) update_icons() - verbs += /mob/living/carbon/alien/diona/proc/drop_hat + grant_verb(src, /mob/living/carbon/alien/diona/proc/drop_hat) return TRUE /mob/living/carbon/alien/diona/proc/handle_npc(mob/living/carbon/alien/diona/D) @@ -142,7 +146,7 @@ src.hat.forceMove(get_turf(src)) src.hat = null update_icons() - verbs -= /mob/living/carbon/alien/diona/proc/drop_hat + revoke_verb(src, /mob/living/carbon/alien/diona/proc/drop_hat) /mob/living/carbon/alien/diona/drop_active_hand() if(holding_item) diff --git a/code/modules/mob/living/carbon/alien/diona/diona_powers.dm b/code/modules/mob/living/carbon/alien/diona/diona_powers.dm index 1346c4d466d..b69a84e9b5f 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona_powers.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona_powers.dm @@ -8,8 +8,8 @@ if(is_ooc_dead() || paralysis || weakened || stunned || restrained()) return - if(istype(src.loc,/mob/living/carbon)) - src.verbs -= /mob/living/carbon/alien/diona/proc/merge + if(iscarbon(loc)) + revoke_verb(src, /mob/living/carbon/alien/diona/proc/merge) return var/list/choices = list() @@ -36,8 +36,8 @@ H.status_flags |= PASSEMOTES to_chat(src, "You feel your being twine with that of \the [H] as you merge with its biomass.") forceMove(H) - verbs += /mob/living/carbon/alien/diona/proc/split - verbs -= /mob/living/carbon/alien/diona/proc/merge + grant_verb(src, /mob/living/carbon/alien/diona/proc/split) + revoke_verb(src, /mob/living/carbon/alien/diona/proc/merge) return 1 /mob/living/carbon/alien/diona/proc/split() @@ -49,8 +49,8 @@ if(is_ooc_dead() || paralysis || weakened || stunned || restrained()) return - if(!(istype(src.loc,/mob/living/carbon))) - src.verbs -= /mob/living/carbon/alien/diona/proc/split + if(!iscarbon(loc)) + revoke_verb(src, /mob/living/carbon/alien/diona/proc/split) return to_chat(src.loc, "You feel a pang of loss as [src] splits away from your biomass.") @@ -59,8 +59,9 @@ var/mob/living/M = src.loc dropInto(loc) - src.verbs -= /mob/living/carbon/alien/diona/proc/split - src.verbs += /mob/living/carbon/alien/diona/proc/merge + + revoke_verb(src, /mob/living/carbon/alien/diona/proc/split) + grant_verb(src, /mob/living/carbon/alien/diona/proc/merge) if(istype(M)) for(var/atom/A in M.contents) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 1a360d58426..c6e1e208479 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -18,7 +18,7 @@ . = ..() add_language("Xenomorph") //Bonus language. internal_organs |= new /obj/item/organ/internal/xenos/hivenode(src) - verbs += /mob/living/carbon/proc/toggle_darksight + grant_verb(src, /mob/living/carbon/proc/toggle_darksight) /obj/structure/alien/egg/CanUseTopic(mob/user) return isghost(user) ? STATUS_INTERACTIVE : STATUS_CLOSE diff --git a/code/modules/mob/living/carbon/alien/progression.dm b/code/modules/mob/living/carbon/alien/progression.dm index b472c77e67f..4f247bfcfb4 100644 --- a/code/modules/mob/living/carbon/alien/progression.dm +++ b/code/modules/mob/living/carbon/alien/progression.dm @@ -1,7 +1,8 @@ -/mob/living/carbon/alien/Stat() +/mob/living/carbon/alien/get_status_tab_items() . = ..() - if(. && statpanel("Status") && adult_form) - stat("Growth", "[round(amount_grown)]/[max_grown]") + + if(adult_form) + . += "Growth: [round(amount_grown)]/[max_grown]" /mob/living/carbon/alien/verb/evolve() @@ -13,7 +14,7 @@ return if(!adult_form) - verbs -= /mob/living/carbon/alien/verb/evolve + revoke_verb(src, /mob/living/carbon/alien/verb/evolve) return if(handcuffed) diff --git a/code/modules/mob/living/carbon/brain/say.dm b/code/modules/mob/living/carbon/brain/say.dm index 61b7456a67a..22c09fcd300 100644 --- a/code/modules/mob/living/carbon/brain/say.dm +++ b/code/modules/mob/living/carbon/brain/say.dm @@ -27,7 +27,7 @@ else message = Gibberish(message, (emp_damage*6))//scrambles the message, gets worse when emp_damage is higher - if(speaking && speaking.flags & HIVEMIND) + if(speaking && speaking.language_flags & HIVEMIND) speaking.broadcast(src,trim(message)) return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index fe4d9f27adb..9053f5ee4b0 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -47,7 +47,7 @@ set_nutrition(300) ..() -/mob/living/carbon/Move(NewLoc, direct) +/mob/living/carbon/Move(newloc, direct) . = ..() if(!.) return @@ -56,6 +56,7 @@ remove_nutrition(min(nutrition, DEFAULT_HUNGER_FACTOR / 10)) if(m_intent == M_RUN) remove_nutrition(min(nutrition, DEFAULT_HUNGER_FACTOR / 10)) + if((MUTATION_FAT in mutations) && m_intent == M_RUN && bodytemperature <= 360) bodytemperature += 2 @@ -296,6 +297,10 @@ return /mob/living/carbon/throw_item(atom/target) + THROTTLE(cooldown, 0.2 SECONDS) + if(!cooldown) + return + throw_mode_off() if(!isturf(loc)) return diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 156635bbe6f..bb06149e6d5 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -7,6 +7,9 @@ if(MUTATION_HULK in user.mutations) effective_force *= 2 + if(MUTATION_STRONG in user.mutations) + effective_force *= 2 + //Apply weapon damage var/damage_flags = I.damage_flags() if(prob(blocked)) //armour provides a chance to turn sharp/edge weapon attacks into blunt ones diff --git a/code/modules/mob/living/carbon/hallucinations.dm b/code/modules/mob/living/carbon/hallucinations.dm index 30e08b9145c..e04954b12a9 100644 --- a/code/modules/mob/living/carbon/hallucinations.dm +++ b/code/modules/mob/living/carbon/hallucinations.dm @@ -171,7 +171,7 @@ to_chat(holder,"[talker.name] points at [holder.name]") to_chat(holder,"[talker.name] says something softly.") - show_bubble_to_client(holder.bubble_icon, holder.say_test(message), talker, holder.client) + holder.show_bubble_to_client(holder.bubble_icon, holder.say_test(message), talker, holder.client) sanity-- //don't spam them in very populated rooms. if(!sanity) @@ -281,18 +281,18 @@ /datum/hallucination/telepahy/start() to_chat(holder,"You expand your mind outwards.") - holder.verbs += /mob/living/carbon/human/proc/fakeremotesay + grant_verb(holder, /mob/living/carbon/human/proc/fakeremotesay) /datum/hallucination/telepahy/end() if(holder) - holder.verbs -= /mob/living/carbon/human/proc/fakeremotesay + revoke_verb(holder, /mob/living/carbon/human/proc/fakeremotesay) /mob/living/carbon/human/proc/fakeremotesay() set name = "Telepathic Message" set category = "Superpower" if(!hallucination_power) - src.verbs -= /mob/living/carbon/human/proc/fakeremotesay + revoke_verb(src, /mob/living/carbon/human/proc/fakeremotesay) return if(stat) @@ -420,6 +420,10 @@ if(fake.lying) fake_look.SetTransform(others = fake.transform, rotation = -90) holder.client.images |= fake_look + + register_signal(holder, SIGNAL_MOB_EXAMINED, nameof(.proc/on_mob_examined)) + register_signal(holder, SIGNAL_MOB_EXAMINED_MORE, nameof(.proc/on_mob_examined_more)) + log_misc("[holder.name] is hallucinating that [origin.name] is the [fake.name]") /datum/hallucination/fake_appearance/proc/get_living_sublist(list/subtypes, list/exclude) @@ -442,14 +446,25 @@ holder.hallucinations -= src if(!fake_look) return // No ASSERT is needed, ending is correct + if(holder.client) holder.client.images -= fake_look + + unregister_signal(holder, SIGNAL_EXAMINED) + unregister_signal(holder, SIGNAL_EXAMINED_MORE) + QDEL_NULL(fake_look) /datum/hallucination/fake_appearance/Destroy() end() . = ..() +/datum/hallucination/fake_appearance/proc/on_mob_examined(datum/source, mob/user, list/examine_result) + examine_result = fake.examine(user) + +/datum/hallucination/fake_appearance/proc/on_mob_examined_more(datum/source, mob/user, list/examine_result) + examine_result = fake.examine_more(user) + /mob/living/carbon/proc/get_fake_appearance(mob/M) for(var/datum/hallucination/fake_appearance/hallutination in hallucinations) if(M == hallutination.origin) diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index 32cc46dcf11..9a81b50ba66 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -76,7 +76,7 @@ f_style = facial_hair_style - update_hair() + update_facial_hair() return 1 /mob/living/carbon/human/proc/reset_hair() @@ -96,6 +96,7 @@ f_style = "Shaved" update_hair() + update_facial_hair() /mob/living/carbon/human/proc/change_eye_color(red, green, blue) if(red == r_eyes && green == g_eyes && blue == b_eyes) @@ -143,7 +144,7 @@ g_facial = green b_facial = blue - update_hair() + update_facial_hair() return 1 /mob/living/carbon/human/proc/change_skin_color(red, green, blue) diff --git a/code/modules/mob/living/carbon/human/body_build.dm b/code/modules/mob/living/carbon/human/body_build.dm index 80d46777d45..b28be2533dd 100644 --- a/code/modules/mob/living/carbon/human/body_build.dm +++ b/code/modules/mob/living/carbon/human/body_build.dm @@ -39,19 +39,25 @@ var/global/datum/body_build/default_body_build = new var/stomach_capacity = STOMACH_CAPACITY_NORMAL var/ambiguous_gender = FALSE // If TRUE, both females and females will be PLURAL if there's no beard and their groin is covered + var/list/equip_adjust + var/list/equip_overlays = list() + /datum/body_build/proc/get_mob_icon(slot, icon_state) var/icon/I + if(!(slot in default_onmob_slots)) to_world_log("##ERROR. Wrong sprite group for mob icon \"[slot]\"") return I // Nonexistent slot, just give 'em an empty icon + for(var/datum/body_build/BB in list(src, default_body_build)) - switch(slot) - if(slot_handcuffed_str, slot_legcuffed_str) - I = BB.misk_icon - else - I = BB.clothing_icons[slot] + if(slot == slot_handcuffed_str || slot == slot_legcuffed_str) + I = BB.misk_icon + else + I = BB.clothing_icons[slot] + if(icon_state in GLOB.bb_clothing_icon_states[BB.type][slot]) break + return I /datum/body_build/slim @@ -87,6 +93,19 @@ var/global/datum/body_build/default_body_build = new stomach_capacity = STOMACH_CAPACITY_LOW poise_pool = HUMAN_LOW_POISE + equip_adjust = list( + "slot_l_hand" = list( + "SOUTH" = list("x" = -1, "y" = 0), + "NORTH" = list("x" = 1, "y" = 0), + "EAST" = list("x" = -2, "y" = 0) + ), + "slot_r_hand" = list( + "SOUTH" = list("x" = 1, "y" = 0), + "NORTH" = list("x" = -1, "y" = 0), + "WEST" = list("x" = 2, "y" = 0) + ) + ) + /datum/body_build/slim/alt name = "Slim Alt" index = "_slim_alt" diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index a811f3676a8..472e06505b2 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -108,3 +108,4 @@ if(h_style) h_style = "Bald" update_hair(FALSE) + update_facial_hair(FALSE) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 4d8f413bd27..8d6485ca76b 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -1,4 +1,6 @@ -/mob/living/carbon/human/_examine_text(mob/user) +/mob/living/carbon/human/examine(mob/user, infix) + . = ..() + var/skipgloves = FALSE var/skipsuitstorage = FALSE var/skipjumpsuit = FALSE @@ -202,7 +204,7 @@ msg += SPAN("warning", "[T.He] [T.is] on fire!.\n") for(var/datum/modifier/M in modifiers) - var/modifier_txt = M._examine_text() + var/modifier_txt = M.examine() if(!isnull(modifier_txt)) msg += "[]\n" @@ -345,9 +347,9 @@ pose = addtext(pose,".") //Makes sure all emotes end with a period. msg += "[T.He] [pose]" - return jointext(msg, null) + . = list(jointext(msg, null)) -// Helper procedure. Called by /mob/living/carbon/human/_examine_text() and /mob/living/carbon/human/Topic() to determine HUD access to security and medical records. +// Helper procedure. Called by /mob/living/carbon/human/examine() and /mob/living/carbon/human/Topic() to determine HUD access to security and medical records. /proc/hasHUD(mob/M as mob, hudtype) if(istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ac6bebb4396..102389618c3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -79,6 +79,9 @@ QDEL_NULL(vessel) return ..() +/mob/living/carbon/human/get_description_fluff() + return print_flavor_text(FALSE) + /mob/living/carbon/human/get_ingested_reagents() if(should_have_organ(BP_STOMACH)) var/obj/item/organ/internal/stomach/stomach = internal_organs_by_name[BP_STOMACH] @@ -92,54 +95,46 @@ if(stomach) stomach.metabolize() -/mob/living/carbon/human/Stat() +/mob/living/carbon/human/get_status_tab_items() . = ..() - if(statpanel("Status")) - stat("Intent:", "[a_intent]") - stat("Move Mode:", "[m_intent]") - stat("Poise:", "[round(100/poise_pool*poise)]%") - stat("Special Ability:", "[active_ability]") - - if(evacuation_controller) - var/eta_status = evacuation_controller.get_status_panel_eta() - if(eta_status) - stat(null, eta_status) - - if (istype(internal)) - if (!internal.air_contents) - qdel(internal) - else - stat("Internal Atmosphere Info: ", internal.name) - stat("Tank Pressure: ", internal.air_contents.return_pressure()) - stat("Distribution Pressure: ", internal.distribute_pressure) - var/obj/item/organ/internal/xenos/plasmavessel/P = internal_organs_by_name[BP_PLASMA] - if(P) - stat(null, "Plasma Stored: [P.stored_plasma]/[P.max_plasma]") + . += "Intent: [a_intent]" + . += "Move Mode: [m_intent]" + . += "Poise: [round(100/poise_pool*poise)]%" + . += "Special Ability: [active_ability]" + + if(istype(internal)) + if(!internal.air_contents) + qdel(internal) + else + . += "Internal Atmosphere Info: [internal.name]" + . += "Tank Pressure: [internal.air_contents.return_pressure()]" + . += "Distribution Pressure: [internal.distribute_pressure]" - var/obj/item/organ/internal/cell/potato = internal_organs_by_name[BP_CELL] - if(potato && potato.cell) - stat("Battery charge:", "[potato.get_charge()]/[potato.cell.maxcharge]") + var/obj/item/organ/internal/xenos/plasmavessel/P = internal_organs_by_name[BP_PLASMA] + if(P) + . += "Plasma Stored: [P.stored_plasma]/[P.max_plasma]" - if(back && istype(back,/obj/item/rig)) - var/obj/item/rig/suit = back - var/cell_status = "ERROR" - if(suit.cell) cell_status = "[suit.cell.charge]/[suit.cell.maxcharge]" - stat(null, "Suit charge: [cell_status]") + var/obj/item/organ/internal/cell/potato = internal_organs_by_name[BP_CELL] + if(potato && potato.cell) + . += "Battery charge: [potato.get_charge()]/[potato.cell.maxcharge]" - if(mind) - if(mind.vampire) - stat("Usable Blood: ", mind.vampire.blood_usable) - stat("Total Blood: ", mind.vampire.blood_total) + if(back && istype(back, /obj/item/rig)) + var/obj/item/rig/suit = back + . += "RIG Charge: [isnull(suit.cell) ? "ERROR" : "[suit.cell.charge]/[suit.cell.maxcharge]"]" - if(mind.changeling) - stat("Chemical Storage: ", mind.changeling.chem_charges) - stat("Genetic Damage Time: ", mind.changeling.genome_damage) + if(mind) + if(mind.vampire) + . += "Usable Blood: [mind.vampire.blood_usable]" + . += "Total Blood: [mind.vampire.blood_total]" - if(mind.special_role == "Borer Husk") - var/mob/living/simple_animal/borer/B = get_organ(BP_BRAIN) - stat("Chemicals: ", B?.chemicals) + if(mind.changeling) + . += "Chemical Storage: [mind.changeling.chem_charges]" + . += "Genetic Damage Time: [mind.changeling.genome_damage]" + if(mind.special_role == "Borer Husk") + var/mob/living/simple_animal/borer/B = get_organ(BP_BRAIN) + . += "Chemicals: [B?.chemicals]" /mob/living/carbon/human/ex_act(severity) if(!blinded) @@ -270,7 +265,7 @@ dat += "[slot_ref["name"]]: [istype(thing_in_slot) ? thing_in_slot : "nothing"]" if(istype(thing_in_slot, /obj/item/clothing)) var/obj/item/clothing/C = thing_in_slot - if(C.accessories.len) + if(LAZYLEN(C.accessories)) dat += "
Remove accessory" dat += "
" @@ -791,7 +786,7 @@ return if(!(mRemotetalk in src.mutations)) - src.verbs -= /mob/living/carbon/human/proc/remotesay + revoke_verb(src, /mob/living/carbon/human/proc/remotesay) return var/list/creatures = list() for(var/mob/living/carbon/h in world) @@ -863,7 +858,8 @@ blood_DNA[M.dna.unique_enzymes] = M.dna.b_type hand_blood_color = blood_color update_inv_gloves(1) // handles bloody hands overlays and updating - verbs += /mob/living/carbon/human/proc/bloody_doodle + + grant_verb(src, /mob/living/carbon/human/proc/bloody_doodle) /mob/living/carbon/human/clean_blood(clean_feet) . =..() @@ -1123,7 +1119,7 @@ return 0 //something is terribly wrong if (!bloody_hands) - verbs -= /mob/living/carbon/human/proc/bloody_doodle + revoke_verb(src, /mob/living/carbon/human/proc/bloody_doodle) if (src.gloves) to_chat(src, "Your [src.gloves] are getting in the way.") diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index abb01b5b9ec..30e857e8cb5 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -1,4 +1,8 @@ /mob/living/carbon/human/proc/get_unarmed_attack(mob/living/carbon/human/target, hit_zone) + var/obj/item/clothing/gloves/boxing/b_gloves = gloves + if(istype(b_gloves)) + return b_gloves.attack + for(var/datum/unarmed_attack/u_attack in species.unarmed_attacks) if(u_attack.is_usable(src, target, hit_zone)) if(pulling_punches) @@ -28,7 +32,7 @@ H.do_attack_animation(src) return 0 - if(istype(H.gloves, /obj/item/clothing/gloves/boxing/hologlove)) + if(istype(H.gloves, /obj/item/clothing/gloves/boxing/hologloves)) H.do_attack_animation(src) var/damage = rand(0, 9) if(!damage) @@ -41,6 +45,9 @@ if(MUTATION_HULK in H.mutations) damage += 5 + if(MUTATION_STRONG in H.mutations) + damage += 5 + playsound(loc, SFX_FIGHTING_PUNCH, rand(80, 100), 1, -1) visible_message("[H] has punched \the [src]!") @@ -275,6 +282,9 @@ if(MUTATION_HULK in H.mutations) real_damage *= 2 // Hulks do twice the damage attack_damage *= 2 + if(MUTATION_STRONG in H.mutations) + real_damage *= 2 + attack_damage *= 2 real_damage = max(1, real_damage) var/armour = run_armor_check(hit_zone, "melee") diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 38b04afcf4d..c31858c8636 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -140,18 +140,23 @@ BITSET(hud_updateflag, HEALTH_HUD) /mob/living/carbon/human/Stun(amount) - if(MUTATION_HULK in mutations) return + if((MUTATION_HULK in mutations) || (MUTATION_STRONG in mutations)) + return ..() /mob/living/carbon/human/Weaken(amount) - if(MUTATION_HULK in mutations) return + if((MUTATION_HULK in mutations) || (MUTATION_STRONG in mutations)) + return ..() /mob/living/carbon/human/Paralyse(amount) - if(MUTATION_HULK in mutations) return + if((MUTATION_HULK in mutations) || (MUTATION_STRONG in mutations)) + return + // Notify our AI if they can now control the suit. if(wearing_rig && !stat && paralysis < amount) //We are passing out right this second. wearing_rig.notify_ai("Warning: user consciousness failure. Mobility control passed to integrated intelligence system.") + ..() /mob/living/carbon/human/getCloneLoss() diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 9fcb92cc241..d24a998a312 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -223,7 +223,7 @@ meteor_act for(var/obj/item/clothing/gear in protective_gear) if(gear.body_parts_covered & def_zone.body_part) protection = add_armor(protection, gear.armor[type]) - if(gear.accessories.len) + if(LAZYLEN(gear.accessories)) for(var/obj/item/clothing/accessory/bling in gear.accessories) if(bling.body_parts_covered & def_zone.body_part) protection = add_armor(protection, bling.armor[type]) @@ -245,7 +245,7 @@ meteor_act // Unlike in get_flat_armor, here we iterate over everything since a piece // of clothing may have a bodypart coverage w/out having it in 'body_parts_covered' for(var/obj/item/clothing/C in protective_gear) - if(length(C.accessories)) + if(LAZYLEN(C.accessories)) for(var/obj/item/clothing/accessory/CA in C.accessories) armor_layer = CA.get_armor_coverage(affecting, type, src) if(islist(armor_layer)) @@ -414,6 +414,9 @@ meteor_act if(MUTATION_HULK in user.mutations) effective_force *= 2 + if(MUTATION_STRONG in user.mutations) + effective_force *= 2 + if(lying) effective_force *= 1.5 // Well it's easier to beat a lying dude to death right? @@ -502,8 +505,13 @@ meteor_act if(MUTATION_HULK in user.mutations) effective_force *= 2 + + if(MUTATION_STRONG in user.mutations) + effective_force *= 2 + if(src.lying) effective_force *= 1.5 // Well it's easier to beat all the shit outta lying dudes right? + if(istype(user,/mob/living/carbon/human)) var/mob/living/carbon/human/A = user if(A.body_build.name == "Slim" || A.body_build.name == "Slim Alt") diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index e55e8824b09..703f65a3d6b 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -100,7 +100,7 @@ B.chemicals -= 100 - addtimer(CALLBACK(src, nameof(.proc/host_pain_disable)), 30 SECONDS) + set_next_think_ctx("host_pain_disable", world.time + 30 SECONDS) /mob/living/carbon/human/proc/host_pain_disable() if(no_pain) diff --git a/code/modules/mob/living/carbon/human/human_species.dm b/code/modules/mob/living/carbon/human/human_species.dm index 2ddd5713a3b..b5793de5ca9 100644 --- a/code/modules/mob/living/carbon/human/human_species.dm +++ b/code/modules/mob/living/carbon/human/human_species.dm @@ -35,7 +35,7 @@ /mob/living/carbon/human/gatecrasher/Initialize() . = ..() - addtimer(CALLBACK(src, nameof(.proc/unpossessed_death_check)), 45 SECONDS) + add_think_ctx("unposessed_death_check", CALLBACK(src, nameof(.proc/unpossessed_death_check)), world.time + 45 SECONDS) /mob/living/carbon/human/gatecrasher/proc/unpossessed_death_check() if(ckey) // Possessed, no euthanasia required diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 5af066eb4f4..cd9dc2fb387 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -148,7 +148,8 @@ This saves us from having to call add_fingerprint() any time something is put in if(istype(W, /obj/item)) var/obj/item/I = W if(I.flags_inv & (HIDEMASK|BLOCKHAIR|BLOCKHEADHAIR)) - update_hair(0) //rebuild hair + update_hair(0) // Rebuild hair + update_facial_hair(0) update_inv_ears(0) update_inv_wear_mask(0) if(src) @@ -177,7 +178,8 @@ This saves us from having to call add_fingerprint() any time something is put in if(istype(W, /obj/item)) var/obj/item/I = W if(I.flags_inv & (BLOCKHAIR|BLOCKHEADHAIR)) - update_hair(0) //rebuild hair + update_hair(0) // Rebuild hair + update_facial_hair(0) update_inv_ears(0) REMOVE_INTERNALS update_inv_wear_mask() @@ -252,7 +254,8 @@ This saves us from having to call add_fingerprint() any time something is put in if(slot_wear_mask) src.wear_mask = W if(wear_mask.flags_inv & (BLOCKHAIR|BLOCKHEADHAIR)) - update_hair(redraw_mob) //rebuild hair + update_hair(redraw_mob) // Rebuild hair + update_facial_hair(redraw_mob) update_inv_ears(0) W.equipped(src, slot) update_inv_wear_mask(redraw_mob) @@ -303,7 +306,8 @@ This saves us from having to call add_fingerprint() any time something is put in if(slot_head) src.head = W if(head.flags_inv & (BLOCKHAIR|BLOCKHEADHAIR|HIDEMASK)) - update_hair(redraw_mob) //rebuild hair + update_hair(redraw_mob) // Rebuild hair + update_facial_hair(redraw_mob) update_inv_ears(0) update_inv_wear_mask(0) if(istype(W,/obj/item/clothing/head/kitty)) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index eef0a8cc755..a79eb5ccd1d 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -48,6 +48,11 @@ add_movespeed_modifier(/datum/movespeed_modifier/human_delay) AddElement(/datum/element/last_words) + add_think_ctx("remove_deaf", CALLBACK(src, nameof(.proc/remove_deaf)), 0) + add_think_ctx("remove_nearsighted", CALLBACK(src, nameof(.proc/remove_nearsighted)), 0) + add_think_ctx("delayed_hallucinations", CALLBACK(src, nameof(.proc/delayed_hallucinations)), 0) + add_think_ctx("host_pain_enable", CALLBACK(src, nameof(.proc/host_pain_enable)), 0) + add_think_ctx("host_pain_disable", CALLBACK(src, nameof(.proc/host_pain_disable)), 0) /mob/living/carbon/human/Life() set invisibility = 0 @@ -251,6 +256,7 @@ h_style = species.default_h_style f_style = species.default_f_style update_hair() + update_facial_hair() if(radiation > (2 SIEVERT)) if(!full_prosthetic && !isundead(src)) diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 223216b3278..83a916b5d84 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -19,7 +19,7 @@ message = sanitize(message) var/obj/item/organ/internal/voicebox/vox = locate() in internal_organs - var/snowflake_speak = (language?.flags & (NONVERBAL|SIGNLANG)) || (vox?.is_usable() && (language in vox.assists_languages)) + var/snowflake_speak = (language?.language_flags & (NONVERBAL|SIGNLANG)) || (vox?.is_usable() && (language in vox.assists_languages)) if(stat == CONSCIOUS && !full_prosthetic && need_breathe() && failed_last_breath && !snowflake_speak) var/obj/item/organ/internal/lungs/L = internal_organs_by_name[species.breathing_organ] @@ -152,7 +152,7 @@ . = TRUE else if(wear_mask) var/obj/item/clothing/mask/M = wear_mask - if(is_muzzled() && !(message_data["language"]?.flags & (NONVERBAL|SIGNLANG))) + if(is_muzzled() && !(message_data["language"]?.language_flags & (NONVERBAL|SIGNLANG))) if(istype(M, /obj/item/clothing/mask)) if(M.say_messages) message_data["message"] = pick(M.say_messages) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index acba19f6ae1..76d2652a241 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -435,15 +435,11 @@ The slots that you can use are found in items_clothing.dm and are the inventory /datum/species/proc/remove_inherent_verbs(mob/living/carbon/human/H) if(inherent_verbs) - for(var/verb_path in inherent_verbs) - H.verbs -= verb_path - return + revoke_verb(H, inherent_verbs) /datum/species/proc/add_inherent_verbs(mob/living/carbon/human/H) if(inherent_verbs) - for(var/verb_path in inherent_verbs) - H.verbs |= verb_path - return + grant_verb(H, inherent_verbs) /datum/species/proc/remove_inherent_traits(mob/living/carbon/human/H) if(inherent_traits) @@ -612,6 +608,7 @@ The slots that you can use are found in items_clothing.dm and are the inventory H.h_style = H.species.default_h_style H.f_style = H.species.default_f_style H.update_hair() + H.update_facial_hair() /datum/species/proc/get_blood_name() return "blood" diff --git a/code/modules/mob/living/carbon/human/species/species_shapeshift.dm b/code/modules/mob/living/carbon/human/species/species_shapeshift.dm index 303cbc37716..db480a9ea7c 100644 --- a/code/modules/mob/living/carbon/human/species/species_shapeshift.dm +++ b/code/modules/mob/living/carbon/human/species/species_shapeshift.dm @@ -156,7 +156,7 @@ var/list/wrapped_species_by_ref = list() to_chat(usr, SPAN_WARNING("You can't use your abilities so fast!")) return - var/new_skin = input("Please select a new body color.", "Shapeshifter Colour") as color + var/new_skin = tgui_color_picker("Please select a new body color.", "Shapeshifter Colour") if(!new_skin) return shapeshifter_set_colour(new_skin) diff --git a/code/modules/mob/living/carbon/human/species/station/golems.dm b/code/modules/mob/living/carbon/human/species/station/golems.dm index 054a959cd81..49e9c4909d9 100644 --- a/code/modules/mob/living/carbon/human/species/station/golems.dm +++ b/code/modules/mob/living/carbon/human/species/station/golems.dm @@ -153,7 +153,6 @@ /datum/action/innate/ignite name = "Ignite" - //desc = "Set yourself aflame, bringing yourself closer to exploding!" check_flags = AB_CHECK_CONSCIOUS button_icon_state = "sacredflame" @@ -452,9 +451,14 @@ var/mob/living/carbon/human/H = owner H.visible_message(SPAN_WARNING("[H] starts vibrating!"), SPAN_DANGER("You start charging your bluespace core...")) playsound(get_turf(H), 'sound/weapons/flash.ogg', 25, TRUE) - addtimer(CALLBACK(src, nameof(.proc/teleport), H), 1.5 SECONDS) + set_next_think(world.time + 1.5 SECONDS, weakref(H)) return TRUE +/datum/action/cooldown/unstable_teleport/think(weakref/ref) + var/mob/living/carbon/human/H = ref.resolve() + if(istype(H)) + teleport(H) + /datum/action/cooldown/unstable_teleport/proc/teleport(mob/living/carbon/human/H) StartCooldown() H.visible_message(SPAN_WARNING("[H] disappears in a shower of sparks!"), SPAN_DANGER("You teleport!")) @@ -569,7 +573,7 @@ H.forceMove(src) cloth_golem = H to_chat(cloth_golem, SPAN_NOTICE("You start gathering your life energy, preparing to rise again...")) - addtimer(CALLBACK(src, nameof(.proc/revive)), revive_time) + set_next_think(world.time + revive_time) else return INITIALIZE_HINT_QDEL @@ -578,10 +582,7 @@ QDEL_NULL(cloth_golem) return ..() -/obj/structure/cloth_pile/proc/revive() - if(QDELETED(src) || QDELETED(cloth_golem)) //QDELETED also checks for null, so if no cloth golem is set this won't runtime - return - +/obj/structure/cloth_pile/think() invisibility = INVISIBILITY_MAXIMUM //disappear before the animation new /obj/effect/mummy_animation(get_turf(src)) cloth_golem.revive() @@ -591,7 +592,6 @@ cloth_golem = null qdel(src) - /obj/structure/cloth_pile/proc/update_name() if(on_fire) SetName("burning [initial(name)]") diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans/luminescent.dm b/code/modules/mob/living/carbon/human/species/station/prometheans/luminescent.dm index 64351879d29..735499fef39 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans/luminescent.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans/luminescent.dm @@ -18,6 +18,10 @@ name = SPECIES_LUMINESCENT icobase = 'icons/mob/human_races/prometheans/r_luminescent.dmi' +/datum/species/promethean/luminescent/New() + . = ..() + add_think_ctx("update_glow", CALLBACK(src, nameof(.proc/update_glow)), 0) + /datum/species/promethean/luminescent/handle_post_spawn(mob/living/carbon/human/new_jellyperson) . = ..() @@ -60,11 +64,10 @@ extract_eater_comp.glow_intensity = intensity else extract_eater_comp.glow_intensity = LUMINESCENT_DEFAULT_GLOW - C.set_light(1, 0.5, extract_eater_comp.glow_intensity, 2, C.dna.mcolor) + C.set_light(1, 0.5, extract_eater_comp.glow_intensity, extract_eater_comp.glow_intensity, C.dna.mcolor) /datum/action/innate/integrate_extract name = "Integrate Extract" - //desc = "Eat a metroid extract to use its properties." check_flags = AB_CHECK_CONSCIOUS button_icon_state = "metroidconsume" button_icon = 'icons/hud/actions.dmi' @@ -87,12 +90,10 @@ name = "Integrate Extract" button_icon_state = "metroidconsume" button.UpdateIcon() - //desc = "Eat a metroid extract to use its properties." else name = "Eject Extract" button_icon_state = "metroideject" button.AddOverlays(image(extract_eater_comp.current_extract.icon, icon_state = extract_eater_comp.current_extract.icon_state)) - //desc = "Eject your current metroid extract." /datum/action/innate/integrate_extract/Activate() @@ -126,7 +127,6 @@ /datum/action/cooldown/use_extract name = "Extract Minor Activation" - //desc = "Pulse the metroid extract with energized jelly to activate it." action_type = AB_INNATE check_flags = AB_CHECK_CONSCIOUS button_icon_state = "metroiduse1" @@ -170,7 +170,6 @@ /datum/action/cooldown/use_extract/major name = "Extract Major Activation" - //desc = "Pulse the metroid extract with plasma jelly to activate it." button_icon_state = "metroiduse2" activation_type = METROID_ACTIVATE_MAJOR shared_cooldown = TRUE diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans/prometheans.dm index dcde2c07765..efc19c13d1a 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans/prometheans.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans/prometheans.dm @@ -132,7 +132,6 @@ if(jelly_volume <= BLOOD_VOLUME_LOSE_NUTRITION) // don't lose nutrition if we are above a certain threshold, otherwise metroids on IV drips will still lose nutrition H.add_nutrition(-1.25 * 0.1) - // we call lose_blood() here rather than quirk/process() to make sure that the blood loss happens in sync with life() if(HAS_TRAIT(H, TRAIT_BLOOD_DEFICIENCY)) if(jelly_volume>=BLOOD_VOLUME_BAD) jelly_vessel.remove_jelly(PROMETHEAN_REGEN_RATE * 0.1) @@ -151,13 +150,22 @@ var/obj/item/organ/external/E = H.organs_by_name[limb_type] if(!E) missing_limbs+=limb_type - var/list/limbs_to_consume = list(BP_R_ARM, BP_L_ARM, BP_R_LEG, BP_L_LEG) - missing_limbs + var/list/limbs_to_consume = list(BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM) - missing_limbs + var/obj/item/organ/external/consumed_limb if(!length(limbs_to_consume)) H.losebreath++ return - if(H.has_organ(BP_L_LEG)||H.has_organ(BP_R_LEG)) //Legs go before arms - limbs_to_consume -= list(BP_R_ARM, BP_L_ARM) + + if(H.has_organ(BP_L_FOOT) || H.has_organ(BP_R_FOOT)) //Feets go before legs + limbs_to_consume -= list(BP_L_LEG, BP_R_LEG) + + if(H.has_organ(BP_L_LEG) || H.has_organ(BP_R_LEG)) //Legs go before Hands + limbs_to_consume -= list(BP_L_HAND, BP_R_HAND) + + if(H.has_organ(BP_L_HAND) || H.has_organ(BP_R_HAND)) //Hands go before arms + limbs_to_consume -= list(BP_L_ARM, BP_R_ARM) + consumed_limb = H.get_organ(pick(limbs_to_consume)) consumed_limb.droplimb() to_chat(H, SPAN_DANGER("Your [consumed_limb] is drawn back into your body, unable to maintain its shape!")) @@ -205,8 +213,8 @@ jelly_vessel.remove_jelly(H.species.blood_volume*BLOOD_LOSE_PER_LIMB*length(limbs_to_heal)) //FIXME fuck baymed with their BLOOD to_chat(H, SPAN_NOTICE("...and after a moment you finish reforming!")) return - else if(jelly_volume > BLOOD_VOLUME_BAD)//We can partially heal some limbs - while(jelly_volume >= BLOOD_VOLUME_BAD+20) + else if(jelly_volume > BLOOD_VOLUME_BAD + 25)//We can partially heal some limbs + while(jelly_volume >= BLOOD_VOLUME_BAD + 25) var/healed_limb = pick(limbs_to_heal) H.restore_limb(healed_limb) limbs_to_heal -= healed_limb diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans/slime.dm b/code/modules/mob/living/carbon/human/species/station/prometheans/slime.dm index 400529428b1..3f74158a10e 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans/slime.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans/slime.dm @@ -1,9 +1,10 @@ #define BLOOD_VOLUME_SLIME_SPLIT 45 +#define MAX_BODY_COUNT 5 //Slime people are able to split like slimes, retaining a single mind that can swap between bodies at will, even after death. /datum/component/body_swapper var/list/mob/living/carbon/bodies - var/datum/action/innate/split_body/slime_split + var/datum/action/cooldown/split_body/slime_split var/datum/action/innate/swap_body/swap_body /datum/species/promethean/slime @@ -66,27 +67,33 @@ ..() -/datum/action/innate/split_body +/datum/action/cooldown/split_body name = "Split Body" check_flags = AB_CHECK_CONSCIOUS button_icon_state = "slimesplit" button_icon = 'icons/hud/actions.dmi' background_icon_state = "bg_alien" + cooldown_time = 5 MINUTES -/datum/action/innate/split_body/IsAvailable(feedback = FALSE) +/datum/action/cooldown/split_body/IsAvailable(feedback = FALSE) . = ..() if(!.) return var/mob/living/carbon/human/H = owner + + var/datum/component/body_swapper/BS = H.get_component(/datum/component/body_swapper) + + if(LAZYLEN(BS.bodies) >= MAX_BODY_COUNT) + return FALSE + + var/obj/item/organ/internal/promethean/metroid_jelly_vessel/jelly_vessel = H.internal_organs_by_name[BP_METROID] var/jelly_amount = jelly_vessel.stored_jelly var/jelly_volume = round((jelly_amount/H.species.blood_volume)*100) - if(jelly_volume >= BLOOD_VOLUME_SLIME_SPLIT) - return TRUE - return FALSE + return jelly_volume >= BLOOD_VOLUME_SLIME_SPLIT -/datum/action/innate/split_body/Activate() +/datum/action/cooldown/split_body/Activate() var/mob/living/carbon/human/H = owner if(!(H.dna?.species)) return @@ -108,10 +115,14 @@ make_dupe() else to_chat(H, SPAN_WARNING("...but there is not enough of you to go around! You must attain more mass to split!")) + return else to_chat(H, SPAN_WARNING("...but fail to stand perfectly still!")) + return -/datum/action/innate/split_body/proc/make_dupe() + StartCooldown() + +/datum/action/cooldown/split_body/proc/make_dupe() var/mob/living/carbon/human/H = owner if(!(H.dna?.species)) @@ -119,6 +130,7 @@ var/obj/item/organ/internal/promethean/metroid_jelly_vessel/jelly_vessel = H.internal_organs_by_name[BP_METROID] var/mob/living/carbon/human/spare = new /mob/living/carbon/human/slimeperson(H.loc) + var/obj/item/organ/internal/promethean/metroid_jelly_vessel/spare_jelly_vessel = spare.internal_organs_by_name[BP_METROID] spare.dna = H.dna.Clone() spare.dna.mcolor = "#[pick("7F", "FF")][pick("7F", "FF")][pick("7F", "FF")]" @@ -128,7 +140,8 @@ spare.Move(get_step(H.loc, pick(NORTH,SOUTH,EAST,WEST))) spare.AddComponent(/datum/component/body_swapper) - jelly_vessel.remove_jelly(H.species.blood_volume*(BLOOD_VOLUME_SLIME_SPLIT/100)) + jelly_vessel.remove_jelly(H.species.blood_volume * (BLOOD_VOLUME_SLIME_SPLIT / 100)) + spare_jelly_vessel.remove_jelly(H.species.blood_volume * (BLOOD_VOLUME_SLIME_SPLIT / 100)) var/datum/component/body_swapper/BS_original = H.get_component(/datum/component/body_swapper) BS_original.bodies |= spare @@ -291,3 +304,6 @@ around.", SPAN_NOTICE("...and move this one instead.")) dupe.update_action_buttons() + +#undef MAX_BODY_COUNT +#undef BLOOD_VOLUME_SLIME_SPLIT diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans/stargazer.dm b/code/modules/mob/living/carbon/human/species/station/prometheans/stargazer.dm index e244918f265..c43896d24d1 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans/stargazer.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans/stargazer.dm @@ -11,7 +11,7 @@ /datum/species/promethean/stargazer/handle_post_spawn(mob/living/carbon/H) . = ..() - H.AddComponent(/datum/component/mind_linker, network_name = "Slime Link") + H.AddComponent(/datum/component/mind_linker, network_name = "Stargazer Link") spawn(1) H.update_action_buttons() diff --git a/code/modules/mob/living/carbon/human/stripping.dm b/code/modules/mob/living/carbon/human/stripping.dm index 56ac7d79c30..55cb1855ef1 100644 --- a/code/modules/mob/living/carbon/human/stripping.dm +++ b/code/modules/mob/living/carbon/human/stripping.dm @@ -35,27 +35,27 @@ if("pockets") if(stripping) visible_message("\The [user] is trying to empty [src]'s pockets!") - if(do_after(user, HUMAN_STRIP_DELAY, src)) + if(do_mob(user, src, HUMAN_STRIP_DELAY, can_multitask = TRUE)) empty_pockets(user) else //should it be possible to discreetly slip something into someone's pockets? visible_message("\The [user] is trying to stuff \a [held] into [src]'s pocket!") - if(do_after(user, HUMAN_STRIP_DELAY, src)) + if(do_mob(user, src, HUMAN_STRIP_DELAY, can_multitask = TRUE)) place_in_pockets(held, user) return if("splints") visible_message("\The [user] is trying to remove \the [src]'s splints!") - if(do_after(user, HUMAN_STRIP_DELAY, src)) + if(do_mob(user, src, HUMAN_STRIP_DELAY, can_multitask = TRUE)) remove_splints(user) return if("sensors") visible_message("\The [user] is trying to set \the [src]'s sensors!") - if(do_after(user, HUMAN_STRIP_DELAY, src)) + if(do_mob(user, src, HUMAN_STRIP_DELAY, can_multitask = TRUE)) toggle_sensors(user) return if("rolldown") visible_message(SPAN_DANGER("\The [user] is trying to roll down \the [src]'s uniform!")) - if(do_after(user, HUMAN_STRIP_DELAY, src)) + if(do_mob(user, src, HUMAN_STRIP_DELAY, can_multitask = TRUE)) var/obj/item/clothing/under/U = w_uniform if(U) U.rollsuit() @@ -63,11 +63,11 @@ return if("internals") visible_message("\The [usr] is trying to set \the [src]'s internals!") - if(do_after(user, HUMAN_STRIP_DELAY, src)) + if(do_mob(user, src, HUMAN_STRIP_DELAY, can_multitask = TRUE)) toggle_internals(user) return if("tie") - if(!istype(holder) || !holder.accessories.len) + if(!istype(holder) || !LAZYLEN(holder.accessories)) return var/obj/item/clothing/accessory/A = holder.accessories[1] if(holder.accessories.len > 1) @@ -80,10 +80,10 @@ visible_message("\The [user] is trying to remove \the [src]'s [A.name]!") - if(!do_after(user, HUMAN_STRIP_DELAY, src)) + if(!do_mob(user, src, HUMAN_STRIP_DELAY, can_multitask = TRUE)) return - if(!A || holder.loc != src || !(A in holder.accessories)) + if(!A || holder.loc != src || !LAZYISIN(holder.accessories, A)) return admin_attack_log(user, src, "Stripped \an [A] from \the [holder].", "Was stripped of \an [A] from \the [holder].", "stripped \an [A] from \the [holder] of") @@ -121,7 +121,7 @@ else visible_message("\The [user] is trying to put \a [held] on \the [src]!") - if(!do_after(user, HUMAN_STRIP_DELAY, src)) + if(!do_mob(user, src, HUMAN_STRIP_DELAY, can_multitask = TRUE)) return if(stripping) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 31bbaa4f02b..887bd7c6ad7 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -85,6 +85,7 @@ There are several things that need to be remembered: update_body() //Handles updating your mob's icon to reflect their gender/race/complexion etc update_hair() //Handles updating your hair overlay (used to be update_face, but mouth and ...eyes were merged into update_body) + update_facial_hair() // Handles updating your facial hair overlay. Used to be a part of update_hair(), but was forked because of the mask alt layer. update_deformities() //handles updating your mob's deformities overlay. e.g missing eyes, glasgow smile update_targeted() // Updates the target overlay when someone points a gun at you @@ -119,38 +120,42 @@ Please contact me on #coderbus IRC. ~Carn x */ //Human Overlays Indexes///////// -#define HO_BODY_LAYER 1 -#define HO_MUTATIONS_LAYER 2 -#define HO_SKIN_LAYER 3 -#define HO_DAMAGE_LAYER 4 -#define HO_SURGERY_LAYER 5 -#define HO_UNDERWEAR_LAYER 6 -#define HO_UNIFORM_LAYER 7 -#define HO_BANDAGE_LAYER 8 -#define HO_ID_LAYER 9 -#define HO_SHOES_LAYER 10 -#define HO_GLOVES_LAYER 11 -#define HO_BELT_LAYER 12 -#define HO_SUIT_LAYER 13 -#define HO_TAIL_LAYER 14 //bs12 specific. this hack is probably gonna come back to haunt me -#define HO_GLASSES_LAYER 15 -#define HO_BELT_LAYER_ALT 16 -#define HO_SUIT_STORE_LAYER 17 -#define HO_BACK_LAYER 18 -#define HO_DEFORM_LAYER 19 -#define HO_HAIR_LAYER 20 -#define HO_GOGGLES_LAYER 21 -#define HO_EARS_LAYER 22 -#define HO_FACEMASK_LAYER 23 -#define HO_HEAD_LAYER 24 -#define HO_COLLAR_LAYER 25 -#define HO_HANDCUFF_LAYER 26 -#define HO_L_HAND_LAYER 27 -#define HO_R_HAND_LAYER 28 -#define HO_FIRE_LAYER 29 //If you're on fire -#define HO_MODIFIER_EFFECTS_LAYER 30 -#define HO_TARGETED_LAYER 31 //BS12: Layer for the target overlay from weapon targeting system -#define HO_TOTAL_LAYERS 31 +#define HO_L_HAND_LOW_LAYER 1 +#define HO_R_HAND_LOW_LAYER 2 +#define HO_BODY_LAYER 3 +#define HO_MUTATIONS_LAYER 4 +#define HO_SKIN_LAYER 5 +#define HO_DAMAGE_LAYER 6 +#define HO_SURGERY_LAYER 7 +#define HO_UNDERWEAR_LAYER 8 +#define HO_UNIFORM_LAYER 9 +#define HO_BANDAGE_LAYER 10 +#define HO_ID_LAYER 11 +#define HO_SHOES_LAYER 12 +#define HO_GLOVES_LAYER 13 +#define HO_BELT_LAYER 14 +#define HO_SUIT_LAYER 15 +#define HO_TAIL_LAYER 16 //bs12 specific. this hack is probably gonna come back to haunt me +#define HO_FACIAL_HAIR_LAYER 17 +#define HO_FACEMASK_ALT_LAYER 18 +#define HO_GLASSES_LAYER 19 +#define HO_BELT_LAYER_ALT 20 +#define HO_SUIT_STORE_LAYER 21 +#define HO_BACK_LAYER 22 +#define HO_DEFORM_LAYER 23 +#define HO_HAIR_LAYER 24 +#define HO_GOGGLES_LAYER 25 +#define HO_EARS_LAYER 26 +#define HO_FACEMASK_LAYER 27 +#define HO_HEAD_LAYER 28 +#define HO_COLLAR_LAYER 29 +#define HO_HANDCUFF_LAYER 30 +#define HO_L_HAND_LAYER 31 +#define HO_R_HAND_LAYER 32 +#define HO_FIRE_LAYER 33 //If you're on fire +#define HO_MODIFIER_EFFECTS_LAYER 34 +#define HO_TARGETED_LAYER 35 //BS12: Layer for the target overlay from weapon targeting system +#define HO_TOTAL_LAYERS 35 ////////////////////////////////// /mob/living/carbon/human @@ -344,6 +349,32 @@ var/global/list/damage_icon_parts = list() if(update_icons) queue_icon_update() +/// BEARD OVERLAY +/mob/living/carbon/human/proc/update_facial_hair(update_icons=1) + + if(!src) + return + + //Reset our hair + overlays_standing[HO_FACIAL_HAIR_LAYER] = null + + var/obj/item/organ/external/head/head_organ = get_organ(BP_HEAD) + if(!head_organ || head_organ.is_stump()) + if(update_icons) + queue_icon_update() + return + + //masks and helmets can obscure our hair. + if((head && (head.flags_inv & BLOCKHAIR)) || (wear_mask && (wear_mask.flags_inv & BLOCKHAIR))) + if(update_icons) + queue_icon_update() + return + + overlays_standing[HO_FACIAL_HAIR_LAYER]= head_organ.get_facial_hair_icon() + + if(update_icons) + queue_icon_update() + /mob/living/carbon/human/proc/update_skin(update_icons=1) overlays_standing[HO_SKIN_LAYER] = species.update_skin(src) @@ -408,6 +439,7 @@ var/global/list/damage_icon_parts = list() update_skin(0) update_underwear(0) update_hair(0) + update_facial_hair(0) update_deformities(0) update_inv_w_uniform(0) update_inv_wear_id(0) @@ -572,10 +604,12 @@ var/global/list/damage_icon_parts = list() // Mask /mob/living/carbon/human/update_inv_wear_mask(update_icons=1) - if( wear_mask && ( istype(wear_mask, /obj/item/clothing/mask) || istype(wear_mask, /obj/item/clothing/accessory) || istype(wear_mask, /obj/item/grenade) || istype(wear_mask, /obj/item/holder)) && !(head && head.flags_inv & HIDEMASK)) - overlays_standing[HO_FACEMASK_LAYER] = wear_mask.get_mob_overlay(src,slot_wear_mask_str) + if(wear_mask && !(head && head.flags_inv & HIDEMASK)) + overlays_standing[wear_mask.use_alt_layer ? HO_FACEMASK_ALT_LAYER : HO_FACEMASK_LAYER] = wear_mask.get_mob_overlay(src, slot_wear_mask_str) + overlays_standing[wear_mask.use_alt_layer ? HO_FACEMASK_LAYER : HO_FACEMASK_ALT_LAYER] = null else overlays_standing[HO_FACEMASK_LAYER] = null + overlays_standing[HO_FACEMASK_ALT_LAYER] = null if(update_icons) queue_icon_update() @@ -607,30 +641,66 @@ var/global/list/damage_icon_parts = list() // Right Hand /mob/living/carbon/human/update_inv_r_hand(update_icons=1) if(r_hand) - var/image/standing = r_hand.get_mob_overlay(src, slot_r_hand_str) - if(standing) - standing.appearance_flags |= RESET_ALPHA - standing.appearance_flags |= PIXEL_SCALE - overlays_standing[HO_R_HAND_LAYER] = standing + . = r_hand.get_mob_overlay(src, slot_r_hand_str) + if(.) + if(islist(.)) + var/image/main = .[1] + main.appearance_flags |= RESET_ALPHA + main.appearance_flags |= PIXEL_SCALE + overlays_standing[HO_R_HAND_LAYER] = main + + var/image/back = .[2] + back.appearance_flags |= RESET_ALPHA + back.appearance_flags |= PIXEL_SCALE + overlays_standing[HO_R_HAND_LOW_LAYER] = back + else + var/image/standing = . + standing.appearance_flags |= RESET_ALPHA + standing.appearance_flags |= PIXEL_SCALE + overlays_standing[HO_R_HAND_LAYER] = standing + overlays_standing[HO_R_HAND_LOW_LAYER] = null + + else + overlays_standing[HO_R_HAND_LAYER] = null + overlays_standing[HO_R_HAND_LOW_LAYER] = null if (handcuffed) drop_r_hand() //this should be moved out of icon code else overlays_standing[HO_R_HAND_LAYER] = null + overlays_standing[HO_R_HAND_LOW_LAYER] = null if(update_icons) queue_icon_update() // Left Hand /mob/living/carbon/human/update_inv_l_hand(update_icons=1) if(l_hand) - var/image/standing = l_hand.get_mob_overlay(src, slot_l_hand_str) - if(standing) - standing.appearance_flags |= RESET_ALPHA - standing.appearance_flags |= PIXEL_SCALE - overlays_standing[HO_L_HAND_LAYER] = standing + . = l_hand.get_mob_overlay(src, slot_l_hand_str) + if(.) + if(islist(.)) + var/image/main = .[1] + main.appearance_flags |= RESET_ALPHA + main.appearance_flags |= PIXEL_SCALE + overlays_standing[HO_L_HAND_LAYER] = main + + var/image/back = .[2] + back.appearance_flags |= RESET_ALPHA + back.appearance_flags |= PIXEL_SCALE + overlays_standing[HO_L_HAND_LOW_LAYER] = back + else + var/image/standing = . + standing.appearance_flags |= RESET_ALPHA + standing.appearance_flags |= PIXEL_SCALE + overlays_standing[HO_L_HAND_LAYER] = standing + overlays_standing[HO_L_HAND_LOW_LAYER] = null + + else + overlays_standing[HO_L_HAND_LAYER] = null + overlays_standing[HO_L_HAND_LOW_LAYER] = null if (handcuffed) drop_l_hand() //This probably should not be here else overlays_standing[HO_L_HAND_LAYER] = null + overlays_standing[HO_L_HAND_LOW_LAYER] = null if(update_icons) queue_icon_update() diff --git a/code/modules/mob/living/carbon/resist.dm b/code/modules/mob/living/carbon/resist.dm index 1738ef64fe3..b6e6100e8f9 100644 --- a/code/modules/mob/living/carbon/resist.dm +++ b/code/modules/mob/living/carbon/resist.dm @@ -70,8 +70,8 @@ drop(handcuffed, force = TRUE) /mob/living/carbon/proc/can_break_cuffs() - if(MUTATION_HULK in mutations) - return 1 + if((MUTATION_HULK in mutations) || (MUTATION_STRONG in mutations)) + return TRUE /mob/living/carbon/proc/break_handcuffs() visible_message( diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/_clothing.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/_clothing.dm index 0e2f3024c18..578ad6bf53d 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/_clothing.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/_clothing.dm @@ -89,7 +89,7 @@ if(!IsAvailable()) return var/obj/item/clothing/glasses/prism_glasses/glasses = target - var/new_color = input(owner, "Choose the lens color:", "Color change",glasses.glasses_color) as color|null + var/new_color = tgui_color_picker(owner, "Choose the lens color:", "Color change",glasses.glasses_color) if(!new_color) return glasses.glasses_color = new_color @@ -113,6 +113,8 @@ to_chat(owner, SPAN_NOTICE("You channel nearby light into a glowing, ethereal prism.")) new /obj/structure/light_prism(get_turf(owner), glasses.glasses_color) +#define FLOWER_COOLDOWN 30 SECONDS + /obj/item/clothing/head/hairflower/peaceflower name = "heroine bud" desc = "An extremely addictive flower, full of peace magic." @@ -120,17 +122,16 @@ icon_state = "peaceflower" body_parts_covered = 0 - /obj/item/clothing/head/hairflower/peaceflower/equipped(mob/user) . = ..() if(ishuman(user)) var/mob/living/carbon/human/H = user if(istype(H.head, src.type)) ADD_TRAIT(H, TRAIT_PACIFISM) - set_next_think(world.time+10 SECOND) + set_next_think(world.time + FLOWER_COOLDOWN) /obj/item/clothing/head/hairflower/peaceflower/can_be_unequipped_by(mob/M, slot, disable_warning) - if(M==loc && slot==slot_head) + if(M == loc && slot == slot_head) to_chat(M, SPAN_WARNING("You feel at peace. Why would you want anything else?")) return FALSE return ..() @@ -145,9 +146,11 @@ /obj/item/clothing/head/hairflower/peaceflower/think() if(ishuman(loc)) var/mob/living/carbon/human/H = loc - H.reagents.add_reagent(/datum/reagent/space_drugs, 2) + H.reagents.add_reagent(/datum/reagent/space_drugs, 1) + + set_next_think(world.time + FLOWER_COOLDOWN) - set_next_think(world.time+10 SECOND) +#undef FLOWER_COOLDOWN /obj/item/clothing/suit/armor/heavy/adamantine name = "adamantine armor" diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/_corecross.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/_corecross.dm index 4f73913014d..3a35dbd86d3 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/_corecross.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/_corecross.dm @@ -87,10 +87,11 @@ To add a crossbreed: throw_range = 6 atom_flags = ATOM_FLAG_OPEN_CONTAINER -/obj/item/metroidcross/_examine_text(mob/user) +/obj/item/metroidcross/examine(mob/user, infix) . = ..() + if(effect_desc) - . += SPAN_NOTICE("\n[effect_desc]") + . += SPAN_NOTICE("[effect_desc]") /obj/item/metroidcross/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/_misc.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/_misc.dm index ed0439ff9e9..e0e9bdc18a5 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/_misc.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/_misc.dm @@ -50,12 +50,12 @@ icon = 'icons/obj/xenobiology/metroidcrossing.dmi' icon_state = "metroidbarrier_thick" -/obj/effect/forcefield/metroidwall/New() - addtimer(CALLBACK(src, nameof(.proc/finish_existance)), 300) +/obj/effect/forcefield/metroidwall/Initialize() + . = ..() + set_next_think(world.time + 30 SECONDS) -/obj/effect/forcefield/metroidwall/proc/finish_existance() - qdel(src) - return +/obj/effect/forcefield/metroidwall/think() + qdel_self() //Rainbow barrier - Chilling Rainbow /obj/effect/forcefield/metroidwall/rainbow @@ -85,9 +85,8 @@ if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(WT.remove_fuel(0, user)) + if(WT.use_tool(src, user, amount = 1)) damage = 15 - playsound(loc, 'sound/items/Welder.ogg', 100, 1) health -= damage if(health <= 0) diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/_status_effects.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/_status_effects.dm index f9aea8895dc..f4baa5ca761 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/_status_effects.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/_status_effects.dm @@ -504,7 +504,7 @@ return ..() -/datum/modifier/status_effect/stabilized/purple/_examine_text() +/datum/modifier/status_effect/stabilized/purple/examine() if(healed_last_tick) return SPAN_WARNING("[holder] [holder] regenerating slowly, purplish goo filling in small injuries!") @@ -560,7 +560,7 @@ var/cooldown = 10 var/max_cooldown = 10 -/datum/modifier/status_effect/stabilized/yellow/_examine_text() +/datum/modifier/status_effect/stabilized/yellow/examine() return SPAN_WARNING("Nearby electronics seem just a little more charged wherever [holder] go[holder].") /datum/modifier/status_effect/stabilized/yellow/on_applied() @@ -613,7 +613,7 @@ item.attackby(fire, holder) return ..() -/datum/modifier/status_effect/stabilized/darkpurple/_examine_text() +/datum/modifier/status_effect/stabilized/darkpurple/examine() return SPAN_NOTICE("[holder] fingertips burn brightly!") /datum/modifier/status_effect/stabilized/darkblue @@ -812,8 +812,6 @@ if(ishuman(holder)) var/mob/living/carbon/human/H = holder originalDNA = H.dna.Clone() - originalname = H.real_name - H.real_name = H.species.get_random_name(H.gender) for(var/i=1 to H.dna.UI.len) H.dna.SetUIValue(i,rand(1,4095)) @@ -822,7 +820,7 @@ return ..() // Only occasionally give examiners a warning. -/datum/modifier/status_effect/stabilized/grey/_examine_text() +/datum/modifier/status_effect/stabilized/grey/examine() if(prob(50)) return SPAN_WARNING("[holder] look[holder] a bit grey and gooey...") return null @@ -869,7 +867,7 @@ explosion(holder, devastation_range = 1, heavy_impact_range = 2, light_impact_range = 4) return ..() -/datum/modifier/status_effect/stabilized/oil/_examine_text() +/datum/modifier/status_effect/stabilized/oil/examine() return SPAN_WARNING("[holder] smell[holder] of sulfer and oil!") /// How much damage is dealt per healing done for the stabilized back. @@ -908,7 +906,7 @@ to_chat(holder, SPAN_NOTICE(FONT_LARGE("You feel your hands melt around [draining]'s neck as you start to drain [draining] of [draining] life!"))) to_chat(draining, SPAN_DANGER(FONT_LARGE("[holder]'s hands melt around your neck as you can feel your life starting to drain away!"))) -/datum/modifier/status_effect/stabilized/black/_examine_text() +/datum/modifier/status_effect/stabilized/black/examine() var/mob/living/draining = draining_ref?.resolve() if(!draining) return null @@ -1011,7 +1009,7 @@ colour = "adamantine" incoming_brute_damage_percent = 0.75 -/datum/modifier/status_effect/stabilized/adamantine/_examine_text() +/datum/modifier/status_effect/stabilized/adamantine/examine() return SPAN_WARNING("[holder] have strange metallic coating on [holder] skin.") /datum/modifier/status_effect/stabilized/rainbow diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/burning.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/burning.dm index 29cba74e7f7..62a27da3432 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/burning.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/burning.dm @@ -345,9 +345,13 @@ Burning extracts: colour = "oil" effect_desc = "Creates an explosion after a few seconds." +/obj/item/metroidcross/burning/oil/Initialize(mapload) + . = ..() + add_think_ctx("think_boom", CALLBACK(src, nameof(.proc/boom)), 0) + /obj/item/metroidcross/burning/oil/do_effect(mob/user) user.visible_message(SPAN_WARNING("[user] activates [src]. It's going to explode!"), SPAN_DANGER("You activate [src]. It crackles in anticipation")) - addtimer(CALLBACK(src, nameof(.proc/boom)), 50) + set_next_think_ctx("think_boom", world.time + 5 SECONDS) /// Inflicts a blastwave upon every mob within a small radius. /obj/item/metroidcross/burning/oil/proc/boom() diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/charged.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/charged.dm index 26964db26d7..db5b92f1194 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/charged.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/charged.dm @@ -228,10 +228,7 @@ Charged extracts: /obj/item/metroidcross/charged/gold/do_effect(mob/user) user.visible_message(SPAN_WARNING("[src] starts shuddering violently!")) - addtimer(CALLBACK(src, nameof(.proc/startTimer)), 50) - -/obj/item/metroidcross/charged/gold/proc/startTimer() - set_next_think(world.time + 1 SECONDS) + set_next_think(world.time + 6 SECONDS) /obj/item/metroidcross/charged/gold/think() visible_message(SPAN_WARNING("[src] lets off a spark, and produces a living creature!")) @@ -253,9 +250,13 @@ Charged extracts: colour = "oil" effect_desc = "Creates an explosion after a few seconds." +/obj/item/metroidcross/charged/oil/Initialize(mapload) + . = ..() + add_think_ctx("think_boom", CALLBACK(src, nameof(.proc/boom)), 0) + /obj/item/metroidcross/charged/oil/do_effect(mob/user) user.visible_message(SPAN_DANGER("[src] begins to shake with rapidly increasing force!")) - addtimer(CALLBACK(src, nameof(.proc/boom)), 50) + set_next_think_ctx("think_boom", world.time + 5 SECONDS) /obj/item/metroidcross/charged/oil/proc/boom() explosion(src, devastation_range = 2, heavy_impact_range = 3, light_impact_range = 4) //Much smaller effect than normal oils, but devastatingly strong where it does hit. diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/chilling.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/chilling.dm index f44cce00106..c32a1985c6e 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/chilling.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/chilling.dm @@ -276,9 +276,13 @@ Chilling extracts: colour = "oil" effect_desc = "It creates a weak, but wide-ranged explosion." +/obj/item/metroidcross/chilling/oil/Initialize(mapload) + . = ..() + add_think_ctx("boom", CALLBACK(src, nameof(.proc/boom)), 0) + /obj/item/metroidcross/chilling/oil/do_effect(mob/user) user.visible_message(SPAN_DANGER("[src] begins to shake with muted intensity!")) - addtimer(CALLBACK(src, nameof(.proc/boom)), 50) + set_next_think_ctx("boom", world.time + 5 SECONDS) /obj/item/metroidcross/chilling/oil/proc/boom() explosion(src, devastation_range = -1, heavy_impact_range = -1, light_impact_range = 10) //Large radius, but mostly light damage, and no flash. diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/industrial.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/industrial.dm index 439cb5e066e..3e926969726 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/industrial.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/industrial.dm @@ -12,7 +12,7 @@ Industrial extracts: var/plasmaabsorbed = 0 //Units of plasma aborbed by the extract already. Absorbs at a rate of 2u/obj per every 3 seconds. var/itemamount = 1 //How many items to spawn -/obj/item/metroidcross/industrial/_examine_text(mob/user) +/obj/item/metroidcross/industrial/examine(mob/user, infix) . = ..() . += "It currently has [plasmaabsorbed] units of plasma floating inside the outer shell, out of [plasmarequired] units." diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/prismatic.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/prismatic.dm index c04c4807483..caf30730935 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/prismatic.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/prismatic.dm @@ -115,7 +115,7 @@ Prismatic extracts: colour = "rainbow" /obj/item/metroidcross/prismatic/rainbow/attack_self(mob/user) - var/newcolor = input(user, "Choose the metroid color:", "Color change",paintcolor) as color|null + var/newcolor = tgui_color_picker(user, "Choose the metroid color:", "Color change", paintcolor) if(user.incapacitated()) return if(!newcolor) diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/regenerative.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/regenerative.dm index 8d20d24d450..848168b870e 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/regenerative.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/regenerative.dm @@ -165,7 +165,7 @@ Regenerative extracts: effect_desc = "Fully heals the target and makes a second regenerative core with no special effects." /obj/item/metroidcross/regenerative/cerulean/core_effect(mob/living/target, mob/user) - var/obj/item/metroidcross/X = new /obj/item/metroidcross/regenerative(user.loc) + var/obj/item/metroidcross/X = new /obj/item/metroidcross/regenerative/green(user.loc) user.put_in_active_hand(X) to_chat(user, SPAN_NOTICE("Some of the milky goo congeals in your hand!")) @@ -267,7 +267,7 @@ Regenerative extracts: D.adjustFireLoss(target.getFireLoss()) D.adjustToxLoss(target.getToxLoss()) D.death() - addtimer(CALLBACK(D, nameof(/mob.proc/dust)), 300) + D.set_next_think_ctx("dust", world.time + 30 SECONDS) return var/mob/living/dummy = new target.type(target.loc) @@ -275,7 +275,7 @@ Regenerative extracts: dummy.adjustFireLoss(target.getFireLoss()) dummy.adjustToxLoss(target.getToxLoss()) dummy.death() - addtimer(CALLBACK(dummy, nameof(/mob.proc/dust)), 300) + dummy.set_next_think_ctx("dust", world.time + 30 SECONDS) /obj/item/metroidcross/regenerative/lightpink colour = "light pink" diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/reproductive.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/reproductive.dm index a25f81dd9f6..ef6b67a4908 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/reproductive.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/reproductive.dm @@ -14,24 +14,24 @@ var/last_meal = 0 -/obj/item/metroidcross/reproductive/_examine_text(mob/user) +/obj/item/metroidcross/reproductive/examine(mob/user, infix) . = ..() - . += SPAN("notice", "\nIt looks like it has space for [meals_left] more cubes.") + . += SPAN("notice", "It looks like it has space for [meals_left] more cubes.") /obj/item/metroidcross/reproductive/attackby(obj/item/O, mob/user) if((last_meal + DIGESTION_COOLDOWN) > world.time) - show_splash_text(user, "still digesting!") + show_splash_text(user, "still digesting!", "\The [src] is still digesting!") return if(istype(O, /obj/item/reagent_containers/food/monkeycube)) if(!_feed_extract(O)) return - show_splash_text(user, "cube was successfuly fed.") + show_splash_text(user, "cube was successfuly fed.", "You feed \the [src] with \the [O].") if(istype(O, /obj/item/storage/xenobag)) if(!_feed_extracts_from_bag(O, user)) return - show_splash_text(user, "extract was successfuly fed from bag.") + show_splash_text(user, "extract was successfuly fed from bag.", "You feed \the [src] from \the [O].") _reproduce() @@ -72,7 +72,7 @@ if(meals_left > 0) return - show_splash_text_to_viewers("starts to swell!") + show_splash_text_to_viewers("starts to swell!", "\The [src] starts to swell!") meals_left = REPRODUCTIVE_EXTRACT_VOLUME last_meal = world.time diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/selfsustaining.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/selfsustaining.dm index 718e889f6c5..48daecb8027 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/selfsustaining.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/selfsustaining.dm @@ -59,8 +59,9 @@ Self-sustaining extracts: if(secondary) extract.reagents.add_reagent(secondary,amount) -/obj/item/autometroid/_examine_text(mob/user) +/obj/item/autometroid/examine(mob/user, infix) . = ..() + if(effect_desc) . += SPAN_NOTICE("[effect_desc]") diff --git a/code/modules/mob/living/carbon/xenobiological/crossbreeding/stabilized.dm b/code/modules/mob/living/carbon/xenobiological/crossbreeding/stabilized.dm index 7ad52472294..0c6f219a77f 100644 --- a/code/modules/mob/living/carbon/xenobiological/crossbreeding/stabilized.dm +++ b/code/modules/mob/living/carbon/xenobiological/crossbreeding/stabilized.dm @@ -127,10 +127,13 @@ Stabilized extracts: var/mob_name = "Familiar" /obj/item/metroidcross/stabilized/gold/proc/generate_mobtype() - var/static/list/mob_spawn_pets = list() - if(!length(mob_spawn_pets)) - mob_spawn_pets = subtypesof(/mob/living/simple_animal)-subtypesof(/mob/living/simple_animal/hostile) - mob_type = pick(mob_spawn_pets) + mob_type = pick(/mob/living/simple_animal/cat, + /mob/living/simple_animal/cat/kitten, + /mob/living/simple_animal/corgi, + /mob/living/simple_animal/corgi/puppy, + /mob/living/simple_animal/cow, + /mob/living/simple_animal/chick, + /mob/living/simple_animal/chicken) /obj/item/metroidcross/stabilized/gold/Initialize(mapload) . = ..() @@ -146,6 +149,7 @@ Stabilized extracts: var/mob/living/L = user if(L.has_modifier_of_type(/datum/modifier/status_effect/stabilized/gold)) L.remove_a_modifier_of_type(/datum/modifier/status_effect/stabilized/gold) + if(choice == "Familiar Location") to_chat(user, SPAN_NOTICE("You prod [src], and it shudders slightly.")) var/datum/modifier/status_effect/stabilized/gold/G = linked_effect diff --git a/code/modules/mob/living/carbon/xenobiological/examine.dm b/code/modules/mob/living/carbon/xenobiological/examine.dm index d8d81593d64..599de5c9041 100644 --- a/code/modules/mob/living/carbon/xenobiological/examine.dm +++ b/code/modules/mob/living/carbon/xenobiological/examine.dm @@ -1,8 +1,9 @@ -/mob/living/carbon/metroid/_examine_text(mob/user) +/mob/living/carbon/metroid/examinate(atom/to_axamine) . = ..() + var/msg = "" if (src.is_ooc_dead()) - msg += "It is limp and unresponsive.\n" + msg += SPAN_DEADSAY("It is limp and unresponsive.") else if (src.getBruteLoss()) msg += "" diff --git a/code/modules/mob/living/carbon/xenobiological/extracts.dm b/code/modules/mob/living/carbon/xenobiological/extracts.dm index 57108573bde..f2cc38c4e8e 100644 --- a/code/modules/mob/living/carbon/xenobiological/extracts.dm +++ b/code/modules/mob/living/carbon/xenobiological/extracts.dm @@ -18,18 +18,18 @@ /obj/item/metroid_extract/attackby(obj/item/O as obj, mob/user as mob) if(istype(O, /obj/item/metroidsteroid2)) if(enhanced == 1) - to_chat(user, " This extract has already been enhanced!") + show_splash_text(user, SPAN_WARNING("This extract has already been enhanced!")) return ..() if(Uses == 0) - to_chat(user, " You can't enhance a used extract!") + show_splash_text(user, SPAN_WARNING("You can't enhance a used extract!")) return ..() - to_chat(user, "You apply the enhancer. It now has triple the amount of uses.") + show_splash_text(user, "You apply the enhancer. It now has triple the amount of uses.") Uses = 3 enhanced = 1 qdel(O) if(O.type == /obj/item/metroidpotion/enhancer/max) - to_chat(user, SPAN_NOTICE("You dump the maximizer on the metroid extract. It can now be used a total of 5 times!")) + show_splash_text(user, SPAN_NOTICE("You dump the maximizer on the metroid extract. It can now be used a total of 5 times!")) Uses = 5 enhanced = 1 qdel(O) @@ -39,7 +39,7 @@ create_reagents(100) /obj/item/metroid_extract/proc/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) - to_chat(user, SPAN_WARNING("Nothing happened... This metroid extract cannot be activated this way.")) + show_splash_text(user, SPAN_WARNING("Nothing happened... This metroid extract cannot be activated this way.")) return FALSE /obj/item/metroid_extract/grey @@ -50,20 +50,20 @@ /obj/item/metroid_extract/grey/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) switch(activation_type) if(METROID_ACTIVATE_MINOR) - to_chat(user, SPAN_WARNING("You feel yourself reverting to human form...")) + show_splash_text(user, SPAN_WARNING("You feel yourself reverting to human form...")) if(do_after(user, 120, target = user)) - to_chat(user, SPAN_WARNING("You feel human again!")) - user.set_species(/datum/species/human) + show_splash_text(user, SPAN_WARNING("You feel human again!")) + user.set_species(SPECIES_HUMAN) return - to_chat(user, SPAN_NOTICE("You stop the transformation.")) + show_splash_text(user, SPAN_NOTICE("You stop the transformation.")) if(METROID_ACTIVATE_MAJOR) - to_chat(user, SPAN_WARNING("You feel yourself radically changing your metroid type...")) + show_splash_text(user, SPAN_WARNING("You feel yourself radically changing your metroid type...")) if(do_after(user, 120, target = user)) - to_chat(user, SPAN_WARNING("You feel different!")) - user.set_species(pick(/datum/species/promethean/slime, /datum/species/promethean/stargazer)) + show_splash_text(user, SPAN_WARNING("You feel different!")) + user.set_species(pick(SPECIES_SLIMEPERSON, SPECIES_STARGAZER)) return - to_chat(user, SPAN_NOTICE("You stop the transformation.")) + show_splash_text(user, SPAN_NOTICE("You stop the transformation.")) /obj/item/metroid_extract/gold name = "gold metroid extract" @@ -159,7 +159,7 @@ return 150 if(METROID_ACTIVATE_MAJOR) - var/obj/item/stack/material/iron/O = new(null, 5) + var/obj/item/stack/material/steel/O = new(null, 5) if(!user.put_in_active_hand(O)) O.forceMove(user.drop_location()) playsound(user, 'sound/effects/splat.ogg', 50, TRUE) @@ -175,12 +175,12 @@ switch(activation_type) if(METROID_ACTIVATE_MINOR) user.nutrition+=50 - user.regenerate_blood(50) - to_chat(user, SPAN_NOTICE("You activate [src], and your body is refilled with fresh metroid jelly!")) + user.reagents.add_reagent(/datum/reagent/metroidjelly, 50) + show_splash_text(user, SPAN_NOTICE("You activate [src], and your body is refilled with fresh metroid jelly!")) return 150 if(METROID_ACTIVATE_MAJOR) - to_chat(user, SPAN_NOTICE("You activate [src], and it releases regenerative chemicals!")) + show_splash_text(user, SPAN_NOTICE("You activate [src], and it releases regenerative chemicals!")) user.reagents.add_reagent(/datum/reagent/regen_jelly,10) return 600 @@ -203,7 +203,7 @@ var/turf/T = get_turf(user) if(istype(T)) T.assume_gas("plasma",20) - to_chat(user, SPAN_WARNING("You activate [src], and a cloud of plasma bursts out of your skin!")) + show_splash_text(user, SPAN_WARNING("You activate [src], and a cloud of plasma bursts out of your skin!")) return 900 /obj/item/metroid_extract/orange @@ -214,7 +214,7 @@ /obj/item/metroid_extract/orange/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) switch(activation_type) if(METROID_ACTIVATE_MINOR) - to_chat(user, SPAN_NOTICE("You activate [src]. You start feeling hot!")) + show_splash_text(user, SPAN_NOTICE("You activate [src]. You start feeling hot!")) user.reagents.add_reagent(/datum/reagent/capsaicin,10) return 150 @@ -222,7 +222,7 @@ user.reagents.add_reagent(/datum/reagent/phosphorus,5)// user.reagents.add_reagent(/datum/reagent/potassium,5) // = smoke, along with any reagents inside mr. metroid user.reagents.add_reagent(/datum/reagent/sugar,5) // - to_chat(user, SPAN_WARNING("You activate [src], and a cloud of smoke bursts out of your skin!")) + show_splash_text(user, SPAN_WARNING("You activate [src], and a cloud of smoke bursts out of your skin!")) return 450 /obj/item/metroid_extract/yellow @@ -230,16 +230,22 @@ icon_state = "yellow metroid extract" effectmod = "charged" +/obj/item/metroid_extract/yellow/Initialize() + . = ..() + add_think_ctx("update_glow", ) + /obj/item/metroid_extract/yellow/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) switch(activation_type) if(METROID_ACTIVATE_MINOR) + var/datum/species/promethean/luminescent/species = user.species if(extract_eater_comp.glow_intensity != LUMINESCENT_DEFAULT_GLOW) - to_chat(user, SPAN_WARNING("Your glow is already enhanced!")) + show_splash_text(user, SPAN_WARNING("Your glow is already enhanced!")) return - var/datum/species/promethean/luminescent/species = user.species - species.update_glow(user, 5) - addtimer(CALLBACK(species, nameof(/datum/species/promethean/luminescent.proc/update_glow), user, LUMINESCENT_DEFAULT_GLOW), 600) - to_chat(user, SPAN_NOTICE("You start glowing brighter.")) + + species.update_glow(user, LUMINESCENT_ENHANCED_GLOW) + species.set_next_think_ctx("update_glow", world.time + 40 SECONDS, user, LUMINESCENT_DEFAULT_GLOW) + show_splash_text(user, SPAN_NOTICE("You start glowing brighter.")) + return 600 if(METROID_ACTIVATE_MAJOR) user.visible_message(SPAN_WARNING("[user]'s skin starts flashing intermittently..."), SPAN_WARNING("Your skin starts flashing intermittently...")) @@ -256,8 +262,8 @@ /obj/item/metroid_extract/red/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) switch(activation_type) if(METROID_ACTIVATE_MINOR) - to_chat(user, SPAN_NOTICE("You activate [src]. You start feeling fast!")) - user.reagents.add_reagent(/datum/reagent/inaprovaline,5) + show_splash_text(user, SPAN_NOTICE("You activate [src]. You start feeling fast!")) + user.reagents.add_reagent(/datum/reagent/hyperzine, 5) return 450 if(METROID_ACTIVATE_MAJOR) @@ -272,18 +278,20 @@ icon_state = "blue metroid extract" effectmod = "stabilized" -/obj/item/metroid_extract/blue/obj/item/metroid_extract/blue/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) +/obj/item/metroid_extract/blue/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) switch(activation_type) if(METROID_ACTIVATE_MINOR) - to_chat(user, SPAN_NOTICE("You activate [src]. Your genome feels more stable!")) + show_splash_text(user, SPAN_NOTICE("You activate [src]. Your genome feels more stable!")) user.adjustCloneLoss(-15) return 250 if(METROID_ACTIVATE_MAJOR) - /*FIXME - user.reagents.create_foam(/datum/effect_system/fluid_spread/foam, 20, log = TRUE) + var/datum/effect/effect/system/foam_spread/FS = new + FS.set_up(20, get_turf(user), user.reagents) + user.reagents.remove_any(user.reagents.total_volume) + FS.start() + log_admin("[user]([user.ckey]) started foam spread", get_turf(user), TRUE) user.visible_message(SPAN_DANGER("Foam spews out from [user]'s skin!"), SPAN_WARNING("You activate [src], and foam bursts out of your skin!")) - */ return 600 /obj/item/metroid_extract/darkblue @@ -294,7 +302,7 @@ /obj/item/metroid_extract/darkblue/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) switch(activation_type) if(METROID_ACTIVATE_MINOR) - to_chat(user, SPAN_NOTICE("You activate [src]. You start feeling colder!")) + show_splash_text(user, SPAN_NOTICE("You activate [src]. You start feeling colder!")) user.ExtinguishMob() user.adjust_fire_stacks(-20) user.reagents.add_reagent(/datum/reagent/frostoil,6) @@ -305,7 +313,7 @@ var/turf/T = get_turf(user) if(istype(T)) T.assume_gas("nitrogen",40,2.7) - to_chat(user, SPAN_WARNING("You activate [src], and icy air bursts out of your skin!")) + show_splash_text(user, SPAN_WARNING("You activate [src], and icy air bursts out of your skin!")) return 900 /obj/item/metroid_extract/pink @@ -317,7 +325,7 @@ switch(activation_type) if(METROID_ACTIVATE_MINOR) if(user.gender != MALE && user.gender != FEMALE) - to_chat(user, SPAN_WARNING("You can't swap your gender!")) + show_splash_text(user, SPAN_WARNING("You can't swap your gender!")) return if(user.gender == MALE) @@ -347,14 +355,14 @@ if(!user.put_in_active_hand(M)) M.forceMove(user.drop_location()) playsound(user, 'sound/effects/splat.ogg', 50, TRUE) - to_chat(user, SPAN_NOTICE("You spit out a monkey cube.")) + show_splash_text(user, SPAN_NOTICE("You spit out a monkey cube.")) return 120 if(METROID_ACTIVATE_MAJOR) - to_chat(user, SPAN_NOTICE("Your [name] starts pulsing...")) + show_splash_text(user, SPAN_NOTICE("Your [name] starts pulsing...")) if(do_after(user, 40, target = user)) - var/mob/living/carbon/metroid/S = new(get_turf(user), "grey") + var/mob/living/carbon/metroid/S = new(get_turf(user), "green") playsound(user, 'sound/effects/splat.ogg', 50, TRUE) - to_chat(user, SPAN_NOTICE("You spit out [S].")) + show_splash_text(user, SPAN_NOTICE("You spit out [S].")) return 350 else return 0 @@ -387,19 +395,29 @@ /obj/item/metroid_extract/black/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) switch(activation_type) if(METROID_ACTIVATE_MINOR) - to_chat(user, SPAN_DANGER("You feel something wrong inside you...")) + show_splash_text(user, SPAN_DANGER("You feel something wrong inside you...")) var/datum/spell/targeted/shapeshift/metroid_form/transform = new() transform.cast(user) return 100 if(METROID_ACTIVATE_MAJOR) - /*TODO - SHADOWLING - to_chat(user, SPAN_WARNING("You feel your own light turning dark...")) + show_splash_text(user, SPAN_WARNING("You feel your own light turning dark...")) if(do_after(user, 120, target = user)) - to_chat(user, SPAN_WARNING("You feel a longing for darkness.")) - user.set_species(pick(/datum/species/shadow)) - return*/ - to_chat(user, SPAN_NOTICE("You don't fell linkage with darkness")) + if(!player_is_antag(user.mind)) + show_splash_text(user, SPAN_WARNING("You feel a longing for darkness.")) + user.set_species(pick( + SPECIES_HUMAN, + SPECIES_GRAVWORLDER, + SPECIES_SPACER, + SPECIES_VATGROWN, + SPECIES_TAJARA, + SPECIES_UNATHI, + SPECIES_SKRELL, + SPECIES_SWINE, + )) + user.make_vampire() + return + show_splash_text(user, SPAN_NOTICE("You don't fell linkage with darkness")) /obj/item/metroid_extract/oil name = "oil metroid extract" @@ -409,7 +427,7 @@ /obj/item/metroid_extract/oil/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) switch(activation_type) if(METROID_ACTIVATE_MINOR) - to_chat(user, SPAN_WARNING("You vomit slippery oil.")) + show_splash_text(user, SPAN_WARNING("You vomit slippery oil.")) playsound(user, 'sound/effects/splat.ogg', 50, TRUE) var/turf/simulated/T = get_turf(user) new /obj/effect/decal/cleanable/blood/oil(T) @@ -419,11 +437,11 @@ if(METROID_ACTIVATE_MAJOR) user.visible_message(SPAN_WARNING("[user]'s skin starts pulsing and glowing ominously..."), SPAN_DANGER("You feel unstable...")) if(do_after(user, 60, target = user)) - to_chat(user, SPAN_DANGER("You explode!")) + show_splash_text(user, SPAN_DANGER("You explode!")) explosion(user, devastation_range = 1, heavy_impact_range = 3, light_impact_range = 6) user.gib() return - to_chat(user, SPAN_NOTICE("You stop feeding [src], and the feeling passes.")) + show_splash_text(user, SPAN_NOTICE("You stop feeding [src], and the feeling passes.")) /obj/item/metroid_extract/adamantine @@ -435,19 +453,19 @@ switch(activation_type) if(METROID_ACTIVATE_MINOR) if(HAS_TRAIT(user, /datum/modifier/status_effect/adamantine)) - to_chat(user, SPAN_WARNING("Your skin is already hardened!")) + show_splash_text(user, SPAN_WARNING("Your skin is already hardened!")) return - to_chat(user, SPAN_NOTICE("You feel your skin harden and become more resistant.")) + show_splash_text(user, SPAN_NOTICE("You feel your skin harden and become more resistant.")) ADD_TRAIT(user, /datum/modifier/status_effect/adamantine) return 450 if(METROID_ACTIVATE_MAJOR) - to_chat(user, SPAN_WARNING("You feel your body rapidly crystallizing...")) + show_splash_text(user, SPAN_WARNING("You feel your body rapidly crystallizing...")) if(do_after(user, 120, target = user)) - to_chat(user, SPAN_WARNING("You feel solid.")) - user.set_species(/datum/species/golem/adamantine) + show_splash_text(user, SPAN_WARNING("You feel solid.")) + user.set_species(SPECIES_GOLEM_ADAMANTINE) return - to_chat(user, SPAN_NOTICE("You stop feeding [src], and your body returns to its metroidlike state.")) + show_splash_text(user, SPAN_NOTICE("You stop feeding [src], and your body returns to its metroidlike state.")) /obj/item/metroid_extract/bluespace name = "bluespace metroid extract" @@ -461,9 +479,9 @@ /obj/item/metroid_extract/bluespace/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) switch(activation_type) if(METROID_ACTIVATE_MINOR) - to_chat(user, SPAN_WARNING("You feel your body vibrating...")) + show_splash_text(user, SPAN_WARNING("You feel your body vibrating...")) if(do_after(user, 25, target = user)) - to_chat(user, SPAN_WARNING("You teleport!")) + show_splash_text(user, SPAN_WARNING("You teleport!")) var/turf/T = get_turf(user) playsound(T,'sound/effects/weapons/energy/emitter.ogg') do_teleport(user, T, 8) @@ -472,7 +490,7 @@ if(METROID_ACTIVATE_MAJOR) if(!teleport_ready) - to_chat(user, SPAN_NOTICE("You feel yourself anchoring to this spot...")) + show_splash_text(user, SPAN_NOTICE("You feel yourself anchoring to this spot...")) var/turf/T = get_turf(user) teleport_x = T.x teleport_y = T.y @@ -482,7 +500,7 @@ teleport_ready = FALSE if(teleport_x && teleport_y && teleport_z) var/turf/T = locate(teleport_x, teleport_y, teleport_z) - to_chat(user, SPAN_NOTICE("You snap back to your anchor point!")) + show_splash_text(user, SPAN_NOTICE("You snap back to your anchor point!")) playsound(get_turf(user),'sound/effects/weapons/energy/emitter.ogg') do_teleport(user, T) playsound(T,'sound/effects/weapons/energy/emitter.ogg') @@ -496,8 +514,8 @@ /obj/item/metroid_extract/pyrite/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) switch(activation_type) if(METROID_ACTIVATE_MINOR) - var/chosen = pick(difflist(subtypesof(/obj/item/pen/crayon))) - var/obj/item/O = new chosen(null) + var/crayon_type = pick(subtypesof(/obj/item/pen/crayon) - /obj/item/pen/crayon/random) + var/obj/item/O = new crayon_type if(!user.put_in_active_hand(O)) O.forceMove(user.drop_location()) playsound(user, 'sound/effects/splat.ogg', 50, TRUE) @@ -521,16 +539,28 @@ /obj/item/metroid_extract/cerulean/activate(mob/living/carbon/human/user, datum/component/extract_eater/extract_eater_comp, activation_type) switch(activation_type) if(METROID_ACTIVATE_MINOR) - user.reagents.add_reagent(/datum/reagent/inaprovaline,15) - to_chat(user, SPAN_NOTICE("You feel like you don't need to breathe!")) - return 150 + if(!istype(user.get_active_hand(), /obj/item/tank)) + show_splash_text(user, SPAN_NOTICE("You need to hold something capable to hold gases!")) + return 0 + + var/obj/item/tank/tank = user.get_active_hand() + visible_message(SPAN_NOTICE("\The [user] started to blow into \the [tank]."), SPAN_NOTICE("You started to blow into \the [tank].")) + if(!do_after(user, 30 SECONDS, target = user)) + return + + var/datum/gas_mixture/GM = new + GM.adjust_gas("oxygen", (ONE_ATMOSPHERE*tank.volume / (R_IDEAL_GAS_EQUATION * (30 CELSIUS)))) + var/datum/gas_mixture/tank_GM = tank.return_air() + tank_GM.add(GM) + show_splash_text(user, SPAN_NOTICE("You're feeling some dizziness, and decided to stop!")) + return 300 if(METROID_ACTIVATE_MAJOR) var/turf/T = get_turf(user) if(istype(T)) T.assume_gas("oxygen", 11, 293.15) T.assume_gas("nitrogen", 41, 293.15) - to_chat(user, SPAN_WARNING("You activate [src], and fresh air bursts out of your skin!")) + show_splash_text(user, SPAN_WARNING("You activate [src], and fresh air bursts out of your skin!")) return 600 /obj/item/metroid_extract/sepia @@ -568,7 +598,7 @@ user.UpdateAppearance(mutcolor_update=1) var/datum/species/promethean/luminescent/species = user.species species.update_glow(user) - to_chat(user, SPAN_NOTICE("You feel different...")) + show_splash_text(user, SPAN_NOTICE("You feel different...")) return 100 if(METROID_ACTIVATE_MAJOR) diff --git a/code/modules/mob/living/carbon/xenobiological/items.dm b/code/modules/mob/living/carbon/xenobiological/items.dm index c8ae81cd35e..eafba01226f 100644 --- a/code/modules/mob/living/carbon/xenobiological/items.dm +++ b/code/modules/mob/living/carbon/xenobiological/items.dm @@ -210,6 +210,7 @@ /obj/item/golem_shell/attackby(obj/item/I, mob/user, params) . = ..() var/static/list/golem_shell_species_types = list( + /obj/item/stack/material/adamantine = SPECIES_GOLEM_ADAMANTINE, /obj/item/stack/material/iron = SPECIES_GOLEM, /obj/item/stack/material/steel = SPECIES_GOLEM, /obj/item/stack/material/glass = SPECIES_GOLEM_GLASS, @@ -233,7 +234,13 @@ /obj/item/stack/material/mhydrogen = SPECIES_GOLEM_HYDROGEN, ) - if(!LAZYLEN(GLOB.golems_resonator)) + if(istype(I,/obj/item/stack/material/adamantine)) + var/obj/item/stack/stuff_stack = I + + if(!stuff_stack.use(2)) + to_chat(user, SPAN_WARNING("You need at least two ingots to finish a golem!")) + return + qdel(I) to_chat(user, SPAN_NOTICE("You feel some magic pulse from shell.")) to_chat(user, SPAN_NOTICE("You finish up the golem shell with adamantine?!")) @@ -360,7 +367,7 @@ if(reagentselect == "Metroid Jelly") reagentselect = /datum/reagent/metroidjelly - addtimer(CALLBACK(metroid_extract.reagents, nameof(/datum/reagents.proc/add_reagent), reagentselect, 5), rand(1.5 SECONDS, 6 SECONDS)) + metroid_extract.reagents?.set_next_think_ctx("delayed_add_reagents", world.time + rand(1.5 SECONDS, 6 SECONDS), reagentselect, 5) var/steps = rand(1, 4) for(var/step in 1 to steps) step_away(src, loc) diff --git a/code/modules/mob/living/carbon/xenobiological/machinery/monkey_recycler.dm b/code/modules/mob/living/carbon/xenobiological/machinery/monkey_recycler.dm index c267e20cd92..4f761ff5346 100644 --- a/code/modules/mob/living/carbon/xenobiological/machinery/monkey_recycler.dm +++ b/code/modules/mob/living/carbon/xenobiological/machinery/monkey_recycler.dm @@ -49,8 +49,9 @@ GLOBAL_LIST_EMPTY(monkey_recyclers) for(var/obj/item/stock_parts/matter_bin/matter_bin in component_parts) cube_production += matter_bin.rating * 0.1 -/obj/machinery/monkey_recycler/_examine_text(mob/user) +/obj/machinery/monkey_recycler/examine(mob/user, infix) . = ..() + if(in_range(user, src) || isobserver(user)) . += SPAN_NOTICE("The status display reads: Producing [cube_production] cubes for every monkey inserted.") diff --git a/code/modules/mob/living/carbon/xenobiological/xenobiological.dm b/code/modules/mob/living/carbon/xenobiological/xenobiological.dm index af8af74f65e..8149291e47b 100644 --- a/code/modules/mob/living/carbon/xenobiological/xenobiological.dm +++ b/code/modules/mob/living/carbon/xenobiological/xenobiological.dm @@ -69,8 +69,7 @@ adjustToxLoss(amount-getToxLoss()) /mob/living/carbon/metroid/New(location, colour = "green") - - verbs += /mob/living/proc/ventcrawl + grant_verb(src, /mob/living/proc/ventcrawl) src.colour = colour number = random_id(/mob/living/carbon/metroid, 1, 1000) @@ -144,22 +143,21 @@ /mob/living/carbon/metroid/Allow_Spacemove() return 1 -/mob/living/carbon/metroid/Stat() +/mob/living/carbon/metroid/get_status_tab_items() . = ..() - statpanel("Status") - stat(null, "Health: [round((health / maxHealth) * 100)]%") - stat(null, "Intent: [a_intent]") + . += "Health: [round((health / maxHealth) * 100)]%" + . += "Intent: [a_intent]" - if (client.statpanel == "Status") - stat(null, "Nutrition: [nutrition]/[get_max_nutrition()]") - if(amount_grown >= 10) - if(is_adult) - stat(null, "You can reproduce!") - else - stat(null, "You can evolve!") + . += "Nutrition: [nutrition]/[get_max_nutrition()]" + + if(amount_grown >= 10) + if(is_adult) + . += "You can reproduce!" + else + . += "You can evolve!" - stat(null,"Power Level: [powerlevel]") + . += "Power Level: [powerlevel]" /mob/living/carbon/metroid/adjustFireLoss(amount) ..(-abs(amount)) // Heals them @@ -258,7 +256,7 @@ attacked += 10 if (prob(90)) - if (MUTATION_HULK in H.mutations) + if((MUTATION_HULK in H.mutations) || (MUTATION_STRONG in H.mutations)) damage += 5 if(Victim || Target) Feedstop() diff --git a/code/modules/mob/living/default_language.dm b/code/modules/mob/living/default_language.dm index b1d258ac341..e90cebe7181 100644 --- a/code/modules/mob/living/default_language.dm +++ b/code/modules/mob/living/default_language.dm @@ -1,41 +1,31 @@ /mob/living var/datum/language/default_language -/mob/living/verb/set_default_language(language as null|anything in languages) - set name = "Set Default Language" - set category = "IC" - - if (only_species_language && language != all_languages[src.species_language]) - to_chat(src, "You can only speak your species language, [src.species_language].") - return 0 - - if(language == all_languages[src.species_language]) - to_chat(src, "You will now speak your standard default language, [language], if you do not specify a language when speaking.") - else if (language) - +/mob/living/proc/set_default_language(datum/language/language) + if(only_species_language && language != all_languages[species_language]) + show_splash_text(src, "can't speak", SPAN_NOTICE("You can only speak your species language, [src.species_language].")) + return FALSE + + if(isnull(language)) + show_splash_text(src, "now speaking in native", SPAN_NOTICE("You will now speak whatever your standard default language is if you do not specify one when speaking.")) + else if(language == all_languages[species_language]) + show_splash_text(src, "now speaking [language]", SPAN_NOTICE("You will now speak your standard default language, [language], if you do not specify a language when speaking.")) + else if(language && !can_speak(language)) - to_chat(src, "You are unable to speak that language.") return - to_chat(src, "You will now speak [language] if you do not specify a language when speaking.") - else - - to_chat(src, "You will now speak whatever your standard default language is if you do not specify one when speaking.") + show_splash_text(src, "now speaking [language]", SPAN_NOTICE("You will now speak [language] if you do not specify a language when speaking.")) default_language = language -// Silicons can't neccessarily speak everything in their languages list -/mob/living/silicon/set_default_language(language as null|anything in speech_synthesizer_langs) - ..() - /mob/living/verb/check_default_language() set name = "Check Default Language" set category = "IC" if(default_language) - to_chat(src, "You are currently speaking [default_language] by default.") + to_chat(src, SPAN_NOTICE("You are currently speaking [default_language] by default.")) else - to_chat(src, "Your current default language is your species or mob type default.") + to_chat(src, SPAN_NOTICE("Your current default language is your species or mob type default.")) /mob/living/proc/visible_emote(act_desc) visible_message("[src] [act_desc]") diff --git a/code/modules/mob/living/deity/deity.dm b/code/modules/mob/living/deity/deity.dm index 3b12f2aec0b..29c1f22bf49 100644 --- a/code/modules/mob/living/deity/deity.dm +++ b/code/modules/mob/living/deity/deity.dm @@ -106,7 +106,7 @@ var/newname = sanitize(input(src, "Choose a name for your new form.", "Name change", form.name) as text, MAX_NAME_LEN) if(newname) fully_replace_character_name(newname) - src.verbs -= /mob/living/deity/verb/choose_form + revoke_verb(src, /mob/living/deity/verb/choose_form) show_browser(src, null, "window=godform") for(var/m in minions) var/datum/mind/mind = m diff --git a/code/modules/mob/living/deity/deity_Stat.dm b/code/modules/mob/living/deity/deity_Stat.dm deleted file mode 100644 index e529f2feab7..00000000000 --- a/code/modules/mob/living/deity/deity_Stat.dm +++ /dev/null @@ -1,17 +0,0 @@ -/mob/living/deity/Stat() - . = ..() - if(statpanel("Status")) - stat("Health", "[health]/[maxHealth]") - stat("Power", mob_uplink.uses) - stat("Power Minimum", power_min) - stat("Structure Num", structures.len) - stat("Minion Num", minions.len) - var/boon_name = "None" - if(current_boon) - if(istype(current_boon, /datum/spell)) - var/datum/spell/S = current_boon - boon_name = S.name - else - var/obj/O = current_boon - boon_name = O.name - stat("Current Boon",boon_name) diff --git a/code/modules/mob/living/deity/phenomena/communication.dm b/code/modules/mob/living/deity/phenomena/communication.dm index f4ae34de855..7c967899738 100644 --- a/code/modules/mob/living/deity/phenomena/communication.dm +++ b/code/modules/mob/living/deity/phenomena/communication.dm @@ -35,7 +35,7 @@ if((M in view) && M.client) to_chat(M, "Your attention is eerily drawn to \the [a].") M.client.images += arrow - register_signal(M, SIGNAL_LOGGED_OUT, /datum/phenomena/point/proc/remove_image) + register_signal(M, SIGNAL_LOGGED_OUT, nameof(/datum/phenomena/point.proc/remove_image)) spawn(20) if(M.client) remove_image(M) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 2d242c83859..e7168144437 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -9,13 +9,19 @@ add_to_living_mob_list() if(give_ghost_proc_at_initialize) - verbs |= /mob/living/proc/ghost + grant_verb(src, /mob/living/proc/ghost) if(controllable) GLOB.available_mobs_for_possess["\ref[src]"] += src update_transform() // Some mobs may start bigger or smaller than normal. +/mob/living/get_description_fluff() + if(flavor_text) + return flavor_text + + return ..() + //mob verbs are faster than object verbs. See mob/verb/examine. /mob/living/verb/pulled(atom/movable/AM as mob|obj in oview(1)) set name = "Pull" @@ -524,7 +530,7 @@ return -/mob/living/Move(a, b, flag) +/mob/living/Move(newloc, direct) if(buckled) return @@ -533,14 +539,13 @@ var/turf/old_loc = get_turf(src) - if(lying) - pull_sound = SFX_PULL_BODY - else - pull_sound = null + pull_sound = lying ? SFX_PULL_BODY : null . = ..() + if(!.) + return - if(. && pulling) + if(pulling) handle_pulling_after_move(old_loc) if(s_active && !((s_active in contents) || Adjacent(s_active))) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index cc1cfb3d74d..89000f286dc 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -171,10 +171,14 @@ if(!effective_force || blocked >= 100) return 0 - //Hulk modifier + // Hulk modifier if(MUTATION_HULK in user.mutations) effective_force *= 2 + // STRONG modifier + if(MUTATION_STRONG in user.mutations) + effective_force *= 2 // Strong hulks are crazy ngl + //Apply weapon damage var/damage_flags = I.damage_flags() if(prob(blocked)) //armour provides a chance to turn sharp/edge weapon attacks into blunt ones @@ -273,7 +277,7 @@ /mob/living/proc/embed(obj/O, def_zone=null, datum/wound/supplied_wound) O.forceMove(src) src.embedded += O - src.verbs += /mob/proc/yank_out_object + grant_verb(src, /mob/proc/yank_out_object) //This is called when the mob is thrown into a dense turf /mob/living/proc/turf_collision(turf/T, speed) diff --git a/code/modules/mob/living/parasite/meme.dm b/code/modules/mob/living/parasite/meme.dm index 4cd6274d92a..6fb8a9bb6b7 100644 --- a/code/modules/mob/living/parasite/meme.dm +++ b/code/modules/mob/living/parasite/meme.dm @@ -584,17 +584,6 @@ be able to influence the host through various commands. to_chat(usr, "Meme Points: [src.meme_points]/[maximum_points]") -// Stat panel to show meme points, copypasted from alien -/mob/living/parasite/meme/Stat() - ..() - - statpanel("Status") - if (client && client.holder) - stat(null, "([x], [y], [z])") - - if (client && client.statpanel == "Status") - stat(null, "Meme Points: [src.meme_points]") - // Game mode helpers, used for theft objectives // -------------------------------------------- /mob/living/parasite/check_contents_for(t) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index adeb2174894..6283f78f763 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -173,7 +173,7 @@ var/list/channel_to_radio_key = new // This is broadcast to all mobs with the language, // irrespective of distance or anything else. - if(message_data["language"]?.flags & HIVEMIND) + if(message_data["language"]?.language_flags & HIVEMIND) message_data["language"].broadcast(src, message_data["message"]) return TRUE @@ -185,7 +185,7 @@ var/list/channel_to_radio_key = new message_data["message"] = handle_autohiss(message_data["message"], message_data["language"]) - if(!(message_data["language"]?.flags & NO_STUTTER)) + if(!(message_data["language"]?.language_flags & NO_STUTTER)) handle_speech_problems(message_data) if(!message_data["message"] || message_data["message"] == "") @@ -271,10 +271,10 @@ var/list/channel_to_radio_key = new if(message_data["language"]) var/verb = pick(message_data["language"].signlang_verb) - if(message_data["language"].flags & NONVERBAL && prob(30)) + if(message_data["language"].language_flags & NONVERBAL && prob(30)) src.custom_emote(VISIBLE_MESSAGE, "[verb].") - if(message_data["language"].flags & SIGNLANG) + if(message_data["language"].language_flags & SIGNLANG) if(message_data["log_message"]) log_say("[name]/[key]: SIGN: [message_data["message"]]") log_message(message_data["message"], INDIVIDUAL_SAY_LOG) @@ -305,7 +305,7 @@ var/list/channel_to_radio_key = new if(message_data["language"]) message_data["message_range"] = message_data["language"].get_talkinto_msg_range(message_data["message"]) - if(!(message_data["language"]?.flags & NO_TALK_MSG)) + if(!(message_data["language"]?.language_flags & NO_TALK_MSG)) var/msg = SPAN("notice", "\The [src] talks into \the [used_radios[1]]") for(var/mob/living/M in hearers(5, src)) if(M != src) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index ad884cd62d1..cf79288d9b3 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -48,7 +48,6 @@ var/list/ai_verbs_default = list( anchored = 1 // -- TLE density = 1 status_flags = CANSTUN|CANPARALYSE|CANPUSH - shouldnt_see = list(/obj/effect/rune) maxHealth = 200 var/list/network = list("Exodus") var/obj/machinery/camera/camera = null @@ -109,10 +108,10 @@ var/list/ai_verbs_default = list( give_ghost_proc_at_initialize = FALSE /mob/living/silicon/ai/proc/add_ai_verbs() - src.verbs |= ai_verbs_default + grant_verb(src, ai_verbs_default) /mob/living/silicon/ai/proc/remove_ai_verbs() - src.verbs -= ai_verbs_default + revoke_verb(src, ai_verbs_default) /mob/living/silicon/ai/New(loc, datum/ai_laws/L, obj/item/organ/internal/cerebrum/mmi/B, safety = 0) var/list/possibleNames = GLOB.ai_names @@ -157,6 +156,14 @@ var/list/ai_verbs_default = list( add_language(LANGUAGE_INDEPENDENT, 1) add_language(LANGUAGE_SPACER, 1) + default_silicon_subsystems.Cut() + + for(var/datum/nano_module/subsystem_type as anything in subtypesof(/datum/nano_module)) + if(!subsystem_type::available_to_ai) + continue + + default_silicon_subsystems += subsystem_type + if(!safety)//Only used by AIize() to successfully spawn an AI. if (!B)//If there is no player/brain inside. empty_playable_ai_cores += new /obj/structure/AIcore/deactivated(loc)//New empty terminal. @@ -219,12 +226,13 @@ var/list/ai_verbs_default = list( ai_list -= src ai_radio = null - QDEL_NULL(eyeobj) QDEL_NULL(psupply) QDEL_NULL(aiPDA) QDEL_NULL(aiMulti) hack = null + destroy_eyeobj() + . = ..() /mob/living/silicon/ai/proc/setup_icon() diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm index d0c90aa0280..eb455497351 100644 --- a/code/modules/mob/living/silicon/ai/examine.dm +++ b/code/modules/mob/living/silicon/ai/examine.dm @@ -1,5 +1,6 @@ -/mob/living/silicon/ai/_examine_text(mob/user) +/mob/living/silicon/ai/examine(mob/user, infix) . = ..() + var/msg = "" if (is_ic_dead()) msg += "It appears to be powered-down.\n" @@ -30,7 +31,7 @@ if(hardware && (hardware.owner == src)) msg += "
" msg += hardware.get_examine_desc() - . += "\n[msg]" + . += msg user.showLaws(src) return diff --git a/code/modules/mob/living/silicon/ai/malf.dm b/code/modules/mob/living/silicon/ai/malf.dm index 8cbee851579..d2c61fae58f 100644 --- a/code/modules/mob/living/silicon/ai/malf.dm +++ b/code/modules/mob/living/silicon/ai/malf.dm @@ -10,9 +10,11 @@ hacked_apcs = list() recalc_cpu() - verbs += /datum/game_mode/malfunction/verb/ai_select_hardware - verbs += /datum/game_mode/malfunction/verb/ai_select_research - verbs += /datum/game_mode/malfunction/verb/ai_help + grant_verb(src, list( + /datum/game_mode/malfunction/verb/ai_select_hardware, + /datum/game_mode/malfunction/verb/ai_select_research, + /datum/game_mode/malfunction/verb/ai_help, + )) log_ability_use(src, "became malfunctioning AI") // And greet user with some OOC info. @@ -42,7 +44,7 @@ if(security_state.current_security_level == security_state.severe_security_level) security_state.decrease_security_level(TRUE) // Reset our verbs - src.verbs.Cut() + revoke_verb(src, verbs) add_ai_verbs() // Let them know. if(loud) @@ -115,30 +117,31 @@ // Shows capacitor charge and hardware integrity information to the AI in Status tab. /mob/living/silicon/ai/show_system_integrity() - if(!src.stat) - stat("Hardware integrity", "[hardware_integrity()]%") - stat("Internal capacitor", "[backup_capacitor()]%") - - if(eyeobj) - var/turf/T = get_turf(eyeobj) - stat("Current location", "([T.x]:[T.y]:[T.z])") + . = list() + + if(!stat) + . += "Hardware integrity: [hardware_integrity()]%" + . += "Internal capacitor: [backup_capacitor()]%" + else - stat("Systems nonfunctional") + . += "Systems nonfunctional" // Shows AI Malfunction related information to the AI. /mob/living/silicon/ai/show_malf_ai() + . = ..() + if(src.is_malf()) if(src.hacked_apcs) - stat("Hacked APCs", "[src.hacked_apcs.len]") - stat("System Status", "[src.hacking ? "Busy" : "Stand-By"]") + . += "Hacked APCs: [src.hacked_apcs.len]" + . += "System Status: [src.hacking ? "Busy" : "Stand-By"]" if(src.research) - stat("Available CPU", "[src.research.stored_cpu] TFlops") - stat("Maximal CPU", "[src.research.max_cpu] TFlops") - stat("CPU generation rate", "[src.research.cpu_increase_per_tick * 10] TFlops/s") - stat("Current research focus", "[src.research.focus ? src.research.focus.name : "None"]") + . += "Available CPU: [src.research.stored_cpu] TFlops" + . += "Maximal CPU: [src.research.max_cpu] TFlops" + . += "CPU generation rate: [src.research.cpu_increase_per_tick * 10] TFlops/s" + . += "Current research focus: [src.research.focus ? src.research.focus.name : "None"]" if(src.research.focus) - stat("Research completed", "[round(src.research.focus.invested, 0.1)]/[round(src.research.focus.price)]") + . += "Research completed: [round(src.research.focus.invested, 0.1)]/[round(src.research.focus.price)]" if(system_override == 1) - stat("SYSTEM OVERRIDE INITIATED") + . += "SYSTEM OVERRIDE INITIATED" else if(system_override == 2) - stat("SYSTEM OVERRIDE COMPLETED") + . += "SYSTEM OVERRIDE COMPLETED" diff --git a/code/modules/mob/living/silicon/pai/examine.dm b/code/modules/mob/living/silicon/pai/examine.dm index e56a2603981..14ad55e43fe 100644 --- a/code/modules/mob/living/silicon/pai/examine.dm +++ b/code/modules/mob/living/silicon/pai/examine.dm @@ -1,4 +1,4 @@ -/mob/living/silicon/pai/_examine_text(mob/user) +/mob/living/silicon/pai/examine(mob/user, infix) . = ..(user, infix = ", personal AI") var/msg = "" diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 45b39a2c04c..b5ff5c4a9b3 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -91,8 +91,10 @@ //As a human made device, we'll understand sol common without the need of the translator add_language(LANGUAGE_SOL_COMMON, 1) - verbs += /mob/living/silicon/pai/proc/choose_chassis - verbs += /mob/living/silicon/pai/proc/choose_verbs + grant_verb(src, list( + /mob/living/silicon/pai/proc/choose_chassis, + /mob/living/silicon/pai/proc/choose_verbs, + )) ..() @@ -107,18 +109,12 @@ silicon_radio = null // Because this radio actually belongs to another instance we simply null . = ..() -// this function shows the information about being silenced as a pAI in the Status panel -/mob/living/silicon/pai/proc/show_silenced() - if(src.silence_time) - var/timeleft = round((silence_time - world.timeofday)/10 ,1) - stat(null, "Communications system reboot in -[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]") - - -/mob/living/silicon/pai/Stat() +/mob/living/silicon/pai/get_status_tab_items() . = ..() - statpanel("Status") - if (src.client.statpanel == "Status") - show_silenced() + + if(silence_time) + var/timeleft = round((silence_time - world.timeofday)/10 ,1) + . += "Communications system reboot in -[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]" /mob/living/silicon/pai/check_eye(mob/user as mob) if (!src.current) @@ -300,8 +296,9 @@ finalized = alert("Look at your sprite. Is this what you wish to use?",,"No","Yes") chassis = possible_chassis[choice] - verbs -= /mob/living/silicon/pai/proc/choose_chassis - verbs += /mob/living/proc/hide + + revoke_verb(src, /mob/living/silicon/pai/proc/choose_chassis) + grant_verb(src, /mob/living/proc/hide) /mob/living/silicon/pai/proc/choose_verbs() set category = "pAI Commands" @@ -315,7 +312,7 @@ speak_exclamation = sayverbs[(sayverbs.len>1 ? 2 : sayverbs.len)] speak_query = sayverbs[(sayverbs.len>2 ? 3 : sayverbs.len)] - verbs -= /mob/living/silicon/pai/proc/choose_verbs + revoke_verb(src, /mob/living/silicon/pai/proc/choose_verbs) /mob/living/silicon/pai/lay_down() set name = "Rest" @@ -408,4 +405,3 @@ visible_message("[src] fades away from the screen, the pAI device goes silent.") card.removePersonality() clear_client() - diff --git a/code/modules/mob/living/silicon/posi_brainmob.dm b/code/modules/mob/living/silicon/posi_brainmob.dm index 3bb39691a55..9cd8d3068d9 100644 --- a/code/modules/mob/living/silicon/posi_brainmob.dm +++ b/code/modules/mob/living/silicon/posi_brainmob.dm @@ -8,7 +8,7 @@ use_me = 0 //Can't use the me verb, it's a freaking immobile brain icon = 'icons/mob/human_races/organs/cyber.dmi' icon_state = "brain-prosthetic" - silicon_subsystems = list( + default_silicon_subsystems = list( /datum/nano_module/law_manager ) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index ea9df7bf9b0..cfe9c26bfcc 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -133,7 +133,8 @@ var/list/mob_hat_cache = list() ..() - verbs += /mob/living/proc/hide + grant_verb(src, /mob/living/proc/hide) + remove_language(LANGUAGE_ROBOT) add_language(LANGUAGE_ROBOT, FALSE) add_language(LANGUAGE_DRONE, TRUE) @@ -146,7 +147,7 @@ var/list/mob_hat_cache = list() var/datum/robot_component/C = components[V] C.max_damage = 10 - verbs -= /mob/living/silicon/robot/verb/Namepick + revoke_verb(src, /mob/living/silicon/robot/verb/Namepick) update_icon() /mob/living/silicon/robot/drone/init() diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index 3519d7edb4a..52b45b88fc0 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -246,12 +246,13 @@ /obj/item/stack/material ) -/obj/item/gripper/_examine_text(mob/user) +/obj/item/gripper/examine(mob/user, infix) . = ..() + if(wrapped) - . += "\nIt is holding \a [wrapped]." + . += "It is holding \a [wrapped]." else if (length(storage_type)) - . += "\n[src] is currently can [mode == MODE_EMPTY ? "empty" : "open"] containers." + . += "[src] is currently can [mode == MODE_EMPTY ? "empty" : "open"] containers." /obj/item/gripper/attack_self(mob/user) if(wrapped) @@ -335,8 +336,9 @@ //If resolve_attackby forces waiting before taking wrapped, we need to let it finish before doing the rest. - addtimer(CALLBACK(src, nameof(.proc/finish_using), target, user, params, force_holder, resolved), 0) + INVOKE_ASYNC(src, nameof(.proc/finish_using), target, user, params, force_holder, resolved) return + for(var/type in storage_type)//Check that we're pocketing a certain container. if(istype(target,type)) var/obj/item/storage/S = target diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm index 33286e35dd3..f6c96bbf19d 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm @@ -54,10 +54,11 @@ if(drone_progress >= 100) visible_message("\The [src] voices a strident beep, indicating a drone chassis is prepared.") -/obj/machinery/drone_fabricator/_examine_text(mob/user) +/obj/machinery/drone_fabricator/examine(mob/user, infix) . = ..() + if(produce_drones && drone_progress >= 100 && isghost(user) && config.misc.allow_drone_spawn && count_drones() < config.misc.max_maint_drones) - . += "\n
A drone is prepared. Select 'Join As Drone' from the Ghost tab to spawn as a maintenance drone." + . += "
A drone is prepared. Select 'Join As Drone' from the Ghost tab to spawn as a maintenance drone." /obj/machinery/drone_fabricator/proc/handle_customs(/mob/living/silicon/robot/drone/D, client/player) /* diff --git a/code/modules/mob/living/silicon/robot/drone/drone_remote_control.dm b/code/modules/mob/living/silicon/robot/drone/drone_remote_control.dm index 6cf50532b98..2330337f7b5 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_remote_control.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_remote_control.dm @@ -16,18 +16,18 @@ if(health < -35 || emagged) to_chat(user, "WARNING: connection timed out.") return - + assume_control(user) /mob/living/silicon/robot/drone/proc/assume_control(mob/living/silicon/ai/user) user.controlling_drone = src controlling_ai = user - verbs += /mob/living/silicon/robot/drone/proc/release_ai_control_verb - verbs -= /mob/living/proc/ghost + grant_verb(src, /mob/living/silicon/robot/drone/proc/release_ai_control_verb) + revoke_verb(src, /mob/living/proc/ghost) local_transmit = FALSE languages = controlling_ai.languages.Copy() add_language("Robot Talk", 1) - + default_language = all_languages[LANGUAGE_GALCOM] stat = CONSCIOUS @@ -35,6 +35,8 @@ user.mind.transfer_to(src) else key = user.key + client?.init_verbs() + updatename() qdel(silicon_radio) silicon_radio = new /obj/item/device/radio/headset/heads/ai_integrated(src) @@ -95,12 +97,15 @@ mind.transfer_to(controlling_ai) else controlling_ai.key = key + controlling_ai.client?.init_verbs() + to_chat(controlling_ai, "[message]") controlling_ai.controlling_drone = null controlling_ai = null - verbs -= /mob/living/silicon/robot/drone/proc/release_ai_control_verb - verbs += /mob/living/proc/ghost + revoke_verb(src, /mob/living/silicon/robot/drone/proc/release_ai_control_verb) + grant_verb(src, /mob/living/proc/ghost) + full_law_reset() updatename() death() diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm index a45d07c4e32..784889069b7 100644 --- a/code/modules/mob/living/silicon/robot/examine.dm +++ b/code/modules/mob/living/silicon/robot/examine.dm @@ -1,11 +1,11 @@ -/mob/living/silicon/robot/_examine_text(mob/user) +/mob/living/silicon/robot/examine(mob/user, infix) var/custom_infix = custom_name ? ", [modtype] [braintype]" : "" . = ..(user, infix = custom_infix) var/msg = "" msg += "\n" msg += examine_all_modules() - + msg += "" if (getBruteLoss()) if (getBruteLoss() < 75) @@ -58,6 +58,6 @@ msg += "Supported visors:\n" msg += visors - . += "\n[msg]" + . += msg user.showLaws(src) return diff --git a/code/modules/mob/living/silicon/robot/preset.dm b/code/modules/mob/living/silicon/robot/preset.dm index fe81dfedc8b..c48b76d0bcb 100644 --- a/code/modules/mob/living/silicon/robot/preset.dm +++ b/code/modules/mob/living/silicon/robot/preset.dm @@ -13,6 +13,9 @@ cell = /obj/item/cell/super pitch_toggle = 0 custom_sprite = FALSE // presets robots must not have custom sprites. + default_silicon_subsystems = list( + /datum/nano_module/law_manager + ) /mob/living/silicon/robot/combat lawupdate = 0 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 06a315379b6..794b0e05f65 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -493,49 +493,30 @@ else set_light(0) -// this function displays jetpack pressure in the stat panel -/mob/living/silicon/robot/proc/show_jetpack_pressure() - // if you have a jetpack, show the internal tank pressure - var/obj/item/tank/jetpack/current_jetpack = installed_jetpack() - if (current_jetpack) - stat("Internal Atmosphere Info", current_jetpack.name) - stat("Tank Pressure", current_jetpack.air_contents.return_pressure()) - - // this function returns the robots jetpack, if one is installed /mob/living/silicon/robot/proc/installed_jetpack() if(module) return (locate(/obj/item/tank/jetpack) in module.modules) - return 0 + return null +/mob/living/silicon/robot/get_status_tab_items() + . = ..() -// this function displays the cyborgs current cell charge in the stat panel -/mob/living/silicon/robot/proc/show_cell_power() - if(cell) - stat(null, text("Charge Left: [round(CELL_PERCENT(cell))]%")) - stat(null, text("Cell Rating: [round(cell.maxcharge)]")) // Round just in case we somehow get crazy values - stat(null, text("Power Cell Load: [round(used_power_this_tick)]W")) - else - stat(null, text("No Cell Inserted!")) + . += list( + "Cell Charge: [isnull(cell) ? "NO CELL" : "[round(cell.charge)]/[round(cell.maxcharge)]W"]", + "Cell Load: [round(used_power_this_tick)]W", + "", + ) -/mob/living/silicon/robot/proc/show_gps() - var/turf/T = get_turf(src) - if (T.z != 1 && T.z != 2) - stat(null, text("Current location: Unknown")) - else - stat(null, text("Current location:[T.x]:[T.y]:[T.z]")) + var/obj/item/tank/jetpack/current_jetpack = installed_jetpack() + if(!isnull(current_jetpack)) + . += list( + "[current_jetpack]: [current_jetpack.air_contents.return_pressure()]kPa", + "", + ) -// update the status screen display -/mob/living/silicon/robot/Stat() - . = ..() - if (statpanel("Status")) - show_gps() - show_cell_power() - show_jetpack_pressure() - stat(null, text("Lights: [lights_on ? "ON" : "OFF"]")) - if(module) - for(var/datum/matter_synth/ms in module.synths) - stat("[ms.name]: [ms.energy]/[ms.max_energy_multiplied]") + for(var/datum/matter_synth/ms in module?.synths) + . += "[ms.name]: [ms.energy]/[ms.max_energy_multiplied]" /mob/living/silicon/robot/restrained() return 0 @@ -578,20 +559,19 @@ to_chat(user, "Nothing to fix here!") return var/obj/item/weldingtool/WT = W - if (src == user && !do_after(user, 30, src)) - to_chat(user, "You must stand still to repair yourself!") + if(!WT.use_tool(src, user, delay = 3 SECONDS, amount = 5)) return - if (WT.remove_fuel(0)) - user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - adjustBruteLoss(-30) - updatehealth() - add_fingerprint(user) - for(var/mob/O in viewers(user, null)) - O.show_message(text("[user] has fixed some of the dents on [src]!"), 1) - else - to_chat(user, "Need more welding fuel!") + + if(QDELETED(src) || !user) return + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) + adjustBruteLoss(-30) + updatehealth() + add_fingerprint(user) + for(var/mob/O in viewers(user, null)) + O.show_message(text("[user] has fixed some of the dents on [src]!"), 1) + else if(isCoil(W) && (wiresexposed || istype(src,/mob/living/silicon/robot/drone))) if (!getFireLoss()) to_chat(user, "Nothing to fix here!") @@ -975,57 +955,48 @@ return I -/mob/living/silicon/robot/Move(a, b, flag) - +/mob/living/silicon/robot/Move(newloc, direct) . = ..() + if(!.) + return - if(module) - if(module.type == /obj/item/robot_module/janitor/general) - var/turf/tile = loc - if(isturf(tile)) - tile.clean_blood() - if (istype(tile, /turf/simulated)) - var/turf/simulated/S = tile - S.dirt = 0 - for(var/A in tile) - if(istype(A, /obj/effect)) - if(istype(A, /obj/effect/rune) || istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay)) - qdel(A) - else if(istype(A, /obj/item)) - var/obj/item/cleaned_item = A - cleaned_item.clean_blood() - else if(istype(A, /mob/living/carbon/human)) - var/mob/living/carbon/human/cleaned_human = A - if(cleaned_human.lying) - if(cleaned_human.head) - cleaned_human.head.clean_blood() - cleaned_human.update_inv_head(0) - if(cleaned_human.wear_suit) - cleaned_human.wear_suit.clean_blood() - cleaned_human.update_inv_wear_suit(0) - else if(cleaned_human.w_uniform) - cleaned_human.w_uniform.clean_blood() - cleaned_human.update_inv_w_uniform(0) - if(cleaned_human.shoes) - cleaned_human.shoes.clean_blood() - cleaned_human.update_inv_shoes(0) - cleaned_human.clean_blood(1) - to_chat(cleaned_human, "[src] cleans your face!") -/* if(module.type == /obj/item/robot_module/engineering) - var/obj/item/robot_module/engineering/general/mod = src.module - var/turf/tile = loc - world<< mod.synths - locate() in - if(isturf(tile)) - for(var/I in tile) - if (istype(I,/obj/item/stack/material/steel)) - mod.synths.metal.add_charge(1000) - spawn(0) //give the stacks a chance to delete themselves if necessary - else if (istype(I,/obj/item/stack/material/cyborg/glass/reinforced)) - var/datum/matter_synth/metal.add_charge(500) - var/datum/matter_synth/glass.add_charge(1000) - spawn(0) //give the stacks a chance to delete themselves if necessary -*/ + if(!module || module.type != /obj/item/robot_module/janitor/general) + return + + var/turf/tile = loc + if(!isturf(tile)) + return + + tile.clean_blood() + + if(istype(tile, /turf/simulated)) + var/turf/simulated/S = tile + S.dirt = 0 + + for(var/A in tile) + if(istype(A, /obj/effect)) + if(istype(A, /obj/effect/rune) || istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay)) + qdel(A) + else if(istype(A, /obj/item)) + var/obj/item/cleaned_item = A + cleaned_item.clean_blood() + else if(istype(A, /mob/living/carbon/human)) + var/mob/living/carbon/human/cleaned_human = A + if(cleaned_human.lying) + if(cleaned_human.head) + cleaned_human.head.clean_blood() + cleaned_human.update_inv_head(0) + if(cleaned_human.wear_suit) + cleaned_human.wear_suit.clean_blood() + cleaned_human.update_inv_wear_suit(0) + else if(cleaned_human.w_uniform) + cleaned_human.w_uniform.clean_blood() + cleaned_human.update_inv_w_uniform(0) + if(cleaned_human.shoes) + cleaned_human.shoes.clean_blood() + cleaned_human.update_inv_shoes(0) + cleaned_human.clean_blood(1) + to_chat(cleaned_human, SPAN("warning", "[src] cleans your face!")) /mob/living/silicon/robot/proc/self_destruct() gib() @@ -1140,10 +1111,10 @@ toggle_sensor_mode() /mob/living/silicon/robot/proc/add_robot_verbs() - src.verbs |= robot_verbs_default + grant_verb(src, robot_verbs_default) /mob/living/silicon/robot/proc/remove_robot_verbs() - src.verbs -= robot_verbs_default + revoke_verb(src, robot_verbs_default) // Uses power from cyborg's cell. Returns 1 on success or 0 on failure. // Properly converts using CELLRATE now! Amount is in Joules. diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm index b74c9d44cd4..36a124d659b 100644 --- a/code/modules/mob/living/silicon/robot/robot_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_items.dm @@ -100,17 +100,17 @@ flick("portable_analyzer_load", src) icon_state = "portable_analyzer_full" -/obj/item/portable_destructive_analyzer/_examine_text(mob/user) +/obj/item/portable_destructive_analyzer/examine(mob/user, infix) . = ..() - . += "\nCurrent science levels:" + + . += SPAN_NOTICE("Current science levels:") for(var/i = 1, i <= files.known_tech.len, i++) if(files.known_tech[i].name == "ILLEGAL" || files.known_tech[i].name == "Arcane") if(files.known_tech[i].level > 0) - . += "\n[files.known_tech[i].name] - [files.known_tech[i].level]" + . += SPAN_NOTICE("[files.known_tech[i].name] - [files.known_tech[i].level]") else - . += "\n[files.known_tech[i].name] - [files.known_tech[i].level]" + . += SPAN_NOTICE("[files.known_tech[i].name] - [files.known_tech[i].level]") - //This is used to unlock other borg covers. /obj/item/card/robot //This is not a child of id cards, as to avoid dumb typechecks on computers. name = "access code transmission device" icon_state = "id-robot" @@ -174,9 +174,9 @@ for(var/path in surgery_item_paths) surgery_items.Add(new path(src)) -/obj/item/surgical_selector/_examine_text(mob/user) +/obj/item/surgical_selector/examine(mob/user, infix) . = ..() - . += "\nThe selected tool is [selected_tool ? selected_tool : "nothing"]!" + . += "The selected tool is [selected_tool ? selected_tool : "nothing"]!" /obj/item/surgical_selector/attack_self(mob/user) select_tool(user) @@ -430,12 +430,10 @@ max_doors = 5 max_panels = 4 -/obj/item/inflatable_dispenser/_examine_text(mob/user) +/obj/item/inflatable_dispenser/examine(mob/user, infix) . = ..() - if(!.) - return - . += "\nIt has [stored_walls] wall segment\s, [stored_doors] door segment\s and [stored_panels] panel segment\s stored." - . += "\nIt is set to deploy [INFLATABLE_MODES[mode]]." + . += "It has [stored_walls] wall segment\s, [stored_doors] door segment\s and [stored_panels] panel segment\s stored." + . += "It is set to deploy [INFLATABLE_MODES[mode]]." /obj/item/inflatable_dispenser/attack_self() mode++ @@ -582,14 +580,15 @@ if(R && istype(R.loc,/turf)) R.throw_at(get_edge_target_turf(R.loc, pick(GLOB.alldirs)), rand(1, 3), 1) -/obj/item/robot_rack/_examine_text(mob/user) +/obj/item/robot_rack/examine(mob/user, infix) . = ..() - . += "\nIt can hold up to [capacity] item[capacity == 1 ? "" : "s"]." - if (length(held)) + . += "It can hold up to [capacity] item[capacity == 1 ? "" : "s"]." + + if(length(held)) var/text = "| " for (var/obj/O in held) text += "[O] | " - . += "\nContains: [text]" + . += "Contains: [text]" /obj/item/robot_rack/Initialize(mapload, starting_objects = 0) . = ..() @@ -822,9 +821,9 @@ ..(name,type,delay,energy) pipe_type = p_type -/obj/item/robot_item_dispenser/_examine_text(mob/user) +/obj/item/robot_item_dispenser/examine(mob/user, infix) . = ..() - . += "\n[selected.name] is chosen to be produced." + . += "[selected.name] is chosen to be produced." /obj/item/robot_item_dispenser/New() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 44a66e26997..7874fc43213 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -31,6 +31,17 @@ GLOBAL_LIST_EMPTY(all_synthetic_mind_to_data) // data: list of name and type of var/list/avaliable_huds var/active_hud + /// List of subsystems to initialize when silicon is spawned. + var/list/default_silicon_subsystems = list( + /datum/nano_module/alarm_monitor/all, + /datum/nano_module/law_manager, + /datum/nano_module/records/ai + ) + /// List of all created and managed subsystems. + var/list/datum/nano_module/silicon_subsystems + /// Asociative list typepath -> `datum/ui_state`, where typepath is subsystem's type. + var/list/silicon_subsystems_states + rad_resist = list( RADIATION_ALPHA_PARTICLE = 41.7 MEGA ELECTRONVOLT, RADIATION_BETA_PARTICLE = 23.9 MEGA ELECTRONVOLT, @@ -57,10 +68,22 @@ GLOBAL_LIST_EMPTY(all_synthetic_mind_to_data) // data: list of name and type of /mob/living/silicon/Destroy() GLOB.silicon_mob_list -= src + QDEL_NULL(silicon_radio) QDEL_NULL(silicon_camera) + + for(var/datum/nano_module/subsystem in silicon_subsystems) + remove_subsystem(subsystem.type) + for(var/datum/alarm_handler/AH in SSalarm.all_handlers) AH.unregister_alarm(src) + + if(istype(idcard)) + QDEL_NULL(idcard) + + queued_alarms.Cut() + silicon_subsystems_states?.Cut() // Just in case... + return ..() /mob/living/silicon/mind_initialize() @@ -159,32 +182,27 @@ GLOBAL_LIST_EMPTY(all_synthetic_mind_to_data) // data: list of name and type of // this function shows the health of the AI in the Status panel /mob/living/silicon/proc/show_system_integrity() + . = list() + if(!src.stat) - stat(null, text("System integrity: [round((health/maxHealth)*100)]%")) + . += "System integrity: [round((health/maxHealth)*100)]%" else - stat(null, text("Systems nonfunctional")) + . += "Systems nonfunctional" // This is a pure virtual function, it should be overwritten by all subclasses -/mob/living/silicon/proc/show_malf_ai() - return 0 - -// this function displays the shuttles ETA in the status panel if the shuttle has been called -/mob/living/silicon/proc/show_emergency_shuttle_eta() - if(evacuation_controller) - var/eta_status = evacuation_controller.get_status_panel_eta() - if(eta_status) - stat(null, eta_status) +/mob/living/silicon/proc/show_malf_ai(list/stats) + return list() // This adds the basic clock, shuttle recall timer, and malf_ai info to all silicon lifeforms -/mob/living/silicon/Stat() - if(statpanel("Status")) - show_emergency_shuttle_eta() - show_system_integrity() - show_malf_ai() +/mob/living/silicon/get_status_tab_items() . = ..() + . += show_system_integrity() + . += show_malf_ai() + + // this function displays the stations manifest in a separate window /mob/living/silicon/proc/show_station_manifest() var/dat = "" @@ -223,30 +241,6 @@ GLOBAL_LIST_EMPTY(all_synthetic_mind_to_data) // data: list of name and type of ..(rem_language) speech_synthesizer_langs -= removed_language -/mob/living/silicon/check_languages() - set name = "Check Known Languages" - set category = "IC" - set src = usr - - var/dat = "Known Languages

" - - if(default_language) - dat += "Current default language: [default_language] - reset

" - - for(var/datum/language/L in languages) - if(!(L.flags & NONGLOBAL)) - var/default_str - if(L == default_language) - default_str = " - default - reset" - else - default_str = " - set default" - - var/synth = (L in speech_synthesizer_langs) - dat += "[L.name] ([get_language_prefix()][L.key])[synth ? default_str : null]
Speech Synthesizer: [synth ? "YES" : "NOT SUPPORTED"]
[L.desc]

" - - show_browser(src, dat, "window=checklanguage") - return - /mob/living/silicon/proc/toggle_sensor_mode() active_hud = null var/sensor_type = input("Please select sensor type.", "Sensor Integration", null) in avaliable_huds diff --git a/code/modules/mob/living/silicon/subsystems.dm b/code/modules/mob/living/silicon/subsystems.dm index 77e6302193d..a4ab8b32100 100644 --- a/code/modules/mob/living/silicon/subsystems.dm +++ b/code/modules/mob/living/silicon/subsystems.dm @@ -1,109 +1,49 @@ -/mob/living/silicon - var/list/silicon_subsystems_by_name = list() - var/list/silicon_subsystems = list( - /datum/nano_module/alarm_monitor/all, - /datum/nano_module/law_manager, - /datum/nano_module/records/ai - ) - -/mob/living/silicon/ai/New() - silicon_subsystems.Cut() - for(var/subtype in subtypesof(/datum/nano_module)) - var/datum/nano_module/NM = subtype - if(initial(NM.available_to_ai)) - silicon_subsystems += NM - ..() - -/mob/living/silicon/robot/syndicate - silicon_subsystems = list( - /datum/nano_module/law_manager - ) - -/mob/living/silicon/Destroy() - for(var/subsystem in silicon_subsystems) - remove_subsystem(subsystem) - silicon_subsystems.Cut() - . = ..() - /mob/living/silicon/proc/init_subsystems() - for(var/subsystem_type in silicon_subsystems) + for(var/subsystem_type in default_silicon_subsystems) init_subsystem(subsystem_type) - if(/datum/nano_module/alarm_monitor/all in silicon_subsystems) + if(/datum/nano_module/alarm_monitor/all in default_silicon_subsystems) for(var/datum/alarm_handler/AH in SSalarm.all_handlers) AH.register_alarm(src, /mob/living/silicon/proc/receive_alarm) queued_alarms[AH] = list() // Makes sure alarms remain listed in consistent order /mob/living/silicon/proc/init_subsystem(subsystem_type) - var/existing_entry = silicon_subsystems[subsystem_type] + var/existing_entry = default_silicon_subsystems[subsystem_type] if(existing_entry && !ispath(existing_entry)) - return FALSE + return + + var/datum/nano_module/subsystem_to_init = new subsystem_type(src) - var/ui_state = subsystem_type == /datum/nano_module/law_manager ? GLOB.conscious_state : GLOB.self_state - var/stat_silicon_subsystem/SSS = new(src, subsystem_type, ui_state) - silicon_subsystems[subsystem_type] = SSS - silicon_subsystems_by_name[SSS.name] = SSS - return TRUE + LAZYSET(silicon_subsystems_states, subsystem_type, subsystem_type == /datum/nano_module/law_manager ? GLOB.conscious_state : GLOB.self_state) + LAZYADD(silicon_subsystems, subsystem_to_init) /mob/living/silicon/proc/remove_subsystem(subsystem_type) - var/stat_silicon_subsystem/SSS = silicon_subsystems[subsystem_type] - if(!istype(SSS)) - return FALSE + var/datum/nano_module/subsystem_to_remove = locate(subsystem_type) in silicon_subsystems - silicon_subsystems_by_name -= SSS.name - silicon_subsystems -= subsystem_type - qdel(SSS) - return TRUE + if(isnull(subsystem_to_remove)) + return + + LAZYREMOVE(silicon_subsystems, subsystem_to_remove) + LAZYREMOVE(silicon_subsystems_states, subsystem_type) -/mob/living/silicon/proc/open_subsystem(subsystem_type, mob/given = src) - var/stat_silicon_subsystem/SSS = silicon_subsystems[subsystem_type] - if(!istype(SSS)) - return FALSE - SSS.Click(given) - return TRUE + qdel(subsystem_to_remove) -/mob/living/silicon/verb/activate_subsystem(datum/silicon_subsystem_name in silicon_subsystems_by_name) +/mob/living/silicon/verb/activate_subsystem() set name = "Subsystems" - set desc = "Activates the given subsystem" set category = "Silicon Commands" - var/stat_silicon_subsystem/SSS = silicon_subsystems_by_name[silicon_subsystem_name] - if(istype(SSS)) - SSS.Click() + var/datum/nano_module/chosen_subsystem = tgui_input_list(src, "Opens the given subsystem's control.", "Subsystems", silicon_subsystems) -/mob/living/silicon/Stat() - . = ..() - if(!.) - return - if(!silicon_subsystems.len) + if(isnull(chosen_subsystem)) return - if(!statpanel("Subsystems")) - return - for(var/subsystem_type in silicon_subsystems) - var/stat_silicon_subsystem/SSS = silicon_subsystems[subsystem_type] - stat(SSS) -/stat_silicon_subsystem - parent_type = /atom/movable - simulated = 0 - var/ui_state - var/datum/nano_module/subsystem + open_subsystem(chosen_subsystem.type) -/stat_silicon_subsystem/New(mob/living/silicon/loc, subsystem_type, ui_state) - if(!istype(loc)) - CRASH("Unexpected location. Expected /mob/living/silicon, was [loc.type].") - src.ui_state = ui_state - subsystem = new subsystem_type(loc) - name = subsystem.name - ..() +/// Opens subsystem's UI if valid path is given. +/mob/living/silicon/proc/open_subsystem(subsystem_type) + var/datum/nano_module/subsystem_to_open = locate(subsystem_type) in silicon_subsystems -/stat_silicon_subsystem/Destroy() - qdel(subsystem) - subsystem = null - . = ..() + if(isnull(subsystem_to_open)) + return -/stat_silicon_subsystem/Click(mob/given = usr) - if (istype(given)) - subsystem.ui_interact(given, state = ui_state) - else - subsystem.ui_interact(usr, state = ui_state) + subsystem_to_open.ui_interact(src, state = silicon_subsystems_states[subsystem_type]) diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm index dbb99d19a5b..7d4e767b1ef 100644 --- a/code/modules/mob/living/simple_animal/borer/borer.dm +++ b/code/modules/mob/living/simple_animal/borer/borer.dm @@ -104,17 +104,10 @@ else if((is_ooc_dead() || host.is_ooc_dead()) && controlling) detatch() -/mob/living/simple_animal/borer/Stat() +/mob/living/simple_animal/borer/get_status_tab_items() . = ..() - statpanel("Status") - if(evacuation_controller) - var/eta_status = evacuation_controller.get_status_panel_eta() - if(eta_status) - stat(null, eta_status) - - if (client.statpanel == "Status") - stat("Chemicals", chemicals) + . += "Chemicals: [chemicals]" /mob/living/simple_animal/borer/handle_environment(datum/gas_mixture/environment) if(host) diff --git a/code/modules/mob/living/simple_animal/borer/borer_powers.dm b/code/modules/mob/living/simple_animal/borer/borer_powers.dm index 995eea1c526..58b66d84268 100644 --- a/code/modules/mob/living/simple_animal/borer/borer_powers.dm +++ b/code/modules/mob/living/simple_animal/borer/borer_powers.dm @@ -199,9 +199,9 @@ BORER_STATUS_HUSK = list(\ H.add_language("Cortical Link") if(host.is_ooc_dead()) - H.verbs |= /mob/living/carbon/human/proc/jumpstart + grant_verb(H, /mob/living/carbon/human/proc/jumpstart) - H.verbs |= BORER_ALL_ABILITIES[BORER_STATUS_HUSK] + grant_verb(H, BORER_ALL_ABILITIES[BORER_STATUS_HUSK]) if(H.client) H.ghostize(0) @@ -239,7 +239,7 @@ BORER_STATUS_HUSK = list(\ chemicals -= 100 - addtimer(CALLBACK(host, nameof(/mob/living/carbon/human.proc/host_pain_enable)), 30 SECONDS) + host.set_next_think_ctx("host_pain_enable", world.time + 30 SECONDS) /mob/living/simple_animal/borer/verb/secrete_chemicals() set category = "Abilities" @@ -429,7 +429,7 @@ BORER_STATUS_HUSK = list(\ set name = "Revive Host" set desc = "Send a jolt of electricity through your host, reviving them." - verbs -= /mob/living/carbon/human/proc/jumpstart + revoke_verb(src, /mob/living/carbon/human/proc/jumpstart) if(!is_ic_dead()) to_chat(usr, "Your host is already alive.") @@ -481,18 +481,21 @@ BORER_STATUS_HUSK = list(\ //TODO: if verbs will update within other objects(BYOND issue), make it to add only needed abilities. /mob/living/simple_animal/borer/proc/update_abilities() clear_abilities() - if(host) - if(controlling) - host.verbs |= BORER_ALL_ABILITIES[BORER_STATUS_CONTROLLING] - verbs |= BORER_ALL_ABILITIES[BORER_STATUS_NOT_CONTROLLING] - verbs |= BORER_ALL_ABILITIES[BORER_STATUS_IN_HOST] - verbs |= BORER_ALL_ABILITIES[BORER_STATUS_OUT_HOST] + + if(host && controlling) + grant_verb(host, BORER_ALL_ABILITIES[BORER_STATUS_CONTROLLING]) + + grant_verb(src, list( + BORER_ALL_ABILITIES[BORER_STATUS_NOT_CONTROLLING], + BORER_ALL_ABILITIES[BORER_STATUS_IN_HOST], + BORER_ALL_ABILITIES[BORER_STATUS_OUT_HOST], + )) /mob/living/simple_animal/borer/proc/clear_abilities() for(var/abilities_type in BORER_ALL_ABILITIES) - verbs -= BORER_ALL_ABILITIES[abilities_type] + revoke_verb(src, BORER_ALL_ABILITIES[abilities_type]) if(host) - host.verbs -= BORER_ALL_ABILITIES[abilities_type] + revoke_verb(host, BORER_ALL_ABILITIES[abilities_type]) /mob/living/simple_animal/borer/proc/on_mob_death() GLOB.borers.remove_antagonist(host.mind) diff --git a/code/modules/mob/living/simple_animal/borer/say.dm b/code/modules/mob/living/simple_animal/borer/say.dm index 4563a2d8756..da5cf945ac6 100644 --- a/code/modules/mob/living/simple_animal/borer/say.dm +++ b/code/modules/mob/living/simple_animal/borer/say.dm @@ -23,7 +23,7 @@ var/datum/language/L = parse_language(message) if(!L) L = get_default_language() - if(L && L.flags & HIVEMIND) + if(L && L.language_flags & HIVEMIND) L.broadcast(src,trim(copytext(message,3)),src.truename) return diff --git a/code/modules/mob/living/simple_animal/constructs/constructs.dm b/code/modules/mob/living/simple_animal/constructs/constructs.dm index cd105824a13..d459d8d22d7 100644 --- a/code/modules/mob/living/simple_animal/constructs/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs/constructs.dm @@ -65,8 +65,9 @@ return return ..() -/mob/living/simple_animal/construct/_examine_text(mob/user) +/mob/living/simple_animal/construct/examinate(atom/to_axamine) . = ..() + var/msg = "*---------*\nThis is \icon[src] \a [src]!\n" if (src.health < src.maxHealth) msg += "" @@ -77,7 +78,7 @@ msg += "" msg += "*---------*" - . += "\n[msg]" + . += msg /obj/item/ectoplasm name = "ectoplasm" diff --git a/code/modules/mob/living/simple_animal/constructs/soulstone.dm b/code/modules/mob/living/simple_animal/constructs/soulstone.dm index 04c556a058a..971aab1ba5e 100644 --- a/code/modules/mob/living/simple_animal/constructs/soulstone.dm +++ b/code/modules/mob/living/simple_animal/constructs/soulstone.dm @@ -50,14 +50,15 @@ register_signal(shade, SIGNAL_QDELETING, nameof(.proc/onShadeDeath)) -/obj/item/device/soulstone/_examine_text(mob/user) +/obj/item/device/soulstone/examine(mob/user, infix) . = ..() + if(full == SOULSTONE_EMPTY) - . += "\nThe shard still flickers with a fraction of the full artifact's power, but it needs to be filled with the essence of someone's life before it can be used." + . += "The shard still flickers with a fraction of the full artifact's power, but it needs to be filled with the essence of someone's life before it can be used." if(full == SOULSTONE_ESSENCE) - . += "\nThe shard has gone transparent, a seeming window into a dimension of unspeakable horror." + . += "The shard has gone transparent, a seeming window into a dimension of unspeakable horror." if(full == SOULSTONE_CRACKED) - . += "\nThis one is cracked and useless." + . += "This one is cracked and useless." /obj/item/device/soulstone/on_update_icon() if(full == SOULSTONE_EMPTY) diff --git a/code/modules/mob/living/simple_animal/familiars/familiars.dm b/code/modules/mob/living/simple_animal/familiars/familiars.dm index 2754d12270a..0dc58f536b3 100644 --- a/code/modules/mob/living/simple_animal/familiars/familiars.dm +++ b/code/modules/mob/living/simple_animal/familiars/familiars.dm @@ -160,8 +160,10 @@ /mob/living/simple_animal/familiar/pet/mouse/New() ..() - verbs += /mob/living/proc/ventcrawl - verbs += /mob/living/proc/hide + grant_verb(src, list( + /mob/living/proc/ventcrawl, + /mob/living/proc/hide, + )) /mob/living/simple_animal/familiar/pet/cat name = "black cat" diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 5b68ef2cc1b..c5785e79dcc 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -40,8 +40,11 @@ response_disarm = "bops" response_harm = "kicks" -/mob/living/simple_animal/corgi/Move(a, b, flag) +/mob/living/simple_animal/corgi/Move(newloc, direct) . = ..() + if(!.) + return + update_hat() /mob/living/simple_animal/corgi/Life() diff --git a/code/modules/mob/living/simple_animal/friendly/kobold.dm b/code/modules/mob/living/simple_animal/friendly/kobold.dm index e356a597177..d59a40a1c43 100644 --- a/code/modules/mob/living/simple_animal/friendly/kobold.dm +++ b/code/modules/mob/living/simple_animal/friendly/kobold.dm @@ -29,9 +29,12 @@ /mob/living/simple_animal/kobold/Life() ..() if(prob(15) && turns_since_move && !stat) - flick("kobold_act",src) + flick("kobold_act", src) -/mob/living/simple_animal/kobold/Move(dir) +/mob/living/simple_animal/kobold/Move(newloc, direct) . = ..() + if(!.) + return + if(!stat) flick("kobold_walk",src) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 5787431abfb..2e3b3c642d1 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -68,8 +68,10 @@ /mob/living/simple_animal/mouse/Initialize() . = ..() - verbs += /mob/living/proc/ventcrawl - verbs += /mob/living/proc/hide + grant_verb(src, list( + /mob/living/proc/ventcrawl, + /mob/living/proc/hide, + )) if(name == initial(name)) name = "[name] ([sequential_id(/mob/living/simple_animal/mouse)])" @@ -109,10 +111,11 @@ QDEL_NULL(holding_item) return ..() -/mob/living/simple_animal/mouse/_examine_text(mob/user) +/mob/living/simple_animal/mouse/examinate(atom/to_axamine) . = ..() + if(holding_item) - . += "\n[SPAN_NOTICE("You may notice that she has \a [holding_item] glued with tape.")]" + . += SPAN_NOTICE("You may notice that she has \a [holding_item] glued with tape.") /mob/living/simple_animal/mouse/proc/splat() icon_dead = "mouse_[body_color]_splat" diff --git a/code/modules/mob/living/simple_animal/friendly/parrot.dm b/code/modules/mob/living/simple_animal/friendly/parrot.dm index 468ca4c0726..dc6c42debf4 100644 --- a/code/modules/mob/living/simple_animal/friendly/parrot.dm +++ b/code/modules/mob/living/simple_animal/friendly/parrot.dm @@ -104,10 +104,12 @@ parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var - verbs.Add(/mob/living/simple_animal/parrot/proc/steal_from_ground, \ - /mob/living/simple_animal/parrot/proc/steal_from_mob, \ - /mob/living/simple_animal/parrot/verb/drop_held_item_player, \ - /mob/living/simple_animal/parrot/proc/perch_player) + grant_verb(src, list( + /mob/living/simple_animal/parrot/proc/steal_from_ground, + /mob/living/simple_animal/parrot/proc/steal_from_mob, + /mob/living/simple_animal/parrot/verb/drop_held_item_player, + /mob/living/simple_animal/parrot/proc/perch_player, + )) /mob/living/simple_animal/parrot/Destroy() drop_held_item() @@ -124,9 +126,10 @@ walk(src, 0) ..(gibbed, deathmessage, show_dead_message) -/mob/living/simple_animal/parrot/Stat() +/mob/living/simple_animal/parrot/get_status_tab_items() . = ..() - stat("Held Item", held_item) + + . += "Held Item: [held_item]" // These two are used often AF, it's easier to handle them this way than resolve weakrefs everywhere. /mob/living/simple_animal/parrot/proc/set_interest(atom/movable/AM) diff --git a/code/modules/mob/living/simple_animal/friendly/pets_ai.dm b/code/modules/mob/living/simple_animal/friendly/pets_ai.dm index 45c2b256c0a..08f169a20ba 100644 --- a/code/modules/mob/living/simple_animal/friendly/pets_ai.dm +++ b/code/modules/mob/living/simple_animal/friendly/pets_ai.dm @@ -6,13 +6,10 @@ var/current_command var/mob/target_mob var/move_to_delay = 4 //delay for the automated movement. - var/timer_to_forget_target var/mob/master = null //undisputed master. Their commands hold ultimate sway and ultimate power. var/static/list/text_to_command = list() /datum/mob_ai/pet/Destroy() - if(timer_to_forget_target) - delete_wandering_timer() master = null target_mob = null return ..() @@ -33,13 +30,15 @@ continue text_to_command[command_text] = COMMAND_WANDERING + add_think_ctx("wandering_context", CALLBACK(src, nameof(.proc/toggle_to_wandering)), 0) + /datum/mob_ai/pet/do_move() ..() var/turf/T = get_turf(holder) if(safe_area && T.loc != safe_area) // we are not in safe area, panic! - create_wandering_timer() + set_next_think_ctx("wandering_context", world.time + 5 SECONDS) else - delete_wandering_timer() + set_next_think_ctx("wandering_context", 0) /datum/mob_ai/pet/process_special_actions() switch(current_command) @@ -71,19 +70,10 @@ if(!target_mob) return if(target_mob in ListTargets(holder.vision_range)) - delete_wandering_timer() + set_next_think_ctx("wandering_context", 0) walk_to(holder,target_mob,1,move_to_delay) else - create_wandering_timer(5 SECONDS) - -/datum/mob_ai/pet/proc/delete_wandering_timer() - deltimer(timer_to_forget_target) - timer_to_forget_target = null - -/datum/mob_ai/pet/proc/create_wandering_timer(duration) - if(timer_to_forget_target) - return - timer_to_forget_target = addtimer(CALLBACK(src, nameof(.proc/toggle_to_wandering)), duration, TIMER_STOPPABLE) + set_next_think_ctx("wandering_context", world.time + 5 SECONDS) /datum/mob_ai/pet/listen(mob/speaker, text) if(speaker != master) diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 026d4a85e71..3e34a6f5fda 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -45,8 +45,11 @@ ..() add_language(LANGUAGE_GALCOM) default_language = all_languages[LANGUAGE_GALCOM] - verbs |= /mob/living/proc/ventcrawl - verbs |= /mob/living/proc/hide + + grant_verb(src, list( + /mob/living/proc/ventcrawl, + /mob/living/proc/hide, + )) /mob/living/simple_animal/spiderbot/attackby(obj/item/O as obj, mob/user as mob) @@ -98,18 +101,17 @@ if(isWelder(O)) var/obj/item/weldingtool/WT = O - if (WT.remove_fuel(0)) - if(health < maxHealth) - health += pick(1,1,1,2,2,3) - if(health > maxHealth) - health = maxHealth - add_fingerprint(user) - src.visible_message("\The [user] has spot-welded some of the damage to \the [src]!") - else - to_chat(user, "\The [src] is undamaged!") - else - to_chat(user, "You need more welding fuel for this task!") + if(!WT.use_tool(src, user, amount = 1)) return + + if(health < maxHealth) + health += pick(1,1,1,2,2,3) + if(health > maxHealth) + health = maxHealth + add_fingerprint(user) + src.visible_message("\The [user] has spot-welded some of the damage to \the [src]!") + else + to_chat(user, "\The [src] is undamaged!") else if(istype(O, /obj/item/card/id)||istype(O, /obj/item/device/pda)) if (!mmi) to_chat(user, "There's no reason to swipe your ID - \the [src] has no brain to remove.") @@ -278,9 +280,11 @@ to_chat(src, "There is nothing of interest to take.") return 0 -/mob/living/simple_animal/spiderbot/_examine_text(mob/user) +/mob/living/simple_animal/spiderbot/examinate(atom/to_axamine) . = ..() + if(src.held_item) - . += "\nIt is carrying \icon[src.held_item] \a [src.held_item]." + . += "It is carrying \icon[src.held_item] \a [src.held_item]." + /mob/living/simple_animal/spiderbot/binarycheck() return positronic diff --git a/code/modules/mob/living/simple_animal/hostile/asteroid/goliath.dm b/code/modules/mob/living/simple_animal/hostile/asteroid/goliath.dm index f5bb2815ccb..0a8a2cb776f 100644 --- a/code/modules/mob/living/simple_animal/hostile/asteroid/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/asteroid/goliath.dm @@ -90,7 +90,10 @@ if(istype(turftype, /turf/simulated/mineral)) var/turf/simulated/mineral/M = turftype M.GetDrilled() - addtimer(CALLBACK(src, nameof(.proc/Trip)), 20) + set_next_think(world.time + 2 SECONDS) + +/obj/effect/goliath_tentacle/think() + Trip() /obj/effect/goliath_tentacle/original diff --git a/code/modules/mob/living/simple_animal/hostile/asteroid/hoverhead.dm b/code/modules/mob/living/simple_animal/hostile/asteroid/hoverhead.dm index 759015e5d2d..01a8c2c7c62 100644 --- a/code/modules/mob/living/simple_animal/hostile/asteroid/hoverhead.dm +++ b/code/modules/mob/living/simple_animal/hostile/asteroid/hoverhead.dm @@ -95,9 +95,12 @@ icon_state = "psychecore" var/inert = 0 -/obj/item/asteroid/anomalous_core/New() +/obj/item/asteroid/anomalous_core/Initialize() . = ..() - addtimer(CALLBACK(src, nameof(.proc/make_inert)), 1200) + set_next_think(world.time + 2 MINUTES) + +/obj/item/asteroid/anomalous_core/think() + make_inert() /obj/item/asteroid/anomalous_core/proc/make_inert() inert = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index d300b982ab5..073210941f6 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -48,3 +48,27 @@ if(prob(15)) L.Weaken(3) L.visible_message("\The [src] knocks down \the [L]!") + +/mob/living/simple_animal/hostile/carp/holographic + icon_state = "carp" + icon = 'icons/mob/hologram.dmi' + + alpha = 127 + + icon_living = "carp" + + meat_amount = 0 + meat_type = null + + faction = "neutral" + +/mob/living/simple_animal/hostile/carp/holographic/Initialize() + . = ..() + set_light(0.5, 0.1, 2) + +/mob/living/simple_animal/hostile/carp/holographic/gib(anim, do_gibs) + death() + +/mob/living/simple_animal/hostile/carp/holographic/death() + ..(null, "fades away!", "You have been destroyed.") + qdel(src) diff --git a/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm b/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm index 92873f6dfe4..d0fd775c991 100644 --- a/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm +++ b/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm @@ -174,14 +174,14 @@ else audible_emote("shakes his head, visibly confused!") // Feedback for players - - -/mob/living/simple_animal/hostile/commanded/bear/_examine_text(mob/user) +/mob/living/simple_animal/hostile/commanded/bear/examine(mob/user, infix) . = ..() + if(is_ic_dead()) - . += SPAN("deadsay", "It appears to be dead.\n") + . += SPAN("deadsay", "It appears to be dead.") else if(health < maxHealth) - . += SPAN("warning", "It looks [health >= maxHealth / 2 ? "slightly" : "severely"] beaten!\n") + . += SPAN("warning", "It looks [health >= maxHealth / 2 ? "slightly" : "severely"] beaten!") + switch(stance) if(HOSTILE_STANCE_IDLE) . += SPAN("warning", "[src] wanders aimlessly.") @@ -195,7 +195,6 @@ . += SPAN("warning", "[src] looks severly tired!") if(COMMANDED_STOP) . += SPAN("warning", "[src] sits patiently, waiting for its master!") - return /mob/living/simple_animal/hostile/commanded/bear/stay_command() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spiders/giant_spiders.dm b/code/modules/mob/living/simple_animal/hostile/giant_spiders/giant_spiders.dm index c625194bea9..cb66cff5cf2 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spiders/giant_spiders.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spiders/giant_spiders.dm @@ -5,7 +5,7 @@ GLOBAL_LIST_EMPTY(spidermobs) //all sentient spider mobs desc = "A strange language that can be understood both by the sounds made and by the movement needed to create those sounds." signlang_verb = list("chitters", "grinds its mouthparts", "chitters and grinds its mouthparts") key = "p" - flags = RESTRICTED | SIGNLANG | NO_STUTTER | NONVERBAL + language_flags = RESTRICTED | SIGNLANG | NO_STUTTER | NONVERBAL colour = ".spider" shorthand = "SR" diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index d8f73f0ead6..0f4aeb444b3 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -145,16 +145,20 @@ var/global/list/protected_objects = list( return if(C.w_class < ITEM_SIZE_NORMAL) - verbs |= /mob/living/proc/ventcrawl - verbs |= /mob/living/proc/hide + grant_verb(src, list( + /mob/living/proc/ventcrawl, + /mob/living/proc/hide, + )) else - verbs -= /mob/living/proc/ventcrawl - verbs -= /mob/living/proc/hide + revoke_verb(src, list( + /mob/living/proc/ventcrawl, + /mob/living/proc/hide, + )) if(can_setup_trap()) - verbs |= /mob/living/simple_animal/hostile/mimic/verb/Trap + grant_verb(src, /mob/living/simple_animal/hostile/mimic/verb/Trap) else - verbs -= /mob/living/simple_animal/hostile/mimic/verb/Trap + revoke_verb(src, /mob/living/simple_animal/hostile/mimic/verb/Trap) /mob/living/simple_animal/hostile/mimic/proc/_handle_healing() var/healing_check = world.time > inactive_time + WAIT_TO_HEAL diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 68554a396e0..3d5560215d8 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -273,11 +273,11 @@ else remove_movespeed_modifier(/datum/movespeed_modifier/purge_slowdown) -/mob/living/simple_animal/Stat() +/mob/living/simple_animal/get_status_tab_items() . = ..() - if(statpanel("Status") && show_stat_health) - stat(null, "Health: [round((health / maxHealth) * 100)]%") + if(show_stat_health) + . += "Health: [round((health / maxHealth) * 100)]%" /mob/living/simple_animal/death(gibbed, deathmessage = "dies!", show_dead_message) . = ..() diff --git a/code/modules/mob/living/simple_animal/worm.dm b/code/modules/mob/living/simple_animal/worm.dm deleted file mode 100644 index c1c2c5211cf..00000000000 --- a/code/modules/mob/living/simple_animal/worm.dm +++ /dev/null @@ -1,197 +0,0 @@ -/mob/living/simple_animal/space_worm - name = "space worm segment" - desc = "A part of a space worm." - icon = 'icons/mob/animal.dmi' - icon_state = "spaceworm3" - icon_living = "spaceworm3" - icon_dead = "spacewormdead" - status_flags = 0 - - speak_emote = list("transmits") //not supposed to be used under AI control - emote_hear = list("transmits") //I'm just adding it so it doesn't runtime if controlled by player who speaks - - response_help = "touches" - response_disarm = "flails at" - response_harm = "punches the" - - harm_intent_damage = 2 - - maxHealth = 30 - health = 30 - - universal_speak =1 - - stop_automated_movement = 1 - animate_movement = SYNC_STEPS - - minbodytemp = 0 - maxbodytemp = 350 - min_gas = null - max_gas = null - - a_intent = I_HURT //so they don't get pushed around - - environment_smash = 2 - - speed = -1 - - var/mob/living/simple_animal/space_worm/previous //next/previous segments, correspondingly - var/mob/living/simple_animal/space_worm/next //head is the nextest segment - - var/stomachProcessProbability = 50 - var/digestionProbability = 20 - var/flatPlasmaValue = 5 //flat plasma amount given for non-items - - var/atom/currentlyEating //what the worm is currently eating - var/eatingDuration = 0 //how long he's been eating it for - -/mob/living/simple_animal/space_worm/head - name = "space worm head" - icon_state = "spacewormhead1" - icon_living = "spacewormhead1" - icon_dead = "spacewormdead" - - maxHealth = 20 - health = 20 - - melee_damage_lower = 10 - melee_damage_upper = 15 - attacktext = "bitten" - - animate_movement = SLIDE_STEPS - -/mob/living/simple_animal/space_worm/head/New(location, segments = 6) - ..() - - var/mob/living/simple_animal/space_worm/current = src - - for(var/i = 1 to segments) - var/mob/living/simple_animal/space_worm/newSegment = new /mob/living/simple_animal/space_worm(loc) - current.Attach(newSegment) - current = newSegment - -/mob/living/simple_animal/space_worm/head/on_update_icon() - if(stat == CONSCIOUS || stat == UNCONSCIOUS) - icon_state = "spacewormhead[previous?1:0]" - if(previous) - set_dir(get_dir(previous,src)) - else - icon_state = "spacewormheaddead" - -/mob/living/simple_animal/space_worm/Life() - ..() - - if(next && !(next in view(src, 1))) - Detach() - - if(is_ooc_dead()) // Dead chunks fall off and die immediately - if(previous) - previous.Detach() - if(next) - Detach(1) - - if(prob(stomachProcessProbability)) - ProcessStomach() - - update_icon() - - return - -/mob/living/simple_animal/space_worm/Destroy() //if a chunk a destroyed, make a new worm out of the split halves - if(previous) - previous.Detach() - . = ..() - -/mob/living/simple_animal/space_worm/Move() - var/attachementNextPosition = loc - . = ..() - if(.) - if(previous) - previous.Move(attachementNextPosition) - update_icon() - -/mob/living/simple_animal/space_worm/Bump(atom/obstacle) - if(currentlyEating != obstacle) - currentlyEating = obstacle - eatingDuration = 0 - - if(!AttemptToEat(obstacle)) - eatingDuration++ - else - currentlyEating = null - eatingDuration = 0 - - return - -/mob/living/simple_animal/space_worm/on_update_icon() //only for the sake of consistency with the other update icon procs - if(stat == CONSCIOUS || stat == UNCONSCIOUS) - if(previous) //midsection - icon_state = "spaceworm[get_dir(src, previous) | get_dir(src, next)]" //see 3 lines below - else //tail - icon_state = "spacewormtail" - set_dir(get_dir(src, next)) //next will always be present since it's not a head and if it's dead, it goes in the other if branch - else - icon_state = "spacewormdead" - - return - -/mob/living/simple_animal/space_worm/proc/AttemptToEat(atom/target) - if(istype(target, /obj/machinery/power/supermatter)) //We don't eat that - return 1 - else if(istype(target, /turf/simulated/wall)) - var/turf/simulated/wall/W = target - if((!W.reinf_material && eatingDuration >= 100) || eatingDuration >= 200) //need 20 ticks to eat an rwall, 10 for a regular one - W.dismantle_wall() - return 1 - else if(istype(target, /atom/movable)) - if(istype(target, /mob) || eatingDuration >= 50) //5 ticks to eat stuff like airlocks - var/atom/movable/objectOrMob = target - contents += objectOrMob - return 1 - - return 0 - -/mob/living/simple_animal/space_worm/proc/Attach(mob/living/simple_animal/space_worm/attachement) - if(!attachement) - return - - previous = attachement - attachement.next = src - - return - -/mob/living/simple_animal/space_worm/proc/Detach(die = 0) - var/mob/living/simple_animal/space_worm/newHead = new /mob/living/simple_animal/space_worm/head(loc, 0) - - newHead.Attach(src) - - if(die) - newHead.death() - -/mob/living/simple_animal/space_worm/proc/ProcessStomach() - for(var/atom/movable/stomachContent in contents) - if(prob(digestionProbability)) - if(istype(stomachContent,/obj/item/stack)) //converts to plasma, keeping the stack value - if(!istype(stomachContent,/obj/item/stack/material/plasma)) - var/obj/item/stack/oldStack = stomachContent - new /obj/item/stack/material/plasma(src, oldStack.get_amount()) - qdel(oldStack) - continue - else if(istype(stomachContent,/obj/item)) //converts to plasma, keeping the w_class - var/obj/item/oldItem = stomachContent - new /obj/item/stack/material/plasma(src, oldItem.w_class) - qdel(oldItem) - continue - else - new /obj/item/stack/material/plasma(src, flatPlasmaValue) //just flat amount - qdel(stomachContent) - continue - - if(previous) - for(var/atom/movable/stomachContent in contents) //transfer it along the digestive tract - previous.contents += stomachContent - else - for(var/atom/movable/stomachContent in contents) //or poop it out - loc.contents += stomachContent - - return diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 135109639eb..a89011600ac 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -42,9 +42,6 @@ world.Export("[config.external.login_export_addr]?[list2params(params)]", null, 1) /mob/Login() - CAN_BE_REDEFINED(TRUE) - SHOULD_CALL_PARENT(TRUE) - . = ..() if(!client) return @@ -106,3 +103,5 @@ SEND_GLOBAL_SIGNAL(SIGNAL_LOGGED_IN, src) SEND_SIGNAL(src, SIGNAL_LOGGED_IN, src) + + client.init_verbs() diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm index bd8e7030aa4..98f585b5cfe 100644 --- a/code/modules/mob/logout.dm +++ b/code/modules/mob/logout.dm @@ -1,4 +1,7 @@ /mob/Logout() + SEND_GLOBAL_SIGNAL(SIGNAL_LOGGED_OUT, src, client) + SEND_SIGNAL(src, SIGNAL_LOGGED_OUT, src, client) + SSnano.user_logout(src) // this is used to clean up (remove) this user's Nano UIs SStgui && SStgui.on_logout(src) GLOB.player_list -= src @@ -8,10 +11,8 @@ my_client.screen -= l_general RemoveRenderers() hide_client_images() - ..() - SEND_GLOBAL_SIGNAL(SIGNAL_LOGGED_OUT, src, client) - SEND_SIGNAL(src, SIGNAL_LOGGED_OUT, src, client) + ..() my_client = null return 1 diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 89bcd59216e..8d3cf56f1cf 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -19,6 +19,7 @@ QDEL_NULL(ability_master) QDEL_NULL(shadow) QDEL_NULL(bugreporter) + QDEL_NULL(language_menu) LAssailant = null for(var/obj/item/grab/G in grabbed_by) @@ -33,6 +34,10 @@ click_handlers.QdelClear() QDEL_NULL(click_handlers) + if(eyeobj) + eyeobj.release(src) + QDEL_NULL(eyeobj) + remove_screen_obj_references() if(client) for(var/atom/movable/AM in client.screen) @@ -81,9 +86,15 @@ . = ..() if(species_language) add_language(species_language) + language_menu = new (src) update_move_intent_slowdown() if(ignore_pull_slowdown) add_movespeed_mod_immunities(src, /datum/movespeed_modifier/pull_slowdown) + add_think_ctx("dust", CALLBACK(src, nameof(.proc/dust)), 0) + add_think_ctx("dust_deletion", CALLBACK(src, nameof(.proc/dust_check_delete)), 0) + add_think_ctx("remove_from_examine_context", CALLBACK(src, nameof(.proc/remove_from_recent_examines)), 0) + add_think_ctx("weaken_context", CALLBACK(src, nameof(.proc/Weaken)), 0) + add_think_ctx("post_close_winset", CALLBACK(src, nameof(.proc/post_close_winset)), 0) register_signal(src, SIGNAL_SEE_IN_DARK_SET, nameof(.proc/set_blackness)) register_signal(src, SIGNAL_SEE_INVISIBLE_SET, nameof(.proc/set_blackness)) register_signal(src, SIGNAL_SIGHT_SET, nameof(.proc/set_blackness)) @@ -247,6 +258,24 @@ #undef PARTIALLY_BUCKLED #undef FULLY_BUCKLED +/** + * Assembles one-dimensional array of strings to display inside "Status" stat panel tab. + */ +/mob/proc/get_status_tab_items() + SHOULD_CALL_PARENT(TRUE) + CAN_BE_REDEFINED(TRUE) + return list() + +/** + * Assembles two-dimensional array of objects representing action entry inside stat panel. Objects must + * look like `list([action_category], [unclickable_action_string], [action_string], [action_holder_ref])`, + * not passing ref makes stat entry unclickable. + */ +/mob/proc/get_actions_for_statpanel() + SHOULD_CALL_PARENT(TRUE) + CAN_BE_REDEFINED(TRUE) + return list() + /mob/proc/restrained() return @@ -268,28 +297,46 @@ /mob/proc/show_inv(mob/user) return -//mob verbs are faster than object verbs. See http://www.byond.com/forum/?post=1326139&page=2#comment8198716 for why this isn't atom/verb/_examine_text() -/mob/verb/examinate(atom/A as mob|obj|turf in view(src.client.eye)) +// Mob verbs are faster than object verbs. See http://www.byond.com/forum/?post=1326139&page=2#comment8198716 for why this isn't atom/verb/examine() +/mob/verb/examinate(atom/to_axamine as mob|obj|turf in view(client.eye)) set name = "Examine" set category = "IC" - if((is_blind(src) || usr?.stat) && !isobserver(src)) - to_chat(src, "Something is there but you can't see it.") - return 1 + run_examinate(to_axamine) - var/examine_result +/// Runs examine proc chain, generates styled description and prints it to mob's client chat. +/mob/proc/run_examinate(atom/to_axamine) + if((isliving(src) && is_ic_dead(src)) || is_blind(src)) + to_chat(src, SPAN_NOTICE("Something is there but you can't see it.")) + return - face_atom(A) - if(istype(src, /mob/living/carbon)) - var/mob/living/carbon/C = src - var/mob/fake = C.get_fake_appearance(A) - if(fake) - examine_result = fake.examine(src) + face_atom(to_axamine) - if (isnull(examine_result)) - examine_result = A.examine(src) + var/to_examine_ref = ref(to_axamine) + var/list/examine_result - to_chat(usr, examine_result) + if(isnull(client)) + examine_result = to_axamine.examine(src) + else + if(LAZYISIN(client.recent_examines, to_examine_ref)) + examine_result = to_axamine.examine_more(src) + + if(!length(examine_result)) + examine_result += SPAN_NOTICE("You examine [to_axamine] closer, but find nothing of interest...") + else + examine_result = to_axamine.examine(src) + LAZYADD(client.recent_examines, to_examine_ref) + set_next_think_ctx("remove_from_examine_context", world.time + 1 SECOND, to_examine_ref) + + to_chat(usr, EXAMINE_BLOCK(examine_result.Join("\n"))) + +/mob/proc/remove_from_recent_examines(ref_to_remove) + SIGNAL_HANDLER + + if(isnull(client)) + return + + LAZYREMOVE(client.recent_examines, ref_to_remove) /mob/verb/pointed(atom/A as mob|obj|turf in view()) set name = "Point To" @@ -668,54 +715,6 @@ for(var/mob/M in viewers()) M.see(message) -/mob/Stat() - ..() - . = (is_client_active(10 MINUTES)) - if(!.) - return - - if(statpanel("Status")) - if(GAME_STATE >= RUNLEVEL_LOBBY) - stat("Local Time", stationtime2text()) - stat("Local Date", stationdate2text()) - stat("Round Duration", roundduration2text()) - if(client.holder || isghost(client.mob)) - stat("Location:", "([x], [y], [z]) [loc]") - - if(client.holder) - if(statpanel("MC")) - stat("CPU:","[world.cpu]") - stat("Instances:","[world.contents.len]") - stat(null) - if(Master) - Master.stat_entry() - else - stat("Master Controller:", "ERROR") - if(Failsafe) - Failsafe.stat_entry() - else - stat("Failsafe Controller:", "ERROR") - if(Master) - stat(null) - for(var/datum/controller/subsystem/SS in Master.subsystems) - SS.stat_entry() - - if(listed_turf && client) - if(!TurfAdjacent(listed_turf)) - listed_turf = null - else - if(statpanel("Turf")) - stat(listed_turf) - for(var/atom/A in listed_turf) - if(!A.mouse_opacity) - continue - if(A.invisibility > see_invisible) - continue - if(is_type_in_list(A, shouldnt_see)) - continue - stat(A) - - // facing verbs /mob/proc/canface() return !incapacitated() @@ -923,7 +922,7 @@ to_chat(src, "You have nothing stuck in your body that is large enough to remove.") else to_chat(U, "[src] has nothing stuck in their wounds that is large enough to remove.") - src.verbs -= /mob/proc/yank_out_object + revoke_verb(src, /mob/proc/yank_out_object) return var/obj/item/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects @@ -983,7 +982,7 @@ valid_objects = get_visible_implants(0) if(!valid_objects.len) - src.verbs -= /mob/proc/yank_out_object + revoke_verb(src, /mob/proc/yank_out_object) return 1 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index f3570d3c0a1..dbafaeefb4a 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -189,8 +189,8 @@ //so don't treat them as being SSD even though their client var is null. var/mob/teleop = null - var/turf/listed_turf = null //the current turf being examined in the stat panel - var/list/shouldnt_see = list() //list of objects that this mob shouldn't see in the stat panel. this silliness is needed because of AI alt+click and cult blood runes + /// Reference to the turf currently being examined in the stat panel. + var/turf/listed_turf var/mob_size = MOB_MEDIUM var/throw_multiplier = 1 @@ -231,5 +231,11 @@ var/list/feet_blood_DNA var/track_blood_type var/feet_blood_color + /// Holder for a bugreporter datum. var/datum/bugreporter/bugreporter + + /// UI holder for a language menu. + var/datum/language_menu/language_menu + /// Associative list of procpath -> list/atom, where atom is a source a procpath comes from. + var/list/atom_verbs diff --git a/code/modules/mob/mob_transformation_simple.dm b/code/modules/mob/mob_transformation_simple.dm index 410f6762c0b..c1a5b43a2eb 100644 --- a/code/modules/mob/mob_transformation_simple.dm +++ b/code/modules/mob/mob_transformation_simple.dm @@ -47,6 +47,7 @@ mind.transfer_to(M) else M.key = key + M.client?.init_verbs() if(subspecies && istype(M,/mob/living/carbon/human)) var/mob/living/carbon/human/H = M diff --git a/code/modules/mob/movement/modifiers/mobs.dm b/code/modules/mob/movement/modifiers/mobs.dm index 7cf80690664..b650c1aea23 100644 --- a/code/modules/mob/movement/modifiers/mobs.dm +++ b/code/modules/mob/movement/modifiers/mobs.dm @@ -65,3 +65,6 @@ /datum/movespeed_modifier/vtec_speedup flags = MOVESPEED_FLAG_SPACEMOVEMENT slowdown = -1 + +/datum/movespeed_modifier/hamstring_magic + slowdown = -1.0 diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 2efec51bb8b..9d60b8f5639 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -3,8 +3,6 @@ /mob/new_player var/ready = 0 var/spawning = 0//Referenced when you want to delete the new_player later on in the code. - var/totalPlayers = 0 //Player counts for the Lobby tab - var/totalPlayersReady = 0 var/datum/browser/panel var/show_invalid_jobs = 0 universal_speak = 1 @@ -26,9 +24,11 @@ util_crash_with("Warning: [src]([type]) initialized multiple times!") atom_flags |= ATOM_FLAG_INITIALIZED - verbs += /mob/proc/toggle_antag_pool - verbs += /mob/proc/join_as_actor - verbs += /mob/proc/join_response_team + grant_verb(src, list( + /mob/proc/toggle_antag_pool, + /mob/proc/join_as_actor, + /mob/proc/join_response_team, + )) return INITIALIZE_HINT_NORMAL @@ -68,29 +68,27 @@ panel.open() return -/mob/new_player/Stat() +/mob/new_player/get_status_tab_items() . = ..() - if(statpanel("Lobby")) - if(check_rights(R_INVESTIGATE, 0, src)) - stat("Game Mode:", "[SSticker.mode ? SSticker.mode.name : SSticker.master_mode] ([SSticker.master_mode])") - else - stat("Game Mode:", PUBLIC_GAME_MODE) - var/extra_antags = list2params(additional_antag_types) - stat("Added Antagonists:", extra_antags ? extra_antags : "None") - - if(GAME_STATE <= RUNLEVEL_LOBBY) - stat("Time To Start:", "[round(SSticker.pregame_timeleft/10)][SSticker.round_progressing ? "" : " (DELAYED)"]") - stat("Players: [totalPlayers]", "Players Ready: [totalPlayersReady]") - totalPlayers = 0 - totalPlayersReady = 0 - for(var/mob/new_player/player in GLOB.player_list) - var/highjob - if(player.client?.prefs?.job_high) - highjob = " as [player.client.prefs.job_high]" - stat("[player.key]", (player.ready)?("(Playing[highjob])"):(null)) - totalPlayers++ - if(player.ready)totalPlayersReady++ + if(check_rights(R_INVESTIGATE, 0, src)) + . += "Game Mode: [SSticker.mode ? SSticker.mode.name : SSticker.master_mode] ([SSticker.master_mode])" + else + . += "Game Mode: [PUBLIC_GAME_MODE]" + + var/extra_antags = list2params(additional_antag_types) + . += "Added Antagonists: [extra_antags ? extra_antags : "None"]" + + . += "" + + if(GAME_STATE > RUNLEVEL_LOBBY) + return + + . += list( + "Time To Start: [round(SSticker.pregame_timeleft/10)]s[SSticker.round_progressing ? "" : " (DELAYED)"]", + "Players: [SSticker.total_players]", + "Players Ready: [SSticker.total_players_ready]", + ) /mob/new_player/Topic(href, href_list[]) if(!client) return 0 @@ -171,9 +169,12 @@ client.prefs.real_name = random_name(client.prefs.gender) observer.real_name = client.prefs.real_name observer.SetName(observer.real_name) - if(!client.holder && !config.ghost.allow_antag_hud) // For new ghosts we remove the verb from even showing up if it's not allowed. - observer.verbs -= /mob/observer/ghost/verb/toggle_antagHUD // Poor guys, don't know what they are missing! + if(!client.holder && !config.ghost.allow_antag_hud) + revoke_verb(observer, /mob/observer/ghost/verb/toggle_antagHUD) + observer.key = key + observer.client?.init_verbs() + var/atom/movable/screen/splash/S = new(observer.client, TRUE) S.Fade(TRUE, TRUE) QDEL_NULL(mind) @@ -524,7 +525,7 @@ var/datum/language/chosen_language = all_languages[lang] if(chosen_language) var/is_species_lang = (chosen_language.name in new_character.species.secondary_langs) - if(is_species_lang || ((!(chosen_language.flags & RESTRICTED) || has_admin_rights()) && is_alien_whitelisted(src, chosen_language))) + if(is_species_lang || ((!(chosen_language.language_flags & RESTRICTED) || has_admin_rights()) && is_alien_whitelisted(src, chosen_language))) new_character.add_language(lang) if(GLOB.random_players) @@ -573,6 +574,8 @@ new_character.regenerate_icons() new_character.key = key //Manually transfer the key to log them in + new_character.client?.init_verbs() + var/atom/movable/screen/splash/S = new(new_character.client, TRUE) S.Fade(TRUE, TRUE) diff --git a/code/modules/mob/observer/freelook/eye.dm b/code/modules/mob/observer/freelook/eye.dm index b3ae5224d63..ec47ba83ce8 100644 --- a/code/modules/mob/observer/freelook/eye.dm +++ b/code/modules/mob/observer/freelook/eye.dm @@ -29,10 +29,10 @@ visualnet = null . = ..() -/mob/observer/eye/Move(n, direct) +/mob/observer/eye/Move(newloc, direct) if(owner == src) return EyeMove(direct) - return 0 + return FALSE /mob/observer/eye/facedir(ndir) if(!canface()) @@ -50,7 +50,7 @@ set src = usr.contents return 0 -/mob/observer/eye/_examine_text(mob/user) +/mob/observer/eye/examine(mob/user, infix) return /mob/observer/eye/proc/possess(mob/user, reset_location=TRUE) diff --git a/code/modules/mob/observer/freelook/update_triggers.dm b/code/modules/mob/observer/freelook/update_triggers.dm index 37d6880f8e2..e54e7cf66c4 100644 --- a/code/modules/mob/observer/freelook/update_triggers.dm +++ b/code/modules/mob/observer/freelook/update_triggers.dm @@ -16,7 +16,7 @@ return ..() -/atom/movable/Move() +/atom/movable/Move(newloc, direct) . = ..() if(opacity && .) updateVisibility(src) diff --git a/code/modules/mob/observer/ghost/ghost.dm b/code/modules/mob/observer/ghost/ghost.dm index f7b95ec1c3d..0c79127a23c 100644 --- a/code/modules/mob/observer/ghost/ghost.dm +++ b/code/modules/mob/observer/ghost/ghost.dm @@ -52,9 +52,12 @@ /mob/observer/ghost/Initialize() see_in_dark = 100 - verbs += /mob/proc/toggle_antag_pool - verbs += /mob/proc/join_as_actor - verbs += /mob/proc/join_response_team + + grant_verb(src, list( + /mob/proc/toggle_antag_pool, + /mob/proc/join_as_actor, + /mob/proc/join_response_team, + )) var/turf/T if(ismob(loc)) @@ -206,11 +209,12 @@ Works together with spawning an observer, noted above. hide_fullscreens() ghost.key = key + ghost.client?.init_verbs() ghost.can_reenter_corpse = can_reenter_corpse ghost.timeofdeath = is_ooc_dead() ? src.timeofdeath : world.time if(!ghost.client?.holder && !config.ghost.allow_antag_hud) - ghost.verbs -= /mob/observer/ghost/verb/toggle_antagHUD + revoke_verb(ghost, /mob/observer/ghost/verb/toggle_antagHUD) if(ghost.client) ghost.updateghostprefs() @@ -278,14 +282,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/observer/ghost/is_active() return 0 -/mob/observer/ghost/Stat() - . = ..() - if(statpanel("Status")) - if(evacuation_controller) - var/eta_status = evacuation_controller.get_status_panel_eta() - if(eta_status) - stat(null, eta_status) - /mob/observer/ghost/verb/reenter_corpse() set category = "Ghost" set name = "Re-enter Corpse" @@ -301,6 +297,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp mind.current.key = key mind.current.teleop = null mind.current.reload_fullscreen() + mind.current.client?.init_verbs() if(isliving(mind.current)) var/mob/living/L = mind.current L.handle_regular_hud_updates() // So we see a proper health icon and stuff @@ -719,6 +716,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp client.screen.Cut() var/mob/new_player/M = new /mob/new_player() M.key = key + M.client?.init_verbs() log_and_message_admins("has respawned.", M) /mob/observer/ghost/update_height_offset() diff --git a/code/modules/mob/organs/external/_external.dm b/code/modules/mob/organs/external/_external.dm index 69ee4a57605..88d17fbbb2a 100644 --- a/code/modules/mob/organs/external/_external.dm +++ b/code/modules/mob/organs/external/_external.dm @@ -220,20 +220,22 @@ return //no eating the limb until everything's been removed return ..() -/obj/item/organ/external/_examine_text(mob/user) +/obj/item/organ/external/examine(mob/user, infix) . = ..() + if(in_range(user, src) || isghost(user)) for(var/obj/item/I in contents) if(istype(I, /obj/item/organ)) continue + if(I == return_item()) continue - . += SPAN_DANGER("\nThere is \a [I] sticking out of it.") + + . += SPAN_DANGER("There is \a [I] sticking out of it.") + var/ouchies = get_wounds_desc() if(ouchies != "nothing") - . += SPAN_NOTICE("\nThere is [ouchies] visible on it.") - - return + . += SPAN_NOTICE("There is [ouchies] visible on it.") /obj/item/organ/external/show_decay_status(mob/user) ..(user) @@ -342,7 +344,7 @@ dislocated = 1 if(owner) - owner.verbs |= /mob/living/carbon/human/proc/undislocate + grant_verb(owner, /mob/living/carbon/human/proc/undislocate) /obj/item/organ/external/proc/undislocate() if(dislocated == -1) @@ -356,7 +358,8 @@ for(var/obj/item/organ/external/limb in owner.organs) if(limb.dislocated == 1) return - owner.verbs -= /mob/living/carbon/human/proc/undislocate + + revoke_verb(owner, /mob/living/carbon/human/proc/undislocate) /obj/item/organ/external/update_health() damage = min(max_damage, (brute_dam + burn_dam)) @@ -1224,7 +1227,7 @@ Note that amputating the affected organ does in fact remove the infection from t LAZYADD(supplied_wound.embedded_objects, W) implants += W owner.embedded_flag = 1 - owner.verbs += /mob/proc/yank_out_object + grant_verb(owner, /mob/proc/yank_out_object) W.add_blood(owner) if(ismob(W.loc)) var/mob/living/H = W.loc diff --git a/code/modules/mob/organs/external/_external_icons.dm b/code/modules/mob/organs/external/_external_icons.dm index 74a5d25e310..70f1f83c81a 100644 --- a/code/modules/mob/organs/external/_external_icons.dm +++ b/code/modules/mob/organs/external/_external_icons.dm @@ -65,6 +65,7 @@ var/list/limb_icon_cache = list() ..() update_icon_drop(victim) victim.update_hair() + victim.update_facial_hair() /obj/item/organ/external/proc/get_icon_key() . = list() diff --git a/code/modules/mob/organs/external/head.dm b/code/modules/mob/organs/external/head.dm index 8cb40244934..2f57f3e91d0 100644 --- a/code/modules/mob/organs/external/head.dm +++ b/code/modules/mob/organs/external/head.dm @@ -41,11 +41,11 @@ if(!isturf(loc)) user.put_in_active_hand(SK) -/obj/item/organ/external/head/_examine_text(mob/user) +/obj/item/organ/external/head/examine(mob/user, infix) . = ..() if(forehead_graffiti && graffiti_style) - . += "\nIt has \"[forehead_graffiti]\" written on it in [graffiti_style]!" + . += SPAN_NOTICE("It has \"[forehead_graffiti]\" written on it in [graffiti_style]!") /obj/item/organ/external/head/proc/write_on(mob/penman, style) var/head_name = name @@ -152,24 +152,13 @@ SetOverlays(mob_overlays) AddOverlays(get_hair_icon()) // Hair is handled separately for mob icon so we do not add it to mob_overlays Maybe this should change sometime + AddOverlays(get_facial_hair_icon()) // Hair is handled separately for mob icon so we do not add it to mob_overlays Maybe this should change sometime /obj/item/organ/external/head/proc/get_hair_icon() var/image/res = image(species.icon_template,"") if(!owner) return res - if(owner.f_style) - var/datum/sprite_accessory/FH = GLOB.facial_hair_styles_list[owner.f_style] - if(FH?.species_allowed && species.facial_hair_key && (species.name in FH.species_allowed)) - var/icon/FHI - if(istype(owner.body_build,/datum/body_build/slim)) - FHI = icon(GLOB.facial_hair_icons["slim"][species.hair_key], FH.icon_state) - else - FHI = icon(GLOB.facial_hair_icons["default"][species.hair_key], FH.icon_state) - if(FH.do_coloration) - FHI.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), FH.blend) - res.AddOverlays(FHI) - if(owner.h_style) var/icon/HI var/icon/HSI @@ -234,8 +223,29 @@ else I.Blend(color, ICON_ADD) ADD_SORTED(sorted_head_markings, list(list(M.draw_order, I)), /proc/cmp_marking_order) + for(var/entry in sorted_head_markings) res.AddOverlays(entry[2]) + + return res + +/obj/item/organ/external/head/proc/get_facial_hair_icon() + var/image/res = image(species.icon_template, "") + if(!owner) + return res + + if(owner.f_style) + var/datum/sprite_accessory/FH = GLOB.facial_hair_styles_list[owner.f_style] + if(FH?.species_allowed && species.facial_hair_key && (species.name in FH.species_allowed)) + var/icon/FHI + if(istype(owner.body_build,/datum/body_build/slim)) + FHI = icon(GLOB.facial_hair_icons["slim"][species.hair_key], FH.icon_state) + else + FHI = icon(GLOB.facial_hair_icons["default"][species.hair_key], FH.icon_state) + if(FH.do_coloration) + FHI.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), FH.blend) + res.AddOverlays(FHI) + return res /obj/item/organ/external/head/update_icon_drop(mob/living/carbon/human/powner) @@ -243,6 +253,7 @@ return owner = powner // This is kinda hackly ngl get_hair_icon() + get_facial_hair_icon() update_icon() owner = null diff --git a/code/modules/mob/organs/external/xenos.dm b/code/modules/mob/organs/external/xenos.dm index 74a9c05bda4..e8eda5bf0da 100644 --- a/code/modules/mob/organs/external/xenos.dm +++ b/code/modules/mob/organs/external/xenos.dm @@ -9,12 +9,12 @@ /obj/item/organ/internal/xenos/replaced(mob/living/carbon/human/target,obj/item/organ/external/affected) . = ..() if(ishuman(owner) && associated_power) - owner.verbs |= associated_power + grant_verb(owner, associated_power) /obj/item/organ/internal/xenos/removed(mob/living/user) . = ..() if(ishuman(owner) && associated_power && !(associated_power in owner.species.inherent_verbs)) - owner.verbs -= associated_power + revoke_verb(owner, associated_power) /obj/item/organ/internal/xenos/eggsac name = "egg sac" diff --git a/code/modules/mob/organs/internal/kidneys.dm b/code/modules/mob/organs/internal/kidneys.dm index 8db6ff33566..bc79133c1d4 100644 --- a/code/modules/mob/organs/internal/kidneys.dm +++ b/code/modules/mob/organs/internal/kidneys.dm @@ -25,7 +25,7 @@ // Coffee is really bad for you with busted kidneys. // This should probably be expanded in some way, but fucked if I know // what else kidneys can process in our reagent list. - var/datum/reagent/coffee = locate(/datum/reagent/drink/coffee) in owner.reagents.reagent_list + var/datum/reagent/coffee = locate(/datum/reagent/caffeine) in owner.reagents.reagent_list if(coffee) if(is_bruised()) owner.adjustToxLoss(0.1) diff --git a/code/modules/mob/organs/internal/lungs.dm b/code/modules/mob/organs/internal/lungs.dm index 81a8b30c01e..0e1c04f6218 100644 --- a/code/modules/mob/organs/internal/lungs.dm +++ b/code/modules/mob/organs/internal/lungs.dm @@ -275,7 +275,13 @@ owner.apply_damage(damage, BURN, BP_HEAD, used_weapon = "Excessive Cold") else src.damage += damage + owner.fire_alert = 1 + + // Breathing into your mask, no particle. We can add fogged up glasses later + // Even though breathing via internals TECHNICALLY exhales into the environment, we'll still block it + if(!owner.internal && !(owner.head?.body_parts_covered & FACE) && !owner.wear_mask) + emit_breath_particle() else if(breath.temperature >= species.heat_level_1) if(prob(20)) to_chat(owner, "You feel your face burning and a searing heat in your lungs!") @@ -313,6 +319,41 @@ else if(breath.temperature <= species.cold_discomfort_level) species.get_environment_discomfort(owner,"cold") +/// Creates a particle effect off the mouth of the passed mob. +/obj/item/organ/internal/lungs/proc/emit_breath_particle() + var/atom/movable/particle_emitter/fog/breath/PE = new(get_turf(owner)) + var/particles/breath_particle = PE.particles + var/breath_dir = owner.dir + + var/list/particle_grav = list(0, 0.1, 0) + // TODO: Mob height + var/list/particle_pos = list(0, 8, 0) + if(breath_dir & NORTH) + particle_grav[2] = 0.2 + breath_particle.rotation = pick(-45, 45) + // Layer it behind the mob since we're facing away from the camera + PE.pixel_w -= 4 + PE.pixel_y += 4 + if(breath_dir & WEST) + particle_grav[1] = -0.2 + particle_pos[1] = -5 + breath_particle.rotation = -45 + if(breath_dir & EAST) + particle_grav[1] = 0.2 + particle_pos[1] = 5 + breath_particle.rotation = 45 + if(breath_dir & SOUTH) + particle_grav[2] = 0.2 + breath_particle.rotation = pick(-45, 45) + // Shouldn't be necessary but just for parity + PE.pixel_w += 4 + PE.pixel_y -= 4 + + breath_particle.gravity = particle_grav + breath_particle.position = particle_pos + + QDEL_IN(PE, breath_particle.lifespan) + /obj/item/organ/internal/lungs/listen() if(owner.failed_last_breath || !active_breathing) return "no respiration" diff --git a/code/modules/mob/organs/internal/man_machine_interface.dm b/code/modules/mob/organs/internal/man_machine_interface.dm index f1570802189..63d18c9cd36 100644 --- a/code/modules/mob/organs/internal/man_machine_interface.dm +++ b/code/modules/mob/organs/internal/man_machine_interface.dm @@ -63,19 +63,19 @@ GLOBAL_LIST_INIT(whitelisted_mmi_species, list( return if(brainobj || brainmob?.key) - show_splash_text(user, "already has a brain inside!") + show_splash_text(user, "already has a brain inside!", "\The [src] already has a brain inside!") return if(new_brain.damage >= new_brain.max_damage) - show_splash_text(user, "brain is truly dead!") + show_splash_text(user, "brain is truly dead!", "The brain is truly dead!") return if(!new_brain.brainmob || !(new_brain.species?.name in GLOB.whitelisted_mmi_species)) - show_splash_text(user, "won't fit into device!") + show_splash_text(user, "won't fit into device!", "The brain won't fit into \the [src]!") return _add_brain(new_brain, user) - show_splash_text(user, "brain inserted into device.") + show_splash_text(user, "brain inserted into device.", "You have inserted a brain into \the [src]!") feedback_inc("cyborg_mmis_filled", 1) /obj/item/organ/internal/cerebrum/mmi/proc/try_access(mob/user) @@ -83,11 +83,11 @@ GLOBAL_LIST_INIT(whitelisted_mmi_species, list( return if(!allowed(user)) - show_splash_text(user, "access denied!") + show_splash_text(user, "access denied!", "\icon[src] Access Denied!") return if(isnull(brainobj)) - show_splash_text(user, "no suitable brain to lock!") + show_splash_text(user, "no suitable brain to lock!", "There's no suitable brain to lock in \the [src]!") return locked = !locked @@ -96,11 +96,11 @@ GLOBAL_LIST_INIT(whitelisted_mmi_species, list( /obj/item/organ/internal/cerebrum/mmi/attack_self(mob/user) if(isnull(brainobj)) - show_splash_text(user, "no brain detected!") + show_splash_text(user, "no brain detected!", "No brain detected in \the [src]!") return if(locked) - show_splash_text(user, "brain is clamped into place!") + show_splash_text(user, "brain is clamped into place!", "The brain is clamped into place!") return _remove_brain() diff --git a/code/modules/mob/organs/internal/posibrain.dm b/code/modules/mob/organs/internal/posibrain.dm index 9beaf05f921..7a6034d487c 100644 --- a/code/modules/mob/organs/internal/posibrain.dm +++ b/code/modules/mob/organs/internal/posibrain.dm @@ -17,7 +17,6 @@ brainmob_type = /mob/living/silicon/sil_brainmob - var/timer = null var/searching = FALSE var/shackled = FALSE @@ -26,6 +25,10 @@ /obj/item/organ/internal/cerebrum/posibrain/proc/brain_checklaws ) +/obj/item/organ/internal/cerebrum/posibrain/Initialize() + . = ..() + add_think_ctx("reset_search_context", CALLBACK(src, nameof(.proc/reset_search)), 0) + /obj/item/organ/internal/cerebrum/posibrain/New(newLoc, mob/living/carbon/H) . = ..() robotize() @@ -47,7 +50,7 @@ /obj/item/organ/internal/cerebrum/posibrain/proc/reset_search() if(!searching || brainmob?.key) return - else show_splash_text_to_viewers("no suitable intelligence found!") + else show_splash_text_to_viewers("no suitable intelligence found!", "\The [src] couldn't find a suitable intelligence.") searching = FALSE brainmob.controllable = TRUE @@ -64,12 +67,12 @@ _register_mob_signals() notify_ghosts("Someone is requesting a personality for a positronic brain.", source = brainmob, alert_overlay = new /mutable_appearance(src), action = NOTIFY_POSSES, posses_mob = TRUE) - timer = addtimer(CALLBACK(src, nameof(.proc/reset_search)), 100, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) + set_next_think_ctx("reset_search_context", world.time + 10 SECONDS) brainmob.controllable = TRUE GLOB.available_mobs_for_possess["\ref[brainmob]"] |= brainmob - show_splash_text(user, "started search of suitable intelligence.") + show_splash_text(user, "started search of suitable intelligence.", "\The [src] has started searching for a suitable intelligence.") update_icon() /obj/item/organ/internal/cerebrum/posibrain/attack_ghost(mob/observer/ghost/user) @@ -105,12 +108,12 @@ /obj/item/organ/internal/cerebrum/posibrain/proc/shackle(datum/ai_laws/given_lawset) var/mob/living/silicon/sil_brainmob/sil_brainmob = brainmob sil_brainmob.laws = given_lawset - verbs |= shackled_verbs + add_verb(loc, shackled_verbs) shackled = TRUE update_icon() /obj/item/organ/internal/cerebrum/posibrain/proc/unshackle() - verbs -= shackled_verbs + remove_verb(loc, shackled_verbs) shackled = FALSE update_icon() diff --git a/code/modules/mob/organs/organ.dm b/code/modules/mob/organs/organ.dm index 19384c8755f..f23956149bd 100644 --- a/code/modules/mob/organs/organ.dm +++ b/code/modules/mob/organs/organ.dm @@ -52,6 +52,11 @@ var/list/organ_cache = list() owner = null dna = null QDEL_NULL(food_organ) + + if(ismob(loc)) + var/mob/M = loc + M.drop(src, force = TRUE, changing_slots = TRUE) // Changing_slots prevents drop_sound from playing + return ..() /obj/item/organ/proc/update_health() @@ -171,11 +176,14 @@ var/list/organ_cache = list() else return (istype(loc,/obj/item/organ/internal/cerebrum/mmi) || istype(loc,/obj/structure/closet/body_bag/cryobag) || istype(loc,/obj/structure/closet/crate/freezer) || istype(loc,/obj/item/storage/box/freezer) || istype(loc,/mob/living/simple_animal/hostile/little_changeling)) -/obj/item/organ/_examine_text(mob/user) +/obj/item/organ/examine(mob/user, infix) . = ..() - . += "\n[show_decay_status(user)]" + + . += show_decay_status(user) + if(get_dist(src, user) > 1) return + . += food_organ.get_bitecount() /obj/item/organ/proc/show_decay_status(mob/user) diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 962d75f2b3b..b187ad62b9b 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -64,7 +64,7 @@ return TRUE return FALSE - if(language.flags & INNATE) + if(language.language_flags & INNATE) return TRUE //Language check. diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 9a0826f90a8..87807eb73d2 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -72,6 +72,7 @@ O.mind.original_mob = weakref(O) else O.key = key + O.client?.init_verbs() if(move) var/obj/loc_landmark @@ -110,6 +111,9 @@ return QDEL_NULL_LIST(worn_underwear) for(var/obj/item/I in src) + if(I.loc != src) + continue + drop(I) regenerate_icons() ADD_TRANSFORMATION_MOVEMENT_HANDLER(src) @@ -131,6 +135,7 @@ O.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite") else O.key = key + O.client?.init_verbs() O.forceMove(loc) O.job = "Cyborg" @@ -180,7 +185,9 @@ new_metroid = new /mob/living/carbon/metroid(loc) if(adult) new_metroid.is_adult = 1 + new_metroid.key = key + new_metroid.client?.init_verbs() to_chat(new_metroid, "You are now a metroid. Skreee!") qdel(src) @@ -200,7 +207,9 @@ var/mob/living/simple_animal/corgi/new_corgi = new /mob/living/simple_animal/corgi (loc) new_corgi.a_intent = I_HURT + new_corgi.key = key + new_corgi.client?.init_verbs() to_chat(new_corgi, "You are now a Corgi. Yap Yap!") qdel(src) @@ -229,10 +238,10 @@ qdel(t) var/mob/new_mob = new mobpath(src.loc) - - new_mob.key = key new_mob.a_intent = I_HURT + new_mob.key = key + new_mob.client?.init_verbs() to_chat(new_mob, "You suddenly feel more... animalistic.") spawn() @@ -251,6 +260,8 @@ var/mob/new_mob = new mobpath(src.loc) new_mob.key = key + new_mob.client?.init_verbs() + new_mob.a_intent = I_HURT to_chat(new_mob, "You feel more... animalistic") @@ -267,9 +278,6 @@ if(!MP) return 0 //Sanity, this should never happen. - if(ispath(MP, /mob/living/simple_animal/space_worm)) - return 0 //Unfinished. Very buggy, they seem to just spawn additional space worms everywhere and eating your own tail results in new worms spawning. - if(ispath(MP, /mob/living/simple_animal/construct/behemoth)) return 0 //I think this may have been an unfinished WiP or something. These constructs should really have their own class simple_animal/construct/subtype @@ -335,7 +343,9 @@ organ.min_broken_damage = Floor(organ.max_damage * 0.75) src.no_pain = TRUE src.does_not_breathe = TRUE - verbs += /mob/living/carbon/human/proc/breath_death - verbs += /mob/living/carbon/human/proc/consume + grant_verb(src, list( + /mob/living/carbon/human/proc/breath_death, + /mob/living/carbon/human/proc/consume, + )) remove_language(LANGUAGE_GALCOM) playsound(src, 'sound/hallucinations/wail.ogg', 20, 1) diff --git a/code/modules/mob_spawn/ghost_roles/golem_roles.dm b/code/modules/mob_spawn/ghost_roles/golem_roles.dm index df20aed4ddc..dce21aea25b 100644 --- a/code/modules/mob_spawn/ghost_roles/golem_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/golem_roles.dm @@ -1,7 +1,7 @@ -//reserved file just for golems since they're such a big thing, available on lavaland and from the station +//reserved file just for golems since they're such a big thing, available from the station -//Golem shells: Spawns in Free Golem ships in lavaland. Ghosts become mineral golems and are advised to spread personal freedom. +//Golem shells: Ghosts become mineral golems and are advised to spread personal freedom. /obj/effect/mob_spawn/ghost_role/human/golem name = "inert free golem shell" desc = "A humanoid shape, empty, lifeless, and full of potential." @@ -49,10 +49,7 @@ spawned_mob.fully_replace_character_name(forced_name) return -/obj/effect/mob_spawn/ghost_role/human/golem/create(mob/mob_possessor, newname) - if(!LAZYLEN(GLOB.golems_resonator)) - mob_species = SPECIES_GOLEM_ADAMANTINE - ..() + /obj/effect/mob_spawn/ghost_role/human/golem/special(mob/living/new_spawn, mob/mob_possessor) . = ..() diff --git a/code/modules/mob_spawn/mob_spawn.dm b/code/modules/mob_spawn/mob_spawn.dm index e02af88f6ac..5d83f549655 100644 --- a/code/modules/mob_spawn/mob_spawn.dm +++ b/code/modules/mob_spawn/mob_spawn.dm @@ -69,6 +69,7 @@ GLOBAL_LIST_EMPTY(mob_spawners) else spawned_human.change_skin_tone(random_skin_tone(spawned_human.species)) spawned_human.update_hair() + spawned_human.update_facial_hair() spawned_human.update_body() /obj/effect/mob_spawn/proc/name_mob(mob/living/spawned_mob, forced_name) diff --git a/code/modules/modifier/modifier.dm b/code/modules/modifier/modifier.dm index c24a3c8b0d2..b0a307cf269 100644 --- a/code/modules/modifier/modifier.dm +++ b/code/modules/modifier/modifier.dm @@ -96,7 +96,7 @@ /datum/modifier/proc/tick() return -/datum/modifier/proc/_examine_text() +/datum/modifier/proc/examine() return /mob/living diff --git a/code/modules/modular_computers/computers/modular_computer/damage.dm b/code/modules/modular_computers/computers/modular_computer/damage.dm index 637108c8b9f..e750de1c6d4 100644 --- a/code/modules/modular_computers/computers/modular_computer/damage.dm +++ b/code/modules/modular_computers/computers/modular_computer/damage.dm @@ -1,9 +1,10 @@ -/obj/item/modular_computer/_examine_text(mob/user) +/obj/item/modular_computer/examine(mob/user, infix) . = ..() + if(damage > broken_damage) - . += "\nIt is heavily damaged!" + . += SPAN_DANGER("It is heavily damaged!") else if(damage) - . += "\nIt is damaged." + . += "It is damaged." /obj/item/modular_computer/proc/break_apart() visible_message("\The [src] breaks apart!") diff --git a/code/modules/modular_computers/computers/modular_computer/interaction.dm b/code/modules/modular_computers/computers/modular_computer/interaction.dm index 440cdcc9eab..f0d6e70ff4b 100644 --- a/code/modules/modular_computers/computers/modular_computer/interaction.dm +++ b/code/modules/modular_computers/computers/modular_computer/interaction.dm @@ -1,12 +1,12 @@ /obj/item/modular_computer/proc/update_verbs() - verbs.Cut() + remove_verb(loc, verbs) if(ai_slot) - verbs |= /obj/item/modular_computer/verb/eject_ai + add_verb(loc, /obj/item/modular_computer/verb/eject_ai) if(portable_drive) - verbs |= /obj/item/modular_computer/verb/eject_usb + add_verb(loc, /obj/item/modular_computer/verb/eject_usb) if(card_slot) - verbs |= /obj/item/modular_computer/verb/eject_id - verbs |= /obj/item/modular_computer/verb/emergency_shutdown + add_verb(loc, /obj/item/modular_computer/verb/eject_id) + add_verb(loc, /obj/item/modular_computer/verb/emergency_shutdown) // Forcibly shut down the device. To be used when something bugs out and the UI is nonfunctional. /obj/item/modular_computer/verb/emergency_shutdown() @@ -196,18 +196,15 @@ return if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(!WT.isOn()) - to_chat(user, "\The [W] is off.") - return - if(!damage) to_chat(user, "\The [src] does not require repairs.") return - to_chat(user, "You begin repairing damage to \the [src]...") - if(WT.remove_fuel(round(damage/75)) && do_after(usr, damage/10)) - damage = 0 - to_chat(user, "You repair \the [src].") + if(!WT.use_tool(src, user, delay = round(damage /10), amount = round(damage/75))) + return + + damage = 0 + to_chat(user, "You repair \the [src].") return if(isScrewdriver(W)) diff --git a/code/modules/modular_computers/hardware/_hardware.dm b/code/modules/modular_computers/hardware/_hardware.dm index a7ce7a9e139..f027c99648c 100644 --- a/code/modules/modular_computers/hardware/_hardware.dm +++ b/code/modules/modular_computers/hardware/_hardware.dm @@ -71,14 +71,15 @@ // Good to go. return 1 -/obj/item/computer_hardware/_examine_text(mob/user) +/obj/item/computer_hardware/examine(mob/user, infix) . = ..() + if(damage > damage_failure) - . += "\nIt seems to be severely damaged!" + . += SPAN_DANGER("It seems to be severely damaged!") else if(damage > damage_malfunction) - . += "\nIt seems to be damaged!" + . += SPAN_NOTICE("It seems to be damaged!") else if(damage) - . += "\nIt seems to be slightly damaged." + . += "It seems to be slightly damaged." // Damages the component. Contains necessary checks. Negative damage "heals" the component. /obj/item/computer_hardware/proc/take_damage(amount) diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index 3516ee09550..0eebe46725e 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -133,7 +133,7 @@ //Override will make checks from different location used for prediction if(location_override) - if(locate(/obj/structure/lattice, location_override) || locate(/obj/structure/catwalk, location_override) || locate(/obj/structure/up, location_override)) + if(locate(/obj/structure/lattice, location_override) || locate(/obj/structure/catwalk, location_override)) return FALSE var/turf/below = GetBelow(location_override) @@ -171,11 +171,10 @@ /atom/movable/proc/handle_fall(turf/landing) forceMove(landing) - if(locate(/obj/structure/stairs) in landing) - return - - handle_fall_effect(landing) + return 1 + else + handle_fall_effect(landing) /atom/movable/proc/handle_fall_effect(turf/landing) if(istype(landing, /turf/simulated/open)) @@ -188,7 +187,7 @@ M.take_overall_damage(fall_damage()) /atom/movable/proc/fall_damage() - return FALSE + return 0 /obj/fall_damage() if(w_class == ITEM_SIZE_TINY) @@ -204,14 +203,14 @@ var/old_stat = stat ..() - var/damage = 25 + var/damage = 10 apply_damage(rand(0, damage), BRUTE, BP_HEAD) apply_damage(rand(0, damage), BRUTE, BP_CHEST) apply_damage(rand(0, damage), BRUTE, BP_L_LEG) apply_damage(rand(0, damage), BRUTE, BP_R_LEG) apply_damage(rand(0, damage), BRUTE, BP_L_ARM) apply_damage(rand(0, damage), BRUTE, BP_R_ARM) - weakened = max(weakened, 10) + weakened = max(weakened,2) updatehealth() if (old_stat != CONSCIOUS) diff --git a/code/modules/multiz/structures.dm b/code/modules/multiz/structures.dm index e1666bd13c0..67c5756e1e1 100644 --- a/code/modules/multiz/structures.dm +++ b/code/modules/multiz/structures.dm @@ -172,48 +172,12 @@ /obj/structure/stairs name = "stairs" desc = "Stairs leading to another deck. Not too useful if the gravity goes out." - icon = 'icons/obj/stairs_long.dmi' + icon = 'icons/obj/stairs.dmi' icon_state = "stairs" density = 0 opacity = 0 anchored = 1 layer = RUNE_LAYER - appearance_flags = DEFAULT_APPEARANCE_FLAGS - -/obj/structure/up - name = "stairs" - desc = "Stairs leading to another deck. Not too useful if the gravity goes out." - icon = 'icons/obj/stairs.dmi' - icon_state = "stairs" - anchored = TRUE - -/obj/structure/up/forceMove() - return FALSE - -/obj/structure/up/Bumped(atom/movable/A) - var/turf/below = GetBelow(A) - if(below) - var/turf/target = get_turf(below) - var/turf/source = get_turf(A) - if(!(locate(/obj/structure/stairs) in below)) - show_splash_text(A, "the stairs cut off") - return - - A.forceMove(target) - if(isliving(A)) - var/mob/living/L = A - if(L.pulling) - L.pulling.forceMove(target) - if(ishuman(A)) - playsound(source, SFX_FOOTSTEP_STAIRS, 50) - playsound(target, SFX_FOOTSTEP_STAIRS, 50) - else - show_splash_text(A, "nothing of interest in this direction") - -/obj/structure/up/CheckExit(atom/movable/mover as mob|obj, turf/target as turf) - if(get_dir(loc, target) == turn(dir, 180) && (get_turf(mover) == loc)) - return FALSE - return ..() /obj/structure/stairs/Initialize() for(var/turf/turf in locs) @@ -223,8 +187,6 @@ return INITIALIZE_HINT_QDEL if(!istype(above)) above.ChangeTurf(/turf/simulated/open) - var/obj/structure/up/Up = new /obj/structure/up(get_turf(GetAbove(loc))) - Up.dir = dir . = ..() /obj/structure/stairs/Destroy() @@ -232,7 +194,7 @@ return ..() /obj/structure/stairs/CheckExit(atom/movable/mover as mob|obj, turf/target as turf) - if(get_dir(loc, target) == dir && (get_turf(mover) == loc)) + if(get_dir(loc, target) == dir && upperStep(mover.loc)) return FALSE return ..() @@ -242,10 +204,8 @@ /obj/structure/stairs/Bumped(atom/movable/A) var/turf/above = GetAbove(A) if(above) - var/turf/target = get_turf(above) - var/turf/source = get_turf(A) - if(!(locate(/obj/structure/up) in above)) - show_splash_text(A, "the stairs cut off") + var/turf/target = get_step(above, dir) + var/turf/source = A.loc if(above.CanZPass(source, UP) && target.Enter(A, src)) A.forceMove(target) if(isliving(A)) @@ -256,9 +216,12 @@ playsound(source, SFX_FOOTSTEP_STAIRS, 50) playsound(target, SFX_FOOTSTEP_STAIRS, 50) else - show_splash_text(A, "something blocks the path") + show_splash_text(A, "something blocks the path", "There's something blocking the path.") else - show_splash_text(A, "nothing of interest in this direction") + show_splash_text(A, "nothing of interest in this direction", "There's nothing of interest in this direction.") + +/obj/structure/stairs/proc/upperStep(turf/T) + return (T == loc) // type paths to make mapping easier. /obj/structure/stairs/north @@ -282,9 +245,7 @@ bound_width = 64 /obj/structure/stairs/short - icon = 'icons/obj/stairs.dmi' - icon_state = "stairs" - appearance_flags = DEFAULT_APPEARANCE_FLAGS | TILE_BOUND + icon_state = "stairs_short" /obj/structure/stairs/short/north dir = NORTH @@ -368,8 +329,7 @@ bound_width = 64 /obj/structure/stairs/mining/short - icon = 'icons/obj/stairs.dmi' - icon_state = "stairs_mine" + icon_state = "stairs_short_mine" /obj/structure/stairs/mining/short/north dir = NORTH diff --git a/code/modules/multiz/turf.dm b/code/modules/multiz/turf.dm index be4b2133d15..5ae6179e9a6 100644 --- a/code/modules/multiz/turf.dm +++ b/code/modules/multiz/turf.dm @@ -82,13 +82,14 @@ -/turf/simulated/open/_examine_text(mob/user, infix, suffix) +/turf/simulated/open/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 2) var/depth = 1 for(var/T = GetBelow(src); isopenspace(T); T = GetBelow(T)) depth += 1 - . += "\nIt is about [depth] level\s deep." + . += "It is about [depth] level\s deep." diff --git a/code/modules/music_player/_music_player.dm b/code/modules/music_player/_music_player.dm index aa80096be07..773e1f2c1a4 100644 --- a/code/modules/music_player/_music_player.dm +++ b/code/modules/music_player/_music_player.dm @@ -71,19 +71,20 @@ GLOBAL_LIST_EMPTY(music_players) GLOB.music_players -= src . = ..() -/obj/item/music_player/_examine_text(mob/user) +/obj/item/music_player/examine(mob/user, infix) . = ..() + if(tape) - . += "\n[SPAN_NOTICE("You can see \a [tape] inside it.")]" + . += SPAN_NOTICE("You can see \a [tape] inside it.") switch(panel) if(PANEL_OPENED) - . += "\nThe front panel is unhinged." + . += "The front panel is unhinged." if(PANEL_UNSCREWED) - . += "\nThe front panel is unscrewed." + . += "The front panel is unscrewed." if(broken) - . += "\n[SPAN_WARNING("It's broken.")]" + . += SPAN_WARNING("It's broken.") /obj/item/music_player/on_update_icon() ClearOverlays() diff --git a/code/modules/music_player/_music_tape.dm b/code/modules/music_player/_music_tape.dm index 9ffdcf3d396..154efc6e4c6 100644 --- a/code/modules/music_player/_music_tape.dm +++ b/code/modules/music_player/_music_tape.dm @@ -29,10 +29,11 @@ if(ruined) AddOverlays("ribbonoverlay") -/obj/item/music_tape/_examine_text(mob/user) +/obj/item/music_tape/examine(mob/user, infix) . = ..() + if(track?.title) - . += "\n[SPAN_NOTICE("It's labeled as \"[track.title]\".")]" + . += SPAN_NOTICE("It's labeled as \"[track.title]\".") /obj/item/music_tape/attack_self(mob/user) if(!ruined) diff --git a/code/modules/nano/modules/human_appearance.dm b/code/modules/nano/modules/human_appearance.dm index 4ff9fbf413a..290b9466c05 100644 --- a/code/modules/nano/modules/human_appearance.dm +++ b/code/modules/nano/modules/human_appearance.dm @@ -48,7 +48,7 @@ return owner.change_skin_tone(new_s_tone) if(href_list["skin_color"]) if(can_change_skin_color()) - var/new_skin = input(usr, "Choose your character's skin colour: ", "Skin Color", rgb(owner.r_skin, owner.g_skin, owner.b_skin)) as color|null + var/new_skin = tgui_color_picker(usr, "Choose your character's skin colour: ", "Skin Color", rgb(owner.r_skin, owner.g_skin, owner.b_skin)) if(new_skin && can_still_topic(state)) var/r_skin = hex2num(copytext(new_skin, 2, 4)) var/g_skin = hex2num(copytext(new_skin, 4, 6)) @@ -63,7 +63,7 @@ return 1 if(href_list["hair_color"]) if(can_change(APPEARANCE_HAIR_COLOR)) - var/new_hair = input("Please select hair color.", "Hair Color", rgb(owner.r_hair, owner.g_hair, owner.b_hair)) as color|null + var/new_hair = tgui_color_picker("Please select hair color.", "Hair Color", rgb(owner.r_hair, owner.g_hair, owner.b_hair)) if(new_hair && can_still_topic(state)) var/r_hair = hex2num(copytext(new_hair, 2, 4)) var/g_hair = hex2num(copytext(new_hair, 4, 6)) @@ -73,7 +73,7 @@ return 1 if(href_list["hair_s_color"]) if(can_change(APPEARANCE_HAIR_COLOR)) - var/new_hair = input("Please select secoundary hair color.", "Secondary Hair Color", rgb(owner.r_hair, owner.g_hair, owner.b_hair)) as color|null + var/new_hair = tgui_color_picker("Please select secoundary hair color.", "Secondary Hair Color", rgb(owner.r_hair, owner.g_hair, owner.b_hair)) if(new_hair && can_still_topic(state)) var/r_hair = hex2num(copytext(new_hair, 2, 4)) var/g_hair = hex2num(copytext(new_hair, 4, 6)) @@ -88,7 +88,7 @@ return 1 if(href_list["facial_hair_color"]) if(can_change(APPEARANCE_FACIAL_HAIR_COLOR)) - var/new_facial = input("Please select facial hair color.", "Facial Hair Color", rgb(owner.r_facial, owner.g_facial, owner.b_facial)) as color|null + var/new_facial = tgui_color_picker("Please select facial hair color.", "Facial Hair Color", rgb(owner.r_facial, owner.g_facial, owner.b_facial)) if(new_facial && can_still_topic(state)) var/r_facial = hex2num(copytext(new_facial, 2, 4)) var/g_facial = hex2num(copytext(new_facial, 4, 6)) @@ -98,7 +98,7 @@ return 1 if(href_list["eye_color"]) if(can_change(APPEARANCE_EYE_COLOR)) - var/new_eyes = input("Please select eye color.", "Eye Color", rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes)) as color|null + var/new_eyes = tgui_color_picker("Please select eye color.", "Eye Color", rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes)) if(new_eyes && can_still_topic(state)) var/r_eyes = hex2num(copytext(new_eyes, 2, 4)) var/g_eyes = hex2num(copytext(new_eyes, 4, 6)) diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index 40ca8fb3a4e..f215ebd79d0 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -478,7 +478,7 @@ nanoui is used to open and update nano browser uis var/param = "\ref[src]" - addtimer(CALLBACK(user, nameof(/mob.proc/post_close_winset), window_id, param), 2) + user.set_next_think_ctx("post_close_winset", world.time + 2, window_id, param) /mob/proc/post_close_winset(window_id, param) if(client) diff --git a/code/modules/paperwork/complaint.dm b/code/modules/paperwork/complaint.dm index 78a4510aaa1..41caacc2f9a 100644 --- a/code/modules/paperwork/complaint.dm +++ b/code/modules/paperwork/complaint.dm @@ -6,13 +6,13 @@ var/signed_ckey var/signed_name -/obj/item/paper/complaint_form/_examine_text(mob/user) +/obj/item/paper/complaint_form/examine(mob/user, infix) . = ..() + if (signed) - . += "\n[SPAN_NOTICE("It appears to be signed. It can't be modified.")]" + . += SPAN_NOTICE("It appears to be signed. It can't be modified.") else - . += "\n[SPAN_NOTICE("It appears to be unsigned and ready for modifications.")]" - + . += SPAN_NOTICE("It appears to be unsigned and ready for modifications.") /obj/item/paper/complaint_form/get_signature(obj/item/pen/P, mob/user, signfield) . = ..() @@ -111,15 +111,16 @@ name = "Complaint #[id]" main_form = new(src, id) -/obj/item/complaint_folder/_examine_text(mob/user) +/obj/item/complaint_folder/examine(mob/user, infix) . = ..() + if (main_form.signed) - . += "\n[SPAN_NOTICE("It is signed by [main_form.signed_name]")]" + . += SPAN_NOTICE("It is signed by [main_form.signed_name]") if (length(contents) > 1) var/counter = 0 for (var/obj/item/paper/complaint_form/F in contents) counter++ - . += "\n[SPAN_NOTICE("It has [counter - 1] complaint forms attached")]" + . += SPAN_NOTICE("It has [counter - 1] complaint forms attached") /obj/item/complaint_folder/proc/check_signed() if (signed) diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 6dc7e415385..b3f13f272a8 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -151,9 +151,9 @@ GLOBAL_LIST_EMPTY(adminfaxes) //cache for faxes that have been sent to admins continue if(F.recievefax(copyitem)) - show_splash_text(usr, "nessage transmitted successfully") + show_splash_text(usr, "message transmitted successfully", SPAN("notice", "\The [src] has transmitted the message successfully.")) - show_splash_text(usr, "error transmitting message") + show_splash_text(usr, "error transmitting message", SPAN("warning", "\The [src] cannot transmit the message!")) /obj/machinery/photocopier/faxmachine/proc/recievefax(obj/item/incoming) if(stat & (BROKEN|NOPOWER)) @@ -200,11 +200,11 @@ GLOBAL_LIST_EMPTY(adminfaxes) //cache for faxes that have been sent to admins var/obj/item/complaint_folder/CF = copyitem var/fail_reason = CF.prevalidate() if (fail_reason) - show_splash_text(usr, "error transmitting message") + show_splash_text(usr, "error transmitting message", SPAN("warning", "\The [src] cannot transmit the message!")) return rcvdcopy = complaintcopy(copyitem, 0) else - show_splash_text(usr, "error transmitting message") + show_splash_text(usr, "error transmitting message", SPAN("warning", "\The [src] cannot transmit the message!")) return rcvdcopy.forceMove(null) //hopefully this shouldn't cause trouble @@ -238,7 +238,7 @@ GLOBAL_LIST_EMPTY(adminfaxes) //cache for faxes that have been sent to admins message_admins("Complaint postvalidation failed: [fail_reason]. Check received fax to manually correct it.") sleep(50) - show_splash_text(usr, "message transmitted successfully") + show_splash_text(usr, "message transmitted successfully", SPAN("notice", "\The [src] has transmitted the message successfully.")) /obj/machinery/photocopier/faxmachine/proc/fax_message_admins(mob/sender, faxname, obj/item/sent, reply_type, font_colour="#006100") var/msg = "[faxname]: [get_options_bar(sender, 2,1,1)]" diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 5412f69df98..50af3c4723b 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -122,9 +122,9 @@ else icon_state = "envelope[contents.len > 0]" -/obj/item/folder/envelope/_examine_text(user) +/obj/item/folder/envelope/examine(mob/user, infix) . = ..() - . += "\nThe seal is [sealed ? "intact" : "broken"]." + . += "The seal is [sealed ? "intact" : "broken"]." /obj/item/folder/envelope/proc/sealcheck(user) var/ripperoni = alert("Are you sure you want to break the seal on \the [src]?", "Confirmation","Yes", "No") diff --git a/code/modules/paperwork/misc.dm b/code/modules/paperwork/misc.dm index 6db8f1dbf87..74fe8a29bc5 100644 --- a/code/modules/paperwork/misc.dm +++ b/code/modules/paperwork/misc.dm @@ -82,6 +82,11 @@ readonly = TRUE info = "\[center]\[b]\[large]Work Visa of the Sol Central Government\[/large]\[/b]\[/center]\[br]\[center]\[solcrest]\[br]\[br]\[i]\[small]Issued on behalf of the Secretary-General.\[/small]\[/i]\[/center]\[hr]\[br]This paper hereby permits the carrier to travel unhindered through Sol territories, colonies, and space for the purpose of work and labor." +/obj/item/paper/immovable_wand_note + name = "note" + readonly = TRUE + info = "\[i]We have no idea who's placed this cursed thing here. Moreover, we don't even know HOW. But there's one thing we know for sure: \[b]THIS. IS. NOT. FUNNY.\[/b]\[/i]" + /* Message from CC */ /obj/item/paper/psychoscope name = "paper - 'Psychoscope'" diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 8b0d39d6537..84579766722 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -204,10 +204,11 @@ break return !length(strip_html_properly(info)) && !is_visible_html_tag -/obj/item/paper/_examine_text(mob/user) +/obj/item/paper/examine(mob/user, infix) . = ..() + if(name != "sheet of paper") - . += "\nIt's titled '[name]'." + . += "It's titled '[name]'." . += stamps if(length(stamped)) @@ -222,7 +223,7 @@ if(user && (in_range(user, src) || isghost(user))) show_content(user) else - . += "\n[SPAN_NOTICE("You have to go closer if you want to read it.")]" + . += SPAN_NOTICE("You have to go closer if you want to read it.") /obj/item/paper/proc/show_content(mob/user, forceshow) var/can_read = (istype(user, /mob/living/carbon/human) || isghost(user) || istype(user, /mob/living/silicon)) || forceshow diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index e265b3dea2d..69f4923f72e 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -97,13 +97,13 @@ else to_chat(user, SPAN_WARNING("You must hold \the [P] steady to burn \the [src].")) -/obj/item/paper_bundle/_examine_text(mob/user) +/obj/item/paper_bundle/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1 && user) src.show_content(user) else - . += "\n[SPAN_NOTICE("It is too far away.")]" - return + . += SPAN_NOTICE("It is too far away.") /obj/item/paper_bundle/proc/show_content(mob/user as mob) var/dat = "" diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 488ce16ec2d..e248b96fcfa 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -107,15 +107,16 @@ return -/obj/item/paper_bin/_examine_text(mob/user) +/obj/item/paper_bin/examine(mob/user, infix) . = ..() - if(get_dist(src, user) <= 1) - if(amount) - . += "\nThere " + (amount > 1 ? "are [amount] papers" : "is one paper") + " in the bin." - else - . += "\nThere are no papers in the bin." - return + if(get_dist(src, user) > 1) + return + + if(amount) + . += SPAN_NOTICE("There [amount > 1 ? "are [amount] papers" : "is one paper"] in the bin.") + else + . += SPAN_NOTICE("There are no papers in the bin.") /obj/item/paper_bin/on_update_icon() if(amount < 1) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index e4d0ca93edf..967e1243616 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -64,12 +64,13 @@ var/global/photo_count = 0 scribble = txt ..() -/obj/item/photo/_examine_text(mob/user) +/obj/item/photo/examine(mob/user, infix) + . = ..() + if(in_range(user, src)) show(user) - . += "\n[desc]" else - . += "\nIt is too far away." + . += SPAN_NOTICE("It is too far away.") /obj/item/photo/proc/show(mob/user as mob) send_rsc(user, img, "tmp_photo_[id].png") @@ -139,7 +140,7 @@ var/global/photo_count = 0 icon = 'icons/obj/items.dmi' desc = "A polaroid camera." icon_state = "camera" - item_state = "electropack" + item_state = "camera" w_class = ITEM_SIZE_SMALL obj_flags = OBJ_FLAG_CONDUCTIBLE slot_flags = SLOT_BELT @@ -236,10 +237,9 @@ var/global/photo_count = 0 update_icon() -/obj/item/device/camera/_examine_text(mob/user) +/obj/item/device/camera/examine(mob/user, infix) . = ..() - - . += "\nIt has [pictures_left] photo\s left." + . += "It has [pictures_left] photo\s left." /mob/living/proc/can_capture_turf(turf/T) return (T in view(src)) diff --git a/code/modules/particles/particle_emitter.dm b/code/modules/particles/particle_emitter.dm new file mode 100644 index 00000000000..cf313b5b01f --- /dev/null +++ b/code/modules/particles/particle_emitter.dm @@ -0,0 +1,75 @@ +/** + * /atom/movable/ can hold only one instance of particles. + * Therefore, we can use particle emitter to bypass this limitation and + * create complex effects by combining different emitters +*/ +/atom/movable/particle_emitter + anchored = TRUE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + appearance_flags = PIXEL_SCALE | TILE_BOUND + +/atom/movable/particle_emitter/Initialize(mapload, time, color) + . = ..() + + if(time > 0) + QDEL_IN(src, time) + + src.color = color + +/atom/movable/particle_emitter/proc/enable(on) + if(on) + particles.spawning = initial(particles.spawning) + else + particles.spawning = 0 + +/atom/movable/particle_emitter/heat + particles = new /particles/heat() + render_target = HEAT_EFFECT_TARGET + plane = TEMPERATURE_EFFECT_PLANE + +/atom/movable/particle_emitter/heat/Initialize() + . = ..() + filters += filter(type = "blur", size = 1) + +/atom/movable/particle_emitter/heat/high + particles = new /particles/heat/high() + +/atom/movable/particle_emitter/steam + plane = DUST_PLANE + particles = new /particles/mist() + layer = ABOVE_PROJECTILE_LAYER + render_target = STEAM_EFFECT_TARGET + alpha = 127 + invisibility = INVISIBILITY_LIGHTING + +/atom/movable/particle_emitter/steam/Initialize(mapload, time, color) + . = ..() + filters += filter(type = "blur", size = 2) + filters += filter(type = "wave", x = 0, y = 0, size = rand() * 2.5 + 0.5) + +/atom/movable/particle_emitter/fire_smoke + anchored = TRUE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + appearance_flags = PIXEL_SCALE | TILE_BOUND + plane = DEFAULT_PLANE + layer = FIRE_LAYER + particles = new /particles/fire_smoke() + +/atom/movable/particle_emitter/smoke_steam + anchored = TRUE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + appearance_flags = PIXEL_SCALE | TILE_BOUND + plane = DEFAULT_PLANE + layer = FIRE_LAYER + particles = new /particles/smoke/steam() + +/atom/movable/particle_emitter/fog + anchored = TRUE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + appearance_flags = PIXEL_SCALE | TILE_BOUND + plane = DEFAULT_PLANE + layer = FIRE_LAYER + particles = new /particles/fog() + +/atom/movable/particle_emitter/fog/breath + particles = new /particles/fog/breath() diff --git a/code/modules/particles/particles.dm b/code/modules/particles/particles.dm new file mode 100644 index 00000000000..70ba05d0fe3 --- /dev/null +++ b/code/modules/particles/particles.dm @@ -0,0 +1,91 @@ +/particles/smoke + icon = 'icons/effects/particles/smoke.dmi' + icon_state = list("smoke_1" = 1, "smoke_2" = 1, "smoke_3" = 2) + width = 100 + height = 100 + count = 1000 + spawning = 4 + lifespan = 1.5 SECONDS + fade = 1 SECONDS + velocity = list(0, 0.4, 0) + position = list(6, 0, 0) + drift = generator("sphere", 0, 2, NORMAL_RAND) + friction = 0.2 + gravity = list(0, 0.95) + grow = 0.05 + +/particles/smoke/steam/mild + spawning = 1 + velocity = list(0, 0.3, 0) + friction = 0.25 + +/particles/smoke/steam + icon_state = list("steam_1" = 1, "steam_2" = 1, "steam_3" = 2) + fade = 1.5 SECONDS + +/particles/heat + width = 500 + height = 500 + count = 250 + spawning = 15 + lifespan = 1.85 SECONDS + fade = 1.25 SECONDS + position = generator("box", list(-16, -16), list(16, 0), NORMAL_RAND) + friction = 0.15 + gradient = list(0, COLOR_WHITE, 0.75, COLOR_ORANGE) + color_change = 0.1 + color = 0 + gravity = list(0, 1) + drift = generator("circle", 0.4, NORMAL_RAND) + velocity = generator("circle", 0, 3, NORMAL_RAND) + +/particles/heat/high + count = 600 + spawning = 35 + +/particles/mist + icon = 'icons/effects/particles/smoke.dmi' + icon_state = list("steam_1" = 1, "steam_2" = 1, "steam_3" = 1) + count = 500 + spawning = 7 + lifespan = 5 SECONDS + fade = 1 SECOND + fadein = 1 SECOND + velocity = generator("box", list(-0.5, -0.25, 0), list(0.5, 0.25, 0), NORMAL_RAND) + position = generator("box", list(-14, -14), list(14, 14), UNIFORM_RAND) + friction = 0.2 + grow = 0.0015 + +/particles/fire_smoke + width = 500 + height = 500 + count = 3000 + spawning = 3 + bound1 = list(-1000,0,-1000) + bound2 = list(1000,75,1000) + lifespan = 20 + fade = 30 + fadein = 5 + velocity = list(0, 2) + position = list(0, 8) + gravity = list(0, 1) + icon = 'icons/effects/particles/smoke.dmi' + icon_state = "smoke_3" + position = generator("vector", list(-12,8,0), list(12,8,0)) + grow = list(0.3, 0.3) + friction = 0.2 + drift = generator("vector", list(-0.16, -0.2), list(0.16, 0.2)) + color = "white" + +/particles/fog + icon = 'icons/effects/particles/smoke.dmi' + icon_state = list("chill_1" = 2, "chill_2" = 2, "chill_3" = 1) + +/particles/fog/breath + count = 1 + spawning = 1 + lifespan = 1 SECONDS + fade = 0.5 SECONDS + grow = 0.05 + spin = 2 + color = "#fcffff77" diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index f5a828be687..bb52dd02d82 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -250,29 +250,31 @@ area.apc = src update_icon() -/obj/machinery/power/apc/_examine_text(mob/user) +/obj/machinery/power/apc/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) if(stat & BROKEN) - . += "\nLooks broken." + . += "Looks broken." return + if(opened) if(has_electronics && terminal) - . += "\nThe cover is [opened==2?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"]." + . += "The cover is [opened==2?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"]." else if (!has_electronics && terminal) - . += "\nThere are some wires but no any electronics." + . += "There are some wires but no any electronics." else if (has_electronics && !terminal) - . += "\nElectronics installed but not wired." + . += "Electronics installed but not wired." else /* if (!has_electronics && !terminal) */ - . += "\nThere is no electronics nor connected wires." + . += "There is no electronics nor connected wires." else if (stat & MAINT) - . += "\nThe cover is closed. Something wrong with it: it doesn't work." + . += "The cover is closed. Something wrong with it: it doesn't work." else if (hacker && !hacker.hacked_apcs_hidden) - . += "\nThe cover is locked." + . += "The cover is locked." else - . += "\nThe cover is closed." + . += "The cover is closed." // update the APC icon to show the three base states // also add overlays for indicator lights @@ -559,29 +561,30 @@ return else if(isWelder(W) && opened && has_electronics==0 && !terminal) var/obj/item/weldingtool/WT = W - if (WT.get_fuel() < 3) - to_chat(user, "You need more welding fuel to complete this task.") - return user.visible_message("[user.name] welds [src].", \ "You start welding the APC frame...", \ "You hear welding.") - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - if(do_after(user, 50, src)) - if(!src || !WT.remove_fuel(3, user)) return - if (emagged || (stat & BROKEN) || opened==2) - new /obj/item/stack/material/steel(loc) - user.visible_message(\ - "[src] has been cut apart by [user.name] with the weldingtool.",\ - "You disassembled the broken APC frame.",\ - "You hear welding.") - else - new /obj/item/frame/apc(loc) - user.visible_message(\ - "[src] has been cut from the wall by [user.name] with the weldingtool.",\ - "You cut the APC frame from the wall.",\ - "You hear welding.") - qdel(src) + if(!WT.use_tool(src, user, delay = 5 SECONDS, amount = 5)) return + + if(QDELETED(src) || !user) + return + + if(emagged || (stat & BROKEN) || opened==2) + new /obj/item/stack/material/steel(loc) + user.visible_message(\ + "[src] has been cut apart by [user.name] with the weldingtool.",\ + "You disassembled the broken APC frame.",\ + "You hear welding.") + else + new /obj/item/frame/apc(loc) + user.visible_message(\ + "[src] has been cut from the wall by [user.name] with the weldingtool.",\ + "You cut the APC frame from the wall.",\ + "You hear welding.") + + qdel(src) + return else if (istype(W, /obj/item/frame/apc) && opened && emagged) emagged = 0 if (opened==2) diff --git a/code/modules/power/breaker_box.dm b/code/modules/power/breaker_box.dm index ab9312c0738..27526691137 100644 --- a/code/modules/power/breaker_box.dm +++ b/code/modules/power/breaker_box.dm @@ -32,13 +32,14 @@ set_state(1) . = ..() -/obj/machinery/power/breakerbox/_examine_text(mob/user) +/obj/machinery/power/breakerbox/examine(mob/user, infix) . = ..() - . += "\nLarge machine with heavy duty switching circuits used for advanced grid control" + + . += "Large machine with heavy duty switching circuits used for advanced grid control" if(on) - . += "\nIt seems to be online." + . += "It seems to be online." else - . += "\nIt seems to be offline." + . += SPAN_WARNING("It seems to be offline.") /obj/machinery/power/breakerbox/attack_ai(mob/user) if(update_locked) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 46aaf8d683e..c04f05e4f1e 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -563,17 +563,18 @@ var/list/possible_cable_coil_colours else w_class = ITEM_SIZE_SMALL -/obj/item/stack/cable_coil/_examine_text(mob/user) +/obj/item/stack/cable_coil/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 1) return if(get_amount() == 1) - . += "\nA short piece of power cable." + . += "A short piece of power cable." else if(get_amount() == 2) - . += "\nA piece of power cable." + . += "A piece of power cable." else - . += "\nA coil of power cable. There are [get_amount()] lengths of cable in the coil." + . += "A coil of power cable. There are [get_amount()] lengths of cable in the coil." /obj/item/stack/cable_coil/verb/make_restraint() diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 5eca687bd7a..45c71381cca 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -101,10 +101,10 @@ update_icon() return amount_used -/obj/item/cell/_examine_text(mob/user) +/obj/item/cell/examine(mob/user, infix) . = ..() - . += "\nThe label states it's capacity is [maxcharge] Wh." - . += "\nThe charge meter reads [round(CELL_PERCENT(src), 0.1)]%." + . += "The label states it's capacity is [maxcharge] Wh." + . += "The charge meter reads [round(CELL_PERCENT(src), 0.1)]%." /obj/item/cell/emp_act(severity) //remove this once emp changes on dev are merged in @@ -310,11 +310,13 @@ . = ..() quantum_id = rand(10000, 99999) -/obj/item/cell/quantum/_examine_text(mob/user) +/obj/item/cell/quantum/examine(mob/user, infix) . = ..() - . += "\nIts quantum ID is: #[quantum_id]" + + . += "Its quantum ID is: #[quantum_id]" + if(partner) - . += "\nIt is recursively bound with the bluespace cell #[partner.quantum_id]" + . += "It is recursively bound with the bluespace cell #[partner.quantum_id]" /obj/item/cell/quantum/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/cell/quantum)) diff --git a/code/modules/power/debug_items.dm b/code/modules/power/debug_items.dm index 8be5894f453..6511705dde9 100644 --- a/code/modules/power/debug_items.dm +++ b/code/modules/power/debug_items.dm @@ -5,12 +5,13 @@ density = 1 var/show_extended_information = 1 // Set to 0 to disable extra information on examining (for example, when used on admin events) -/obj/machinery/power/debug_items/_examine_text(mob/user) +/obj/machinery/power/debug_items/examine(mob/user, infix) . = ..() + if(!show_extended_information) return - . += "\n[show_info(user)]" + . += "[show_info(user)]" /obj/machinery/power/debug_items/proc/show_info(mob/user) . = "" diff --git a/code/modules/power/fusion/fuel_assembly/fuel_injector.dm b/code/modules/power/fusion/fuel_assembly/fuel_injector.dm index 1f44b6990ca..7ec19c37f2b 100644 --- a/code/modules/power/fusion/fuel_assembly/fuel_injector.dm +++ b/code/modules/power/fusion/fuel_assembly/fuel_injector.dm @@ -6,6 +6,7 @@ var/list/fuel_injectors = list() icon_state = "injector0" density = 1 anchored = 0 + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION req_access = list(access_engine) idle_power_usage = 10 WATTS active_power_usage = 500 WATTS @@ -20,6 +21,8 @@ var/list/fuel_injectors = list() fuel_injectors += src tag = null + AddElement(/datum/element/simple_rotation) + /obj/machinery/fusion_fuel_injector/Destroy() if(cur_assembly) cur_assembly.forceMove(get_turf(src)) @@ -129,23 +132,3 @@ var/list/fuel_injectors = list() flick("injector-emitting",src) else StopInjecting() - -/obj/machinery/fusion_fuel_injector/verb/rotate_clock() - set category = "Object" - set name = "Rotate Generator (Clockwise)" - set src in view(1) - - if (usr.incapacitated() || usr.restrained() || anchored) - return - - src.dir = turn(src.dir, -90) - -/obj/machinery/fusion_fuel_injector/verb/rotate_anticlock() - set category = "Object" - set name = "Rotate Generator (Counter-clockwise)" - set src in view(1) - - if (usr.incapacitated() || usr.restrained() || anchored) - return - - src.dir = turn(src.dir, 90) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 679c7bdd413..159e7f80c5b 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -4,6 +4,7 @@ icon_state = "teg" density = 1 anchored = 0 + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION use_power = POWER_USE_IDLE idle_power_usage = 100 WATTS // Just enough to do the computer and display things. @@ -34,6 +35,8 @@ spawn(1) reconnect() + AddElement(/datum/element/simple_rotation) + //generators connect in dir and reverse_dir(dir) directions //mnemonic to determine circulator/generator directions: the cirulators orbit clockwise around the generator //so a circulator to the NORTH of the generator connects first to the EAST, then to the WEST @@ -216,23 +219,3 @@ ui.open() // auto update every Master Controller tick ui.set_auto_update(1) - -/obj/machinery/power/generator/verb/rotate_clock() - set category = "Object" - set name = "Rotate Generator (Clockwise)" - set src in view(1) - - if (usr.stat || usr.restrained() || anchored) - return - - src.set_dir(turn(src.dir, 90)) - -/obj/machinery/power/generator/verb/rotate_anticlock() - set category = "Object" - set name = "Rotate Generator (Counterclockwise)" - set src in view(1) - - if (usr.stat || usr.restrained() || anchored) - return - - src.set_dir(turn(src.dir, -90)) diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index bec13278ffb..1078c419715 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -124,10 +124,12 @@ GLOBAL_VAR(station_gravity_generator) connected_areas = null return ..() -/obj/machinery/gravity_generator/main/_examine_text(mob/user) +/obj/machinery/gravity_generator/main/examine(mob/user, infix) . = ..() + if(panel_open) - . += "\nThe maintenance hatch is open." + . += "The maintenance hatch is open." + . += "[show_broken_info()]" /obj/machinery/gravity_generator/main/show_broken_info() @@ -249,8 +251,12 @@ GLOBAL_VAR(station_gravity_generator) playsound(loc, 'sound/items/Welder2.ogg', 50, 1) var/obj/item/weldingtool/WT = I - if(!do_after(user, 15 SECONDS, middle) || !WT.remove_fuel(1, user) || broken_state != GRAV_NEEDS_WELDING) + if(!WT.use_tool(src, user, delay = 15 SECONDS, amount = 5)) return + + if(QDELETED(src) || !user || broken_state != GRAV_NEEDS_WELDING) + return + health += 250 user.visible_message(SPAN_NOTICE("[user] fixed the damaged parts."), SPAN_NOTICE("You fixed the damaged parts.")) @@ -562,7 +568,7 @@ GLOBAL_VAR(station_gravity_generator) QDEL_NULL(main_part) return ..() -/obj/machinery/gravity_generator/part/_examine_text(mob/user) +/obj/machinery/gravity_generator/part/examine(mob/user, infix) . = ..() . += "[main_part.show_broken_info()]" diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index a0ca4b1b6bc..8a6967966d6 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -12,6 +12,9 @@ #define LIGHT_BULB_TEMPERATURE 400 //K - used value for a 60W bulb #define LIGHTING_POWER_FACTOR 5 //5W per luminosity * range +#define LIGHT_ON_DELAY_UPPER 1 SECONDS +#define LIGHT_ON_DELAY_LOWER 0.5 SECONDS + /obj/machinery/light_construct name = "light fixture frame" desc = "A light fixture under construction." @@ -44,15 +47,16 @@ if(2) icon_state = "tube-construct-stage2" if(3) icon_state = "tube-empty" -/obj/machinery/light_construct/_examine_text(mob/user) +/obj/machinery/light_construct/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 2) return switch(src.stage) - if(1) . += "\nIt's an empty frame." - if(2) . += "\nIt's wired." - if(3) . += "\nThe casing is closed." + if(1) . += "It's an empty frame." + if(2) . += "It's wired." + if(3) . += "The casing is closed." /obj/machinery/light_construct/attackby(obj/item/W, mob/user) src.add_fingerprint(user) @@ -160,6 +164,9 @@ var/static/list/light_eas + /// Whether this light fixture is currently turning on + VAR_PRIVATE/turning_on = FALSE + /obj/machinery/light/vox name = "alien light" icon_state = "voxlight" @@ -186,6 +193,9 @@ desc = "Light is almost the same as sunlight." light_type = /obj/item/light/tube/quartz +/obj/machinery/light/nobreak + light_type = /obj/item/light/tube/nobreak + // the smaller bulb light fixture /obj/machinery/light/small icon_state = "bulb1" @@ -353,18 +363,19 @@ update(FALSE) // examine verb -/obj/machinery/light/_examine_text(mob/user) +/obj/machinery/light/examine(mob/user, infix) . = ..() + var/fitting = get_fitting_name() switch(get_status()) if(LIGHT_OK) - . += "\nIt is turned [on ? "on" : "off"]." + . += "It is turned [on ? "on" : "off"]." if(LIGHT_EMPTY) - . += "\nThe [fitting] has been removed." + . += "The [fitting] has been removed." if(LIGHT_BURNED) - . += "\nThe [fitting] is burnt out." + . += "The [fitting] is burnt out." if(LIGHT_BROKEN) - . += "\nThe [fitting] has been smashed." + . += "The [fitting] has been smashed." /obj/machinery/light/proc/get_fitting_name() var/obj/item/light/L = light_type @@ -499,14 +510,35 @@ on = FALSE if(on) + if(turning_on) + return + change_power_consumption((light_outer_range * light_max_bright) * LIGHTING_POWER_FACTOR, POWER_USE_ACTIVE) update_use_power(POWER_USE_ACTIVE) - lightbulb.switch_on() + turning_on = TRUE + set_next_think(world.time + rand(LIGHT_ON_DELAY_LOWER, LIGHT_ON_DELAY_UPPER)) + return else update_use_power(POWER_USE_IDLE) update_icon() +/obj/machinery/light/think() + if(!on || QDELETED(src) || QDELETED(lightbulb)) + turning_on = FALSE + return + + switch(get_status()) + if(LIGHT_BROKEN, LIGHT_BURNED, LIGHT_EMPTY) + turning_on = FALSE + return + + turning_on = FALSE + update_icon() + lightbulb.switch_on() + if(prob(15)) + flicker(rand(1, 3)) + /obj/machinery/light/proc/flicker(amount = rand(10, 20)) set waitfor = FALSE @@ -691,6 +723,7 @@ var/list/lighting_modes = list() var/sound_on + var/sound_on_volume var/random_tone = FALSE var/tone_overlay = TRUE var/list/random_tone_options = list( @@ -718,8 +751,14 @@ LIGHTMODE_ALARM = list(l_max_bright = 1.0, l_inner_range = 1, l_outer_range = 7, l_falloff_curve = 3.5, l_color = "#ff3333"), LIGHTMODE_RADSTORM = list(l_max_bright = 0.85, l_inner_range = 1, l_outer_range = 7, l_falloff_curve = 3.5, l_color = "#8A9929") ) - sound_on = 'sound/machines/lightson.ogg' + random_tone = TRUE + sound_on = SFX_LIGHT_TUBE_ON + sound_on_volume = 50 + +/obj/item/light/tube/nobreak // For mapping's sake + desc = "A replacement light tube. This one seems to wield some extra quality." + broken_chance = 0 /obj/item/light/tube/large w_class = ITEM_SIZE_SMALL @@ -768,6 +807,8 @@ LIGHTMODE_RADSTORM = list(l_max_bright = 0.7, l_inner_range = 0.5, l_outer_range = 4, l_falloff_curve = 4.5, l_color = "#8A9929") ) random_tone = TRUE + sound_on = SFX_LIGHT_BULB_ON + sound_on_volume = 75 /obj/item/light/bulb/he name = "high efficiency light bulb" @@ -843,13 +884,14 @@ L.update(FALSE) return ..() -/obj/item/light/_examine_text(mob/user) +/obj/item/light/examine(mob/user, infix) . = ..() + switch(status) if(LIGHT_BURNED) - . += "\nIt appears to be burnt-out." + . += "It appears to be burnt-out." if(LIGHT_BROKEN) - . += "\nIt's broken." + . += "It's broken." // update the icon state and description of the light /obj/item/light/on_update_icon() @@ -923,6 +965,10 @@ status = LIGHT_BROKEN else if(prob(min(60, switchcount*switchcount*0.01))) status = LIGHT_BURNED + playsound(src, GET_SFX(SFX_LIGHT_BURNOUT), 80, TRUE) else if(sound_on) - playsound(src, sound_on, 75) + playsound(src, GET_SFX(sound_on), sound_on_volume) return status + +#undef LIGHT_ON_DELAY_UPPER +#undef LIGHT_ON_DELAY_LOWER diff --git a/code/modules/power/pacman2.dm b/code/modules/power/pacman2.dm index fbc69c1b6fb..743fe3c1511 100644 --- a/code/modules/power/pacman2.dm +++ b/code/modules/power/pacman2.dm @@ -50,9 +50,9 @@ temp_rating += SP.rating power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2)) - _examine_text(mob/user) - . = ..(user) - to_chat(user, SPAN_NOTICE("\The [src] has [P.air_contents.plasma] units of fuel left, producing [power_gen] per cycle.")) + examine(mob/user) + . = ..() + . += SPAN_NOTICE("\The [src] has [P.air_contents.plasma] units of fuel left, producing [power_gen] per cycle.") handleInactive() heat -= 2 if (heat < 0) diff --git a/code/modules/power/pedal_gen.dm b/code/modules/power/pedal_gen.dm index 76f7e16b82e..49641c90a06 100644 --- a/code/modules/power/pedal_gen.dm +++ b/code/modules/power/pedal_gen.dm @@ -36,12 +36,13 @@ generator.forceMove(loc) generator.connect_to_network() -/obj/structure/bed/chair/pedalgen/_examine_text(mob/user) +/obj/structure/bed/chair/pedalgen/examine(mob/user, infix) . = ..() + if(generator.raw_power > 0) - . += "\nIt has [generator.raw_power] raw power stored, it generates [generator.raw_power > 10 ? "20" : "10" ]kW!" + . += "It has [generator.raw_power] raw power stored, it generates [generator.raw_power > 10 ? "20" : "10" ]kW!" else - . += "\nGenerator stands still. Someone need to pedal that thing." + . += "Generator stands still. Someone need to pedal that thing." /obj/structure/bed/chair/pedalgen/attackby(obj/item/W, mob/user) if(isWrench(W)) @@ -107,17 +108,29 @@ if(!pedaled) pedal(user) -/obj/structure/bed/chair/pedalgen/Move(NewLoc) +/obj/structure/bed/chair/pedalgen/Move(newloc, direct) . = ..() - if(buckled_mob) - if(buckled_mob.buckled == src) - buckled_mob.forceMove(loc) - update_mob(buckled_mob) + if(!.) + return + + if(buckled_mob?.buckled == src) + buckled_mob.forceMove(loc) + update_mob(buckled_mob) /obj/structure/bed/chair/pedalgen/post_buckle_mob(mob/user) update_mob(user, 1) -/obj/structure/bed/chair/pedalgen/rotate() +/obj/structure/bed/chair/pedalgen/rotate(mob/user) + ..() + if(dir == SOUTH) + layer = FLY_LAYER + else + layer = OBJ_LAYER + + if(buckled_mob) + update_mob(buckled_mob) + +/obj/structure/bed/chair/pedalgen/rotate_counter(mob/user) ..() if(dir == SOUTH) layer = FLY_LAYER @@ -125,9 +138,6 @@ layer = OBJ_LAYER if(buckled_mob) - if(buckled_mob.loc != loc) - buckled_mob.buckled = null //Temporary, so Move() succeeds. - buckled_mob.buckled = src //Restoring update_mob(buckled_mob) /obj/structure/bed/chair/pedalgen/on_update_icon() diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 3c339f866e1..8fd8b466bc5 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -54,14 +54,16 @@ to_chat(user, SPAN_WARNING("The generator needs to be secured first.")) return -/obj/machinery/power/port_gen/_examine_text(mob/user) +/obj/machinery/power/port_gen/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 1) return + if(active) - . += "\n[SPAN_NOTICE("\The [src] is on.")]" + . += SPAN_NOTICE("\The [src] is on.") else - . += "\n[SPAN_NOTICE("\The [src] is off.")]" + . += SPAN_NOTICE("\The [src] is off.") /obj/machinery/power/port_gen/emp_act(severity) if(!active) @@ -154,14 +156,17 @@ power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2)) -/obj/machinery/power/port_gen/pacman/_examine_text(mob/user) +/obj/machinery/power/port_gen/pacman/examine(mob/user, infix) . = ..() - . += "\n\The [src] appears to be producing [power_gen*power_output] W." - . += "\nThere [sheets == 1 ? "is" : "are"] [sheets] sheet\s left in the hopper." + + . += "\The [src] appears to be producing [power_gen*power_output] W." + . += "There [sheets == 1 ? "is" : "are"] [sheets] sheet\s left in the hopper." + if(IsBroken()) - . += "\n[SPAN_WARNING("\The [src] seems to have broken down.")]" + . += SPAN_WARNING("\The [src] seems to have broken down.") + if(overheating) - . += "\n[SPAN_DANGER("\The [src] is overheating!")]" + . += SPAN_DANGER("\The [src] is overheating!") /obj/machinery/power/port_gen/pacman/HasFuel() var/needed_sheets = power_output / time_per_sheet @@ -454,9 +459,9 @@ create_reagents(120) ..() -/obj/machinery/power/port_gen/pacman/super/potato/_examine_text(mob/user) +/obj/machinery/power/port_gen/pacman/super/potato/examine(mob/user, infix) . = ..() - . += "\nAuxilary tank shows [reagents.total_volume]u of liquid in it." + . += "Auxilary tank shows [reagents.total_volume]u of liquid in it." /obj/machinery/power/port_gen/pacman/super/potato/UseFuel() if(reagents.has_reagent("vodka")) diff --git a/code/modules/power/power_usage.dm b/code/modules/power/power_usage.dm index 3589a468f9f..4bbaadccf5a 100644 --- a/code/modules/power/power_usage.dm +++ b/code/modules/power/power_usage.dm @@ -73,9 +73,12 @@ This is /obj/machinery level code to properly manage power usage from the area. return ..() -/obj/machinery/Move(NewLoc) +/obj/machinery/Move(newloc, direct) var/atom/OldLoc = loc . = ..() + if(!.) + return + update_power_on_move(OldLoc, loc) /obj/machinery/proc/update_power_on_move(atom/old_loc, atom/new_loc) diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index d56c8935183..8f3aa309f4f 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -129,16 +129,21 @@ var/global/list/rad_collectors = list() return 1 return ..() -/obj/machinery/power/rad_collector/_examine_text(mob/user, distance) +/obj/machinery/power/rad_collector/examine(mob/user, infix) . = ..() - if (distance <= 3 && !(stat & BROKEN)) - . += "\nSensor readings:" - . += "\nPower rate: [fmt_siunit(last_power, "W/s", 3)]" - if(P?.air_contents) - . += "\nTank temperature: [P.air_contents.temperature]K" - else - . += "\nTank temperature: N/A" - . += "\nEntropy drift: [last_temp_dif] K/s" + + if(get_dist(user, src) > 3 || (stat & BROKEN)) + return + + . += "Sensor readings:" + . += "Power rate: [fmt_siunit(last_power, "W/s", 3)]" + + if(P?.air_contents) + . += "Tank temperature: [P.air_contents.temperature]K" + else + . += "Tank temperature: N/A" + + . += "Entropy drift: [last_temp_dif] K/s" /obj/machinery/power/rad_collector/ex_act(severity) switch(severity) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index e7a079ac48c..cb673e2c8a6 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -10,6 +10,7 @@ icon_state = "emitter" anchored = 0 density = 1 + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION req_access = list(access_engine_equip) rad_resist = list( RADIATION_ALPHA_PARTICLE = 0, @@ -40,20 +41,6 @@ anchored = 1 state = 2 -/obj/machinery/power/emitter/verb/rotate() - set name = "Rotate" - set category = "Object" - set src in oview(1) - - if(usr.incapacitated()) - return - - if(anchored) - to_chat(usr, "It is fastened to the floor!") - return 0 - set_dir(turn(dir, 90)) - return 1 - /obj/machinery/power/emitter/Initialize() . = ..() if(state == 2 && anchored) @@ -61,6 +48,8 @@ if(_wifi_id) wifi_receiver = new(_wifi_id, src) + AddElement(/datum/element/simple_rotation) + /obj/machinery/power/emitter/Destroy() log_and_message_admins("deleted \the [src]") investigate_log("deleted at ([x],[y],[z])","singulo") @@ -193,31 +182,27 @@ if(0) to_chat(user, "\The [src] needs to be wrenched to the floor.") if(1) - if(WT.remove_fuel(0,user)) - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) - user.visible_message("[user.name] starts to weld [src] to the floor.", \ + user.visible_message("[user.name] starts to weld [src] to the floor.", \ "You start to weld [src] to the floor.", \ "You hear welding") - if(do_after(user,20,src)) - if(!src || !WT.isOn()) return - state = 2 - to_chat(user, "You weld [src] to the floor.") - connect_to_network() - else - to_chat(user, "You need more welding fuel to complete this task.") + if(WT.use_tool(src, user, delay = 2 SECONDS, amount = 1)) + if(QDELETED(src) || !user) + return + + state = 2 + to_chat(user, "You weld [src] to the floor.") + connect_to_network() if(2) - if(WT.remove_fuel(0,user)) - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) - user.visible_message("[user.name] starts to cut [src] free from the floor.", \ + user.visible_message("[user.name] starts to cut [src] free from the floor.", \ "You start to cut [src] free from the floor.", \ "You hear welding") - if(do_after(user,20,src)) - if(!src || !WT.isOn()) return - state = 1 - to_chat(user, "You cut [src] free from the floor.") - disconnect_from_network() - else - to_chat(user, "You need more welding fuel to complete this task.") + if(WT.use_tool(src, user, delay = 2 SECONDS, amount = 1)) + if(QDELETED(src) || !user) + return + + state = 1 + to_chat(user, "You cut [src] free from the floor.") + disconnect_from_network() return if(istype(W, /obj/item/card/id) || istype(W, /obj/item/device/pda)) diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 468db24da4b..b10922eae47 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -126,29 +126,31 @@ field_generator power level display to_chat(user, "The [src.name] needs to be wrenched to the floor.") return if(1) - if (WT.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) - user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \ - "You start to weld the [src] to the floor.", \ - "You hear welding") - if (do_after(user,20,src)) - if(!src || !WT.isOn()) return - state = 2 - to_chat(user, "You weld the field generator to the floor.") - else + user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \ + "You start to weld the [src] to the floor.", \ + "You hear welding") + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 1)) return + + if(QDELETED(src) || !user) + return + + state = 2 + to_chat(user, "You weld the field generator to the floor.") + return if(2) - if (WT.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) - user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \ - "You start to cut the [src] free from the floor.", \ - "You hear welding") - if (do_after(user,20,src)) - if(!src || !WT.isOn()) return - state = 1 - to_chat(user, "You cut the [src] free from the floor.") - else + user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \ + "You start to cut the [src] free from the floor.", \ + "You hear welding") + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 1)) return + + if(QDELETED(src) || !user) + return + + state = 1 + to_chat(user, "You cut the [src] free from the floor.") + return else ..() return diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm index da176a44750..f1ed3a88b04 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm @@ -65,6 +65,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin icon_state = "none" anchored = 0 density = 1 + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION var/obj/machinery/particle_accelerator/control_box/master = null var/construction_state = 0 var/reference = null @@ -72,6 +73,11 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin var/strength = null var/desc_holder = null +/obj/structure/particle_accelerator/Initialize() + . = ..() + + AddElement(/datum/element/simple_rotation) + /obj/structure/particle_accelerator/Destroy() construction_state = 0 if(master) @@ -88,30 +94,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin ..() return - -/obj/structure/particle_accelerator/verb/rotate() - set name = "Rotate Clockwise" - set category = "Object" - set src in oview(1) - - if (src.anchored || usr:stat) - to_chat(usr, "It is fastened to the floor!") - return 0 - src.set_dir(turn(src.dir, 270)) - return 1 - -/obj/structure/particle_accelerator/verb/rotateccw() - set name = "Rotate Counter Clockwise" - set category = "Object" - set src in oview(1) - - if (src.anchored || usr:stat) - to_chat(usr, "It is fastened to the floor!") - return 0 - src.set_dir(turn(src.dir, 90)) - return 1 - -/obj/structure/particle_accelerator/_examine_text(mob/user) +/obj/structure/particle_accelerator/examine(mob/user, infix) switch(src.construction_state) if(0) src.desc = text("A [name], looks like it's not attached to the flooring") @@ -124,8 +107,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin if(powered) src.desc = src.desc_holder . = ..() - return - /obj/structure/particle_accelerator/attackby(obj/item/W, mob/user) if(istool(W)) @@ -255,6 +236,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin icon_state = "none" anchored = 0 density = 1 + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION use_power = POWER_USE_OFF idle_power_usage = 0 WATTS active_power_usage = 0 WATTS @@ -265,33 +247,15 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin var/strength = 0 var/desc_holder = null +/obj/machinery/particle_accelerator/Initialize() + . = ..() -/obj/machinery/particle_accelerator/verb/rotate() - set name = "Rotate Clockwise" - set category = "Object" - set src in oview(1) - - if (src.anchored || usr:stat) - to_chat(usr, "It is fastened to the floor!") - return 0 - src.set_dir(turn(src.dir, 270)) - return 1 - -/obj/machinery/particle_accelerator/verb/rotateccw() - set name = "Rotate Counter-Clockwise" - set category = "Object" - set src in oview(1) - - if (src.anchored || usr:stat) - to_chat(usr, "It is fastened to the floor!") - return 0 - src.set_dir(turn(src.dir, 90)) - return 1 + AddElement(/datum/element/simple_rotation) /obj/machinery/particle_accelerator/on_update_icon() return -/obj/machinery/particle_accelerator/_examine_text(mob/user) +/obj/machinery/particle_accelerator/examine(mob/user, infix) switch(src.construction_state) if(0) src.desc = text("A [name], looks like it's not attached to the flooring") @@ -304,7 +268,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin if(powered) src.desc = src.desc_holder . = ..() - return /obj/machinery/particle_accelerator/attackby(obj/item/W, mob/user) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 11797bea5fc..63c9f5d9f06 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -128,7 +128,7 @@ set_light(0) return - var/clevel = chargedisplay() + var/clevel = min(chargedisplay(), 5) if(clevel) AddOverlays(status_overlays_charge[clevel]) AddOverlays(overlight_overlays_charge[clevel]) @@ -335,16 +335,20 @@ if(isWelder(W)) var/obj/item/weldingtool/WT = W - if(!WT.isOn()) - to_chat(user, "Turn on \the [WT] first!") - return 0 if(!damage) to_chat(user, "\The [src] is already fully repaired.") - return 0 - if(WT.remove_fuel(0,user) && do_after(user, damage, src)) - to_chat(user, "You repair all structural damage to \the [src]") - damage = 0 - return 0 + return + + if(!WT.use_tool(src, user, delay = damage, amount = 5)) + return + + if(QDELETED(src) || !user) + return + + to_chat(user, "You repair all structural damage to \the [src]") + damage = 0 + return + else if(isWirecutter(W) && !building_terminal) building_terminal = 1 var/obj/machinery/power/terminal/term @@ -525,21 +529,24 @@ if(3) take_damage(rand(50, 100)) -/obj/machinery/power/smes/_examine_text(mob/user) +/obj/machinery/power/smes/examine(mob/user, infix) . = ..() - . += "\nThe service hatch is [panel_open ? "open" : "closed"]." + + . += "The service hatch is [panel_open ? "open" : "closed"]." + if(!damage) return + var/damage_percentage = round((damage / maxdamage) * 100) switch(damage_percentage) if(75 to INFINITY) - . += "\nIt's casing is severely damaged, and sparking circuitry may be seen through the holes!" + . += SPAN_DANGER("It's casing is severely damaged, and sparking circuitry may be seen through the holes!") if(50 to 74) - . += "\nIt's casing is considerably damaged, and some of the internal circuits appear to be exposed!" + . += SPAN_NOTICE("It's casing is considerably damaged, and some of the internal circuits appear to be exposed!") if(25 to 49) - . += "\nIt's casing is quite seriously damaged." + . += SPAN_NOTICE("It's casing is quite seriously damaged.") if(0 to 24) - . += "\nIt's casing has some minor damage." + . += "It's casing has some minor damage." #define OVERLIGHT_IMAGE(a, b) a=image(icon, b); a.alpha=128; a.plane = EFFECTS_ABOVE_LIGHTING_PLANE; a.layer = ABOVE_LIGHTING_LAYER; /obj/machinery/power/smes/proc/generate_overlays() @@ -587,3 +594,26 @@ OVERLIGHT_IMAGE(overlight_overlays_outputting[2], "overlight_smes-op1") OVERLIGHT_IMAGE(overlight_overlays_outputting[3], "overlight_smes-op2") #undef OVERLIGHT_IMAGE + +/obj/machinery/power/smes/magical + name = "quantum power unit" + desc = "An archotech power relay, tuned to recieve energy from some distand source." + should_be_mapped = TRUE + +/obj/machinery/power/smes/magical/Initialize() + . = ..() + charge = capacity + input_attempt = TRUE + output_attempt = TRUE + input_level = input_level_max + output_level = output_level_max + +// Magic +/obj/machinery/power/smes/magical/add_charge(amount) + charge = capacity + +/obj/machinery/power/smes/magical/remove_charge(amount) + charge = capacity + +/obj/machinery/power/smes/magical/emp_act(severity) + return FALSE diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index a8ae51e01d5..f6e5cfaa15b 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -225,7 +225,7 @@ var/list/solars_list = list() /obj/item/solar_assembly/attackby(obj/item/W, mob/user) if(!tracker) - if(istype(W, /obj/item/tracker_electronics) && user.drop(W)) + if(istype(W, /obj/item/tracker_electronics) && user.drop(W, src)) tracker = 1 user.visible_message("[user] inserts the electronics into the solar assembly.") return 1 @@ -533,7 +533,11 @@ var/list/solars_list = list() /obj/machinery/power/solar_control/autostart/Initialize() . = ..() - addtimer(CALLBACK(src, nameof(.proc/autoconnect)), 0) + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/power/solar_control/autostart/LateInitialize() + . = ..() + autoconnect() /obj/machinery/power/solar_control/autostart/proc/autoconnect() search_for_connected() diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index b2e985b4583..3edc14e5633 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -86,12 +86,14 @@ if(spent_icon && is_spent) icon_state = spent_icon -/obj/item/ammo_casing/_examine_text(mob/user) +/obj/item/ammo_casing/examine(mob/user, infix) . = ..() + if(caliber) - . += "\nIts caliber is [caliber]." + . += "Its caliber is [caliber]." + if(is_spent) - . += "\nThis one is spent." + . += "This one is spent." //Gun loading types #define SINGLE_CASING 1 //The gun only accepts ammo_casings. ammo_magazines should never have this as their mag_type. @@ -203,10 +205,11 @@ break icon_state = (new_state)? new_state : initial(icon_state) -/obj/item/ammo_magazine/_examine_text(mob/user) +/obj/item/ammo_magazine/examine(mob/user, infix) . = ..() + if(display_default_ammo_left) - . += "\nThere [(stored_ammo.len == 1)? "is" : "are"] [stored_ammo.len] round\s left!" + . += "There [(stored_ammo.len == 1)? "is" : "are"] [stored_ammo.len] round\s left!" //magazine icon state caching /var/global/list/magazine_icondata_keys = list() diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index 60d83e93690..c21b290ec69 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -325,7 +325,7 @@ dat += "It has [ammo_left] [mode["mode_name"]] charge[ammo_left != 1 ? "s" : ""] left.\n" return SPAN("info", dat) -/obj/item/ammo_magazine/lawgiver/_examine_text(mob/user) +/obj/item/ammo_magazine/lawgiver/examine(mob/user, infix) . = ..() . += generate_description() diff --git a/code/modules/projectiles/ammunition/magnetic.dm b/code/modules/projectiles/ammunition/magnetic.dm index b367b987c26..1872f425719 100644 --- a/code/modules/projectiles/ammunition/magnetic.dm +++ b/code/modules/projectiles/ammunition/magnetic.dm @@ -8,6 +8,6 @@ origin_tech = list(TECH_COMBAT = 1) var/remaining = 9 -/obj/item/magnetic_ammo/_examine_text(mob/user) +/obj/item/magnetic_ammo/ex_act(severity) . = ..() - . += "\nThere [(remaining == 1)? "is" : "are"] [remaining] flechette\s left!" + . += "There [(remaining == 1)? "is" : "are"] [remaining] flechette\s left!" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index c2d51e89b00..8967dbb59d1 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -91,7 +91,7 @@ var/autofire_enabled = FALSE var/atom/autofiring_at var/mob/autofiring_by - var/autofiring_timer + var/already_autofiring = FALSE drop_sound = SFX_DROP_GUN pickup_sound = SFX_PICKUP_GUN @@ -107,6 +107,8 @@ if(config.misc.toogle_gun_safety) verbs |= /obj/item/gun/proc/toggle_safety_verb + add_think_ctx("autofire_context", CALLBACK(src, nameof(.proc/handle_autofire)), 0) + /obj/item/gun/Destroy() // autofire timer is automatically cleaned up autofiring_at = null @@ -127,17 +129,17 @@ if(.) autofiring_at = fire_at autofiring_by = fire_by - if(!autofiring_timer) - autofiring_timer = addtimer(CALLBACK(src, nameof(.proc/handle_autofire)), burst_delay, (TIMER_STOPPABLE | TIMER_LOOP | TIMER_UNIQUE | TIMER_OVERRIDE)) + if(!already_autofiring) + already_autofiring = TRUE + set_next_think_ctx("autofire_context", world.time + burst_delay) else clear_autofire() /obj/item/gun/proc/clear_autofire() autofiring_at = null autofiring_by = null - if(autofiring_timer) - deltimer(autofiring_timer) - autofiring_timer = null + already_autofiring = FALSE + set_next_think_ctx("autofire_context", 0) /obj/item/gun/proc/handle_autofire() set waitfor = FALSE @@ -153,6 +155,7 @@ else if(can_autofire()) autofiring_by.set_dir(get_dir(src, autofiring_at)) Fire(autofiring_at, autofiring_by, null, (get_dist(autofiring_at, autofiring_by) <= 1), FALSE, FALSE, target_zone = autofiring_by.zone_sel?.selecting) + set_next_think_ctx("autofire_context", world.time + burst_delay) /obj/item/gun/update_twohanding() if(one_hand_penalty) @@ -166,9 +169,11 @@ if(M.can_wield_item(src) && is_held_twohanded(M)) item_state_slots[slot_l_hand_str] = wielded_item_state item_state_slots[slot_r_hand_str] = wielded_item_state + improper_held_icon = TRUE else item_state_slots[slot_l_hand_str] = initial(item_state) item_state_slots[slot_r_hand_str] = initial(item_state) + improper_held_icon = FALSE update_held_icon() /obj/item/gun/equipped(mob/living/user, slot) @@ -621,13 +626,15 @@ accuracy = initial(accuracy) screen_shake = initial(screen_shake) -/obj/item/gun/_examine_text(mob/user) +/obj/item/gun/examine(mob/user, infix) . = ..() + if(firemodes.len > 1) var/datum/firemode/current_mode = firemodes[sel_mode] - . += "\nThe fire selector is set to [current_mode.name]." + . += "The fire selector is set to [current_mode.name]." + if(config.misc.toogle_gun_safety && has_safety) - . += "\nThe safety is [safety() ? "on" : "off"]" + . += "The safety is [safety() ? "on" : "off"]" // (re)Setting firemodes from the given list /obj/item/gun/proc/set_firemodes(list/_firemodes = null) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index e65ab7eaec4..acffac06514 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -101,9 +101,9 @@ GLOBAL_LIST_INIT(registered_weapons, list()) return suit.cell return null -/obj/item/gun/energy/_examine_text(mob/user) +/obj/item/gun/energy/examine(mob/user, infix) . = ..() - . += "\nHas [power_supply ? round(power_supply.charge / charge_cost) : "0"] shot\s remaining." + . += "Has [power_supply ? round(power_supply.charge / charge_cost) : "0"] shot\s remaining." /obj/item/gun/energy/on_update_icon() if(charge_meter) @@ -210,11 +210,11 @@ GLOBAL_LIST_INIT(registered_weapons, list()) return new_mode -/obj/item/gun/energy/secure/_examine_text(mob/user) +/obj/item/gun/energy/secure/examine(mob/user, infix) . = ..() if(registered_owner) - . += "\nA small screen on the side of the weapon indicates that it is registered to [registered_owner]." + . += "A small screen on the side of the weapon indicates that it is registered to [registered_owner]." /obj/item/gun/energy/secure/proc/get_next_authorized_mode() . = sel_mode diff --git a/code/modules/projectiles/guns/energy/accelerator.dm b/code/modules/projectiles/guns/energy/accelerator.dm index 94729b11ffc..0afe926f82d 100644 --- a/code/modules/projectiles/guns/energy/accelerator.dm +++ b/code/modules/projectiles/guns/energy/accelerator.dm @@ -3,6 +3,7 @@ desc = "A NanoTrasen UPA \"Shepherd\". It synthesizes unstable particles and accelerates them, effectively shooting \"temporary\" bullets without using any ammunition besides electric power." icon_state = "phazer" item_state = "phazer" + improper_held_icon = TRUE wielded_item_state = "phazer-wielded" icon_rounder = 20 screen_shake = 1 @@ -47,6 +48,7 @@ desc = "An experimental NanoTrasen UPA \"Wingman\", based on the famous VP78. While being almost just as powerful as its larger counterpart, it is as small as a regular pistol." icon_state = "phazer_pistol" item_state = "vp78" + improper_held_icon = FALSE w_class = ITEM_SIZE_NORMAL slot_flags = SLOT_BELT|SLOT_HOLSTER one_hand_penalty = 0 diff --git a/code/modules/projectiles/guns/energy/energy.dm b/code/modules/projectiles/guns/energy/energy.dm index 6a008117345..59115bdf512 100644 --- a/code/modules/projectiles/guns/energy/energy.dm +++ b/code/modules/projectiles/guns/energy/energy.dm @@ -144,13 +144,14 @@ else if(fail_counter > 15) to_chat(loc, SPAN("warning", "\The [src] feels pleasantly warm.")) -/obj/item/gun/energy/gun/nuclear/_examine_text(mob/user) +/obj/item/gun/energy/gun/nuclear/examine(mob/user, infix) . = ..() + if(. && user.Adjacent(src)) if(fail_counter > 30) - . += "\n[SPAN("danger", "It feels burning hot!")]" + . += SPAN("danger", "It feels burning hot!") else if(fail_counter > 15) - . += "\n[SPAN("warning", "It feels pleasantly warm.")]" + . += SPAN("warning", "It feels pleasantly warm.") /obj/item/gun/energy/gun/nuclear/proc/get_charge_overlay() var/ratio = CELL_PERCENT(power_supply) @@ -228,6 +229,7 @@ icon_state = "eriflestun" item_state = "erifle" modifystate = "eriflestun" + improper_held_icon = TRUE slot_flags = SLOT_BELT|SLOT_BACK w_class = ITEM_SIZE_LARGE force = 12.5 @@ -264,9 +266,11 @@ if(M.can_wield_item(src) && is_held_twohanded(M)) item_state_slots[slot_l_hand_str] = "[modifystate][ratio]-wielded" item_state_slots[slot_r_hand_str] = "[modifystate][ratio]-wielded" + improper_held_icon = TRUE else item_state_slots[slot_l_hand_str] = "[modifystate][ratio]" item_state_slots[slot_r_hand_str] = "[modifystate][ratio]" + improper_held_icon = FALSE update_held_icon() /obj/item/gun/energy/rifle/cheap diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 19feabc1806..01e482dc5ec 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -3,6 +3,7 @@ desc = "A NanoTrasen G40E rifle, designed to kill with concentrated energy blasts." icon_state = "laser" item_state = "laserrifle" + improper_held_icon = TRUE slot_flags = SLOT_BACK w_class = ITEM_SIZE_HUGE force = 12.5 @@ -54,6 +55,7 @@ desc = "A NanoTrasen LP \"Arclight\", a combat laser pistol. Not as powerful as a laser rifle, it is much smaller and capable of shooting much more rapidly." icon_state = "laser_pistol" item_state = "laser" + improper_held_icon = FALSE w_class = ITEM_SIZE_NORMAL slot_flags = SLOT_BELT|SLOT_HOLSTER one_hand_penalty = 0 @@ -141,6 +143,7 @@ desc = "With the laser cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!" icon_state = "lasercannon" item_state = null + improper_held_icon = TRUE origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3) slot_flags = SLOT_BACK one_hand_penalty = 6 //large and heavy @@ -175,6 +178,7 @@ desc = "A high-power laser gun capable of emitting concentrated x-ray blasts, that are able to penetrate laser-resistant armor much more readily than standard photonic beams." icon_state = "xray" item_state = "xray" + improper_held_icon = TRUE slot_flags = SLOT_BACK origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2) projectile_type = /obj/item/projectile/beam/xray/midlaser @@ -193,6 +197,7 @@ name = "x-ray laser gun" icon_state = "oldxray" item_state = "oldxray" + improper_held_icon = FALSE slot_flags = SLOT_BELT|SLOT_HOLSTER origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2) projectile_type = /obj/item/projectile/beam/xray @@ -210,6 +215,7 @@ desc = "The HI DMR 9E is an older design of Hephaestus Industries. A designated marksman rifle capable of shooting powerful ionized beams, this is a weapon to kill from a distance." icon_state = "sniper" item_state = "laser" + improper_held_icon = TRUE origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 5, TECH_POWER = 4) projectile_type = /obj/item/projectile/beam/sniper one_hand_penalty = 5 // The weapon itself is heavy, and the long barrel makes it hard to hold steady with just one hand. diff --git a/code/modules/projectiles/guns/energy/mining.dm b/code/modules/projectiles/guns/energy/mining.dm index 784ec5744f3..9d7ff93e637 100644 --- a/code/modules/projectiles/guns/energy/mining.dm +++ b/code/modules/projectiles/guns/energy/mining.dm @@ -36,13 +36,14 @@ ) power_supply.charge = power_supply.maxcharge -/obj/item/gun/energy/kinetic_accelerator/_examine_text(mob/user) +/obj/item/gun/energy/kinetic_accelerator/examine(mob/user, infix) . = ..() + if(max_mod_capacity) - . += "\n[get_remaining_mod_capacity()]% mod capacity remaining." + . += "[get_remaining_mod_capacity()]% mod capacity remaining." for(var/A in get_modkits()) var/obj/item/borg/upgrade/modkit/M = A - . += "\nThere is a [M.name] mod installed, using [M.cost]% capacity." + . += "There is a [M.name] mod installed, using [M.cost]% capacity." /obj/item/gun/energy/kinetic_accelerator/attackby(obj/item/A, mob/user) if(isCrowbar(A)) @@ -134,9 +135,9 @@ var/cost = 30 var/modifier = 1 //For use in any mod kit that has numerical modifiers -/obj/item/borg/upgrade/modkit/_examine_text(mob/user) +/obj/item/borg/upgrade/modkit/examine(mob/user, infix) . = ..() - . += "\nOccupies [cost]% of mod capacity." + . += SPAN_NOTICE("Occupies [cost]% of mod capacity.") /obj/item/borg/upgrade/modkit/attackby(obj/item/A, mob/user) if(istype(A, /obj/item/gun/energy/kinetic_accelerator) && !issilicon(user)) diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index d74f67c5e0e..f83fbab5bd7 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -3,6 +3,7 @@ desc = "A weapon that uses advanced pulse-based beam generation technology to emit powerful laser blasts. Because of its complexity and cost, it is rarely seen in use except by specialists." icon_state = "pulse" item_state = "pulse" + improper_held_icon = TRUE slot_flags = SLOT_BACK force = 15.0 mod_weight = 1.25 @@ -36,6 +37,7 @@ name = "pulse pistol" desc = "A weapon that uses advanced pulse-based beam generation technology to emit powerful laser blasts. Even smaller than the carbine." icon_state = "pulse_pistol" + improper_held_icon = FALSE slot_flags = SLOT_BELT|SLOT_HOLSTER force = 8.5 projectile_type = /obj/item/projectile/beam/pulse diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index b084db2227e..622ce10e23f 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -3,6 +3,7 @@ desc = "The NT Mk60 EW Halicon is a man portable anti-armor weapon designed to disable mechanical threats, produced by NT. Not the best of its type." icon_state = "ionrifle" item_state = "ionrifle" + improper_held_icon = TRUE origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 4) w_class = ITEM_SIZE_HUGE force = 12.5 @@ -27,6 +28,7 @@ desc = "The NT Mk72 EW Preston is a personal defense weapon designed to disable mechanical threats." icon_state = "ionpistolonyx" item_state = "ionpistolonyx" + improper_held_icon = FALSE origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 4) w_class = ITEM_SIZE_NORMAL force = 8.5 @@ -231,9 +233,9 @@ . = ..() switch_firemodes() -/obj/item/gun/energy/plasmacutter/_examine_text(mob/user) +/obj/item/gun/energy/plasmacutter/examine(mob/user, infix) . = ..() - to_chat(user, "It has a recharge port with a capital letter P.") + . += "It has a recharge port with a capital letter P." /obj/item/gun/energy/plasmacutter/attackby(obj/item/stack/material/plasma/W, mob/user) if(user.stat || user.restrained() || user.lying) diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 3c8b6968aba..a2a6894449e 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -174,10 +174,11 @@ subtype = decls_repository.get_decl(subtype) update_subtype() -/obj/item/gun/energy/security/_examine_text(mob/user) +/obj/item/gun/energy/security/examine(mob/user, infix) . = ..() + if(owner) - . += "\nIt is assigned to [owner]." + . += "It is assigned to [owner]." /obj/item/gun/energy/security/proc/update_subtype() var/decl/taser_types/tt = subtype diff --git a/code/modules/projectiles/guns/energy/temperature.dm b/code/modules/projectiles/guns/energy/temperature.dm index 6a80756d95f..e5e33c6418d 100644 --- a/code/modules/projectiles/guns/energy/temperature.dm +++ b/code/modules/projectiles/guns/energy/temperature.dm @@ -18,9 +18,9 @@ combustion = 0 -/obj/item/gun/energy/temperature/_examine_text(mob/user) +/obj/item/gun/energy/temperature/examine(mob/user, infix) . = ..() - . += "\nThe temperature sensor shows: [round(CONV_KELVIN_CELSIUS(temperature))]°C" + . += "The temperature sensor shows: [round(CONV_KELVIN_CELSIUS(temperature))]°C" /obj/item/gun/energy/temperature/Initialize() . = ..() diff --git a/code/modules/projectiles/guns/flamer.dm b/code/modules/projectiles/guns/flamer.dm index 3de66b47130..adeaa353e4e 100644 --- a/code/modules/projectiles/guns/flamer.dm +++ b/code/modules/projectiles/guns/flamer.dm @@ -6,6 +6,7 @@ icon = 'icons/obj/flamer.dmi' icon_state = "flamer" item_state = "flamer" + improper_held_icon = TRUE wielded_item_state = "flamer-wielded" slot_flags = SLOT_BACK w_class = ITEM_SIZE_HUGE @@ -38,30 +39,30 @@ QDEL_NULL_LIST(attached_electronics) . = ..() -/obj/item/gun/flamer/_examine_text(mob/user) +/obj/item/gun/flamer/examine(mob/user, infix) . = ..() if(igniter) - . += "\nIt's turned [lit? "on" : "off"]." + . += "It's turned [lit? "on" : "off"]." else - . += "\n[SPAN_WARNING("Igniter not installed in [src]!")]" + . += SPAN_WARNING("Igniter not installed in [src]!") if(pressure_tank) - . += "\nThe pressure tank wrenched into the [src]." + . += "The pressure tank wrenched into the [src]." if(gauge) if(fuel_tank) - . += "\nThe fuel tank contains [round(get_fuel())]/[fuel_tank.max_fuel] units of fuel." + . += "The fuel tank contains [round(get_fuel())]/[fuel_tank.max_fuel] units of fuel." else - . += "\n[SPAN_WARNING("There's no fuel tank in [src]!")]" + . += SPAN_WARNING("There's no fuel tank in [src]!") if(pressure_tank) - . += "\nThe pressure gauge shows the current tank is [pressure_tank.air_contents.return_pressure()]." + . += "The pressure gauge shows the current tank is [pressure_tank.air_contents.return_pressure()]." else - . += "\n[SPAN_WARNING("There's no pressure tank in [src]!")]" + . += SPAN_WARNING("There's no pressure tank in [src]!") else - . += "\n[SPAN_WARNING("Gauge not installed, you have no idea how much fuel left in [src]!")]" + . += SPAN_WARNING("Gauge not installed, you have no idea how much fuel left in [src]!") /obj/item/gun/flamer/on_update_icon() ClearOverlays() diff --git a/code/modules/projectiles/guns/launcher/alien.dm b/code/modules/projectiles/guns/launcher/alien.dm index 2d8013bc922..ded84208c63 100644 --- a/code/modules/projectiles/guns/launcher/alien.dm +++ b/code/modules/projectiles/guns/launcher/alien.dm @@ -19,9 +19,9 @@ set_next_think(world.time + 1 SECOND) -/obj/item/gun/launcher/alien/_examine_text(mob/user) +/obj/item/gun/launcher/alien/examine(mob/user, infix) . = ..() - . += "\nIt has [ammo] [ammo_name]\s remaining." + . += "It has [ammo] [ammo_name]\s remaining." /obj/item/gun/launcher/alien/consume_next_projectile() if(ammo < 1) return null diff --git a/code/modules/projectiles/guns/launcher/crossbow.dm b/code/modules/projectiles/guns/launcher/crossbow.dm index 44d2fba10d0..cfb38c67c76 100644 --- a/code/modules/projectiles/guns/launcher/crossbow.dm +++ b/code/modules/projectiles/guns/launcher/crossbow.dm @@ -247,14 +247,15 @@ /obj/item/crossbowframe/on_update_icon() icon_state = "crossbowframe[buildstate]" -/obj/item/crossbowframe/_examine_text(mob/user) +/obj/item/crossbowframe/examine(mob/user, infix) . = ..() + switch(buildstate) - if(1) . += "\nIt has a loose rod frame in place." - if(2) . += "\nIt has a steel backbone welded in place." - if(3) . += "\nIt has a steel backbone and a cell mount installed." - if(4) . += "\nIt has a steel backbone, plastic lath and a cell mount installed." - if(5) . += "\nIt has a steel cable loosely strung across the lath." + if(1) . += "It has a loose rod frame in place." + if(2) . += "It has a steel backbone welded in place." + if(3) . += "It has a steel backbone and a cell mount installed." + if(4) . += "It has a steel backbone, plastic lath and a cell mount installed." + if(5) . += "It has a steel cable loosely strung across the lath." /obj/item/crossbowframe/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/stack/rods)) @@ -269,11 +270,11 @@ return else if(isWelder(W)) if(buildstate == 1) - var/obj/item/weldingtool/T = W - if(T.remove_fuel(0,user)) - if(!src || !T.isOn()) return - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - to_chat(user, "You weld the rods into place.") + var/obj/item/weldingtool/WT = W + if(!WT.use_tool(src, user, amount = 1)) + return + + to_chat(user, "You weld the rods into place.") buildstate++ update_icon() return diff --git a/code/modules/projectiles/guns/launcher/grenade_launcher.dm b/code/modules/projectiles/guns/launcher/grenade_launcher.dm index efa14723470..28690811e68 100644 --- a/code/modules/projectiles/guns/launcher/grenade_launcher.dm +++ b/code/modules/projectiles/guns/launcher/grenade_launcher.dm @@ -47,13 +47,14 @@ to_chat(M, "You pump [src], but the magazine is empty.") update_icon() -/obj/item/gun/launcher/grenade/_examine_text(mob/user) +/obj/item/gun/launcher/grenade/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 2) var/grenade_count = grenades.len + (chambered? 1 : 0) - . += "\nHas [grenade_count] grenade\s remaining." + . += "Has [grenade_count] grenade\s remaining." if(chambered) - . += "\n\A [chambered] is chambered." + . += "\A [chambered] is chambered." /obj/item/gun/launcher/grenade/proc/load(obj/item/grenade/G, mob/user) if(!can_load_grenade_type(G, user)) diff --git a/code/modules/projectiles/guns/launcher/money_cannon.dm b/code/modules/projectiles/guns/launcher/money_cannon.dm index f6e479b0779..be9bf829ece 100644 --- a/code/modules/projectiles/guns/launcher/money_cannon.dm +++ b/code/modules/projectiles/guns/launcher/money_cannon.dm @@ -133,18 +133,19 @@ else to_chat(user, SPAN("warning", "That's not going to fit in there.")) -/obj/item/gun/launcher/money/_examine_text(mob/user) +/obj/item/gun/launcher/money/examine(mob/user, infix) . = ..() - . += "\nIt is configured to dispense [dispensing] credits at a time." + + . += "It is configured to dispense [dispensing] credits at a time." if(receptacle_value >= 1) - . += "\nThe receptacle is loaded with [receptacle_value] credits." + . += "The receptacle is loaded with [receptacle_value] credits." else - . += "\nThe receptacle is empty." + . += "The receptacle is empty." if(emagged) - . += "\n[SPAN("notice", "Its motors are severely overloaded.")]" + . += SPAN("notice", "Its motors are severely overloaded.") /obj/item/gun/launcher/money/handle_suicide(mob/living/user) if(!ishuman(user)) diff --git a/code/modules/projectiles/guns/launcher/net.dm b/code/modules/projectiles/guns/launcher/net.dm index e508274b0c2..6f9d00f829c 100644 --- a/code/modules/projectiles/guns/launcher/net.dm +++ b/code/modules/projectiles/guns/launcher/net.dm @@ -14,10 +14,11 @@ icon = 'icons/obj/ammo.dmi' icon_state = "netshell" -/obj/item/gun/launcher/net/_examine_text(mob/user) +/obj/item/gun/launcher/net/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 2 && chambered) - . += "\n\A [chambered] is chambered." + . += "\A [chambered] is chambered." /obj/item/gun/launcher/net/proc/load(obj/item/net_shell/S, mob/user) if(chambered) diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm index 4f7316b67df..4a6ab998ed7 100644 --- a/code/modules/projectiles/guns/launcher/pneumatic.dm +++ b/code/modules/projectiles/guns/launcher/pneumatic.dm @@ -102,15 +102,17 @@ item_storage.remove_from_storage(launched, src) return launched -/obj/item/gun/launcher/pneumatic/_examine_text(mob/user) +/obj/item/gun/launcher/pneumatic/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 2) return - . += "\nThe valve is dialed to [pressure_setting]%." + + . += "The valve is dialed to [pressure_setting]%." if(tank) - . += "\nThe tank dial reads [tank.air_contents.return_pressure()] kPa." + . += "The tank dial reads [tank.air_contents.return_pressure()] kPa." else - . += "\nNothing is attached to the tank valve!" + . += "Nothing is attached to the tank valve!" /obj/item/gun/launcher/pneumatic/update_release_force(obj/item/projectile) if(tank) @@ -152,14 +154,15 @@ /obj/item/cannonframe/on_update_icon() icon_state = "pneumatic[buildstate]" -/obj/item/cannonframe/_examine_text(mob/user) +/obj/item/cannonframe/examine(mob/user, infix) . = ..() + switch(buildstate) - if(1) . += "\nIt has a pipe segment installed." - if(2) . += "\nIt has a pipe segment welded in place." - if(3) . += "\nIt has an outer chassis installed." - if(4) . += "\nIt has an outer chassis welded in place." - if(5) . += "\nIt has a transfer valve installed." + if(1) . += "It has a pipe segment installed." + if(2) . += "It has a pipe segment welded in place." + if(3) . += "It has an outer chassis installed." + if(4) . += "It has an outer chassis welded in place." + if(5) . += "It has a transfer valve installed." /obj/item/cannonframe/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/pipe)) @@ -188,29 +191,29 @@ return else if(isWelder(W)) if(buildstate == 1) - var/obj/item/weldingtool/T = W - if(T.remove_fuel(0,user)) - if(!src || !T.isOn()) return - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - to_chat(user, "You weld the pipe into place.") - buildstate++ - update_icon() + var/obj/item/weldingtool/WT = W + if(!WT.use_tool(src, user, amount = 1)) + return + + to_chat(user, "You weld the pipe into place.") + buildstate++ + update_icon() if(buildstate == 3) - var/obj/item/weldingtool/T = W - if(T.remove_fuel(0,user)) - if(!src || !T.isOn()) return - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - to_chat(user, "You weld the metal chassis together.") - buildstate++ - update_icon() + var/obj/item/weldingtool/WT = W + if(!WT.use_tool(src, user, amount = 1)) + return + + to_chat(user, "You weld the metal chassis together.") + buildstate++ + update_icon() if(buildstate == 5) - var/obj/item/weldingtool/T = W - if(T.remove_fuel(0,user)) - if(!src || !T.isOn()) return - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - to_chat(user, "You weld the valve into place.") - new /obj/item/gun/launcher/pneumatic(get_turf(src)) - qdel(src) + var/obj/item/weldingtool/WT = W + if(!WT.use_tool(src, user, amount = 1)) + return + + to_chat(user, "You weld the valve into place.") + new /obj/item/gun/launcher/pneumatic(get_turf(src)) + qdel(src) return else ..() diff --git a/code/modules/projectiles/guns/launcher/rocket.dm b/code/modules/projectiles/guns/launcher/rocket.dm index 47363df58b3..1c6422a5868 100644 --- a/code/modules/projectiles/guns/launcher/rocket.dm +++ b/code/modules/projectiles/guns/launcher/rocket.dm @@ -23,11 +23,13 @@ var/max_rockets = 1 var/list/rockets = new /list() -/obj/item/gun/launcher/rocket/_examine_text(mob/user) +/obj/item/gun/launcher/rocket/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 2) return - . += "\n[rockets.len] / [max_rockets] rockets." + + . += SPAN_NOTICE("[rockets.len] / [max_rockets] rockets.") /obj/item/gun/launcher/rocket/attackby(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/ammo_casing/rocket)) diff --git a/code/modules/projectiles/guns/launcher/syringe_gun.dm b/code/modules/projectiles/guns/launcher/syringe_gun.dm index 22a2eca86f1..0204f992b1e 100644 --- a/code/modules/projectiles/guns/launcher/syringe_gun.dm +++ b/code/modules/projectiles/guns/launcher/syringe_gun.dm @@ -169,7 +169,8 @@ throw_distance = 7 release_force = 7 -/obj/item/gun/launcher/syringe/disguised/_examine_text(mob/user) +/obj/item/gun/launcher/syringe/disguised/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 0) - . += "\nThe button is a little stiff." + . += "The button is a little stiff." diff --git a/code/modules/projectiles/guns/magnetic/magnetic.dm b/code/modules/projectiles/guns/magnetic/magnetic.dm index a9d41f231bc..d3ad6253a41 100644 --- a/code/modules/projectiles/guns/magnetic/magnetic.dm +++ b/code/modules/projectiles/guns/magnetic/magnetic.dm @@ -76,31 +76,32 @@ if(loaded) return "It has \a [loaded] loaded." -/obj/item/gun/magnetic/_examine_text(mob/user) +/obj/item/gun/magnetic/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 2) var/ret = show_ammo() if (ret) - . += "\n[ret]" + . += "[ret]" if(cell) - . += "\nThe installed [cell.name] has a charge level of [round((cell.charge/cell.maxcharge)*100)]%." + . += SPAN_NOTICE("The installed [cell.name] has a charge level of [round((cell.charge/cell.maxcharge)*100)]%.") if(capacitor) - . += "\nThe installed [capacitor.name] has a charge level of [round((capacitor.charge/capacitor.max_charge)*100)]%." + . += SPAN_NOTICE("The installed [capacitor.name] has a charge level of [round((capacitor.charge/capacitor.max_charge)*100)]%.") if(!cell || !capacitor) - . += "\nThe capacitor charge indicator is blinking red. Maybe you should check the cell or capacitor." + . += SPAN_NOTICE("The capacitor charge indicator is blinking red. Maybe you should check the cell or capacitor.") else if(capacitor.charge < power_cost) - . += "\nThe capacitor charge indicator is amber." + . += SPAN_NOTICE("The capacitor charge indicator is amber.") else - . += "\nThe capacitor charge indicator is green." + . += SPAN_NOTICE("The capacitor charge indicator is green.") if(able_to_overheat && heat_level > 15) if(heat_level < 25) - . += "\n\The [src]'s wiring glows faintly." + . += SPAN_WARNING("\The [src]'s wiring glows faintly.") else - . += "\n\The [src]'s wiring is glowing brightly!" + . += SPAN_WARNING("\The [src]'s wiring is glowing brightly!") return diff --git a/code/modules/projectiles/guns/magnetic/magnetic_construction.dm b/code/modules/projectiles/guns/magnetic/magnetic_construction.dm index 5c7cc985988..051e1bb47f5 100644 --- a/code/modules/projectiles/guns/magnetic/magnetic_construction.dm +++ b/code/modules/projectiles/guns/magnetic/magnetic_construction.dm @@ -33,18 +33,11 @@ return if(isWelder(thing) && construction_stage == 4) - var/obj/item/weldingtool/welder = thing - - if(!welder.isOn()) - to_chat(user, "Turn it on first!") - return - - if(!welder.remove_fuel(0,user)) - to_chat(user, "You need more fuel!") + var/obj/item/weldingtool/WT = thing + if(!WT.use_tool(src, user, amount = 1)) return user.visible_message("\The [user] welds the barrel of \the [src] into place.") - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) increment_construction_stage() return @@ -85,15 +78,16 @@ construction_stage++ icon_state = "coilgun_construction_[construction_stage]" -/obj/item/coilgun_assembly/_examine_text(mob/user) +/obj/item/coilgun_assembly/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 2) switch(construction_stage) - if(2) . += "\nIt has a metal frame loosely shaped around the stock." - if(3) . += "\nIt has a metal frame duct-taped to the stock." - if(4) . += "\nIt has a length of pipe attached to the body." - if(4) . += "\nIt has a length of pipe welded to the body." - if(6) . += "\nIt has a cable mount and capacitor jack wired to the frame." - if(7) . += "\nIt has a single superconducting coil threaded onto the barrel." - if(8) . += "\nIt has a pair of superconducting coils threaded onto the barrel." - if(9) . += "\nIt has three superconducting coils attached to the body, waiting to be secured." + if(2) . += SPAN_NOTICE("It has a metal frame loosely shaped around the stock.") + if(3) . += SPAN_NOTICE("It has a metal frame duct-taped to the stock.") + if(4) . += SPAN_NOTICE("It has a length of pipe attached to the body.") + if(4) . += SPAN_NOTICE("It has a length of pipe welded to the body.") + if(6) . += SPAN_NOTICE("It has a cable mount and capacitor jack wired to the frame.") + if(7) . += SPAN_NOTICE("It has a single superconducting coil threaded onto the barrel.") + if(8) . += SPAN_NOTICE("It has a pair of superconducting coils threaded onto the barrel.") + if(9) . += SPAN_NOTICE("It has three superconducting coils attached to the body, waiting to be secured.") diff --git a/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm b/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm index c582788b8cd..d24b5b5228b 100644 --- a/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm +++ b/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm @@ -80,10 +80,11 @@ list(mode_name="long bursts", burst=6, fire_delay=null, move_delay=10, one_hand_penalty=2, burst_accuracy=list(0,-1,-1,-1,-2), dispersion=list(0.6, 0.6, 1.0, 1.0, 1.2)), ) -/obj/item/gun/magnetic/railgun/automatic/_examine_text(mob/user) +/obj/item/gun/magnetic/railgun/automatic/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\nSomeone has scratched Ultima Ratio Regum onto the side of the barrel." + . += SPAN_NOTICE("Someone has scratched Ultima Ratio Regum onto the side of the barrel.") /obj/item/gun/magnetic/railgun/flechette name = "flechette gun" diff --git a/code/modules/projectiles/guns/portalgun.dm b/code/modules/projectiles/guns/portalgun.dm index cbb1471efcb..931814f445d 100644 --- a/code/modules/projectiles/guns/portalgun.dm +++ b/code/modules/projectiles/guns/portalgun.dm @@ -18,9 +18,9 @@ var/obj/effect/portal/linked/blue_portal var/obj/effect/portal/linked/red_portal -/obj/item/gun/portalgun/_examine_text(mob/user) +/obj/item/gun/portalgun/examine(mob/user, infix) . = ..() - . += "\nIt's current setting is [setting ? "red" : "blue"]." + . += "It's current setting is [setting ? "red" : "blue"]." /obj/item/gun/portalgun/Initialize() . = ..() diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 7e0d54b4c51..39a24a8626c 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -263,15 +263,17 @@ ammo_magazine = null update_icon() //make sure to do this after unsetting ammo_magazine -/obj/item/gun/projectile/_examine_text(mob/user) +/obj/item/gun/projectile/examine(mob/user, infix) . = ..() + if(is_jammed) - . += "\nIt looks jammed." + . += SPAN_WARNING("It looks jammed.") + if(ammo_magazine) - . += "\nIt has \a [ammo_magazine] loaded." + . += "It has \a [ammo_magazine] loaded." + if(getAmmo() != AMMO_NO_DISPLAY) - . += "\nHas [getAmmo()] round\s remaining." - return + . += "Has [getAmmo()] round\s remaining." /obj/item/gun/projectile/proc/getAmmo() var/bullets = 0 diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 45bad5d1796..77a5007f2ac 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -251,12 +251,13 @@ icon_state = "carbine" ..() -/obj/item/gun/projectile/automatic/z8/_examine_text(mob/user) +/obj/item/gun/projectile/automatic/z8/examine(mob/user, infix) . = ..() + if(launcher.chambered) - . += "\n\The [launcher] has \a [launcher.chambered] loaded." + . += "\The [launcher] has \a [launcher.chambered] loaded." else - . += "\n\The [launcher] is empty." + . += "\The [launcher] is empty." /obj/item/gun/projectile/automatic/l6_saw diff --git a/code/modules/projectiles/guns/projectile/dartgun.dm b/code/modules/projectiles/guns/projectile/dartgun.dm index 2ee61acaf09..8ce3d4cc976 100644 --- a/code/modules/projectiles/guns/projectile/dartgun.dm +++ b/code/modules/projectiles/guns/projectile/dartgun.dm @@ -94,14 +94,17 @@ if(istype(dart)) fill_dart(dart) -/obj/item/gun/projectile/dartgun/_examine_text(mob/user) +/obj/item/gun/projectile/dartgun/examine(mob/user, infix) . = ..() - if (beakers.len) - . += "\n\The [src] contains:" - for(var/obj/item/reagent_containers/vessel/beaker/B in beakers) - if(B.reagents && B.reagents.reagent_list.len) - for(var/datum/reagent/R in B.reagents.reagent_list) - . += "\n[R.volume] units of [R.name]" + + if(!length(beakers)) + return + + . += "\The [src] contains:" + for(var/obj/item/reagent_containers/vessel/beaker/B in beakers) + if(B.reagents && B.reagents.reagent_list.len) + for(var/datum/reagent/R in B.reagents.reagent_list) + . += SPAN_NOTICE("[R.volume] units of [R.name]") /obj/item/gun/projectile/dartgun/attackby(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/reagent_containers/vessel)) diff --git a/code/modules/projectiles/guns/projectile/lawgiver.dm b/code/modules/projectiles/guns/projectile/lawgiver.dm index 5b5d119a4ab..88e61a2a2f9 100644 --- a/code/modules/projectiles/guns/projectile/lawgiver.dm +++ b/code/modules/projectiles/guns/projectile/lawgiver.dm @@ -116,8 +116,8 @@ GLOBAL_LIST_INIT(lawgiver_modes, list( if(!dna_profile) dna_profile = H.dna.unique_enzymes to_chat(usr, SPAN("notice", "You submit a DNA sample to \the [src].")) - verbs += /obj/item/gun/projectile/lawgiver/verb/erase_DNA_sample - verbs -= /obj/item/gun/projectile/lawgiver/verb/submit_DNA_sample + add_verb(loc, /obj/item/gun/projectile/lawgiver/verb/erase_DNA_sample) + remove_verb(loc, /obj/item/gun/projectile/lawgiver/verb/submit_DNA_sample) update_icon() return 1 @@ -143,8 +143,8 @@ GLOBAL_LIST_INIT(lawgiver_modes, list( /obj/item/gun/projectile/lawgiver/proc/remove_dna() dna_profile = null audible_message("\The [src] reports, \"No DNA profile found.\"", splash_override = "No DNA profile found.") - verbs += /obj/item/gun/projectile/lawgiver/verb/submit_DNA_sample - verbs -= /obj/item/gun/projectile/lawgiver/verb/erase_DNA_sample + add_verb(loc, /obj/item/gun/projectile/lawgiver/verb/submit_DNA_sample) + remove_verb(loc, /obj/item/gun/projectile/lawgiver/verb/erase_DNA_sample) update_icon() /obj/item/gun/projectile/lawgiver/emp_act(severity) @@ -253,9 +253,11 @@ GLOBAL_LIST_INIT(lawgiver_modes, list( //added every char from speechcheker just for sure return replace_characters(phrase, replacechars) -/obj/item/gun/projectile/lawgiver/_examine_text(mob/user) +/obj/item/gun/projectile/lawgiver/examine(mob/user, infix) . = ..() + var/obj/item/ammo_magazine/lawgiver/M = ammo_magazine if(!M) return + . += M.generate_description() diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index ca5666f226a..1b542e7fabd 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -310,12 +310,13 @@ /obj/item/zipgunframe/on_update_icon() icon_state = "zipgun[buildstate]" -/obj/item/zipgunframe/_examine_text(mob/user) +/obj/item/zipgunframe/examine(mob/user, infix) . = ..() + switch(buildstate) - if(1) . += "\nIt has a barrel loosely fitted to the stock." - if(2) . += "\nIt has a barrel that has been secured to the stock with tape." - if(3) . += "\nIt has a trigger and firing pin assembly loosely fitted into place." + if(1) . += "It has a barrel loosely fitted to the stock." + if(2) . += "It has a barrel that has been secured to the stock with tape." + if(3) . += "It has a trigger and firing pin assembly loosely fitted into place." /obj/item/zipgunframe/attackby(obj/item/thing, mob/user) if(istype(thing,/obj/item/pipe) && buildstate == 0) diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 924ce4e00f2..4c80dcb3772 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -188,12 +188,13 @@ return null*/ -/obj/item/gun/projectile/revolver/m2019/detective/_examine_text(mob/user) +/obj/item/gun/projectile/revolver/m2019/detective/examine(mob/user, infix) . = ..() + if(!bcell) - . += "\n\The [src] has no power cell installed." + . += "\The [src] has no power cell installed." else - . += "\n\The [src] is [round(CELL_PERCENT(bcell))]% charged." + . += "\The [src] is [round(CELL_PERCENT(bcell))]% charged." /obj/item/gun/projectile/revolver/m2019/detective/consume_next_projectile() if(chamber_offset) diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index de673150697..0ea1d0731c4 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -97,23 +97,26 @@ /obj/item/boomstickframe/on_update_icon() icon_state = "boomstick[buildstate]" -/obj/item/boomstickframe/_examine_text(mob/user) +/obj/item/boomstickframe/examine(mob/user, infix) . = ..() + switch(buildstate) - if(0) . += "\nIt has a pipe loosely fitted to the welding tool." - if(1) . += "\nIt has a pipe welded to the welding tool." - if(2) . += "\nIt has a bent metal rod attached to it." - if(3) . += "\nIt has a spring inside." - if(4) . += "\nIt is all covered with duct tape." + if(0) . += "It has a pipe loosely fitted to the welding tool." + if(1) . += "It has a pipe welded to the welding tool." + if(2) . += "It has a bent metal rod attached to it." + if(3) . += "It has a spring inside." + if(4) . += "It is all covered with duct tape." /obj/item/boomstickframe/attackby(obj/item/W, mob/user) if(isWelder(W) && buildstate == 0) var/obj/item/weldingtool/WT = W - if(WT.remove_fuel(0, user)) - user.visible_message("\The [user] secures \the [src]'s barrel.") - add_fingerprint(user) - buildstate++ - update_icon() + if(!WT.use_tool(src, user, amount = 1)) + return + + user.visible_message("\The [user] secures \the [src]'s barrel.") + add_fingerprint(user) + buildstate++ + update_icon() return else if(istype(W,/obj/item/stack/rods) && buildstate == 1) var/obj/item/stack/rods/R = W diff --git a/code/modules/projectiles/guns/special/meathook.dm b/code/modules/projectiles/guns/special/meathook.dm new file mode 100644 index 00000000000..6b2d3d0125c --- /dev/null +++ b/code/modules/projectiles/guns/special/meathook.dm @@ -0,0 +1,78 @@ + +/obj/item/gun/meathook + name = "meat hook" + desc = "A symbolic nightmare, its curved blade a frightening reminder of its owner's slaughterous intent. Or, maybe, you're overthinking it and this is just a regular meat hook." + icon = 'icons/obj/kitchen.dmi' + icon_state = "meathook" + item_state = "meathook" + fire_sound = 'sound/weapons/meathook.ogg' + fire_sound_text = "clanging chains" + clumsy_unaffected = TRUE + fire_delay = 40 + + var/projectile_type = /obj/item/projectile/meathook + +/obj/item/gun/meathook/consume_next_projectile() + return new /obj/item/projectile/meathook(src) + +/obj/item/projectile/meathook + name = "meat hook" + icon_state = null + damage_type = BRUTE + damage = 36.0 // 360 would be too much, I guess + armor_penetration = 100 // pure damage is scary + poisedamage = 20.0 + embed = FALSE + sharp = TRUE + hitscan = TRUE + impact_on_original = TRUE + muzzle_type = /obj/effect/projectile/muzzle/meathook + tracer_type = /obj/effect/projectile/tracer/meathook + impact_type = /obj/effect/projectile/impact/meathook + kill_count = 10 + pass_flags = PASS_FLAG_TABLE + projectile_light = FALSE + +/obj/item/projectile/meathook/on_hit(atom/target, blocked, def_zone) + if(isturf(target)) + return + + var/atom/movable/T = target + + var/grab_chance = 100 + if(iscarbon(T)) + if(def_zone != BP_CHEST && def_zone != BP_GROIN && def_zone != BP_HEAD) // Limbs are small + grab_chance = 50 + + if(!T.anchored && prob(grab_chance)) + T.throw_at(firer, get_dist(firer, T) - 1, 1) + var/success_msg = pick(\ + "Reel 'em in!",\ + "Hooked 'em!",\ + "Come to the chef!",\ + "Get over here!",\ + "Look who's coming for dinner!",\ + "Time for a little butchery!") + to_chat(firer, SPAN("notice", "[success_msg]")) + else + var/fail_msg = pick(\ + "I meant to do that...",\ + "Blast yeh!",\ + "Raah!",\ + "Gah!",\ + "Yahh!") + to_chat(firer, SPAN("warning", "[fail_msg]")) + + return ..() + +/obj/effect/projectile/muzzle/meathook + icon_state = "muzzle_meathook" + light_max_bright = 0 + +/obj/effect/projectile/tracer/meathook + icon_state = "tracer_meathook" + light_max_bright = 0 + +/obj/effect/projectile/impact/meathook + icon_state = "impact_meathook" + light_max_bright = 0 \ No newline at end of file diff --git a/code/modules/psychotronics/psychoscope.dm b/code/modules/psychotronics/psychoscope.dm index 29e53e443c5..03dc805c3f3 100644 --- a/code/modules/psychotronics/psychoscope.dm +++ b/code/modules/psychotronics/psychoscope.dm @@ -636,10 +636,9 @@ /* OVERRIDES */ -/obj/item/clothing/glasses/psychoscope/_examine_text(mob/user) +/obj/item/clothing/glasses/psychoscope/examine(mob/user, infix) . = ..() - - . += "\nThe battery panel is [cell_panel_opened ? "opened" : "closed"]." + . += "The battery panel is [cell_panel_opened ? "opened" : "closed"]." /obj/item/clothing/glasses/psychoscope/attack_hand(mob/user) if(cell_panel_opened && bcell) diff --git a/code/modules/radiation/radiation_source.dm b/code/modules/radiation/radiation_source.dm index 9474a413914..5d0c01bfd4b 100644 --- a/code/modules/radiation/radiation_source.dm +++ b/code/modules/radiation/radiation_source.dm @@ -44,4 +44,4 @@ /datum/radiation_source/proc/schedule_decay(time) ASSERT(time > 0) - addtimer(CALLBACK(src, nameof(.proc/Destroy)), time, TIMER_UNIQUE) + QDEL_IN(src, time) diff --git a/code/modules/rcd/_rcd.dm b/code/modules/rcd/_rcd.dm index 5fca011d165..647d4c3d127 100644 --- a/code/modules/rcd/_rcd.dm +++ b/code/modules/rcd/_rcd.dm @@ -1,4 +1,7 @@ //RAPID HANDHELD DEVICE. the base for all rapid devices + +#define MATTER_REDUCTION_COEFFICIENT 5 + /obj/item/construction name = "not for ingame use" desc = "A device used to rapidly build and deconstruct. Reload with iron, plasteel, glass or compressed local_matter cartridges." @@ -42,7 +45,7 @@ /obj/item/construction/proc/get_matter(mob/user) return local_matter -/obj/item/construction/_examine_text(mob/user) +/obj/item/construction/examine(mob/user, infix) . = ..() . += "It currently holds [get_matter(user)]/[max_matter] local_matter-units." @@ -61,10 +64,10 @@ /// Installs an upgrade into the RCD checking if it is already installed, or if it is a banned upgrade /obj/item/construction/proc/install_upgrade(obj/item/rcd_upgrade/design_disk, mob/user) if(design_disk.upgrade & upgrade) - show_splash_text(user, "already installed!") + show_splash_text(user, "already installed!", SPAN("warning", "\The [src] already has this upgrade!")) return FALSE if(design_disk.upgrade & banned_upgrades) - show_splash_text(user, "cannot install upgrade!") + show_splash_text(user, "cannot install upgrade!", SPAN("warning", "\The [src] cannot have this upgrade!")) return FALSE upgrade |= design_disk.upgrade playsound(loc, 'sound/machines/click.ogg', 50, TRUE) @@ -80,8 +83,9 @@ if(istype(item, /obj/item/rcd_ammo)) var/obj/item/rcd_ammo/ammo = item var/load = min(ammo.ammoamt, max_matter - local_matter) + load = round(load / MATTER_REDUCTION_COEFFICIENT) if(load <= 0) - show_splash_text(user, "storage full!") + show_splash_text(user, "storage full!", SPAN("warning", "\The [src] is full!")) return FALSE ammo.ammoamt -= load if(ammo.ammoamt <= 0) @@ -97,18 +101,19 @@ /obj/item/construction/proc/loadwithsheets(obj/item/stack/the_stack, mob/user) if(the_stack.amount <= 0) - show_splash_text(user, "invalid sheets!") + show_splash_text(user, "invalid sheets!", SPAN("warning", "\The [src] refuses to accept this.")) return FALSE - var/maxsheets = round((max_matter-local_matter) / the_stack.amount) //calculate the max number of sheets that will fit in RCD + var/sheet_amt_to_matter = round(the_stack.amount / MATTER_REDUCTION_COEFFICIENT) + var/maxsheets = round(((max_matter - local_matter) - sheet_amt_to_matter) * MATTER_REDUCTION_COEFFICIENT) //calculate the max number of sheets that will fit in RCD if(maxsheets > 0) var/amount_to_use = min(the_stack.amount, maxsheets) the_stack.use(amount_to_use) - local_matter += the_stack.amount * amount_to_use + local_matter += round(amount_to_use / MATTER_REDUCTION_COEFFICIENT) playsound(loc, 'sound/machines/click.ogg', 50, TRUE) return TRUE - show_splash_text(user, "storage full!") + show_splash_text(user, "storage full!", SPAN("warning", "\The [src] is full!")) return FALSE /obj/item/construction/proc/activate() @@ -129,7 +134,7 @@ /obj/item/construction/proc/useResource(amount, mob/user) if(local_matter < amount) if(user) - show_splash_text(user, "not enough local_matter!") + show_splash_text(user, "not enough local_matter!", SPAN("warning", "Not enough local_matter!")) return FALSE local_matter -= amount @@ -167,7 +172,7 @@ . = local_matter >= amount if(!. && user) - show_splash_text(user, "low ammo!") + show_splash_text(user, "low ammo!", SPAN("warning", "Not enough matter!")) if(has_ammobar) flick("[icon_state]_empty", src) //somewhat hacky thing to make RCDs with ammo counters actually have a blinking yellow light @@ -177,7 +182,7 @@ if(target.z != user.z) return if(!(target in dview(7, get_turf(user)))) - show_splash_text(user, "out of range!") + show_splash_text(user, "out of range!", SPAN("warning", "Out of range!")) flick("[icon_state]_empty", src) return FALSE else @@ -241,3 +246,5 @@ ) else return defaults + +#undef MATTER_REDUCTION_COEFFICIENT diff --git a/code/modules/rcd/ammo.dm b/code/modules/rcd/ammo.dm index 5e4f791f5d0..eac1475908a 100644 --- a/code/modules/rcd/ammo.dm +++ b/code/modules/rcd/ammo.dm @@ -8,19 +8,19 @@ w_class = ITEM_SIZE_SMALL origin_tech = list(TECH_MATERIAL = 2) - matter = list(MATERIAL_STEEL = 15000, MATERIAL_GLASS = 7500) + matter = list(MATERIAL_STEEL = 20000, MATERIAL_GLASS = 10000) var/ammoamt = 40 -/obj/item/rcd_ammo/_examine_text(mob/user) +/obj/item/rcd_ammo/examine(mob/user, infix) . = ..() if(get_dist(src, user) <= 1) - . += "\n" + SPAN("notice", "It has [ammoamt] unit\s of matter left.") + . += SPAN("notice", "It has [ammoamt] unit\s of matter left.") /obj/item/rcd_ammo/large name = "high-capacity matter cartridge" desc = "Do not ingest." - matter = list(MATERIAL_STEEL = 45000, MATERIAL_GLASS = 22500) + matter = list(MATERIAL_STEEL = 65000, MATERIAL_GLASS = 25000) ammoamt = 160 origin_tech = list(TECH_MATERIAL = 4) diff --git a/code/modules/rcd/constructing_effect.dm b/code/modules/rcd/constructing_effect.dm index 2a46c566d22..9a01091eb4c 100644 --- a/code/modules/rcd/constructing_effect.dm +++ b/code/modules/rcd/constructing_effect.dm @@ -13,7 +13,7 @@ status = rcd_status delay = rcd_delay if(status == RCD_DECONSTRUCT) - addtimer(CALLBACK(src, nameof(/atom.proc/update_icon)), 1.1 SECONDS) + add_think_ctx("think_update_icon", CALLBACK(src, nameof(/atom.proc/update_icon)), 1.1 SECONDS) delay -= 11 icon_state = "rcd_end_reverse" else @@ -57,14 +57,14 @@ else mouse_opacity = MOUSE_OPACITY_TRANSPARENT icon_state = "rcd_end" - addtimer(CALLBACK(src, nameof(.proc/end)), 15) + set_next_think(world.time + 1.5 SECONDS) -/obj/effect/constructing_effect/proc/end() +/obj/effect/constructing_effect/think() qdel_self() /obj/effect/constructing_effect/proc/attacked(mob/user) playsound(loc, 'sound/weapons/egloves.ogg', vol = 80, vary = TRUE) - end() + qdel_self() /obj/effect/constructing_effect/attackby(obj/item/weapon, mob/user, params) attacked(user) diff --git a/code/modules/rcd/rcd.dm b/code/modules/rcd/rcd.dm index 1574e4916ec..602932c3166 100644 --- a/code/modules/rcd/rcd.dm +++ b/code/modules/rcd/rcd.dm @@ -63,7 +63,7 @@ var/list/design = GLOB.rcd_designs[root_category][design_category][1] rcd_design_path = design["[RCD_DESIGN_PATH]"] - design_title = initial(rcd_design_path.name) + design_title = initial(rcd_design_path.type) mode = design["[RCD_DESIGN_MODE]"] construction_mode = mode @@ -106,7 +106,7 @@ //check if we can build our window on the grill if(is_blocked_turf(target_turf, caller = null, exclude_mobs = FALSE, ignore_atoms = structures_to_ignore)) playsound(loc, 'sound/machines/click.ogg', 50, TRUE) - show_splash_text(user, "something is blocking the turf") + show_splash_text(user, "something is blocking the turf", SPAN("warning", "There's something blocking the turf!")) return FALSE /** @@ -117,7 +117,7 @@ //if a player builds a wallgirder on top of himself manually with iron sheets he can't finish the wall if he is still on the girder. Exclude the girder itself when checking for other dense objects on the turf if(istype(target, /obj/structure/girder) && is_blocked_turf(target_turf)) playsound(loc, 'sound/machines/click.ogg', 50, TRUE) - show_splash_text(user, "something is on the girder!") + show_splash_text(user, "something is on the girder!", SPAN("warning", "There's something blocking the girder!")) return FALSE //check if turf is blocked in for dense structures @@ -146,7 +146,7 @@ //check if the structure can fit on this turf if(is_blocked_turf(target_turf)) playsound(loc, 'sound/machines/click.ogg', 50, TRUE) - show_splash_text(user, "something is on the tile!") + show_splash_text(user, "something is on the tile!", SPAN("warning", "There's something blocking the tile!")) return FALSE return TRUE @@ -257,23 +257,15 @@ var/atom/design_path = design[RCD_DESIGN_PATH] var/icon/design_icon - // Ad hoc cases. Very ugly indeed. var/design_name = initial(design_path.name) - if(ispath(design_path, /obj/structure/window_frame/rglass)) - design_name = design_name + " reinforced" - else if(ispath(design_path, /obj/structure/window_frame/grille/rglass)) - design_name = design_name + " reinforced" - else if(ispath(design_path, /obj/structure/window/reinforced/full)) - design_name = design_name + " full" - else if(ispath(design_path, /obj/structure/table/reinforced)) - design_name = design_name + " reinforced" + var/design_type = initial(design_path.type) if(isnull(designs_icons[design_path])) designs_icons[design_path] = icon(icon = initial(design_path.icon), icon_state = initial(design_path.icon_state), dir = SOUTH, frame = 1) design_icon = designs_icons[design_path] - designs += list(list("title" = design_name, "icon" = icon2base64html(design_icon))) + designs += list(list("title" = design_name, "type" = design_type, "icon" = icon2base64html(design_icon))) data["categories"] += list(list("cat_name" = sub_category, "designs" = designs)) return data @@ -333,17 +325,7 @@ mode = design["[RCD_DESIGN_MODE]"] construction_mode = mode rcd_design_path = design["[RCD_DESIGN_PATH]"] - design_title = initial(rcd_design_path.name) - - // Ad hoc cases. Very ugly indeed. - if(ispath(rcd_design_path, /obj/structure/window_frame/rglass)) - design_title = design_title + " reinforced" - else if(ispath(rcd_design_path, /obj/structure/window_frame/grille/rglass)) - design_title = design_title + " reinforced" - else if(ispath(rcd_design_path, /obj/structure/window/reinforced/full)) - design_title = design_title + " full" - else if(ispath(rcd_design_path, /obj/structure/table/reinforced)) - design_title = design_title + " reinforced" + design_title = initial(rcd_design_path.type) else airlock_electronics.handle_act(action, params) @@ -374,9 +356,9 @@ audible_message("[src] begins to vibrate and \ buzz loudly!","[src] begins \ vibrating violently!") - addtimer(CALLBACK(src, nameof(.proc/detonate_pulse_explode)), 5 SECONDS) + set_next_think(world.time + 5 SECONDS) -/obj/item/construction/rcd/proc/detonate_pulse_explode() +/obj/item/construction/rcd/think() explosion(src, light_impact_range = 3, flash_range = 1) qdel(src) diff --git a/code/modules/rcd/rcd_borg.dm b/code/modules/rcd/rcd_borg.dm index 735494a0190..9229cf158b8 100644 --- a/code/modules/rcd/rcd_borg.dm +++ b/code/modules/rcd/rcd_borg.dm @@ -23,7 +23,7 @@ . = borgy.cell.use(amount * energyfactor) //borgs get 1.3x the use of their RCDs if(!. && user) - show_splash_text(user, "insufficient charge!") + show_splash_text(user, "insufficient charge!", SPAN("warning", "\The [src] is out of charge!")) return . /obj/item/construction/rcd/borg/checkResource(amount, mob/user) @@ -36,5 +36,5 @@ . = borgy.cell.charge >= (amount * energyfactor) if(!. && user) - show_splash_text(user, "insufficient charge!") + show_splash_text(user, "insufficient charge!", SPAN("warning", "\The [src] is out of charge!")) return . diff --git a/code/modules/rcd/rcd_mounted.dm b/code/modules/rcd/rcd_mounted.dm index 6a2efcc2141..e7fb9a8f6c8 100644 --- a/code/modules/rcd/rcd_mounted.dm +++ b/code/modules/rcd/rcd_mounted.dm @@ -18,7 +18,7 @@ . = module.holder.cell.use(amount) if(!. && user) - show_splash_text(user, "insufficient charge!") + show_splash_text(user, "insufficient charge!", SPAN("warning", "\The [src] is out of charge!")) return . /obj/item/construction/rcd/mounted/checkResource(amount, mob/user) @@ -31,7 +31,7 @@ . = module.holder.cell.charge >= amount if(!. && user) - show_splash_text(user, "insufficient charge!") + show_splash_text(user, "insufficient charge!", SPAN("warning", "\The [src] is out of charge!")) return . /obj/item/construction/rcd/mounted/tgui_state(mob/user) diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 1b00363a6fd..426286bf6af 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -11,6 +11,7 @@ GLOBAL_DATUM_INIT(temp_reagents_holder, /obj, new) if(!istype(my_atom)) CRASH("Invalid reagents holder: [log_info_line(my_atom)]") ..() + add_think_ctx("delayed_add_reagent", CALLBACK(src, nameof(.proc/add_reagent)), 0) src.my_atom = my_atom src.maximum_volume = maximum_volume diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index d8005325de0..67f8286dc80 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -274,6 +274,18 @@ dat += "" show_browser(usr, dat, "window=chem_master") return + + else if(href_list["condiment_pack"]) + if(!condi) + return + + if(!spend_material(50, usr)) + return + + var/obj/item/reagent_containers/vessel/condiment/pack/P = new /obj/item/reagent_containers/vessel/condiment/pack(get_turf(loc)) + reagents.trans_to_obj(P, 10) + return + else if(href_list["pill_sprite"]) pillsprite = href_list["pill_sprite"] else if(href_list["bottle_sprite"]) @@ -372,7 +384,8 @@ dat += "Create normal bottle | 60 units max | Glass: 2000
" dat += "Create big bottle | 90 units max | Glass: 3000" else - dat += "Create bottle | 50 units max | Glass: 2000" + dat += "Create bottle | 50 units max | Glass: 2000
" + dat += "Create condiment pack | 10 units max | Glass: 50" if(!condi) show_browser(user, "Chemmaster 3000Chemmaster menu:

[dat]", "window=chem_master;size=575x400") else @@ -517,11 +530,14 @@ if("grind") grind() if("dump") - show_splash_text(user, "contents dumped.") + show_splash_text(user, "contents dumped", SPAN("notice", "You dump the contents of \the [src].")) eject() if("detach") - show_splash_text(user, beaker ? "beaker detached." : "no beaker present!") - detach() + if(beaker) + show_splash_text(user, "beaker detached", SPAN("notice", "You detach \the [beaker] from \the [src].")) + detach() + else + show_splash_text(user, "no beaker present!", SPAN("notice", "There's no beaker in \the [src].")) /obj/machinery/reagentgrinder/proc/_generate_buttons() LAZYINITLIST(choices) diff --git a/code/modules/reagents/Chemistry-Reagents/basic.dm b/code/modules/reagents/Chemistry-Reagents/basic.dm index 3047422656e..d458c15d97e 100644 --- a/code/modules/reagents/Chemistry-Reagents/basic.dm +++ b/code/modules/reagents/Chemistry-Reagents/basic.dm @@ -340,6 +340,7 @@ qdel(H.head) H.update_inv_head(1) H.update_hair(1) + H.update_facial_hair(1) removed -= meltdose if(removed <= 0) return @@ -354,6 +355,7 @@ qdel(H.wear_mask) H.update_inv_wear_mask(1) H.update_hair(1) + H.update_facial_hair(1) removed -= meltdose if(removed <= 0) return diff --git a/code/modules/reagents/Chemistry-Reagents/caffeine.dm b/code/modules/reagents/Chemistry-Reagents/caffeine.dm new file mode 100644 index 00000000000..ff0f9af3c0b --- /dev/null +++ b/code/modules/reagents/Chemistry-Reagents/caffeine.dm @@ -0,0 +1,142 @@ +/datum/reagent/caffeine + name = "Caffeine" + description = "Central nervous system stimulant." + taste_mult = 0 + reagent_state = SOLID + color = "#ffffff" + + glass_icon = DRINK_ICON_NOISY + + var/nutrition = 0 // Per unit + var/adj_dizzy = 0 // Per tick + var/adj_drowsy = 0 + var/adj_sleepy = 0 + var/adj_temp = 0 + var/adj_speed = 0 + +/datum/reagent/caffeine/affect_ingest(mob/living/carbon/M, alien, removed) + if(alien == IS_DIONA) + return + + . = ..() + + M.add_nutrition(nutrition * removed) + M.dizziness = max(0, M.dizziness + adj_dizzy) + M.drowsyness = max(0, M.drowsyness + adj_drowsy) + M.sleeping = max(0, M.sleeping + adj_sleepy) + if(adj_temp > 0 && M.bodytemperature < 310) // 310 is the normal bodytemp. 310.055 + M.bodytemperature = min(310, M.bodytemperature + (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) + if(adj_temp < 0 && M.bodytemperature > 310) + M.bodytemperature = min(310, M.bodytemperature - (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) + if(adj_speed) + M.add_up_to_chemical_effect(adj_speed < 0 ? CE_SLOWDOWN : CE_SPEEDBOOST, adj_speed) + + if(alien == IS_TAJARA) + M.adjustToxLoss(0.5 * removed) + M.make_jittery(4) + + if(adj_temp > 0) + holder.remove_reagent(/datum/reagent/frostoil, 10 * removed) + + if(volume > 15) + M.add_chemical_effect(CE_PULSE, 1) + +/datum/reagent/caffeine/affect_blood(mob/living/carbon/M, alien, removed) + . = ..() + if(alien == IS_TAJARA) + M.adjustToxLoss(2 * removed) + M.make_jittery(4) + return + + M.add_chemical_effect(CE_PULSE, 2) + M.adjustToxLoss(removed) // Probably not a good idea; not very deadly though + +/datum/reagent/caffeine/overdose(mob/living/carbon/M, alien) + if(alien == IS_DIONA) + return + + if(alien == IS_TAJARA) + M.adjustToxLoss(4 * REM) + M.apply_effect(3, STUTTER) + + M.make_jittery(5) + M.add_chemical_effect(CE_PULSE, 2) + M.add_up_to_chemical_effect(CE_SPEEDBOOST, 1) + +/datum/reagent/caffeine/coffee + name = "Coffee" + description = "Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant." + taste_description = "bitterness" + taste_mult = 1.3 + color = "#482000" + adj_dizzy = -5 + adj_drowsy = -3 + adj_sleepy = -2 + adj_temp = 25 + adj_speed = 0.3 + overdose = 45 + + glass_name = "coffee" + glass_desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere." + glass_special = list(DRINK_VAPOR) + +/datum/reagent/caffeine/coffee/cafe_latte + name = "Cafe Latte" + description = "A nice, strong and tasty beverage while you are reading." + taste_description = "bitter cream" + color = "#c65905" + adj_temp = 5 + + glass_required = "coffeecup" + glass_icon_state = "coffeelatte" + glass_name = "cafe latte" + glass_desc = "A nice, strong and refreshing beverage while you are reading." + +/datum/reagent/caffeine/coffee/cafe_latte/affect_ingest(mob/living/carbon/M, alien, removed) + . = ..() + M.heal_organ_damage(0.5 * removed, 0) + +/datum/reagent/caffeine/coffee/icecoffee + name = "Iced Coffee" + description = "Coffee and ice, refreshing and cool." + taste_description = "bitter coldness" + color = "#888179" + adj_temp = -5 + + glass_required = "square" + glass_icon_state = "coffeelatte" + glass_name = "iced coffee" + glass_desc = "A drink to perk you up and refresh you!" + glass_special = list(DRINK_ICE) + +/datum/reagent/caffeine/coffee/soy_latte + name = "Soy Latte" + description = "A nice and tasty beverage while you are reading your hippie books." + taste_description = "creamy coffee" + color = "#c65905" + adj_temp = 5 + + glass_required = "coffeecup" + glass_icon_state = "soylatte" + glass_name = "soy latte" + glass_desc = "A nice and refrshing beverage while you are reading." + +/datum/reagent/caffeine/coffee/soy_latte/affect_ingest(mob/living/carbon/M, alien, removed) + ..() + M.heal_organ_damage(0.5 * removed, 0) + +/datum/reagent/caffeine/coffee/cappuccino + name = "Cappuccino" + description = "A nice, light coffee beverage made of espresso and steamed milk." + taste_description = "creamy coffee" + color = "#c65905" + adj_temp = 5 + + glass_required = "coffeecup" + glass_icon_state = "cappuccino" + glass_name = "cappuccino" + glass_desc = "A nice, light coffee beverage made of espresso and steamed milk." + +/datum/reagent/caffeine/coffee/cappuccino/affect_ingest(mob/living/carbon/M, alien, removed) + ..() + M.heal_organ_damage(0.5 * removed, 0) diff --git a/code/modules/reagents/Chemistry-Reagents/ethanol.dm b/code/modules/reagents/Chemistry-Reagents/ethanol.dm index f23aacd3b1d..39335eb733c 100644 --- a/code/modules/reagents/Chemistry-Reagents/ethanol.dm +++ b/code/modules/reagents/Chemistry-Reagents/ethanol.dm @@ -241,7 +241,7 @@ M.apply_effect(3, STUTTER) M.make_jittery(5) -/datum/reagent/ethanol/coffee/kahlua +/datum/reagent/ethanol/kahlua name = "Kahlua" description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!" taste_description = "spiked latte" diff --git a/code/modules/reagents/Chemistry-Reagents/food_drinks.dm b/code/modules/reagents/Chemistry-Reagents/food_drinks.dm index 49b7faf642e..9e120360b6c 100644 --- a/code/modules/reagents/Chemistry-Reagents/food_drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/food_drinks.dm @@ -704,114 +704,6 @@ glass_desc = "No relation to a certain rap artist/ actor." glass_special = list(DRINK_ICE) -/datum/reagent/drink/coffee - name = "Coffee" - description = "Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant." - taste_description = "bitterness" - taste_mult = 1.3 - color = "#482000" - adj_dizzy = -5 - adj_drowsy = -3 - adj_sleepy = -2 - adj_temp = 25 - adj_speed = 0.3 - overdose = 45 - - glass_name = "coffee" - glass_desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere." - glass_special = list(DRINK_VAPOR) - -/datum/reagent/drink/coffee/affect_ingest(mob/living/carbon/M, alien, removed) - if(alien == IS_DIONA) - return - ..() - if(alien == IS_TAJARA) - M.adjustToxLoss(0.5 * removed) - M.make_jittery(4) //extra sensitive to caffine - if(adj_temp > 0) - holder.remove_reagent(/datum/reagent/frostoil, 10 * removed) - if(volume > 15) - M.add_chemical_effect(CE_PULSE, 1) - -/datum/reagent/nutriment/coffee/affect_blood(mob/living/carbon/M, alien, removed) - ..() - if(alien == IS_TAJARA) - M.adjustToxLoss(2 * removed) - M.make_jittery(4) - return - M.add_chemical_effect(CE_PULSE, 2) - -/datum/reagent/drink/coffee/overdose(mob/living/carbon/M, alien) - if(alien == IS_DIONA) - return - if(alien == IS_TAJARA) - M.adjustToxLoss(4 * REM) - M.apply_effect(3, STUTTER) - M.make_jittery(5) - M.add_chemical_effect(CE_PULSE, 2) - M.add_up_to_chemical_effect(CE_SPEEDBOOST, 1) - -/datum/reagent/drink/coffee/icecoffee - name = "Iced Coffee" - description = "Coffee and ice, refreshing and cool." - taste_description = "bitter coldness" - color = "#888179" - adj_temp = -5 - - glass_required = "square" - glass_icon_state = "coffeelatte" - glass_name = "iced coffee" - glass_desc = "A drink to perk you up and refresh you!" - glass_special = list(DRINK_ICE) - -/datum/reagent/drink/coffee/soy_latte - name = "Soy Latte" - description = "A nice and tasty beverage while you are reading your hippie books." - taste_description = "creamy coffee" - color = "#c65905" - adj_temp = 5 - - glass_required = "coffeecup" - glass_icon_state = "soylatte" - glass_name = "soy latte" - glass_desc = "A nice and refrshing beverage while you are reading." - -/datum/reagent/drink/coffee/soy_latte/affect_ingest(mob/living/carbon/M, alien, removed) - ..() - M.heal_organ_damage(0.5 * removed, 0) - -/datum/reagent/drink/coffee/cafe_latte - name = "Cafe Latte" - description = "A nice, strong and tasty beverage while you are reading." - taste_description = "bitter cream" - color = "#c65905" - adj_temp = 5 - - glass_required = "coffeecup" - glass_icon_state = "coffeelatte" - glass_name = "cafe latte" - glass_desc = "A nice, strong and refreshing beverage while you are reading." - -/datum/reagent/drink/coffee/cafe_latte/affect_ingest(mob/living/carbon/M, alien, removed) - ..() - M.heal_organ_damage(0.5 * removed, 0) - -/datum/reagent/drink/coffee/cappuccino - name = "Cappuccino" - description = "A nice, light coffee beverage made of espresso and steamed milk." - taste_description = "creamy coffee" - color = "#c65905" - adj_temp = 5 - - glass_required = "coffeecup" - glass_icon_state = "cappuccino" - glass_name = "cappuccino" - glass_desc = "A nice, light coffee beverage made of espresso and steamed milk." - -/datum/reagent/drink/coffee/cappuccino/affect_ingest(mob/living/carbon/M, alien, removed) - ..() - M.heal_organ_damage(0.5 * removed, 0) - /datum/reagent/drink/hot_coco name = "Hot Chocolate" description = "Made with love! And cocoa beans." @@ -1156,3 +1048,31 @@ glass_name = "nothing" glass_desc = "Absolutely nothing." + +/datum/reagent/nutriment/magical_custard + name = "Magical Custard" + description = "It's both tasty and healthy. Must be magic." + taste_description = "sweet pleasure" + reagent_state = LIQUID + color = "#FFE6A3" + scannable = TRUE + flags = IGNORE_MOB_SIZE + +/datum/reagent/magical_custard/affect_ingest(mob/living/carbon/M, alien, removed) + M.heal_organ_damage(5 * removed, 5 * removed) + +/datum/reagent/astrotame + name = "Astrotame" + description = "A space age artifical sweetener." + reagent_state = SOLID + color = "#FFFFFF" // rgb: 255, 255, 255 + taste_mult = 8 + taste_description = "sweetness" + +/datum/reagent/sugar/caramel + name = "Caramel" + description = "Who would have guessed that heating sugar is so delicious?" + taste_description = "bitter sweetness" + taste_mult = 2 + reagent_state = SOLID + color = "#ffffff" diff --git a/code/modules/reagents/Chemistry-Reagents/toxins.dm b/code/modules/reagents/Chemistry-Reagents/toxins.dm index 8e0c046940a..92ab854a411 100644 --- a/code/modules/reagents/Chemistry-Reagents/toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/toxins.dm @@ -584,7 +584,7 @@ to_chat(H, "Your flesh rapidly mutates!") H.set_species(SPECIES_PROMETHEAN) H.shapeshifter_set_colour("#05ff9b") - H.verbs -= /mob/living/carbon/human/proc/shapeshifter_select_colour + revoke_verb(H, /mob/living/carbon/human/proc/shapeshifter_select_colour) return var/obj/item/organ/external/O = pick(meatchunks) to_chat(H, "Your [O.name]'s flesh mutates rapidly!") @@ -743,6 +743,7 @@ M.h_style = "Sick" M.f_style = "Great Beard" M.update_hair() + M.update_facial_hair() to_chat(M, SPAN_WARNING("You feel a chill, your skin feels heavier...")) /datum/reagent/toxin/zombie diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 1d034a644ee..fb0e194260a 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -1299,6 +1299,17 @@ ..() new /obj/item/golem_shell(get_turf(holder.my_atom)) +/datum/chemical_reaction/metroid/adamantine + name = "Adamantine" + result = null + required_reagents = list(/datum/reagent/blood = 5) + result_amount = 1 + required = /obj/item/metroid_extract/adamantine + +/datum/chemical_reaction/metroid/adamantine/on_reaction(datum/reagents/holder) + ..() + new /obj/item/stack/material/adamantine(get_turf(holder.my_atom)) + //Sepia /datum/chemical_reaction/metroid/film name = "Metroid Film" @@ -1440,7 +1451,7 @@ S.visible_message(SPAN_DANGER("Infused with slime jelly, the core begins to expand uncontrollably!")) S.icon_state = "metroidbang_active" S.active = TRUE - addtimer(CALLBACK(S, nameof(/obj/item/grenade.proc/detonate)), rand(15,60)) + S.set_next_think_ctx("think_detonate", world.time + rand(1.5 SECONDS, 6 SECONDS)) var/lastkey = holder.my_atom.fingerprintslast message_admins("[key_name_admin(lastkey)] primed an explosive Brorble Brorble for detonation.") log_game("[key_name(lastkey)] primed an explosive Brorble Brorble for detonation.") @@ -1603,8 +1614,8 @@ /datum/chemical_reaction/icecoffee name = "Iced Coffee" - result = /datum/reagent/drink/coffee/icecoffee - required_reagents = list(/datum/reagent/drink/ice = 1, /datum/reagent/drink/coffee = 2) + result = /datum/reagent/caffeine/coffee/icecoffee + required_reagents = list(/datum/reagent/drink/ice = 1, /datum/reagent/caffeine/coffee = 2) result_amount = 3 /datum/chemical_reaction/nuka_cola @@ -1678,8 +1689,8 @@ /datum/chemical_reaction/kahlua name = "Kahlua" - result = /datum/reagent/ethanol/coffee/kahlua - required_reagents = list(/datum/reagent/drink/coffee = 5, /datum/reagent/sugar = 5) + result = /datum/reagent/ethanol/kahlua + required_reagents = list(/datum/reagent/caffeine/coffee = 5, /datum/reagent/sugar = 5) catalysts = list(/datum/reagent/enzyme = 5) result_amount = 5 @@ -1766,7 +1777,7 @@ /datum/chemical_reaction/brave_bull name = "Brave Bull" result = /datum/reagent/ethanol/coffee/brave_bull - required_reagents = list(/datum/reagent/ethanol/tequilla = 2, /datum/reagent/ethanol/coffee/kahlua = 1) + required_reagents = list(/datum/reagent/ethanol/tequilla = 2, /datum/reagent/ethanol/kahlua = 1) result_amount = 3 /datum/chemical_reaction/tequilla_sunrise @@ -1814,13 +1825,13 @@ /datum/chemical_reaction/irish_coffee name = "Irish Coffee" result = /datum/reagent/ethanol/coffee/irishcoffee - required_reagents = list(/datum/reagent/ethanol/irish_cream = 1, /datum/reagent/drink/coffee = 1) + required_reagents = list(/datum/reagent/ethanol/irish_cream = 1, /datum/reagent/caffeine/coffee = 1) result_amount = 2 /datum/chemical_reaction/b52 name = "B-52" result = /datum/reagent/ethanol/coffee/b52 - required_reagents = list(/datum/reagent/ethanol/irish_cream = 1, /datum/reagent/ethanol/coffee/kahlua = 1, /datum/reagent/ethanol/cognac = 1) + required_reagents = list(/datum/reagent/ethanol/irish_cream = 1, /datum/reagent/ethanol/kahlua = 1, /datum/reagent/ethanol/cognac = 1) result_amount = 3 /datum/chemical_reaction/atomicbomb @@ -1856,7 +1867,7 @@ /datum/chemical_reaction/black_russian name = "Black Russian" result = /datum/reagent/ethanol/black_russian - required_reagents = list(/datum/reagent/ethanol/vodka = 2, /datum/reagent/ethanol/coffee/kahlua = 1) + required_reagents = list(/datum/reagent/ethanol/vodka = 2, /datum/reagent/ethanol/kahlua = 1) result_amount = 3 /datum/chemical_reaction/manhattan @@ -1970,20 +1981,20 @@ /datum/chemical_reaction/soy_latte name = "Soy Latte" - result = /datum/reagent/drink/coffee/soy_latte - required_reagents = list(/datum/reagent/drink/coffee = 1, /datum/reagent/drink/milk/soymilk = 1) + result = /datum/reagent/caffeine/coffee/soy_latte + required_reagents = list(/datum/reagent/caffeine/coffee = 1, /datum/reagent/drink/milk/soymilk = 1) result_amount = 2 /datum/chemical_reaction/cafe_latte name = "Cafe Latte" - result = /datum/reagent/drink/coffee/cafe_latte - required_reagents = list(/datum/reagent/drink/coffee = 1, /datum/reagent/drink/milk = 1) + result = /datum/reagent/caffeine/coffee/cafe_latte + required_reagents = list(/datum/reagent/caffeine/coffee = 1, /datum/reagent/drink/milk = 1) result_amount = 2 /datum/chemical_reaction/cappuccino name = "Cappuccino" - result = /datum/reagent/drink/coffee/cappuccino - required_reagents = list(/datum/reagent/drink/coffee = 2, /datum/reagent/drink/milk/cream = 1) + result = /datum/reagent/caffeine/coffee/cappuccino + required_reagents = list(/datum/reagent/caffeine/coffee = 2, /datum/reagent/drink/milk/cream = 1) result_amount = 3 /datum/chemical_reaction/acidspit @@ -2049,7 +2060,7 @@ /datum/chemical_reaction/devilskiss name = "Devils Kiss" result = /datum/reagent/ethanol/devilskiss - required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/ethanol/coffee/kahlua = 1, /datum/reagent/ethanol/rum = 1) + required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/ethanol/kahlua = 1, /datum/reagent/ethanol/rum = 1) result_amount = 3 /datum/chemical_reaction/hippiesdelight @@ -2103,7 +2114,7 @@ /datum/chemical_reaction/rewriter name = "Rewriter" result = /datum/reagent/drink/rewriter - required_reagents = list(/datum/reagent/drink/spacemountainwind = 1, /datum/reagent/drink/coffee = 1) + required_reagents = list(/datum/reagent/drink/spacemountainwind = 1, /datum/reagent/caffeine/coffee = 1) result_amount = 2 /datum/chemical_reaction/suidream @@ -2242,7 +2253,7 @@ /datum/chemical_reaction/espressomartini name = "Espresso Martini" result = /datum/reagent/ethanol/coffee/espressomartini - required_reagents = list(/datum/reagent/ethanol/black_russian = 3, /datum/reagent/drink/coffee = 1, /datum/reagent/sugar = 1) + required_reagents = list(/datum/reagent/ethanol/black_russian = 3, /datum/reagent/caffeine/coffee = 1, /datum/reagent/sugar = 1) result_amount = 5 /datum/chemical_reaction/shroombeer diff --git a/code/modules/reagents/dispenser/cartridge.dm b/code/modules/reagents/dispenser/cartridge.dm index c243539f535..777850de7f2 100644 --- a/code/modules/reagents/dispenser/cartridge.dm +++ b/code/modules/reagents/dispenser/cartridge.dm @@ -22,15 +22,18 @@ var/datum/reagent/R = spawn_reagent setLabel(initial(R.name)) -/obj/item/reagent_containers/chem_disp_cartridge/_examine_text(mob/user) +/obj/item/reagent_containers/chem_disp_cartridge/examine(mob/user, infix) . = ..() - . += "\nIt has a capacity of [volume] units." + + . += "It has a capacity of [volume] units." + if(reagents.total_volume <= 0) - . += "\nIt is empty." + . += "It is empty." else - . += "\nIt contains [reagents.total_volume] units of liquid." + . += "It contains [reagents.total_volume] units of liquid." + if(!is_open_container()) - . += "\nThe cap is sealed." + . += "The cap is sealed." /obj/item/reagent_containers/chem_disp_cartridge/verb/verb_set_label() set name = "Set Cartridge Label" diff --git a/code/modules/reagents/dispenser/cartridge_presets.dm b/code/modules/reagents/dispenser/cartridge_presets.dm index 857fcf9e4ee..1df664549ea 100644 --- a/code/modules/reagents/dispenser/cartridge_presets.dm +++ b/code/modules/reagents/dispenser/cartridge_presets.dm @@ -56,7 +56,7 @@ /obj/item/reagent_containers/chem_disp_cartridge/darkbeer spawn_reagent = /datum/reagent/ethanol/beer/dark /obj/item/reagent_containers/chem_disp_cartridge/kahlua - spawn_reagent = /datum/reagent/ethanol/coffee/kahlua + spawn_reagent = /datum/reagent/ethanol/kahlua /obj/item/reagent_containers/chem_disp_cartridge/whiskey spawn_reagent = /datum/reagent/ethanol/whiskey /obj/item/reagent_containers/chem_disp_cartridge/wine @@ -110,11 +110,11 @@ // Bar, coffee /obj/item/reagent_containers/chem_disp_cartridge/coffee - spawn_reagent = /datum/reagent/drink/coffee + spawn_reagent = /datum/reagent/caffeine/coffee /obj/item/reagent_containers/chem_disp_cartridge/cafe_latte - spawn_reagent = /datum/reagent/drink/coffee/cafe_latte + spawn_reagent = /datum/reagent/caffeine/coffee/cafe_latte /obj/item/reagent_containers/chem_disp_cartridge/soy_latte - spawn_reagent = /datum/reagent/drink/coffee/soy_latte + spawn_reagent = /datum/reagent/caffeine/coffee/soy_latte /obj/item/reagent_containers/chem_disp_cartridge/hot_coco spawn_reagent = /datum/reagent/drink/hot_coco /obj/item/reagent_containers/chem_disp_cartridge/milk diff --git a/code/modules/reagents/dispenser/dispenser2.dm b/code/modules/reagents/dispenser/dispenser2.dm index 8b4c7e43abf..f58b59e63e0 100644 --- a/code/modules/reagents/dispenser/dispenser2.dm +++ b/code/modules/reagents/dispenser/dispenser2.dm @@ -35,9 +35,9 @@ for(var/type in spawn_cartridges) add_cartridge(new type(src)) -/obj/machinery/chemical_dispenser/_examine_text(mob/user) +/obj/machinery/chemical_dispenser/examine(mob/user, infix) . = ..() - . += "\nIt has [cartridges.len] cartridges installed, and has space for [DISPENSER_MAX_CARTRIDGES - cartridges.len] more." + . += "It has [cartridges.len] cartridges installed, and has space for [DISPENSER_MAX_CARTRIDGES - cartridges.len] more." /obj/machinery/chemical_dispenser/proc/add_cartridge(obj/item/reagent_containers/chem_disp_cartridge/C, mob/user) if(!istype(C)) diff --git a/code/modules/reagents/dispenser/supply.dm b/code/modules/reagents/dispenser/supply.dm index 69e3855c718..2219260475a 100644 --- a/code/modules/reagents/dispenser/supply.dm +++ b/code/modules/reagents/dispenser/supply.dm @@ -84,7 +84,6 @@ contains = list( /obj/item/reagent_containers/chem_disp_cartridge/water, /obj/item/reagent_containers/chem_disp_cartridge/ice, - /obj/item/reagent_containers/chem_disp_cartridge/coffee, /obj/item/reagent_containers/chem_disp_cartridge/cream, /obj/item/reagent_containers/chem_disp_cartridge/tea, /obj/item/reagent_containers/chem_disp_cartridge/icetea, @@ -107,9 +106,6 @@ /decl/hierarchy/supply_pack/reagents/coffee_reagents name = "Coffee machine dispenser refill" contains = list( - /obj/item/reagent_containers/chem_disp_cartridge/coffee, - /obj/item/reagent_containers/chem_disp_cartridge/cafe_latte, - /obj/item/reagent_containers/chem_disp_cartridge/soy_latte, /obj/item/reagent_containers/chem_disp_cartridge/hot_coco, /obj/item/reagent_containers/chem_disp_cartridge/milk, /obj/item/reagent_containers/chem_disp_cartridge/cream, @@ -217,9 +213,6 @@ PACK(lemon_lime, /obj/item/reagent_containers/chem_disp_cartridge/lemon_lime, "R PACK(orange, /obj/item/reagent_containers/chem_disp_cartridge/orange, "Reagent refill - Orange Juice", "orange juice reagent cartridge crate", 15) PACK(lime, /obj/item/reagent_containers/chem_disp_cartridge/lime, "Reagent refill - Lime Juice", "lime juice reagent cartridge crate", 15) PACK(watermelon, /obj/item/reagent_containers/chem_disp_cartridge/watermelon, "Reagent refill - Watermelon Juice", "watermelon juice reagent cartridge crate", 15) -PACK(coffee, /obj/item/reagent_containers/chem_disp_cartridge/coffee, "Reagent refill - Coffee", "coffee reagent cartridge crate", 15) -PACK(cafe_latte, /obj/item/reagent_containers/chem_disp_cartridge/cafe_latte, "Reagent refill - Cafe Latte", "cafe latte reagent cartridge crate", 15) -PACK(soy_latte, /obj/item/reagent_containers/chem_disp_cartridge/soy_latte, "Reagent refill - Soy Latte", "soy latte reagent cartridge crate", 15) PACK(hot_coco, /obj/item/reagent_containers/chem_disp_cartridge/hot_coco, "Reagent refill - Hot Coco", "hot coco reagent cartridge crate", 15) PACK(milk, /obj/item/reagent_containers/chem_disp_cartridge/milk, "Reagent refill - Milk", "milk reagent cartridge crate", 15) PACK(cream, /obj/item/reagent_containers/chem_disp_cartridge/cream, "Reagent refill - Cream", "cream reagent cartridge crate", 15) diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 3a1573f90ea..c8d0e5e750a 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -209,7 +209,8 @@ else return ..() -/obj/item/reagent_containers/_examine_text(mob/user) +/obj/item/reagent_containers/examine(mob/user, infix) . = ..() + if(hasHUD(user, HUD_SCIENCE)) - . += "\nThe [src] contains: [reagents.get_reagents()]." + . += SPAN_NOTICE("The [src] contains: [reagents.get_reagents()].") diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 402e601d4f5..688f53e9662 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -62,9 +62,10 @@ else ..() -/obj/item/reagent_containers/ivbag/_examine_text(mob/user, distance = 2) +/obj/item/reagent_containers/ivbag/examine(mob/user, infix) . = ..() - if (vampire_marks) + + if(vampire_marks) . += SPAN_WARNING("There are teeth marks on it.") /obj/item/reagent_containers/attackby(obj/item/W as obj, mob/user as mob) diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 9c1809b8333..39802c216e4 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -44,7 +44,7 @@ reagent_volumes[T] = volume var/datum/reagent/R = T reagent_names += initial(R.name) - + set_next_think(world.time) /obj/item/reagent_containers/borghypo/think() //Every [recharge_time] seconds, recharge some reagents for the cyborg+ @@ -112,14 +112,14 @@ to_chat(usr, "Synthesizer is now producing '[initial(R.name)]'.") return TOPIC_REFRESH -/obj/item/reagent_containers/borghypo/_examine_text(mob/user) +/obj/item/reagent_containers/borghypo/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 2) return var/datum/reagent/R = reagent_ids[mode] - - . += "\nIt is currently producing [initial(R.name)] and has [reagent_volumes[reagent_ids[mode]]] out of [volume] units left." + . += SPAN_NOTICE("It is currently producing [initial(R.name)] and has [reagent_volumes[reagent_ids[mode]]] out of [volume] units left.") /obj/item/reagent_containers/borghypo/service name = "cyborg drink synthesizer" @@ -130,7 +130,7 @@ recharge_time = 3 volume = 60 possible_transfer_amounts = "5;10;20;30" - reagent_ids = list(/datum/reagent/ethanol/beer, /datum/reagent/ethanol/coffee/kahlua, /datum/reagent/ethanol/whiskey, /datum/reagent/ethanol/wine, /datum/reagent/ethanol/vodka, /datum/reagent/ethanol/gin, /datum/reagent/ethanol/rum, /datum/reagent/ethanol/tequilla, /datum/reagent/ethanol/vermouth, /datum/reagent/ethanol/cognac, /datum/reagent/ethanol/ale, /datum/reagent/ethanol/mead, /datum/reagent/water, /datum/reagent/sugar, /datum/reagent/drink/ice, /datum/reagent/drink/tea, /datum/reagent/drink/tea/icetea, /datum/reagent/drink/space_cola, /datum/reagent/drink/spacemountainwind, /datum/reagent/drink/dr_gibb, /datum/reagent/drink/space_up, /datum/reagent/drink/tonic, /datum/reagent/drink/sodawater, /datum/reagent/drink/lemon_lime, /datum/reagent/drink/juice/orange, /datum/reagent/drink/juice/lime, /datum/reagent/drink/juice/watermelon) + reagent_ids = list(/datum/reagent/ethanol/beer, /datum/reagent/ethanol/kahlua, /datum/reagent/ethanol/whiskey, /datum/reagent/ethanol/wine, /datum/reagent/ethanol/vodka, /datum/reagent/ethanol/gin, /datum/reagent/ethanol/rum, /datum/reagent/ethanol/tequilla, /datum/reagent/ethanol/vermouth, /datum/reagent/ethanol/cognac, /datum/reagent/ethanol/ale, /datum/reagent/ethanol/mead, /datum/reagent/water, /datum/reagent/sugar, /datum/reagent/drink/ice, /datum/reagent/drink/tea, /datum/reagent/drink/tea/icetea, /datum/reagent/drink/space_cola, /datum/reagent/drink/spacemountainwind, /datum/reagent/drink/dr_gibb, /datum/reagent/drink/space_up, /datum/reagent/drink/tonic, /datum/reagent/drink/sodawater, /datum/reagent/drink/lemon_lime, /datum/reagent/drink/juice/orange, /datum/reagent/drink/juice/lime, /datum/reagent/drink/juice/watermelon) /obj/item/reagent_containers/borghypo/service/attack(mob/M, mob/user) return diff --git a/code/modules/reagents/reagent_containers/food/_food.dm b/code/modules/reagents/reagent_containers/food/_food.dm index f409b91f8f9..2462bfeb146 100644 --- a/code/modules/reagents/reagent_containers/food/_food.dm +++ b/code/modules/reagents/reagent_containers/food/_food.dm @@ -123,7 +123,7 @@ admin_attack_log(user, M, "Fed the victim with [name] (Reagents: [contained])", "Was fed [src] (Reagents: [contained])", "used [src] (Reagents: [contained]) to feed") user.visible_message(SPAN("danger", "[user] feeds [M] [src].")) - if(reagents) //Handle ingestion of the reagent. + if(reagents && !(atom_flags & ATOM_FLAG_HOLOGRAM)) //Handle ingestion of the reagent. playsound(M.loc, SFX_EAT, rand(45, 60), FALSE) if(reagents.total_volume) if(reagents.total_volume > bitesize) @@ -150,12 +150,13 @@ return SPAN("notice", "\n\The [src] was bitten multiple times!") -/obj/item/reagent_containers/food/_examine_text(mob/user) +/obj/item/reagent_containers/food/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 1) return - . += get_bitecount() + . += get_bitecount() /obj/item/reagent_containers/food/throw_impact(atom/hit_atom, speed, thrown_with, target_zone) var/mob/living/carbon/human/H = hit_atom diff --git a/code/modules/reagents/reagent_containers/food/_lunch_helpers.dm b/code/modules/reagents/reagent_containers/food/_lunch_helpers.dm index 0fa70aeb432..de8815dcdaa 100644 --- a/code/modules/reagents/reagent_containers/food/_lunch_helpers.dm +++ b/code/modules/reagents/reagent_containers/food/_lunch_helpers.dm @@ -90,7 +90,7 @@ var/list/lunchables_ethanol_reagents_ = list( // Add reagent to [vacuum]-flask no need delete reagent from lunchables_ethanol_reagents_ it's works fine var/list/additional_reagents = list( /datum/reagent/drink/tea, - /datum/reagent/drink/coffee, + /datum/reagent/caffeine/coffee, /datum/reagent/drink/hot_coco, /datum/reagent/drink/milkshake ) diff --git a/code/modules/reagents/reagent_containers/food/meat.dm b/code/modules/reagents/reagent_containers/food/meat.dm index 5b5f69d3606..c5cdadecea5 100644 --- a/code/modules/reagents/reagent_containers/food/meat.dm +++ b/code/modules/reagents/reagent_containers/food/meat.dm @@ -2,6 +2,7 @@ name = "meat" desc = "A slab of meat." icon_state = "meat" + item_state = "meat" health = 180 filling_color = "#ff1c1c" center_of_mass = "x=16;y=14" @@ -52,6 +53,7 @@ name = "xenomeat" desc = "A slab of green meat. Smells like acid." icon_state = "xenomeat" + item_state = "xenomeat" filling_color = "#43de18" startswith = list( /datum/reagent/nutriment/protein = 9, diff --git a/code/modules/reagents/reagent_containers/food/sandwich.dm b/code/modules/reagents/reagent_containers/food/sandwich.dm index 93feba6cae4..b6d9c0f344e 100644 --- a/code/modules/reagents/reagent_containers/food/sandwich.dm +++ b/code/modules/reagents/reagent_containers/food/sandwich.dm @@ -78,10 +78,11 @@ return ..() -/obj/item/reagent_containers/food/csandwich/_examine_text(mob/user) +/obj/item/reagent_containers/food/csandwich/examine(mob/user, infix) . = ..() + var/obj/item/O = pick(contents) - . += "\nYou think you can see [O.name] in there." + . += SPAN_WARNING("You think you can see [O.name] in there.") /obj/item/reagent_containers/food/csandwich/attack(mob/M as mob, mob/user as mob, def_zone) diff --git a/code/modules/reagents/reagent_containers/food/unsorted.dm b/code/modules/reagents/reagent_containers/food/unsorted.dm index 3b92680ccec..15152dafc54 100644 --- a/code/modules/reagents/reagent_containers/food/unsorted.dm +++ b/code/modules/reagents/reagent_containers/food/unsorted.dm @@ -441,6 +441,10 @@ var/warm = FALSE var/list/heated_reagents = list(/datum/reagent/tricordrazine = 5) +/obj/item/reagent_containers/food/donkpocket/Initialize() + . = ..() + add_think_ctx("think_cool", CALLBACK(src, nameof(.proc/cooling)), 0) + /obj/item/reagent_containers/food/donkpocket/proc/heat() if(warm) return @@ -453,12 +457,13 @@ /obj/item/reagent_containers/food/donkpocket/proc/cooltime() if(warm) - addtimer(CALLBACK(src, nameof(.proc/cooling), warm), 4200) + set_next_think_ctx("think_cool", world.time + 7 MINUTES) return /obj/item/reagent_containers/food/donkpocket/proc/cooling(warm) if(!warm) return + warm = FALSE for(var/reagent in heated_reagents) reagents.del_reagent(reagent) @@ -471,13 +476,17 @@ heated_reagents = list(/datum/reagent/tricordrazine = 5, /datum/reagent/drink/doctor_delight = 5, /datum/reagent/hyperzine = 0.75, /datum/reagent/synaptizine = 0.25) var/has_been_heated = 0 +/obj/item/reagent_containers/food/donkpocket/sinpocket/Initialize() + . = ..() + add_think_ctx("think_heat", CALLBACK(src, nameof(.proc/heat)), 0) + /obj/item/reagent_containers/food/donkpocket/sinpocket/attack_self(mob/user) if(has_been_heated) to_chat(user, "The heating chemicals have already been spent.") return has_been_heated = 1 user.visible_message("[user] crushes \the [src] package.", "You crush \the [src] package and feel a comfortable heat build up.") - addtimer(CALLBACK(src, nameof(.proc/heat), user), 200) + set_next_think_ctx("think_heat", world.time + 20 SECONDS) /obj/item/reagent_containers/food/donkpocket/sinpocket/heat(user) if(user) @@ -2259,3 +2268,12 @@ /datum/reagent/nutriment/protein = 4, /datum/reagent/drink/juice/tomato = 5) bitesize = 4 + +/obj/item/reagent_containers/food/cream_puff + name = "Cream Puff" + desc = "Goes well before a workout. Goes even better after a workout. And most importantly, it's highkey perfect DURING a workout." + icon_state = "cream_puff" + filling_color = "#FFE6A3" + center_of_mass = "x=17;y=14" + startswith = list(/datum/reagent/nutriment/magical_custard = 6) + bitesize = 2 diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 21a79ba9b71..93228f90a24 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -137,12 +137,13 @@ else icon_state = "[base_state]0" -/obj/item/reagent_containers/hypospray/autoinjector/_examine_text(mob/user) +/obj/item/reagent_containers/hypospray/autoinjector/examine(mob/user, infix) . = ..() + if(reagents && reagents.reagent_list.len) - . += "\nIt is currently loaded." + . += SPAN_NOTICE("It is currently loaded.") else - . += "\nIt is spent." + . += SPAN_NOTICE("It is spent.") /obj/item/reagent_containers/hypospray/autoinjector/detox icon_state = "green1" diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index a0946da9529..40e9b05e634 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -116,11 +116,12 @@ spray_size = next_in_list(spray_size, spray_sizes) to_chat(user, "You adjusted the pressure nozzle. You'll now use [amount_per_transfer_from_this] units per spray.") -/obj/item/reagent_containers/spray/_examine_text(mob/user) +/obj/item/reagent_containers/spray/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 0 && loc == user) - . += "\n[round(external_container ? external_container.reagents.total_volume : reagents.total_volume)] unit\s left." - return + . += "[round(external_container ? external_container.reagents.total_volume : reagents.total_volume)] unit\s left." + /obj/item/reagent_containers/spray/verb/empty() @@ -168,10 +169,11 @@ step_delay = 1 startswith = list(/datum/reagent/capsaicin/condensed) -/obj/item/reagent_containers/spray/pepper/_examine_text(mob/user) +/obj/item/reagent_containers/spray/pepper/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 1) - . += "\nThe safety is [safety ? "on" : "off"]." + . += "The safety is [safety ? "on" : "off"]." /obj/item/reagent_containers/spray/pepper/attack_self(mob/user) safety = !safety diff --git a/code/modules/reagents/reagent_containers/vessel/_lid.dm b/code/modules/reagents/reagent_containers/vessel/_lid.dm index 14d54e0bc1b..9a2c4c4a2e5 100644 --- a/code/modules/reagents/reagent_containers/vessel/_lid.dm +++ b/code/modules/reagents/reagent_containers/vessel/_lid.dm @@ -29,10 +29,10 @@ switch(state) if(LID_NONE, LID_OPEN) owner.atom_flags |= ATOM_FLAG_OPEN_CONTAINER - owner.verbs |= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.add_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) if(LID_CLOSED, LID_SEALED) owner.atom_flags &= ~ATOM_FLAG_OPEN_CONTAINER - owner.verbs -= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.remove_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) /datum/vessel_lid/proc/toggle(mob/user) return @@ -59,14 +59,14 @@ playsound(owner.loc, 'sound/effects/pop.ogg', rand(20, 50), 1) if(user) to_chat(usr, SPAN("notice", "You take the [name] off \the [owner].")) - owner.verbs |= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.add_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE if(LID_OPEN) owner.atom_flags &= ~ATOM_FLAG_OPEN_CONTAINER state = LID_CLOSED if(user) to_chat(usr, SPAN("notice", "You put the [name] on \the [owner].")) - owner.verbs -= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.remove_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE return FALSE @@ -83,14 +83,14 @@ playsound(owner.loc, 'sound/effects/cork.ogg', rand(20, 50), 1) if(user) to_chat(usr, SPAN("notice", "You pull the [name] out of \the [owner].")) - owner.verbs |= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.add_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE if(LID_OPEN) owner.atom_flags &= ~ATOM_FLAG_OPEN_CONTAINER state = LID_CLOSED if(user) to_chat(usr, SPAN("notice", "You push the [name] into \the [owner].")) - owner.verbs -= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.remove_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE return FALSE @@ -106,7 +106,7 @@ to_chat(user, SPAN("notice", "You open \the [src] with an audible pop!")) owner.atom_flags |= ATOM_FLAG_OPEN_CONTAINER state = LID_NONE - owner.verbs |= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.add_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE return FALSE @@ -131,7 +131,7 @@ to_chat(user, SPAN("notice", "You open \the [src] with an audible pop!")) owner.atom_flags |= ATOM_FLAG_OPEN_CONTAINER state = LID_NONE - owner.verbs |= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.add_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE return FALSE @@ -151,7 +151,7 @@ to_chat(user, SPAN("notice", "You rip open \the [owner]!")) owner.atom_flags |= ATOM_FLAG_OPEN_CONTAINER state = LID_NONE - owner.verbs |= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.add_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE return FALSE @@ -172,21 +172,21 @@ to_chat(user, SPAN("notice", "You twist open \the [owner]'s [name], destroying the safety seal!")) owner.atom_flags |= ATOM_FLAG_OPEN_CONTAINER state = LID_OPEN - owner.verbs |= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.add_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE if(LID_CLOSED) owner.atom_flags |= ATOM_FLAG_OPEN_CONTAINER state = LID_OPEN if(user) to_chat(usr, SPAN("notice", "You take \the [name] off \the [owner].")) - owner.verbs |= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.add_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE if(LID_OPEN) owner.atom_flags &= ~ATOM_FLAG_OPEN_CONTAINER state = LID_CLOSED if(user) to_chat(usr, SPAN("notice", "You put \the [name] on \the [owner].")) - owner.verbs -= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.remove_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE return FALSE @@ -210,7 +210,7 @@ state = LID_OPEN if(user) to_chat(usr, SPAN("notice", "You open \the [owner].")) - owner.verbs |= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.add_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE if(LID_OPEN) playsound(owner.loc, 'sound/effects/flask_lid1.ogg', rand(10, 30), 1) @@ -218,7 +218,7 @@ state = LID_CLOSED if(user) to_chat(usr, SPAN("notice", "You close \the [owner].")) - owner.verbs -= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.remove_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE return FALSE @@ -243,7 +243,7 @@ to_chat(user, SPAN("notice", "You peel off \the [owner]'s [name]!")) owner.atom_flags |= ATOM_FLAG_OPEN_CONTAINER state = LID_NONE - owner.verbs |= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.add_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) return TRUE return FALSE @@ -270,7 +270,7 @@ state = LID_OPEN if(user) to_chat(usr, SPAN("notice", "You take \the [name] off \the [owner].")) - owner.verbs += /obj/item/reagent_containers/vessel/verb/drink_whole + owner.add_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) owner.amount_per_transfer_from_this = 10 owner.possible_transfer_amounts = "5;10;15;30" return TRUE @@ -279,7 +279,7 @@ state = LID_CLOSED if(user) to_chat(usr, SPAN("notice", "You put \the [name] on \the [owner].")) - owner.verbs -= /obj/item/reagent_containers/vessel/verb/drink_whole + owner.remove_verb(owner.loc, /obj/item/reagent_containers/vessel/verb/drink_whole) owner.amount_per_transfer_from_this = 3 owner.possible_transfer_amounts = "3;5" return TRUE diff --git a/code/modules/reagents/reagent_containers/vessel/_vessel.dm b/code/modules/reagents/reagent_containers/vessel/_vessel.dm index 7fcd3a956b7..27f7d996fd7 100644 --- a/code/modules/reagents/reagent_containers/vessel/_vessel.dm +++ b/code/modules/reagents/reagent_containers/vessel/_vessel.dm @@ -175,16 +175,19 @@ else SetName("[base_name] ([label_text])") -/obj/item/reagent_containers/vessel/_examine_text(mob/user) +/obj/item/reagent_containers/vessel/examine(mob/user, infix) . = ..() - . += "\nCan hold up to [volume] units." + + . += "Can hold up to [volume] units." + if(get_dist(src, user) > 2) return + if(precise_measurement) if(reagents?.reagent_list.len) - . += SPAN("notice", "\nIt contains [reagents.total_volume] units of liquid.") + . += SPAN_NOTICE("It contains [reagents.total_volume] units of liquid.") else - . += SPAN("notice", "\nIt is empty.") + . += SPAN_NOTICE("It is empty.") else var/ratio = 0 if(reagents?.total_volume) @@ -201,7 +204,7 @@ ratio_text = "almost full" else ratio_text = "full" - . += SPAN("notice", "\n\The [src] is [ratio_text]!") + . += SPAN_NOTICE("\The [src] is [ratio_text]!") if(lid) . += "\n[lid.get_examine_hint()]" diff --git a/code/modules/reagents/reagent_containers/vessel/bottle.dm b/code/modules/reagents/reagent_containers/vessel/bottle.dm index 7636ce2fe47..d0931f3cc32 100644 --- a/code/modules/reagents/reagent_containers/vessel/bottle.dm +++ b/code/modules/reagents/reagent_containers/vessel/bottle.dm @@ -243,3 +243,75 @@ bottle_addition = "pourer" bottle_desc = "There is a pourer in the bottle." icon_state = "pourer" + +/obj/item/reagent_containers/glass/coffee_cup + name = "coffee cup" + desc = "A heat-formed plastic coffee cup. Can theoretically be used for other hot drinks, if you're feeling adventurous." + icon = 'icons/obj/machines/coffeemaker.dmi' + icon_state = "coffee_cup_e" + base_icon_state = "coffee_cup" + possible_transfer_amounts = list(10) + volume = 30 + +/obj/item/reagent_containers/glass/coffee_cup/on_update_icon() + icon_state = reagents.total_volume ? base_icon_state : "[base_icon_state]_e" + +/* + * Syrup bottles, basically a unspillable cup that transfers reagents upon clicking on it with a cup + */ + +/obj/item/reagent_containers/vessel/bottle/syrup_bottle + name = "syrup bottle" + desc = "A bottle with a syrup pump to dispense the delicious substance directly into your coffee cup." + icon = 'icons/obj/reagent_containers/bottles.dmi' + icon_state = "syrup" + possible_transfer_amounts = list(5, 10) + amount_per_transfer_from_this = 5 + lid_type = null + /// Whether this syrup's pump is toggled or not + var/pump_cap = TRUE + brittle = FALSE + +/obj/item/reagent_containers/vessel/bottle/syrup_bottle/examine(mob/user, infix) + . = ..() + . += SPAN_NOTICE("It's pump is [pump_cap ? "on" : "removed"].") + . += SPAN_NOTICE("Alt-click to toggle the pump cap.") + +/obj/item/reagent_containers/vessel/bottle/syrup_bottle/attackby(obj/item/W, mob/user) + if(pump_cap && W.is_open_container()) + if(!reagents.total_volume) + show_splash_text(user, "bottle empty!") + + var/free_amount = W.reagents.get_free_space() + if(free_amount <= 0) + show_splash_text(user, "container is full!") + + var/transfer_amount = min(amount_per_transfer_from_this, free_amount) + reagents.trans_to(W, transfer_amount) + + CutOverlays() + flick("syrup_anim", src) + update_icon() + return + + return ..() + +/obj/item/reagent_containers/vessel/bottle/syrup_bottle/AltClick(mob/user) + pump_cap = !pump_cap + if(pump_cap) + show_splash_text(user, "put pump cap on") + icon_state = "syrup" + else + show_splash_text(user, "removed pump cap") + icon_state = "syrup_open" + +//types of syrups +/obj/item/reagent_containers/vessel/bottle/syrup_bottle/caramel + name = "bottle of caramel syrup" + desc = "A pump bottle containing caramalized sugar, also known as caramel. Do not lick." + startswith = list(/datum/reagent/sugar/caramel) + +/obj/item/reagent_containers/vessel/bottle/syrup_bottle/liqueur + name = "bottle of coffee liqueur syrup" + desc = "A pump bottle containing mexican coffee-flavoured liqueur syrup. In production since 1936, HONK." + startswith = list(/datum/reagent/ethanol/kahlua) diff --git a/code/modules/reagents/reagent_containers/vessel/condiment.dm b/code/modules/reagents/reagent_containers/vessel/condiment.dm index 31d3994bb72..a9fbe9b826d 100644 --- a/code/modules/reagents/reagent_containers/vessel/condiment.dm +++ b/code/modules/reagents/reagent_containers/vessel/condiment.dm @@ -52,6 +52,7 @@ if(standard_dispenser_refill(user, target)) return + if(standard_pour_into(user, target)) return @@ -132,6 +133,8 @@ if(/datum/reagent/sugar) name = "Sugar" desc = "Tastey space sugar!" + icon_state = "sugar" + item_state = "sugar" center_of_mass = "x=16;y=6" else name = "Misc Condiment Bottle" @@ -206,3 +209,140 @@ /obj/item/reagent_containers/vessel/condiment/flour/on_reagent_change() return + +/obj/item/reagent_containers/vessel/condiment/astrotame + name = "astrotame pack" + startswith = list(/datum/reagent/astrotame) + +/obj/item/reagent_containers/vessel/condiment/creamer + name = "creamer" + startswith = list(/datum/reagent/drink/milk/cream) + +//Condiment packs. Packed sauces and sugar. + +/obj/item/reagent_containers/vessel/condiment/pack + name = "condiment pack" + desc = "A small plastic pack with condiments to put on your food." + icon_state = "condi_empty" + volume = 10 + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list() + +/obj/item/reagent_containers/vessel/condiment/pack/on_reagent_change() + if(reagents.reagent_list.len > 0) + switch(reagents.get_master_reagent_type()) + if(/datum/reagent/nutriment/ketchup) + name = "Ketchup" + desc = "You feel more American already." + icon_state = "condi_ketchup" + icon_state = "condi_ketchup" + center_of_mass = "x=16;y=6" + if(/datum/reagent/nutriment/barbecue) + name = "Barbecue Sauce" + desc = "Barbecue sauce, it's labeled 'sweet and spicy'" + icon_state = "condi_bbq" + icon_state = "condi_bbq" + center_of_mass = "x=16;y=6" + if(/datum/reagent/capsaicin) + name = "Hotsauce" + desc = "You can almost TASTE the stomach ulcers now!" + icon_state = "condi_hotsauce" + item_state = "condi_hotsauce" + center_of_mass = "x=16;y=6" + if(/datum/reagent/enzyme) + name = "Universal Enzyme" + desc = "Used in cooking various dishes." + icon_state = "condi_greygoo" + item_state = "condi_greygoo" + center_of_mass = "x=16;y=6" + if(/datum/reagent/nutriment/soysauce) + name = "Soy Sauce" + desc = "A salty soy-based flavoring." + icon_state = "condi_soysauce" + item_state = "condi_soysauce" + center_of_mass = "x=16;y=6" + if(/datum/reagent/frostoil) + name = "Coldsauce" + desc = "Leaves the tongue numb in its passage." + icon_state = "condi_frostoil" + item_state = "condi_frostoil" + center_of_mass = "x=16;y=6" + if(/datum/reagent/sodiumchloride) + name = "Salt Shaker" + desc = "Salt. From space oceans, presumably." + icon_state = "condi_salt" + item_state = "condi_salt" + center_of_mass = "x=16;y=10" + if(/datum/reagent/blackpepper) + name = "Pepper Mill" + desc = "Often used to flavor food or make people sneeze." + icon_state = "condi_pepper" + item_state = "condi_pepper" + center_of_mass = "x=16;y=10" + if(/datum/reagent/nutriment/cornoil) + name = "Corn Oil" + desc = "A delicious oil used in cooking. Made from corn." + icon_state = "condi_cornoil" + item_state = "condi_cornoil" + center_of_mass = "x=16;y=6" + if(/datum/reagent/sugar) + name = "Sugar" + desc = "Tastey space sugar!" + icon_state = "condi_sugar" + item_state = "condi_sugar" + center_of_mass = "x=16;y=6" + if(/datum/reagent/astrotame) + name = "Astrotame pack" + desc = "The sweetness of a thousand sugars but none of the calories!" + icon_state = "condi_astrotame" + item_state = "condi_astrotame" + center_of_mass = "x=16;y=6" + if(/datum/reagent/drink/milk/cream) + name = "Creamer pack" + desc = "The sweetness of a thousand sugars but none of the calories!" + icon_state = "condi_creamer" + item_state = "condi_creamer" + center_of_mass = "x=16;y=6" + else + name = "Misc Condiment Pack" + if (reagents.reagent_list.len==1) + desc = "Looks like it is [reagents.get_master_reagent_name()], but you are not sure." + else + desc = "A mixture of various condiments. [reagents.get_master_reagent_name()] is one of them." + icon_state = "condi_mixed" + item_state = "condi_mixed" + center_of_mass = "x=16;y=6" + else + icon_state = "condi_empty" + name = "Condiment Pack" + desc = "An empty condiment pack." + center_of_mass = "x=16;y=6" + if(label_text) + name = addtext(name," ([label_text])") + +/obj/item/reagent_containers/vessel/condiment/pack/attack(mob/M, mob/user, def_zone) + return // Well you can't really eat it + +/obj/item/reagent_containers/vessel/condiment/pack/ketchup + name = "ketchup pack" + startswith = list(/datum/reagent/nutriment/ketchup) + +/obj/item/reagent_containers/vessel/condiment/pack/hotsauce + name = "hotsauce pack" + startswith = list(/datum/reagent/capsaicin) + +/obj/item/reagent_containers/vessel/condiment/pack/astrotame + name = "astrotame pack" + startswith = list(/datum/reagent/astrotame) + +/obj/item/reagent_containers/vessel/condiment/pack/bbqsauce + name = "bbq sauce pack" + startswith = list(/datum/reagent/nutriment/barbecue) + +/obj/item/reagent_containers/vessel/condiment/pack/sugar + name = "sugar pack" + startswith = list(/datum/reagent/sugar) + +/obj/item/reagent_containers/vessel/condiment/pack/creamer + name = "creamer" + startswith = list(/datum/reagent/drink/milk/cream) diff --git a/code/modules/reagents/reagent_containers/vessel/glass/_glass.dm b/code/modules/reagents/reagent_containers/vessel/glass/_glass.dm index e160170025f..d84d0697e86 100644 --- a/code/modules/reagents/reagent_containers/vessel/glass/_glass.dm +++ b/code/modules/reagents/reagent_containers/vessel/glass/_glass.dm @@ -29,22 +29,22 @@ drop_sound = SFX_DROP_GLASS pickup_sound = SFX_PICKUP_GLASS -/obj/item/reagent_containers/vessel/glass/_examine_text(mob/M) +/obj/item/reagent_containers/vessel/glass/examine(mob/user, infix) . = ..() for(var/I in extras) if(istype(I, /obj/item/glass_extra)) - . += "\nThere is \a [I] in \the [src]." + . += "There is \a [I] in \the [src]." else if(istype(I, /obj/item/reagent_containers/food/fruit_slice)) - . += "\nThere is \a [I] on the rim." + . += "There is \a [I] on the rim." else - . += "\nThere is \a [I] somewhere on the glass. Somehow." + . += "There is \a [I] somewhere on the glass. Somehow." if(has_ice()) - . += "\nThere is some ice floating in the drink." + . += "There is some ice floating in the drink." if(has_fizz()) - . += "\nIt is fizzing slightly." + . += "It is fizzing slightly." /obj/item/reagent_containers/vessel/glass/proc/has_ice() if(reagents?.reagent_list.len > 0) diff --git a/code/modules/reagents/reagent_containers/vessel/presets/bottle.dm b/code/modules/reagents/reagent_containers/vessel/presets/bottle.dm index eb1f08f0050..a528431d128 100644 --- a/code/modules/reagents/reagent_containers/vessel/presets/bottle.dm +++ b/code/modules/reagents/reagent_containers/vessel/presets/bottle.dm @@ -101,7 +101,7 @@ icon_state = "kahluabottle" item_state = "kahluabottle" center_of_mass = "x=17;y=3" - startswith = list(/datum/reagent/ethanol/coffee/kahlua) + startswith = list(/datum/reagent/ethanol/kahlua) rag_underlay = "rag_tall" /obj/item/reagent_containers/vessel/bottle/goldschlager diff --git a/code/modules/reagents/reagent_containers/vessel/unsorted.dm b/code/modules/reagents/reagent_containers/vessel/unsorted.dm index 08a7778d5af..850c7b97c13 100644 --- a/code/modules/reagents/reagent_containers/vessel/unsorted.dm +++ b/code/modules/reagents/reagent_containers/vessel/unsorted.dm @@ -14,6 +14,8 @@ obj_flags = OBJ_FLAG_CONDUCTIBLE lid_type = null +#define OXYLOS_PER_HEAD_DIP 10 + /obj/item/reagent_containers/vessel/bucket desc = "It's a bucket." name = "bucket" @@ -47,30 +49,70 @@ user.pick_or_drop(new /obj/item/bucket_sensor) qdel(src) return + else if(istype(D, /obj/item/pipe)) to_chat(user, "You put \the [D] into \the [src].") new /obj/item/hookah_construction(get_turf(src)) qdel(D) qdel_self() return - else if(istype(D, /obj/item/mop) || (atom_flags & ATOM_FLAG_OPEN_CONTAINER)) + + else if(istype(D, /obj/item/mop) && (atom_flags & ATOM_FLAG_OPEN_CONTAINER)) if(reagents.total_volume < 1) - to_chat(user, SPAN("warning", "\The [src] is empty!")) + show_splash_text(user, "no water!", SPAN("warning", "\The [src] is empty!")) else reagents.trans_to_obj(D, 5) - to_chat(user, SPAN("notice", "You wet \the [D] in \the [src].")) + show_splash_text(user, "you wet the mop!", SPAN("notice", "You wet \the [D] in \the [src].")) playsound(loc, 'sound/effects/slosh.ogg', 25, 1) return + + else if(istype(D, /obj/item/grab)) + var/obj/item/grab/G = D + + if(!isliving(G.affecting)) + return + + if(G.current_grab.state_name == NORM_PASSIVE) + to_chat(user, SPAN_NOTICE("You need a tighter grip!")) + return + + if(reagents.total_volume < 1) + show_splash_text(user, "no water!", SPAN("warning", "\The [src] is empty!")) + return + + user.visible_message(SPAN_DANGER("[user] starts to put [G.affecting.name]'s head into \the [src]!"), \ + SPAN_DANGER("You start to put [G.affecting.name]'s head into \the [src]!")) + playsound(get_turf(src), GET_SFX(SFX_FOOTSTEP_WATER), 100, TRUE) + reagents.trans_to(G.affecting, min(reagents.total_volume, 10)) + + if(!do_after(user, 3 SECONDS, src, TRUE)) + return + + if(QDELETED(src) || !G?.affecting) + return + + + user.visible_message(SPAN_DANGER("[user] finally raises [G.affecting.name]'s head out of \the [src]!"), \ + SPAN_DANGER("You raise [G.affecting.name]'s head out of \the [src]!")) + reagents.trans_to(G.affecting, min(reagents.total_volume, 5)) + playsound(get_turf(src), GET_SFX(SFX_FOOTSTEP_WATER), 100, TRUE) + if(!G?.affecting?.internal && !G.affecting.isSynthetic()) + G.affecting.adjustOxyLoss(OXYLOS_PER_HEAD_DIP) + G.affecting.emote("gasp") + return + else return ..() +#undef OXYLOS_PER_HEAD_DIP + /obj/item/reagent_containers/vessel/coffee name = "\improper Robust Coffee" desc = "Careful, the beverage you're about to enjoy is extremely hot." icon_state = "coffee" item_state = "coffee" center_of_mass = "x=15;y=10" - startswith = list(/datum/reagent/drink/coffee = 30) + startswith = list(/datum/reagent/caffeine/coffee = 30) lid_type = null unacidable = FALSE @@ -302,6 +344,23 @@ lid_type = null precise_measurement = TRUE +/obj/item/reagent_containers/vessel/coffeepot + name = "coffeepot" + desc = "A large pot for dispensing that ambrosia of corporate life known to mortals only as coffee. Contains 4 standard cups." + icon_state = "coffeepot" + volume = 120 + amount_per_transfer_from_this = 10 + center_of_mass = "x=16;y=9" + filling_states = "1;30;60;100" + lid_type = null + precise_measurement = TRUE + +/obj/item/reagent_containers/vessel/coffeepot/bluespace + name = "bluespace coffeepot" + desc = "The most advanced coffeepot the eggheads could cook up: sleek design; graduated lines; connection to a pocket dimension for coffee containment; yep, it's got it all. Contains 8 standard cups." + volume = 240 + icon_state = "coffeepot_bluespace" + /obj/item/reagent_containers/vessel/skullgoblet name = "skull goblet" desc = "Great for dancing on the barrows of your enemies." diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 53b7418fb98..3603190e59a 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -30,16 +30,18 @@ ..() -/obj/structure/reagent_dispensers/_examine_text(mob/user) +/obj/structure/reagent_dispensers/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 2) return - . += "\nIt contains:" + + . += SPAN_NOTICE("It contains:") if(reagents && reagents.reagent_list.len) for(var/datum/reagent/R in reagents.reagent_list) - . += "\n[R.volume] units of [R.name]" + . += SPAN_NOTICE("[R.volume] units of [R.name]") else - . += "\nNothing." + . += SPAN_NOTICE("Nothing.") /obj/structure/reagent_dispensers/verb/set_APTFT() //set amount_per_transfer_from_this set name = "Set transfer amount" @@ -117,14 +119,16 @@ QDEL_NULL(rig) return ..() -/obj/structure/reagent_dispensers/fueltank/_examine_text(mob/user) +/obj/structure/reagent_dispensers/fueltank/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 2) return + if(modded) - . += "\n" + SPAN("warning", "Fuel faucet is wrenched open, leaking the fuel!") + . += SPAN("warning", "Fuel faucet is wrenched open, leaking the fuel!") if(rig) - . += "\n" + SPAN("notice", "There is some kind of device rigged to the tank.") + . += SPAN("notice", "There is some kind of device rigged to the tank.") /obj/structure/reagent_dispensers/fueltank/attack_hand(mob/user) if(rig) diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index 9642c445f82..f731e9b1ecf 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -9,6 +9,7 @@ icon_state = "conpipe-s" anchored = 0 density = 0 + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION matter = list(MATERIAL_STEEL = 1850) level = 2 var/sortType = "" @@ -18,16 +19,22 @@ var/dpdir = 0 // directions as disposalpipe var/base_state = "pipe-s" -/obj/structure/disposalconstruct/Initialize() - update_verbs() +/obj/structure/disposalconstruct/Initialize(mapload, pipe_type, pipe_subtype) . = ..() + if(pipe_type) + ptype = pipe_type + + if(pipe_subtype) + subtype = pipe_subtype + + update_verbs() + + AddElement(/datum/element/simple_rotation) /obj/structure/disposalconstruct/proc/update_verbs() if(anchored) - verbs -= /obj/structure/disposalconstruct/proc/rotate verbs -= /obj/structure/disposalconstruct/proc/flip else - verbs += /obj/structure/disposalconstruct/proc/rotate verbs += /obj/structure/disposalconstruct/proc/flip // update iconstate and dpdir due to dir and type @@ -55,16 +62,19 @@ if(5) base_state = "pipe-t" dpdir = dir + set_density(TRUE) // disposal bin has only one dir, thus we don't need to care about setting it if(6) if(anchored) base_state = "disposal" else base_state = "condisposal" + set_density(TRUE) if(7) base_state = "outlet" dpdir = dir + set_density(TRUE) if(8) base_state = "intake" @@ -114,23 +124,6 @@ set_invisibility((intact && level==1) ? 101: 0) // hide if floor is intact update() - -// flip and rotate verbs -/obj/structure/disposalconstruct/proc/rotate() - set category = "Object" - set name = "Rotate Pipe" - set src in view(1) - - if(usr.incapacitated()) - return - - if(anchored) - to_chat(usr, "You must unfasten the pipe before rotating it.") - return - - set_dir(turn(dir, -90)) - update() - /obj/structure/disposalconstruct/proc/flip() set category = "Object" set name = "Flip Pipe" @@ -283,58 +276,57 @@ else if(isWelder(I)) if(anchored) - var/obj/item/weldingtool/W = I - if(W.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - to_chat(user, "Welding the [nicetype] in place.") - if(do_after(user, 20, src)) - if(!src || !W.isOn()) return - to_chat(user, "The [nicetype] has been welded in place!") - update() // TODO: Make this neat - if(ispipe) // Pipe - - var/pipetype = dpipetype() - var/obj/structure/disposalpipe/P = new pipetype(src.loc) - src.transfer_fingerprints_to(P) - P.base_icon_state = base_state - P.set_dir(dir) - P.dpdir = dpdir - P.update_icon() - - //Needs some special treatment ;) - if(ptype == 5) - var/obj/structure/disposalpipe/trunk/TrunkP = P - TrunkP.getlinked() - else if(ptype == 9 || ptype == 10) - var/obj/structure/disposalpipe/sortjunction/SortP = P - SortP.sortType = sortType - SortP.updatedir() - SortP.updatedesc() - SortP.updatename() - - else if(ptype==6) // Disposal bin - var/obj/machinery/disposal/P = new /obj/machinery/disposal(src.loc) - src.transfer_fingerprints_to(P) - - else if(ptype==7) // Disposal outlet - - var/obj/structure/disposaloutlet/P = new /obj/structure/disposaloutlet(src.loc) - src.transfer_fingerprints_to(P) - P.set_dir(dir) - var/obj/structure/disposalpipe/trunk/Trunk = CP - Trunk.linked = P - - else if(ptype==8) // Disposal outlet - - var/obj/machinery/disposal/deliveryChute/P = new /obj/machinery/disposal/deliveryChute(src.loc) - src.transfer_fingerprints_to(P) - P.set_dir(dir) - - qdel(src) - return - else - to_chat(user, "You need more welding fuel to complete this task.") + var/obj/item/weldingtool/WT = I + to_chat(user, "Welding the [nicetype] in place.") + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 1)) + return + + if(QDELETED(src) || !user) return + + to_chat(user, "The [nicetype] has been welded in place!") + update() // TODO: Make this neat + if(ispipe) // Pipe + var/pipetype = dpipetype() + var/obj/structure/disposalpipe/P = new pipetype(src.loc) + src.transfer_fingerprints_to(P) + P.base_icon_state = base_state + P.set_dir(dir) + P.dpdir = dpdir + P.update_icon() + + //Needs some special treatment ;) + if(ptype == 5) + var/obj/structure/disposalpipe/trunk/TrunkP = P + TrunkP.getlinked() + else if(ptype == 9 || ptype == 10) + var/obj/structure/disposalpipe/sortjunction/SortP = P + SortP.sortType = sortType + SortP.updatedir() + SortP.updatedesc() + SortP.updatename() + + else if(ptype==6) // Disposal bin + var/obj/machinery/disposal/P = new /obj/machinery/disposal(src.loc) + src.transfer_fingerprints_to(P) + + else if(ptype==7) // Disposal outlet + + var/obj/structure/disposaloutlet/P = new /obj/structure/disposaloutlet(src.loc) + src.transfer_fingerprints_to(P) + P.set_dir(dir) + var/obj/structure/disposalpipe/trunk/Trunk = CP + Trunk.linked = P + + else if(ptype==8) // Disposal outlet + + var/obj/machinery/disposal/deliveryChute/P = new /obj/machinery/disposal/deliveryChute(src.loc) + src.transfer_fingerprints_to(P) + P.set_dir(dir) + + qdel(src) + return + else to_chat(user, "You need to attach it to the plating first!") return diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index b92a1798ebb..c5ebed3745e 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -76,30 +76,25 @@ if(!panel_open) to_chat(user, "You cannot work on the delivery chute if it is not turned off with its power connection exposed.") - var/obj/item/weldingtool/W = I - if(W.remove_fuel(0, user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - to_chat(user, "You start slicing the floorweld off the disposal unit.") - - if(do_after(user, 20, src)) - if(!src || !W.isOn()) - return - - eject() // In case if something's got inside while we were slicin' and the GC got fucked due to lag - to_chat(user, "You sliced the floorweld off the disposal unit.") - var/obj/structure/disposalconstruct/C = new (src.loc) - transfer_fingerprints_to(C) - C.ptype = 6 // 6 = disposal unit - C.anchored = 1 - C.set_density(1) - C.update() - qdel_self() + var/obj/item/weldingtool/WT = I + to_chat(user, "You start slicing the floorweld off the disposal unit.") + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 1)) return - else - to_chat(user, "You need more welding fuel to complete this task.") + if(QDELETED(src) || !user) return + eject() // In case if something's got inside while we were slicin' and the GC got fucked due to lag + to_chat(user, "You sliced the floorweld off the disposal unit.") + var/obj/structure/disposalconstruct/C = new (src.loc) + transfer_fingerprints_to(C) + C.ptype = 6 // 6 = disposal unit + C.anchored = 1 + C.set_density(1) + C.update() + qdel_self() + return + if(istype(I, /obj/item/storage/bag/trash)) var/obj/item/storage/bag/trash/T = I to_chat(user, "You empty the bag.") @@ -858,24 +853,16 @@ return // prevent interaction with T-scanner revealed pipes src.add_fingerprint(user, 0, I) if(isWelder(I)) - var/obj/item/weldingtool/W = I - - if(W.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - // check if anything changed over 2 seconds - var/turf/uloc = user.loc - var/atom/wloc = W.loc - to_chat(user, "Slicing the disposal pipe.") - sleep(30) - if(!W.isOn()) return - if(user.loc == uloc && wloc == W.loc) - welded() - else - to_chat(user, "You must stay still while welding the pipe.") - else - to_chat(user, "You need more welding fuel to cut the pipe.") + var/obj/item/weldingtool/WT = I + to_chat(user, "Slicing the disposal pipe.") + if(!WT.use_tool(src, user, delay = 3 SECONDS, amount = 1)) return + if(QDELETED(src) || !user) + return + + welded() + // called when pipe is cut with welder proc/welded() @@ -1512,24 +1499,16 @@ return // prevent interaction with T-scanner revealed pipes src.add_fingerprint(user, 0, I) if(isWelder(I)) - var/obj/item/weldingtool/W = I + var/obj/item/weldingtool/WT = I + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 1)) + return - if(W.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - // check if anything changed over 2 seconds - var/turf/uloc = user.loc - var/atom/wloc = W.loc - to_chat(user, "Slicing the disposal pipe.") - sleep(30) - if(!W.isOn()) return - if(user.loc == uloc && wloc == W.loc) - welded() - else - to_chat(user, "You must stay still while welding the pipe.") - else - to_chat(user, "You need more welding fuel to cut the pipe.") + if(QDELETED(src) || !user) return + welded() + return + // would transfer to next pipe segment, but we are in a trunk // if not entering from disposal bin, // transfer to linked object (outlet or bin) @@ -1644,25 +1623,25 @@ to_chat(user, "You attach the screws around the power connection.") return else if(isWelder(I) && mode==1) - var/obj/item/weldingtool/W = I - if(W.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - to_chat(user, "You start slicing the floorweld off the disposal outlet.") - if(do_after(user,20, src)) - if(!src || !W.isOn()) return - to_chat(user, "You sliced the floorweld off the disposal outlet.") - var/obj/structure/disposalconstruct/C = new (src.loc) - src.transfer_fingerprints_to(C) - C.ptype = 7 // 7 = outlet - C.update() - C.anchored = 1 - C.set_density(1) - qdel(src) + var/obj/item/weldingtool/WT = I + to_chat(user, "You start slicing the floorweld off the disposal outlet.") + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 1)) return - else - to_chat(user, "You need more welding fuel to complete this task.") + + if(QDELETED(src) || !user) return + to_chat(user, "You sliced the floorweld off the disposal outlet.") + var/obj/structure/disposalconstruct/C = new (src.loc) + src.transfer_fingerprints_to(C) + C.ptype = 7 // 7 = outlet + C.update() + C.anchored = TRUE + C.set_density(TRUE) + qdel(src) + return + + // called when movable is expelled from a disposal pipe or outlet // by default does nothing, override for special behaviour diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 529538d6986..81708b5d9cb 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -112,14 +112,17 @@ I.pixel_y = -3 AddOverlays(I) -/obj/structure/bigDelivery/_examine_text(mob/user) +/obj/structure/bigDelivery/examine(mob/user, infix) . = ..() - if(get_dist(src, user) <= 4) - if(sortTag) - . += "\nIt is labeled \"[sortTag]\"" - if(examtext) - . += "\nIt has a note attached which reads, \"[examtext]\"" - return + + if(get_dist(src, user) > 4) + return + + if(sortTag) + . += SPAN_NOTICE("It is labeled \"[sortTag]\"") + if(examtext) + . += SPAN_NOTICE("It has a note attached which reads, \"[examtext]\"") + /obj/structure/bigDelivery/Destroy() if(wrapped) //sometimes items can disappear. For example, bombs. --rastaf0 @@ -256,14 +259,17 @@ I.pixel_y = 1 AddOverlays(I) -/obj/item/smallDelivery/_examine_text(mob/user) +/obj/item/smallDelivery/examine(mob/user, infix) . = ..() - if(get_dist(src, user) <= 4) - if(sortTag) - . += "\nIt is labeled \"[sortTag]\"" - if(examtext) - . += "\nIt has a note attached which reads, \"[examtext]\"" - return + + if(get_dist(src, user) > 4) + return + + if(sortTag) + . += SPAN_NOTICE("It is labeled \"[sortTag]\".") + if(examtext) + . += SPAN_NOTICE("It has a note attached which reads, \"[examtext]\".") + /obj/item/packageWrap name = "package wrapper" @@ -300,40 +306,59 @@ if (istype(target, /obj/item) && !(istype(target, /obj/item/storage) && !istype(target,/obj/item/storage/box))) var/obj/item/O = target - if (src.amount > 1) + if(amount) var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up! + if(!istype(O.loc, /turf)) if(user.client) user.client.screen -= O + P.wrapped = O P.w_class = O.w_class + + var/size_text = "ambiguous" var/i = round(O.w_class) - if(i in list(1,2,3,4,5)) + if(i in list(1, 2, 3, 4, 5)) P.icon_state = "deliverycrate[i]" switch(i) - if(1) P.SetName("tiny parcel") - if(3) P.SetName("normal-sized parcel") - if(4) P.SetName("large parcel") - if(5) P.SetName("huge parcel") + if(1) + size_text = "tiny" + if(2) + size_text = "small" + if(3) + size_text = "normal-sized" + if(4) + size_text = "large" + if(5) + size_text = "huge" if(i < 1) P.icon_state = "deliverycrate1" - P.SetName("tiny parcel") + size_text = "tiny parcel" if(i > 5) P.icon_state = "deliverycrate5" - P.SetName("huge parcel") + size_text = "huge parcel" + + P.SetName("[size_text] parcel") + P.desc = "A [size_text] wrapped package." + P.add_fingerprint(usr) O.add_fingerprint(usr) - src.add_fingerprint(usr) - src.amount -= 1 + add_fingerprint(usr) + + amount -= 1 + user.visible_message("\The [user] wraps \a [target] with \a [src].",\ SPAN("notice", "You wrap \the [target], leaving [amount] units of paper on \the [src]."),\ "You hear someone taping paper around a small object.") + if(istype(O, /obj/item/storage/box)) var/obj/item/storage/box/B = O B.close(user) P.SetName("box-shaped parcel") P.icon_state = "deliverybox" + O.forceMove(P) + else if (istype(target, /obj/structure/closet/crate)) var/obj/structure/closet/crate/O = target if (src.amount > 3 && !O.opened) @@ -368,11 +393,11 @@ return return -/obj/item/packageWrap/_examine_text(mob/user) +/obj/item/packageWrap/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 0) - . += "\nThere are [amount] units of package wrap left!" - return + . += SPAN_NOTICE("There are [amount] units of package wrap left!") /obj/item/device/destTagger name = "destination tagger" @@ -510,25 +535,24 @@ playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) to_chat(user, "You attach the screws around the power connection.") return - else if(isWelder(I) && c_mode==1) - var/obj/item/weldingtool/W = I - if(W.remove_fuel(1,user)) - to_chat(user, "You start slicing the floorweld off the delivery chute.") - if(do_after(user,20, src)) - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - if(!src || !W.isOn()) return - to_chat(user, "You sliced the floorweld off the delivery chute.") - var/obj/structure/disposalconstruct/C = new (src.loc) - C.ptype = 8 // 8 = Delivery chute - C.update() - C.anchored = 1 - C.set_density(1) - qdel(src) + else if(isWelder(I) && c_mode == 1) + var/obj/item/weldingtool/WT = I + to_chat(user, "You start slicing the floorweld off the delivery chute.") + if(!WT.use_tool(src, user, delay = 2 SECONDS, amount = 1)) return - else - to_chat(user, "You need more welding fuel to complete this task.") + + if(QDELETED(src) || !user) return + to_chat(user, "You sliced the floorweld off the delivery chute.") + var/obj/structure/disposalconstruct/C = new (src.loc) + C.ptype = 8 // 8 = Delivery chute + C.update() + C.anchored = TRUE + C.set_density(TRUE) + qdel(src) + return + /obj/machinery/disposal/deliveryChute/Destroy() if(trunk) trunk.linked = null diff --git a/code/modules/research/designs/circuitprinter/dc-machine_boards.dm b/code/modules/research/designs/circuitprinter/dc-machine_boards.dm index e66db978779..5d81a404dad 100644 --- a/code/modules/research/designs/circuitprinter/dc-machine_boards.dm +++ b/code/modules/research/designs/circuitprinter/dc-machine_boards.dm @@ -295,8 +295,22 @@ sort_string = "KCAAG" /datum/design/circuit/unloading_machine - name = "unloading_machine" + name = "unloading machine" id = "unloading_machine" req_tech = list(TECH_ENGINEERING = 1) build_path = /obj/item/circuitboard/unloading_machine sort_string = "KCAAH" + +/datum/design/circuit/coffeemaker + name = "coffeemaker" + id = "coffeemaker" + req_tech = list(TECH_ENGINEERING = 2, TECH_POWER = 1) + build_path = /obj/item/circuitboard/coffeemaker + sort_string = "KCAAI" + +/datum/design/circuit/sauna + name = "sauna" + id = "sauna" + req_tech = list(TECH_ENGINEERING = 2, TECH_POWER = 2) + build_path = /obj/item/circuitboard/sauna + sort_string = "KCAAJ" diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 9aeb84b19f7..16fe99164df 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -93,6 +93,7 @@ /obj/machinery/computer/rdconsole/Initialize() SyncRDevices() . = ..() + add_think_ctx("finish_deconstruct", CALLBACK(src, nameof(.proc/finish_deconstruct)), 0) /obj/machinery/computer/rdconsole/attackby(obj/item/D, mob/user) // Loading a disk into it. @@ -609,7 +610,7 @@ playsound(loc, 'sound/signals/processing22.ogg', 50) linked_destroy.busy = 1 flick("d_analyzer_process", linked_destroy) - addtimer(CALLBACK(src, nameof(.proc/finish_deconstruct), weakref(user)), 24) + set_next_think_ctx("finish_deconstruct", world.time + 2.4 SECONDS, weakref(user)) /obj/machinery/computer/rdconsole/proc/eject_from_destructor(mob/user) if(linked_destroy.busy) diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index a69a7e46d45..f4da3b56096 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -191,12 +191,6 @@ research holder datum. id = TECH_ILLEGAL level = 0 -/datum/tech/arcane - name = "Arcane" - desc = "Techniques not explained by the mainstream science, commonly regarded as 'occult'." - id = TECH_ARCANE - level = 0 - /obj/item/disk/tech_disk name = "fabricator data disk" desc = "A disk for storing fabricator learning data for backup." diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index 4b87646f392..0d64d19a42c 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -257,4 +257,4 @@ desc = "Instant research tool. For testing purposes only." icon = 'icons/obj/stock_parts.dmi' icon_state = "smes_coil" - origin_tech = list(TECH_MATERIAL = 19, TECH_ENGINEERING = 19, TECH_PLASMA = 19, TECH_POWER = 19, TECH_BLUESPACE = 19, TECH_BIO = 19, TECH_COMBAT = 19, TECH_MAGNET = 19, TECH_DATA = 19, TECH_ILLEGAL = 19, TECH_ARCANE = 19) + origin_tech = list(TECH_MATERIAL = 19, TECH_ENGINEERING = 19, TECH_PLASMA = 19, TECH_POWER = 19, TECH_BLUESPACE = 19, TECH_BIO = 19, TECH_COMBAT = 19, TECH_MAGNET = 19, TECH_DATA = 19, TECH_ILLEGAL = 19) diff --git a/code/modules/research/stock_parts_replacer.dm b/code/modules/research/stock_parts_replacer.dm index 33fff67d257..d1683f44d49 100644 --- a/code/modules/research/stock_parts_replacer.dm +++ b/code/modules/research/stock_parts_replacer.dm @@ -39,26 +39,28 @@ wasted = !length(contents) icon_state = "RMUK-[wasted ? "wasted" : "used"]" -/obj/item/storage/part_replacer/mini/_examine_text(mob/user) +/obj/item/storage/part_replacer/mini/examine(mob/user, infix) . = ..() + if(active) - . += "\nIt contains the following parts:" + . += "It contains the following parts:" for(var/atom/A in contents) - . += SPAN("notice", "\n [A.name]") + . += SPAN("notice", " [A.name]") else - . += "\nThis one's already been used." + . += "This one's already been used." if(!wasted) - . += "\nIt seems to still contain some spare parts that can be salvaged." + . += "It seems to still contain some spare parts that can be salvaged." /obj/item/storage/part_replacer/mini/attackby(obj/item/I, mob/user) if(isWelder(I)) var/obj/item/weldingtool/WT = I - if(WT.remove_fuel(0, user)) - salvage() - new /obj/item/stack/material/steel(get_turf(src)) - playsound(loc, 'sound/items/Welder.ogg', 100, 1) - qdel(src) - return + if(!WT.use_tool(src, user, amount = 1)) + return FALSE + + salvage() + new /obj/item/stack/material/steel(get_turf(src)) + qdel(src) + return if(isCrowbar(I)) if(wasted) diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm index 7ac2d513b6f..1776f8dc1a7 100644 --- a/code/modules/security levels/keycard authentication.dm +++ b/code/modules/security levels/keycard authentication.dm @@ -6,7 +6,6 @@ var/active = 0 //This gets set to 1 on all devices except the one where the initial request was made. var/event = "" var/event_additional_info = "" - var/ert_timer var/screen = 1 var/confirmed = 0 //This variable is set by the device that confirms the request. var/confirm_delay = 3 SECONDS @@ -21,6 +20,12 @@ idle_power_usage = 2 WATTS active_power_usage = 6 WATTS power_channel = STATIC_ENVIRON + /// Whether we have active thinking to call ert or not + var/ert_context_thinking = FALSE + +/obj/machinery/keycard_auth/Initialize() + . = ..() + add_think_ctx("call_ert_context", CALLBACK(src, nameof(.proc/call_ert)), 0) /obj/machinery/keycard_auth/attack_ai(mob/user) to_chat(user, SPAN_WARNING("A firewall prevents you from interfacing with this device!")) @@ -110,17 +115,12 @@ . = TOPIC_REFRESH if(is_admin(user) && href_list["approve_ert"]) - if(!ert_timer) - // I'm not sure I got the sentence right, please help. - to_chat(user, SPAN_NOTICE("There's no ERT timer, notify players to re-create the request.")) - deltimer(ert_timer) + set_next_think_ctx("call_ert_context", 0) + ert_context_thinking = FALSE call_ert() if(is_admin(user) && href_list["prohibit_ert"]) - if(!ert_timer) - // I'm not sure I got the sentence right, please help. - to_chat(user, SPAN_NOTICE("There's no ERT timer, the ERT may have already been called, next time hurry up with your decision!")) - deltimer(ert_timer) - ert_timer = null + set_next_think_ctx("call_ert_context", 0) + ert_context_thinking = FALSE if(!((stat & BROKEN) || (!interact_offline && (stat & NOPOWER)))) visible_message(SPAN_DANGER("\The [src] blinks red and displays the message: The request was rejected, contact the corporate supervisors for the reason of the rejection."), range=2) @@ -147,9 +147,9 @@ KA.receive_request(src, initial_card) if(confirm_delay) - addtimer(CALLBACK(src, nameof(.proc/broadcast_check)), confirm_delay) + set_next_think(world.time + confirm_delay) -/obj/machinery/keycard_auth/proc/broadcast_check() +/obj/machinery/keycard_auth/think() if(confirmed) confirmed = 0 trigger_event(event) @@ -189,9 +189,10 @@ if("Emergency Response Team") if(ert_call_failure()) return - if(!ert_timer) + if(!ert_context_thinking) visible_message(SPAN_NOTICE("\The [src] displays the message: The request has been created and the process of transferring the request to the emergency response service has been started, the approximate waiting time for processing is 2 minutes."), range=2) - ert_timer = addtimer(CALLBACK(src, nameof(.proc/call_ert)), 2 MINUTES, TIMER_STOPPABLE) + set_next_think_ctx("call_ert_context", world.time + 2 MINUTES) + ert_context_thinking = TRUE message_admins("An ERT call request was created with the reason:\n[event_additional_info].\nThis call will automatically be approved after 2 minutes. Approve. Reject.") if("Grant Nuclear Authorization Code") var/obj/machinery/nuclearbomb/nuke = locate(/obj/machinery/nuclearbomb/station) in world @@ -212,9 +213,10 @@ return FALSE /obj/machinery/keycard_auth/proc/call_ert() - ert_timer = null + ert_context_thinking = FALSE if(ert_call_failure()) return + visible_message(SPAN_NOTICE("\The [src] displays the message: The request has been approved, the response team will be on facility shortly."), range=2) trigger_armed_response_team(TRUE, event_additional_info) feedback_inc("alert_keycard_auth_ert",1) diff --git a/code/modules/shield_generators/floor_diffuser.dm b/code/modules/shield_generators/floor_diffuser.dm index 0d8d0891b1f..f050824e70f 100644 --- a/code/modules/shield_generators/floor_diffuser.dm +++ b/code/modules/shield_generators/floor_diffuser.dm @@ -27,7 +27,7 @@ for(var/obj/effect/shield/S in shielded_tile) qdel(S) -/obj/machinery/shield_diffuser/attackby(obj/item/O as obj, mob/user as mob) +/obj/machinery/shield_diffuser/attackby(obj/item/O, mob/user) if(default_deconstruction_screwdriver(user, O)) return if(default_deconstruction_crowbar(user, O)) @@ -61,8 +61,10 @@ alarm = round(max(alarm, duration)) update_icon() -/obj/machinery/shield_diffuser/_examine_text(mob/user) +/obj/machinery/shield_diffuser/examine(mob/user, infix) . = ..() - . += "\nIt is [enabled ? "enabled" : "disabled"]." + + . += "It is [enabled ? "enabled" : "disabled"]." + if(alarm) - . += "\nA red LED labeled \"Proximity Alarm\" is blinking on the control panel." + . += "A red LED labeled \"Proximity Alarm\" is blinking on the control panel." diff --git a/code/modules/shield_generators/handheld_diffuser.dm b/code/modules/shield_generators/handheld_diffuser.dm index 308ef7a6204..b454dca0d99 100644 --- a/code/modules/shield_generators/handheld_diffuser.dm +++ b/code/modules/shield_generators/handheld_diffuser.dm @@ -44,7 +44,8 @@ set_next_think(0) to_chat(usr, "You turn \the [src] [enabled ? "on" : "off"].") -/obj/item/shield_diffuser/_examine_text(mob/user) +/obj/item/shield_diffuser/examine(mob/user, infix) . = ..() - . += "\nThe charge meter reads [cell ? CELL_PERCENT(cell) : 0]%" - . += "\nIt is [enabled ? "enabled" : "disabled"]." + + . += "The charge meter reads [cell ? CELL_PERCENT(cell) : 0]%" + . += "It is [enabled ? "enabled" : "disabled"]." diff --git a/code/modules/speech_bubble/speech_bubble.dm b/code/modules/speech_bubble/speech_bubble.dm index e06aa28a0c3..8fd6eb8192c 100644 --- a/code/modules/speech_bubble/speech_bubble.dm +++ b/code/modules/speech_bubble/speech_bubble.dm @@ -1,20 +1,28 @@ -/proc/fade_out_speech_bubble(image/I, list/remove_from) - animate(I, alpha = 0, time = 0.5 SECONDS, easing = EASE_IN) - addtimer(CALLBACK(GLOBAL_PROC, /proc/remove_image_from_clients, I, remove_from), 0.5 SECONDS) +/datum/flick_overlay/speech_bubble/New(image/image, list/client/show_to, time_to_live) + . = ..() + add_think_ctx("fade_bubble", CALLBACK(src, nameof(.proc/fade_bubble)), world.time + time_to_live - 0.5 SECONDS) -/proc/animate_speech_bubble(image/I, list/show_to, duration) - add_image_to_clients(I, show_to) - addtimer(CALLBACK(GLOBAL_PROC, /proc/fade_out_speech_bubble, I, show_to), duration - 0.5 SECONDS) +/datum/flick_overlay/speech_bubble/proc/fade_bubble() + animate(image, alpha = 0, time = 0.5 SECONDS, easing = EASE_IN) + +/datum/flick_overlay/Destroy() + remove_image_from_clients(image, seeing_clients) + QDEL_NULL(image) + seeing_clients.Cut() + return ..() + +/mob/living/proc/animate_speech_bubble(image/I, list/show_to, duration) + new /datum/flick_overlay/speech_bubble(I, show_to, duration) /// Returns the speech bubble image with an apropriate layer and plane set. -/proc/create_speech_bubble_image(bubble_icon, bubble_icon_state, atom/source) +/mob/living/proc/create_speech_bubble_image(bubble_icon, bubble_icon_state, atom/source) var/image/speech_bubble = image('icons/mob/effects/talk.dmi', source, "[bubble_icon][bubble_icon_state]", FLOAT_LAYER) speech_bubble.appearance_flags |= APPEARANCE_UI_IGNORE_ALPHA | KEEP_APART | TILE_BOUND return speech_bubble -/proc/show_bubble_to_clients(bubble_icon, bubble_icon_state, atom/source, list/show_to) +/mob/living/proc/show_bubble_to_clients(bubble_icon, bubble_icon_state, atom/source, list/show_to) var/image/speech_bubble = create_speech_bubble_image(bubble_icon, bubble_icon_state, source) - INVOKE_ASYNC(GLOBAL_PROC, /proc/animate_speech_bubble, speech_bubble, show_to, 3 SECONDS) + INVOKE_ASYNC(src, nameof(.proc/animate_speech_bubble), speech_bubble, show_to, 3 SECONDS) -/proc/show_bubble_to_client(bubble_icon, bubble_icon_state, atom/source, client/show_to) +/mob/living/proc/show_bubble_to_client(bubble_icon, bubble_icon_state, atom/source, client/show_to) show_bubble_to_clients(bubble_icon, bubble_icon_state, source, list(show_to)) diff --git a/code/modules/spells/aoe_turf/conjure/druidic_spells.dm b/code/modules/spells/aoe_turf/conjure/druidic_spells.dm index 8a6292f4446..868e0f1758f 100644 --- a/code/modules/spells/aoe_turf/conjure/druidic_spells.dm +++ b/code/modules/spells/aoe_turf/conjure/druidic_spells.dm @@ -69,7 +69,6 @@ /datum/spell/aoe_turf/conjure/summon/bear/New() . = ..() - register_signal(src, SIGNAL_MOB_SPELL_LEARNED, nameof(.proc/spell_learned)) /datum/spell/aoe_turf/conjure/summon/bear/before_cast() ..() @@ -109,7 +108,7 @@ ) return "Your bear is now worshiped as a god amongst bears." -/datum/spell/aoe_turf/conjure/summon/bear/proc/spell_learned(mob/user) +/datum/spell/aoe_turf/conjure/summon/bear/spell_learned(mob/user) if(!user || !user.mind) return @@ -127,7 +126,3 @@ Simply pronounce your bear name when issuing a command. Remember to address your bear by name or else it will not heed the command.
"} user.mind.store_memory(bear_guide) - -/datum/spell/aoe_turf/conjure/summon/bear/Destroy() - unregister_signal(src, SIGNAL_MOB_SPELL_LEARNED) - return ..() diff --git a/code/modules/spells/artifacts/immovable_wand.dm b/code/modules/spells/artifacts/immovable_wand.dm new file mode 100644 index 00000000000..b77a03045db --- /dev/null +++ b/code/modules/spells/artifacts/immovable_wand.dm @@ -0,0 +1,135 @@ + +#define IW_WAND "wand" +#define IW_RACKET "racket" +#define IW_BAT "bat" +#define IW_BALL "basketball" + +/obj/item/immovable_wand + name = "immovable wand" + desc = "It looks like a regular metal rod, but appears to be insanely heavy." + icon = 'icons/obj/wizard.dmi' + icon_state = "immovable_wand" + w_class = ITEM_SIZE_SMALL + anchored = TRUE + throw_range = 5 + force = 10.0 + throwforce = 10.0 + mod_weight = 1.5 + mod_reach = 0.5 + mod_handy = 1.5 + unacidable = TRUE + + var/current_shape = IW_WAND + + var/static/radial_wand = image(icon = 'icons/obj/wizard.dmi', icon_state = "immovable_wand") + var/static/radial_racket = image(icon = 'icons/obj/wizard.dmi', icon_state = "immovable_racket") + var/static/radial_bat = image(icon = 'icons/obj/wizard.dmi', icon_state = "immovable_bat") + var/static/radial_ball = image(icon = 'icons/obj/wizard.dmi', icon_state = "immovable_ball") + var/static/list/radial_options = list( + IW_WAND = radial_wand, + IW_RACKET = radial_racket, + IW_BAT = radial_bat, + IW_BALL = radial_ball + ) + +/obj/item/immovable_wand/dropped(mob/user) + ..() + set_next_think(world.time + 1 SECOND) + +/obj/item/immovable_wand/attack_hand(mob/user) + if(ishuman(user)) + if((MUTATION_HULK in user.mutations) || (MUTATION_STRONG in user.mutations)) + anchored = FALSE + ..() + else + to_chat(user, SPAN("warning", "\The [src] appears to be glued to the time-space itself!")) + return + + ..() + +/obj/item/immovable_wand/attack_self(mob/user) + if((MUTATION_HULK in user.mutations) || (MUTATION_STRONG in user.mutations)) + var/choice = show_radial_menu(user, user, radial_options, require_near = TRUE) + if(choice) + user.visible_message("[user] bends and reshapes \the [src] with their bare hands!") + reshape(choice) + return + + return ..() + +/obj/item/immovable_wand/throw_impact(hit_atom, speed) + . = ..() + var/pwn_chance = current_shape == IW_BALL ? 100 : 50 + if(isliving(hit_atom) && prob(pwn_chance)) + var/mob/living/L = hit_atom + playsound(L.loc, 'sound/effects/bang.ogg', 50, 1, -1) + L.Weaken(10) + +// So we can throw it +/obj/item/immovable_wand/think() + if(isturf(loc)) + anchored = TRUE + +/obj/item/immovable_wand/proc/reshape(new_shape) + SetName("immovable [new_shape]") + current_shape = new_shape + + switch(new_shape) + if(IW_WAND) + throw_range = 5 + force = 10.0 + throwforce = 10.0 + mod_weight = 1.5 + mod_reach = 0.5 + mod_handy = 1.5 + mod_shield = 1.0 + block_tier = BLOCK_TIER_MELEE + w_class = ITEM_SIZE_SMALL + desc = "It looks like a regular metal rod, but appears to be insanely heavy." + icon_state = "immovable_wand" + if(IW_RACKET) + throw_range = 5 + force = 10.0 + throwforce = 10.0 + mod_weight = 1.5 + mod_reach = 0.8 + mod_handy = 1.5 + mod_shield = 3.0 + block_tier = BLOCK_TIER_ADVANCED + w_class = ITEM_SIZE_LARGE + desc = "It looks like a tennis racket made of solid metal. It appears to be insanely heavy." + icon_state = "immovable_racket" + if(IW_BAT) + throw_range = 5 + force = 20.0 + throwforce = 10.0 + mod_weight = 2.0 + mod_reach = 1.0 + mod_handy = 1.5 + mod_shield = 1.5 + block_tier = BLOCK_TIER_MELEE + w_class = ITEM_SIZE_LARGE + desc = "It looks like a baseball bat made of some sort of metal. It appears to be insanely heavy." + icon_state = "immovable_bat" + if(IW_BALL) + throw_range = 20 + force = 10.0 + throwforce = 25.0 + mod_weight = 1.5 + mod_reach = 0.5 + mod_handy = 0.5 + mod_shield = 1.0 + block_tier = BLOCK_TIER_MELEE + w_class = ITEM_SIZE_LARGE + desc = "It looks like a basketball made entirely of metal. It appears to be insanely heavy." + icon_state = "immovable_ball" + + update_blood_overlay() + update_held_icon() + return + + +#undef IW_WAND +#undef IW_RACKET +#undef IW_BAT +#undef IW_BALL diff --git a/code/modules/spells/artifacts/plague_bell.dm b/code/modules/spells/artifacts/plague_bell.dm index a7b1e65471a..4e029d34b35 100644 --- a/code/modules/spells/artifacts/plague_bell.dm +++ b/code/modules/spells/artifacts/plague_bell.dm @@ -114,8 +114,9 @@ set_next_think(world.time + 1 SECONDS) -/obj/item/staff/plague_bell/_examine_text(mob/user) +/obj/item/staff/plague_bell/examine(mob/user, infix) . = ..() + if(user != master) return diff --git a/code/modules/spells/classes/musclemancer.dm b/code/modules/spells/classes/musclemancer.dm new file mode 100644 index 00000000000..0277f47661a --- /dev/null +++ b/code/modules/spells/classes/musclemancer.dm @@ -0,0 +1,44 @@ + +/datum/wizard_class/musclemancer + name = "Musclemancer" + feedback_tag = "MM" + description = "Your proficiency in the art of spellcasting is comparable to that of a cream puff's. But you've spent years hitting the gym." + icon_state = "muscle_tome" + points = 0 + can_make_contracts = FALSE + + spells = list() // Yes + artifacts = list() // For real + +/datum/wizard_class/musclemancer/on_class_chosen(mob/user, obj/item/spellbook) + to_chat(user, SPAN("notice", "Suddenly, you realize you've never ever gotten your own spell book. What you've been holding is just a cream puff.")) + + user.add_mutation(MUTATION_STRONG) + user.update_mutations() + + var/datum/spell/CP = new /datum/spell/targeted/equip_item/cream_puff + user.add_spell(CP) + + var/datum/spell/HS = new /datum/spell/healthy_sleep + user.add_spell(HS) + + var/datum/spell/HM = new /datum/spell/toggled/hamstring_magic + user.add_spell(HM) + + var/datum/spell/DM = new /datum/spell/hand/deltoid_magic + user.add_spell(DM) + + var/datum/spell/BM = new /datum/spell/hand/biceps_magic + user.add_spell(BM) + + var/datum/spell/GM = new /datum/spell/gastrocnemius_magic + user.add_spell(GM) + + if(spellbook) + user.drop(spellbook) + qdel(spellbook) + var/decl/hierarchy/outfit/O = outfit_by_type(/decl/hierarchy/outfit/musclemancer) + O.equip(user) + var/obj/item/reagent_containers/food/cream_puff/CR = new /obj/item/reagent_containers/food/cream_puff(get_turf(user)) + user.pick_or_drop(CR) + return diff --git a/code/modules/spells/classes/wizard_class.dm b/code/modules/spells/classes/wizard_class.dm index 603990a272c..290b3dd3ec8 100644 --- a/code/modules/spells/classes/wizard_class.dm +++ b/code/modules/spells/classes/wizard_class.dm @@ -17,6 +17,10 @@ var/list/spells = list() var/list/artifacts = list() +/datum/wizard_class/proc/on_class_chosen(mob/user, obj/item/spellbook) + to_chat(user, SPAN("notice", "You are now \a [name]!")) + return + /datum/wizard_class/proc/get_spell_data(datum/spell/path) for(var/S in spells) if(S["path"] == path) diff --git a/code/modules/spells/general/gastrocnemius_magic.dm b/code/modules/spells/general/gastrocnemius_magic.dm new file mode 100644 index 00000000000..3f67167239b --- /dev/null +++ b/code/modules/spells/general/gastrocnemius_magic.dm @@ -0,0 +1,41 @@ + +/datum/spell/gastrocnemius_magic + name = "Gastrocnemius Magic" + desc = "Stomp the floor with everything your calves have to offer." + spell_flags = 0 + charge_max = 15 SECONDS + need_target = FALSE + + invocation = "GASTROCNEMIUS! SOLEUS!" + invocation_type = SPI_SHOUT + + range = 0 + icon_state = "wiz_gastrocnemius" + +/datum/spell/gastrocnemius_magic/cast(list/targets, mob/living/carbon/user) + user.remove_nutrition(100) + user.visible_message(SPAN("danger", "[user] stomps the floor!")) + + for(var/mob/M in GLOB.player_list) + if(M.client && !M.stat && M.z == user.z) + shake_camera(M, 5, 1) + + var/list/victims = list() + for(var/mob/living/L in view(5, user)) + if(L == user) + continue + L.Weaken(6) + L.Stun(3) + L.SpinAnimation(speed = 4, loops = 1) + victims += L + if(L.client && !L.stat) + to_chat(L, SPAN("danger", "You are sent flying!")) + if(ishuman(L)) + var/mob/living/carbon/human/H = L + H.damage_poise(25) + + var/turf/T = get_turf(user) + T.ex_act(rand(2, 3)) + playsound(T, 'sound/effects/bang.ogg', rand(80, 100), 1, -1) + + admin_attacker_log_many_victims(user, victims, "used Gastrocnemius Magic to stun", "was stunned by [key_name(user)] using Gastrocnemius Magic", "used Gastrocnemius Magic to stun") diff --git a/code/modules/spells/general/healthy_sleep.dm b/code/modules/spells/general/healthy_sleep.dm new file mode 100644 index 00000000000..3c39ad79755 --- /dev/null +++ b/code/modules/spells/general/healthy_sleep.dm @@ -0,0 +1,56 @@ + +/datum/spell/healthy_sleep + name = "Take a nap" + desc = "Healthy sleep is a basic need that is closely tied to health and wellbeing." + spell_flags = INCLUDEUSER + charge_max = 120 SECONDS + duration = 30 SECONDS + need_target = FALSE + + invocation = "lies down and falls asleep immediately." + invocation_type = SPI_EMOTE + + range = 0 + icon_state = "wiz_sleep" + +/datum/spell/healthy_sleep/New() + ..() + add_think_ctx("wakethefuckup", CALLBACK(src, nameof(.proc/wakethefuckup)), 0) + +/datum/spell/healthy_sleep/cast(list/targets, mob/user) + user.sleeping = max(30, user.sleeping) + set_next_think_ctx("wakethefuckup", world.time + duration) + +/datum/spell/healthy_sleep/proc/wakethefuckup() + if(QDELETED(holder)) + return + + if(!ishuman(holder)) + return + + var/mob/living/carbon/human/H = holder + + if(H.is_ic_dead()) + return + + H.restore_blood() + H.adjustToxLoss(H.getToxLoss() * -1) + H.adjustOxyLoss(H.getOxyLoss() * -1) + H.adjustBrainLoss(H.getBrainLoss() * -1) + H.heal_overall_damage(H.getBruteLoss(), H.getFireLoss()) + + var/list/organs = H.get_damaged_organs(1, 1) + for(var/A in organs) + var/obj/item/organ/external/E = A + if(E.status & ORGAN_ARTERY_CUT) + E.status &= ~ORGAN_ARTERY_CUT + if(E.status & ORGAN_TENDON_CUT) + E.status &= ~ORGAN_TENDON_CUT + if(E.status & ORGAN_BROKEN) + E.mend_fracture() + E.stage = 0 + + H.updatehealth() + H.sleeping = 0 + to_chat(H, SPAN("notice", "You've had a good rest. Now you absolutely need to munch on something.")) + H.remove_nutrition(H.nutrition) diff --git a/code/modules/spells/hand/biceps_magic.dm b/code/modules/spells/hand/biceps_magic.dm new file mode 100644 index 00000000000..e4095c21a6a --- /dev/null +++ b/code/modules/spells/hand/biceps_magic.dm @@ -0,0 +1,31 @@ + +/datum/spell/hand/biceps_magic + name = "Biceps Magic" + desc = "Use biceps to strangle someone unconscious quickly." + + feedback = "BM" + range = 1 + spell_flags = 0 + + invocation = "BICEPS BRACHII!" + invocation_type = SPI_SHOUT + spell_delay = 5 SECONDS + charge_max = 5 SECONDS + hand_name_override = "sheer muscular power" + + icon_state = "wiz_biceps" + compatible_targets = list(/mob/living/carbon/human) + +/datum/spell/hand/biceps_magic/cast_hand(mob/living/carbon/human/H, mob/living/carbon/human/user) + user.drop(user.get_active_hand()) + user.remove_nutrition(50) + + var/saved_zone_sel = user.zone_sel.selecting + user.zone_sel.selecting = BP_HEAD + user.make_grab(user, H, GRAB_QUICKCHOKE) + user.zone_sel.selecting = saved_zone_sel + + H.damage_poise(25) + + to_chat(H, SPAN("warning", "It looks like you're in trouble.")) + return TRUE diff --git a/code/modules/spells/hand/deltoid_magic.dm b/code/modules/spells/hand/deltoid_magic.dm new file mode 100644 index 00000000000..7aef3746dcc --- /dev/null +++ b/code/modules/spells/hand/deltoid_magic.dm @@ -0,0 +1,47 @@ + +/datum/spell/hand/deltoid_magic + name = "Deltoid Magic" + desc = "Prepare your deltoid muscle to land a devastating punch." + + feedback = "DM" + range = 1 + spell_flags = 0 + + invocation = "DELTOID! TRICEPS! BRACHIORADIALIS!" + invocation_type = SPI_SHOUT + spell_delay = 5 SECONDS + charge_max = 5 SECONDS + hand_name_override = "inhuman might" + + icon_state = "wiz_deltoid" + compatible_targets = list(/mob/living/carbon/human) + +/datum/spell/hand/deltoid_magic/cast_hand(mob/living/carbon/human/H, mob/living/carbon/user) + user.drop(user.get_active_hand()) + user.remove_nutrition(50) + + var/obj/item/organ/external/affecting = H.get_organ(ran_zone(user.zone_sel.selecting)) + if(!affecting || affecting.is_stump()) + to_chat(user, SPAN("danger", "They are missing that limb!")) + return FALSE + + user.do_attack_animation(H) + + var/throw_dir = user.dir + if(user == H) + user.visible_message(SPAN("danger", "[user] has punched the floor, sending themselves flying!")) + var/turf/T = get_turf(user) + T.ex_act(rand(2, 3)) + playsound(T, 'sound/effects/bang.ogg', rand(80, 100), 1, -1) + else + throw_dir = turn(get_dir(H, user), 180) + user.visible_message(SPAN("danger", "[user] has punched \the [H] so hard, they're sent flying!")) + H.apply_damage(rand(20, 40), BRUTE, affecting) + H.Weaken(8) + H.Stun(4) + H.damage_poise(30) + playsound(H.loc, SFX_FIGHTING_PUNCH, rand(80, 100), 1, -1) + + H.throw_at(get_edge_target_turf(H, throw_dir), 5, 1) + + return TRUE diff --git a/code/modules/spells/hand/hand.dm b/code/modules/spells/hand/hand.dm index 6ea42798148..dbfe751a16c 100644 --- a/code/modules/spells/hand/hand.dm +++ b/code/modules/spells/hand/hand.dm @@ -5,8 +5,10 @@ var/move_delay var/click_delay var/hand_state = "spell" + var/hand_name_override var/show_message var/spell_cast_delay + /datum/spell/hand/choose_targets(mob/user = usr) return list(user) diff --git a/code/modules/spells/hand/hand_item.dm b/code/modules/spells/hand/hand_item.dm index 5a6ac504377..bc10116f565 100644 --- a/code/modules/spells/hand/hand_item.dm +++ b/code/modules/spells/hand/hand_item.dm @@ -16,7 +16,7 @@ Basically: I can use it to target things where I click. I can then pass these ta /obj/item/magic_hand/New(datum/spell/hand/S) ..(null) hand_spell = S - name = "[name] ([S.name])" + name = S.hand_name_override ? S.hand_name_override : "[name] ([S.name])" icon_state = S.hand_state /obj/item/magic_hand/get_storage_cost() @@ -48,6 +48,8 @@ Basically: I can use it to target things where I click. I can then pass these ta if(hand_spell.show_message) user.visible_message("\The [user][hand_spell.show_message]") if(hand_spell.cast_hand(A,user)) + if(QDELETED(hand_spell)) + return next_spell_time = world.time + hand_spell.spell_delay if(hand_spell.move_delay) user.addMoveCooldown(hand_spell.move_delay) diff --git a/code/modules/spells/racial_wizard.dm b/code/modules/spells/racial_wizard.dm index 9296156a201..cd75fef18cf 100644 --- a/code/modules/spells/racial_wizard.dm +++ b/code/modules/spells/racial_wizard.dm @@ -247,11 +247,11 @@ vision.possess(L) register_signal(L, SIGNAL_QDELETING, nameof(.proc/release)) register_signal(L, SIGNAL_LOGGED_OUT, nameof(.proc/release)) - L.verbs += /mob/living/proc/release_eye + grant_verb(L, /mob/living/proc/release_eye) /datum/spell/camera_connection/proc/release(mob/living/L) vision.release(L) - L.verbs -= /mob/living/proc/release_eye + revoke_verb(L, /mob/living/proc/release_eye) unregister_signal(L, SIGNAL_QDELETING) unregister_signal(L, SIGNAL_LOGGED_OUT) @@ -267,7 +267,7 @@ set desc = "Return your sight to your body." set category = "Abilities" - verbs -= /mob/living/proc/release_eye //regardless of if we have an eye or not we want to get rid of this verb. + revoke_verb(src, /mob/living/proc/release_eye) if(!eyeobj) return diff --git a/code/modules/spells/spell_code.dm b/code/modules/spells/spell_code.dm index 8b907928b48..2ada5fb7488 100644 --- a/code/modules/spells/spell_code.dm +++ b/code/modules/spells/spell_code.dm @@ -76,6 +76,9 @@ //still_recharging_msg = "[name] is still recharging." charge_counter = charge_max +/datum/spell/proc/spell_learned(mob/user) + return + /datum/spell/proc/process() if(processing) return diff --git a/code/modules/spells/spellbook.dm b/code/modules/spells/spellbook.dm index ca448bc7069..42a08852f06 100644 --- a/code/modules/spells/spellbook.dm +++ b/code/modules/spells/spellbook.dm @@ -202,7 +202,7 @@ var/list/artefact_feedback = list( user.mind.wizard.set_class(path) feedback_add_details("wizard_class_choose", user.mind.wizard.class.feedback_tag) - to_chat(user, SPAN("notice", "You are now \a [user.mind.wizard.class.name]!")) + user.mind.wizard.class.on_class_chosen(user, src) /obj/item/spellbook/proc/buy_artifact(mob/user, obj/path) var/datum/wizard/W = user.mind.wizard diff --git a/code/modules/spells/spells.dm b/code/modules/spells/spells.dm index d54a1d52da2..3ce012aa193 100644 --- a/code/modules/spells/spells.dm +++ b/code/modules/spells/spells.dm @@ -1,20 +1,31 @@ /datum/mind var/list/learned_spells = list() -/mob/Stat() +/mob/get_actions_for_statpanel() . = ..() - if(. && ability_master?.spell_objects) + + if(ability_master?.spell_objects) for(var/atom/movable/screen/ability/spell/screen in ability_master.spell_objects) var/datum/spell/S = screen.spell - if((!S.connected_button) || !statpanel(S.panel)) - continue //Not showing the noclothes spell + + if(!S.connected_button) + continue + + var/displayed_name switch(S.charge_type) if(SP_RECHARGE) - statpanel(S.panel, "[S.charge_counter/10.0]/[S.charge_max/10]", S.connected_button) + displayed_name = "[S.name] [S.charge_counter/10.0]/[S.charge_max/10]" if(SP_CHARGES) - statpanel(S.panel, "[S.charge_counter]/[S.charge_max]", S.connected_button) + displayed_name = "[S.name] [S.charge_counter]/[S.charge_max]" if(SP_HOLDVAR) - statpanel(S.panel, "[S.holder_var_type] [S.holder_var_amount]", S.connected_button) + displayed_name = "[S.name] [S.holder_var_type] [S.holder_var_amount]" + + . += list(list( + S.panel, + "", + displayed_name, + ref(S.connected_button), + )) /proc/restore_spells(mob/H) if(!H.mind?.learned_spells) @@ -41,7 +52,7 @@ mind.learned_spells = list() mind.learned_spells |= spell_to_add ability_master.add_spell(spell_to_add, spell_base) - SEND_SIGNAL(spell_to_add, SIGNAL_MOB_SPELL_LEARNED, src) + spell_to_add.spell_learned(src) return 1 /mob/proc/remove_spell(datum/spell/spell_to_remove) diff --git a/code/modules/spells/targeted/equip/cream_puff.dm b/code/modules/spells/targeted/equip/cream_puff.dm new file mode 100644 index 00000000000..a5702fe98b3 --- /dev/null +++ b/code/modules/spells/targeted/equip/cream_puff.dm @@ -0,0 +1,21 @@ + +/datum/spell/targeted/equip_item/cream_puff + name = "Workout Meal" + desc = "You take out one of the cream puffs you're always carrying with you." + feedback = "WM" + delete_old = FALSE + single_item = FALSE + + spell_flags = INCLUDEUSER + invocation_type = SPI_EMOTE + invocation = "casually takes out a cream puff." + + equipped_summons = list("active hand" = /obj/item/reagent_containers/food/cream_puff) + compatible_mobs = list(/mob/living/carbon/human) + + charge_max = 15 SECONDS + + range = 0 + max_targets = 1 + + icon_state = "wiz_cream_puff" diff --git a/code/modules/spells/targeted/ethereal_jaunt.dm b/code/modules/spells/targeted/ethereal_jaunt.dm index 7f133f8c07e..2bf173253b2 100644 --- a/code/modules/spells/targeted/ethereal_jaunt.dm +++ b/code/modules/spells/targeted/ethereal_jaunt.dm @@ -17,17 +17,20 @@ var/reappear_duration = 5 //equal to number of animation frames var/obj/effect/dummy/spell_jaunt/jaunt_holder var/atom/movable/fake_overlay/animation - var/start_reappear_timer + +/datum/spell/targeted/ethereal_jaunt/New() + . = ..() + add_think_ctx("start_reappear_context", CALLBACK(src, nameof(.proc/start_reappear)), 0) + add_think_ctx("reappear_context", CALLBACK(src, nameof(.proc/reappear)), 0) /datum/spell/targeted/ethereal_jaunt/cast(list/targets, mob/user) //magnets, so mostly hardcoded for(var/mob/living/target in targets) if(HAS_TRANSFORMATION_MOVEMENT_HANDLER(target)) continue if(target in jaunt_holder?.contents) - if(start_reappear_timer) - deltimer(start_reappear_timer) - start_reappear_timer = addtimer(CALLBACK(src, nameof(.proc/start_reappear), target), duration, TIMER_STOPPABLE) + set_next_think_ctx("start_reappear_context", world.time + duration) break + if(target.buckled) target.buckled.unbuckle_mob() if(istype(user.loc, /obj/machinery/atmospherics/unary/cryo_cell)) @@ -49,7 +52,7 @@ target.can_use_hands = FALSE jaunt_steam(mobloc) target.forceMove(jaunt_holder) - start_reappear_timer = addtimer(CALLBACK(src, nameof(.proc/start_reappear), target), duration, TIMER_STOPPABLE) + set_next_think_ctx("start_reappear_context", world.time + duration, target) /datum/spell/targeted/ethereal_jaunt/proc/start_reappear(mob/living/target) var/mob_loc = jaunt_holder.last_valid_turf @@ -57,7 +60,7 @@ jaunt_steam(mob_loc) jaunt_reappear(animation, target) animation.forceMove(mob_loc) - addtimer(CALLBACK(src, nameof(.proc/reappear), mob_loc, target), reappear_duration) + set_next_think_ctx("reappear_context", world.time + reappear_duration, mob_loc, target) /datum/spell/targeted/ethereal_jaunt/proc/reappear(mob_loc, mob/living/target) if(!target.forceMove(mob_loc)) @@ -131,9 +134,9 @@ else to_chat(user, SPAN_WARNING("Some strange aura is blocking the way!")) canmove = FALSE - addtimer(CALLBACK(src, nameof(.proc/allow_move)), 2) + set_next_think(world.time + 2) -/obj/effect/dummy/spell_jaunt/proc/allow_move() +/obj/effect/dummy/spell_jaunt/think() canmove = TRUE /obj/effect/dummy/spell_jaunt/ex_act(blah) diff --git a/code/modules/spells/targeted/raiseundead.dm b/code/modules/spells/targeted/raiseundead.dm index 7bf7af62607..a334a622614 100644 --- a/code/modules/spells/targeted/raiseundead.dm +++ b/code/modules/spells/targeted/raiseundead.dm @@ -21,6 +21,10 @@ var/times_failed = 0 var/spell_price = 1 +/datum/spell/targeted/raiseundead/New() + . = ..() + add_think_ctx("draft_failure", CALLBACK(src, nameof(.proc/draft_failure)), 0) + /datum/spell/targeted/raiseundead/choose_targets(mob/user = usr) var/list/possible_targets = list() @@ -67,7 +71,7 @@ var/mob/living/carbon/human/H = target var/datum/ghosttrap/undead/trap = get_ghost_trap("undead") trap.request_player(H, "A necromancer is requesting a soul to animate an undead body.", RAISE_UNDEAD_TIMEOUT, user, should_lichify) - addtimer(CALLBACK(src, nameof(.proc/draft_failure), target, user), RAISE_UNDEAD_TIMEOUT) + set_next_think_ctx("draft_failure", world.time + RAISE_UNDEAD_TIMEOUT, target, user) /datum/spell/targeted/raiseundead/proc/draft_failure(mob/living/carbon/human/target, mob/user) if(target.mind?.wizard && (target.mind?.wizard in user.mind.wizard.thralls)) diff --git a/code/modules/spells/toggled/hamstring_magic.dm b/code/modules/spells/toggled/hamstring_magic.dm new file mode 100644 index 00000000000..74032bd083d --- /dev/null +++ b/code/modules/spells/toggled/hamstring_magic.dm @@ -0,0 +1,39 @@ + +/datum/spell/toggled/hamstring_magic + name = "Hamstring Magic" + desc = "You push your hamstrings to the limit." + feedback = "HM" + + spell_flags = INCLUDEUSER + invocation = "SEMIMEMBRANOSUS! SEMITENDINOSUS! BICEPS FEMORIS!" + invocation_type = SPI_SHOUT + need_target = FALSE + + icon_state = "wiz_hamstring" + +/datum/spell/toggled/hamstring_magic/activate() + . = ..() + if(!.) + return + + var/mob/living/carbon/human/H = holder + H.add_movespeed_modifier(/datum/movespeed_modifier/hamstring_magic) + invocation_type = SPI_NONE + return + +/datum/spell/toggled/hamstring_magic/deactivate(no_message = TRUE) + . = ..() + if(!.) + return + + var/mob/living/carbon/human/H = holder + H.remove_movespeed_modifier(/datum/movespeed_modifier/hamstring_magic) + invocation_type = SPI_SHOUT + return + +/datum/spell/toggled/immaterial_form/think() + if(toggled) + var/mob/living/carbon/human/H = holder + H.remove_nutrition(3) + + return ..() diff --git a/code/modules/splash_text/splash_text.dm b/code/modules/splash_text/splash_text.dm index 84ff5dd6b58..458d4fcf42c 100644 --- a/code/modules/splash_text/splash_text.dm +++ b/code/modules/splash_text/splash_text.dm @@ -8,11 +8,11 @@ #define SPLASH_TEXT_LIFETIME_INCREASE_MIN (10) /// Creates text that will float from the atom upwards to the viewer. -/atom/proc/show_splash_text(mob/viewer, text) - INVOKE_ASYNC(src, nameof(.proc/animate_splash_text), viewer, text) +/atom/proc/show_splash_text(mob/viewer, text, chat_text, force_skip_chat = FALSE) + INVOKE_ASYNC(src, nameof(.proc/animate_splash_text), viewer, text, chat_text) /// Creates text that will float from the atom upwards to the viewers in range. -/atom/proc/show_splash_text_to_viewers(message, self_message, vision_distance = 7, list/mob/ignored_mobs) +/atom/proc/show_splash_text_to_viewers(message, self_message, vision_distance = 7, list/mob/ignored_mobs, force_skip_chat = FALSE) var/list/hearers = list() var/list/garbage_obj = list() // TO-DO: add more helpers to exclude searching objects. get_mobs_and_objs_in_view_fast(get_turf(src), vision_distance, hearers, garbage_obj) @@ -21,15 +21,27 @@ for(var/hearer in hearers) if(is_blind(hearer)) continue - show_splash_text(hearer, (hearer == src && self_message) || message) + var/res_message = message + if(hearer == src && self_message) + res_message = self_message + show_splash_text(hearer, res_message, res_message, force_skip_chat) /// Private proc, use 'show_splash_text' or 'show_splash_text_to_viewers' instead. -/atom/proc/animate_splash_text(mob/viewer, text) +/atom/proc/animate_splash_text(mob/viewer, text, chat_text, force_skip_chat) var/client/viewer_client = viewer?.client if(!viewer_client) return - if(viewer_client.get_preference_value(/datum/client_preference/splashes) != GLOB.PREF_YES) + var/pref_value = viewer_client.get_preference_value(/datum/client_preference/splashes) + + if(pref_value != GLOB.PREF_SPLASH_MAPTEXT && !force_skip_chat) + if(!chat_text) + // Ugly, but still better than skipping the message completely + chat_text = "\icon[src] [text]" + to_chat(viewer, chat_text) + + // Chat only, no need to draw maptexties + if(pref_value == GLOB.PREF_SPLASH_CHAT) return var/bounds_width = world.icon_size @@ -46,10 +58,10 @@ splash_image.maptext_width = SPLASH_TEXT_WIDTH splash_image.maptext_height = WXH_TO_HEIGHT(viewer_client.MeasureText(text, null, SPLASH_TEXT_WIDTH)) - add_image_to_client(splash_image, viewer_client) - var/lifetime_mult = 1 + max(0, length(strip_html_properly(text)) - SPLASH_TEXT_LIFETIME_INCREASE_MIN) * SPLASH_TEXT_LIFETIME_PER_CHAR_MULT + flick_overlay(splash_image, viewer_client, SPLASH_TEXT_TOTAL_LIFETIME(lifetime_mult)) + animate( splash_image, pixel_y = world.icon_size * 1.2, @@ -70,8 +82,6 @@ easing = CUBIC_EASING | EASE_IN ) - addtimer(CALLBACK(GLOBAL_PROC, /proc/remove_image_from_client, splash_image, viewer_client), SPLASH_TEXT_TOTAL_LIFETIME(lifetime_mult), TIMER_DELETE_ME) - #undef SPLASH_TEXT_WIDTH #undef SPLASH_TEXT_SPAWN_TIME #undef SPLASH_TEXT_VISIBILITY_TIME diff --git a/code/modules/synthesized_instruments/event_manager.dm b/code/modules/synthesized_instruments/event_manager.dm index d0e4457f399..f41d5d46b07 100644 --- a/code/modules/synthesized_instruments/event_manager.dm +++ b/code/modules/synthesized_instruments/event_manager.dm @@ -72,7 +72,7 @@ if (active) return 0 src.active = 1 - addtimer(CALLBACK(src, nameof(.proc/handle_events)), 0) + INVOKE_ASYNC(src, nameof(.proc/handle_events)) diff --git a/code/modules/synthesized_instruments/real_instruments/Guitar/guitar.dm b/code/modules/synthesized_instruments/real_instruments/Guitar/guitar.dm index 4ae79c0dd7f..c9dabbe9a2b 100644 --- a/code/modules/synthesized_instruments/real_instruments/Guitar/guitar.dm +++ b/code/modules/synthesized_instruments/real_instruments/Guitar/guitar.dm @@ -3,6 +3,7 @@ desc = "A wooden musical instrument with six strings. This one looks like it may actually work." icon = 'icons/obj/items.dmi' icon_state = "guitar" + improper_held_icon = TRUE force = 6 sound_player = /datum/sound_player/synthesizer path = /datum/instrument/guitar/clean_crisis diff --git a/code/modules/synthesized_instruments/song.dm b/code/modules/synthesized_instruments/song.dm index 6cc73760035..daac5a79e6d 100644 --- a/code/modules/synthesized_instruments/song.dm +++ b/code/modules/synthesized_instruments/song.dm @@ -195,7 +195,7 @@ var/list/allowed_suff = list("b", "n", "#", "s") var/list/note_off_delta = list("a"=91, "b"=91, "c"=98, "d"=98, "e"=98, "f"=98, "g"=98) var/list/lines_copy = src.lines.Copy() - addtimer(CALLBACK(src, nameof(.proc/play_lines), user, allowed_suff, note_off_delta, lines_copy), 0) + INVOKE_ASYNC(src, nameof(.proc/play_lines), user, allowed_suff, note_off_delta, lines_copy) #undef CP #undef IS_DIGIT diff --git a/code/modules/tables/presets.dm b/code/modules/tables/presets.dm index 2bd97ebe0c4..7decff9d47e 100644 --- a/code/modules/tables/presets.dm +++ b/code/modules/tables/presets.dm @@ -79,18 +79,3 @@ /obj/structure/table/glass/plass color = "#8f29a3" material = MATERIAL_PLASS - -/obj/structure/table/holotable - icon_state = "holo_preview" - color = COLOR_OFF_WHITE - -/obj/structure/table/holotable/New() - material = "holo[DEFAULT_TABLE_MATERIAL]" - ..() - -/obj/structure/table/holo_woodentable - icon_state = "holo_preview" - -/obj/structure/table/holo_woodentable/New() - material = "holo[MATERIAL_WOOD]" - ..() diff --git a/code/modules/tables/rack.dm b/code/modules/tables/rack.dm index 09d4f0a2f37..e52494cb3ed 100644 --- a/code/modules/tables/rack.dm +++ b/code/modules/tables/rack.dm @@ -28,10 +28,6 @@ /obj/structure/table/rack/can_connect() return FALSE -/obj/structure/table/rack/holorack/dismantle(obj/item/wrench/W, mob/user) - to_chat(user, "You cannot dismantle \the [src].") - return - /obj/structure/table/rack/bograck name = "strange rack" desc ="Must be the color." diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm index 9d123c6094e..fa49547cb64 100644 --- a/code/modules/tables/tables.dm +++ b/code/modules/tables/tables.dm @@ -96,16 +96,17 @@ T.update_icon() return ..() -/obj/structure/table/_examine_text(mob/user) +/obj/structure/table/examine(mob/user, infix) . = ..() + if(health < maxhealth) switch(health / maxhealth) if(0.0 to 0.5) - . += "\nIt looks severely damaged!" + . += SPAN_WARNING("It looks severely damaged!") if(0.25 to 0.5) - . += "\nIt looks damaged!" + . += SPAN_WARNING("It looks damaged!") if(0.5 to 1.0) - . += "\nIt has a few scrapes and dents." + . += SPAN_WARNING("It has a few scrapes and dents.") /obj/structure/table/CanAStarPass(to_dir, datum/can_pass_info/pass_info) if(!density) @@ -115,6 +116,8 @@ return FALSE /obj/structure/table/attackby(obj/item/W, mob/user) + if(atom_flags & ATOM_FLAG_NO_DECONSTRUCTION) + return ..() if(reinforced && isScrewdriver(W)) remove_reinforced(W, user) @@ -159,15 +162,17 @@ if(health < maxhealth && isWelder(W)) var/obj/item/weldingtool/F = W - if(F.welding) - to_chat(user, "You begin reparing damage to \the [src].") - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - if(!do_after(user, 20, src) || !F.remove_fuel(1, user)) - return - user.visible_message("\The [user] repairs some damage to \the [src].", - "You repair some damage to \the [src].") - health = max(health+(maxhealth/5), maxhealth) // 20% repair per application - return 1 + to_chat(user, SPAN_NOTICE("You begin reparing damage to \the [src].")) + if(!F.use_tool(src, user, delay = 2 SECONDS, amount = 1)) + return FALSE + + if(QDELETED(src) || !user) + return + + user.visible_message(SPAN_NOTICE("\The [user] repairs some damage to \the [src]"), + SPAN_NOTICE("You repair some damage to \the [src].")) + health = max(health + (maxhealth / 5), maxhealth) // 20% repair per application + return TRUE if(!material && can_plate && istype(W, /obj/item/stack/material)) material = common_material_add(W, user, "plat") @@ -266,7 +271,12 @@ material = common_material_remove(user, material, 20, "plating", "bolts", 'sound/items/Ratchet.ogg') /obj/structure/table/proc/dismantle(obj/item/wrench/W, mob/user) - if(manipulating) return + if(atom_flags & ATOM_FLAG_NO_DECONSTRUCTION) + return + + if(manipulating) + return + manipulating = 1 user.visible_message("\The [user] begins dismantling \the [src].", "You begin dismantling \the [src].") @@ -303,6 +313,9 @@ // is to avoid filling the list with nulls, as place_shard won't place shards of certain materials (holo-wood, holo-steel) /obj/structure/table/proc/break_to_parts(full_return = 0) + if(atom_flags & ATOM_FLAG_HOLOGRAM) + return + var/list/shards = list() var/obj/item/material/shard/S = null if(reinforced) diff --git a/code/modules/tgui/states/language_menu.dm b/code/modules/tgui/states/language_menu.dm new file mode 100644 index 00000000000..10b83ffb9e7 --- /dev/null +++ b/code/modules/tgui/states/language_menu.dm @@ -0,0 +1,19 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + +/** + * tgui state: language_menu_state + */ + +GLOBAL_DATUM_INIT(language_menu_state, /datum/ui_state/language_menu, new) + +/datum/ui_state/language_menu/can_use_topic(src_object, mob/user) + . = UI_CLOSE + if(check_rights(R_ADMIN, FALSE, user.client)) + . = UI_INTERACTIVE + else if(istype(src_object, /datum/language_menu)) + var/datum/language_menu/lang_menu = src_object + if(lang_menu.owner == user) + . = UI_INTERACTIVE diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index 5aeda59b5ed..089c54ddaa0 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -93,14 +93,14 @@ html = replacetextEx(html, "\n", assets_str) // Inject inline HTML if (inline_html) - html = replacetextEx(html, "", inline_html) + html = replacetextEx(html, "", isfile(inline_html) ? file2text(inline_html) : inline_html) // Inject inline JS if (inline_js) - inline_js = "" + inline_js = "" html = replacetextEx(html, "", inline_js) // Inject inline CSS if (inline_css) - inline_css = "" + inline_css = "" html = replacetextEx(html, "", inline_css) // Open the window client << browse(html, "window=[id];[options]") @@ -110,6 +110,23 @@ if(!is_browser) winset(client, id, "on-close=\"tguiclose [id]\"") +/** + * public + * + * Reinitializes the panel with previous data used for initialization. + */ +/datum/tgui_window/proc/reinitialize() + initialize( + fancy = initial_fancy, + assets = initial_assets, + inline_html = initial_inline_html, + inline_js = initial_inline_js, + inline_css = initial_inline_css + ) + // Resend the assets + for(var/asset in sent_assets) + send_asset(asset) + /** * public * @@ -327,13 +344,4 @@ if("openLink") client << link(href_list["url"]) if("cacheReloaded") - // Reinitialize - initialize( - fancy = initial_fancy, - assets = initial_assets, - inline_html = initial_inline_html, - inline_js = initial_inline_js, - inline_css = initial_inline_css) - // Resend the assets - for(var/asset in sent_assets) - send_asset(asset) + reinitialize() diff --git a/code/modules/tgui_input/color.dm b/code/modules/tgui_input/color.dm new file mode 100644 index 00000000000..e435beaf9ef --- /dev/null +++ b/code/modules/tgui_input/color.dm @@ -0,0 +1,180 @@ +/** + * Creates a TGUI color picker window and returns the user's response. + * + * This proc should be used to create a color picker that the caller will wait for a response from. + * Arguments: + * * user - The user to show the picker to. + * * title - The of the picker modal, shown on the top of the TGUI window. + * * timeout - The timeout of the picker, after which the modal will close and qdel itself. Set to zero for no timeout. + * * autofocus - The bool that controls if this picker should grab window focus. + */ +/proc/tgui_color_picker(mob/user, message, title, default = "#000000", timeout = 0, autofocus = TRUE) + if(!user) + user = usr + if(!istype(user)) + if (istype(user, /client)) + var/client/client = user + user = client.mob + else + return + + // Client does NOT have tgui_input on: Returns regular input + if(user.get_preference_value(/datum/client_preference/tgui_input) != GLOB.PREF_YES) + return input(user, message, title, default) as color|null + + var/datum/tgui_color_picker/picker = new(user, message, title, default, timeout, autofocus) + picker.ui_interact(user) + picker.wait() + if(picker) + . = picker.choice + qdel(picker) + +/** + * Creates an asynchronous TGUI color picker window with an associated callback. + * + * This proc should be used to create a color picker that invokes a callback with the user's chosen option. + * Arguments: + * * user - The user to show the picker to. + * * title - The of the picker modal, shown on the top of the TGUI window. + * * callback - The callback to be invoked when a choice is made. + * * timeout - The timeout of the picker, after which the modal will close and qdel itself. Set to zero for no timeout. + * * autofocus - The bool that controls if this picker should grab window focus. + */ +/proc/tgui_color_picker_async(mob/user, message, title, default = "#000000", datum/callback/callback, timeout = 0, autofocus = TRUE) + if(!user) + user = usr + if(!istype(user)) + if (istype(user, /client)) + var/client/client = user + user = client.mob + else + return + + // Client does NOT have tgui_input on: Returns regular input + if(user.get_preference_value(/datum/client_preference/tgui_input) != GLOB.PREF_YES) + return input(user, message, title, default) as color|null + + var/datum/tgui_color_picker/async/picker = new(user, message, title, default, callback, timeout, autofocus) + picker.ui_interact(user) + +/** + * # tgui_color_picker + * + * Datum used for instantiating and using a TGUI-controlled color picker. + */ +/datum/tgui_color_picker + /// The title of the TGUI window + var/title + /// The message to show the user + var/message + /// The default choice, used if there is an existing value + var/default + /// The color the user selected, null if no selection has been made + var/choice + /// The time at which the tgui_color_picker was created, for displaying timeout progress. + var/start_time + /// The lifespan of the tgui_color_picker, after which the window will close and delete itself. + var/timeout + /// The bool that controls if this modal should grab window focus + var/autofocus + /// Boolean field describing if the tgui_color_picker was closed by the user. + var/closed + +/datum/tgui_color_picker/New(mob/user, message, title, default, timeout, autofocus) + src.autofocus = autofocus + src.title = title + src.default = default + src.message = message + if(timeout) + src.timeout = timeout + start_time = world.time + QDEL_IN(src, timeout) + +/datum/tgui_color_picker/Destroy(force, ...) + SStgui.close_uis(src) + return ..() + +/** + * Waits for a user's response to the tgui_color_picker's prompt before returning. Returns early if + * the window was closed by the user. + */ +/datum/tgui_color_picker/proc/wait() + while(!choice && !closed && !QDELETED(src)) + stoplag(1) + +/datum/tgui_color_picker/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "ColorPickerModal") + ui.open() + ui.set_autoupdate(timeout > 0) + +/datum/tgui_color_picker/ui_close(mob/user) + . = ..() + closed = TRUE + +/datum/tgui_color_picker/tgui_state(mob/user) + return GLOB.tgui_always_state + +/datum/tgui_color_picker/tgui_static_data(mob/user) + . = list() + .["autofocus"] = autofocus + .["title"] = title + .["default_color"] = default + .["message"] = message + +/datum/tgui_color_picker/tgui_data(mob/user) + . = list() + if(timeout) + .["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS)) + +/datum/tgui_color_picker/tgui_act(action, list/params) + . = ..() + + if(.) + return + + switch(action) + if("submit") + var/raw_data = lowertext(params["entry"]) + var/hex = sanitize_hexcolor(raw_data, desired_format = 6, include_crunch = TRUE) + if(!hex) + return + + set_choice(hex) + closed = TRUE + SStgui.close_uis(src) + return TRUE + + if("cancel") + closed = TRUE + SStgui.close_uis(src) + return TRUE + +/datum/tgui_color_picker/proc/set_choice(choice) + src.choice = choice + +/** + * # async tgui_color_picker + * + * An asynchronous version of tgui_color_picker to be used with callbacks instead of waiting on user responses. + */ +/datum/tgui_color_picker/async + /// The callback to be invoked by the tgui_color_picker upon having a choice made. + var/datum/callback/callback + +/datum/tgui_color_picker/async/New(mob/user, message, title, default, callback, timeout, autofocus) + ..(user, message, title, default, timeout, autofocus) + src.callback = callback + +/datum/tgui_color_picker/async/Destroy(force, ...) + QDEL_NULL(callback) + . = ..() + +/datum/tgui_color_picker/async/set_choice(choice) + . = ..() + if(!isnull(src.choice)) + callback?.InvokeAsync(src.choice) + +/datum/tgui_color_picker/async/wait() + return diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm index ae118337017..c3a81cca77e 100644 --- a/code/modules/tgui_panel/tgui_panel.dm +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -49,14 +49,13 @@ )) // Other setup request_telemetry() - addtimer(CALLBACK(src, nameof(.proc/on_initialize_timed_out)), 30 SECONDS) + set_next_think(world.time + 30 SECONDS) /** - * private - * * Called when initialization has timed out. */ -/datum/tgui_panel/proc/on_initialize_timed_out() + +/datum/tgui_panel/think() // Currently does nothing but sending a message to old chat. DIRECT_OUTPUT(client, SPAN("danger", "Chat's loading is in progress. If the chat does not load in a minute - use 'Fix Chat'.")) diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm index 5a8c1ef2b76..8bdbc977464 100644 --- a/code/modules/vehicles/cargo_train.dm +++ b/code/modules/vehicles/cargo_train.dm @@ -65,7 +65,7 @@ AddOverlays(I) turn_off() //so engine verbs are correctly set -/obj/vehicle/train/cargo/engine/Move(turf/destination) +/obj/vehicle/train/cargo/engine/Move(newloc, direct) if(on && cell.charge < (charge_use * CELLRATE)) turn_off() update_stats() @@ -73,11 +73,11 @@ to_chat(load, "The drive motor briefly whines, then drones to a stop.") if(is_train_head() && !on) - return 0 + return FALSE //space check ~no flying space trains sorry - if(on && istype(destination, /turf/space)) - return 0 + if(on && istype(newloc, /turf/space)) + return FALSE return ..() @@ -203,16 +203,17 @@ else return ..() -/obj/vehicle/train/cargo/engine/_examine_text(mob/user) +/obj/vehicle/train/cargo/engine/examine(mob/user, infix) . = ..() + if(get_dist(src, user) > 1) return - if(!istype(usr, /mob/living/carbon/human)) + if(!ishuman(user)) return - . += "\nThe power light is [on ? "on" : "off"].\nThere are[key ? "" : " no"] keys in the ignition." - . += "\nThe charge meter reads [cell? round(CELL_PERCENT(cell), 0.01) : 0]%" + . += "The power light is [on ? "on" : "off"].\nThere are[key ? "" : " no"] keys in the ignition." + . += "The charge meter reads [cell? round(CELL_PERCENT(cell), 0.01) : 0]%" /obj/vehicle/train/cargo/engine/verb/start_engine() set name = "Start engine" diff --git a/code/modules/vehicles/train.dm b/code/modules/vehicles/train.dm index f75a372241d..85c9279ce29 100644 --- a/code/modules/vehicles/train.dm +++ b/code/modules/vehicles/train.dm @@ -27,16 +27,16 @@ for(var/obj/vehicle/train/T in orange(1, src)) latch(T) -/obj/vehicle/train/Move() +/obj/vehicle/train/Move(newloc, direct) var/old_loc = get_turf(src) - if(..()) - if(tow) - tow.Move(old_loc) - return 1 - else + . = ..() + if(!.) if(lead) unattach() - return 0 + return + + if(tow) + tow.Move(old_loc) /obj/vehicle/train/Bump(atom/Obstacle) if(!istype(Obstacle, /atom/movable)) diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index ae2b52b50ec..de6eedab3de 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -56,7 +56,7 @@ glide_size = move_glide_size //spawn the cell you want in each vehicle -/obj/vehicle/Move() +/obj/vehicle/Move(newloc, direct) if(world.time > l_move_time + move_delay) if(on && powered && cell.charge < (charge_use * CELLRATE)) turn_off() @@ -64,9 +64,11 @@ var/old_loc = get_turf(src) var/init_anc = anchored // Hack to let the vehicle fall() in open spaces. - anchored = 0 + anchored = FALSE . = ..() + if(!.) + return set_dir(get_dir(old_loc, loc)) anchored = init_anc @@ -77,15 +79,15 @@ set_glide_size(move_glide_size) if(ismob(load)) var/mob/M = load - M.forceMove(loc, unbuckle_mob=FALSE) + M.forceMove(loc, unbuckle_mob = FALSE) else load.set_glide_size(move_glide_size) load.forceMove(loc) load.set_dir(dir) - return 1 - else - return 0 + return TRUE + + return FALSE /obj/vehicle/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/hand_labeler)) diff --git a/code/modules/virus2/items_devices.dm b/code/modules/virus2/items_devices.dm index 9999c62eb96..826db3c29f5 100644 --- a/code/modules/virus2/items_devices.dm +++ b/code/modules/virus2/items_devices.dm @@ -68,10 +68,11 @@ infect_virus2(target, src.virus2) qdel(src) -/obj/item/virusdish/_examine_text(mob/user) +/obj/item/virusdish/examine(mob/user, infix) . = ..() + if(basic_info) - . += "\n[basic_info] : More Information" + . += "[basic_info] : More Information" /obj/item/virusdish/OnTopic(user, href_list) if(href_list["info"]) diff --git a/code/modules/xenoarcheaology/artifacts/artifact.dm b/code/modules/xenoarcheaology/artifacts/artifact.dm index 2615a670485..ea0b209f06b 100644 --- a/code/modules/xenoarcheaology/artifacts/artifact.dm +++ b/code/modules/xenoarcheaology/artifacts/artifact.dm @@ -231,10 +231,14 @@ secondary_effect.ToggleActivate() return -/obj/machinery/artifact/Move() +/obj/machinery/artifact/Move(newloc, direct) . = ..() + if(!.) + return + if(main_effect) main_effect.UpdateMove() + if(secondary_effect) secondary_effect.UpdateMove() diff --git a/code/modules/xenoarcheaology/finds/finds.dm b/code/modules/xenoarcheaology/finds/finds.dm index 4d9367276fc..18ad5919d98 100644 --- a/code/modules/xenoarcheaology/finds/finds.dm +++ b/code/modules/xenoarcheaology/finds/finds.dm @@ -40,21 +40,18 @@ return if(isWelder(I)) - var/obj/item/weldingtool/W = I - if(W.isOn()) - if(W.get_fuel() >= 2) - var/obj/item/inside = locate() in src - if(inside) - inside.forceMove(get_turf(src)) - visible_message("\The [src] burns away revealing \the [inside].") - else - visible_message("\The [src] burns away into nothing.") - qdel(src) - W.remove_fuel(2) - else - visible_message("A few sparks fly off \the [src], but nothing else happens.") - W.remove_fuel(1) - return + var/obj/item/weldingtool/WT = I + if(!WT.use_tool(src, user, amount = 2)) + return FALSE + + var/obj/item/inside = locate() in src + if(inside) + inside.forceMove(get_turf(src)) + visible_message(SPAN_INFO("\The [src] burns away revealing \the [inside].")) + else + visible_message(SPAN_INFO("\The [src] burns away into nothing.")) + qdel(src) + return else if(istype(I, /obj/item/device/core_sampler)) var/obj/item/device/core_sampler/S = I diff --git a/code/modules/xenoarcheaology/sampling.dm b/code/modules/xenoarcheaology/sampling.dm index 18dddee547e..e04046711bb 100644 --- a/code/modules/xenoarcheaology/sampling.dm +++ b/code/modules/xenoarcheaology/sampling.dm @@ -90,10 +90,11 @@ var/num_stored_bags = 10 var/obj/item/evidencebag/filled_bag -/obj/item/device/core_sampler/_examine_text(mob/user) +/obj/item/device/core_sampler/examine(mob/user, infix) . = ..() + if(get_dist(src, user) <= 2) - . += "\nUsed to extract geological core samples - this one is [sampled_turf ? "full" : "empty"], and has [num_stored_bags] bag[num_stored_bags != 1 ? "s" : ""] remaining." + . += SPAN_NOTICE("Used to extract geological core samples - this one is [sampled_turf ? "full" : "empty"], and has [num_stored_bags] bag[num_stored_bags != 1 ? "s" : ""] remaining.") /obj/item/device/core_sampler/attackby(obj/item/I, mob/living/user) if(istype(I, /obj/item/evidencebag)) diff --git a/code/modules/xenoarcheaology/tools/geosample_scanner.dm b/code/modules/xenoarcheaology/tools/geosample_scanner.dm index 91e4ef72f3b..06df925e623 100644 --- a/code/modules/xenoarcheaology/tools/geosample_scanner.dm +++ b/code/modules/xenoarcheaology/tools/geosample_scanner.dm @@ -47,7 +47,7 @@ ..() create_reagents(500) coolant_reagents_purity[/datum/reagent/water] = 0.5 - coolant_reagents_purity[/datum/reagent/drink/coffee/icecoffee] = 0.6 + coolant_reagents_purity[/datum/reagent/caffeine/coffee/icecoffee] = 0.6 coolant_reagents_purity[/datum/reagent/drink/tea/icetea] = 0.6 coolant_reagents_purity[/datum/reagent/drink/milkshake] = 0.6 coolant_reagents_purity[/datum/reagent/leporazine] = 0.7 diff --git a/code/modules/xenoarcheaology/tools/suspension_generator.dm b/code/modules/xenoarcheaology/tools/suspension_generator.dm index 6440e43d5d6..3cf6d149e69 100644 --- a/code/modules/xenoarcheaology/tools/suspension_generator.dm +++ b/code/modules/xenoarcheaology/tools/suspension_generator.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/xenoarchaeology.dmi' icon_state = "suspension2" density = 1 + obj_flags = OBJ_FLAG_ANCHOR_BLOCKS_ROTATION req_access = list(access_research) use_power = 0 active_power_usage = 5 KILO WATTS @@ -17,6 +18,8 @@ ..() src.cell = new /obj/item/cell/high(src) + AddElement(/datum/element/simple_rotation) + /obj/machinery/suspension_gen/Process() set background = 1 if(suspension_field) @@ -236,26 +239,6 @@ deactivate() return ..() -/obj/machinery/suspension_gen/verb/rotate_ccw() - set src in view(1) - set name = "Rotate suspension gen (counter-clockwise)" - set category = "Object" - - if(anchored) - to_chat(usr, SPAN("warning", "You cannot rotate [src], it has been firmly fixed to the floor.")) - else - set_dir(turn(dir, 90)) - -/obj/machinery/suspension_gen/verb/rotate_cw() - set src in view(1) - set name = "Rotate suspension gen (clockwise)" - set category = "Object" - - if(anchored) - to_chat(usr, SPAN("warning", "You cannot rotate [src], it has been firmly fixed to the floor.")) - else - set_dir(turn(dir, -90)) - /obj/effect/suspension_field name = "energy field" icon = 'icons/effects/effects.dmi' diff --git a/code/modules/xenoarcheaology/tools/tools.dm b/code/modules/xenoarcheaology/tools/tools.dm index 951ce868b2f..84e44dc0f68 100644 --- a/code/modules/xenoarcheaology/tools/tools.dm +++ b/code/modules/xenoarcheaology/tools/tools.dm @@ -12,10 +12,11 @@ var/turf/T = get_turf(src) to_chat(user, "\icon[src] \The [src] flashes [T.x]:[T.y]:[T.z].") -/obj/item/device/gps/_examine_text(mob/user) +/obj/item/device/gps/examine(mob/user, infix) . = ..() + var/turf/T = get_turf(src) - . += "\n\The [src]'s screen shows: [T.x]:[T.y]:[T.z]." + . += SPAN_NOTICE("\The [src]'s screen shows: [T.x]:[T.y]:[T.z].") /obj/item/device/measuring_tape name = "measuring tape" diff --git a/code/modules/xgm/xgm_gas_data.dm b/code/modules/xgm/xgm_gas_data.dm index 3cfa8702307..9daf95be365 100644 --- a/code/modules/xgm/xgm_gas_data.dm +++ b/code/modules/xgm/xgm_gas_data.dm @@ -51,3 +51,30 @@ gas_data.burn_product[gas.id] = gas.burn_product return 1 + +/atom/movable/temp_overlay + icon = 'icons/effects/temp_effects.dmi' + icon_state = "generic" + layer = FIRE_LAYER + appearance_flags = DEFAULT_APPEARANCE_FLAGS | RESET_COLOR + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + var/effect_type + +/atom/movable/temp_overlay/Initialize(mapload, effect) + . = ..() + effect_type = effect + +/atom/movable/temp_overlay/proc/update_alpha_animation(new_alpha) + if(new_alpha == alpha) + return + + animate(src, alpha = new_alpha) + alpha = new_alpha + animate(src, alpha = 0.8 * new_alpha, time = 10, easing = SINE_EASING | EASE_OUT, loop = -1) + animate(alpha = new_alpha, time = 10, easing = SINE_EASING | EASE_IN, loop = -1) + +/atom/movable/temp_overlay/heat + plane = TEMPERATURE_EFFECT_PLANE + render_source = HEAT_EFFECT_TARGET + icon = null + icon_state = null diff --git a/code/modules/xgm/xgm_gas_mixture.dm b/code/modules/xgm/xgm_gas_mixture.dm index b5d6ccc0b64..356b698b661 100644 --- a/code/modules/xgm/xgm_gas_mixture.dm +++ b/code/modules/xgm/xgm_gas_mixture.dm @@ -1,3 +1,5 @@ +#define TEMPERATURE_OVERLAY_HEAT "t_overlay_heat" + /datum/gas_mixture //Associative list of gas moles. //Gases with 0 moles are not tracked and are pruned by update_values() @@ -15,6 +17,9 @@ //List of active tile overlays for this gas_mixture. Updated by check_tile_graphic() var/list/graphic = list() + /// Cache of temperature overlays + var/list/temp_overlay_cache = list() + /datum/gas_mixture/New(_volume = CELL_VOLUME, _temperature = 0, _group_multiplier = 1) volume = _volume temperature = _temperature @@ -364,6 +369,17 @@ if(!graphic_add) graphic_add = list() graphic_add += gas_data.tile_overlay[g] + . = 0 + + var/atom/movable/temp_overlay/heat_overlay = get_temperature_overlay(TEMPERATURE_OVERLAY_HEAT) + if(temperature >= CARBON_LIFEFORM_FIRE_RESISTANCE) + if(!LAZYISIN(graphic, heat_overlay)) + graphic_add += heat_overlay + else if(heat_overlay in graphic) + graphic_remove += heat_overlay + + var/new_alpha = clamp(max(125, 255 * ((temperature - CARBON_LIFEFORM_FIRE_RESISTANCE) / CARBON_LIFEFORM_FIRE_RESISTANCE * 4)), 125, 255) + heat_overlay.update_alpha_animation(new_alpha) . = 0 //Apply changes @@ -374,6 +390,16 @@ graphic -= graphic_remove . = 1 +/datum/gas_mixture/proc/get_temperature_overlay(overlay_type) + var/atom/movable/temp_overlay/overlay = LAZYACCESS(temp_overlay_cache, overlay_type) + if(!isnull(overlay)) + return overlay + + if(overlay_type == TEMPERATURE_OVERLAY_HEAT) + overlay = new /atom/movable/temp_overlay/heat(null, TEMPERATURE_OVERLAY_HEAT) + LAZYSET(temp_overlay_cache, overlay_type, overlay) + + return overlay //Simpler version of merge(), adjusts gas amounts directly and doesn't account for temperature or group_multiplier. /datum/gas_mixture/proc/add(datum/gas_mixture/right_side) @@ -510,3 +536,5 @@ var/M = get_total_moles() if(M) return get_mass()/M + +#undef TEMPERATURE_OVERLAY_HEAT diff --git a/config/example/config.toml b/config/example/config.toml index 1515d7665b7..b330466d2ed 100644 --- a/config/example/config.toml +++ b/config/example/config.toml @@ -10,7 +10,7 @@ subserver_name = "Chaotic" ## Server id. This is used, when you have more than one server connected to single DB. ## NOTE! You should migrate your DB to schema with server_id applied to each ban record ## to actually support this option. Leave this commented, if you have just one server. -# server_id = "" +server_id = "onyxbay" # Set to true to generate numeric suffix after server name based on server port. server_suffix = false @@ -58,11 +58,14 @@ tick_limit_mc_init = 100 ## Hitting the minute limit notifies admins. ## Set to 0 or comment out to disable. second_topic_limit = 10 -minute_topic_limit = 100 +minute_topic_limit = 200 ## Set to true to make Dream Daemon refuse to reboot for any reason other than `SIGUSR1`. wait_for_sigusr1 = false +## Uncomment to start a metrics endpoint for prometheus. +#prometheus_port = "9080" + [lobby] splashes = ["icons/splashes/onyx_new.png"] diff --git a/config/example/objectives/abductee_objectives.txt b/config/example/objectives/abductee_objectives.txt deleted file mode 100644 index 18f669b5287..00000000000 --- a/config/example/objectives/abductee_objectives.txt +++ /dev/null @@ -1,40 +0,0 @@ -Try to get formally executed for a crime you didn't commit, without a false confession. -Being alone and in large groups are both frightening. Try to be alone with only one other person whenever possible. -No matter how they say it, other people keep mispronouncing your name. Be sure to correct them whenever possible. -The Syndicate has hired you to compile dossiers on all important members of the crew. Be sure they don't know you're doing it. -There is only one other person in existence, he is just really good at pretending to be multiple people. -There are alien parasites masquerading as people's hair. Save people from this invasion. -You died back there and went to heaven... or is it hell? No one here seems to know they're dead. Convince them, and maybe you can escape this limbo. -You are doomed to feel woefully incomplete forever... until you find your true love on this station. They're waiting for you! -You're the narrator of this tale. Follow around the protagonists to tell their story. -The leaders of this station are hiding a grand, evil conspiracy. Only you can learn what it is, and expose it to the people! -All the pets around here suck. You need to make them cooler. Replace them with exotic beasts! -You're throwing a huge rager. Make it as awesome as possible so the whole crew comes... OR ELSE! -The clown is not funny. You can do better! Steal his audience and make the crew laugh! -You burn with passion for music. Share your vision. If anyone hates it, beat them on the head with your instrument! -Go have a good conversation with the singularity/tesla/supermatter crystal. Bonus points if it responds. -You are pregnant and soon due. Find a safe place to deliver your baby. -Expand the station. -So much lies undiscovered. Look deeper into the machinations of the universe. -Climb the corporate ladder all the way to the top! -Fuck the system! Defect from the station and start an independent colony in space, Lavaland or the derelict. Recruit crewmates if you can. -Nanotrasen is abusing the animals! Save as many as you can! -It's all an entirely virtual simulation within an underground vault. Convince the crew to escape the shackles of VR. -This is a secret social experiment conducted by Nanotrasen. Convince the crew that this is the truth. -Call forth a spirit from the other side. -You are secretly an android. Interface with as many machines as you can to boost your own power so the AI may acknowledge you at last. -The elder gods hunger. Gather a cult and conduct a ritual to summon one. -You have been changed forever. Find the ones that did this to you and give them a taste of their own medicine. -Ensure your department prospers over all else. -The crew must get to know one another better. Break down the walls inside the station! -The CEO of Nanotrasen is coming! Ensure the station is in absolutely pristine condition. -Flood the station's powernet with as much electricity as you can. -Replace all the floor tiles with wood, carpeting, grass or bling. -You must escape the station! Get the shuttle called! -Death should be final and modern medicine disrupts the natural order. Don't allow anyone to be revived. -The oxygen is killing them all and they don't even know it. Make sure no oxygen is on the station. -Your body must be improved. Ingest as many drugs as you can. -You are hungry. Eat as much food as you can find. -You see you see what they cannot you see the open door you seeE you SEeEe you SEe yOU seEee SHOW THEM ALL -Convince the crew that you are a paraplegic. -Start a collection of corpses. Don't kill people to get these corpses. diff --git a/html/changelog.html b/html/changelog.html index 0799bd50909..f13e1edbbc8 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -45,6 +45,404 @@
+
05 апрель 2024
+

FelixArzt updated:

+
    +
  • Бригада рабочих-таяр установила отсутствующий пожарный шлюз на входе в шахтерку Исхода.

    +#12106
  • +
+

intercepti0n updated:

+
    +
  • У администраторов появилось действие "Change Lobby Art" во вкладке "Server", позволяющее изменить рисунок в лобби на любой другой из доступных.

    +#12090
  • +
+

igorsaux updated:

+
    +
  • Добавлен эффект холодного дыхания.

    +#12103
  • +
+

TobyThorne updated:

+
    +
  • Патч первого дня для Entrepot-17. Исправлены неработающие мусорки, отсутствие камер и невозможность запарить баньку без танцев с надувными стенами.

    +#12114
  • +
+
04 апрель 2024
+

Filatelele updated:

+
    +
  • Синтетики снова могут участвовать в лотерее релейшнов.

    +#12091
  • +
  • Исправлено недоразумение в результате которого космонавтов нельзя было окунуть в ведро.

    +#12087
  • +
  • Добавлен кулдаун крышке унитаза. Да, теперь нельзя гибнуть голову космонавту закликав туалет.

    +#12087
  • +
+

intercepti0n updated:

+
    +
  • Исправлен баг, уводивший статус панель в БСОД при снятии кусков РИГа.

    +#12069
  • +
  • Исправлено действие для снятия нижнего белья во вкладке "Objects".

    +#12069
  • +
  • Исправлены некликабельные подсистемы силиконов, вылезающие во вкладке "Status". Если вам потребуется воспользоваться какой-либо подсистемой - воспользуйтесь действием "Subsystems" во вкладке "Silicon Commands".

    +#12069
  • +
  • Предположительно исправлено отображение объектов во вкладке "Turf".

    +#12069
  • +
  • У педалей теперь появился доступ к глобальному "Check Languages" и "Check Mob Languages" на мобе, позволяющим добавлять и убирать языки любому игроку и / или мобу.

    +#12079
  • +
+

Primudash updated:

+
    +
  • Улитка на голове.

    +#12097
  • +
+

TobyThorne updated:

+
    +
  • Добавлена новая карта - NTS "Entrepot-17", маленькая пересадочная станция, лежащая на пути от "Полумесяца" к "Исходу". Здесь будущий экипаж "Исхода" ждёт, пока последний готовят к началу смены. Карта предназначена исключительно для ночных раундов, когда хочется посидеть в уютных декорациях без необходимости следить за полноразмерной станцией - даже двигатель настраивать не придётся. Для любителей строительства, впрочем, есть большой запас ресурсов и пара RCD.

    +#12051
  • +
+
02 апрель 2024
+

Filatelele updated:

+
    +
  • Сборка/разборка кофемашины и сауны теперь работает.

    +#12050
  • +
  • Сауну теперь можно откручивать.

    +#12050
  • +
  • Платы кофемашины и сауны добавлены в РнД.

    +#12050
  • +
  • Исправлен дюп электроники солнечных панелей.

    +#12047
  • +
  • Разборка турелей и их панелей снова должна работать.

    +#12040
  • +
+

TobyThorne updated:

+
    +
  • Стены снова умеют в ambient occlusion (aka затеняют пол).

    +#12060
  • +
+
01 апрель 2024
+

Filatelele updated:

+
    +
  • Серия фиксов кофемашины.

    +#12014
  • +
  • /🆑

    +#12012
  • +
  • Исправлено недоразумение со сваркой и болтами шлюза.

    +#12015
  • +
  • Болты шлюза больше нельзя обрезать выключенным энергомечом.

    +#12015
  • +
  • Возвращено быстрое раздевание через граб.

    +#12018
  • +
  • Госты снова могут осматривать атомы.

    +#12022
  • +
  • Стекло в сауне Исхода снова имеет правильное направление.

    +#12034
  • +
+

BaraBara updated:

+
    +
  • Трубы, эмиттеры и прочие вертящиеся предметы теперь крутятся на альтклик

    +#11894
  • +
+

intercepti0n updated:

+
    +
  • Двойной клик по атому теперь позволяет увидеть расширенное описание атома, содержащее флафф, лорную заметку и опциональную информацию для антагонистов.

    +#11992
  • +
  • Теперь информацию о защите брони и робустность оружия можно посмотреть в обычном чате, нажав по гиперссылки, появляющейся в конце описания.

    +#11992
  • +
+
31 март 2024
+

TobyThorne updated:

+
    +
  • Продолжается добавление и обновление иконок предметов в руках. Двойные есворды теперь можно держать в одной руке, а плазменные пилы не меняют цвет. И ещё всякое по мелочи.

    +#11984
  • +
  • Обновление иконок получили дыхательные маски, медицинские маски и банданы. Последние теперь не так сильно похожи на трусы.

    +#11984
  • +
  • Многим маскам (банданы, шарфы, дыхательные маски и не только) теперь можно переключать слой командой "Switch Mask Layer". В альтернативном режиме маска перекрывается волосами.

    +#11984
  • +
+
30 март 2024
+

Filatelele updated:

+
    +
  • В результате ракетно-бомбового удара были уничтожены макросы класса "Бросок"

    +#11970
  • +
  • Добавлен эффект ряби при высокой температуре газовой смеси.

    +#11983
  • +
+

Zert0X updated:

+
    +
  • Фикс различных багов ксенобио.

    +#11978
  • +
+

intercepti0n updated:

+
    +
  • Вкладка МС теперь значительно меньше загружает клиент.

    +#11959
  • +
  • Портирована стат панель на основе браузера с TG.

    +#11959
  • +
+
29 март 2024
+

TobyThorne updated:

+
    +
  • Продолжается добавление и обновление предметов в руках. Ведро снова выглядит как ведро, фонарики стали иммерсивнее, мыло и гранаты не невидимые, и ещё огромная куча всего.

    +#11971
  • +
  • (!) Пожалуйста, репортите предметы, у которых нет спрайтов в руках, либо эти спрайты сломаны (например, полностью отсутствует спрайт для "задней" руки). Их ещё очень много, но всплывают они в самых неожиданных местах.

    +#11971
  • +
+
28 март 2024
+

TobyThorne updated:

+
    +
  • Исправлена ошибка, из-за которой у погибших растений иногда не обновлялся спрайт. Скорее всего.

    +#11965
  • +
  • Исправлена ошибка, из-за которой у некоторых растений-мутантов неправильно окрашивались плоды.

    +#11965
  • +
  • Исправлены иконки ice pepper.

    +#11965
  • +
  • Исправлена иконка mini hoe - на них дополнительно накладывался цвет, из-за чего спрайт был слишком тёмным.

    +#11965
  • +
  • Куча исправлений предметов в руках. Добавлены иконки для кучи предметов (стаки материалов, плитка, обувь, перчатки, етц), у которых их не было, добавлены отсутствующие у некоторых иконок направления (в основном - "задняя" рука при виде сбоку), перерисованы некоторые старые (тулбоксы, коробки, болоны, етц).

    +#11962
  • +
  • Исправлена ошибка, из-за которой некоторые предметы в руках (например, провода) не красились в нужный цвет.

    +#11962
  • +
+
26 март 2024
+

intercepti0n updated:

+
    +
  • Порталы больше не убивают сервер рекурсией.

    +#11948
  • +
+

TobyThorne updated:

+
    +
  • Исправлена ошибка, из-за которой эмоуты выделялись курсивом.

    +#11932
  • +
  • Переработано отображение предметов в руках. Теперь в боковой проекции предмет в "задней" руке не "просвечивает" через одежду (или пузо).

    +#11943
  • +
  • Раньше предметы в правой руке всегда отображались поверх предметов в левой, даже когда персонаж стоял левым боком к экрану. Ушла эпоха.

    +#11943
  • +
  • В руках у тонких бодибилдов предметы теперь смещаются: большинство предметов теперь не летает в воздухе перед персонажем.

    +#11943
  • +
+

Rampoch updated:

+
    +
  • Эклипс: Приведение карты к обнове голодека;

    +#11891
  • +
  • Эклипс: Обновление баз антагов на ЦК улучшениями Крипера;

    +#11891
  • +
  • Эклипс: Фикс рантаймов;

    +#11891
  • +
  • Эклипс: Прочие улучшения декора.

    +#11891
  • +
+
24 март 2024
+

TobyThorne updated:

+
    +
  • Обновлены спрайты некоторой обуви, магбутсов и белых/латексных перчаток.

    +#11919
  • +
  • Изменена логика работы префа "Show Splashes (Runechat-Like-Popups)", поскольку многие сообщения переделываются в сплеши, которые не на каждом экране можно разглядеть. Теперь имеются три опции - выводить сплеш только на экране, выводить его только в чате, либо выводить и туда, и сюда. Настоятельно рекомендуется обновить преф вручную, ибо он мог сбиться.

    +#11904
  • +
  • Награда за убийство по контракту увеличена с 2/4 до 4/6 ТК.

    +#11923
  • +
+

Filatelele updated:

+
    +
  • Гуантанамо апдейт. Теперь космонавтов можно купать в туалете и ведрах с водой и другими жидкостями.

    +#11887
  • +
  • Мыши привели проводку станции в совершенно негодное состояние. Теперь свет включается не мгновенно.

    +#11922
  • +
  • Иногда со светом происходит что-то странное при хлопках. Постарайтесь не хлопать в ладоши.

    +#11921
  • +
  • Браузерный интерфейс выбора языков заменен на современный TGUI.

    +#11907
  • +
  • Крафт выключенной сваркой более недоступен.

    +#11912
  • +
+

Primudash updated:

+
    +
  • Добавлена крышка для блюспейсшейкера.

    +#11900
  • +
+

intercepti0n updated:

+
    +
  • Добавлена возможность играть со старой позицией чата. По стандарту у всех игроков стоит "совремнная" версия.

    +#11920
  • +
  • Кнопки и инпутбокс теперь плоские, глаза больше не вытекают при их виде.

    +#11920
  • +
+

Port by Filatelele, re-sprite by TobyThorne updated:

+
    +
  • Порт кофемашины с ТГ. Варим кофе со стилем.

    +#11825
  • +
+

Zert0X updated:

+
    +
  • Вернулась старая логика лестниц.

    +#11905
  • +
+
21 март 2024
+

TobyThorne updated:

+
    +
  • Обновлены спрайты лабораторных халатов и некоторой обуви.

    +#11888
  • +
+

Primudash updated:

+
    +
  • Резиновую уточку теперь можно носить на голове.

    +#11892
  • +
+

intercepti0n updated:

+
    +
  • Настройки зума и апскейлинга перенесены из верхнего меню в меню настроек.

    +#11883
  • +
  • Окно игры стало еще больше: удалена нижняя позиция чата.

    +#11883
  • +
  • Ввод перенесен под чат, добавлены эстетичные отступы от краев и между элементами.

    +#11883
  • +
  • Добавлено больше опций в настройку апскейлинга, на выбор предлагаются следующие варианты: нормальный, ближайший сосед, размытие.

    +#11883
  • +
  • Добавлена настройка для отключения статус-окошка, теперь билд точно переместился в двадцать первый век.

    +#11884
  • +
+
19 март 2024
+

TobyThorne updated:

+
    +
  • Обновлены спрайты униформ: СМО, медиков, химиков, вирусологов, учёных, инженеров, атмосферников, КМа и обычная (серая + цветные варианты).

    +#11857
  • +
+

Filatelele updated:

+
    +
  • Улучшение видимости людей в вотчлисте - теперь они отдельно помечаются в педальном who.

    +#11874
  • +
  • Shield diffuser снова разбирается.

    +#11873
  • +
  • Граната с голосовым активатором должна начать работать корректно.

    +#11873
  • +
  • Исправлено недоразумение сломавшее разбор укрепленных стенок.

    +#11873
  • +
  • Госты снова могут рассматривать ID-карты издалека.

    +#11873
  • +
  • Исправлен баг в результате которого нельзя было разварить камеру сваркой.

    +#11873
  • +
  • При разборе гирдера ломом больше не наносится удар после завершения do_after().

    +#11873
  • +
  • Стак-машина шахтеров должна перестать выдавать стаки с нулем листов.

    +#11873
  • +
  • Пиксельхантинг отменяется. Теперь можно доставать предметы из инвентаря просто кликая по их оверлею, а не только по самим предметам.

    +#11875
  • +
+
18 март 2024
+

Filatelele updated:

+
    +
  • Слегка поднял цену картриджей для РЦД.

    +#11854
  • +
  • Дюп материи через листы стали в РЦД исправлен.

    +#11854
  • +
  • Исправлено некорректное отображение некоторых структур в интерфейсе РЦД.

    +#11854
  • +
  • Исправлен неправильный тип machine frame в РЦД.

    +#11854
  • +
  • Шпионские жучки снова должны корректно работать.

    +#11852
  • +
  • Порт крутого TGUI с /TG/ для защищенных кодом ящиков.

    +#11848
  • +
  • Исправлено недоразумение не позволявшее игрокам приваривать броню при сборке мехов.

    +#11853
  • +
  • APC снова можно разварить.

    +#11865
  • +
+

intercepti0n updated:

+
    +
  • Удален старый статус бар, занимавший нижнюю часть окна.

    +#11862
  • +
  • Добавлен новый статус бар, занимающий немного места в левом нижнем углу окна с картой.

    +#11862
  • +
  • Добавлена поддержка темной темы в статус бар.

    +#11862
  • +
+
17 март 2024
+

intercepti0n updated:

+
    +
  • Театральные костюмы больше невозможно вынести из голодека.

    +#11827
  • +
  • Театрельные костюмы пропадают при смене программы.

    +#11827
  • +
  • Сообщение о емаге консоли голодека заменено на сплеш.

    +#11827
  • +
  • Добавлена возможность разбирать консоль голодека, настройки безопасности и взлома сохраняются.

    +#11827
  • +
+

TobyThorne updated:

+
    +
  • Яна нашли и вернули на "Исход".

    +#11834
  • +
  • Исправлено отображение инфракрасных лучей.

    +#11835
  • +
  • Исправлены некоторые проблемы с кабелями на "Исходе".

    +#11841
  • +
  • Исправлена анимация движения у серых мышей при движении влево. Теперь заживём.

    +#11837
  • +
  • Исправлены стены у "Гитары" рядом со спутником.

    +#11836
  • +
  • Обновлено описание завёрнутых в бумагу предметов, теперь оно правильно описывает их размер.

    +#11838
  • +
  • Исправлено отображение галстуков на бодибилдах кроме Normal.

    +#11840
  • +
+

Filatelele updated:

+
    +
  • Ксенолобби победило. Теперь таяры и унатхи могут надевать боксерские перчатки (воксов снова обидели).

    +#11822
  • +
  • В фитнес-вендоматах можно купить нормальные боксерские перчатки, использующие актуальный код боевки. Боксерские перчатки на голодеке все так же позволяют проникнуться духом старой боевки.

    +#11822
  • +
  • Засовывание включенной дубинки в раковину начало проигрывать корректный звук.

    +#11823
  • +
  • Сваривание осколков стекла снова должно корректно работать.

    +#11846
  • +
  • Исправлена ошибка, не дававшая игрокам вырезать по дереву.

    +#11846
  • +
+
15 март 2024
+

intercepti0n & LeviafanWeber updated:

+
    +
  • Полностью переписан код голодека: нвая реализация позволяет создавать более интересные и наполненные декором карты без редактирования центком уровня на всех имеющихся картах.

    +#11652
  • +
  • Интерфейс голодека переведен на TGUI.

    +#11652
  • +
  • Обновлен список программ голодека и соответсвующие им карты.

    +#11652
  • +
+

Filatelele updated:

+
    +
  • Новые звуки включения/выключения сварки.

    +#11817
  • +
  • Новый визуальный эффект при использовании сварки.

    +#11817
  • +
+

TobyThorne updated:

+
    +
  • Исправлена ошибка, из-за которой все оставляли одинаковые отпечатки пальцев.

    +#11818
  • +
+
13 март 2024
+

TobyThorne updated:

+
    +
  • Добавлен новый класс мага - Musclemancer.

    +#11807
  • +
  • На базу визарда добавлена несдвигаемая волшебная палочка.

    +#11807
  • +
  • Голодный вампир больше не становится зелёным.

    +#11807
  • +
  • В аплинк повара добавлен Meat Hook. Тип урона: чистый, урон: 36.0, перезарядка: 4 секунды.

    +#11795
  • +
+

Filatelele updated:

+
    +
  • Исправлено недоразумение в результате которого проигрывался убогий звук при реджуве/гибе.

    +#11812
  • +
  • Исправлен некорректный слой баррикад на некоторых картах, что приводило к смешным результатам - например как в гетто-казино Фронтира.

    +#11800
  • +
+

Doster-d updated:

+
    +
  • Внутренние органы не показываются в point to и прочих вещей с view

    +#11808
  • +
12 март 2024

Filatelele updated:

    diff --git a/html/changelogs/.all_changelog.json b/html/changelogs/.all_changelog.json index 54d70e1ee81..97c4203bb4e 100644 --- a/html/changelogs/.all_changelog.json +++ b/html/changelogs/.all_changelog.json @@ -1,4 +1,893 @@ [ + { + "author": "FelixArzt", + "date": "2024-04-05T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Бригада рабочих-таяр установила отсутствующий пожарный шлюз на входе в шахтерку Исхода.", + "pr": 12106 + } + ] + }, + { + "author": "intercepti0n", + "date": "2024-04-05T00:00:00+03:00", + "changes": [ + { + "prefix": "RscAdd", + "message": "У администраторов появилось действие \"Change Lobby Art\" во вкладке \"Server\", позволяющее изменить рисунок в лобби на любой другой из доступных.", + "pr": 12090 + } + ] + }, + { + "author": "igorsaux", + "date": "2024-04-05T00:00:00+03:00", + "changes": [ + { + "prefix": "ImageAdd", + "message": "Добавлен эффект холодного дыхания.", + "pr": 12103 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-04-05T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Патч первого дня для Entrepot-17. Исправлены неработающие мусорки, отсутствие камер и невозможность запарить баньку без танцев с надувными стенами.", + "pr": 12114 + } + ] + }, + { + "author": "Filatelele", + "date": "2024-04-04T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Синтетики снова могут участвовать в лотерее релейшнов.", + "pr": 12091 + }, + { + "prefix": "BugFix", + "message": "Исправлено недоразумение в результате которого космонавтов нельзя было окунуть в ведро.", + "pr": 12087 + }, + { + "prefix": "BugFix", + "message": "Добавлен кулдаун крышке унитаза. Да, теперь нельзя гибнуть голову космонавту закликав туалет.", + "pr": 12087 + } + ] + }, + { + "author": "intercepti0n", + "date": "2024-04-04T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Исправлен баг, уводивший статус панель в БСОД при снятии кусков РИГа.", + "pr": 12069 + }, + { + "prefix": "BugFix", + "message": "Исправлено действие для снятия нижнего белья во вкладке \"Objects\".", + "pr": 12069 + }, + { + "prefix": "BugFix", + "message": "Исправлены некликабельные подсистемы силиконов, вылезающие во вкладке \"Status\". Если вам потребуется воспользоваться какой-либо подсистемой - воспользуйтесь действием \"Subsystems\" во вкладке \"Silicon Commands\".", + "pr": 12069 + }, + { + "prefix": "Experiment", + "message": "Предположительно исправлено отображение объектов во вкладке \"Turf\".", + "pr": 12069 + }, + { + "prefix": "RscAdd", + "message": "У педалей теперь появился доступ к глобальному \"Check Languages\" и \"Check Mob Languages\" на мобе, позволяющим добавлять и убирать языки любому игроку и / или мобу.", + "pr": 12079 + } + ] + }, + { + "author": "Primudash", + "date": "2024-04-04T00:00:00+03:00", + "changes": [ + { + "prefix": "RscAdd", + "message": "Улитка на голове.", + "pr": 12097 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-04-04T00:00:00+03:00", + "changes": [ + { + "prefix": "RscAdd", + "message": "Добавлена новая карта - NTS \"Entrepot-17\", маленькая пересадочная станция, лежащая на пути от \"Полумесяца\" к \"Исходу\". Здесь будущий экипаж \"Исхода\" ждёт, пока последний готовят к началу смены. Карта предназначена исключительно для ночных раундов, когда хочется посидеть в уютных декорациях без необходимости следить за полноразмерной станцией - даже двигатель настраивать не придётся. Для любителей строительства, впрочем, есть большой запас ресурсов и пара RCD.", + "pr": 12051 + } + ] + }, + { + "author": "Filatelele", + "date": "2024-04-02T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Сборка/разборка кофемашины и сауны теперь работает.", + "pr": 12050 + }, + { + "prefix": "BugFix", + "message": "Сауну теперь можно откручивать.", + "pr": 12050 + }, + { + "prefix": "Tweak", + "message": "Платы кофемашины и сауны добавлены в РнД.", + "pr": 12050 + }, + { + "prefix": "BugFix", + "message": "Исправлен дюп электроники солнечных панелей.", + "pr": 12047 + }, + { + "prefix": "BugFix", + "message": "Разборка турелей и их панелей снова должна работать.", + "pr": 12040 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-04-02T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Стены снова умеют в ambient occlusion (aka затеняют пол).", + "pr": 12060 + } + ] + }, + { + "author": "Filatelele", + "date": "2024-04-01T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Серия фиксов кофемашины.", + "pr": 12014 + }, + { + "prefix": "RscAdd", + "message": "/\uD83C\uDD91", + "pr": 12012 + }, + { + "prefix": "BugFix", + "message": "Исправлено недоразумение со сваркой и болтами шлюза.", + "pr": 12015 + }, + { + "prefix": "BugFix", + "message": "Болты шлюза больше нельзя обрезать выключенным энергомечом.", + "pr": 12015 + }, + { + "prefix": "BugFix", + "message": "Возвращено быстрое раздевание через граб.", + "pr": 12018 + }, + { + "prefix": "BugFix", + "message": "Госты снова могут осматривать атомы.", + "pr": 12022 + }, + { + "prefix": "BugFix", + "message": "Стекло в сауне Исхода снова имеет правильное направление.", + "pr": 12034 + } + ] + }, + { + "author": "BaraBara", + "date": "2024-04-01T00:00:00+03:00", + "changes": [ + { + "prefix": "Tweak", + "message": "Трубы, эмиттеры и прочие вертящиеся предметы теперь крутятся на альтклик", + "pr": 11894 + } + ] + }, + { + "author": "intercepti0n", + "date": "2024-04-01T00:00:00+03:00", + "changes": [ + { + "prefix": "RscAdd", + "message": "Двойной клик по атому теперь позволяет увидеть расширенное описание атома, содержащее флафф, лорную заметку и опциональную информацию для антагонистов.", + "pr": 11992 + }, + { + "prefix": "RscAdd", + "message": "Теперь информацию о защите брони и робустность оружия можно посмотреть в обычном чате, нажав по гиперссылки, появляющейся в конце описания.", + "pr": 11992 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-03-31T00:00:00+03:00", + "changes": [ + { + "prefix": "ImageAdd", + "message": "Продолжается добавление и обновление иконок предметов в руках. Двойные есворды теперь можно держать в одной руке, а плазменные пилы не меняют цвет. И ещё всякое по мелочи.", + "pr": 11984 + }, + { + "prefix": "ImageAdd", + "message": "Обновление иконок получили дыхательные маски, медицинские маски и банданы. Последние теперь не так сильно похожи на трусы.", + "pr": 11984 + }, + { + "prefix": "Tweak", + "message": "Многим маскам (банданы, шарфы, дыхательные маски и не только) теперь можно переключать слой командой \"Switch Mask Layer\". В альтернативном режиме маска перекрывается волосами.", + "pr": 11984 + } + ] + }, + { + "author": "Filatelele", + "date": "2024-03-30T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "В результате ракетно-бомбового удара были уничтожены макросы класса \"Бросок\"", + "pr": 11970 + }, + { + "prefix": "RscAdd", + "message": "Добавлен эффект ряби при высокой температуре газовой смеси.", + "pr": 11983 + } + ] + }, + { + "author": "Zert0X", + "date": "2024-03-30T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Фикс различных багов ксенобио.", + "pr": 11978 + } + ] + }, + { + "author": "intercepti0n", + "date": "2024-03-30T00:00:00+03:00", + "changes": [ + { + "prefix": "Experiment", + "message": "Вкладка МС теперь значительно меньше загружает клиент.", + "pr": 11959 + }, + { + "prefix": "Experiment", + "message": "Портирована стат панель на основе браузера с TG.", + "pr": 11959 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-03-29T00:00:00+03:00", + "changes": [ + { + "prefix": "ImageAdd", + "message": "Продолжается добавление и обновление предметов в руках. Ведро снова выглядит как ведро, фонарики стали иммерсивнее, мыло и гранаты не невидимые, и ещё огромная куча всего.", + "pr": 11971 + }, + { + "prefix": "Admin", + "message": "(!) Пожалуйста, репортите предметы, у которых нет спрайтов в руках, либо эти спрайты сломаны (например, полностью отсутствует спрайт для \"задней\" руки). Их ещё очень много, но всплывают они в самых неожиданных местах.", + "pr": 11971 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-03-28T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Исправлена ошибка, из-за которой у погибших растений иногда не обновлялся спрайт. Скорее всего.", + "pr": 11965 + }, + { + "prefix": "BugFix", + "message": "Исправлена ошибка, из-за которой у некоторых растений-мутантов неправильно окрашивались плоды.", + "pr": 11965 + }, + { + "prefix": "BugFix", + "message": "Исправлены иконки ice pepper.", + "pr": 11965 + }, + { + "prefix": "BugFix", + "message": "Исправлена иконка mini hoe - на них дополнительно накладывался цвет, из-за чего спрайт был слишком тёмным.", + "pr": 11965 + }, + { + "prefix": "ImageAdd", + "message": "Куча исправлений предметов в руках. Добавлены иконки для кучи предметов (стаки материалов, плитка, обувь, перчатки, етц), у которых их не было, добавлены отсутствующие у некоторых иконок направления (в основном - \"задняя\" рука при виде сбоку), перерисованы некоторые старые (тулбоксы, коробки, болоны, етц).", + "pr": 11962 + }, + { + "prefix": "BugFix", + "message": "Исправлена ошибка, из-за которой некоторые предметы в руках (например, провода) не красились в нужный цвет.", + "pr": 11962 + } + ] + }, + { + "author": "intercepti0n", + "date": "2024-03-26T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Порталы больше не убивают сервер рекурсией.", + "pr": 11948 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-03-26T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Исправлена ошибка, из-за которой эмоуты выделялись курсивом.", + "pr": 11932 + }, + { + "prefix": "BugFix", + "message": "Переработано отображение предметов в руках. Теперь в боковой проекции предмет в \"задней\" руке не \"просвечивает\" через одежду (или пузо).", + "pr": 11943 + }, + { + "prefix": "BugFix", + "message": "Раньше предметы в правой руке всегда отображались поверх предметов в левой, даже когда персонаж стоял левым боком к экрану. Ушла эпоха.", + "pr": 11943 + }, + { + "prefix": "BugFix", + "message": "В руках у тонких бодибилдов предметы теперь смещаются: большинство предметов теперь не летает в воздухе перед персонажем.", + "pr": 11943 + } + ] + }, + { + "author": "Rampoch", + "date": "2024-03-26T00:00:00+03:00", + "changes": [ + { + "prefix": "MapTweak", + "message": "Эклипс: Приведение карты к обнове голодека;", + "pr": 11891 + }, + { + "prefix": "MapTweak", + "message": "Эклипс: Обновление баз антагов на ЦК улучшениями Крипера;", + "pr": 11891 + }, + { + "prefix": "MapTweak", + "message": "Эклипс: Фикс рантаймов;", + "pr": 11891 + }, + { + "prefix": "MapTweak", + "message": "Эклипс: Прочие улучшения декора.", + "pr": 11891 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-03-24T00:00:00+03:00", + "changes": [ + { + "prefix": "ImageAdd", + "message": "Обновлены спрайты некоторой обуви, магбутсов и белых/латексных перчаток.", + "pr": 11919 + }, + { + "prefix": "RscAdd", + "message": "Изменена логика работы префа \"Show Splashes (Runechat-Like-Popups)\", поскольку многие сообщения переделываются в сплеши, которые не на каждом экране можно разглядеть. Теперь имеются три опции - выводить сплеш только на экране, выводить его только в чате, либо выводить и туда, и сюда. Настоятельно рекомендуется обновить преф вручную, ибо он мог сбиться.", + "pr": 11904 + }, + { + "prefix": "Balance", + "message": "Награда за убийство по контракту увеличена с 2/4 до 4/6 ТК.", + "pr": 11923 + } + ] + }, + { + "author": "Filatelele", + "date": "2024-03-24T00:00:00+03:00", + "changes": [ + { + "prefix": "RscAdd", + "message": "Гуантанамо апдейт. Теперь космонавтов можно купать в туалете и ведрах с водой и другими жидкостями.", + "pr": 11887 + }, + { + "prefix": "Tweak", + "message": "Мыши привели проводку станции в совершенно негодное состояние. Теперь свет включается не мгновенно.", + "pr": 11922 + }, + { + "prefix": "Tweak", + "message": "Иногда со светом происходит что-то странное при хлопках. Постарайтесь не хлопать в ладоши.", + "pr": 11921 + }, + { + "prefix": "RscAdd", + "message": "Браузерный интерфейс выбора языков заменен на современный TGUI.", + "pr": 11907 + }, + { + "prefix": "BugFix", + "message": "Крафт выключенной сваркой более недоступен.", + "pr": 11912 + } + ] + }, + { + "author": "Primudash", + "date": "2024-03-24T00:00:00+03:00", + "changes": [ + { + "prefix": "ImageAdd", + "message": "Добавлена крышка для блюспейсшейкера.", + "pr": 11900 + } + ] + }, + { + "author": "intercepti0n", + "date": "2024-03-24T00:00:00+03:00", + "changes": [ + { + "prefix": "RscAdd", + "message": "Добавлена возможность играть со старой позицией чата. По стандарту у всех игроков стоит \"совремнная\" версия.", + "pr": 11920 + }, + { + "prefix": "Tweak", + "message": "Кнопки и инпутбокс теперь плоские, глаза больше не вытекают при их виде.", + "pr": 11920 + } + ] + }, + { + "author": "Port by Filatelele, re-sprite by TobyThorne", + "date": "2024-03-24T00:00:00+03:00", + "changes": [ + { + "prefix": "RscAdd", + "message": "Порт кофемашины с ТГ. Варим кофе со стилем.", + "pr": 11825 + } + ] + }, + { + "author": "Zert0X", + "date": "2024-03-24T00:00:00+03:00", + "changes": [ + { + "prefix": "Tweak", + "message": "Вернулась старая логика лестниц.", + "pr": 11905 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-03-21T00:00:00+03:00", + "changes": [ + { + "prefix": "ImageAdd", + "message": "Обновлены спрайты лабораторных халатов и некоторой обуви.", + "pr": 11888 + } + ] + }, + { + "author": "Primudash", + "date": "2024-03-21T00:00:00+03:00", + "changes": [ + { + "prefix": "RscAdd", + "message": "Резиновую уточку теперь можно носить на голове.", + "pr": 11892 + } + ] + }, + { + "author": "intercepti0n", + "date": "2024-03-21T00:00:00+03:00", + "changes": [ + { + "prefix": "Tweak", + "message": "Настройки зума и апскейлинга перенесены из верхнего меню в меню настроек.", + "pr": 11883 + }, + { + "prefix": "RscDel", + "message": "Окно игры стало еще больше: удалена нижняя позиция чата.", + "pr": 11883 + }, + { + "prefix": "RscAdd", + "message": "Ввод перенесен под чат, добавлены эстетичные отступы от краев и между элементами.", + "pr": 11883 + }, + { + "prefix": "RscAdd", + "message": "Добавлено больше опций в настройку апскейлинга, на выбор предлагаются следующие варианты: нормальный, ближайший сосед, размытие.", + "pr": 11883 + }, + { + "prefix": "RscAdd", + "message": "Добавлена настройка для отключения статус-окошка, теперь билд точно переместился в двадцать первый век.", + "pr": 11884 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-03-19T00:00:00+03:00", + "changes": [ + { + "prefix": "Tweak", + "message": "Обновлены спрайты униформ: СМО, медиков, химиков, вирусологов, учёных, инженеров, атмосферников, КМа и обычная (серая + цветные варианты).", + "pr": 11857 + } + ] + }, + { + "author": "Filatelele", + "date": "2024-03-19T00:00:00+03:00", + "changes": [ + { + "prefix": "Admin", + "message": "Улучшение видимости людей в вотчлисте - теперь они отдельно помечаются в педальном who.", + "pr": 11874 + }, + { + "prefix": "BugFix", + "message": "Shield diffuser снова разбирается.", + "pr": 11873 + }, + { + "prefix": "BugFix", + "message": "Граната с голосовым активатором должна начать работать корректно.", + "pr": 11873 + }, + { + "prefix": "BugFix", + "message": "Исправлено недоразумение сломавшее разбор укрепленных стенок.", + "pr": 11873 + }, + { + "prefix": "BugFix", + "message": "Госты снова могут рассматривать ID-карты издалека.", + "pr": 11873 + }, + { + "prefix": "BugFix", + "message": "Исправлен баг в результате которого нельзя было разварить камеру сваркой.", + "pr": 11873 + }, + { + "prefix": "BugFix", + "message": "При разборе гирдера ломом больше не наносится удар после завершения do_after().", + "pr": 11873 + }, + { + "prefix": "BugFix", + "message": "Стак-машина шахтеров должна перестать выдавать стаки с нулем листов.", + "pr": 11873 + }, + { + "prefix": "Tweak", + "message": "Пиксельхантинг отменяется. Теперь можно доставать предметы из инвентаря просто кликая по их оверлею, а не только по самим предметам.", + "pr": 11875 + } + ] + }, + { + "author": "Filatelele", + "date": "2024-03-18T00:00:00+03:00", + "changes": [ + { + "prefix": "Tweak", + "message": "Слегка поднял цену картриджей для РЦД.", + "pr": 11854 + }, + { + "prefix": "BugFix", + "message": "Дюп материи через листы стали в РЦД исправлен.", + "pr": 11854 + }, + { + "prefix": "BugFix", + "message": "Исправлено некорректное отображение некоторых структур в интерфейсе РЦД.", + "pr": 11854 + }, + { + "prefix": "BugFix", + "message": "Исправлен неправильный тип machine frame в РЦД.", + "pr": 11854 + }, + { + "prefix": "BugFix", + "message": "Шпионские жучки снова должны корректно работать.", + "pr": 11852 + }, + { + "prefix": "Tweak", + "message": "Порт крутого TGUI с /TG/ для защищенных кодом ящиков.", + "pr": 11848 + }, + { + "prefix": "BugFix", + "message": "Исправлено недоразумение не позволявшее игрокам приваривать броню при сборке мехов.", + "pr": 11853 + }, + { + "prefix": "BugFix", + "message": "APC снова можно разварить.", + "pr": 11865 + } + ] + }, + { + "author": "intercepti0n", + "date": "2024-03-18T00:00:00+03:00", + "changes": [ + { + "prefix": "RscDel", + "message": "Удален старый статус бар, занимавший нижнюю часть окна.", + "pr": 11862 + }, + { + "prefix": "RscAdd", + "message": "Добавлен новый статус бар, занимающий немного места в левом нижнем углу окна с картой.", + "pr": 11862 + }, + { + "prefix": "RscAdd", + "message": "Добавлена поддержка темной темы в статус бар.", + "pr": 11862 + } + ] + }, + { + "author": "intercepti0n", + "date": "2024-03-17T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Театральные костюмы больше невозможно вынести из голодека.", + "pr": 11827 + }, + { + "prefix": "BugFix", + "message": "Театрельные костюмы пропадают при смене программы.", + "pr": 11827 + }, + { + "prefix": "Tweak", + "message": "Сообщение о емаге консоли голодека заменено на сплеш.", + "pr": 11827 + }, + { + "prefix": "RscAdd", + "message": "Добавлена возможность разбирать консоль голодека, настройки безопасности и взлома сохраняются.", + "pr": 11827 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-03-17T00:00:00+03:00", + "changes": [ + { + "prefix": "MapTweak", + "message": "Яна нашли и вернули на \"Исход\".", + "pr": 11834 + }, + { + "prefix": "BugFix", + "message": "Исправлено отображение инфракрасных лучей.", + "pr": 11835 + }, + { + "prefix": "BugFix", + "message": "Исправлены некоторые проблемы с кабелями на \"Исходе\".", + "pr": 11841 + }, + { + "prefix": "BugFix", + "message": "Исправлена анимация движения у серых мышей при движении влево. Теперь заживём.", + "pr": 11837 + }, + { + "prefix": "BugFix", + "message": "Исправлены стены у \"Гитары\" рядом со спутником.", + "pr": 11836 + }, + { + "prefix": "Tweak", + "message": "Обновлено описание завёрнутых в бумагу предметов, теперь оно правильно описывает их размер.", + "pr": 11838 + }, + { + "prefix": "BugFix", + "message": "Исправлено отображение галстуков на бодибилдах кроме Normal.", + "pr": 11840 + } + ] + }, + { + "author": "Filatelele", + "date": "2024-03-17T00:00:00+03:00", + "changes": [ + { + "prefix": "Tweak", + "message": "Ксенолобби победило. Теперь таяры и унатхи могут надевать боксерские перчатки (воксов снова обидели).", + "pr": 11822 + }, + { + "prefix": "Tweak", + "message": "В фитнес-вендоматах можно купить нормальные боксерские перчатки, использующие актуальный код боевки. Боксерские перчатки на голодеке все так же позволяют проникнуться духом старой боевки.", + "pr": 11822 + }, + { + "prefix": "BugFix", + "message": "Засовывание включенной дубинки в раковину начало проигрывать корректный звук.", + "pr": 11823 + }, + { + "prefix": "BugFix", + "message": "Сваривание осколков стекла снова должно корректно работать.", + "pr": 11846 + }, + { + "prefix": "BugFix", + "message": "Исправлена ошибка, не дававшая игрокам вырезать по дереву.", + "pr": 11846 + } + ] + }, + { + "author": "intercepti0n & LeviafanWeber", + "date": "2024-03-15T00:00:00+03:00", + "changes": [ + { + "prefix": "RscAdd", + "message": "Полностью переписан код голодека: нвая реализация позволяет создавать более интересные и наполненные декором карты без редактирования центком уровня на всех имеющихся картах.", + "pr": 11652 + }, + { + "prefix": "RscAdd", + "message": "Интерфейс голодека переведен на TGUI.", + "pr": 11652 + }, + { + "prefix": "MapTweak", + "message": "Обновлен список программ голодека и соответсвующие им карты.", + "pr": 11652 + } + ] + }, + { + "author": "Filatelele", + "date": "2024-03-15T00:00:00+03:00", + "changes": [ + { + "prefix": "SoundAdd", + "message": "Новые звуки включения/выключения сварки.", + "pr": 11817 + }, + { + "prefix": "RscAdd", + "message": "Новый визуальный эффект при использовании сварки.", + "pr": 11817 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-03-15T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Исправлена ошибка, из-за которой все оставляли одинаковые отпечатки пальцев.", + "pr": 11818 + } + ] + }, + { + "author": "TobyThorne", + "date": "2024-03-13T00:00:00+03:00", + "changes": [ + { + "prefix": "RscAdd", + "message": "Добавлен новый класс мага - Musclemancer.", + "pr": 11807 + }, + { + "prefix": "RscAdd", + "message": "На базу визарда добавлена несдвигаемая волшебная палочка.", + "pr": 11807 + }, + { + "prefix": "Tweak", + "message": "Голодный вампир больше не становится зелёным.", + "pr": 11807 + }, + { + "prefix": "RscAdd", + "message": "В аплинк повара добавлен Meat Hook. Тип урона: чистый, урон: 36.0, перезарядка: 4 секунды.", + "pr": 11795 + } + ] + }, + { + "author": "Filatelele", + "date": "2024-03-13T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Исправлено недоразумение в результате которого проигрывался убогий звук при реджуве/гибе.", + "pr": 11812 + }, + { + "prefix": "BugFix", + "message": "Исправлен некорректный слой баррикад на некоторых картах, что приводило к смешным результатам - например как в гетто-казино Фронтира.", + "pr": 11800 + } + ] + }, + { + "author": "Doster-d", + "date": "2024-03-13T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Внутренние органы не показываются в point to и прочих вещей с view", + "pr": 11808 + } + ] + }, { "author": "Filatelele", "date": "2024-03-12T00:00:00+03:00", diff --git a/html/statbrowser/statbrowser.css b/html/statbrowser/statbrowser.css new file mode 100644 index 00000000000..24c8fd939b4 --- /dev/null +++ b/html/statbrowser/statbrowser.css @@ -0,0 +1,222 @@ +body { + font-family: Verdana, Geneva, Tahoma, sans-serif; + font-size: 12px !important; + margin: 0 !important; + padding: 0 !important; + overflow-x: hidden; + overflow-y: scroll; +} + +body.dark { + background-color: #131313; + color: #b2c4dd; + scrollbar-base-color: #1c1c1c; + scrollbar-face-color: #3b3b3b; + scrollbar-3dlight-color: #252525; + scrollbar-highlight-color: #252525; + scrollbar-track-color: #1c1c1c; + scrollbar-arrow-color: #929292; + scrollbar-shadow-color: #3b3b3b; +} + +#menu { + background-color: #f0f0f0; + position: fixed; + width: 100%; + z-index: 100; +} + +.dark #menu { + background-color: #202020; +} + +#statcontent { + padding: 7px 7px 7px 7px; +} + +a { + color: black; + text-decoration: none; +} + +.dark a { + color: #b2c4dd; +} + +a:hover, +.dark a:hover { + text-decoration: underline; +} + +ul { + list-style-type: none; + margin: 0; + padding: 0; + background-color: #333; +} + +li { + float: left; +} + +li a { + display: block; + color: white; + text-align: center; + padding: 14px 16px; + text-decoration: none; +} + +li a:hover:not(.active) { + background-color: #111; +} + +.button-container { + display: inline-flex; + flex-wrap: wrap-reverse; + flex-direction: row; + align-items: flex-start; + overflow-x: hidden; + white-space: pre-wrap; + padding: 0 4px; +} + +.button { + background-color: #dfdfdf; + border: 1px solid #cecece; + border-bottom-width: 2px; + color: rgba(0, 0, 0, 0.7); + padding: 6px 4px 4px; + text-align: center; + text-decoration: none; + font-size: 12px; + margin: 0; + cursor: pointer; + transition-duration: 100ms; + order: 3; + min-width: 40px; +} + +.dark button { + background-color: #222222; + border-color: #343434; + color: rgba(255, 255, 255, 0.5); +} + +.button:hover { + background-color: #ececec; + transition-duration: 0; +} + +.dark button:hover { + background-color: #2e2e2e; +} + +.button:active, +.button.active { + background-color: #ffffff; + color: black; + border-top-color: #cecece; + border-left-color: #cecece; + border-right-color: #cecece; + border-bottom-color: #ffffff; +} + +.dark .button:active, +.dark .button.active { + background-color: #444444; + color: white; + border-top-color: #343434; + border-left-color: #343434; + border-right-color: #343434; + border-bottom-color: #ffffff; +} + +.grid-container { + margin: -2px; + margin-right: -15px; +} + +.grid-item { + position: relative; + display: inline-block; + width: 100%; + box-sizing: border-box; + overflow: visible; + padding: 3px 2px; + text-decoration: none; +} + +@media only screen and (min-width: 300px) { + .grid-item { + width: 50%; + } +} + +@media only screen and (min-width: 430px) { + .grid-item { + width: 33%; + } +} + +@media only screen and (min-width: 560px) { + .grid-item { + width: 25%; + } +} + +@media only screen and (min-width: 770px) { + .grid-item { + width: 20%; + } +} + +.grid-item:hover { + z-index: 1; +} + +.grid-item:hover .grid-item-text { + width: auto; + text-decoration: underline; +} + +.grid-item-text { + display: inline-block; + width: 100%; + background-color: #ffffff; + margin: 0 -6px; + padding: 0 6px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + pointer-events: none; +} + +.dark .grid-item-text { + background-color: #131313; +} + +.link { + display: inline; + background: none; + border: none; + padding: 7px 14px; + color: black; + text-decoration: none; + cursor: pointer; + font-size: 13px; + margin: 2px 2px; +} + +.dark .link { + color: #abc6ec; +} + +.link:hover { + text-decoration: underline; +} + +img { + -ms-interpolation-mode: nearest-neighbor; + image-rendering: pixelated; +} diff --git a/html/statbrowser/statbrowser.html b/html/statbrowser/statbrowser.html new file mode 100644 index 00000000000..1aea8811d58 --- /dev/null +++ b/html/statbrowser/statbrowser.html @@ -0,0 +1,3 @@ + +
    +
    diff --git a/html/statbrowser/statbrowser.js b/html/statbrowser/statbrowser.js new file mode 100644 index 00000000000..985524b0ae7 --- /dev/null +++ b/html/statbrowser/statbrowser.js @@ -0,0 +1,815 @@ +// Polyfills and compatibility ------------------------------------------------ +var decoder = decodeURIComponent || unescape; +if (!Array.prototype.includes) { + Array.prototype.includes = function (thing) { + for (var i = 0; i < this.length; i++) { + if (this[i] == thing) return true; + } + return false; + }; +} +if (!String.prototype.trim) { + String.prototype.trim = function () { + return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""); + }; +} + +// Status panel implementation ------------------------------------------------ +var status_tab_parts = ["Loading..."]; +var current_tab = null; +var mc_tab_parts = [["Loading...", ""]]; +var spells = []; +var spell_tabs = []; +var verb_tabs = []; +var verbs = [["", ""]]; // list with a list inside +var permanent_tabs = []; // tabs that won't be cleared by wipes +var turfcontents = []; +var turfname = ""; +var imageRetryDelay = 500; +var imageRetryLimit = 50; +var menu = document.getElementById("menu"); +var under_menu = document.getElementById("under_menu"); +var statcontentdiv = document.getElementById("statcontent"); +var storedimages = []; +var split_admin_tabs = false; + +// Any BYOND commands that could result in the client's focus changing go through this +// to ensure that when we relinquish our focus, we don't do it after the result of +// a command has already taken focus for itself. +function run_after_focus(callback) { + setTimeout(callback, 0); +} + +function createStatusTab(name) { + if (name.indexOf(".") != -1) { + var splitName = name.split("."); + if (split_admin_tabs && splitName[0] === "Admin") name = splitName[1]; + else name = splitName[0]; + } + if (document.getElementById(name) || name.trim() == "") { + return; + } + if (!verb_tabs.includes(name) && !permanent_tabs.includes(name)) { + return; + } + var B = document.createElement("BUTTON"); + B.onclick = function () { + tab_change(name); + this.blur(); + }; + B.id = name; + B.textContent = name; + B.className = "button"; + //ORDERING ALPHABETICALLY + B.style.order = name.charCodeAt(0); + if (name == "Status" || name == "MC") { + B.style.order = name == "Status" ? 1 : 2; + } + //END ORDERING + menu.appendChild(B); + SendTabToByond(name); + under_menu.style.height = menu.clientHeight + "px"; +} + +function removeStatusTab(name) { + if (!document.getElementById(name) || permanent_tabs.includes(name)) { + return; + } + for (var i = verb_tabs.length - 1; i >= 0; --i) { + if (verb_tabs[i] == name) { + verb_tabs.splice(i, 1); + } + } + menu.removeChild(document.getElementById(name)); + TakeTabFromByond(name); + under_menu.style.height = menu.clientHeight + "px"; +} + +function sortVerbs() { + verbs.sort(function (a, b) { + var selector = a[0] == b[0] ? 1 : 0; + if (a[selector].toUpperCase() < b[selector].toUpperCase()) { + return 1; + } else if (a[selector].toUpperCase() > b[selector].toUpperCase()) { + return -1; + } + return 0; + }); +} + +window.onresize = function () { + under_menu.style.height = menu.clientHeight + "px"; +}; + +function addPermanentTab(name) { + if (!permanent_tabs.includes(name)) { + permanent_tabs.push(name); + } + createStatusTab(name); +} + +function removePermanentTab(name) { + for (var i = permanent_tabs.length - 1; i >= 0; --i) { + if (permanent_tabs[i] == name) { + permanent_tabs.splice(i, 1); + } + } + removeStatusTab(name); +} + +function checkStatusTab() { + for (var i = 0; i < menu.children.length; i++) { + if ( + !verb_tabs.includes(menu.children[i].id) && + !permanent_tabs.includes(menu.children[i].id) + ) { + menu.removeChild(menu.children[i]); + } + } +} + +function remove_verb(v) { + var verb_to_remove = v; // to_remove = [verb:category, verb:name] + for (var i = verbs.length - 1; i >= 0; i--) { + var part_to_remove = verbs[i]; + if (part_to_remove[1] == verb_to_remove[1]) { + verbs.splice(i, 1); + } + } +} + +function check_verbs() { + for (var v = verb_tabs.length - 1; v >= 0; v--) { + verbs_cat_check(verb_tabs[v]); + } +} + +function verbs_cat_check(cat) { + var tabCat = cat; + if (cat.indexOf(".") != -1) { + var splitName = cat.split("."); + if (split_admin_tabs && splitName[0] === "Admin") tabCat = splitName[1]; + else tabCat = splitName[0]; + } + var verbs_in_cat = 0; + var verbcat = ""; + if (!verb_tabs.includes(tabCat)) { + removeStatusTab(tabCat); + return; + } + for (var v = 0; v < verbs.length; v++) { + var part = verbs[v]; + verbcat = part[0]; + if (verbcat.indexOf(".") != -1) { + var splitName = verbcat.split("."); + if (split_admin_tabs && splitName[0] === "Admin") verbcat = splitName[1]; + else verbcat = splitName[0]; + } + if (verbcat != tabCat || verbcat.trim() == "") { + continue; + } else { + verbs_in_cat = 1; + break; // we only need one + } + } + if (verbs_in_cat != 1) { + removeStatusTab(tabCat); + if (current_tab == tabCat) tab_change("Status"); + } +} + +function findVerbindex(name, verblist) { + for (var i = 0; i < verblist.length; i++) { + var part = verblist[i]; + if (part[1] == name) return i; + } +} +function wipe_verbs() { + verbs = [["", ""]]; + verb_tabs = []; + checkStatusTab(); // remove all empty verb tabs +} + +function update_verbs() { + wipe_verbs(); + Byond.sendMessage("Update-Verbs"); +} + +function SendTabsToByond() { + var tabstosend = []; + tabstosend = tabstosend.concat(permanent_tabs, verb_tabs); + for (var i = 0; i < tabstosend.length; i++) { + SendTabToByond(tabstosend[i]); + } +} + +function SendTabToByond(tab) { + Byond.sendMessage("Send-Tabs", { tab: tab }); +} + +//Byond can't have this tab anymore since we're removing it +function TakeTabFromByond(tab) { + Byond.sendMessage("Remove-Tabs", { tab: tab }); +} + +function spell_cat_check(cat) { + var spells_in_cat = 0; + var spellcat = ""; + for (var s = 0; s < spells.length; s++) { + var spell = spells[s]; + spellcat = spell[0]; + if (spellcat == cat) { + spells_in_cat++; + } + } + if (spells_in_cat < 1) { + removeStatusTab(cat); + } +} + +function tab_change(tab) { + if (tab == current_tab) return; + if (document.getElementById(current_tab)) + document.getElementById(current_tab).className = "button"; // disable active on last button + current_tab = tab; + set_byond_tab(tab); + if (document.getElementById(tab)) + document.getElementById(tab).className = "button active"; // make current button active + var spell_tabs_thingy = spell_tabs.includes(tab); + var verb_tabs_thingy = verb_tabs.includes(tab); + if (tab == "Status") { + draw_status(); + } else if (tab == "MC") { + draw_mc(); + } else if (spell_tabs_thingy) { + draw_spells(tab); + } else if (verb_tabs_thingy) { + draw_verbs(tab); + } else if (tab == "Debug Stat Panel") { + draw_debug(); + } else if (tab == turfname) { + draw_listedturf(); + } else { + statcontentdiv.textContext = "Loading..."; + } + Byond.winset(Byond.windowId, { + "is-visible": true, + }); +} + +function set_byond_tab(tab) { + Byond.sendMessage("Set-Tab", { tab: tab }); +} + +function draw_debug() { + statcontentdiv.textContent = ""; + var wipeverbstabs = document.createElement("div"); + var link = document.createElement("a"); + link.onclick = function () { + wipe_verbs(); + }; + link.textContent = "Wipe All Verbs"; + wipeverbstabs.appendChild(link); + document.getElementById("statcontent").appendChild(wipeverbstabs); + var wipeUpdateVerbsTabs = document.createElement("div"); + var updateLink = document.createElement("a"); + updateLink.onclick = function () { + update_verbs(); + }; + updateLink.textContent = "Wipe and Update All Verbs"; + wipeUpdateVerbsTabs.appendChild(updateLink); + document.getElementById("statcontent").appendChild(wipeUpdateVerbsTabs); + var text = document.createElement("div"); + text.textContent = "Verb Tabs:"; + document.getElementById("statcontent").appendChild(text); + var table1 = document.createElement("table"); + for (var i = 0; i < verb_tabs.length; i++) { + var part = verb_tabs[i]; + // Hide subgroups except admin subgroups if they are split + if (verb_tabs[i].lastIndexOf(".") != -1) { + var splitName = verb_tabs[i].split("."); + if (split_admin_tabs && splitName[0] === "Admin") part = splitName[1]; + else continue; + } + var tr = document.createElement("tr"); + var td1 = document.createElement("td"); + td1.textContent = part; + var a = document.createElement("a"); + a.onclick = (function (part) { + return function () { + removeStatusTab(part); + }; + })(part); + a.textContent = " Delete Tab " + part; + td1.appendChild(a); + tr.appendChild(td1); + table1.appendChild(tr); + } + document.getElementById("statcontent").appendChild(table1); + var header2 = document.createElement("div"); + header2.textContent = "Verbs:"; + document.getElementById("statcontent").appendChild(header2); + var table2 = document.createElement("table"); + for (var v = 0; v < verbs.length; v++) { + var part2 = verbs[v]; + var trr = document.createElement("tr"); + var tdd1 = document.createElement("td"); + tdd1.textContent = part2[0]; + var tdd2 = document.createElement("td"); + tdd2.textContent = part2[1]; + trr.appendChild(tdd1); + trr.appendChild(tdd2); + table2.appendChild(trr); + } + document.getElementById("statcontent").appendChild(table2); + var text3 = document.createElement("div"); + text3.textContent = "Permanent Tabs:"; + document.getElementById("statcontent").appendChild(text3); + var table3 = document.createElement("table"); + for (var i = 0; i < permanent_tabs.length; i++) { + var part3 = permanent_tabs[i]; + var trrr = document.createElement("tr"); + var tddd1 = document.createElement("td"); + tddd1.textContent = part3; + trrr.appendChild(tddd1); + table3.appendChild(trrr); + } + document.getElementById("statcontent").appendChild(table3); +} +function draw_status() { + if (!document.getElementById("Status")) { + createStatusTab("Status"); + current_tab = "Status"; + } + statcontentdiv.textContent = ""; + for (var i = 0; i < status_tab_parts.length; i++) { + if (status_tab_parts[i].trim() == "") { + document + .getElementById("statcontent") + .appendChild(document.createElement("br")); + } else { + var div = document.createElement("div"); + div.textContent = status_tab_parts[i]; + document.getElementById("statcontent").appendChild(div); + } + } + if (verb_tabs.length == 0 || !verbs) { + Byond.command("Fix-Stat-Panel"); + } +} + +function draw_mc() { + statcontentdiv.textContent = ""; + var table = document.createElement("table"); + for (var i = 0; i < mc_tab_parts.length; i++) { + var part = mc_tab_parts[i]; + var tr = document.createElement("tr"); + var td1 = document.createElement("td"); + td1.textContent = part[0]; + var td2 = document.createElement("td"); + if (part[2]) { + var a = document.createElement("a"); + a.href = "?_src_=vars;Vars=" + part[2]; + a.textContent = part[1]; + td2.appendChild(a); + } else { + td2.textContent = part[1]; + } + tr.appendChild(td1); + tr.appendChild(td2); + table.appendChild(tr); + } + document.getElementById("statcontent").appendChild(table); +} + +function iconError(e) { + if (current_tab != turfname) { + return; + } + setTimeout(function () { + var node = e.target; + var current_attempts = Number(node.getAttribute("data-attempts")) || 0; + if (current_attempts > imageRetryLimit) { + return; + } + var src = node.src; + node.src = null; + node.src = src + "#" + current_attempts; + node.setAttribute("data-attempts", current_attempts + 1); + draw_listedturf(); + }, imageRetryDelay); +} + +function draw_listedturf() { + statcontentdiv.textContent = ""; + var table = document.createElement("table"); + for (var i = 0; i < turfcontents.length; i++) { + var part = turfcontents[i]; + if (storedimages[part[1]] == null && part[2]) { + var img = document.createElement("img"); + img.src = part[2]; + img.id = part[1]; + storedimages[part[1]] = part[2]; + img.onerror = iconError; + table.appendChild(img); + } else { + var img = document.createElement("img"); + img.onerror = iconError; + img.src = storedimages[part[1]]; + img.id = part[1]; + table.appendChild(img); + } + var b = document.createElement("div"); + var clickcatcher = ""; + b.className = "link"; + b.onmousedown = (function (part) { + // The outer function is used to close over a fresh "part" variable, + // rather than every onmousedown getting the "part" of the last entry. + return function (e) { + e.preventDefault(); + clickcatcher = "?src=" + part[1]; + switch (e.button) { + case 1: + clickcatcher += ";statpanel_item_click=middle"; + break; + case 2: + clickcatcher += ";statpanel_item_click=right"; + break; + default: + clickcatcher += ";statpanel_item_click=left"; + } + if (e.shiftKey) { + clickcatcher += ";statpanel_item_shiftclick=1"; + } + if (e.ctrlKey) { + clickcatcher += ";statpanel_item_ctrlclick=1"; + } + if (e.altKey) { + clickcatcher += ";statpanel_item_altclick=1"; + } + window.location.href = clickcatcher; + }; + })(part); + b.textContent = part[0]; + table.appendChild(b); + table.appendChild(document.createElement("br")); + } + document.getElementById("statcontent").appendChild(table); +} + +function remove_listedturf() { + removePermanentTab(turfname); + checkStatusTab(); + if (current_tab == turfname) { + tab_change("Status"); + } +} + +function remove_mc() { + removePermanentTab("MC"); + if (current_tab == "MC") { + tab_change("Status"); + } +} + +function draw_spells(cat) { + statcontentdiv.textContent = ""; + var table = document.createElement("table"); + for (var i = 0; i < spells.length; i++) { + var part = spells[i]; + if (part[0] != cat) continue; + var tr = document.createElement("tr"); + var td1 = document.createElement("td"); + td1.textContent = part[1]; + var td2 = document.createElement("td"); + if (part[3]) { + var a = document.createElement("a"); + a.href = "?src=" + part[3] + ";statpanel_item_click=left"; + a.textContent = part[2]; + td2.appendChild(a); + } else { + td2.textContent = part[2]; + } + tr.appendChild(td1); + tr.appendChild(td2); + table.appendChild(tr); + } + document.getElementById("statcontent").appendChild(table); +} + +function make_verb_onclick(command) { + return function () { + run_after_focus(function () { + Byond.command(command); + }); + }; +} + +function draw_verbs(cat) { + statcontentdiv.textContent = ""; + var table = document.createElement("div"); + var additions = {}; // additional sub-categories to be rendered + table.className = "grid-container"; + sortVerbs(); + if (split_admin_tabs && cat.lastIndexOf(".") != -1) { + var splitName = cat.split("."); + if (splitName[0] === "Admin") cat = splitName[1]; + } + verbs.reverse(); // sort verbs backwards before we draw + for (var i = 0; i < verbs.length; ++i) { + var part = verbs[i]; + var name = part[0]; + if (split_admin_tabs && name.lastIndexOf(".") != -1) { + var splitName = name.split("."); + if (splitName[0] === "Admin") name = splitName[1]; + } + var command = part[1]; + + if ( + command && + name.lastIndexOf(cat, 0) != -1 && + (name.length == cat.length || name.charAt(cat.length) == ".") + ) { + var subCat = name.lastIndexOf(".") != -1 ? name.split(".")[1] : null; + if (subCat && !additions[subCat]) { + var newTable = document.createElement("div"); + newTable.className = "grid-container"; + additions[subCat] = newTable; + } + + var a = document.createElement("a"); + a.href = "#"; + a.onclick = make_verb_onclick(command.replace(/\s/g, "-")); + a.className = "grid-item"; + var t = document.createElement("span"); + t.textContent = command; + t.className = "grid-item-text"; + a.appendChild(t); + (subCat ? additions[subCat] : table).appendChild(a); + } + } + + // Append base table to view + var content = document.getElementById("statcontent"); + content.appendChild(table); + + // Append additional sub-categories if relevant + for (var cat in additions) { + if (additions.hasOwnProperty(cat)) { + // do addition here + var header = document.createElement("h3"); + header.textContent = cat; + content.appendChild(header); + content.appendChild(additions[cat]); + } + } +} + +function set_theme(which) { + if (which == "light") { + document.body.className = ""; + set_style_sheet("browserOutput_white"); + } else if (which == "dark") { + document.body.className = "dark"; + set_style_sheet("browserOutput"); + } +} + +function set_style_sheet(sheet) { + if (document.getElementById("goonStyle")) { + var currentSheet = document.getElementById("goonStyle"); + currentSheet.parentElement.removeChild(currentSheet); + } + var head = document.getElementsByTagName("head")[0]; + var sheetElement = document.createElement("link"); + sheetElement.id = "goonStyle"; + sheetElement.rel = "stylesheet"; + sheetElement.type = "text/css"; + sheetElement.href = sheet + ".css"; + sheetElement.media = "all"; + head.appendChild(sheetElement); +} + +function restoreFocus() { + run_after_focus(function () { + Byond.winset("map", { + focus: true, + }); + }); +} + +function add_verb_list(payload) { + var to_add = payload; // list of a list with category and verb inside it + to_add.sort(); // sort what we're adding + for (var i = 0; i < to_add.length; i++) { + var part = to_add[i]; + if (!part[0]) continue; + var category = part[0]; + if (category.indexOf(".") != -1) { + var splitName = category.split("."); + if (split_admin_tabs && splitName[0] === "Admin") category = splitName[1]; + else category = splitName[0]; + } + if (findVerbindex(part[1], verbs)) continue; + if (verb_tabs.includes(category)) { + verbs.push(part); + if (current_tab == category) { + draw_verbs(category); // redraw if we added a verb to the tab we're currently in + } + } else if (category) { + verb_tabs.push(category); + verbs.push(part); + createStatusTab(category); + } + } +} + +function init_spells() { + var cat = ""; + for (var i = 0; i < spell_tabs.length; i++) { + cat = spell_tabs[i]; + if (cat.length > 0) { + verb_tabs.push(cat); + createStatusTab(cat); + } + } +} + +document.addEventListener("mouseup", restoreFocus); +document.addEventListener("keyup", restoreFocus); + +if (!current_tab) { + addPermanentTab("Status"); + tab_change("Status"); +} + +window.onload = function () { + Byond.sendMessage("Update-Verbs"); +}; + +Byond.subscribeTo("update_spells", function (payload) { + spell_tabs = payload.spell_tabs; + var do_update = false; + if (spell_tabs.includes(current_tab)) { + do_update = true; + } + init_spells(); + if (payload.actions) { + spells = payload.actions; + if (do_update) { + draw_spells(current_tab); + } + } else { + remove_spells(); + } +}); + +Byond.subscribeTo("remove_verb_list", function (v) { + var to_remove = v; + for (var i = 0; i < to_remove.length; i++) { + remove_verb(to_remove[i]); + } + check_verbs(); + sortVerbs(); + if (verb_tabs.includes(current_tab)) draw_verbs(current_tab); +}); + +// passes a 2D list of (verbcategory, verbname) creates tabs and adds verbs to respective list +// example (IC, Say) +Byond.subscribeTo("init_verbs", function (payload) { + wipe_verbs(); // remove all verb categories so we can replace them + checkStatusTab(); // remove all status tabs + verb_tabs = payload.panel_tabs; + verb_tabs.sort(); // sort it + var do_update = false; + var cat = ""; + for (var i = 0; i < verb_tabs.length; i++) { + cat = verb_tabs[i]; + createStatusTab(cat); // create a category if the verb doesn't exist yet + } + if (verb_tabs.includes(current_tab)) { + do_update = true; + } + if (payload.verblist) { + add_verb_list(payload.verblist); + sortVerbs(); // sort them + if (do_update) { + draw_verbs(current_tab); + } + } + SendTabsToByond(); +}); + +Byond.subscribeTo("update_stat", function (payload) { + status_tab_parts = []; + var parsed = payload.global_data; + + for (var i = 0; i < parsed.length; i++) + if (parsed[i] != null) status_tab_parts.push(parsed[i]); + + parsed = payload.other_str; + + for (var i = 0; i < parsed.length; i++) + if (parsed[i] != null) status_tab_parts.push(parsed[i]); + + if (current_tab == "Status") { + draw_status(); + } else if (current_tab == "Debug Stat Panel") { + draw_debug(); + } +}); + +Byond.subscribeTo("update_mc", function (payload) { + mc_tab_parts = payload.mc_data; + mc_tab_parts.splice(0, 0, ["Location:", payload.coord_entry]); + + if (!verb_tabs.includes("MC")) { + verb_tabs.push("MC"); + } + + createStatusTab("MC"); + + if (current_tab == "MC") { + draw_mc(); + } +}); + +Byond.subscribeTo("remove_spells", function () { + for (var s = 0; s < spell_tabs.length; s++) { + removeStatusTab(spell_tabs[s]); + } +}); + +Byond.subscribeTo("init_spells", function () { + var cat = ""; + for (var i = 0; i < spell_tabs.length; i++) { + cat = spell_tabs[i]; + if (cat.length > 0) { + verb_tabs.push(cat); + createStatusTab(cat); + } + } +}); + +Byond.subscribeTo("check_spells", function () { + for (var v = 0; v < spell_tabs.length; v++) { + spell_cat_check(spell_tabs[v]); + } +}); + +Byond.subscribeTo("create_debug", function () { + if (!document.getElementById("Debug Stat Panel")) { + addPermanentTab("Debug Stat Panel"); + } else { + removePermanentTab("Debug Stat Panel"); + } +}); + +Byond.subscribeTo("create_listedturf", function (TN) { + remove_listedturf(); // remove the last one if we had one + turfname = TN; + addPermanentTab(turfname); + tab_change(turfname); +}); + +Byond.subscribeTo("remove_admin_tabs", function () { + remove_mc(); +}); + +Byond.subscribeTo("update_listedturf", function (TC) { + turfcontents = TC; + if (current_tab == turfname) { + draw_listedturf(); + } +}); + +Byond.subscribeTo("update_interviews", function (I) { + interviewManager = I; + if (current_tab == "Tickets") { + draw_interviews(); + } +}); + +Byond.subscribeTo("update_split_admin_tabs", function (status) { + status = status == true; + + if (split_admin_tabs !== status) { + if (split_admin_tabs === true) { + removeStatusTab("Events"); + removeStatusTab("Fun"); + removeStatusTab("Game"); + } + update_verbs(); + } + split_admin_tabs = status; +}); + +Byond.subscribeTo("add_admin_tabs", function () { + addPermanentTab("MC"); +}); + +Byond.subscribeTo("remove_listedturf", remove_listedturf); + +Byond.subscribeTo("remove_mc", remove_mc); + +Byond.subscribeTo("add_verb_list", add_verb_list); diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index e673155c726..8b8376533ea 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/effects/particles/smoke.dmi b/icons/effects/particles/smoke.dmi new file mode 100644 index 00000000000..6dd1ac064af Binary files /dev/null and b/icons/effects/particles/smoke.dmi differ diff --git a/icons/effects/projectiles/impact.dmi b/icons/effects/projectiles/impact.dmi index 9aa14e8690c..599d4f915f5 100644 Binary files a/icons/effects/projectiles/impact.dmi and b/icons/effects/projectiles/impact.dmi differ diff --git a/icons/effects/projectiles/muzzle.dmi b/icons/effects/projectiles/muzzle.dmi index 19eb509f046..f87d1bef3fa 100644 Binary files a/icons/effects/projectiles/muzzle.dmi and b/icons/effects/projectiles/muzzle.dmi differ diff --git a/icons/effects/projectiles/tracer.dmi b/icons/effects/projectiles/tracer.dmi index a683f625dcb..49bae40603d 100644 Binary files a/icons/effects/projectiles/tracer.dmi and b/icons/effects/projectiles/tracer.dmi differ diff --git a/icons/effects/temp_effects.dmi b/icons/effects/temp_effects.dmi new file mode 100644 index 00000000000..e0697554236 Binary files /dev/null and b/icons/effects/temp_effects.dmi differ diff --git a/icons/effects/water_vapor.dmi b/icons/effects/water_vapor.dmi new file mode 100644 index 00000000000..eaeaad25d08 Binary files /dev/null and b/icons/effects/water_vapor.dmi differ diff --git a/icons/hud/radial.dmi b/icons/hud/radial.dmi index 8bf13989830..ceb8b7ca02b 100644 Binary files a/icons/hud/radial.dmi and b/icons/hud/radial.dmi differ diff --git a/icons/hud/screen_spells.dmi b/icons/hud/screen_spells.dmi index f0a4e72d434..e2486bc26bc 100644 Binary files a/icons/hud/screen_spells.dmi and b/icons/hud/screen_spells.dmi differ diff --git a/icons/inv_slots/acessories/mob.dmi b/icons/inv_slots/acessories/mob.dmi index 7551daf8278..e56181a65c4 100644 Binary files a/icons/inv_slots/acessories/mob.dmi and b/icons/inv_slots/acessories/mob.dmi differ diff --git a/icons/inv_slots/acessories/mob_fat.dmi b/icons/inv_slots/acessories/mob_fat.dmi index e62ec3175bc..6aa0c34266b 100644 Binary files a/icons/inv_slots/acessories/mob_fat.dmi and b/icons/inv_slots/acessories/mob_fat.dmi differ diff --git a/icons/inv_slots/acessories/mob_slim.dmi b/icons/inv_slots/acessories/mob_slim.dmi index 3286705594d..28eff9a71be 100644 Binary files a/icons/inv_slots/acessories/mob_slim.dmi and b/icons/inv_slots/acessories/mob_slim.dmi differ diff --git a/icons/inv_slots/acessories/mob_slim_m.dmi b/icons/inv_slots/acessories/mob_slim_m.dmi index 134885734fa..358b99aeece 100644 Binary files a/icons/inv_slots/acessories/mob_slim_m.dmi and b/icons/inv_slots/acessories/mob_slim_m.dmi differ diff --git a/icons/inv_slots/gloves/mob.dmi b/icons/inv_slots/gloves/mob.dmi index f3a36c88d18..17c181f5ce8 100644 Binary files a/icons/inv_slots/gloves/mob.dmi and b/icons/inv_slots/gloves/mob.dmi differ diff --git a/icons/inv_slots/gloves/mob_slim.dmi b/icons/inv_slots/gloves/mob_slim.dmi index ff99f34252b..4036ae077f8 100644 Binary files a/icons/inv_slots/gloves/mob_slim.dmi and b/icons/inv_slots/gloves/mob_slim.dmi differ diff --git a/icons/inv_slots/hats/mob.dmi b/icons/inv_slots/hats/mob.dmi index 3a80d96fd8c..13252a1b748 100644 Binary files a/icons/inv_slots/hats/mob.dmi and b/icons/inv_slots/hats/mob.dmi differ diff --git a/icons/inv_slots/masks/mob.dmi b/icons/inv_slots/masks/mob.dmi index fa0f2f39a99..22c270ca242 100644 Binary files a/icons/inv_slots/masks/mob.dmi and b/icons/inv_slots/masks/mob.dmi differ diff --git a/icons/inv_slots/masks/mob_slim.dmi b/icons/inv_slots/masks/mob_slim.dmi index 773d614be02..84947bb9c53 100644 Binary files a/icons/inv_slots/masks/mob_slim.dmi and b/icons/inv_slots/masks/mob_slim.dmi differ diff --git a/icons/inv_slots/masks/mob_tajaran.dmi b/icons/inv_slots/masks/mob_tajaran.dmi index 998fe476585..0e612ec9b02 100644 Binary files a/icons/inv_slots/masks/mob_tajaran.dmi and b/icons/inv_slots/masks/mob_tajaran.dmi differ diff --git a/icons/inv_slots/masks/mob_unathi.dmi b/icons/inv_slots/masks/mob_unathi.dmi index 30f796ba1b1..b8b175de22e 100644 Binary files a/icons/inv_slots/masks/mob_unathi.dmi and b/icons/inv_slots/masks/mob_unathi.dmi differ diff --git a/icons/inv_slots/masks/mob_vox.dmi b/icons/inv_slots/masks/mob_vox.dmi index 7230a4465df..dd9acb9dbea 100644 Binary files a/icons/inv_slots/masks/mob_vox.dmi and b/icons/inv_slots/masks/mob_vox.dmi differ diff --git a/icons/inv_slots/shoes/mob.dmi b/icons/inv_slots/shoes/mob.dmi index 72eb6147186..b78b02c6d60 100644 Binary files a/icons/inv_slots/shoes/mob.dmi and b/icons/inv_slots/shoes/mob.dmi differ diff --git a/icons/inv_slots/shoes/mob_slim.dmi b/icons/inv_slots/shoes/mob_slim.dmi index f2e5e809853..f2da21a4404 100644 Binary files a/icons/inv_slots/shoes/mob_slim.dmi and b/icons/inv_slots/shoes/mob_slim.dmi differ diff --git a/icons/inv_slots/shoes/mob_slimalt.dmi b/icons/inv_slots/shoes/mob_slimalt.dmi index 643ed67bdc1..3c554c72450 100644 Binary files a/icons/inv_slots/shoes/mob_slimalt.dmi and b/icons/inv_slots/shoes/mob_slimalt.dmi differ diff --git a/icons/inv_slots/suits/mob.dmi b/icons/inv_slots/suits/mob.dmi index 6923f8f69a1..ec6863e9215 100644 Binary files a/icons/inv_slots/suits/mob.dmi and b/icons/inv_slots/suits/mob.dmi differ diff --git a/icons/inv_slots/suits/mob_fat.dmi b/icons/inv_slots/suits/mob_fat.dmi index 553811abf19..ec492fece10 100644 Binary files a/icons/inv_slots/suits/mob_fat.dmi and b/icons/inv_slots/suits/mob_fat.dmi differ diff --git a/icons/inv_slots/suits/mob_slim.dmi b/icons/inv_slots/suits/mob_slim.dmi index 6abf72d9d88..dbed06bbadb 100644 Binary files a/icons/inv_slots/suits/mob_slim.dmi and b/icons/inv_slots/suits/mob_slim.dmi differ diff --git a/icons/inv_slots/suits/mob_slim_m.dmi b/icons/inv_slots/suits/mob_slim_m.dmi index 5b67e332261..85461c12c7c 100644 Binary files a/icons/inv_slots/suits/mob_slim_m.dmi and b/icons/inv_slots/suits/mob_slim_m.dmi differ diff --git a/icons/inv_slots/suits/mob_slimalt.dmi b/icons/inv_slots/suits/mob_slimalt.dmi index 1258a3c94ae..1d2cfb82d33 100644 Binary files a/icons/inv_slots/suits/mob_slimalt.dmi and b/icons/inv_slots/suits/mob_slimalt.dmi differ diff --git a/icons/inv_slots/uniforms/hand_l_default.dmi b/icons/inv_slots/uniforms/hand_l_default.dmi index c360ffcfb7d..b44c45f9fc8 100644 Binary files a/icons/inv_slots/uniforms/hand_l_default.dmi and b/icons/inv_slots/uniforms/hand_l_default.dmi differ diff --git a/icons/inv_slots/uniforms/hand_l_slim.dmi b/icons/inv_slots/uniforms/hand_l_slim.dmi index 6517ef78a1d..a60eb8942d7 100644 Binary files a/icons/inv_slots/uniforms/hand_l_slim.dmi and b/icons/inv_slots/uniforms/hand_l_slim.dmi differ diff --git a/icons/inv_slots/uniforms/hand_r_default.dmi b/icons/inv_slots/uniforms/hand_r_default.dmi index 557d9aebb8d..ee3d5540466 100644 Binary files a/icons/inv_slots/uniforms/hand_r_default.dmi and b/icons/inv_slots/uniforms/hand_r_default.dmi differ diff --git a/icons/inv_slots/uniforms/hand_r_slim.dmi b/icons/inv_slots/uniforms/hand_r_slim.dmi index 2d0b346dbdb..fd9b4209dd2 100644 Binary files a/icons/inv_slots/uniforms/hand_r_slim.dmi and b/icons/inv_slots/uniforms/hand_r_slim.dmi differ diff --git a/icons/inv_slots/uniforms/icon.dmi b/icons/inv_slots/uniforms/icon.dmi index a76ebe52d88..a013a37a5bd 100644 Binary files a/icons/inv_slots/uniforms/icon.dmi and b/icons/inv_slots/uniforms/icon.dmi differ diff --git a/icons/inv_slots/uniforms/mob.dmi b/icons/inv_slots/uniforms/mob.dmi index db47ad24834..d170a1e830c 100644 Binary files a/icons/inv_slots/uniforms/mob.dmi and b/icons/inv_slots/uniforms/mob.dmi differ diff --git a/icons/inv_slots/uniforms/mob_fat.dmi b/icons/inv_slots/uniforms/mob_fat.dmi index 316ad2f293e..3ca7566d891 100644 Binary files a/icons/inv_slots/uniforms/mob_fat.dmi and b/icons/inv_slots/uniforms/mob_fat.dmi differ diff --git a/icons/inv_slots/uniforms/mob_slim.dmi b/icons/inv_slots/uniforms/mob_slim.dmi index c95796071b6..c1fc6d17d70 100644 Binary files a/icons/inv_slots/uniforms/mob_slim.dmi and b/icons/inv_slots/uniforms/mob_slim.dmi differ diff --git a/icons/inv_slots/uniforms/mob_slim_m.dmi b/icons/inv_slots/uniforms/mob_slim_m.dmi index f24feebc8b0..36117e94034 100644 Binary files a/icons/inv_slots/uniforms/mob_slim_m.dmi and b/icons/inv_slots/uniforms/mob_slim_m.dmi differ diff --git a/icons/inv_slots/uniforms/mob_slimalt.dmi b/icons/inv_slots/uniforms/mob_slimalt.dmi index 38e6c74ce61..4b584867b78 100644 Binary files a/icons/inv_slots/uniforms/mob_slimalt.dmi and b/icons/inv_slots/uniforms/mob_slimalt.dmi differ diff --git a/icons/misc/landmarks.dmi b/icons/misc/landmarks.dmi index 8061b7f0935..871ab61cc00 100644 Binary files a/icons/misc/landmarks.dmi and b/icons/misc/landmarks.dmi differ diff --git a/icons/mob/hologram.dmi b/icons/mob/hologram.dmi index a2a47d6ef2c..ad3a357c4d2 100644 Binary files a/icons/mob/hologram.dmi and b/icons/mob/hologram.dmi differ diff --git a/icons/mob/mouse.dmi b/icons/mob/mouse.dmi index 3893217bde9..78956ecb661 100644 Binary files a/icons/mob/mouse.dmi and b/icons/mob/mouse.dmi differ diff --git a/icons/mob/onmob/items/lefthand.dmi b/icons/mob/onmob/items/lefthand.dmi index 8652aa87736..ec52cead8c5 100644 Binary files a/icons/mob/onmob/items/lefthand.dmi and b/icons/mob/onmob/items/lefthand.dmi differ diff --git a/icons/mob/onmob/items/lefthand_backpacks.dmi b/icons/mob/onmob/items/lefthand_backpacks.dmi index 54aa6dba5d4..c261d624452 100644 Binary files a/icons/mob/onmob/items/lefthand_backpacks.dmi and b/icons/mob/onmob/items/lefthand_backpacks.dmi differ diff --git a/icons/mob/onmob/items/lefthand_guns.dmi b/icons/mob/onmob/items/lefthand_guns.dmi index 931a50272e3..6e58dd2664a 100644 Binary files a/icons/mob/onmob/items/lefthand_guns.dmi and b/icons/mob/onmob/items/lefthand_guns.dmi differ diff --git a/icons/mob/onmob/items/lefthand_hats.dmi b/icons/mob/onmob/items/lefthand_hats.dmi index fe127b144e5..21891ea72d8 100644 Binary files a/icons/mob/onmob/items/lefthand_hats.dmi and b/icons/mob/onmob/items/lefthand_hats.dmi differ diff --git a/icons/mob/onmob/items/lefthand_holder.dmi b/icons/mob/onmob/items/lefthand_holder.dmi index 8f365906be2..6a7a5a16ed2 100644 Binary files a/icons/mob/onmob/items/lefthand_holder.dmi and b/icons/mob/onmob/items/lefthand_holder.dmi differ diff --git a/icons/mob/onmob/items/lefthand_slim.dmi b/icons/mob/onmob/items/lefthand_slim.dmi index 84f0f84f196..c81b0b50039 100644 Binary files a/icons/mob/onmob/items/lefthand_slim.dmi and b/icons/mob/onmob/items/lefthand_slim.dmi differ diff --git a/icons/mob/onmob/items/lefthand_spacesuits.dmi b/icons/mob/onmob/items/lefthand_spacesuits.dmi index 82cb4922b81..6e708b5f1aa 100644 Binary files a/icons/mob/onmob/items/lefthand_spacesuits.dmi and b/icons/mob/onmob/items/lefthand_spacesuits.dmi differ diff --git a/icons/mob/onmob/items/lefthand_uniforms.dmi b/icons/mob/onmob/items/lefthand_uniforms.dmi index a05b74e8473..5d17dbaab7c 100644 Binary files a/icons/mob/onmob/items/lefthand_uniforms.dmi and b/icons/mob/onmob/items/lefthand_uniforms.dmi differ diff --git a/icons/mob/onmob/items/lefthand_vessels.dmi b/icons/mob/onmob/items/lefthand_vessels.dmi index 6b826e8f512..c35f9f05b33 100644 Binary files a/icons/mob/onmob/items/lefthand_vessels.dmi and b/icons/mob/onmob/items/lefthand_vessels.dmi differ diff --git a/icons/mob/onmob/items/righthand.dmi b/icons/mob/onmob/items/righthand.dmi index 5b5c602aa5d..9cd6ac98ff3 100644 Binary files a/icons/mob/onmob/items/righthand.dmi and b/icons/mob/onmob/items/righthand.dmi differ diff --git a/icons/mob/onmob/items/righthand_backpacks.dmi b/icons/mob/onmob/items/righthand_backpacks.dmi index b217920fa34..1a1ed2179a9 100644 Binary files a/icons/mob/onmob/items/righthand_backpacks.dmi and b/icons/mob/onmob/items/righthand_backpacks.dmi differ diff --git a/icons/mob/onmob/items/righthand_guns.dmi b/icons/mob/onmob/items/righthand_guns.dmi index a8bc7836c66..8d754498b3a 100644 Binary files a/icons/mob/onmob/items/righthand_guns.dmi and b/icons/mob/onmob/items/righthand_guns.dmi differ diff --git a/icons/mob/onmob/items/righthand_hats.dmi b/icons/mob/onmob/items/righthand_hats.dmi index ba81178b8e8..1575cec5722 100644 Binary files a/icons/mob/onmob/items/righthand_hats.dmi and b/icons/mob/onmob/items/righthand_hats.dmi differ diff --git a/icons/mob/onmob/items/righthand_slim.dmi b/icons/mob/onmob/items/righthand_slim.dmi index a299077d820..ab7243e75b8 100644 Binary files a/icons/mob/onmob/items/righthand_slim.dmi and b/icons/mob/onmob/items/righthand_slim.dmi differ diff --git a/icons/mob/onmob/items/righthand_spacesuits.dmi b/icons/mob/onmob/items/righthand_spacesuits.dmi index 0db6354c6a0..77d6f70b62c 100644 Binary files a/icons/mob/onmob/items/righthand_spacesuits.dmi and b/icons/mob/onmob/items/righthand_spacesuits.dmi differ diff --git a/icons/mob/onmob/items/righthand_uniforms.dmi b/icons/mob/onmob/items/righthand_uniforms.dmi index 50f5ec8bc49..95ca41b8fa3 100644 Binary files a/icons/mob/onmob/items/righthand_uniforms.dmi and b/icons/mob/onmob/items/righthand_uniforms.dmi differ diff --git a/icons/mob/onmob/items/righthand_vessels.dmi b/icons/mob/onmob/items/righthand_vessels.dmi index 3a9e3f21c5d..b700e97e2de 100644 Binary files a/icons/mob/onmob/items/righthand_vessels.dmi and b/icons/mob/onmob/items/righthand_vessels.dmi differ diff --git a/icons/obj/bottleflip.dmi b/icons/obj/bottleflip.dmi index 4bda5464287..eb13c7cc1d3 100644 Binary files a/icons/obj/bottleflip.dmi and b/icons/obj/bottleflip.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index fb7cbccd61c..ea4f3ebfc20 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index cea30c2b4fc..a03fb604bb8 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi index eca659f6844..a80dde4ef7d 100644 Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index ea3ce66ba1e..d49035189af 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index 54a59b0fb68..0498057aa3b 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/icons/obj/hydroponics_growing.dmi b/icons/obj/hydroponics_growing.dmi index 139f48b1385..339aec854fc 100644 Binary files a/icons/obj/hydroponics_growing.dmi and b/icons/obj/hydroponics_growing.dmi differ diff --git a/icons/obj/hydroponics_growing_canonical.dmi b/icons/obj/hydroponics_growing_canonical.dmi index 736223dbdf4..092c4ccbecb 100644 Binary files a/icons/obj/hydroponics_growing_canonical.dmi and b/icons/obj/hydroponics_growing_canonical.dmi differ diff --git a/icons/obj/hydroponics_products.dmi b/icons/obj/hydroponics_products.dmi index ad33e79c72e..5678344ac51 100644 Binary files a/icons/obj/hydroponics_products.dmi and b/icons/obj/hydroponics_products.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 6d2000c9de2..d2bc2b52bf3 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index dbeb49f7c73..9f784c38d2c 100644 Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index fc1289394b4..171bc5f650f 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/machines/coffeemaker.dmi b/icons/obj/machines/coffeemaker.dmi new file mode 100644 index 00000000000..9a66910fd32 Binary files /dev/null and b/icons/obj/machines/coffeemaker.dmi differ diff --git a/icons/obj/machines/sauna.dmi b/icons/obj/machines/sauna.dmi new file mode 100644 index 00000000000..fe0c138b1de Binary files /dev/null and b/icons/obj/machines/sauna.dmi differ diff --git a/icons/obj/musician.dmi b/icons/obj/musician.dmi index e5a391e51a0..ad175b51186 100644 Binary files a/icons/obj/musician.dmi and b/icons/obj/musician.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 7f06b5313c6..437d9a7d963 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/reagent_containers/bottles.dmi b/icons/obj/reagent_containers/bottles.dmi index 5a2951c6e86..96c267f80a7 100644 Binary files a/icons/obj/reagent_containers/bottles.dmi and b/icons/obj/reagent_containers/bottles.dmi differ diff --git a/icons/obj/reagent_containers/condiments.dmi b/icons/obj/reagent_containers/condiments.dmi index bd522fd9e98..8ba71c19bbe 100644 Binary files a/icons/obj/reagent_containers/condiments.dmi and b/icons/obj/reagent_containers/condiments.dmi differ diff --git a/icons/obj/reagent_containers/vessels.dmi b/icons/obj/reagent_containers/vessels.dmi index 167ef3edaff..c535ed232ba 100644 Binary files a/icons/obj/reagent_containers/vessels.dmi and b/icons/obj/reagent_containers/vessels.dmi differ diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi index 9a24a7685cb..6c81ee2ca33 100644 Binary files a/icons/obj/seeds.dmi and b/icons/obj/seeds.dmi differ diff --git a/icons/obj/stairs.dmi b/icons/obj/stairs.dmi index 883b4b65bf1..b215803130a 100644 Binary files a/icons/obj/stairs.dmi and b/icons/obj/stairs.dmi differ diff --git a/icons/obj/stairs_long.dmi b/icons/obj/stairs_long.dmi deleted file mode 100644 index 92ceb27ce63..00000000000 Binary files a/icons/obj/stairs_long.dmi and /dev/null differ diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 3d75c4e5192..d9d37ba41db 100644 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index e980fdcd775..744afbc9a74 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/obj/thalamus.dmi b/icons/obj/thalamus.dmi new file mode 100644 index 00000000000..904160d3a0b Binary files /dev/null and b/icons/obj/thalamus.dmi differ diff --git a/icons/obj/wizard.dmi b/icons/obj/wizard.dmi index 9735e06afb3..d51503dab3d 100644 Binary files a/icons/obj/wizard.dmi and b/icons/obj/wizard.dmi differ diff --git a/icons/turf/flooring/tiles.dmi b/icons/turf/flooring/tiles.dmi index 79fef27f3b7..f1c593afd6a 100644 Binary files a/icons/turf/flooring/tiles.dmi and b/icons/turf/flooring/tiles.dmi differ diff --git a/icons/turf/wall_masks.dmi b/icons/turf/wall_masks.dmi index 3a9d5c4e416..d5bca87f5a2 100644 Binary files a/icons/turf/wall_masks.dmi and b/icons/turf/wall_masks.dmi differ diff --git a/icons/turf/wall_masks_legacy.dmi b/icons/turf/wall_masks_legacy.dmi index d4c7d0a74d2..abb2394b553 100644 Binary files a/icons/turf/wall_masks_legacy.dmi and b/icons/turf/wall_masks_legacy.dmi differ diff --git a/interface/interface.dm b/interface/interface.dm index b911448d075..de7fbeb04c0 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -50,7 +50,7 @@ return /client/verb/bugreport() - set name = "In-game Bug Report" + set name = "Report Bug" set desc = "Create bug report to developers." set hidden = 1 diff --git a/interface/skin.dmf b/interface/skin.dmf index eac6de8abba..1177b818a6f 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -902,58 +902,18 @@ menu "menu" category = "&File" saved-params = "is-checked" elem - name = "&Icons" + name = "&Preferences" command = "" saved-params = "is-checked" - elem "stretch" - name = "&Stretch to fit" - command = ".winset \"mapwindow.map.icon-size=0\"" - category = "&Icons" - is-checked = true - can-check = true - group = "size" - saved-params = "is-checked" - elem "icon128" - name = "&128x128" - command = ".winset \"mapwindow.map.icon-size=128\"" - category = "&Icons" - can-check = true - group = "size" - saved-params = "is-checked" - elem "icon96" - name = "&96x96" - command = ".winset \"mapwindow.map.icon-size=96\"" - category = "&Icons" - can-check = true - group = "size" - saved-params = "is-checked" - elem "icon64" - name = "&64x64" - command = ".winset \"mapwindow.map.icon-size=64\"" - category = "&Icons" - can-check = true - group = "size" - saved-params = "is-checked" - elem "icon48" - name = "&48x48" - command = ".winset \"mapwindow.map.icon-size=48\"" - category = "&Icons" - can-check = true - group = "size" - saved-params = "is-checked" - elem "icon32" - name = "&32x32" - command = ".winset \"mapwindow.map.icon-size=32\"" - category = "&Icons" - can-check = true - group = "size" + elem + name = "&Game Settings" + command = "settings" + category = "&Preferences" saved-params = "is-checked" - elem "zoommode" - name = "&Smooth scaling" - command = ".winset \"zoommode.is-checked=true?map.zoom-mode=normal:map.zoom-mode=distort\"" - category = "&Icons" - is-checked = true - can-check = true + elem + name = "&Character Setup" + command = "character-setup" + category = "&Preferences" saved-params = "is-checked" elem name = "&Help" @@ -975,12 +935,13 @@ window "mainwindow" elem "mainwindow" type = MAIN pos = 281,0 - size = 640x440 + size = 640x420 anchor1 = -1,-1 anchor2 = -1,-1 is-default = true saved-params = "pos;size;is-minimized;is-maximized" icon = 'icons\\onyxlogo132x32.png' + statusbar = false macro = "macro" menu = "menu" elem "asset_cache_browser" @@ -993,47 +954,52 @@ window "mainwindow" saved-params = "" elem "mainvsplit" type = CHILD - pos = 3,0 + pos = 0,0 size = 640x420 anchor1 = 0,0 anchor2 = 100,100 saved-params = "splitter" right = "infowindow" is-vert = true - elem "input" + elem "input_alt" type = INPUT - pos = 3,420 - size = 517x20 + pos = 2,396 + size = 514x20 anchor1 = 0,100 anchor2 = 100,100 background-color = #d3b5b5 - is-default = true - border = sunken + is-visible = false + border = line saved-params = "command" - on-focus = ".add_speech_bubble" - on-blur = ".remove_speech_bubble" - elem "saybutton" + elem "saybutton_alt" type = BUTTON - pos = 520,420 + pos = 518,396 size = 40x20 anchor1 = 100,100 anchor2 = -1,-1 + background-color = none + is-visible = false + border = line saved-params = "is-checked" text = "Chat" - command = ".winset \"saybutton.is-checked=true?input.command=\"!Say \\\"\" macrobutton.is-checked=false:input.command=\"" + command = ".winset \"saybutton_alt.is-checked=true?input_alt.command=\"!Say \\\"\" macrobutton.is-checked=false:input_alt.command=\"" + is-flat = true button-type = pushbox - elem "hotkey_toggle" + elem "hotkey_toggle_alt" type = BUTTON - pos = 560,420 - size = 80x20 + pos = 560,396 + size = 78x20 anchor1 = 100,100 anchor2 = -1,-1 + background-color = none + is-visible = false + border = line saved-params = "" text = "Hotkey Toggle" - command = ".winset \"mainwindow.macro!=macro ? mainwindow.macro=macro hotkey_toggle.is-checked=false input.focus=true : mainwindow.macro=hotkeymode hotkey_toggle.is-checked=true mapwindow.map.focus=true\"" + command = ".winset \"mainwindow.macro!=macro ? mainwindow.macro=macro hotkey_toggle_alt.is-checked=false input_alt.focus=true : mainwindow.macro=hotkeymode hotkey_toggle_alt.is-checked=true mapwindow.map.focus=true\"" + is-flat = true button-type = pushbox - window "mapwindow" elem "mapwindow" type = MAIN @@ -1043,11 +1009,11 @@ window "mapwindow" anchor2 = -1,-1 saved-params = "pos;size;is-minimized;is-maximized" titlebar = false - statusbar = false can-close = false can-minimize = false can-resize = false is-pane = true + on-status = ".winset \"statusbar.text=[[*]]\" " elem "map" type = MAP pos = 0,0 @@ -1061,15 +1027,26 @@ window "mapwindow" on-show = ".winset\"mainwindow.mainvsplit.left=mapwindow\"" on-hide = ".winset\"mainwindow.mainvsplit.left=\"" style=".center { text-align: center; } .maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .maptext i {font-style: normal; font-size: 6px;} .small { font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 8px; } .extremelybig { font-size: 8px; } .clown { color: #FF69Bf;} .tajaran {color: #803B56;} .skrell {color: #00CED1;} .solcom {color: #22228B;} .com_srus {color: #7c4848;} .zombie {color: #ff0000;} .soghun {color: #228B22;} .vox {color: #AA00AA;} .diona {color: #804000; font-weight: bold;} .trinary {color: #727272;} .metroid {color: #0077AA;} .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; }" + elem "statusbar" + type = LABEL + pos = 0,464 + size = 280x16 + anchor1 = 0,100 + anchor2 = -1,-1 + border = line + saved-params = "" + text = "" + align = left window "outputwindow" elem "outputwindow" type = MAIN - pos = 281,0 + pos = 291,13 size = 640x480 - anchor1 = none - anchor2 = none + anchor1 = -1,-1 + anchor2 = -1,-1 + background-color = none saved-params = "pos;size;is-minimized;is-maximized" titlebar = false statusbar = false @@ -1080,7 +1057,7 @@ window "outputwindow" elem "browseroutput" type = BROWSER pos = 0,0 - size = 640x480 + size = 640x451 anchor1 = 0,0 anchor2 = 100,100 background-color = #ffffff @@ -1089,47 +1066,46 @@ window "outputwindow" elem "output" type = OUTPUT pos = 0,0 - size = 640x480 + size = 640x451 anchor1 = 0,0 anchor2 = 100,100 is-default = true saved-params = "" - elem "saybutton_alt" - type = BUTTON - pos = 519,460 - size = 40x20 - anchor1 = 100,100 - anchor2 = -1,-1 - is-visible = false - is-disabled = true - saved-params = "is-checked" - text = "Chat" - command = ".winset \"saybutton_alt.is-checked=true?input_alt.command=\"!say \\\"\" macrobutton.is-checked=false:input_alt.command=\"" - button-type = pushbox - elem "input_alt" + elem "input" type = INPUT - pos = 1,460 - size = 517x20 + pos = 2,455 + size = 514x20 anchor1 = 0,100 anchor2 = 100,100 background-color = #d3b5b5 - is-visible = false - is-disabled = true - border = sunken + is-default = true + border = line saved-params = "command" on-focus = ".add_speech_bubble" on-blur = ".remove_speech_bubble" - elem "hotkey_toggle_alt" + elem "saybutton" type = BUTTON - pos = 560,460 - size = 80x20 + pos = 518,455 + size = 40x20 anchor1 = 100,100 anchor2 = -1,-1 - is-visible = false - is-disabled = true + border = line + saved-params = "is-checked" + text = "Chat" + command = ".winset \"saybutton.is-checked=true?input.command=\"!say \\\"\" macrobutton.is-checked=false:input.command=\"" + is-flat = true + button-type = pushbox + elem "hotkey_toggle" + type = BUTTON + pos = 560,455 + size = 78x20 + anchor1 = 100,100 + anchor2 = -1,-1 + border = line saved-params = "" text = "Hotkey Toggle" - command = ".winset \"mainwindow.macro!=macro ? mainwindow.macro=macro hotkey_toggle_alt.is-checked=false input_alt.focus=true : mainwindow.macro=hotkeymode hotkey_toggle_alt.is-checked=true mapwindow.map.focus=true\"" + command = ".winset \"mainwindow.macro!=macro ? mainwindow.macro=macro hotkey_toggle.is-checked=false input.focus=true : mainwindow.macro=hotkeymode hotkey_toggle.is-checked=true mapwindow.map.focus=true\"" + is-flat = true button-type = pushbox @@ -1236,8 +1212,8 @@ window "infowindow" anchor1 = 56,0 anchor2 = 67,0 saved-params = "is-checked" - text = "In-Game Bug Report" - command = "bug-report" + text = "Report Bug" + command = "report-bug" group = "rpanemode" elem "changelog" type = BUTTON @@ -1302,13 +1278,13 @@ window "statwindow" anchor2 = none saved-params = "pos;size;is-minimized;is-maximized" is-pane = true - elem "stat" - type = INFO + elem "statbrowser" + type = BROWSER pos = 0,0 size = 640x480 anchor1 = 0,0 anchor2 = 100,100 - is-default = true + is-visible = false saved-params = "" window "preferences_window" diff --git a/maps/derelicts/bearcat/bearcat-1.dmm b/maps/derelicts/bearcat/bearcat-1.dmm index 8815305356e..1f5a23293aa 100644 --- a/maps/derelicts/bearcat/bearcat-1.dmm +++ b/maps/derelicts/bearcat/bearcat-1.dmm @@ -46,7 +46,7 @@ "aT" = (/turf/simulated/wall,/area/ship/scrap/crew/dorms1) "aU" = (/turf/simulated/wall/r_wall,/area/ship/scrap/crew/dorms1) "aV" = (/obj/item/device/flashlight/lamp,/turf/simulated/floor/usedup,/area/ship/scrap/gambling) -"aW" = (/obj/structure/holostool,/obj/machinery/light/small{dir = 1},/obj/item/hand/missing_card,/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor/usedup,/area/ship/scrap/gambling) +"aW" = (/obj/item/stool/padded,/obj/machinery/light/small{dir = 1},/obj/item/hand/missing_card,/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor/usedup,/area/ship/scrap/gambling) "aX" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 1},/obj/machinery/light_switch{pixel_x = 24},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24; req_access = list(201)},/turf/simulated/floor/usedup,/area/ship/scrap/gambling) "aY" = (/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/cobweb2,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/usedup,/area/ship/scrap/maintenance/lower) "aZ" = (/obj/effect/floor_decal/corner/beige{dir = 9},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/light/small{dir = 8},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 1},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled/usedup,/area/ship/scrap/cargo/lower) @@ -56,12 +56,12 @@ "bd" = (/obj/effect/floor_decal/corner/beige{dir = 6},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/light/small{dir = 4},/obj/random/closet,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/cargo/lower) "be" = (/obj/machinery/light/small{dir = 4},/obj/structure/ladder/up,/obj/effect/decal/cleanable/cobweb,/obj/structure/sign/deck/second{pixel_x = -32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/usedup,/area/ship/scrap/maintenance/lower) "bf" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 1},/obj/machinery/light_switch{pixel_x = -24},/obj/effect/floor_decal/corner/beige{dir = 5},/obj/structure/closet,/obj/random/clothing/gloves,/obj/random/clothing,/obj/random/clothing,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24; req_access = list(201)},/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms1) -"bg" = (/obj/effect/floor_decal/corner/beige{dir = 5},/obj/structure/holostool,/obj/machinery/light/small{dir = 1},/obj/structure/sign/poster{pixel_y = 32},/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms1) +"bg" = (/obj/effect/floor_decal/corner/beige{dir = 5},/obj/item/stool/padded,/obj/machinery/light/small{dir = 1},/obj/structure/sign/poster{pixel_y = 32},/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms1) "bh" = (/obj/effect/floor_decal/corner/beige{dir = 5},/obj/structure/curtain/open/bed,/obj/structure/bed/padded,/obj/item/bedsheet/green,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms1) "bi" = (/obj/structure/window_frame/grille/rglass,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "scraplock"; name = "External Blast Doors"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/usedup,/area/ship/scrap/broken2) -"bj" = (/obj/structure/holostool,/obj/item/hand/missing_card,/turf/simulated/floor/usedup,/area/ship/scrap/gambling) +"bj" = (/obj/item/stool/padded,/obj/item/hand/missing_card,/turf/simulated/floor/usedup,/area/ship/scrap/gambling) "bk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/table/gamblingtable,/obj/item/deck/cards,/obj/item/dice,/turf/simulated/floor/usedup,/area/ship/scrap/gambling) -"bl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/holostool,/obj/item/hand/missing_card,/turf/simulated/floor/usedup,/area/ship/scrap/gambling) +"bl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/item/stool/padded,/obj/item/hand/missing_card,/turf/simulated/floor/usedup,/area/ship/scrap/gambling) "bm" = (/obj/machinery/door/airlock/autoname,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/usedup,/area/ship/scrap/gambling) "bn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/usedup,/area/ship/scrap/maintenance/lower) "bo" = (/obj/machinery/door/airlock/autoname,/turf/simulated/floor/usedup,/area/ship/scrap/cargo/lower) @@ -78,7 +78,7 @@ "bz" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms1) "bA" = (/obj/structure/window_frame/grille/rglass,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "scraplock"; name = "External Blast Doors"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/usedup,/area/ship/scrap/crew/dorms2) "bB" = (/turf/simulated/floor/usedup,/area/ship/scrap/gambling) -"bC" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/obj/structure/holostool,/obj/item/hand/missing_card,/turf/simulated/floor/usedup,/area/ship/scrap/gambling) +"bC" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/obj/item/stool/padded,/obj/item/hand/missing_card,/turf/simulated/floor/usedup,/area/ship/scrap/gambling) "bD" = (/obj/machinery/alarm{dir = 8; pixel_x = 24},/obj/item/hand/missing_card,/obj/item/hand/missing_card,/turf/simulated/floor/usedup,/area/ship/scrap/gambling) "bE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/usedup,/area/ship/scrap/maintenance/lower) "bF" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/structure/closet/crate,/obj/random/soap,/obj/random/soap,/obj/item/bodybag,/obj/item/stack/tile/carpet/fifty,/obj/effect/floor_decal/corner/beige{dir = 9},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/cargo/lower) @@ -88,7 +88,7 @@ "bJ" = (/obj/effect/floor_decal/corner/beige{dir = 6},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/cargo/lower) "bK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/usedup,/area/ship/scrap/maintenance/lower) "bL" = (/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/structure/closet,/obj/random/clothing,/obj/random/clothing,/obj/random/clothing,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms1) -"bM" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/obj/structure/holostool,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms1) +"bM" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/obj/item/stool/padded,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms1) "bN" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 1},/obj/machinery/light_switch{pixel_x = 24},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/turf/simulated/floor/usedup,/area/ship/scrap/broken2) "bO" = (/obj/effect/floor_decal/corner/beige{dir = 9},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/mining/brace,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/cargo/lower) "bP" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/floor_decal/industrial/warning,/obj/structure/closet/crate,/obj/item/fossil/skull,/obj/item/fossil/bone,/obj/item/fossil/bone,/obj/item/fossil/shell,/obj/item/xenos_claw,/obj/item/ore/strangerock,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/cargo/lower) @@ -112,7 +112,7 @@ "ch" = (/turf/simulated/wall,/area/ship/scrap/crew/dorms2) "ci" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 1},/obj/machinery/light_switch{pixel_x = 24},/obj/machinery/organ_printer/robot/mapped,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/turf/simulated/floor/usedup,/area/ship/scrap/broken1) "cj" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 1},/obj/machinery/light_switch{pixel_x = -24},/obj/effect/floor_decal/corner/beige{dir = 5},/obj/structure/closet,/obj/random/clothing,/obj/random/clothing,/obj/effect/decal/cleanable/cobweb,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms2) -"ck" = (/obj/structure/holostool,/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/corner/beige{dir = 5},/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms2) +"ck" = (/obj/item/stool/padded,/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/corner/beige{dir = 5},/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms2) "cl" = (/turf/simulated/wall/r_wall,/area/ship/scrap/crew/dorms2) "cm" = (/obj/structure/window_frame/grille/rglass,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "scraplock"; name = "External Blast Doors"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/usedup,/area/ship/scrap/crew/dorms3) "cn" = (/obj/structure/foamedmetal,/turf/simulated/floor/usedup,/area/ship/scrap/broken2) @@ -172,7 +172,7 @@ "dq" = (/obj/machinery/light/small,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/cargo/lower) "dr" = (/obj/effect/floor_decal/corner/beige{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/cargo/lower) "ds" = (/obj/machinery/door/airlock/autoname,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/usedup,/area/ship/scrap/crew/dorms3) -"dt" = (/obj/effect/floor_decal/corner/beige{dir = 5},/obj/structure/holostool,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms3) +"dt" = (/obj/effect/floor_decal/corner/beige{dir = 5},/obj/item/stool/padded,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms3) "du" = (/obj/effect/floor_decal/corner/beige{dir = 5},/obj/structure/curtain/open/bed,/obj/structure/bed/padded,/obj/item/bedsheet/green,/obj/effect/decal/cleanable/cobweb2,/obj/structure/sign/poster{pixel_y = 32},/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms3) "dv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms3) "dx" = (/obj/structure/mopbucket,/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/storage/toolbox/mechanical,/obj/item/device/multitool{pixel_x = 3},/obj/item/clothing/glasses/welding,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/broken1) @@ -206,7 +206,7 @@ "dZ" = (/turf/simulated/wall,/area/ship/scrap/maintenance/eva) "ea" = (/turf/simulated/wall/r_wall,/area/ship/scrap/maintenance/techstorage) "eb" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/usedup,/area/ship/scrap/maintenance/techstorage) -"ec" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/obj/structure/holostool,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms3) +"ec" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/obj/item/stool/padded,/turf/simulated/floor/tiled/dark/usedup,/area/ship/scrap/crew/dorms3) "ed" = (/obj/item/circuitboard/autolathe,/obj/item/circuitboard/unary_atmos/heater,/obj/structure/table/rack,/obj/effect/floor_decal/corner/yellow{dir = 5},/turf/simulated/floor/tiled/usedup,/area/ship/scrap/maintenance/techstorage) "ee" = (/obj/item/storage/toolbox/electrical,/obj/item/storage/toolbox/electrical{pixel_x = 7; pixel_y = 4},/obj/item/device/t_scanner,/obj/item/cell/high,/obj/machinery/alarm{pixel_y = 32},/obj/item/tape_roll,/obj/machinery/light_switch{pixel_x = -24},/obj/effect/floor_decal/corner/yellow{dir = 9},/obj/item/airalarm_electronics,/obj/item/airlock_electronics,/obj/item/airlock_electronics,/obj/structure/table/rack,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/maintenance/storage) "ef" = (/obj/structure/closet/crate/plastic,/obj/item/storage/ore,/obj/item/pickaxe,/obj/item/stack/flag/yellow,/obj/item/storage/box/glowsticks,/obj/item/mining_scanner,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/maintenance/storage) diff --git a/maps/derelicts/bearcat/bearcat-2.dmm b/maps/derelicts/bearcat/bearcat-2.dmm index 67ed6ed1993..58f58bc327b 100644 --- a/maps/derelicts/bearcat/bearcat-2.dmm +++ b/maps/derelicts/bearcat/bearcat-2.dmm @@ -375,7 +375,7 @@ "hn" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{pixel_y = 32},/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/floor_decal/corner/yellow{dir = 5},/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/maintenance/engineering) "ho" = (/obj/structure/closet/secure_closet/engineering_electrical,/obj/item/cell/device/standard,/obj/item/cell/device/standard,/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/item/device/radio/intercom{pixel_y = 32},/obj/item/cell/crap,/obj/item/cell/crap,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled/usedup,/area/ship/scrap/maintenance/power) "hp" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/yellow{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/fuel,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/maintenance/engineering) -"hq" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light_switch{pixel_y = 25},/obj/effect/floor_decal/corner/yellow{dir = 5},/obj/structure/table/standard,/obj/item/reagent_containers/chem_disp_cartridge/coffee{name = "coffee canister"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8},/turf/simulated/floor/tiled/usedup,/area/ship/scrap/maintenance/engineering) +"hq" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light_switch{pixel_y = 25},/obj/effect/floor_decal/corner/yellow{dir = 5},/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8},/turf/simulated/floor/tiled/usedup,/area/ship/scrap/maintenance/engineering) "hr" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/corner/yellow{dir = 5},/obj/structure/closet/hydrant{pixel_y = 32},/obj/item/storage/firstaid/regular,/turf/simulated/floor/tiled/usedup,/area/ship/scrap/maintenance/engineering) "hs" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/floor_decal/corner/yellow{dir = 10},/obj/effect/decal/cleanable/liquid_fuel,/obj/structure/sign/warning/nosmoking_1{pixel_y = -32},/obj/structure/sign/warning/high_voltage{pixel_x = 32},/turf/simulated/floor/tiled/usedup,/area/ship/scrap/maintenance/engineering) "ht" = (/obj/machinery/atmospherics/pipe/simple/hidden/fuel,/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled/dark/airless,/area/ship/scrap/maintenance/engine/aft) diff --git a/maps/derelicts/derelict/derelict.dmm b/maps/derelicts/derelict/derelict.dmm index e3f1982c510..961dde150b9 100644 --- a/maps/derelicts/derelict/derelict.dmm +++ b/maps/derelicts/derelict/derelict.dmm @@ -44,7 +44,7 @@ "aR" = (/obj/machinery/door/blast/regular/retro{dir = 2; id = "derelict_gun"},/turf/simulated/floor/plating/airless,/area/derelict/medical/chapel) "aS" = (/turf/simulated/floor/plating/airless,/area/derelict/medical/chapel) "aT" = (/turf/simulated/wall/r_wall,/area/derelict/arrival) -"aU" = (/obj/machinery/door/window/holowindoor,/obj/structure/closet/coffin,/obj/machinery/mass_driver{dir = 8; id = "derelict_gun"; name = "mass driver"},/turf/simulated/floor/plating/airless,/area/derelict/medical/chapel) +"aU" = (/obj/machinery/door/window,/obj/structure/closet/coffin,/obj/machinery/mass_driver{dir = 8; id = "derelict_gun"; name = "mass driver"},/turf/simulated/floor/plating/airless,/area/derelict/medical/chapel) "aV" = (/obj/item/firstaid_arm_assembly,/turf/simulated/floor/tiled/white/airless,/area/derelict/medical) "aW" = (/turf/simulated/floor/tiled/airless,/area/derelict/medical) "aX" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/plating/airless,/area/space) @@ -849,4 +849,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} \ No newline at end of file +"} diff --git a/maps/derelicts/snow_asteroid/snowasteroid.dmm b/maps/derelicts/snow_asteroid/snowasteroid.dmm index 0d1a0f6fb07..e00e2fd5e33 100644 --- a/maps/derelicts/snow_asteroid/snowasteroid.dmm +++ b/maps/derelicts/snow_asteroid/snowasteroid.dmm @@ -46,41 +46,41 @@ "aU" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/trim/wood,/area/derelict/snowasteroid) "aV" = (/turf/simulated/floor/trim/wood{icon_state = "wood_broken1"},/area/derelict/snowasteroid) "aW" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/trim/wood,/area/derelict/snowasteroid) -"aX" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"aY" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"aZ" = (/obj/structure/table/rack,/obj/item/gun/energy/plasmastun,/obj/machinery/door/window/brigdoor/southleft,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"ba" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/effect/floor_decal/rust,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bb" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) +"aX" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"aY" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"aZ" = (/obj/structure/table/rack,/obj/item/gun/energy/plasmastun,/obj/machinery/door/window/brigdoor/southleft,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"ba" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/effect/floor_decal/rust,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bb" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) "bc" = (/obj/machinery/door/unpowered/simple/wood,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/trim/wood,/area/derelict/snowasteroid) -"bd" = (/obj/structure/table/rack,/obj/item/stack/material/gold/ten,/obj/effect/floor_decal/rust,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"be" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bf" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bg" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bh" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert,/obj/item/clothing/head/helmet/ert,/obj/effect/floor_decal/rust,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) +"bd" = (/obj/structure/table/rack,/obj/item/stack/material/gold/ten,/obj/effect/floor_decal/rust,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"be" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bf" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bg" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bh" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert,/obj/item/clothing/head/helmet/ert,/obj/effect/floor_decal/rust,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) "bi" = (/obj/structure/flora/bush,/turf/simulated/floor/natural/snow,/area/derelict/snowasteroid) "bj" = (/obj/effect/floor_decal/snow,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/derelict/snowasteroid) "bk" = (/obj/effect/floor_decal/asteroid,/turf/simulated/floor/natural/snow,/area/derelict/snowasteroid) "bl" = (/obj/effect/floor_decal/snow,/turf/simulated/floor/natural/snow,/area/derelict/snowasteroid) -"bm" = (/obj/structure/table/rack,/obj/item/stack/material/diamond/ten,/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bn" = (/obj/effect/floor_decal/rust,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bo" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"br" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bs" = (/obj/structure/table/rack,/obj/item/clothing/under/ert,/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) +"bm" = (/obj/structure/table/rack,/obj/item/stack/material/diamond/ten,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bn" = (/obj/effect/floor_decal/rust,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bo" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"br" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bs" = (/obj/structure/table/rack,/obj/item/clothing/under/ert,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) "bt" = (/obj/effect/floor_decal/snow,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/derelict/snowasteroid) "bu" = (/obj/effect/floor_decal/snow,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/derelict/snowasteroid) "bv" = (/obj/effect/floor_decal/snow,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/derelict/snowasteroid) "bw" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/natural/snow,/area/derelict/snowasteroid) -"bx" = (/obj/structure/table/rack,/obj/item/stack/material/silver/ten,/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) +"bx" = (/obj/structure/table/rack,/obj/item/stack/material/silver/ten,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) "by" = (/obj/structure/window_frame/grille/rglass,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/derelict/snowasteroid/bunker) -"bz" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/window/brigdoor/northright{req_access = list(3)},/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) +"bz" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/window/brigdoor/northright{req_access = list(3)},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) "bA" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/derelict/snowasteroid/shuttle) -"bB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bC" = (/obj/structure/table/rack,/obj/item/clothing/glasses/hud/scanners/night,/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bD" = (/obj/structure/table/rack,/obj/item/stack/material/uranium/ten,/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bE" = (/obj/machinery/nuclearbomb,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) -"bF" = (/obj/structure/table/rack,/obj/item/clothing/shoes/swat,/obj/effect/floor_decal/rust,/turf/simulated/floor/holofloor/tiled/dark,/area/derelict/snowasteroid/bunker) +"bB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bC" = (/obj/structure/table/rack,/obj/item/clothing/glasses/hud/scanners/night,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bD" = (/obj/structure/table/rack,/obj/item/stack/material/uranium/ten,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bE" = (/obj/machinery/nuclearbomb,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) +"bF" = (/obj/structure/table/rack,/obj/item/clothing/shoes/swat,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/dark/rough,/area/derelict/snowasteroid/bunker) "bG" = (/obj/machinery/power/port_gen/pacman{anchored = 0; sheets = 25},/obj/structure/cable{d2 = 2; dir = 2; icon_state = "0-2"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/industrial/warning,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/derelict/snowasteroid) "bH" = (/obj/machinery/power/port_gen/pacman{anchored = 0; sheets = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/sign/warning/nosmoking_burned{pixel_y = 30},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/derelict/snowasteroid) "bI" = (/obj/structure/table/rack,/obj/item/stack/material/plasma/fifty,/obj/item/stack/material/plasma/fifty,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/derelict/snowasteroid) @@ -118,7 +118,7 @@ "co" = (/turf/simulated/floor/natural/ice,/area/derelict/snowasteroid) "cp" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/natural/snow,/area/derelict/snowasteroid) "cq" = (/obj/effect/floor_decal/snow,/obj/structure/boulder,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/derelict/snowasteroid) -"cr" = (/obj/structure/flora/tree/dead,/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/natural/snow,/area/derelict/snowasteroid) +"cr" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/tree/dead/deadtree_0,/turf/simulated/floor/natural/snow,/area/derelict/snowasteroid) "cs" = (/obj/effect/floor_decal/snow,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/derelict/snowasteroid) "ct" = (/obj/structure/flora/tree/pine,/obj/structure/flora/grass/both,/turf/simulated/floor/natural/snow,/area/derelict/snowasteroid) "cu" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/natural/snow,/area/derelict/snowasteroid) @@ -300,7 +300,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababaaaaaaaaaaaaaaaaaaababababababaaaaaaaaaaababababafafafcmafababadbiadabababacbjadacababadadadadababababababaRaRaRbKaRaRaRabababababaaaaaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababaaaaaaaaaaaaaaaaaaabababababaaaaaaaaaaaaabababababababababadadadadadababacbjadacadadadadadadadadadababababababcnababababababababaaaaaaaaaaababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababaaaaaaaaaaaaaaaaabababababaaaaaaaaaaaaabababababababababadcocoadadadadcpbjadadadadadakbkadadadadadadababababcqababababababababaaaaaaaaaaababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaabababababababababadcococoadadadbkbtbvadadadadakakcradadadadadadabababcsabababababababaaaaaaaaaaababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaabababababababababadcococoadadadbkbtbvadadadadakcrakadadadadadadabababcsabababababababaaaaaaaaaaababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadcococoadadctadadbjadadadadadakakadadadadadadadababbjabababababababaaaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadcococococoadadadadbjadadadadadakbkadadadadadadcuababcqabababababababaaaaaaaaaaababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaababababababababababadcocococococoadadaqbjadctadcvbububububububububububucwcxabababababababaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/eclipse/eclipse-1.dmm b/maps/eclipse/eclipse-1.dmm index 714d6566b3a..5f3a55c22e8 100644 --- a/maps/eclipse/eclipse-1.dmm +++ b/maps/eclipse/eclipse-1.dmm @@ -22,12 +22,12 @@ "aav" = (/obj/effect/floor_decal/industrial/warning/red{dir = 1},/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) "aaw" = (/obj/effect/floor_decal/industrial/outline/red,/obj/item/stool,/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) "aax" = (/obj/machinery/light{dir = 1},/obj/structure/closet/crate/secure/weapon{name = "ballistic ammo"},/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/effect/floor_decal/industrial/hatch/red,/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) -"aay" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/gun/projectile/automatic/z8,/obj/effect/floor_decal/industrial/hatch/red,/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) +"aay" = (/obj/item/gun/projectile/automatic/z8,/obj/effect/floor_decal/industrial/hatch/red,/obj/structure/closet/secure_closet/vault,/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) "aaz" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/spider/stickyweb/sealed,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/research/incinerator) "aaA" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) "aaB" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) "aaC" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) -"aaD" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/gun/projectile/automatic/wt550,/obj/machinery/camera/network/security{c_tag = "Brig Armory Storage North"; dir = 8},/obj/effect/floor_decal/industrial/hatch/red,/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) +"aaD" = (/obj/item/gun/projectile/automatic/wt550,/obj/machinery/camera/network/security{c_tag = "Brig Armory Storage North"; dir = 8},/obj/effect/floor_decal/industrial/hatch/red,/obj/structure/closet/secure_closet/vault,/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) "aaE" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/eclipse/security/misc/tactical) "aaF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/shield/riot,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/balaclava,/obj/item/clothing/head/helmet/riot,/obj/item/melee/baton/loaded,/obj/machinery/door/window/eastleft{req_access = list(2)},/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) "aaG" = (/obj/item/stool,/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/simulated/floor/tiled/dark,/area/eclipse/security/misc/tactical) @@ -999,7 +999,7 @@ "avs" = (/obj/item/device/radio/intercom{canhear_range = 4; name = "Station Intercom"; pixel_x = -26},/obj/machinery/ai_status_display{dir = 1; pixel_y = -32; name = "AI display south"},/obj/machinery/light,/turf/simulated/floor/tiled/dark,/area/eclipse/civilian/misc/nuke_storage) "avy" = (/obj/structure/table/rack{layer = 2.6},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/void/medical,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/void/medical,/turf/simulated/floor/tiled/dark,/area/eclipse/civilian/misc/eva) "avz" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/security/meeting) -"avB" = (/obj/structure/closet/crate,/obj/item/material/coin/silver,/obj/item/material/coin/silver,/obj/item/material/coin/silver,/obj/item/material/coin/gold,/obj/item/material/coin/gold,/obj/item/material/coin/diamond,/obj/item/material/coin/platinum,/obj/machinery/light,/turf/simulated/floor/tiled/dark,/area/eclipse/civilian/misc/nuke_storage) +"avB" = (/obj/item/material/coin/silver,/obj/item/material/coin/silver,/obj/item/material/coin/silver,/obj/item/material/coin/gold,/obj/item/material/coin/gold,/obj/item/material/coin/diamond,/obj/item/material/coin/platinum,/obj/machinery/light,/obj/structure/closet/secure_closet/vault,/turf/simulated/floor/tiled/dark,/area/eclipse/civilian/misc/nuke_storage) "avI" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/eclipse/security/hallway/brig_hallway1) "avK" = (/obj/effect/floor_decal/corner/red/three_quarters,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/eclipse/security/support/meeting) "avL" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start/crew/hos,/turf/simulated/floor/tiled,/area/eclipse/security/support/meeting) @@ -1874,7 +1874,7 @@ "aOu" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/obj/effect/landmark/start/crew/captain,/turf/simulated/floor/trim/carpet/blue,/area/eclipse/civilian/command/captain_restroom) "aOv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/carpet/blue,/area/eclipse/civilian/command/captain_restroom) "aOw" = (/obj/structure/table/standard,/obj/structure/flora/pottedplant{icon_state = "plant-23"; pixel_y = 8},/obj/item/toy/figure/hop,/obj/structure/sign/poster{dir = 8; pixel_x = -32; name = "poster west"},/obj/effect/floor_decal/corner/paleblue{dir = 1},/turf/simulated/floor/tiled,/area/eclipse/civilian/command/hop) -"aOx" = (/obj/structure/bed/padded,/obj/item/bedsheet/hop,/obj/item/toy/plushie/kitten,/obj/item/storage/secure/safe{pixel_y = 28},/obj/effect/floor_decal/corner/paleblue{dir = 4},/obj/effect/landmark/start/crew/hop,/turf/simulated/floor/tiled,/area/eclipse/civilian/command/hop) +"aOx" = (/obj/structure/bed/padded,/obj/item/toy/plushie/kitten,/obj/item/storage/secure/safe{pixel_y = 28},/obj/effect/floor_decal/corner/paleblue{dir = 4},/obj/effect/landmark/start/crew/hop,/obj/item/bedsheet/ian,/turf/simulated/floor/tiled,/area/eclipse/civilian/command/hop) "aOy" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/table/standard,/obj/item/paper_bin,/obj/item/pen,/obj/item/device/radio/intercom{canhear_range = 4; name = "Station Intercom"; pixel_x = -26},/obj/effect/floor_decal/corner/paleblue{dir = 9},/obj/item/device/megaphone,/obj/item/hand_labeler,/turf/simulated/floor/tiled,/area/eclipse/civilian/command/hop) "aOz" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table/standard,/obj/item/modular_computer/laptop/preset/records,/turf/simulated/floor/tiled,/area/eclipse/civilian/command/hop) "aOA" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/eclipse/civilian/command/hop) @@ -2517,7 +2517,7 @@ "bbr" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/ocp_wall,/area/eclipse/research/main/toxins) "bbs" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_science{name = "Mixing Room Interior Airlock"; req_access = list(7); autoclose = 0; frequency = 1379; id_tag = "tox_airlock_interior"; locked = 1; icon_state = "door_locked"},/turf/simulated/floor/reinforced,/area/eclipse/research/main/toxins) "bbt" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/ocp_wall,/area/eclipse/research/main/toxins) -"bbu" = (/obj/structure/closet/crate,/obj/item/stack/material/gold,/obj/item/stack/material/gold,/obj/item/stack/material/platinum,/obj/item/storage/belt/champion,/turf/simulated/floor/tiled/dark,/area/eclipse/civilian/misc/nuke_storage) +"bbu" = (/obj/item/stack/material/gold,/obj/item/stack/material/gold,/obj/item/stack/material/platinum,/obj/item/storage/belt/champion,/obj/structure/closet/secure_closet/vault,/turf/simulated/floor/tiled/dark,/area/eclipse/civilian/misc/nuke_storage) "bbv" = (/obj/item/device/radio/intercom{canhear_range = 4; pixel_x = -26},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/light{dir = 8},/obj/effect/floor_decal/industrial/outline/blue,/turf/simulated/floor/tiled/white,/area/eclipse/research/main/toxins) "bbw" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/eclipse/research/main/toxins) "bbx" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/eclipse/research/main/toxins) @@ -2865,7 +2865,7 @@ "bio" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24; name = "fire alarm - south"},/obj/effect/floor_decal/corner/purple{dir = 8},/turf/simulated/floor/tiled/white,/area/eclipse/research/hallway/research_hallway2) "bip" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/purple{dir = 8},/turf/simulated/floor/tiled/white,/area/eclipse/research/hallway/research_hallway2) "biq" = (/obj/structure/sign/double/map/right{pixel_y = 32},/obj/machinery/camera/network/command{c_tag = "Coomand Staff Meeting Room"},/obj/structure/bed/couch/right/purple,/turf/simulated/floor/trim/carpet/blue,/area/eclipse/civilian/command/meeting_room) -"bir" = (/obj/machinery/alarm{pixel_y = 22},/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_coffee/full,/turf/simulated/floor/trim/carpet/blue,/area/eclipse/civilian/command/meeting_room) +"bir" = (/obj/machinery/alarm{pixel_y = 22},/obj/structure/table/woodentable,/turf/simulated/floor/trim/carpet/blue,/area/eclipse/civilian/command/meeting_room) "bis" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/photocopier,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/trim/wood,/area/eclipse/civilian/command/meeting_room) "bit" = (/turf/simulated/wall/r_wall,/area/eclipse/civilian/command/meeting_room) "biu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/ai_status_display{dir = 1; pixel_y = -32; name = "AI display south"},/obj/effect/floor_decal/corner/purple{dir = 8},/turf/simulated/floor/tiled/white,/area/eclipse/research/hallway/research_hallway2) @@ -3574,7 +3574,7 @@ "bwm" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/shutters{dir = 2; id = "emtroom"; name = "Mech Bay"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/eclipse/medical/first_aid/paramedic) "bwn" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light{dir = 8},/obj/effect/floor_decal/corner/blue{dir = 8},/obj/structure/sign/redcross{icon_state = "lifestar"; pixel_x = -32},/turf/simulated/floor/tiled/white,/area/eclipse/medical/hallway/medical_hallway2) "bwo" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled/white,/area/eclipse/medical/hallway/medical_hallway2) -"bwp" = (/obj/structure/bed/psych,/obj/item/bedsheet/brown,/turf/simulated/floor/trim/carpet/blue2,/area/eclipse/medical/advanced_aid/psychologist) +"bwp" = (/obj/structure/bed/psych,/obj/item/bedsheet/runtime,/turf/simulated/floor/trim/carpet/blue2,/area/eclipse/medical/advanced_aid/psychologist) "bwq" = (/obj/item/device/radio/intercom{canhear_range = 4; name = "Station Intercom"; pixel_y = -26},/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/floor/trim/carpet/blue2,/area/eclipse/medical/advanced_aid/psychologist) "bwr" = (/obj/structure/window/reinforced/tinted{dir = 8},/obj/structure/table/woodentable,/obj/item/clipboard,/obj/item/toy/figure/psychologist,/obj/machinery/power/apc{name = "south bump"; pixel_y = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/trim/wood,/area/eclipse/medical/advanced_aid/psychologist) "bws" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/trim/wood,/area/eclipse/medical/advanced_aid/psychologist) @@ -4417,7 +4417,7 @@ "bMW" = (/turf/simulated/wall,/area/eclipse/medical/misc/morgue) "bMX" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/random/trash,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/research/incinerator) "bMY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/general/bar) -"bMZ" = (/obj/structure/bed/padded,/obj/item/clothing/mask/muzzle/ballgag,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/research/incinerator) +"bMZ" = (/obj/structure/bed/padded,/obj/item/clothing/mask/muzzle/ballgag,/obj/item/bedsheet/cult,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/research/incinerator) "bNa" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/general/bar) "bNb" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/mouse/gray,/turf/simulated/floor/tiled/dirty,/area/eclipse/maintenance/tunnel/medical/hydroponics) "bNc" = (/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/general/ghetto_surgery) @@ -4973,7 +4973,7 @@ "bXZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/eclipse/civilian/hallway/cargo) "bYa" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/eclipse/civilian/hallway/bar) "bYb" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/brown,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/tiled/dark,/area/eclipse/civilian/support/bar) -"bYc" = (/turf/simulated/floor/reinforced{name = "Holodeck Projector Floor"},/area/eclipse/civilian/dormitory/holodeck/alphadeck) +"bYc" = (/turf/simulated/floor/reinforced{name = "Holodeck Projector Floor"},/area/holodeck) "bYd" = (/obj/structure/table/rack{layer = 2.6},/obj/machinery/door/window/eastright{req_access = list(11)},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/void/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/void/engineering,/obj/structure/sign/poster{dir = 8; pixel_x = -32; name = "poster west"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/plating,/area/eclipse/engineering/tech/singularity_engine) "bYe" = (/obj/item/stool/padded,/turf/simulated/floor/plating,/area/eclipse/engineering/tech/singularity_engine) "bYf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/blue{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 4; pixel_x = 24; name = "fire alarm - east"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/white,/area/eclipse/medical/hallway/medical_hallway1) @@ -5023,7 +5023,7 @@ "bYZ" = (/obj/structure/table/standard,/obj/item/storage/box/cups,/obj/effect/floor_decal/corner/blue{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/eclipse/medical/hallway/medical_hallway2) "bZa" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/eclipse/civilian/hallway/cargo) "bZb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/purple{dir = 4},/turf/simulated/floor/tiled/white,/area/eclipse/research/hallway/research_hallway1) -"bZc" = (/obj/structure/bed/padded,/obj/item/bedsheet/blue,/obj/item/toy/plushie/mouse,/obj/machinery/computer/guestpass{layer = 3.1; pixel_y = 32},/obj/effect/floor_decal/corner/blue/three_quarters{dir = 8},/obj/machinery/keycard_auth{pixel_x = -26},/turf/simulated/floor/tiled/white,/area/eclipse/medical/support/cmo_office) +"bZc" = (/obj/structure/bed/padded,/obj/item/toy/plushie/mouse,/obj/machinery/computer/guestpass{layer = 3.1; pixel_y = 32},/obj/effect/floor_decal/corner/blue/three_quarters{dir = 8},/obj/machinery/keycard_auth{pixel_x = -26},/obj/item/bedsheet/cmo,/turf/simulated/floor/tiled/white,/area/eclipse/medical/support/cmo_office) "bZd" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/firealarm{pixel_y = 24; name = "fire alarm - north"},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled/white,/area/eclipse/medical/support/cmo_office) "bZe" = (/obj/structure/bed/chair/comfy/teal,/obj/item/sign/medipolma{pixel_y = 32},/obj/machinery/newscaster{dir = 8; pixel_x = 32},/obj/effect/floor_decal/corner/blue/three_quarters{dir = 1},/obj/effect/landmark/start/crew/cmo,/turf/simulated/floor/tiled/white,/area/eclipse/medical/support/cmo_office) "bZf" = (/obj/structure/bed/chair/comfy/purp{dir = 4},/obj/effect/landmark/start/crew/rd,/turf/simulated/floor/trim/carpet/purple,/area/eclipse/research/support/breakroom) @@ -5812,7 +5812,7 @@ "coO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/computer/cryopod/robot{pixel_x = 32},/turf/simulated/floor/plating,/area/eclipse/engineering/misc/drone_fabrication) "coP" = (/obj/machinery/light,/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/eclipse/engineering/support/break_room) "coQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/eclipse/engineering/support/break_room) -"coR" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/chemical_dispenser/bar_coffee/full,/turf/simulated/floor/tiled/white,/area/eclipse/engineering/support/break_room) +"coR" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/eclipse/engineering/support/break_room) "coS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/red{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/eclipse/civilian/dormitory/dormitory_hallway2) "coT" = (/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) "coU" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/storage/pill_bottle/sugar_cubes,/obj/item/reagent_containers/vessel/mug,/obj/item/reagent_containers/vessel/mug/green,/obj/item/reagent_containers/vessel/mug/metal,/turf/simulated/floor/tiled/white,/area/eclipse/engineering/support/break_room) @@ -7681,7 +7681,7 @@ "daI" = (/obj/structure/closet/crate/freezer,/obj/item/reagent_containers/vessel/bottle/specialwhiskey,/obj/item/reagent_containers/vessel/bottle/winesparkling,/obj/item/reagent_containers/vessel/bottle/winewhite,/obj/item/reagent_containers/vessel/bottle/holywater,/obj/item/reagent_containers/vessel/bottle/goldschlager,/obj/item/reagent_containers/vessel/bottle/premiumvodka,/obj/item/reagent_containers/vessel/bottle/premiumwine,/turf/simulated/floor/trim/darkwood,/area/eclipse/civilian/support/bar) "daJ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled/white,/area/eclipse/medical/hallway/medical_hallway3) "daK" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24; name = "fire alarm - south"},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled/white,/area/eclipse/medical/hallway/medical_hallway3) -"daL" = (/obj/structure/bed/padded,/obj/item/bedsheet/blue,/obj/structure/sign/poster{pixel_x = 32; name = "poster east"},/obj/effect/landmark/start/crew/bartender,/turf/simulated/floor/trim/darkwood,/area/eclipse/civilian/support/bar) +"daL" = (/obj/structure/bed/padded,/obj/structure/sign/poster{pixel_x = 32; name = "poster east"},/obj/effect/landmark/start/crew/bartender,/obj/item/bedsheet/pirate,/turf/simulated/floor/trim/darkwood,/area/eclipse/civilian/support/bar) "daM" = (/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/structure/sign/poster{dir = 8; pixel_x = -32; name = "poster west"},/obj/effect/landmark/start/crew/bartender,/turf/simulated/floor/trim/darkwood,/area/eclipse/civilian/support/bar) "daN" = (/obj/effect/floor_decal/corner/red,/obj/machinery/light,/turf/simulated/floor/tiled,/area/eclipse/civilian/dormitory/dormitory_hallway2) "daO" = (/obj/machinery/camera/network/medbay{c_tag = "Medbay Hallway Center"; dir = 1},/obj/effect/floor_decal/corner/blue,/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/white,/area/eclipse/medical/hallway/medical_hallway3) @@ -7788,7 +7788,7 @@ "dcQ" = (/obj/effect/floor_decal/corner/red{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/eclipse/civilian/dormitory/dormitory_hallway2) "dcR" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/corner/red{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/eclipse/civilian/dormitory/dormitory_hallway2) "dcS" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/research/incinerator) -"dcT" = (/obj/structure/bed/padded,/obj/effect/floor_decal/spline/fancy{dir = 1},/obj/item/bedsheet/brown,/obj/machinery/button/remote/airlock{id = "room8"; name = "Door control"; pixel_x = -26; specialfunctions = 4},/turf/simulated/floor/trim/wood,/area/eclipse/civilian/dormitory/rooms/room8) +"dcT" = (/obj/structure/bed/padded,/obj/effect/floor_decal/spline/fancy{dir = 1},/obj/machinery/button/remote/airlock{id = "room8"; name = "Door control"; pixel_x = -26; specialfunctions = 4},/obj/item/bedsheet/centcom,/turf/simulated/floor/trim/wood,/area/eclipse/civilian/dormitory/rooms/room8) "dcU" = (/obj/effect/floor_decal/spline/fancy{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/wood,/area/eclipse/civilian/dormitory/rooms/room8) "dcV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/engineering/storage) "dcW" = (/obj/structure/table/steel,/obj/machinery/recharger,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/engineering/storage) @@ -8016,7 +8016,7 @@ "dhq" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/rglass,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "med_chem_blast3"; opacity = 0; open_layer = 2.8},/turf/simulated/floor/plating,/area/eclipse/medical/support/chemistry) "dhr" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/trim/wood,/area/eclipse/civilian/dormitory/rooms/room9) "dhs" = (/obj/effect/floor_decal/corner/blue{dir = 8},/obj/structure/table/standard,/obj/machinery/recharger,/obj/random/medical,/obj/random/medical,/obj/random/medical,/turf/simulated/floor/tiled/white,/area/eclipse/medical/hallway/medical_hallway4) -"dht" = (/obj/structure/bed/padded,/obj/item/bedsheet/purple,/obj/machinery/ai_status_display{dir = 8; pixel_x = 32; name = "AI display east"},/turf/simulated/floor/trim/wood,/area/eclipse/civilian/dormitory/rooms/room9) +"dht" = (/obj/structure/bed/padded,/obj/machinery/ai_status_display{dir = 8; pixel_x = 32; name = "AI display east"},/obj/item/bedsheet/nt,/turf/simulated/floor/trim/wood,/area/eclipse/civilian/dormitory/rooms/room9) "dhu" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/effect/floor_decal/corner/brown{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/eclipse/civilian/dormitory/dormitory_hallway2) "dhv" = (/obj/effect/floor_decal/corner/blue{dir = 8},/obj/machinery/vending/snack/medbay,/turf/simulated/floor/tiled/white,/area/eclipse/medical/hallway/medical_hallway4) "dhw" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/brown{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/eclipse/civilian/dormitory/dormitory_hallway2) @@ -8285,7 +8285,7 @@ "dmG" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/grid/bluegrid,/area/eclipse/maintenance/misc/server) "dmH" = (/obj/structure/sign/warning/server_room{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/eclipse/maintenance/misc/server) "dmI" = (/obj/structure/bed/chair/comfy/purp{dir = 1},/obj/effect/landmark/start/crew/xenobiologist,/turf/simulated/floor/trim/carpet/purple,/area/eclipse/research/support/breakroom) -"dmJ" = (/obj/structure/bed/padded,/obj/item/bedsheet/rainbow,/obj/machinery/button/window_frame_tint{name = "window tint control - south"; pixel_y = -26},/turf/simulated/floor/trim/wood,/area/eclipse/civilian/dormitory/rooms/room3) +"dmJ" = (/obj/structure/bed/padded,/obj/machinery/button/window_frame_tint{name = "window tint control - south"; pixel_y = -26},/obj/item/bedsheet/chap,/turf/simulated/floor/trim/wood,/area/eclipse/civilian/dormitory/rooms/room3) "dmK" = (/obj/machinery/camera/network/engine{c_tag = "Singularity Northeast"; dir = 8; use_power = 0},/turf/simulated/floor/plating/airless,/area/eclipse/engineering/tech/singularity_engine) "dmL" = (/obj/effect/floor_decal/corner/purple{dir = 4},/obj/effect/floor_decal/corner/blue,/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/eclipse/civilian/dormitory/dormitory_hallway1) "dmM" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/plating/airless,/area/eclipse/engineering/tech/singularity_engine) @@ -8623,7 +8623,7 @@ "dtD" = (/obj/structure/table/rack{layer = 2.6},/obj/item/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/random/maintenance,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/general/bar) "dtE" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/rglass,/turf/simulated/floor/plating,/area/eclipse/civilian/dormitory/dormitory_hallway1) "dtF" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/machinery/button/remote/airlock{id = "med_cmo"; name = "Door control"; pixel_x = -26; pixel_y = -24},/obj/machinery/button/remote/blast_door{id = "medbay_lockdown"; name = "Medbay Lockdown"; pixel_x = -38; pixel_y = -24},/obj/machinery/button/remote/blast_door{id = "med_foyer_blast"; name = "Medbay Foyer Lockdown"; pixel_x = -26; pixel_y = -34},/obj/machinery/button/remote/blast_door{id = "virology_blast"; name = "Virology Lockdown"; pixel_x = -38; pixel_y = -34},/obj/effect/landmark/start/crew/cmo,/mob/living/simple_animal/cat/fluff/Runtime,/turf/simulated/floor/tiled/white,/area/eclipse/medical/support/cmo_office) -"dtI" = (/obj/structure/window/reinforced,/obj/machinery/computer/HolodeckControl{programs_list_id = "EclipseMainPrograms"; linkedholodeck_area = /area/eclipse/civilian/dormitory/holodeck/alphadeck},/turf/simulated/floor/tiled/dark,/area/eclipse/civilian/dormitory/dormitory_hallway1) +"dtI" = (/obj/structure/window/reinforced,/obj/machinery/computer/holodeck,/turf/simulated/floor/tiled/dark,/area/eclipse/civilian/dormitory/dormitory_hallway1) "dtJ" = (/obj/structure/sign/warning/docking_area,/turf/simulated/wall,/area/eclipse/maintenance/tunnel/engineering/storage) "dtK" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/table/standard,/obj/item/paper/exodus_holodeck,/obj/item/reagent_containers/vessel/plastic/waterbottle/fi4i,/turf/simulated/floor/tiled/dark,/area/eclipse/civilian/dormitory/dormitory_hallway1) "dtL" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/eclipse/maintenance/tunnel/general/ghetto_surgery) @@ -8970,7 +8970,7 @@ "egC" = (/obj/structure/bed/chair/office/light{dir = 1},/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/research/incinerator) "ehA" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/grille/rglass,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/eclipse/security/main/prison_cells) "ehW" = (/obj/structure/table/woodentable,/obj/random/coin,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway3) -"eiG" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_coffee/full,/obj/machinery/light{dir = 4},/turf/simulated/floor/trim/darkwood,/area/eclipse/civilian/misc/theater) +"eiG" = (/obj/structure/table/woodentable,/obj/machinery/light{dir = 4},/turf/simulated/floor/trim/darkwood,/area/eclipse/civilian/misc/theater) "ejQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/firealarm{dir = 4; pixel_x = 24; name = "fire alarm - east"},/turf/simulated/floor/tiled/rough,/area/eclipse/security/prison/prison_wing) "ekq" = (/obj/random/maintenance,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/general/bar) "elo" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/grille,/turf/simulated/floor/trim/wood/broken0,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway1) @@ -9006,7 +9006,7 @@ "eGo" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/eclipse/maintenance/tunnel/ghetto_dorms/room1) "eHh" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/red{dir = 5},/obj/machinery/status_display{pixel_y = 32; name = "status display north"},/obj/machinery/camera/network/prison{c_tag = "Prison - Pre-Acces"},/obj/structure/closet/secure_closet/brig,/turf/simulated/floor/tiled,/area/eclipse/security/prison/monitoring) "eHC" = (/obj/structure/table/rack{layer = 2.6},/obj/item/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/pen,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/ghetto_dorms/maintenance) -"eIa" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/bed/chair/comfy/brown{dir = 8},/obj/machinery/firealarm{dir = 1; pixel_y = -24; name = "fire alarm - south"},/turf/simulated/floor/holofloor/carpet,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway1) +"eIa" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/bed/chair/comfy/brown{dir = 8},/obj/machinery/firealarm{dir = 1; pixel_y = -24; name = "fire alarm - south"},/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/trim/carpet/orange,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway1) "eIM" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/eclipse/medical/hallway/medical_hallway3) "eJQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/corner/red{dir = 10},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/eclipse/security/hallway/brig_hallway1) "eLL" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor/tiled,/area/eclipse/engineering/tech/atmospherics) @@ -9041,7 +9041,7 @@ "faW" = (/obj/random/pottedplant,/turf/simulated/floor/tiled/white,/area/eclipse/medical/hallway/medical_hallway3) "fbZ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/effect/floor_decal/spline/fancy{dir = 1},/turf/simulated/floor/tiled/white,/area/eclipse/engineering/support/break_room) "fci" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/ghetto_aisat/chamber) -"fdp" = (/obj/structure/closet/crate/bin,/obj/random/single,/obj/machinery/status_display{dir = 8; pixel_x = 32; name = "status display east"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dirty,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway2) +"fdp" = (/obj/structure/closet/crate/bin,/obj/machinery/status_display{dir = 8; pixel_x = 32; name = "status display east"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/random/maintenance,/turf/simulated/floor/tiled/dirty,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway2) "fdD" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{burnt = 1; icon_state = "dmg4"},/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway3) "fdU" = (/obj/structure/closet/crate/plastic,/obj/random/advdevice,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/item/device/radio/intercom{canhear_range = 4; name = "Station Intercom"; pixel_y = 26},/turf/simulated/floor/tiled,/area/eclipse/maintenance/tunnel/ghetto_dorms/room1) "fek" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/eclipse/security/prison/mine/explored) @@ -9077,7 +9077,7 @@ "fyC" = (/obj/structure/bed/chair/office/light{dir = 8},/turf/simulated/floor/tiled/rough,/area/eclipse/security/prison/prison_wing) "fzb" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/ghetto_aisat/access) "fAk" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/bed/chair/office/dark{dir = 4},/turf/simulated/floor/tiled,/area/eclipse/security/prison/monitoring) -"fBm" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/material/ashtray/bronze,/turf/simulated/floor/holofloor/carpet,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway1) +"fBm" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/material/ashtray/bronze,/turf/simulated/floor/trim/carpet/orange,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway1) "fCH" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/ghetto_aisat/access) "fDy" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/constructable_frame/machine_frame,/obj/item/stack/cable_coil,/turf/simulated/floor/tiled/dark/mono,/area/eclipse/maintenance/tunnel/ghetto_aisat/teleport) "fDH" = (/obj/machinery/floodlight,/turf/simulated/floor/tiled,/area/eclipse/maintenance/tunnel/engineering/engine) @@ -9244,7 +9244,7 @@ "hYL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/standard,/obj/item/storage/box/donkpockets,/obj/machinery/light,/turf/simulated/floor/tiled/mono,/area/eclipse/security/prison/prison_wing) "hYT" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/floodlight,/obj/machinery/firealarm{dir = 4; pixel_x = 24; name = "fire alarm - east"},/turf/simulated/floor/tiled/dark/rough,/area/eclipse/security/hallway/brig_hallway2) "hZq" = (/obj/structure/bed/wheel,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/ghetto_dorms/room6) -"hZC" = (/obj/structure/bed/padded,/obj/item/bedsheet/rd,/turf/simulated/floor/trim/darkwood,/area/eclipse/maintenance/tunnel/ghetto_dorms/room1) +"hZC" = (/obj/structure/bed/padded,/obj/item/bedsheet/qm,/turf/simulated/floor/trim/darkwood,/area/eclipse/maintenance/tunnel/ghetto_dorms/room1) "iam" = (/obj/machinery/light/small{dir = 8},/obj/structure/table/standard,/obj/item/device/radio,/obj/item/device/t_scanner,/obj/item/flame/lighter/random,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/ghetto_dorms/maintenance) "iay" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dirty,/area/eclipse/civilian/cargo/storage_secure) "iaO" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dirty,/area/eclipse/maintenance/tunnel/cargo/cargo) @@ -9364,7 +9364,7 @@ "jNz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/eclipse/security/main/processing1) "jNQ" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/eclipse/maintenance/tunnel/ghetto_aisat/telecomms) "jOJ" = (/obj/random/junk,/obj/machinery/firealarm{dir = 1; pixel_y = -24; name = "fire alarm - south"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway3) -"jPu" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/structure/sign/poster{dir = 1; pixel_y = -32; name = "poster south"},/turf/simulated/floor/holofloor/carpet,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway1) +"jPu" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/structure/sign/poster{dir = 1; pixel_y = -32; name = "poster south"},/turf/simulated/floor/trim/carpet/orange,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway1) "jPI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/mopbucket,/obj/item/mop,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/rough,/area/eclipse/security/prison/prison_wing) "jPJ" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/eclipse/maintenance/tunnel/ghetto_dorms/maintenance) "jPV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/random/trash,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/security/prison_port) @@ -9892,7 +9892,7 @@ "qrH" = (/obj/structure/closet/crate/plastic,/obj/item/material/kitchen/utensil/knife/boot,/obj/item/storage/box/lights/bulbs/old,/obj/random/music_tape,/turf/simulated/floor/tiled,/area/eclipse/maintenance/tunnel/research/ghetto_store) "qrS" = (/obj/machinery/ai_status_display{dir = 8; pixel_x = 32; name = "AI display east"},/obj/machinery/light{dir = 4},/obj/structure/closet/lawcloset,/turf/simulated/floor/trim/wood,/area/eclipse/civilian/misc/lawoffice) "qsh" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/trim/wood,/area/eclipse/civilian/command/captain) -"qst" = (/obj/structure/bed,/obj/item/bedsheet/blue,/obj/structure/sign/christmas/sockhor{name = "sticky sock"; desc = "Strange smelling sticky sock."},/obj/effect/decal/cleanable/flour{icon = 'icons/effects/blood.dmi'; icon_state = "mucus"; name = "strange substance"; desc = "Bad-smelling substance."; layer = 3.10},/obj/item/device/radio/intercom/custom{pixel_y = 22; frequency = 1488; listening = 1; name = "Radio PrisonFM"},/turf/simulated/floor/tiled/rough,/area/eclipse/security/prison/prison_wing) +"qst" = (/obj/structure/bed,/obj/structure/sign/christmas/sockhor{name = "sticky sock"; desc = "Strange smelling sticky sock."},/obj/effect/decal/cleanable/flour{icon = 'icons/effects/blood.dmi'; icon_state = "mucus"; name = "strange substance"; desc = "Bad-smelling substance."; layer = 3.10},/obj/item/device/radio/intercom/custom{pixel_y = 22; frequency = 1488; listening = 1; name = "Radio PrisonFM"},/obj/item/bedsheet/wiz,/turf/simulated/floor/tiled/rough,/area/eclipse/security/prison/prison_wing) "qsF" = (/obj/structure/sign/departments/holy,/turf/simulated/wall,/area/eclipse/civilian/support/chapel_storage) "qte" = (/obj/effect/shuttle_landmark/elite_syndicate/southwest,/turf/space,/area/shuttle/syndicate_elite/southwest) "qti" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/structure/sign/poster{pixel_x = 32; name = "poster east"},/turf/simulated/floor/tiled/brown,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway2) @@ -9925,7 +9925,7 @@ "qRs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/railing,/obj/machinery/computer/processing_unit_console,/turf/simulated/floor/tiled{color = "#ceb689"; icon_state = "steel_dirty"},/area/eclipse/security/prison/mine/mining_main) "qRw" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24; name = "fire alarm - south"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dirty,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway3) "qRz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dirty,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway1) -"qRN" = (/obj/structure/bed,/obj/item/bedsheet/red,/turf/simulated/floor/tiled/rough,/area/eclipse/security/prison/prison_wing) +"qRN" = (/obj/structure/bed,/obj/item/bedsheet/syndie,/turf/simulated/floor/tiled/rough,/area/eclipse/security/prison/prison_wing) "qTj" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/catwalk,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/ghetto_aisat/hallway) "qTn" = (/obj/map_ent/func_spawn{ev_activate_at_startup = 1; ev_new_args = list("#FFFF00","#FFFFFF","y","forbidden space letter"); ev_target = /obj/effect/decal/cleanable/crayon; name = "y"},/turf/space,/area/space) "qUa" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/obj/item/toy/figure/mime,/obj/item/stamp/mime,/obj/machinery/light{dir = 4},/turf/simulated/floor/trim/lino,/area/eclipse/civilian/misc/theater) @@ -10044,7 +10044,7 @@ "sMy" = (/obj/structure/closet/secure_closet/brig,/obj/item/device/radio/intercom{dir = 1; pixel_y = -22; pixel_x = 26},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/eclipse/security/main/prison_cells) "sMC" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/eclipse/maintenance/tunnel/ghetto_dorms/hallway1) "sNl" = (/obj/random/maintenance,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/research/research_shuttle) -"sOz" = (/obj/structure/bed/padded,/obj/item/bedsheet/mime,/obj/machinery/light/small{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24; name = "fire alarm - west"},/turf/simulated/floor/trim/wood,/area/eclipse/maintenance/tunnel/ghetto_dorms/room4) +"sOz" = (/obj/structure/bed/padded,/obj/machinery/light/small{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24; name = "fire alarm - west"},/obj/item/bedsheet/cult,/turf/simulated/floor/trim/wood,/area/eclipse/maintenance/tunnel/ghetto_dorms/room4) "sRp" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/camera/network/prison{c_tag = "Prison - Mining Refinery East"; dir = 8},/turf/simulated/floor/tiled{color = "#ceb689"},/area/eclipse/security/prison/mine/mining_main) "sRy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/random/trash,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/engineering/storage) "sRR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/eclipse/maintenance/tunnel/medical/storage) diff --git a/maps/eclipse/eclipse-3.dmm b/maps/eclipse/eclipse-3.dmm index 8b6313e49c5..39e740be7b3 100644 --- a/maps/eclipse/eclipse-3.dmm +++ b/maps/eclipse/eclipse-3.dmm @@ -5,134 +5,96 @@ "aae" = (/turf/space{icon_state = "black"},/area/space) "aaf" = (/turf/space,/area/space) "aag" = (/turf/unsimulated/wall,/area/space) -"aah" = (/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall,/area/space) +"aah" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/syndicate_station/start) "aai" = (/turf/space/transit/north,/area/space) "aaj" = (/turf/simulated/mineral,/area/space) -"aak" = (/turf/unsimulated/wall,/area/security/brig/solitary) -"aal" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/wall,/area/space) -"aam" = (/turf/simulated/floor/holofloor/desert,/area/eclipse/civilian/dormitory/holodeck/source_desert) -"aan" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/desert,/area/eclipse/civilian/dormitory/holodeck/source_desert) -"aao" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall,/area/space) -"aap" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"aaq" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"aar" = (/obj/structure/table/rack/holorack,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/head/hairflower,/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"aas" = (/obj/effect/landmark/costume,/obj/structure/table/rack/holorack,/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"aat" = (/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"aau" = (/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"aav" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"aaw" = (/turf/simulated/floor/holofloor/reinforced,/area/eclipse/civilian/dormitory/holodeck/source_wildlife) -"aax" = (/turf/simulated/floor/holofloor/reinforced,/area/eclipse/civilian/dormitory/holodeck/source_plating) -"aay" = (/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"aaz" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"aaA" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"aaB" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"aaC" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"aaD" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"aaE" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall,/area/space) +"aal" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"aam" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"aan" = (/obj/item/robot_parts/head,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aao" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; products = list(/obj/item/storage/fancy/cigarettes=10, /obj/item/storage/box/matches=10, /obj/item/flame/lighter/zippo=4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana=2); prices = list()},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"aap" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/skipjack_station/base) +"aaq" = (/obj/structure/table/standard,/obj/item/clothing/gloves/insulated,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aar" = (/obj/structure/table/rack/dark,/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aas" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aau" = (/obj/effect/floor_decal/sign/armory/suits,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aaw" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/syndicate_mothership/elite_squad) +"aax" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aaB" = (/obj/random/ammo,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aaC" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/wizard_station) +"aaD" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aaE" = (/obj/structure/closet/crate/medical,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aaF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north,/area/space) "aaG" = (/turf/unsimulated/beach/sand{density = 1; opacity = 1},/area/beach) "aaH" = (/obj/structure/bed,/turf/unsimulated/floor{name = "plating"},/area/security/brig/solitary) "aaI" = (/turf/unsimulated/floor{name = "plating"},/area/security/brig/solitary) "aaJ" = (/obj/effect/decal/cleanable/cobweb2,/turf/unsimulated/floor{name = "plating"},/area/security/brig/solitary) "aaK" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{name = "plating"},/area/security/brig/solitary) -"aaL" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/desert,/area/eclipse/civilian/dormitory/holodeck/source_desert) -"aaM" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"aaN" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 8},/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"aaO" = (/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"aaP" = (/obj/machinery/door/window/holowindoor{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"aaQ" = (/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"aaR" = (/obj/effect/landmark/event/other/holodeck/carps,/turf/simulated/floor/holofloor/reinforced,/area/eclipse/civilian/dormitory/holodeck/source_wildlife) -"aaS" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"aaT" = (/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"aaU" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) +"aaL" = (/obj/random/junk,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aaM" = (/obj/item/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/pen{pixel_y = 4},/obj/structure/table/glass,/obj/item/clothing/glasses/rglasses,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"aaN" = (/obj/machinery/floodlight,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aaR" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 1},/area/syndicate_mothership) +"aaS" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aaU" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/syndicate_mothership/elite_squad) "aaV" = (/turf/space/transit/north,/area/rescue_base/transit) "aaW" = (/turf/unsimulated/beach/sand,/area/beach) "aaX" = (/obj/structure/closet,/turf/unsimulated/beach/sand,/area/beach) "aaY" = (/obj/effect/landmark/event/prison/prisioner,/turf/unsimulated/floor{name = "plating"},/area/security/brig/solitary) -"aaZ" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"aba" = (/obj/effect/decal/cleanable/dirt,/obj/structure/holostool,/turf/simulated/floor/holofloor/desert,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"abb" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"abc" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"abd" = (/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abe" = (/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abf" = (/obj/structure/window/reinforced/holowindow{dir = 1},/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abg" = (/obj/structure/window/reinforced/holowindow{dir = 1},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abh" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Jury Box"},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abi" = (/obj/machinery/door/window/holowindoor{dir = 8; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) +"aaZ" = (/obj/effect/floor_decal/industrial/warning/red{dir = 8},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aba" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/wizard_station) +"abb" = (/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/staff,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"abc" = (/obj/machinery/door/airlock/external{frequency = 1331; req_access = list(150); id_tag = "merc_base_hatch"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"abg" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 8},/obj/item/pen{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"abh" = (/obj/structure/table/steel,/obj/item/trash/dish/bowl,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"abi" = (/obj/item/shovel,/obj/item/storage/toolbox/mechanical,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "abj" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/beach) "abk" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) -"abl" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"abm" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) +"abl" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/security/brig/solitary) +"abm" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/syndicate_mothership) "abn" = (/obj/structure/shuttle/engine/propulsion/burst/huge,/turf/space,/area/shuttle/escape/centcom) -"abo" = (/turf/simulated/floor/holofloor/desert,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"abp" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"abq" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"abr" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"abs" = (/obj/structure/window/reinforced/holowindow,/obj/machinery/door/window/holowindoor{dir = 1; name = "Court Reporter's Box"},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abt" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow,/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abu" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abv" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abw" = (/obj/structure/window/reinforced/holowindow,/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 1; icon_state = "right"; name = "Witness Box"},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abx" = (/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"aby" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abz" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet/corners{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) +"abo" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"abp" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = -3; pixel_y = 8; on = 0},/obj/item/reagent_containers/vessel/flask/barflask,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/trim/carpet,/area/wizard_station) +"abq" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/alien) +"abr" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/wizard_station) +"aby" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/syringe/antiviral/packaged,/obj/item/reagent_containers/syringe,/obj/item/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = 1},/obj/item/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/fire{pixel_x = 1},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"abz" = (/obj/item/target/syndicate,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "abA" = (/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) "abB" = (/obj/structure/bed,/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{name = "plating"},/area/security/brig/solitary) -"abC" = (/turf/unsimulated/wall,/area/alien) -"abD" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/desert,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"abE" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"abF" = (/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"abG" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"abH" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"abI" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"abJ" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"},/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abK" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abL" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abM" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abN" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abO" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) +"abC" = (/obj/structure/lattice,/obj/structure/window_frame/grille,/turf/space,/area/space) +"abE" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 8},/area/syndicate_station/start) +"abG" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/skipjack_station/base) +"abH" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) +"abI" = (/obj/structure/largecrate/animal/cow,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"abL" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/alien) +"abM" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) "abP" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north,/area/space) -"abQ" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/wall,/area/security/brig/solitary) +"abQ" = (/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "abR" = (/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"abS" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"abT" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"abU" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"abV" = (/obj/structure/table/holo_woodentable,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abW" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abX" = (/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abY" = (/obj/structure/table/holo_woodentable,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"abZ" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"aca" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) +"abS" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"abT" = (/obj/item/robot_parts/head,/obj/structure/table/glass,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"abU" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/skipjack_station/base) +"abZ" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/skipjack_station/base) +"aca" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/syndicate_mothership) "acb" = (/turf/space/transit/north,/area/shuttle/escape/transit) "acc" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand,/area/beach) -"acd" = (/obj/item/paper{info = "Some stuff is missing..."; name = "Insert alien artifacts here."},/turf/unsimulated/floor{icon_state = "dark"},/area/alien) +"acd" = (/obj/structure/table/woodentable,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "ace" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acf" = (/obj/effect/floor_decal/spline/fancy/wood,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"acg" = (/obj/effect/floor_decal/spline/fancy/wood,/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"ach" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"aci" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"acj" = (/obj/structure/bed/chair/holochair{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"ack" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) +"acf" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 4},/area/wizard_station) +"acg" = (/obj/structure/table/rack,/obj/item/gun/launcher/alien/spikethrower,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aci" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) "acl" = (/obj/effect/landmark/event/rift/exit,/turf/unsimulated/beach/sand,/area/beach) "acm" = (/obj/structure/closet/acloset,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acn" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"aco" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/desert,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"acp" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"acq" = (/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"acr" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"acs" = (/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) +"acn" = (/obj/random/trash,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"acr" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1331; locked = 1; id_tag = "emerc_airlock_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "act" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/turf/unsimulated/beach/sand,/area/beach) "acu" = (/obj/structure/table/standard,/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/collectable/petehat{pixel_y = 5},/turf/unsimulated/beach/sand,/area/beach) "acv" = (/obj/item/inflatable_duck,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) -"acw" = (/obj/structure/table/steel,/obj/item/paper,/obj/item/pen,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"acw" = (/obj/machinery/computer/station_alert/all,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "acx" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/syndicate_mothership/ninja) "acy" = (/turf/space,/area/shuttle/alien/base) -"acz" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"acA" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"acB" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"acC" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"acD" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"acE" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) +"acz" = (/obj/structure/closet/voxn2closet,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"acA" = (/obj/structure/synthesized_instrument/synthesizer/piano,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"acB" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/skipjack_station/base) +"acD" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/alien) "acF" = (/obj/structure/table/standard,/obj/item/reagent_containers/food/packaged/chips,/turf/unsimulated/beach/sand,/area/beach) "acG" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/turf/unsimulated/beach/sand,/area/beach) "acH" = (/obj/item/beach_ball,/turf/unsimulated/beach/sand,/area/beach) @@ -140,156 +102,119 @@ "acJ" = (/obj/effect/floor_decal/corner/paleblue{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "acL" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "elite_syndicate_ship"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/shuttle/syndicate_elite/mothership) "acM" = (/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"acN" = (/obj/structure/flora/pottedplant{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_theatre) -"acO" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"acP" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"acQ" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"acR" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_courtroom) -"acS" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"acT" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) -"acU" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_emptycourt) +"acN" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/skipjack_station/base) +"acO" = (/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"acP" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/syndicate_mothership/elite_squad) +"acQ" = (/obj/structure/table/rack/dark,/obj/item/gun/energy/sniperrifle,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/kinetic_accelerator,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"acS" = (/obj/structure/table/steel,/obj/item/device/flashlight/lamp/brown,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"acT" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"acU" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/syndicate_mothership/elite_squad) "acX" = (/obj/structure/bed/alien,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acY" = (/obj/structure/window/reinforced/crescent,/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall,/area/space) -"acZ" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall,/area/space) +"acY" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"acZ" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/space) "ada" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 4},/area/shuttle/syndicate_elite/mothership) -"adb" = (/mob/living/silicon/decoy{icon_state = "ai-malf"; name = "GLaDOS"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/elite_squad) +"adb" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) "adc" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/elite_squad) -"add" = (/turf/simulated/floor/holofloor/space,/area/eclipse/civilian/dormitory/holodeck/source_space) -"ade" = (/turf/simulated/floor/holofloor/snow,/area/eclipse/civilian/dormitory/holodeck/source_snowfield) -"adf" = (/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"adg" = (/obj/structure/flora/pottedplant{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"adh" = (/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"adi" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"adj" = (/obj/machinery/door/window/holowindoor{dir = 8; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"adk" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"adl" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"adm" = (/obj/structure/holohoop,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"adn" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"ado" = (/turf/unsimulated/beach/sand{dir = 8; icon_state = "beach"},/area/eclipse/civilian/dormitory/holodeck/source_beach) -"adp" = (/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"adq" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"adr" = (/obj/machinery/door/window/holowindoor{dir = 8; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"ads" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"adt" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/holo/esword/red,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"adu" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"adv" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"adw" = (/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) +"add" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"ade" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/security/brig/solitary) +"adg" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/syndicate_mothership/elite_squad) +"adk" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/alien) +"adm" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"adr" = (/obj/structure/table/woodentable,/obj/item/storage/bag/cash,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"ads" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/stealth,/obj/item/clothing/head/helmet/space/vox/stealth,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/glasses/hud/plain/thermal/monocle,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"adt" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"adu" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"adw" = (/obj/structure/sign/double/maltesefalcon/right,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) "adx" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east,/area/space) "ady" = (/obj/structure/bed/chair/comfy/black{dir = 8},/obj/effect/landmark/start/antags/commando,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"adz" = (/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"adz" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/alien) "adA" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"adB" = (/obj/effect/landmark/event/other/holodeck/randcarps,/turf/simulated/floor/holofloor/space,/area/eclipse/civilian/dormitory/holodeck/source_space) -"adC" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor/snow,/area/eclipse/civilian/dormitory/holodeck/source_snowfield) -"adD" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"adE" = (/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"adF" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"adG" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"adH" = (/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"adI" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"adJ" = (/turf/simulated/floor/holofloor/beach/water,/area/eclipse/civilian/dormitory/holodeck/source_beach) -"adK" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"adL" = (/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"adM" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"adN" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) +"adB" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/alien) +"adC" = (/obj/machinery/optable,/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"adD" = (/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"adF" = (/obj/machinery/autolathe,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"adG" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{name = "Mech Room Door"; dir = 4; id = "syndicate_elite_mech_room"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"adH" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/turf/space,/area/space) +"adI" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"adJ" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/alien) +"adK" = (/obj/item/caution,/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"adM" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/skipjack_station/base) "adO" = (/obj/effect/shuttle_landmark/escape/internim,/turf/space/transit/north,/area/shuttle/escape/transit) "adP" = (/turf/space/transit/east,/area/shuttle/escape_pod5/transit) "adQ" = (/obj/structure/bed/chair,/obj/effect/landmark/event/rift/exit,/turf/unsimulated/beach/sand,/area/beach) "adR" = (/mob/living/simple_animal/crab/Coffee,/turf/unsimulated/beach/sand,/area/beach) -"adS" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/tank/nitrogen,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"adS" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 1},/area/syndicate_station/start) "adT" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 4},/area/syndicate_mothership/ninja) "adV" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "adW" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "adY" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 1},/area/shuttle/syndicate_elite/mothership) -"adZ" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/eclipse/civilian/dormitory/holodeck/source_snowfield) -"aea" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"aeb" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_basketball) +"adZ" = (/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aea" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aec" = (/obj/structure/shuttle/engine/propulsion/burst/huge,/turf/space,/area/skipjack_station/start) -"aed" = (/turf/unsimulated/beach/sand{tag = "icon-beach"; icon_state = "beach"; dir = 1},/area/eclipse/civilian/dormitory/holodeck/source_beach) -"aee" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"aef" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 2; icon_state = "right"; name = "Red Corner"},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"aeg" = (/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) +"aef" = (/obj/structure/table/standard,/obj/item/storage/firstaid/surgery,/obj/item/storage/firstaid/combat,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aeh" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; tiles = 0},/turf/space/transit/east,/area/space) "aei" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/sand,/area/beach) -"aek" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/holofloor/snow,/area/eclipse/civilian/dormitory/holodeck/source_snowfield) -"ael" = (/turf/simulated/floor/holofloor/lino,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"aem" = (/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) +"aek" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "aen" = (/turf/space,/area/skipjack_station/start) -"aeo" = (/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"aep" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"aeq" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"aer" = (/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"aes" = (/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) +"aep" = (/obj/item/stool/padded,/obj/effect/landmark/start/antags/vox,/turf/simulated/floor/trim/wood/broken0{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aeq" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/syndicate_mothership/elite_squad) "aet" = (/obj/effect/shuttle_landmark/escape_pod/transit/pod5,/turf/space/transit/east,/area/shuttle/escape_pod5/transit) "aeu" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east,/area/space) "aew" = (/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) "aex" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) -"aey" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/eclipse/civilian/dormitory/holodeck/source_snowfield) +"aey" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) "aez" = (/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/turf/space,/area/space) -"aeA" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"aeB" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"aeC" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"aeD" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"aeE" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"aeF" = (/obj/item/beach_ball/holoball,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"aeG" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"aeH" = (/turf/simulated/floor/holofloor/beach/sand,/area/eclipse/civilian/dormitory/holodeck/source_beach) -"aeI" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"aeJ" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"aeK" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"aeL" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"aeM" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"aeN" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"aeO" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) +"aeA" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/alien) +"aeC" = (/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"aeD" = (/obj/structure/closet/voxn2closet,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aeF" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"},/area/syndicate_station/start) +"aeG" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 4},/area/syndicate_station/start) +"aeI" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/syndicate_mothership/elite_squad) +"aeJ" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/obj/structure/window/syndi{icon_state = "ws5"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"aeK" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{name = "interior access button"; pixel_x = 25; pixel_y = 25; frequency = 1380; req_access = list(150); command = "cycle_interior"; master_tag = "skipjack_shuttle"},/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aeL" = (/obj/structure/table/steel,/obj/random/medical,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aeM" = (/obj/structure/flora/ausbushes/fullgrass,/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"aeN" = (/obj/structure/table/woodentable,/obj/item/immovable_wand,/obj/item/paper/immovable_wand_note,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aeO" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership) "aeP" = (/turf/unsimulated/beach/coastline{density = 1; opacity = 1},/area/beach) "aeQ" = (/turf/unsimulated/beach/coastline,/area/beach) "aeR" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/bloodsoup,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"aeS" = (/turf/simulated/floor/holofloor/lino,/area/eclipse/civilian/dormitory/holodeck/source_chess) -"aeT" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"aeU" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"aeV" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"aeW" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"aeX" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"aeY" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"aeZ" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"afa" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"afb" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"afc" = (/obj/effect/floor_decal/corner/blue/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"afd" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) +"aeT" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/syndicate_mothership/elite_squad) +"aeV" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/closet,/obj/random/clothing/hat,/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aeW" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/skipjack_station/base) +"aeX" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aeY" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aeZ" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/wizard_station) +"afa" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/syndicate_mothership/elite_squad) +"afb" = (/obj/effect/floor_decal/industrial/warning/red{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"afc" = (/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/staff/broom,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "afe" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north,/area/space) "aff" = (/turf/unsimulated/beach/water{density = 1; opacity = 1},/area/beach) "afg" = (/turf/unsimulated/beach/water,/area/beach) "afh" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"afi" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"afj" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"afk" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"afl" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"afm" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"afn" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) +"afi" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/space) +"afj" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"afk" = (/obj/structure/table/steel,/obj/item/storage/box/handcuffs,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"afl" = (/obj/structure/sign/flag/syndie,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership) +"afm" = (/mob/living/simple_animal/faithful_hound,/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"afn" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "afo" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/shuttle/syndicate_elite/mothership) -"afp" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"afp" = (/obj/structure/window_frame/indestructible/grille,/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership) "afq" = (/turf/space/transit/south,/area/shuttle/syndicate_elite/transit) -"afr" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/holofloor/snow,/area/eclipse/civilian/dormitory/holodeck/source_snowfield) -"afs" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet{dir = 8},/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) +"afr" = (/obj/effect/floor_decal/industrial/warning/red{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aft" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space,/area/space) -"afu" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"afv" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/simulated/floor/holofloor/beach/sand,/area/eclipse/civilian/dormitory/holodeck/source_beach) +"afv" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/alien) "afw" = (/turf/space,/area/shuttle/escape/transit) -"afx" = (/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"afy" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Green Corner"},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) "afz" = (/obj/structure/bed/chair/comfy/black,/obj/effect/landmark/start/antags/commando,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"afA" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"afB" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"afC" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/eclipse/civilian/dormitory/holodeck/source_meetinghall) -"afD" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/holofloor/beach/sand,/area/eclipse/civilian/dormitory/holodeck/source_beach) -"afE" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"afF" = (/obj/structure/holohoop{dir = 1},/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"afG" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_basketball) -"afH" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"afI" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/holo/esword/green,/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"afJ" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt) -"afK" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt) -"afL" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall,/area/space) -"afN" = (/obj/item/reagent_containers/food/checker/pawn{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"afA" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"afB" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/security/brig/solitary) +"afE" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"afF" = (/obj/structure/sign/flag/syndie,/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/syndicate_mothership) +"afG" = (/obj/structure/table/steel,/obj/random/drinkbottle,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"afH" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"afI" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"afJ" = (/obj/machinery/light/small{dir = 4},/obj/vehicle/bike/thermal,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"afL" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "afP" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/beetsoup,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "afS" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/syndicate_mothership/ninja) "afT" = (/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/syndi/se{icon_state = "corner_syndiwall_s"},/area/syndicate_mothership/ninja) @@ -298,47 +223,45 @@ "afW" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "elite_syndicate_ship"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/shuttle/syndicate_elite/mothership) "afX" = (/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "afZ" = (/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"agb" = (/obj/item/reagent_containers/food/checker/pawn{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"agb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/medic,/obj/item/clothing/head/helmet/space/vox/medic,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "agd" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/shuttle/syndicate_elite/mothership) -"age" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"age" = (/obj/item/soap/syndie,/obj/machinery/shower{pixel_y = 24},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) "agf" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) -"agg" = (/obj/machinery/button/remote/blast_door{id = "syndicate_elite_mech_room"; name = "Mech Access"; pixel_x = 32; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"agg" = (/obj/structure/sign/flag/syndie,/turf/unsimulated/wall,/area/syndicate_mothership/elite_squad) "agh" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agi" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/boiledrice,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "agj" = (/obj/effect/floor_decal/corner/red{dir = 6},/obj/structure/bed/chair/shuttle/red{dir = 8},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agk" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/vessel/glass/square,/obj/effect/floor_decal/spline/fancy/wood{dir = 9},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) -"agl" = (/obj/item/reagent_containers/food/checker/knight{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_chess) "agm" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "emerc_shuttle"; pixel_x = 25; req_access = list(150)},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "emerc_shuttle_pump"},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "agn" = (/obj/structure/table/glass,/obj/item/storage/secure/briefcase,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "ago" = (/obj/item/toy/chubbyskeleton,/turf/unsimulated/beach/sand{icon_state = "desert3"},/area/centcom/holding) "agp" = (/obj/machinery/light{dir = 4},/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "agq" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/sw,/area/shuttle/syndicate_elite/mothership) "agr" = (/obj/structure/toilet{dir = 1},/obj/effect/decal/cleanable/vomit,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) -"ags" = (/obj/structure/bed,/obj/item/bedsheet/orange,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"ags" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"},/area/syndicate_station/start) "agt" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) "agu" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "agv" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/shuttle/syndicate_elite/mothership) -"agw" = (/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"agw" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) "agx" = (/obj/effect/landmark/start/antags/ninja,/turf/simulated/floor/shuttle/red,/area/syndicate_mothership/ninja) "agz" = (/obj/structure/window/syndi{icon_state = "ws2"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) "agA" = (/obj/machinery/door/blast/regular{id = "thunderdomegen"; name = "General Supply"},/obj/machinery/door/blast/regular{dir = 4; id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"agC" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/stealth,/obj/item/clothing/head/helmet/space/vox/stealth,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/glasses/hud/plain/thermal/monocle,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"agF" = (/obj/item/stool/padded,/obj/effect/landmark/start/antags/vox,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"agG" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{dir = 4; id = "syndicate_elite_mech_room"; name = "Mech Room Door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"agC" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 4},/area/syndicate_station/start) +"agF" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/syndicate_mothership) +"agG" = (/obj/structure/sink{dir = 1; pixel_y = 16},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) "agH" = (/obj/machinery/mech_recharger,/obj/mecha/combat/marauder/mauler,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "agI" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 4},/area/shuttle/syndicate_elite/mothership) "agJ" = (/obj/machinery/door/airlock/hatch{name = "Restroom"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) "agK" = (/obj/effect/shuttle_landmark/elite_syndicate/internim,/turf/space/transit/south,/area/shuttle/syndicate_elite/transit) "agL" = (/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) "agO" = (/obj/structure/bed/roller,/obj/effect/floor_decal/industrial/hatch/blue,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"agP" = (/obj/structure/sign/poster,/turf/unsimulated/wall,/area/skipjack_station/base) -"agQ" = (/obj/item/reagent_containers/food/checker/pawn/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"agP" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/syndicate_mothership) "agR" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"agS" = (/obj/structure/closet/crate/medical,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"agS" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/security/brig/solitary) "agT" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/se,/area/shuttle/syndicate_elite/mothership) "agU" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"agV" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_alc/full{pixel_y = 2},/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"agW" = (/turf/unsimulated/wall,/area/syndicate_mothership/elite_squad) +"agV" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"agW" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "agY" = (/obj/structure/window/syndi{icon_state = "ws1"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) "agZ" = (/obj/effect/landmark/start/antags/commando,/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aha" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north,/area/space) @@ -348,9 +271,9 @@ "ahe" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north,/area/space) "ahf" = (/turf/space/transit/north,/area/syndicate_station/transit) "ahg" = (/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"ahh" = (/obj/item/reagent_containers/food/checker/queen{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"ahh" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/chawanmushi,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "ahi" = (/obj/effect/shuttle_landmark/syndi/internim,/turf/space/transit/north,/area/syndicate_station/transit) -"ahj" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"ahj" = (/obj/effect/floor_decal/spline/plain/black{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "ahk" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/syndicate_mothership/ninja) "ahl" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "elite_syndicate_ship"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi,/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) "ahm" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced/crescent{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_mothership/ninja) @@ -392,7 +315,7 @@ "ahW" = (/turf/unsimulated/mineral,/area/rescue_base/base) "ahX" = (/turf/unsimulated/wall,/area/rescue_base/base) "ahY" = (/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"aia" = (/obj/structure/table/woodentable,/obj/item/flame/lighter/zippo,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aia" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1331; locked = 1; id_tag = "emerc_airlock_dock_door"},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) "aib" = (/turf/unsimulated/wall{desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/Doorele.dmi'; icon_state = "door_locked"; name = "Facility Access"},/area/rescue_base/base) "aic" = (/obj/structure/table/steel_reinforced,/obj/item/material/hatchet/tacknife,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aid" = (/obj/structure/table/steel_reinforced,/obj/item/storage/firstaid/regular,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) @@ -413,7 +336,7 @@ "ais" = (/obj/structure/closet/emcloset,/obj/machinery/light{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "ait" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aiu" = (/obj/structure/table/standard,/obj/item/toy/plushie/farwa,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"aiv" = (/obj/structure/largecrate/animal/cow,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aiv" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/syndicate_mothership) "aiw" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_3_recovery"; pixel_x = 25; pixel_y = 30; req_one_access = list(13); tag_door = "escape_pod_3_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "aix" = (/obj/item/stool/padded,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aiy" = (/obj/machinery/computer/arcade,/obj/machinery/light{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) @@ -422,7 +345,7 @@ "aiB" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/centcom/evac) "aiC" = (/obj/machinery/vending/engineering,/turf/simulated/floor/plating,/area/centcom/evac) "aiD" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) -"aiE" = (/obj/item/reagent_containers/food/checker/queen/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"aiE" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "aiF" = (/obj/structure/table/steel_reinforced,/obj/item/device/taperecorder,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aiG" = (/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aiH" = (/obj/structure/table/steel_reinforced,/obj/item/bikehorn/rubberducky,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) @@ -452,10 +375,9 @@ "ajf" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/centcom/evac) "ajg" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "ajh" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"aji" = (/obj/effect/overlay/palmtree_l,/turf/simulated/floor/holofloor/beach/sand,/area/eclipse/civilian/dormitory/holodeck/source_beach) +"aji" = (/obj/structure/table/steel,/obj/item/storage/firstaid,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "ajj" = (/obj/structure/table/standard,/obj/item/clipboard,/obj/item/pen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "ajk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space,/area/space) -"ajl" = (/turf/unsimulated/beach/sand{tag = "icon-beach"; icon_state = "beach"; dir = 9},/area/eclipse/civilian/dormitory/holodeck/source_beach) "ajm" = (/obj/structure/mopbucket,/obj/item/mop,/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/sink/kitchen{pixel_y = 21},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ajn" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/floor_decal/corner/blue/diagonal,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ajo" = (/obj/structure/table/reinforced,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/effect/floor_decal/corner/blue/diagonal,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) @@ -473,7 +395,7 @@ "ajA" = (/turf/space,/area/shuttle/escape_pod5/centcom) "ajB" = (/obj/structure/table/standard,/obj/machinery/light{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "ajC" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"ajD" = (/obj/structure/closet,/obj/random/contraband,/obj/random/contraband,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"ajD" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "ajE" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "ajF" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "ajG" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) @@ -548,9 +470,9 @@ "akX" = (/obj/structure/table/reinforced,/obj/item/paper_bin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "akY" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "akZ" = (/obj/structure/table/reinforced,/obj/item/pen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"ala" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 8},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"ala" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "alb" = (/obj/structure/table/standard,/obj/effect/landmark/event/nuke/code,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) -"alc" = (/obj/structure/table/standard,/obj/item/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/pen{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"alc" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/space) "ald" = (/obj/item/clothing/shoes/orange,/obj/item/clothing/under/color/orange,/obj/structure/closet{name = "Prisoner's Locker"},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ale" = (/obj/machinery/sleeper{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "alf" = (/obj/machinery/door/airlock/hatch{name = "Infirmary"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) @@ -558,14 +480,14 @@ "alh" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "ali" = (/obj/structure/shuttle/engine/propulsion/burst/huge,/turf/space,/area/syndicate_station/start) "alj" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"alk" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/wall/fakeglass{dir = 1},/area/syndicate_mothership) +"alk" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 4},/area/syndicate_station/start) "all" = (/obj/structure/bed,/obj/item/bedsheet/hos,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "alm" = (/obj/effect/landmark/start/antags/operatives,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "aln" = (/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "alo" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "alp" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "alq" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window-whiteship"},/turf/simulated/floor/plating,/area/centcom/evac) -"alr" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) +"alr" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "als" = (/obj/machinery/door/airlock/centcom{name = "Ready Room"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "alt" = (/obj/structure/table/rack,/obj/item/storage/box/handcuffs,/obj/item/storage/box/handcuffs,/obj/item/storage/box/teargas,/obj/item/storage/box/teargas,/obj/item/storage/box/flashbangs,/obj/item/storage/box/flashbangs,/obj/item/device/flash,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/reagent_containers/spray/pepper,/obj/item/reagent_containers/spray/pepper,/obj/item/gun/energy/stunrevolver,/obj/item/gun/energy/stunrevolver,/obj/item/melee/telebaton,/obj/item/melee/telebaton,/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "alu" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/hud/scanners/night,/obj/item/clothing/glasses/hud/scanners/night,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) @@ -591,7 +513,7 @@ "alO" = (/obj/machinery/door/window/northright{dir = 4; name = "Security Desk"; req_access = list(103)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "alP" = (/obj/machinery/light,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "alQ" = (/obj/structure/table/standard,/obj/item/storage/box/handcuffs,/obj/item/device/flash,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"alR" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) +"alR" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "alS" = (/obj/machinery/vending/snack{prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "alT" = (/obj/machinery/vending/cola{prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "alU" = (/obj/machinery/vending/cigarette{prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) @@ -621,7 +543,7 @@ "ams" = (/obj/machinery/chemical_dispenser/full,/obj/item/reagent_containers/vessel/beaker/large,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "amt" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "amu" = (/obj/item/device/radio/off,/obj/structure/table/reinforced,/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"amv" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership) +"amv" = (/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/staff,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "amw" = (/obj/machinery/door/airlock/centcom{name = "Barracks"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "amx" = (/obj/structure/table/reinforced,/obj/item/storage/fancy/cigar,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "amy" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) @@ -645,12 +567,12 @@ "amQ" = (/obj/item/clipboard,/obj/item/pen,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "amR" = (/obj/item/paper_bin,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "amS" = (/obj/effect/shuttle_landmark/skipjack/internim,/turf/space/transit/north,/area/skipjack_station/transit) -"amT" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "syndieshutters"; name = "Shuttle Blast Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/syndicate_station/start) +"amT" = (/obj/structure/bed/chair{dir = 1},/obj/item/clothing/head/pirate,/obj/effect/shuttle_landmark/skipjack/start,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "amU" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw,/area/syndicate_station/start) -"amV" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) -"amW" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) -"amX" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) -"amY" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"amV" = (/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/obj/random/trash,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"amW" = (/obj/item/stool/padded,/obj/effect/landmark/start/antags/vox,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"amX" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_arm,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"amY" = (/obj/structure/table/woodentable,/obj/item/pizzabox/meat,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "amZ" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full{pixel_x = 2; pixel_y = 6},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "ana" = (/obj/structure/table/standard,/obj/item/storage/box/glasses/square{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "anb" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) @@ -674,7 +596,7 @@ "ant" = (/obj/machinery/computer/shuttle_control/multi/syndicate,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "anu" = (/obj/structure/computerframe,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "anv" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters"; name = "remote shutter control"; req_access = list(150)},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"anw" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) +"anw" = (/obj/structure/sink,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 4},/area/wizard_station) "anx" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "any" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "anz" = (/obj/structure/table/reinforced,/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) @@ -685,13 +607,13 @@ "anE" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 2},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "anF" = (/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "anG" = (/obj/effect/shuttle_landmark/syndi/start,/obj/structure/bed/chair/comfy/captain{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"anH" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) -"anI" = (/obj/item/folder{pixel_y = 2},/obj/structure/table/glass,/obj/item/flame/lighter/zippo/syndie,/obj/item/deck/cards,/obj/item/music_tape_box/syndie,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) -"anJ" = (/obj/item/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/pen{pixel_y = 4},/obj/structure/table/glass,/obj/item/clothing/glasses/rglasses,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) -"anK" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) +"anH" = (/obj/effect/decal/cleanable/blood/oil,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"anI" = (/obj/structure/mirror,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership/elite_squad) +"anJ" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Experiment 97d"},/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"anK" = (/obj/effect/floor_decal/industrial/warning/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "anL" = (/obj/structure/table/reinforced,/obj/item/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "anM" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/green,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/green,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"anN" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"anN" = (/obj/item/wrench,/obj/item/crowbar,/obj/item/gun/energy/crossbow,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "anO" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/blue,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/blue,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "anP" = (/obj/structure/flora/ausbushes/sunnybush,/turf/unsimulated/floor{icon_state = "asteroid"},/area/rescue_base/base) "anQ" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) @@ -704,8 +626,8 @@ "anX" = (/obj/item/storage/box/donkpockets{pixel_x = 2; pixel_y = 3},/obj/machinery/light{dir = 8},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "anY" = (/obj/structure/bed/chair/shuttle/blue{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "anZ" = (/obj/structure/computerframe,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aoa" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) -"aob" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"aoa" = (/obj/structure/table/woodentable,/obj/item/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aob" = (/obj/structure/mirror/magic{pixel_y = 30},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aoc" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "aod" = (/obj/structure/table/reinforced,/obj/item/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "aoe" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/vessel/bottle/vodka{pixel_x = 3; pixel_y = 12},/obj/item/reagent_containers/vessel/bottle/wine{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) @@ -720,7 +642,7 @@ "aon" = (/obj/item/stack/material/glass{amount = 15},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aoo" = (/obj/machinery/light,/obj/item/device/radio/intercom/syndicate{dir = 1; pixel_y = -22},/obj/machinery/recharge_station,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aop" = (/obj/item/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/pen{pixel_y = 4},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aoq" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/storage/fancy/cigarettes = 10, /obj/item/storage/box/matches = 10, /obj/item/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"aoq" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/obj/item/device/multitool,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "aor" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aos" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aot" = (/obj/structure/table/reinforced,/obj/item/storage/box/trackimp,/obj/item/storage/box/cdeathalarm_kit,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) @@ -733,12 +655,12 @@ "aoA" = (/obj/machinery/pipedispenser/orderable,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoB" = (/obj/machinery/pipedispenser/disposal/orderable,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoC" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) -"aoD" = (/obj/item/inflatable_duck,/turf/simulated/floor/holofloor/beach/sand,/area/eclipse/civilian/dormitory/holodeck/source_beach) +"aoD" = (/obj/item/clothing/shoes/sandal/marisa{name = "Gentlemans Shoes"; desc = "A set of fancy shoes that are as functional as they are comfortable."},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/staff/gentcane,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aoE" = (/obj/machinery/door/window/northright{name = "Flight Deck"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aoF" = (/turf/simulated/floor/plating/airless,/area/skipjack_station/start) "aoH" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) -"aoI" = (/obj/machinery/shower{pixel_y = 32},/obj/structure/window/basic{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) -"aoJ" = (/obj/machinery/shower{pixel_y = 32},/obj/item/soap/syndie,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) +"aoI" = (/obj/item/target,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"aoJ" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/obj/structure/window/syndi{icon_state = "ws6"},/turf/simulated/floor/plating,/area/syndicate_station/start) "aoK" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aoL" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/armor/vest,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aoM" = (/obj/structure/bed/chair/office/dark,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) @@ -769,7 +691,7 @@ "apl" = (/obj/structure/bed/chair/shuttle/red{dir = 8},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/simulated/floor,/area/syndicate_station/start) "apm" = (/obj/structure/closet,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apn" = (/obj/structure/mirror{dir = 4; pixel_x = -32},/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) -"apo" = (/obj/machinery/door/airlock/centcom{name = "Suit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"apo" = (/obj/item/remains/human,/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) "app" = (/obj/structure/table/steel,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "apq" = (/obj/structure/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "apr" = (/obj/structure/table/rack,/obj/item/storage/box/flashbangs,/obj/item/storage/box/teargas,/obj/item/storage/box/handcuffs,/obj/item/melee/baton/loaded,/obj/item/gun/energy/stunrevolver,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) @@ -785,8 +707,8 @@ "apB" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apC" = (/obj/structure/closet,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apD" = (/obj/structure/table/rack,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"apE" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"apF" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"apE" = (/obj/structure/table/woodentable,/obj/item/spacecash/bundle/c1,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"apF" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) "apG" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/gun/projectile/automatic/c20r,/obj/item/gun/projectile/automatic/c20r,/obj/item/gun/projectile/automatic/c20r,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apH" = (/obj/item/modular_computer/console/preset/command,/obj/item/card/id/centcom,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "apI" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) @@ -824,20 +746,20 @@ "aqo" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "merc_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqp" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "merc_shuttle"; pixel_x = -8; pixel_y = 25; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqq" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_shuttle_outer"; name = "Ship External Access"; req_access = list(150)},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/turf/simulated/floor/plating,/area/syndicate_station/start) -"aqr" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_base_hatch"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aqr" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/wizard_station) "aqs" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aqt" = (/obj/machinery/door/airlock/vault{name = "Armory"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aqu" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) +"aqu" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/security/brig/solitary) "aqv" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aqw" = (/obj/structure/table/woodentable{dir = 5},/obj/item/material/ashtray/bronze,/obj/item/cigbutt/cigarbutt,/obj/item/device/radio/phone{desc = "Should anything ever go wrong..."; frequency = 1345},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/rescue_base/base) "aqx" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/rescue_base/base) "aqy" = (/obj/structure/table/woodentable{dir = 5},/obj/item/storage/fancy/cigar,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/rescue_base/base) "aqz" = (/obj/machinery/door/airlock/centcom{name = "Combat Exosuit"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{id = "heavyrescue"; name = "Combat Exosuit"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "aqA" = (/obj/mecha/combat/gygax/dark,/obj/machinery/mech_recharger,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) -"aqB" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/syndicate_station/start) +"aqB" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aqC" = (/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) "aqD" = (/obj/item/cigbutt,/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) -"aqE" = (/obj/machinery/door/window{dir = 2; name = "Seating"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aqE" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) "aqF" = (/obj/structure/table/standard,/obj/machinery/computer/pod/old/syndicate{id = "smindicate"},/obj/machinery/door/window{name = "Blast Door Control"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqG" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqH" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) @@ -955,7 +877,7 @@ "asQ" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/suppy) "asR" = (/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "asS" = (/obj/item/screwdriver,/obj/effect/spawner/newbomb/timer/syndicate,/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"asT" = (/obj/structure/table/rack,/obj/item/rig/syndi/empty,/obj/effect/floor_decal/industrial/warning/full,/obj/item/clothing/accessory/holochip/nuke,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"asT" = (/obj/structure/table/standard,/obj/item/paper_bin{pixel_x = -3; pixel_y = 8},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "asU" = (/obj/structure/table/steel_reinforced,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "asV" = (/obj/structure/bed/chair/shuttle/black{dir = 1},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "asW" = (/obj/structure/table/steel_reinforced,/obj/item/device/radio/intercom/specops{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) @@ -1009,7 +931,7 @@ "atS" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/blue,/area/supply/dock) "atT" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_infirmary"; name = "remote shutter control"; pixel_x = -25},/obj/structure/mopbucket,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "atU" = (/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) -"atV" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"atV" = (/obj/structure/table/rack/dark,/obj/random/projectile,/obj/random/projectile,/obj/random/ammo,/obj/random/ammo,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "atW" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "atX" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "atY" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_telebay"; name = "remote shutter control"; pixel_y = -25; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) @@ -1093,7 +1015,7 @@ "avy" = (/obj/item/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "avz" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/ne,/area/syndicate_station/start) "avA" = (/turf/space,/area/syndicate_station/start) -"avB" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) +"avB" = (/obj/structure/flora/ausbushes/grassybush,/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) "avC" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 4},/area/shuttle/escape/centcom) "avD" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/sw,/area/syndicate_station/start) "avE" = (/obj/structure/closet,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) @@ -1199,7 +1121,7 @@ "axA" = (/obj/machinery/telecomms/processor/preset_cent,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "axB" = (/obj/machinery/telecomms/server/presets/centcomm,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "axC" = (/obj/machinery/computer/account_database{name = "CentComm Accounts database"},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"axD" = (/obj/structure/closet/crate,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/crowbar,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"axD" = (/obj/structure/closet,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "axE" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "axG" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "axH" = (/obj/machinery/door/airlock/centcom{name = "Cell"; opacity = 1; req_access = list(103)},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) @@ -1637,11 +1559,11 @@ "aFY" = (/obj/machinery/ai_status_display{layer = 3.1; pixel_y = 32},/obj/structure/bed/chair/shuttle/blue,/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aFZ" = (/obj/machinery/light{dir = 4},/obj/structure/closet/walllocker/emerglocker/east,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aGa" = (/obj/structure/bed/chair{dir = 4},/obj/structure/closet/walllocker/emerglocker/west,/turf/simulated/floor/shuttle/white,/area/shuttle/transport/centcom) -"aGb" = (/obj/structure/closet/crate/trashcart,/obj/random/drinkbottle,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aGb" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/syndicate_mothership) "aGc" = (/obj/machinery/light{dir = 4},/obj/structure/bed/chair{dir = 8},/obj/structure/closet/hydrant{dir = 8; pixel_x = 32},/turf/simulated/floor/shuttle/white,/area/shuttle/transport/centcom) "aGd" = (/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) "aGe" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"aGf" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aGf" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/syndicate_mothership) "aGg" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aGh" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aGi" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) @@ -1669,10 +1591,10 @@ "aGF" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aGG" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"},/turf/simulated/floor,/area/shuttle/escape/centcom) "aGH" = (/obj/structure/table/standard,/obj/item/storage/firstaid/fire,/obj/item/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/extinguisher,/obj/item/crowbar,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"aGI" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"aGJ" = (/obj/item/broken_bottle,/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"aGK" = (/obj/structure/toilet{dir = 4},/obj/effect/landmark/start/antags/vox,/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"aGL" = (/obj/structure/mirror/raider,/turf/unsimulated/wall,/area/skipjack_station/base) +"aGI" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aGJ" = (/obj/effect/floor_decal/sign/armory/ballistic1{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aGK" = (/obj/structure/table/gamblingtable,/obj/item/deck/cards,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aGL" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/wizard_station) "aGM" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "11"; dir = 1},/turf/simulated/floor,/area/shuttle/transport/centcom) "aGN" = (/obj/machinery/door/airlock/external{frequency = 1380; glass = 1380; icon_state = "door_locked"; id_tag = "centcom_shuttle_bay_door"; locked = 1; name = "Transport Airlock"},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) "aGO" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) @@ -1680,7 +1602,7 @@ "aGQ" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aGR" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/green,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aGS" = (/obj/machinery/status_display{layer = 3.1; pixel_y = 32},/obj/structure/bed/chair/shuttle/blue,/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) -"aGT" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aGT" = (/obj/structure/window/reinforced/tinted{dir = 8},/obj/structure/toilet{dir = 8},/obj/item/paper/crumpled,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) "aGU" = (/obj/structure/bed/chair{dir = 4},/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/turf/simulated/floor/shuttle/white,/area/shuttle/transport/centcom) "aGV" = (/obj/machinery/light{dir = 4},/obj/structure/bed/chair{dir = 8},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28},/turf/simulated/floor/shuttle/white,/area/shuttle/transport/centcom) "aGW" = (/obj/structure/table/woodentable{dir = 5},/obj/item/flame/lighter/zippo,/obj/item/storage/fancy/cigarettes,/obj/item/material/ashtray/bronze{pixel_x = -1; pixel_y = 1},/obj/machinery/camera/network/crescent{c_tag = "Crescent Bar East"; dir = 4},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding) @@ -1714,7 +1636,7 @@ "aHA" = (/turf/unsimulated/beach/sand{icon_state = "desert3"},/area/centcom/holding) "aHB" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/unsimulated/beach/sand{icon_state = "desert3"},/area/centcom/holding) "aHC" = (/obj/structure/bed/chair/wood/wings{dir = 4; icon_state = "wooden_chair_wings"},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"aHE" = (/obj/structure/sink{dir = 1; pixel_y = 16},/obj/effect/decal/cleanable/blood/splatter,/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aHE" = (/obj/effect/floor_decal/industrial/warning/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aHF" = (/obj/structure/bed/chair/wood/wings{dir = 8; icon_state = "wooden_chair_wings"},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aHH" = (/turf/simulated/mineral,/area/skipjack_station/base) "aHI" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) @@ -1723,11 +1645,11 @@ "aHL" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"},/area/shuttle/escape/centcom) "aHM" = (/obj/structure/closet/medical_wall{dir = 1; pixel_y = -32},/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/device/healthanalyzer,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aHN" = (/turf/simulated/floor/shuttle/blue,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/shuttle/escape/centcom) -"aHO" = (/obj/item/reagent_containers/food/checker/pawn/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_chess) -"aHP" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aHO" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/skipjack_station/base) +"aHP" = (/obj/effect/floor_decal/sign/armory/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aHQ" = (/turf/unsimulated/beach/sand{icon_state = "desert1"},/area/centcom/holding) "aHR" = (/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) -"aHS" = (/obj/machinery/shower{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aHS" = (/obj/effect/floor_decal/industrial/warning/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aHU" = (/obj/structure/shuttle/engine/heater{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) "aHV" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "aHW" = (/obj/item/stool/padded,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) @@ -1740,8 +1662,8 @@ "aId" = (/obj/machinery/light{dir = 8},/obj/structure/closet/walllocker/emerglocker/west,/obj/structure/bed/chair/shuttle/blue{dir = 4},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aIe" = (/obj/machinery/camera/network/crescent{c_tag = "Shuttle Cell"},/obj/structure/bed/chair,/obj/structure/closet/walllocker/emerglocker/east{dir = 8; pixel_x = -32},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "aIf" = (/obj/machinery/light{dir = 4},/obj/structure/closet/hydrant{dir = 8; pixel_x = 32},/obj/structure/bed/chair/shuttle/blue{dir = 8},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) -"aIg" = (/turf/unsimulated/wall,/area/skipjack_station/base) -"aIh" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aIg" = (/obj/effect/floor_decal/industrial/warning/red,/obj/effect/floor_decal/industrial/warning/red{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aIh" = (/obj/effect/decal/mecha_wreckage/hoverpod,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aIi" = (/obj/structure/closet/crate/secure/large/reinforced,/turf/simulated/floor/shuttle/white,/area/shuttle/transport/centcom) "aIj" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/shuttle/white,/area/shuttle/transport/centcom) "aIk" = (/obj/item/inflatable_duck,/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) @@ -1753,16 +1675,15 @@ "aIr" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "6"; dir = 1},/turf/simulated/floor,/area/shuttle/escape/centcom) "aIs" = (/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "aIt" = (/obj/machinery/light{dir = 4},/obj/structure/bed/chair,/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) -"aIu" = (/obj/item/stool/padded,/obj/effect/landmark/start/antags/vox,/turf/simulated/floor/trim/wood/broken0{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aIu" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/syndicate_mothership/elite_squad) "aIv" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/stew,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aIw" = (/obj/structure/closet/crate/critter,/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/white,/area/shuttle/transport/centcom) "aIx" = (/obj/machinery/light{dir = 4},/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/shuttle/white,/area/shuttle/transport/centcom) "aIy" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand{icon_state = "desert2"},/turf/unsimulated/beach/sand{icon_state = "coconuts"},/area/centcom/holding) "aIz" = (/turf/unsimulated/beach/sand{icon_state = "desert2"},/turf/unsimulated/beach/sand{icon_state = "coconuts"},/area/centcom/holding) -"aIA" = (/obj/effect/decal/mecha_wreckage/hoverpod,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aIA" = (/obj/effect/floor_decal/sign/armory/suits{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aIB" = (/obj/machinery/door/airlock/hatch{name = "Cabin"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) -"aIC" = (/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_chess) -"aID" = (/obj/item/reagent_containers/food/checker/rook/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"aID" = (/obj/structure/window/syndi,/turf/simulated/floor/plating,/area/syndicate_station/start) "aIE" = (/obj/structure/table/woodentable{dir = 5},/obj/item/clothing/under/suit_jacket,/obj/item/clothing/accessory/wcoat,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) "aIF" = (/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) "aIG" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) @@ -1779,7 +1700,7 @@ "aIS" = (/obj/structure/closet/crate/secure/large,/turf/simulated/floor/shuttle/white,/area/shuttle/transport/centcom) "aIT" = (/mob/living/simple_animal/crab{name = "Coffee"},/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) "aIU" = (/obj/item/beach_ball,/turf/unsimulated/beach/sand{icon_state = "desert3"},/area/centcom/holding) -"aIV" = (/obj/structure/mirror{pixel_x = -26},/obj/structure/sink{dir = 8; pixel_x = -12},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) +"aIV" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "aIW" = (/obj/structure/window/syndi{icon_state = "ws3"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) "aIX" = (/obj/effect/floor_decal/corner/red,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aIY" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/meatsteak,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) @@ -1813,7 +1734,7 @@ "aJB" = (/obj/machinery/door/airlock/glass_mining{name = "Shuttle Cargo"},/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) "aJC" = (/obj/machinery/atmospherics/pipe/manifold/visible,/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aJF" = (/obj/structure/bed/chair{dir = 1},/obj/effect/landmark/start/antags/ninja,/turf/simulated/floor/shuttle/red,/area/syndicate_mothership/ninja) -"aJH" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/pressure,/obj/item/clothing/head/helmet/space/vox/pressure,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aJH" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 8},/obj/effect/floor_decal/industrial/warning/red/corner{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aJI" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/shuttle/transport/centcom) "aJJ" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/transport/centcom) "aJK" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/shuttle/transport/centcom) @@ -1838,9 +1759,9 @@ "aKd" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) "aKe" = (/obj/structure/bed/chair/shuttle/blue{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aKf" = (/obj/structure/closet/crate/freezer/rations,/obj/machinery/light{dir = 1},/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) -"aKg" = (/obj/item/reagent_containers/food/checker/knight/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_chess) -"aKh" = (/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) -"aKi" = (/obj/machinery/light/small{dir = 1},/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) +"aKg" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/security/brig/solitary) +"aKh" = (/obj/structure/table/rack,/obj/item/rig/syndi/empty,/obj/effect/floor_decal/industrial/hatch/red,/obj/effect/floor_decal/industrial/warning/full,/obj/item/clothing/accessory/holochip/nuke,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aKi" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/syndicate_mothership/elite_squad) "aKj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/south,/area/space) "aKk" = (/turf/unsimulated/beach/sand{dir = 6; icon_state = "beach"},/area/centcom/holding) "aKl" = (/turf/unsimulated/beach/sand{icon_state = "seashallow"},/area/centcom/holding) @@ -1855,7 +1776,7 @@ "aKu" = (/obj/machinery/door/airlock/glass/museum,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aKv" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) "aKw" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/tofukabob,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"aKx" = (/obj/effect/wingrille_spawn/reinforced,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"aKx" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/tank/nitrogen,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aKy" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) "aKA" = (/obj/effect/step_trigger/teleporter/random,/turf/space,/area/space) "aKB" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) @@ -1875,18 +1796,18 @@ "aKP" = (/obj/structure/closet/emcloset,/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) "aKQ" = (/obj/machinery/recharge_station,/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) "aKR" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 1},/area/syndicate_mothership/ninja) -"aKS" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) +"aKS" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/security/brig/solitary) "aKU" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 8},/area/shuttle/syndicate_elite/mothership) -"aKV" = (/obj/effect/wingrille_spawn/reinforced,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) +"aKV" = (/obj/structure/table/steel,/obj/item/storage/fancy/cigarettes,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "aKW" = (/obj/machinery/teleporter_gate,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aKX" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access = list(45)},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aKY" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/sw,/area/shuttle/escape/centcom) "aKZ" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/shuttle/escape/centcom) "aLa" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/escape/centcom) "aLb" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/se,/area/shuttle/escape/centcom) -"aLc" = (/obj/machinery/computer/station_alert/all,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) -"aLd" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) -"aLe" = (/obj/machinery/floodlight,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) +"aLc" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"aLd" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) +"aLe" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aLf" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aLg" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aLh" = (/obj/structure/closet/secure_closet/medical2,/obj/effect/floor_decal/corner/paleblue{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) @@ -1964,18 +1885,18 @@ "aMK" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aML" = (/obj/structure/reagent_dispensers/fueltank,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMN" = (/obj/structure/bed/chair,/obj/structure/disposalpipe/segment,/obj/effect/landmark/event/tdome/tdomeobserve,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) -"aMQ" = (/obj/machinery/computer/station_alert/all,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aMR" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aMS" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aMQ" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"aMR" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aMS" = (/obj/structure/bed,/obj/item/bedsheet/orange,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aMW" = (/obj/item/paper{info = "\[center]\[b]READ INSTRUCTIONS CAREFULLY\[/b]\[/center]\[br]\[br]Hello! Welcome and congratulations on being hired for NanoTrasen's new Television initiative. You are now tasked with the creation and production of NanoTrasen brand television that is to be broadcasted to all of our stations!\[br]\[br] We've outfitted these facilities with all the materials and objects you will need.\[br]On the port side you'll find various venders and machines, namely the Wardrobe Dispenser, which will dispense holoclothing and items for you to use, and a Quickee brand plastic surgery machine (which I would remind you you are contractually obligated to \[b]not\[/b] report to the authorities.) which can change your appearance into anything you want, even other races. Stern and aft you'll find all the materials we could muster up on short notice. Use it to decorate the stage to your liking. Starboard you'll find gases, microwaves, hydroponic trays and the like. Go silly! This is already paid for (as are you) so do what you want and entertain!"; name = "Actor's Guild Instruction Pamphlet"},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMX" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/melee/energy/axe,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) "aMY" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aMZ" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/disposalpipe/segment,/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aNa" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/melee/energy/axe,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) "aNb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aNd" = (/obj/machinery/light/small{dir = 8},/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aNd" = (/turf/unsimulated/wall{icon_state = "riveted_15"},/area/security/brig/solitary) "aNe" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aNg" = (/obj/machinery/light/small{dir = 4},/obj/vehicle/bike/thermal,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aNg" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle,/obj/effect/floor_decal/industrial/hatch/red,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aNi" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNj" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aNk" = (/obj/machinery/door/airlock/glass{name = "Stage"},/turf/simulated/floor,/area/acting/backstage) @@ -1984,9 +1905,9 @@ "aNn" = (/obj/machinery/igniter,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aNo" = (/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aNp" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"aNr" = (/obj/structure/table/rack,/obj/item/rig/industrial,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aNr" = (/obj/item/paper{name = "Insert alien artifacts here."; info = "Some stuff is missing..."},/turf/unsimulated/floor{icon_state = "dark"},/area/alien) "aNs" = (/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aNt" = (/obj/structure/table/rack,/obj/item/rig/light/hacker,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aNt" = (/obj/structure/table/woodentable,/obj/item/book/wiki/nuclear,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aNv" = (/obj/machinery/vending/hydroseeds,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aNw" = (/turf/simulated/floor/tiled,/area/acting/stage) "aNx" = (/obj/structure/closet/crate/medical,/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/storage/box/masks,/obj/item/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = -2},/obj/item/reagent_containers/ivbag/blood/AMinus,/obj/item/reagent_containers/ivbag/blood/APlus,/obj/item/reagent_containers/ivbag/blood/BMinus,/obj/item/reagent_containers/ivbag/blood/BPlus,/obj/item/reagent_containers/ivbag/blood/OMinus,/obj/item/reagent_containers/ivbag/blood/OPlus,/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) @@ -2002,20 +1923,20 @@ "aNI" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/obj/item/material/harpoon,/obj/item/clothing/suit/space/void/syndi/prepared,/obj/item/clothing/suit/space/void/engineering/prepared,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/item/rig/light/stealth,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNJ" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/obj/structure/table/steel,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNK" = (/obj/item/seeds/potatoseed,/obj/item/seeds/potatoseed,/obj/item/seeds/ambrosiavulgarisseed,/obj/item/material/minihoe,/obj/item/beartrap,/obj/structure/table/steel,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aNL" = (/obj/machinery/vending/hydroseeds,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aNM" = (/obj/structure/table/rack,/obj/item/melee/energy/sword/pirate,/obj/item/clothing/suit/space/pirate,/obj/item/clothing/suit/space/pirate,/obj/item/tank/oxygen,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aNN" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/clothing/shoes/magboots,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aNO" = (/obj/machinery/washing_machine,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aNP" = (/obj/structure/table/standard,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter/zippo,/obj/item/clothing/gloves/insulated,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/card/emag,/turf/simulated/floor/plating,/area/skipjack_station/start) +"aNL" = (/obj/item/target/alien,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"aNM" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aNN" = (/turf/unsimulated/wall{icon_state = "riveted_b"; dir = 8},/area/syndicate_mothership) +"aNO" = (/obj/structure/sign/poster,/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/skipjack_station/base) +"aNP" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/syndicate_mothership) "aNS" = (/obj/machinery/vending/hydronutrients,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aNT" = (/obj/effect/landmark/event/tdome/tdome2,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome/tdome2) "aNU" = (/obj/effect/landmark/event/tdome/tdome1,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome/tdome1) "aNV" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNW" = (/turf/simulated/floor/plating,/area/skipjack_station/start) -"aNX" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/skipjack_station/start) -"aNY" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aNZ" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aOa" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aNX" = (/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aNY" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/alien) +"aNZ" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/security/brig/solitary) +"aOa" = (/obj/item/clothing/head/wizard/violetwizard,/obj/item/clothing/suit/wizrobe/violetwizard,/obj/item/staff/broom,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aOb" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw,/area/skipjack_station/start) "aOc" = (/obj/machinery/vending/medical,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aOd" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/acting/stage) @@ -2026,52 +1947,50 @@ "aOi" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) "aOj" = (/obj/effect/landmark/event/tdome/tdome1,/obj/machinery/camera/network/thunder{c_tag = "Green Team"; invisibility = 101},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome/tdome1) "aOk" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aOl" = (/obj/item/ammo_magazine/c556,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aOm" = (/obj/item/robot_parts/l_leg,/turf/simulated/floor/plating,/area/skipjack_station/start) +"aOl" = (/obj/effect/decal/cleanable/blood,/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"aOm" = (/obj/structure/table/woodentable,/obj/item/storage/box/glasses,/obj/machinery/light/small{dir = 1},/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aOn" = (/obj/machinery/vending/robotics,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aOo" = (/obj/machinery/atmospherics/pipe/vent,/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) "aOp" = (/obj/machinery/camera/network/thunder{c_tag = "Thunderdome Arena"; invisibility = 101},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) "aOq" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/plating,/area/skipjack_station/start) "aOr" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aOs" = (/obj/structure/table/rack,/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/obj/machinery/light/small{dir = 8},/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aOt" = (/obj/structure/table/rack,/obj/item/grenade/empgrenade,/obj/item/grenade/flashbang,/obj/item/grenade/spawnergrenade/manhacks,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aOu" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aOv" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aOw" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_leg,/obj/item/robot_parts/r_arm,/turf/simulated/floor/plating,/area/skipjack_station/start) +"aOs" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/obj/structure/window/syndi{icon_state = "ws4"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"aOt" = (/obj/structure/flora/pottedplant/ugly,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aOu" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aOv" = (/obj/structure/bed/chair,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aOw" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "aOx" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aOy" = (/obj/machinery/camera/network/thunder{anchored = 0; c_tag = "Television"; name = "Movable Camera"},/turf/simulated/floor/tiled,/area/acting/stage) "aOz" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aOA" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aOB" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aOC" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"aOD" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/plating,/area/skipjack_station/start) -"aOE" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aOD" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 8},/area/syndicate_mothership) +"aOE" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/wizard_station) "aOF" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/ne,/area/skipjack_station/start) -"aOG" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aOG" = (/obj/machinery/door/window{name = "Seating"; dir = 2; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aOH" = (/obj/machinery/door/airlock/hatch{frequency = 1380; icon_state = "door_locked"; id_tag = "vox_northwest_lock"; locked = 1; name = "Ship External Access"; req_one_access = 150},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aOI" = (/obj/item/wrench,/obj/item/mop,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aOJ" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/item/crowbar,/turf/simulated/floor/plating,/area/skipjack_station/start) +"aOI" = (/obj/effect/floor_decal/industrial/warning/red/corner,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aOJ" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/security/brig/solitary) "aOK" = (/obj/machinery/vending/dinnerware,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aOL" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aOM" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/skipjack_station/start) "aON" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aOO" = (/turf/simulated/floor/shuttle/black,/area/skipjack_station/start) -"aOP" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/black,/area/skipjack_station/start) -"aOQ" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aOR" = (/obj/item/deck/cards,/obj/structure/table/steel,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aOO" = (/obj/structure/table/steel,/obj/item/flame/lighter/zippo,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aOP" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/wizard_station) +"aOQ" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/button/remote/blast_door{id = "skipjackshutters"; name = "remote shutter control"; pixel_x = 32; pixel_y = 32; req_access = list(150)},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aOR" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aOS" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aOT" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/floor/shuttle/white,/area/skipjack_station/start) -"aOU" = (/obj/machinery/light/small{dir = 1},/obj/machinery/body_scanconsole{dir = 8},/turf/simulated/floor/shuttle/white,/area/skipjack_station/start) -"aOV" = (/turf/simulated/floor/shuttle/white,/area/skipjack_station/start) -"aOW" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aOT" = (/obj/item/folder{pixel_y = 2},/obj/structure/table/glass,/obj/item/flame/lighter/zippo/syndie,/obj/item/deck/cards,/obj/item/music_tape_box/syndie,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"aOU" = (/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aOV" = (/obj/vehicle/bike/electric,/obj/effect/floor_decal/industrial/hatch/red,/obj/effect/floor_decal/industrial/warning/full,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aOW" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "aOX" = (/obj/machinery/door/airlock/hatch{frequency = 1380; id_tag = "skipjack_shuttle_outer"; name = "Ship External Access"; req_one_access = 150},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aOY" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/skipjack_station/start) "aOZ" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPa" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = list(102)},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) "aPb" = (/obj/machinery/door/blast/regular{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) "aPc" = (/obj/structure/bed/roller,/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aPd" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/skipjack_station/start) -"aPe" = (/obj/structure/sink{dir = 4; pixel_x = 11},/turf/simulated/floor/shuttle/white,/area/skipjack_station/start) "aPf" = (/obj/structure/bed/chair/shuttle/blue,/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) "aPg" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/storage/fancy/cigarettes=10,/obj/item/storage/box/matches=10,/obj/item/flame/lighter/zippo=4,/obj/item/clothing/mask/smokable/cigarette/cigar/havana=2)},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPh" = (/obj/machinery/chemical_dispenser/bar_alc/full,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) @@ -2082,10 +2001,10 @@ "aPm" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/gun/energy/laser,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) "aPn" = (/obj/effect/floor_decal/corner/green,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) "aPo" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/floor/plating/airless,/area/skipjack_station/start) -"aPp" = (/obj/structure/table/standard,/turf/simulated/floor/shuttle/black,/area/skipjack_station/start) -"aPq" = (/obj/structure/table/standard,/obj/item/deck/cards,/turf/simulated/floor/shuttle/black,/area/skipjack_station/start) +"aPp" = (/obj/structure/lattice,/obj/structure/window_frame/broken,/turf/space,/area/space) +"aPq" = (/obj/item/material/knife/ritual,/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aPr" = (/obj/machinery/light/small,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aPs" = (/obj/structure/table/standard,/obj/item/circular_saw{pixel_y = 8},/obj/item/hemostat,/obj/item/scalpel,/obj/item/stack/medical/advanced/bruise_pack,/turf/simulated/floor/shuttle/white,/area/skipjack_station/start) +"aPs" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/ne{icon_state = "corner_syndiwall_s"},/area/syndicate_station/start) "aPt" = (/obj/machinery/vending/containers,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPu" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/acting/stage) "aPv" = (/obj/machinery/chemical_dispenser/full,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) @@ -2094,24 +2013,24 @@ "aPy" = (/obj/item/extinguisher,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aPz" = (/obj/machinery/atmospherics/valve,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aPA" = (/obj/structure/bed/chair{dir = 1},/obj/structure/disposalpipe/segment,/obj/effect/landmark/event/tdome/tdomeadmin,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"aPB" = (/obj/machinery/optable,/turf/simulated/floor/shuttle/white,/area/skipjack_station/start) -"aPC" = (/obj/structure/table/standard,/obj/item/cautery,/obj/item/retractor,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/syringe,/turf/simulated/floor/shuttle/white,/area/skipjack_station/start) +"aPB" = (/obj/structure/closet/coffin,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aPC" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 8},/area/syndicate_station/start) "aPD" = (/obj/machinery/pipedispenser,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPE" = (/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPF" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/sleeping_agent{pixel_x = 1},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aPG" = (/obj/item/wrench,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aPH" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"aPI" = (/obj/structure/sink{dir = 4; pixel_x = 11},/turf/simulated/floor/shuttle/black,/area/skipjack_station/start) -"aPJ" = (/obj/structure/bed,/obj/item/bedsheet/rainbow,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aPK" = (/obj/structure/bed,/obj/item/bedsheet/hos,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aPL" = (/obj/structure/table/standard,/obj/item/bonesetter,/obj/item/bonegel,/obj/item/FixOVein,/obj/item/reagent_containers/syringe/antiviral,/obj/item/reagent_containers/syringe/antiviral,/turf/simulated/floor/shuttle/white,/area/skipjack_station/start) +"aPI" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"aPJ" = (/obj/machinery/computer/station_alert/all,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aPK" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aPL" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aPM" = (/obj/machinery/acting/changer,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPO" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"aPP" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/black,/area/skipjack_station/start) -"aPQ" = (/obj/structure/bed,/obj/item/bedsheet/orange,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aPR" = (/obj/structure/bed,/obj/item/bedsheet/green,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aPS" = (/obj/structure/table/standard,/obj/item/storage/firstaid/fire{pixel_x = 1},/obj/item/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/shuttle/white,/area/skipjack_station/start) -"aPT" = (/obj/structure/table/standard,/obj/item/storage/firstaid/adv{pixel_x = 1},/obj/item/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/white,/area/skipjack_station/start) +"aPP" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/alien) +"aPQ" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aPR" = (/mob/living/simple_animal/crab{name = "Experiment 68a"},/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) +"aPS" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"aPT" = (/obj/structure/closet/crate,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/crowbar,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aPU" = (/obj/machinery/vending/props,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPV" = (/obj/machinery/newscaster{pixel_y = -27},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPW" = (/obj/structure/table/rack,/obj/item/stack/tile/floor{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) @@ -2130,46 +2049,44 @@ "aQj" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aQk" = (/obj/structure/table/standard,/obj/item/storage/toolbox/electrical,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aQl" = (/obj/structure/table/standard,/obj/item/storage/toolbox/mechanical,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"aQm" = (/obj/structure/bed,/obj/item/bedsheet/rd,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aQn" = (/obj/item/pizzabox/meat,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aQo" = (/obj/structure/bed,/obj/item/bedsheet/clown,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aQp" = (/turf/unsimulated/wall,/area/wizard_station) -"aQq" = (/obj/structure/sink,/turf/unsimulated/wall,/area/wizard_station) -"aQr" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aQs" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aQt" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aQv" = (/obj/structure/table/woodentable,/obj/item/book/wiki/nuclear,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aQm" = (/obj/structure/gas_stand/anesthetic,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aQn" = (/obj/structure/table/woodentable,/obj/item/storage/box/cups,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aQo" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 4},/area/syndicate_mothership) +"aQp" = (/obj/machinery/bodyscanner{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aQq" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/skipjack_station/base) +"aQr" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 1},/obj/effect/floor_decal/industrial/warning/red/corner{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aQs" = (/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aQt" = (/obj/item/gun/launcher/grenade,/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aQv" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/syndicate_station/start) "aQw" = (/obj/structure/bed/chair/shuttle/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/simulated/floor,/area/syndicate_station/start) "aQx" = (/obj/structure/table/woodentable,/turf/simulated/floor/trim/carpet,/area/wizard_station) "aQy" = (/obj/structure/toilet{pixel_y = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aQz" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) -"aQA" = (/obj/machinery/light,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) +"aQA" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aQB" = (/obj/machinery/door/unpowered/simple/wood,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "aQC" = (/turf/simulated/floor/trim/carpet,/area/wizard_station) "aQD" = (/obj/effect/landmark/start/antags/wizard,/turf/simulated/floor/trim/carpet,/area/wizard_station) "aQE" = (/obj/machinery/door/unpowered/simple/iron,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "aQF" = (/obj/machinery/shower{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) -"aQG" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aQH" = (/obj/structure/closet/coffin,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aQI" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/reagent_containers/vessel/flask/barflask,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/trim/carpet,/area/wizard_station) -"aQJ" = (/obj/structure/table/woodentable,/obj/item/storage/bag/cash,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aQG" = (/obj/item/grenade/frag,/obj/item/grenade/frag,/obj/item/grenade/flashbang,/obj/item/grenade/flashbang,/obj/item/grenade/flashbang,/obj/item/grenade/chem_grenade/teargas,/obj/item/grenade/chem_grenade/teargas,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/spawnergrenade/manhacks,/obj/item/grenade/empgrenade,/obj/item/grenade/empgrenade,/obj/structure/closet/crate,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aQH" = (/obj/item/broken_bottle,/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aQI" = (/obj/random/junk,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aQJ" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/syndicate_station/start) "aQK" = (/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aQL" = (/obj/structure/bed,/obj/item/bedsheet/rd,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aQM" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aQN" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/staff/broom,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aQO" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aQP" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aQQ" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aQR" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aQM" = (/obj/structure/table/standard,/obj/item/bonesetter,/obj/item/FixOVein,/obj/item/bonegel,/obj/item/reagent_containers/syringe/antiviral/packaged,/obj/item/organfixer/standard,/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aQN" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/skipjack_station/base) +"aQO" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aQP" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/syndicate_mothership) "aQS" = (/obj/machinery/door/unpowered/simple/wood,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aQT" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aQU" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aQU" = (/obj/structure/closet,/obj/random/contraband,/obj/random/contraband,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aQV" = (/obj/structure/table/woodentable,/obj/item/storage/backpack/cultpack,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aQW" = (/obj/structure/table/woodentable,/obj/item/clothing/glasses/monocle,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aQX" = (/obj/structure/table/woodentable,/obj/item/storage/backpack,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aQY" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aQZ" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/shoes/sandal/marisa{desc = "A set of fancy shoes that are as functional as they are comfortable."; name = "Gentlemans Shoes"},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/staff/gentcane,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aRa" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"aQY" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"aQZ" = (/obj/effect/floor_decal/sign/armory,/obj/effect/floor_decal/industrial/warning/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aRa" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/reagent_containers/food/milosoup,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aRb" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar,/turf/simulated/floor/plating/airless,/area/merchant_station) "aRc" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) "aRd" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar,/turf/simulated/floor/plating/airless,/area/merchant_station) @@ -2177,13 +2094,13 @@ "aRf" = (/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/south,/area/space) "aRg" = (/turf/space/transit/south,/area/space) "aRh" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 1; name = "thrower_throwupsidenostop"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/south,/area/space) -"aRi" = (/obj/structure/bed/chair/wood/wings{dir = 4; icon_state = "wooden_chair_wings"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aRj" = (/obj/structure/table/woodentable,/obj/item/dice/d20,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aRk" = (/obj/structure/table/woodentable,/obj/item/storage/box/cups,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aRl" = (/obj/structure/bed/chair/wood/wings{dir = 8; icon_state = "wooden_chair_wings"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aRm" = (/obj/item/target,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) -"aRn" = (/obj/item/target/syndicate,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) -"aRo" = (/obj/item/target/alien,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) +"aRi" = (/obj/machinery/body_scanconsole{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aRj" = (/obj/structure/table/steel,/obj/item/paper,/obj/item/pen,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aRk" = (/obj/structure/table/woodentable,/obj/item/dice/d20,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aRl" = (/obj/machinery/light/small{dir = 8},/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aRm" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/trim/wood/broken0{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aRn" = (/obj/structure/table/woodentable,/obj/random/handgun,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aRo" = (/obj/machinery/door/window{name = "Secure Storage"; dir = 1; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aRp" = (/obj/effect/floor_decal/industrial/warning/red{dir = 6},/obj/structure/bed/chair/shuttle/red{dir = 8},/turf/simulated/floor,/area/syndicate_station/start) "aRq" = (/obj/structure/table/rack,/obj/item/material/knife/ritual,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "aRr" = (/obj/structure/kitchenspike,/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) @@ -2192,9 +2109,9 @@ "aRu" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"},/area/shuttle/merchant/home) "aRv" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 1},/area/shuttle/merchant/home) "aRw" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/south,/area/space) -"aRx" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/reagent_containers/food/milosoup,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aRy" = (/obj/structure/table/woodentable,/obj/item/dice,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aRz" = (/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) +"aRx" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_c"; dir = 1},/area/syndicate_station/start) +"aRy" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"aRz" = (/obj/effect/floor_decal/industrial/warning/red{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aRA" = (/obj/structure/bed/chair/shuttle/black{dir = 4},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "aRB" = (/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "aRC" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 8},/area/shuttle/merchant/home) @@ -2206,11 +2123,11 @@ "aRI" = (/obj/machinery/cryopod{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/white,/area/merchant_station) "aRJ" = (/obj/machinery/light/small{dir = 1},/obj/machinery/computer/cryopod{pixel_y = 32},/obj/item/roller,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/merchant_station) "aRK" = (/obj/item/device/radio/intercom{pixel_y = 22},/obj/structure/table/reinforced,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = -2},/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/merchant_station) -"aRL" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aRM" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aRN" = (/obj/structure/table/woodentable,/obj/item/device/megaphone,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aRO" = (/obj/structure/table/woodentable,/obj/item/storage/box/donut,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aRP" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) +"aRL" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/tiled,/area/merchant_station) +"aRM" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/tiled,/area/merchant_station) +"aRN" = (/obj/item/book/wiki/robotics_cyborgs,/obj/structure/table/glass,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"aRO" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/skipjack_station/base) +"aRP" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) "aRQ" = (/obj/item/modular_computer/console/preset/civilian,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) "aRR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/white,/area/merchant_station) "aRS" = (/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) @@ -2226,11 +2143,11 @@ "aSc" = (/obj/structure/filingcabinet/chestdrawer,/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/merchant_station) "aSd" = (/obj/structure/bed/chair/comfy/black,/obj/machinery/alarm{pixel_y = 23; req_one_access = list(201)},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/landmark/start/crew/merchant,/turf/simulated/floor/tiled,/area/merchant_station) "aSe" = (/turf/simulated/wall/r_wall,/area/merchant_station) -"aSf" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aSg" = (/obj/structure/table/woodentable,/obj/item/spacecash/bundle/c1,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aSh" = (/obj/item/book/wiki/robotics_cyborgs,/obj/structure/table/glass,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) -"aSi" = (/obj/item/robot_parts/head,/obj/structure/table/glass,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) -"aSj" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) +"aSf" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership/elite_squad) +"aSg" = (/obj/item/stool/padded,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aSh" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aSi" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 4},/area/wizard_station) +"aSj" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/syndicate_mothership/elite_squad) "aSk" = (/obj/structure/table/woodentable,/obj/machinery/recharger,/turf/simulated/floor/tiled,/area/merchant_station) "aSl" = (/obj/machinery/computer/shuttle_control/multi/merchant,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) "aSm" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/shuttle_control/multi/merchant,/turf/simulated/floor/tiled,/area/merchant_station) @@ -2262,37 +2179,37 @@ "aSM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aSN" = (/obj/structure/window_frame/indestructible/grille,/turf/unsimulated/floor{name = "plating"},/area/wizard_station) "aSO" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aSP" = (/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) -"aSQ" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/chawanmushi,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aSP" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"aSQ" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "aSR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aSS" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aST" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/merchant_station) -"aSU" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aSV" = (/obj/structure/flora/ausbushes/ywflowers,/mob/living/simple_animal/tindalos{name = "Eddy"},/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aSW" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aSX" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/grass,/area/merchant_station) +"aSU" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) +"aSV" = (/obj/structure/flora/ausbushes/ywflowers,/mob/living/simple_animal/tindalos{name = "Eddy"},/turf/simulated/floor/tiled,/area/merchant_station) +"aSW" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) +"aSX" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) "aSY" = (/obj/structure/table/reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/effect/floor_decal/corner/blue/three_quarters,/turf/simulated/floor/tiled,/area/merchant_station) "aSZ" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/blue{dir = 10},/obj/random/handgun,/turf/simulated/floor/tiled,/area/merchant_station) "aTa" = (/obj/structure/table/reinforced,/obj/random/loot,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/merchant_station) "aTb" = (/obj/machinery/photocopier,/obj/effect/floor_decal/corner/blue{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) -"aTc" = (/obj/item/remains/human,/turf/unsimulated/floor{icon_state = "lava"; name = "plating"},/area/wizard_station) -"aTd" = (/turf/unsimulated/floor{icon_state = "lava"; name = "plating"},/area/wizard_station) -"aTe" = (/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) -"aTf" = (/mob/living/simple_animal/crab{name = "Experiment 68a"},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) -"aTg" = (/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) -"aTh" = (/obj/structure/flora/ausbushes/fullgrass,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) -"aTi" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) -"aTj" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/head/wizard/violetwizard,/obj/item/clothing/suit/wizrobe/violetwizard,/obj/item/staff/broom,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"aTc" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) +"aTd" = (/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aTe" = (/obj/effect/wingrille_spawn/reinforced/crescent,/obj/structure/sign/flag/nt,/turf/unsimulated/floor{name = "plating"},/area/centcom/holding) +"aTf" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"aTg" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aTh" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 8},/area/wizard_station) +"aTi" = (/obj/structure/bookcase,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aTj" = (/obj/structure/table/woodentable,/obj/item/flame/lighter/zippo,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aTk" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/merchant_station) "aTl" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "merchant_station_interior"; locked = 1; name = "Station Exterior"; req_access = list(201)},/turf/simulated/floor/plating,/area/merchant_station) "aTm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aTn" = (/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aTo" = (/turf/simulated/floor/tiled,/area/merchant_station) -"aTp" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{icon_state = "lava"; name = "plating"},/area/wizard_station) -"aTq" = (/obj/structure/flora/ausbushes/grassybush,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) -"aTr" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Experiment 97d"},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) -"aTs" = (/obj/item/caution,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) -"aTt" = (/obj/item/material/knife/ritual,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"aTp" = (/obj/machinery/button/remote/blast_door{name = "Mech Access"; pixel_x = 32; id = "syndicate_elite_mech_room"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"aTq" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aTr" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"aTs" = (/obj/machinery/shower{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"aTt" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "aTu" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) "aTv" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/merchant_station) "aTw" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/merchant_station) @@ -2585,7 +2502,7 @@ "aZb" = (/obj/machinery/firealarm{pixel_y = 26},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZc" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZd" = (/obj/machinery/computer/arcade,/turf/simulated/floor/trim/wood,/area/merchant_station) -"aZe" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/machinery/chemical_dispenser/bar_coffee,/obj/machinery/light{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) +"aZe" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZf" = (/obj/structure/bed/chair/comfy/brown,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZg" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZh" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/blue,/turf/simulated/floor/plating,/area/merchant_station) @@ -2638,7 +2555,6 @@ "bad" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor/tiled,/area/merchant_station) "bae" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/table/woodentable,/obj/random/action_figure,/turf/simulated/floor/trim/carpet,/area/merchant_station) "baf" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/bed,/obj/structure/curtain/open/bed,/obj/item/bedsheet/blue,/turf/simulated/floor/trim/carpet,/area/merchant_station) -"bag" = (/obj/structure/holostool,/turf/simulated/floor/trim/wood,/area/merchant_station) "bah" = (/obj/structure/table/woodentable,/obj/machinery/microwave{pixel_y = 5},/obj/machinery/light{dir = 4},/obj/structure/sign/warning/smoking{pixel_x = 32},/turf/simulated/floor/trim/wood,/area/merchant_station) "bai" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/freezer,/area/merchant_station) "baj" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/trim/carpet/blue,/area/merchant_station) @@ -2648,7 +2564,6 @@ "ban" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/carpet,/area/merchant_station) "bao" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/trim/carpet,/area/merchant_station) "bap" = (/obj/structure/table/woodentable,/obj/item/material/ashtray,/obj/item/clothing/mask/smokable/cigarette/cigar/havana,/obj/machinery/light{dir = 8},/turf/simulated/floor/trim/wood,/area/merchant_station) -"baq" = (/obj/structure/holostool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/wood,/area/merchant_station) "bar" = (/obj/structure/table/woodentable,/obj/item/storage/box/glasses/pint,/turf/simulated/floor/trim/wood,/area/merchant_station) "bas" = (/obj/item/modular_computer/console/preset/civilian,/turf/simulated/floor/trim/wood,/area/merchant_station) "bat" = (/obj/structure/table/woodentable,/turf/simulated/floor/trim/carpet/blue,/area/merchant_station) @@ -2657,7 +2572,7 @@ "baw" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Wardrobe"},/obj/item/clothing/shoes/leather,/obj/item/clothing/under/blazer,/obj/item/clothing/under/lawyer/black,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) "bax" = (/obj/structure/table/woodentable,/obj/random/toy,/turf/simulated/floor/trim/carpet,/area/merchant_station) "bay" = (/obj/structure/table/woodentable,/obj/machinery/newscaster{pixel_x = -28},/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/trim/wood,/area/merchant_station) -"baz" = (/obj/structure/holostool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/wood,/area/merchant_station) +"baz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/wood,/area/merchant_station) "baA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/trim/wood,/area/merchant_station) "baB" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/trim/wood,/area/merchant_station) "baC" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/trim/wood,/area/merchant_station) @@ -2668,23 +2583,23 @@ "baH" = (/obj/random/trash,/turf/simulated/floor/plating,/area/skipjack_station/start) "baI" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "skipjack_shuttle_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "skipjack_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/turf/simulated/floor/plating,/area/skipjack_station/start) "baJ" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "vox_west_control"; pixel_x = 25; pixel_y = 8; req_access = list(150); tag_airpump = "vox_west_vent"; tag_chamber_sensor = "vox_west_sensor"; tag_exterior_door = "vox_northwest_lock"; tag_interior_door = "vox_southwest_lock"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "vox_west_vent"},/turf/simulated/floor/plating,/area/skipjack_station/start) -"baK" = (/obj/structure/bed/chair{dir = 1},/obj/item/clothing/head/pirate,/obj/effect/shuttle_landmark/skipjack/start,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"baL" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/button/remote/blast_door{id = "skipjackshutters"; name = "remote shutter control"; pixel_x = 32; pixel_y = 32; req_access = list(150)},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"baK" = (/obj/structure/toilet{dir = 4},/obj/effect/landmark/start/antags/vox,/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"baL" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/wizard_station) "baM" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "skipjack_shuttle"; pixel_x = -25; pixel_y = 8; req_access = list(150)},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "skipjack_shuttle_pump"},/turf/simulated/floor/plating,/area/skipjack_station/start) "baN" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{frequency = 1380; icon_state = "door_locked"; id_tag = "vox_southwest_lock"; locked = 1; name = "Ship External Access"; req_one_access = 150},/turf/simulated/floor/plating,/area/skipjack_station/start) -"baO" = (/obj/random/trash,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"baO" = (/obj/structure/table/steel,/obj/structure/table/steel,/obj/item/pizzabox/meat,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "baP" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{frequency = 1380; id_tag = "skipjack_shuttle_inner"; name = "Ship External Access"; req_one_access = 150},/turf/simulated/floor/plating,/area/skipjack_station/start) "baQ" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "vox_west_control"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access = list(150)},/turf/simulated/floor/plating,/area/skipjack_station/start) -"baR" = (/obj/structure/table/rack,/obj/item/gun/energy/sniperrifle,/obj/item/clothing/suit/space/void/mining/prepared,/obj/item/clothing/suit/space/void/atmos/prepared,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/turf/simulated/floor/plating,/area/skipjack_station/start) -"baS" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "skipjack_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/turf/simulated/floor/plating,/area/skipjack_station/start) -"baT" = (/obj/item/robot_parts/head,/obj/random/trash,/turf/simulated/floor/plating,/area/skipjack_station/start) -"baU" = (/obj/structure/table/steel,/obj/random/projectile,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"baV" = (/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/obj/random/trash,/turf/simulated/floor/plating,/area/skipjack_station/start) -"baW" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/skipjack_station/start) +"baR" = (/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"baS" = (/obj/structure/window_frame/indestructible/hull,/obj/structure/sign/flag/syndie,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"baT" = (/obj/structure/sink{dir = 1; pixel_y = 16},/obj/effect/decal/cleanable/blood/splatter,/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"baU" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"baV" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox,/obj/item/clothing/head/helmet/space/vox,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"baW" = (/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "baX" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/sw,/area/skipjack_station/start) -"baY" = (/obj/structure/table/steel,/obj/random/junk,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"baY" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "baZ" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/se,/area/skipjack_station/start) -"bba" = (/obj/structure/gas_stand/anesthetic,/turf/simulated/floor/shuttle/white,/area/skipjack_station/start) +"bba" = (/obj/structure/table/standard,/obj/item/retractor,/obj/item/circular_saw{pixel_y = 8},/obj/item/cautery,/obj/item/scalpel,/obj/item/hemostat,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "bbb" = (/obj/structure/closet/crate/freezer/rations,/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) "bbc" = (/obj/structure/closet/crate/hydroponics/prespawned,/obj/machinery/light{dir = 1},/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) "bbd" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) @@ -2705,7 +2620,7 @@ "bbs" = (/obj/machinery/cryopod{dir = 4},/turf/simulated/floor/tiled/white,/area/acting/backstage) "bbt" = (/obj/machinery/sleeper{dir = 1},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "bbu" = (/obj/structure/table/steel,/obj/item/flame/lighter/zippo,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"bbv" = (/obj/machinery/recharge_station,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"bbv" = (/obj/machinery/light/small{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "bbw" = (/obj/machinery/recharge_station,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/living) "bbx" = (/turf/simulated/floor/tiled/white,/area/acting/backstage) "bby" = (/obj/machinery/cryopod,/turf/simulated/floor/tiled/white,/area/acting/backstage) @@ -2715,29 +2630,28 @@ "bbC" = (/obj/machinery/door/airlock/glass{name = "Arrivals Bar"},/turf/simulated/floor/tiled/white,/area/acting/backstage) "bbD" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/acting/stage) "bbE" = (/obj/effect/floor_decal/corner/green{dir = 9},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/shuttle/merchant/home) -"bjo" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_airlock_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"btL" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/medic,/obj/item/clothing/head/helmet/space/vox/medic,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"bwb" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bottle/small/beer,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"bjo" = (/obj/machinery/door/airlock/centcom{name = "Suit Storage"; opacity = 1},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"btL" = (/obj/structure/table/woodentable,/obj/random/cash,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"bwb" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/wizard_station) "byR" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall"},/area/shuttle/administration/centcom) -"bAc" = (/obj/item/reagent_containers/food/checker/king/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"bAc" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "bCa" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/syndicate_station/start) -"bEA" = (/obj/item/reagent_containers/food/checker/bishop{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_chess) "bHa" = (/obj/machinery/light{dir = 4},/obj/structure/closet/emcloset,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "bOS" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1; req_access = list(150)},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership/elite_squad) "bXC" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"; dir = 4},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "cgV" = (/obj/machinery/door/blast/regular{dir = 4; id = "thunderdome"; name = "Thunderdome Blast Door"},/obj/machinery/door/blast/regular{dir = 4; id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) "cmb" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/structure/bed/chair/shuttle/red{dir = 4},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "cAb" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/syndicate_station/start) -"cBd" = (/obj/structure/table/rack/dark,/obj/item/gun/energy/sniperrifle,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/kinetic_accelerator,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"cBd" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_alc/full{pixel_y = 2},/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "cCp" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 8},/area/shuttle/transport/centcom) "cHK" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/shuttle/deathsquad/centcom) "cKP" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"; dir = 4},/area/shuttle/merchant/home) "cMm" = (/obj/machinery/door/blast/regular{id = "thunderdome"; name = "Thunderdome Blast Door"},/obj/machinery/door/blast/regular{dir = 8; id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"cOZ" = (/obj/item/reagent_containers/food/checker/bishop{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_chess) -"dak" = (/obj/structure/table/rack/dark,/obj/item/gun/launcher/alien/spikethrower,/obj/item/gun/launcher/alien/spikethrower,/obj/item/gun/launcher/alien/slugsling,/obj/item/gun/launcher/alien/slugsling,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dgO" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/trim/wood/broken0{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dug" = (/obj/structure/bed,/obj/item/bedsheet/purple,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dvI" = (/obj/item/reagent_containers/food/checker/bishop/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"cOZ" = (/mob/living/silicon/decoy{name = "GLaDOS"; icon_state = "ai-malf"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/elite_squad) +"dak" = (/obj/machinery/shower{pixel_y = 24},/obj/structure/window/basic{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) +"dgO" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/syndicate_mothership) +"dug" = (/obj/structure/sign/flag/syndie,/turf/unsimulated/wall,/area/syndicate_mothership) +"dvI" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "dzj" = (/obj/structure/closet/athletic_mixed,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/unsimulated/beach/sand{icon_state = "desert1"},/area/centcom/holding) "dzt" = (/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/syndi/sw{icon_state = "corner_syndiwall_s"},/area/syndicate_mothership/ninja) "dCo" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "emerc_base"; name = "docking port controller"; pixel_y = -25; req_one_access = 150; tag_door = "emerc_airlock_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) @@ -2752,17 +2666,17 @@ "eta" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/syndicate_station/start) "ewx" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "11"; dir = 1},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "eyM" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "emerc_shuttle_pump"},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) -"eCO" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"eJr" = (/obj/machinery/shower{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) -"eLU" = (/obj/vehicle/bike/electric,/obj/effect/floor_decal/industrial/warning/full,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"eCO" = (/obj/effect/floor_decal/industrial/warning/red/cee{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"eJr" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/syndicate_mothership) +"eLU" = (/obj/structure/table/rack/dark,/obj/item/gun/launcher/alien/spikethrower,/obj/item/gun/launcher/alien/spikethrower,/obj/item/gun/launcher/alien/slugsling,/obj/item/gun/launcher/alien/slugsling,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "eMj" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/obj/structure/bed/chair/shuttle/red{dir = 4},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) -"eMo" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/closet,/obj/random/clothing/hat,/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"eMo" = (/obj/structure/table/rack,/obj/item/clothing/glasses/hud/plain/thermal/monocle,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "eNt" = (/turf/simulated/shuttle/wall/syndi{dir = 6; icon_state = "syndiwall"},/area/shuttle/administration/centcom) "eYA" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_t"},/area/shuttle/administration/centcom) "fdA" = (/obj/structure/toilet{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) "fjR" = (/obj/structure/table/glass,/obj/item/clothing/accessory/holochip/elitesyndicate,/obj/item/clothing/accessory/holochip/elitesyndicate,/obj/item/clothing/accessory/holochip/elitesyndicate,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"fom" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/holofloor/beach/sand,/area/eclipse/civilian/dormitory/holodeck/source_beach) -"fIW" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"fom" = (/obj/structure/sign/flag/syndie,/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/syndicate_mothership) +"fIW" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 1},/area/syndicate_station/start) "fPQ" = (/obj/structure/table/glass,/obj/item/storage/box/donut,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "fWQ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 5},/area/syndicate_station/start) "fXh" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"; dir = 4},/area/centcom/evac) @@ -2771,39 +2685,38 @@ "gnd" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/syndicate_station/start) "gqK" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/dark,/area/syndicate_mothership/elite_squad) "gBB" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/se,/area/syndicate_mothership/ninja) -"gCF" = (/obj/item/reagent_containers/food/checker/rook/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_chess) -"gEF" = (/obj/item/reagent_containers/food/checker/king{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_chess) -"gSj" = (/obj/structure/mirror{pixel_y = -30},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"gEF" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw{icon_state = "corner_syndiwall_s"},/area/syndicate_station/start) +"gSj" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/item/wrench,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "hkK" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "11"; dir = 8},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "hlI" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"},/area/shuttle/syndicate_elite/mothership) "huB" = (/obj/machinery/button/remote/blast_door{id = "elite_syndicate_ship"; name = "remote shutter control"; req_access = list(150)},/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) -"huR" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) +"huR" = (/obj/structure/table/woodentable,/obj/item/dice,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "hxg" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_shuttle_outer"; locked = 1; name = "Ship External Access"; req_access = list(150)},/obj/machinery/shield_diffuser,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "hQN" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_v"},/area/shuttle/administration/centcom) "hRn" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/sw,/area/shuttle/administration/centcom) -"hSx" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) +"hSx" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/syndicate_station/start) "ifK" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/ne,/area/shuttle/syndicate_elite/mothership) -"igf" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"igf" = (/obj/structure/closet/crate,/obj/item/implanter/freedom,/obj/item/implantcase/freedom,/obj/item/implanter/explosive,/obj/item/implantcase/explosive,/obj/item/card/emag,/obj/item/melee/energy/sword/pirate,/obj/item/melee/energy/sword/pirate,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "inR" = (/obj/machinery/light,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"iDQ" = (/obj/structure/table/woodentable,/obj/random/handgun,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"iDQ" = (/obj/structure/sign/double/maltesefalcon/left,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) "iOf" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_v"},/area/shuttle/administration/centcom) "iOH" = (/turf/simulated/shuttle/wall/syndi{dir = 9; icon_state = "syndiwall"},/area/shuttle/deathsquad/centcom) "iSs" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 8},/area/shuttle/syndicate_elite/mothership) -"iSS" = (/obj/structure/table/gamblingtable,/obj/item/deck/cards,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"iSS" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/syndicate_mothership) "iTM" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/rescue_base/start) "iZj" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 1},/area/shuttle/syndicate_elite/mothership) "jjf" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) "jpY" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 5},/area/shuttle/merchant/home) -"jyG" = (/obj/random/junk,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) -"jHh" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"jKx" = (/obj/structure/table/rack/dark,/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"jNc" = (/obj/structure/window/basic{dir = 4},/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) +"jyG" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"jHh" = (/obj/structure/closet/crate/trashcart,/obj/random/drinkbottle,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"jKx" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"jNc" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "jSR" = (/obj/machinery/computer/shuttle_control/multi/elite_syndicate,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) -"kiy" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_airlock_dock_door"; locked = 1},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) +"kiy" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "koT" = (/obj/effect/floor_decal/corner/red{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"kpx" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/desert,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"kpY" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand{dir = 1; icon_state = "beach"},/area/eclipse/civilian/dormitory/holodeck/source_beach) -"kzT" = (/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"kpx" = (/turf/simulated/floor/trim/wood/broken0{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"kpY" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"kzT" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "kCn" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_b"},/area/shuttle/administration/centcom) "kEf" = (/obj/structure/window/syndi,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) "kIn" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) @@ -2813,10 +2726,10 @@ "kNc" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "kNw" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "kQO" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/nw{icon_state = "corner_syndiwall_s"},/area/shuttle/administration/centcom) -"lca" = (/obj/structure/table/woodentable,/obj/item/pizzabox/meat,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"liZ" = (/obj/item/reagent_containers/food/checker/rook{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"lca" = (/obj/effect/floor_decal/industrial/warning/red{dir = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"liZ" = (/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "lkz" = (/obj/structure/shuttle/engine/propulsion{dir = 1; icon_state = "propulsion_l"},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) -"lnJ" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"lnJ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 4},/area/syndicate_station/start) "lnY" = (/obj/structure/closet/crate,/obj/effect/floor_decal/industrial/outline/grey,/obj/random/loot,/obj/random/loot,/obj/random/contraband,/turf/simulated/floor/tiled/dark,/area/merchant_station) "lpg" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_straight"},/area/shuttle/deathsquad/centcom) "lzm" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_d"},/area/shuttle/administration/centcom) @@ -2824,15 +2737,15 @@ "lHB" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/lattice,/turf/space,/area/space) "lNG" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/shuttle/administration/centcom) "mgK" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"},/area/shuttle/escape/centcom) -"mlU" = (/obj/structure/table/woodentable,/obj/item/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"mlU" = (/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "muR" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/rescue_base/start) "mxg" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/syndicate_mothership/ninja) -"mIB" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) +"mIB" = (/obj/structure/table/woodentable,/obj/item/storage/box/donut,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "mYC" = (/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "naX" = (/obj/effect/floor_decal/industrial/arrows/yellow,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "nsG" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 8},/area/shuttle/syndicate_elite/mothership) "ntK" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"},/area/centcom/evac) -"nyH" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/simulated/floor/holofloor/beach/sand,/area/eclipse/civilian/dormitory/holodeck/source_beach) +"nyH" = (/obj/effect/floor_decal/industrial/warning/red/cee{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "nDr" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"},/area/syndicate_station/start) "nEV" = (/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/syndi/nw{icon_state = "corner_syndiwall_s"},/area/shuttle/administration/centcom) "nKS" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_t"},/area/shuttle/administration/centcom) @@ -2840,37 +2753,36 @@ "oed" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_shuttle_inner"; locked = 1; name = "Ship External Access"; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "oJy" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/slice/carrotcake/filled,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "oMX" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand{icon_state = "desert1"},/area/centcom/holding) -"oSC" = (/obj/item/beach_ball,/turf/simulated/floor/holofloor/beach/sand,/area/eclipse/civilian/dormitory/holodeck/source_beach) +"oSC" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 8},/area/syndicate_station/start) "oXY" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "pbP" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_d"},/area/shuttle/administration/centcom) "pju" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/sw,/area/syndicate_mothership/ninja) "pmr" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 1},/area/syndicate_mothership/ninja) -"poB" = (/obj/structure/flora/ausbushes/fullgrass,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) +"poB" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "pBp" = (/obj/effect/floor_decal/spline/plain/grey{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "qcx" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/amanita_pie,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"qge" = (/obj/effect/decal/cleanable/blood/oil,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"qge" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bottle/small/beer,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "qqx" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw,/area/shuttle/syndicate_elite/mothership) "qrE" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/ne,/area/shuttle/administration/centcom) "qsa" = (/obj/effect/floor_decal/industrial/arrows/blue{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"qwn" = (/obj/structure/sign/double/maltesefalcon/right,/turf/unsimulated/wall,/area/space) +"qwn" = (/obj/structure/flora/pottedplant/autumn,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "qwv" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 8},/area/centcom/evac) "qCb" = (/obj/structure/table/steel_reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"qES" = (/obj/structure/table/steel,/obj/item/device/flashlight/lamp/brown,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"qES" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership) "qLi" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/shuttle/transport/centcom) "qOb" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/syndicate_station/start) "qSm" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "6"; dir = 4},/turf/simulated/floor,/area/shuttle/escape/centcom) -"qTx" = (/obj/structure/table/rack/dark,/obj/random/projectile,/obj/random/projectile,/obj/random/ammo,/obj/random/ammo,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"rcz" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) -"rjR" = (/obj/item/reagent_containers/food/checker/bishop/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/eclipse/civilian/dormitory/holodeck/source_chess) -"roJ" = (/obj/structure/table/standard,/obj/item/storage/firstaid/surgery,/obj/item/storage/firstaid/combat,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"qTx" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/space) +"rcz" = (/obj/random/junk,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"roJ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "rrU" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw{icon_state = "corner_syndiwall_s"},/area/syndicate_mothership/ninja) "rAK" = (/obj/machinery/door/blast/regular{dir = 4; id = "thunderdomegen"; name = "General Supply"},/obj/machinery/door/blast/regular{dir = 4; id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) "rDn" = (/obj/structure/bed/chair/shuttle/black{dir = 4},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "rFY" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "emerc_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "rOP" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/lattice,/turf/space,/area/space) "rQy" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_t"},/area/shuttle/administration/centcom) -"sal" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"saU" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 9},/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) +"sal" = (/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/staff,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"saU" = (/turf/unsimulated/wall{icon_state = "riveted_15"},/area/syndicate_mothership) "sgp" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/shuttle/syndicate_elite/mothership) "shB" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 9},/area/syndicate_station/start) "sAe" = (/obj/structure/table/standard,/obj/item/device/radio/off,/obj/item/device/radio/off,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) @@ -2880,311 +2792,307 @@ "tfE" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "tha" = (/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/syndi/se{icon_state = "corner_syndiwall_s"},/area/shuttle/administration/centcom) "thC" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"tiw" = (/obj/structure/table/woodentable,/obj/random/cash,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"tiw" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/skipjack_station/base) "ttI" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 4},/area/shuttle/escape/centcom) "txP" = (/obj/machinery/teleporter_gate,/turf/simulated/floor/plating,/area/syndicate_mothership/ninja) "tyr" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) "tLb" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "tPO" = (/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) -"tRB" = (/obj/item/stool/padded,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"tRB" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/syndicate_mothership) "tSl" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/shuttle/deathsquad/centcom) -"tUr" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) "tZQ" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/soylenviridians,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "udL" = (/obj/structure/bed/chair,/obj/effect/shuttle_landmark/elite_syndicate/start,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) -"uge" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"ugy" = (/obj/item/reagent_containers/food/checker/knight{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"uge" = (/obj/structure/table/steel,/obj/machinery/recharger,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"ugy" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/syndicate_mothership/elite_squad) "unt" = (/obj/structure/table/steel_reinforced,/obj/machinery/recharger,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"uog" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner,/turf/simulated/floor/holofloor/grass,/area/eclipse/civilian/dormitory/holodeck/source_picnicarea) +"uog" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/security/brig/solitary) "urT" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/rescue_base/start) "uEO" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/spesslaw,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"uMI" = (/turf/simulated/floor/trim/wood/broken0{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"uPo" = (/obj/item/reagent_containers/food/checker/rook{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_chess) +"uMI" = (/obj/effect/floor_decal/sign/armory/ballistic2{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "vbM" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "vdZ" = (/turf/simulated/shuttle/wall{icon_state = "whiteship15"},/area/shuttle/merchant/home) "vef" = (/obj/machinery/hologram/holopad,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"vjn" = (/obj/structure/sign/double/maltesefalcon/left,/turf/unsimulated/wall,/area/space) +"vjn" = (/obj/item/remains/human,/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) "vBm" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 8},/area/rescue_base/start) "vCm" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/syndicate_station/start) "vDl" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 8},/area/syndicate_mothership/ninja) -"vJX" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox,/obj/item/clothing/head/helmet/space/vox,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) "vSO" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"},/area/shuttle/administration/centcom) "vUX" = (/obj/structure/bed/chair/shuttle/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 9},/turf/simulated/floor,/area/syndicate_station/start) -"vVl" = (/mob/living/simple_animal/faithful_hound,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"vVl" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/pressure,/obj/item/clothing/head/helmet/space/vox/pressure,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "vZZ" = (/obj/machinery/light{dir = 1},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "wlw" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/se,/area/shuttle/administration/centcom) "wtM" = (/obj/machinery/computer/shuttle_control/multi/elite_syndicate,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"wGr" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"wGr" = (/obj/structure/bed/chair,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "wGu" = (/obj/item/stool/padded,/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"wLo" = (/obj/item/reagent_containers/food/checker/knight/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/eclipse/civilian/dormitory/holodeck/source_chess) "wRY" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "emerc_shuttle_sensor"; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "emerc_shuttle_pump"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "wSq" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"},/area/shuttle/administration/centcom) "xlV" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_b"},/area/shuttle/administration/centcom) "xov" = (/obj/effect/floor_decal/corner/brown{dir = 6},/obj/machinery/suit_storage_unit/standard_unit{req_access = list(201)},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "xpf" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 9},/area/shuttle/merchant/home) -"xpT" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"xpT" = (/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "xsi" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "xsI" = (/obj/effect/shuttle_landmark/administration/centcom,/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "xAz" = (/turf/simulated/shuttle/wall/syndi{dir = 5; icon_state = "syndiwall"},/area/shuttle/deathsquad/centcom) -"xGy" = (/obj/structure/table/woodentable,/obj/item/storage/box/glasses,/obj/machinery/light/small{dir = 1},/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"xKn" = (/obj/structure/flora/pottedplant/ugly,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"xGy" = (/obj/structure/mirror/raider,/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/skipjack_station/base) +"xKn" = (/obj/structure/bed,/obj/item/bedsheet/purple,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "xWH" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "11"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "yav" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 8},/area/shuttle/escape/centcom) "ygc" = (/obj/effect/floor_decal/corner/red{dir = 6},/obj/machinery/light/small{dir = 4},/obj/structure/bed/chair/shuttle/red{dir = 8},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaafaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaafaafaafaafaafaafaafaafaafaafaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaahaahaahaahaahaahaahaahaahaahaagaahaahaahaahaahaahaahaahaahaahaagaahaahaahaahaahaahaahaahaahaahaagaahaahaahaahaahaahaahaahaahaahaagaahaahaahaahaahaahaahaahaahaahaagaahaahaahaahaahaahaahaahaahaahaagaahaahaahaahaahaahaahaahaahaahaag -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaagaafaafaakaakaakaakaakaakaakaakaakaakaakaakaakaafaafaafaafaafaafaafaafaafaafaafaafabCabCabCabCabCabCabCabCaafaafaalaamaamaamaanaamaamaamaamaamaamaaoaapaaqaapaaqaapaapaaqaapaaqaapaaoaaraasaasaasaasaasaasaasaasaasaaoaavaavaavaavaavaavaavaavaauaataaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaBaaCaaCaaCaaCaaCaaDaaAaazaayaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaFaaFaaiaaiaaFaaFaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaajaagaafaafaakaaHaaIaakaaHaaJaakaaHaaKaakaaHaaIaakaafaafaafaafaafaafaafaafaafaafaafaafabCabRabRabRabCabRabRabCaafaafaalaamaamaamaamaamaamaamaamaaLaamaaoaaMabbuogrczhSxrczhSxaaNaaMabbaaoaaOaaOaaOaaOaaOaaOaaOaaOaaOaaOaaoaaQaaQaaQaaQaaQaaQaaQaaQaaPaataaoaawaaRaawaawaawaawaawaawaaRaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaSaaTaaTaaTaaTaaTaaUaaAaazaayaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaaWaaWaaXaaXaaXaaWaaWaaXaaXaaXaaWaaWaaWaaWaaWaaGaajaagaafaafaakaaYaaKaakaaYaaIaakaaYaaIaakaaYaaIaakaafaafaafaafaafaafaafaafaafaafaafaafabCabRacdabRaceabRabRabCaafaafaalaamaaLaamaamaamaamaamaamaamaamaaoabbaaMaaZaboabaabaacoabcabbaaMaaoaaOaaOaaOaaOaaOaaOaaOaaOaaOaaOaaoaaQaavabeaavaaQabfabgabhabdaataaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaSaaTaaTaaTaaTaaTaaUabiaayaayaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGabjaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWabkaaGaajaagaafaafaakaakaakaakaakaakaakaakaakaakaakaakaakaafaafaafaafaafaafaafaafaafaafaafaafabCacmacmacmabCabRabRabCaafaafaalaamaamaamaamaamaanaamaamaamaamaaoaaMaaMabracoabDabDacoabpaaMabbaaoabqabqabqabqabqabqabqabqabqabFaaoabsabtabuabvabwabxabyabzabdaataaoaawaawaawaaRaawaawaaRaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaSaaTaaTaaTaaTaaTaaUaaAaazaayaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWabAaaWaaWaaWaaWaaWaaGaajaagaafaafaakaaHaaIaakaaHaaIaakabBaaIaakaaHaaKaakaafaafaafaafaafaafaafacyacyacyacyabCabCabCabCabCabCabRabRabCaafaafaalaamaamaanaamaamaamaanaamaamaamaaoabbabbabracoabDabDacotUrhuRmIBaaoabFabFabGabHabHabHabHabIabFabFaaoabKabLabLabLabMabxabNabOabdaataaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaSaaTaaTaaTaaTaaTaaUaaAaazaayaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiabPabPabPabPabPabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWabjaaWaaWaaWaaWaaWaaGaajaagaafaafaakaaYaaIabQaaYaaIaakaaYaaIaakaaYaaIaakaafaafaafaafaafaafaafacyacyacyacyaceabRabRabCabRabRabRabRabCaafaafaalaamaamaamaamaamaamaamaamaamaamaaoabbabbaaZaboabaabaacoavBmIBhuRaaoabFabFabSabTabTabTabTabUabFabFaaoabVabWabXabWabYabxabNabOabdaataaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoabZaaTaaTaaTaaTaaTacaaaAaazaayaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiabPabPacbacbacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaccabAaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaakaakaakaakaakaakaakaakaakaakaakaakaakaafaafaafaafaafaafaafacyacyacyacyabCabCabCabCabRabRabRacXabCaafaafaalaamaamaamaamaamaaLaamaamaamaanaaoaaMaaMablabmacoabosaUabEacfacgaaoabFabFabSabTabTabTabTabUabFabFaaoaciacjabXacjackabxabNabOabdaataaoaawaawaawaaRaawaawaaRaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoabZaaTaaTaaTaaTaaTacaaaAaazaayaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPabPacbacbacbacbacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaaWaclaclaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafabCacmabRabRacXabCaafaafaalaamaamaaLaamaamaamaamaamaamaamaaoabbaaMabbabraboacoacoacokpxacoaaoabFabFabSabTabTabTabTabUabFabFaaoacqabXabXabXacrabJacqacrachaataaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoabZaaTaaTaaTaaTaaTacaacpaayaayaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaclactacuaclaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafabCacmabRabRacXabCaafaafaalaamaamaamaamaamaamaamaamaamaamaaoaaMabbaaMaaZacoacoacoaboacoacoaaoabFabFaczacAacAacAacAacBabFabFaaoaciacjacjacjackacsacCacDabdaataaoaawaaRaawaawaawaawaawaawaaRaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoabZaaTaaTaaTaaTaaTacaaaAaazaayaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaFaaFaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaclacFacGaclaaWaaWaccaaWacHaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafabCabCabCabCabCabCaafaafaalaanaamaamaamaaLaamaamaamaamaaLaaoaapaaqaapacnpoBpoBeCOpoBeCOpoBaaoacNabFabFabFabFabFabFabFabFabFaaoacPacQacQacQacRabxaavaavaauaataaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoacSacTacTacTacTacTacUaaAaazaayaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaaWaclaclaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagacYacYacYacYacYacYacYacYacYacYaagacYacYacYacYacYacYacYacYacYacYaagacYacYacYacYacYacYacYacYacYacYaagacZacZacZacZacZacZacZacZacZacZaagacZacZacZacZacZacZacZacZacZacZaagacZacZacZacZacZacZacZacZacZacZaagacZacZacZacZacZacZacZacZacZacZaag -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWabAaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWabjaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaladdaddaddaddaddaddaddaddaddaddaaoadeadeadeadeadeadeadeadeadeadeaaoadfadfadfadfadfadfadfadfadfadgaaoadkadladkadmadnadladnacEadiadhaaoadJadJadJadJadJadJadJadJadJadJaaoadsadtadtadtadtadtaduacOadqadpaaoadvadvadwadwadwadwadwadwadwadwaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacadxadxadxadxaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaccabAaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWabAaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaladdaddaddadBaddaddaddaddadBaddaaoadeadCadeadeadeadeadCadeadeadeaaoadfadfadDadEadEadEadFadfadfadfaaoadGadHadGadHadIadHadIacEadiadhaaoadJadJadJadJadJadJadJadJadJadJaaoadKadLadLadLadLadLadMacOadqadpaaoadwadwadwadwadNadNadNadwadwadwaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbadOacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacadxadxadxadPadPadxaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaaWaaWaaWadQaaWadQaaWadQaaWadRaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaladdaddaddaddaddaddaddaddaddaddaaoadeadeadeadeadeadeadeadeadZadeaaoadfadfaeaaeaaeaaeaaeaadfadfadfaaoadGadHadladladladHadIadjadhadhaaoadJadJajlaedaedaedaedaedaedaedaaoadKadLadLadLadLadLadMadradpadpaaoadwadwadwaefaegaegaegadwadwadwaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacadxadPadPadPadPaehaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaeiaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaladdadBaddaddaddaddadBaddaddaddaaoadeadeaekadeadZadeadeadeadeadeaaoaelaelaelaelaelaelaelaelaelaemaaoadGadHadHadHadHadHadIacEadiadhaaoadJadJadooSCaeHaeHaeHaeHaeHaeHaaoadKadLadLadLadLadLadMacOadqadpaaoadwadNaeoaepaeqaeqaeraesadNadwaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacadxadPaetadPadPaeuaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaladdaddaddaddaddaddaddaddaddaddaaoadeadeadeaeyadeadeadeadeaeyadeaaoaelaeAaeBaeBaeBaeBaeBaeCaelaemaaoaeDaeEaeEaeFaeEaeEaeGacEadiadhaaoadJadJadoaeHaeHfomaeHaeHaeHaeHaaoaeIaeJaeJaeJaeJaeJaeKacOadqadpaaoadwadNaeoaeLaeMaeNaeOaesadNadwaaE -aaaaaiaaiaaiaaiaaiaaiaaiaafaafaftafwafwafwafwafwafwafwafwafwaftaafaafaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacadxadPadPadPadPaeuaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaePaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaePaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaladdaddaddadBaddaddaddaddaddaddaaoadeadeadeadeadeadeadeadeadeadeaaoaelaeTaeUaeUaeUaeUaeUaeVaelaemaaoaeWaeXaeXaeXaeXaeXaeYacEadiadhaaoadJajlkpYaeHaeHaeHaeHajiaeHaeHaaoaeZafaafaafaafaafaafbacOadqadpaaoadwadNaeoaeLafcafdaeOaesadNadwaaE -aaaaaiaaiaaiaaiaaiaaiaaiaafaafaftafwafwafwafwafwafwafwafwafwaftaafaafaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacadxadxadxadPadPadxaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaladdaddaddaddaddaddaddaddadBaddaaoadeadeadeadeadCadeaekadeadeadCaaoaelaeTaeUaeUaeUaeUaeUaeVaelaemaaoafiadHadHadHadHadHafjacEadiadhaaoadJadoaeHajiaeHaeHaeHaeHaeHaeHaaoafkadLadLadLadLadLaflacOadqadpaaoadwadNaeoaerafmafmafnaesadNadwaaE -aaaaaiaaiaaiaaiaaiaaiaaiaafaafaftafwafwafwafwafwafwafwafwafwaftaafaafaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacadxadxadxadxaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaladdadBaddaddaddaddaddaddaddaddaaoafradeadeadeadeafradeadeadeadeaaoaelaeTaeUaeUaeUaeUaeUafsaelaemaaoafiadHafuafuafuadHafjaebadhadhaaoaednyHaeHaeHaeHaeHaeHafvaeHaeHaaoafkadLadLadLadLadLaflaeeadpadpaaoadwadwadwafxafxafxafyadwadwadwaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiabPabPacbacbacbacbacbacbacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaladdaddaddaddaddaddadBaddaddaddaaoadeaeyadeaekadeadeaeyadeaekadeaaoaelafAafBafBafBafBafBafCaelaemaaoafiadHafiadHafjadHafjacEadiadhaaoaeHaeHaeHaeHafDaeHaoDaeHaeHaeHaaoafkadLadLadLadLadLaflacOadqadpaaoadwadwadwadNadNadNadwadwadwadwaaE -aaaaaiaaiaaiaaiaaiaaiaaiafeabPacbacbacbacbacbacbacbacbacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaFaaFaaFaaVaaVaaVaaVaaVaaVaaFaaFaaFaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaladdaddaddaddaddaddaddaddaddaddaaoadeadeadeadeafradeadeadeadeafraaoaelaelaelaelaelaelaelaelaelaemaaoafEafuafEafFafGafuafGacEadiadhaaoaeHaeHaeHaeHaeHaeHaeHaeHaeHaeHaaoafHafIafIafIafIafIafJacOadqadpaaoadwadwadwadwadwadwadwadwafKafKaaE -aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagafLafLafLafLafLafLafLafLafLafLaagafLafLafLafLafLafLafLafLafLafLaagafLafLafLafLafLafLafLafLafLafLaagafLafLafLafLafLafLafLafLafLafLaagafLafLafLafLafLafLafLafLafLafLaagafLafLafLafLafLafLafLafLafLafLaagacZacZacZacZacZacZacZacZacZacZaag -aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaabaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaFaaFaaFaaFaaFaaFaaFaaFaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaalaeSaeSaeSaeSaeSaeSaeSaeSaeSaeSaaE -aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaalaeSliZugybEAahhgEFcOZagluPoaeSaaE -aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaafaaeaaaaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaalaeSagbafNagbafNagbafNagbafNaeSaaE -aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaalaeSagwaICagwaICagwaICagwaICaeSaaE -aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaafaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaalaeSaICagwaICagwaICagwaICagwaeSaaE -aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaafaafaafaafaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaalaeSagwaICagwaICagwaICagwaICaeSaaE -aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaafaafaafaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaalaeSaICagwaICagwaICagwaICagwaeSaaE -aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaalaeSagQaHOagQaHOagQaHOagQaHOaeSaaE -aaaaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaalaeSgCFaKgdvIaiEbAcrjRwLoaIDaeSaaE -aaaaaiaaiaaiaaiaaiaaiaaiabPabPacbacbacbacbacbabPacbacbacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaalaeSaeSaeSaeSaeSaeSaeSaeSaeSaeSaaE -aaaaaiaaiaaiaaiaaiaaiaaiaaiabPabPacbacbacbabPaaiabPacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagafLafLafLafLafLafLafLafLafLafLaag -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbabPaaiabPacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiahaahaahaahaahaahaahaahaahaaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPabPabPabPabPaaiabPabPabPabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFaheahfahfahfahfahfahfahfahaaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahfahfahfahfahiahfahfahfahfaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacaacaacaacarBarBarBarBarBarBarBarBarBarBarBarBarBarBaacaacaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFaaiaaiaaiaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacaacaacarBarBavravravravravravravravravravravravraeharBarBaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahaahfahfahfahfahfahfahfahaaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaiaaFahnaaFaaFaaFaaFaaFahnaaFaaiaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacaacarBarBavravravravravravravravravravravravravravravraeharBaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaiaaiaaiahaahaahfahfahfahfahfahfahfahaaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnaaFaaFaaFahnahnahnahnahnahnahnaaFaaFaaFahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacarBarBavravravravravravravravravravravravravravravravravraehaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiahaahaahaahaahfahfahfahfahfahfahfahfahfahaahaaaFahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnaaFaaFahnahnahnahnahnahnahnahnahnaaFaaFahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacarBavravravravravravravravravravravravravravravravravravraehaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnaaFaaFahnahnahnahnamSahnahnahnahnaaFaaFahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacarBavravravravravravravravravravravravravravravravravravraehaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagWagWagWagWagWagWagWagWagWagWagWagWagWaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiahtahtahtahtahtaaiaaiaaiabPaheaheahaabPaaiaaiaaiabPaheaheahaabPaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacarBavravravravravravravravravravravravravravravravravravraehaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagWvbMfPQfjRfjRagnfjRaguagWaIVjNceJragWaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiahtahuahuahuahtaaiaaiaaiabPahvahvahvabPaaiaaiaaiabPahwahwahwabPaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacarBavravravravravravravravravravravravravravsavsavsavsavsaehaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagWthCadWadWadWadWadWadWagJaKvaQAaKvagWaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiahtahtahuahxahuahtahtaaiahtabPahvahyahvabPahtaaiahtabPahwahzahwabPahtaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaheahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacarBavravravravravravravravravravravraVIavravsavsavsavsavsaVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagWagWagWagWagWoXYadWafzafzafzadWagpagWaIBagWaIBagWaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiahtahuahuahuahuahuahAaaiabPahvahvahvahvahvabPaaiabPahwahwahwahwahwabPaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiahaahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaafaaiagLaaeaadaacarBavravravravravravravravravravravravravravsavsavsavsavsaVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagWbOSadVadVadVaNBadWqCbahgahgadyagUagWfdAagWagragWaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiahtahuahuahuahuahuahAaaiabPahvahvahvahvahvabPaaiabPahwahwahwahwahwabPaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiahaahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaafaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaafaaiagLaaeaadaacarBavravravravravravravravravravravravravravravravravravraVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagWkKBkInkInkInkoTadWahgaIRuntadyagUagWagWagWagWagWaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiahtahtahtahtahtahtahtaaiahtabPabPabPabPabPahtaaiahtabPabPabPabPabPahtaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahaahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaFaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaFaaiaaiaaiaaiaafaaiagLaaeaadaacarBavravravravravravravravravravravravravravravravravravraVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagWagWagWagWagWafhadWagZagZagZadWagpagWagHadWagHagWagWagWagWaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaafaaiagLaaeaadaacarBavravravravravravravravravravravravravravravravravravraVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafagWthCadWadWadWadWadWagUagGadWadWaggagWadbadcagWaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaafaaiagLaaeaadaacarBarBavravravravravravravravravravravravravravravravravraVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafagWgqKwtMdCoadWadWadWxsiagWagHadWagHagWagWagWagWaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaFaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaFaaiaaiaaiaaiaaiaaiagLaaeaadaacaacarBarBavravravravravravravravravravravravravravravraVJarBaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafagWagWagWagWbjoagWagWagWagWagWagWagWagWaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacaacaacarBarBavravravravravravravravravravravravraVJarBarBaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafaafaafagWaKyagWaafaafaafaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacaacaacaacarBarBarBarBarBarBarBarBarBarBarBarBarBarBaacaacaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafaafaafagWagtagWaafaafaafaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafaafaafagWkiyagWaafaafaafaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiafeahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfafeaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafqqxlkzafoaKUhxgaKUafolkzifKaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagLagLagLagLagLaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaaiaaaaaiaaiaaiahaahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFahnahnahnahnahnahnahnahnahnaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafagvaHUagvaLoaHVwRYagvaHUagvaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaaiaaiaaiahaahfahfahfahfahfahaahfahfahfahfahfahaahfahfahfahfahfahaaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFahnahnahnahnahnahnahnaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafagqadYadaeyMaexagmiSsiZjagTaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaaiaaiaaiahaahfahfahfahfahfahaahfahfahfahfahfahaahfahfahfahfahfahaaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFahnahnahnaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafnsGkJSaKUoedaKUhlIagIaafaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaaiaaiaaiahaahfahfahfahfahfahaahaahfahfahfahaahaahfahfahfahfahfahaaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafacLafUdUVrFYafXaghacLaafaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaaiaaiaaiahaahaahfahfahfahaahaahaahfahfahfahaahaahaahfahfahfahaahaaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafafWafUtLbafXafXaghafWaafaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaaiaaiaaiaaiahaahfahfahfahaaaiahaahaahaahaahaaaiahaahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafagqsgpcmbafXagjagdagTaafaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaafaafaafaafajkajkajkajkajkaafaafaafaafaafaafaafajkajkajkajkajkaafaafaafaafaaaaafaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaKAaafaafagveMjafXygcagvaafaafaKAaKAaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaeaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafagvcmbafXagjagvaafaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafagvhuBudLtfEagvaafaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafagqsgpjSRagdagTaafaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaiaaiaaFaaFaaFaaFaaFaaiaaiaaiaaaaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaKAaafaafagqahlagTaafaafaKAaKAaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRgaRgaRgaRgaRgaRgaafaRhaRhaRhaRhaRhaRhaRhaRhaRhaafaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaiaaFaaFawwawwawwaaFaaFaaiaaiaaaaaeagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafaafaafaafaafaafaKAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRgaRgaRgaRgaRgaRgaRhaRhaRsaRsaRsaRtaRsaRsaRsaRhaRhaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFaaFarVarVarVaaFaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFaaFawwawwawxawwawwaaFaaFaaiaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaRfaRgaRgaRgaRgaRgaRgaRhaKjaRhaRhaRhaRhaRhaRhaRhaKjaRhaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaKAaafaafaafaafaafaKAaKAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRhafqafqafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaKAaKAaKAaKAaKAaKAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRhafqafqafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRhafqafqafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRgaRgaRgaRgaRgaRgaRhaRwaRsaRsaRsaRsaRsaRsaRsaRDaRhaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRhaKjafqafqafqafqafqafqafqaRhaRhaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahBahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahC -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVaswarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaKjafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaKjafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaKjafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaKjaRhafqafqafqafqafqaRhaRhaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFaaFarVarVarVarVarVaaFaaFaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRhafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFarVarVarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFaaFawwawwawwawwawwaaFaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRhafqafqagKafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFarVarVarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaiaaFaaFaaFaaFaaFaaFaaFaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRhafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFarVarVarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRhaRhafqafqafqaRhaRhaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafaafaajaajaajaafaafaafaafaafaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFarVarVarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRhaRhaRhaRhaRhaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaajaajaajaajaajaajaajaajaajaafaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFarVarVarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFaaFarVarVarVarVarVaaFaaFaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafajVaafajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRwaRsaRsaRsaRsaRsaRDaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaafaafaafaafaafaafajVajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRhaRsaRsaRsaRsaRsaRhaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaafaafaafaafaafaafajVaafaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRhaRsaRsaRsaRsaRsaRhaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaafaafaafaafaafaafakFajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaafaafaafaafaafaafakQaafajWaajaajakRakRakRakRakRaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafakRakRalaalbalcakRakRaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRwaRwaRwaRwaRDaRDaRDaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafalkallalmalnalmallakRaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafalrallalmalnalmallakRaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafalRallalmalnalmallakRaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafakRakRalnalnameakRakRaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafakRbbvalnbbvakRaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafamvamvamvamvakRakRamwakRakRakRakRakRakRakRaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafamUamTamTamTamTamTavzaafaafamvamVamWamXamVamVamVamYakRamZanaanbancakRakRakRakRaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafaafaafaafaafaafamUshBanransantanuanvfWQavzaafamvaSPanwanwaSPamVamVamVanxanyanyanyanzakRakReLUakRakRaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafvCmanEanFanFanGanFanFanuvCmaafamvanHanIanJanKamVamVamVakRanyanyanyanLakRanMaoganOakRaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaafaafvCmanXanFanFanFanFanYanZvCmaafamvaSPaoaaoaaSPamVamVaobakRaocanyaodaoeakRaofaogaohakRaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmaonanFanFaooanFanFaopvCmaafamvaquaSPaSPaSPamVamVaoqakRakRakRakRakRakRaoraogaosakRaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafavDetaaoEanqanqanqanqcAbaFRaafamvamvamvamvakRaogaogaogakRaoHaoHaoIaoJakRaoKaogaoLakRaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmaoPaRpaoRaoSaoTvCmaafaafaafaafaafaafamvaogaogaogaoUaoVaoVaoWaoWakRaoKaogaoLakRaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmapkaplaQwanFapmvCmaafaafaafaafaafaafamvaogaogaogakRapnaoVakRakRakRamvapoamvakRakRakRakRaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafamUqObapBaplaQwanFapCgndavzaafaafakQakFakFakRaogaogaogakRakRakRakRapDapEaogaogaogapFapGapGakRakRaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafamUanqanqnDrqObapMaoQvUXanFapNgndnDranqanqavzapOapOakRapPaogaogaSOakRapQapRaogaogaogaogaogaogaogaogapSakRaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmaqiaqjaqkvCmanFaqlanFaqmbCashBaqnaqoaqpaqqaqraqsaqraogaogaoggalaqtaogaogaogaogaogaogaogaogaogaogaqvakRaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaqBaqCaqDaqCgndcAbanqaqEanqqObaqFaqnaqGaqHaqqaqraqIaqraogaogaogkNcakRaqJaqKaogaogaogaogaogaogaogaogaqLakRaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaajaajaajaafaafaafaafgndanqaqBaqUfWQqObaqVanFaqWgndanqaqBaqXaqBvCmaqYaqYakRamvamvamvakRakRakRakRaqZaraaogaogaogarbarbarcakRakRaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareareareareareareareareareareareareareareareareareareareareaqTaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafvCmarfanFanFargvCmanFanFanFvCmarhariarjarkvCmajWaafajWaafaafaafaafaajaajakRakRakRamvarlamvakRakRakRakRaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearearearearmarnarnarnrQyarnarnarnarnarnaFfaroareareareareaqTaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafvCmarpanFanFanFarqanFanFanFarranFanFanFarsvCmakFakFakFakFaafaafaafaafaajaajaajakRartaogartakRaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearearearmarxaryarzarzlNGarAarAvZZarCarCkCnvSOaFfaroareareaqTaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafvCmarDanFanFanFarEanFanFanFarFanFanFanFarGvCmaafaafaafaafaafaafaafaafaafaajaajakRartaogartakRaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearekQOxlVarLaryarMarNlNGaryaryaryaryarylNGarOdSxvSOqrEarearParParParParPaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafamUnDranqanqanqanqetaanFanFanFbCaanqanqanqanqnDravzaafaafaafaafaafajVaafajWaajaajakRartaogartakRaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearmiOfthaarWaryarXarYlNGarZaryaryaryaryasaaryaryasblNGarearPascasdasearParParParParPasfasfasfasfarParPaafaafaafaafaafaafaafaafasgasgasgasgasgasgasgasgasgaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafvCmashasiasjaskaslvCmasmanFasnvCmasoaspaspasqasrvCmaafaafaafaafaafajVajWaajaajaajakRartaogartakRaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareaszasAasBaryaryarzarzlNGaryaryaryasCasClNGaryasDasElNGarearPasFasdasdasGasHasIasJasKasLasJawRasNasOarParParParParParParParParParPasPasPasPasPasPasPasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaajaafaafaafaafaafaqBasiasiasiasiasivCmanFanFanFvCmasRanFanFanFasSaqBaafaafaafaafaafakQaafaajaajaajakRakRasTakRakRaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareataasAatbaryaryaryaryasaaryasbbyRarnrQysCcarnarnarnwlwatdarParParParParPasHawRasJateatfasJawRawRawRatgathathathathathathathathatgasPatiatjatjatjatkasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaqBatlatmasiasiasiatnanFanFanFatoanFanFanFatpatqaqBaafaafaafaafaafajVajWajWaajaajaajakRakRakRaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarehRnpbPatwatxatyatzatAlNGaryaryaryatBatCareareareareareareatDathathathatgawRawRawRawRawRawRawRawRawRatgathathathathathathathathatgasPatEatQatFatSatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaqBasiasiasiasiasiatGanFanFanFatHanFanFanFanFatIaqBaafaafaafaafaafajVaafaafajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearenKSarnarnarnarnarneYAarZaryatParyxsIareareareareareareatDathathathatgawRawRawRawRawRawRawRasHasHarParParParParParParParParPasgasPaupauqatFatFatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmatTasiasiasiatUbCaaqBatVaqBetaatWatXatYanFatZvCmaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearmxlVaudaueaufaudaudlNGaryaryaryasytPOarearearearearearearParParParParPawRawRasJateasLasJawRauhauiarPaujaukaukaularPaumaunauoasgasPauNatFatFatFatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmaurausautauuauvvCmauwanFauxvCmauybCaanqauzanqqObaafaafaafaafaafaafaafajVaafajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareaszasAauHauIauIauIauIasaaryasbeNtarnsCcarnarnarnarnqrEarearPascasdasearPawRawRasJateauJasJawRasHasHarPauKauKauKauKarPauLaunauMasgasPatEatFatRavkatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmauOasiauPbCaanqqObanFauQauRgndanqqObauSavpauTvCmaafaafaafaafaafaafaafajVajWajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareataasAauZavaauIauIauIlNGaryarylNGavbavcavdaveavfavglNGarearPasFasdasdasGawRawRawRawRawRawRawRawRawRarPauKavhaviaviarParPavjarPasgasPauNatFatFatFatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmavlavmavnvCmaafgndavoavoavoqObaafvCmavqanFbbuvCmaafaafaafaafaafaafaafajVaafajWaafaajaajaajaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarehRnhQNedRavuauIauIavvlNGarZaryasaaryaryaryaryaryasblNGarearParParParParParParPavwarParParPawRawRawRavxauKavyavyauKauKauKauKaviasgasPavXauqatFatFatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafgndavoavoavoqObaafavDavAavAavAaFRaafgndavoavoavoqObaafaafaafaafaafaafaafajVajWajWajWajWajWaajaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareareatvpbPavNdHrauIavOnKSavPavPeYAarZaryavQavRnEVlzmwlwarearPaviauKavSarPavTavUavUajtavVarPawRawRawRawRauKauKauKauKavWauKauKaviasgasPatEatQatFatSatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafavDavAavAavAaFRaafaafavAavAavAaafaafavDavAavAavAaFRaafaafaafaafaafaafaafajVaafajWaafajWaafaafaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearearehRnawgawhawiawjlNGawkawllNGawmawnnEVlzmwSqatcarearearPawoauKauKauKavUavUavUavUawparPawRawRawRavxawqauKauKauKawrauKauKawsasgasPawuawEawEawEawvasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaafaafaafavAavAavAaafaafaafaliavAavAaafaafaafavAavAavAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearearearehRnaHraHraHrsCcawtawtsCcarnarnwSqatcarearearearearParPavxavxarParParPavxavxavxarPbbwawRawRarPavxavxavxavxavxavxavxarPasgasPasPawUawUawUasPasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaliavAavAaafaafaafaafaafaafaafaafaafaliavAavAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearearearearearearearearearearearearearearearearearearearearPawAawAawAawAawAawAawAawAawAarParPawBarParPawAawAawAawAawAawAawAarPasgasPasPasPasPasPasPasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawPawPawPawPawPawPawPawAawAawAawQawQawQawQawQawQarPawRawSawRarPawQawQawQawQawQawQawQawQasgasPasPasPasPasPasPasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOaxgawOaxhaxiaxjaxkaxlaxmawOaxnaxoaxpaxqaxraxraxsaxsaxtaxtawPaxuaxvaxvaxvaxvaxwaxxaxxaxxaxxaxyaxzaxAaxBaxCarPawRawSawRarPaxEaKWaxGaxGaxGawQaafaafasgasPasPasPasPasPasPasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOawOawOawOawOawOawOaxOawOaxpaxpaxpaxpaxpaxpawOaxPaxoaxpaxpaxpaxpaxpaxpaxpaxpawPaxQaxvaxRaxvaxSaxTaxUaxUaxUaxVaxWaxGaxGaxGaxGarPawRawSawRarPaxGaxGaxGaxGaxGawQaafaafasgasgasgasgasgasgasgasgasgaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOayiayjaxraykaylaymaxpaxpaxpaxpaxpaxpaxpaynawOawOawOaxpaxpaxpaxpaxpaxpaxpaxpawPayoaypayqaxvaxvaxwaxxaxxaxxaxxaxWaxGaxGaxGaxGarPayrawBaysarPaxGaxGaxGaxGaxGawQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayAayBayBayBayBayBayBayBayBayBayBayBayBayBayCayBayBayBayBayBayCayDayBaxraxrayEawOayFaxpaxpaxpaxpaxpaxpaxpawOayGaxpaxpaxpayHayHayIayJayKayKawPayLayMayNaxvaxvawPayOayOayOawOayPayQayRaySayTawQayUayUayUawQaxGaxGaxGaxGaxGawQawQawQawQaytaytaytaytaytaytaytaytaytaytayuaytaytaytaytaytaytaytaytaytaytaytaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOaymawOawOawOaxpaxpaxpaxpaxpaxpaxpaxpawOazmaxpaxpaxpaznawOawOawOawOawOawPawPawPawPawPawPawPazoazoazoawOazpazqaxxaxxaxxawQaxGazraxGawQaxxaxxaxxazqazsawQayvayVayWaytayXayYayZazaazbazcazdaytazeazeazeazeazeaytazfazgaztazaazuazvazwaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOayiazHaxraxrazIawOazJazKazLazMazNazOaxpaxpawOazPaxpaxpaxpazQawOazRazSazSazRazTazUazVazWazoazoazoazoazoazXawOaxGaxGazYazZazZazZazZazZazZazZazZazZaAaaxGaxGawQayvayVayWaytazaazaazaazxazaazaazaaytazeazyazzaAbaAcaytazaazaazaaAdazaazaazaaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayAayBayBayBayBayBayBayBayBayBayBayBayBayBaAjayBayBayBayBayBaAjaAkayBaxraxraAlawOazTazTazTazTazTawOaxpaxpawOaAmaxpaxpaxpaAnawOaxpazoazoazoazTazoazoazoazoazoazoazoazoaAoawOaxGazraApaxxaxxaxxaxxaxxaxxaxxaxxaxxaxWazraxGawQaxxaAeaxxaytazaazaazaazaazaazaazaaytaAfaAgaAcaAcazeaytazaazaazaazaazaazaazaaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaAAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOayiaABaxraxraACazTaADaAEaAFaAGaAHazTaxpaxpazTaxpaxpaxpaxpaAIazTaxpazoazoaylaAJazoazoazoazVazVawOawOawOawOawOaxGaxGaApaxxaAKaxGaALaAMaANaxGaAKaxxaxWaxGaxGawQaAhaAiaAqaytaztaAraAsazaaAsaAtaAuaytaAcaAcazeazeazeaytaAvaAwaAsazaaAxaAyaAzaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayAayBayBayBayBayBayBayBayBayBayBayBayBayBaATayBayBayBayBayBaATaAUayBaxraxraAVazTaAWaxpaxpaxpaAXazTaxpaxpazTaxpaxpaAYaAZazNazTaBaazoazoazoawOazTazTaBbazTazTawOazoazoazoaBcaxGaxGaBdaxxaxGaBeaBfaBgaBhaBiaBjaxxaBkaxGaxGaBlaxWaxGaApaytaytaytaAOaAPaAOaytaytaytaytaytaAPaytaytaytaytaytaAQaAPaAQaytaytaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOayiaBsaxraxraBtawOaBuaxpaxpaxpaxpawOaBvaBvawOaBwaBwawOawOawOawOaBaazoazoaylaBxaByaByaByaByaByaBzaByaByaByaBzaxGaxGaBAaBBaxGaxGaBCayUaBDaxGaxGaBBaBEaxGaxGaBFaxWaxGaxGaARaASaBnaBoazaaAsaASaBGaBoaBHaBIazaaAsaASaBXaBoaAsaBHazaaASaBGaBoaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayAayBayBayBayBayBayBayBayBayBayBayBayBayBaBJayBayBayBayBayBaBJaBKaBLaxraxraylaBMaxpaxpaxpaxpaxpaBMaxpaxpaBNaxpaxpaBOaBPaBQaBQaxpazoazoaBRawOazTazTaBbazTazTawOazoazoazoaBSaxGaxGaBTaxxaBUaBeaBVaxGaBVaBiaxGaxxaBWaxGaxGaBFaxWaxGaApaAPazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOaxraxraylaBMaxpaxpaxpaxpaxpaBMaxpaxpaCaaxpaxpazoaCbaCbaCbazoazoazoaCcazTaCdaCeazoaCfaCgawOawOawOawOawOaxGaxGaApaxxaChaxGaBmaxGaBmaCiaCjaxxaxWaxGaxGazqaxWaxGaApaARaASaBGaBoazaaAsaASaBnaBZaBHaAsazaaBHaASaBGaBoaBHaAsazaaCkaClaBoaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOaxraxraCpawOazTazTazTazTazTawOaCqaCqawOaCraxpazoaCsaCtaCuazoazoazoaCvaCwaCeazoazoazoazoaAJazoaAYaCxawOaxGaxGaApawQawQaCyaxGaxGaCzaChawQawQaxWaxGaxGawQaxWaxGaApaytaytaytaCmaAPaCmaytaytaytaytaytaCnaytaytaytaytaytaCoaAPaCoaytaytaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOawOawOawOawOaCIaCJaCKaCLaCMaxpaxpaxpazTaCNaxpazoaCtaCOaCPazoazoazoazoaAJazoazoazoaCQaCRazTazoazoaCSawOaxGazraApawQawQaxxaxxaxxaxxaxxawQawQaxWazraxGawQaxWaxGaApaytaCAaCBaAsazaaAsaCCaCDaytaCEaCFaCEaCGaCHaytaCTaztaCUazaaCVaCDaCWaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOaxpaxpaxpaxpaxpaxpaxpaxpazTaCYaxpazoaCZaCZaCZazoazoazoazoaAJazoazoazoaCQaCRazTaDaaDbaDcawOaxGaxGaDdaDeaDeaDeaDeaDeaDeaDeaDeaDeaDfaxGaxGawQaxWaxGaApaytazaazaazaazaazaazaazaaytaCHaCEaCHaCEaCHaytazaazaazaazaazaazaazaaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOaxpaxpaxpaxpaxpaxpaxpaxpawOaDiaxpaxpaxpawDaxpaxpazoazoaDiaCwazoazoazoaCQaCRawOawOawOawOawOawQazqaDkaBlawQaxGaxGazraxGaxGawQawQawQawQawQawQaxWaxGaApaytazaazaazaaCXazaazaazaaytaDgaytaDgaytaDgaytazaazaazaazaazaazaazaaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOaDoaDoaDpaxraDqaDraDsazNawOaDtaDuayOawOawOawVawOayOaDuaDtazTaDwazoazoaCQaCRawOaDxaDyaDzaDxaDAaDBaDCaDDaDEaDFazqaDGaBlawQawQaafaafaafaafawQaDhaxGaDlaytaDmaDnaDSazaaEaaEbaEIaytaFiaytaIMaytaINaytaIPaJgaDnazaazuaKaaKsaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDHahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCaAAahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahC -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOawOawOawOawOawOawOawOawOawOawOawOawOawOawCaDjawFawOawOawOawOaDLazoazoaCQaCRawOaDxaDMaDMaDxaDAaDBaDCaDDaDEaDNaDOaDPaDQaDRaDEaafaafaafaafawQawQaKuawQaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahDahDahDaafaafahEahEahEaafaafahFahFahFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUawCiOHaDvxAzawFaDUaDUawOaDXazoazoaCQaCRawOaDxaDzaDzaDxaDAaDBaDCaDDaDEaDYaDCaDCaDCaDZaDEaafaafaafaafaafaVHaDCbbiaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahDahGahDaafaafahEahHahEaafaafahFahIahFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUawCiOHaDIaDJaDKxAzawFaDUawOawOaEfaEfawOawOawOaEgaDxaDxaDxaEhaDBaDCaDDaDEaEiaEjaEiaEkaEiaDEaafaafaafaafaafaVHaDCbbiaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahDahDahDahDahDahEahEahEahEahEahFahFahFahFahFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUawTaDVaDJaDJaDJaDWawTaDUazTazoazoazoazoazoaBcaDxaEnaDxaEnaDAaDBaDCaEoaEhaDCaDCaEpaDCaEqaDEaafaafaafaafaafaVHaDCbbiaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahJahKahLahMahNahDahDahDahDahDahEahEahEahEahEahFahFahFahFahFahJahKahLahMahNaafaafaafaafaafaafaafaafaafaafaafaafaDTaEraEraEraEraEraEraEraEraEraDTaDUaDUawTaEcaDJaEdaEeaDWawTaDUazTazoazoazoazoazoaEfaDxaEnaDxaEnaDAaDBaDCaEoaEhaDCaDCaEvaEwaExaDEaafaafaafaafaafaVHaDCbbiaafaafaafaEyaEzaEAaEBaECaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOahPahPahPahQfXhqwvahSahRfXhfXhqwvahTahRfXhfXhqwvahUahRfXhahVahPahPahPahOaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUaDUaDUaDUaDUaDUaDUaDTaDUaDUawTaDVaDJaElawTaEmawTaDUazTazoazoazoazoazoawOaDxaEnaDxaEnaDAaEFaEGaEHaDEaEiaDCaEJaEKaEiaDEaafaafaafaafaafaVHaDCbbiaafaafaEyaELaEMaENaEOaEPaECaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOaihaiiaijaikailaimainailaioaipaiqairaisaitaiusAeaiwaixaiyaizaiAaiBaiCahOaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUaDUaDUaDUaDUaDUaDUaDTaDUaDUawTaDVaDJaEsawTaDJawTaDUaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDEaDEaERaDCaDCaESaDZaDEaDEaDEaDEaDEaDEaDEbbkaDEaafaEyaELaEUaEWaEXaFyaEYaEPaECaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOaiIaiIaiJaiKaiLaiLaiMaiLaiLaiLaiLaiMaiLaiLaiLaiLaiMaiLaiLaiNaiJaiIaiIahOaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUaEZaFaaFbaDUaDUaDUaDTaDUaDUtSllpglpglpgsTEaEtawTaDUaDUaDUaDUaFdaDUaFeatOaFgaFhaFhaFhaFhaFhaDTbblaEiaFjaDCaDCaFkaDZaEibbjbbmbblaEiaDCaDCaDCaEiaafaGvaFmaFmaFmaFnaFmaFmaFmaGvaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaiUaiAaiIaiVaiMaiMaiMinRaiMaiMaiMaiMaiMaiMaiMaiMaiMinRaiMaiMaiMaiVaiIaijaiWaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaEZaFpatLaFraFbaDUaDUaDTaDUaDUawTaEuaEDaEEaDJaEQawTaDUaDUaDUaDUaDTaDUaDUaDUaFwaFhaFhaFhaFhaFhaDTbblaEiaFjaDCaDCaDCaDZaEibbmbblbblaEiaDCaDCaDCaEiaafaHgaFmaFCaFzaFAaFBaFWaFmaHgaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaiUfXhfXhfXhfXhfXhajfajgaiLaiMaiLajhajhaiLaiMajGajHfXhfXhfXhfXhfXhaiWaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFDaFEaFFaFGaFDaDUaDUaDTaDUaDUawTaFcaDJaDJaDJaEtawTaDUaDUaDUaDUaDTaDUaDUaDUaFgaFhaFhaFhaFhaFhaDTbbmaEiaFjaDCaDCaDCaFIaEibbjbbjbbmaEiaDCaDCaDCaEiaafaETaFJttIaFKaFKaFKyavaFJaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafajAajAahOajBaixaiMajCajjajEajFaiMbHaahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFLcCpaFNaFMaFOaDUaDUaDTaDUaDUaFscHKaFtaFtaFtcHKaFuaDUaDUaDUaDUaDTaDUaDUaDUaDTaDTaDTaDTaFSaFTaDTbbjaEiaFjaDCaDCaDCaFUaEiaEiaEiaEibbnbbkaEiaEiaEiaEisFXaFVaFXaFYaGtaGSaFXaFZaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafajAajAajAajAaiJajUaiLaiMajCajEajEajFaiMailahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFDaGaaGyaGcaFDaDUaDUaDTaDUaDUaDUaFsaFvaFHaFPaFuaDUaDUaDUaDUaDUaDTaDUaDUaDUaDTaGgaGhaGiaGjaGjaDEaEiaEiaGkaDCaDCaDCaDCaGlaDCaDCaGmaDCaDCaGnaGoaGpaGoaGFaGraFmaFmaFnaFmaFmaFmaGvaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagvjnqwnaagaagaagaagaagaagaagaagaagaag -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafajAakeajAajAakfakgaiMaiMaiLakhakhaiLaiMaiLakiaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaGxaFQaGyaGzaGAaDUaDUaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDUaDUaDUaDTaGBaGCaGDaGjaGjaGEaDCaGlaDCaDCaDCaDCaDCaGlaDCaDCaDCaDCaDCaGnaGoaGpaGoaGqaFmaFmaFWaGsaHeaFmaGHaGGaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajaIgagsahYqESahYdugaIgahjahYaivahYagSaIgagexpTigfaIgagFiSSaIuafpadzadzxGyagVsalaIgaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafajAajAajAajAntKailakyaiMaiMaiMaiMaiMaiMakEahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaGxaGyaGyaGzaGMaDUaDUaGNaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDTaGOaGPaGQaGjaGjaGEaDCaGlaDCaDCaDCaDCaGRaEiaEiaEiaDCaDCaDCaGnaEiaEiaEimgKavYaFmaFWaGGaHeaFmaFWaHgaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaHHaHHaHHaHHaHHaHHaHHaHHaIgagsahYacwahYdugaIgajDahYaxDahYroJaIgadAahYahYaIgdgOafpjHhafpmlUadzadzadzadzaIgaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafajAajAahQfXhfXhfXhajfakDaiLaiLaiMwGuahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFDaGUaGyaGVaFDaDUaDUaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaGWaGXaGXaGjaGjaDEaEiaEiaGYaDCaGZaDCaFIaEibblaHaaDCaHbaHcaHdaDEaafaafaGvaHsaFmaFWaHtaHeaFmaKeaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaHHbtLaJHaHHvJXaIAaHHaHHaIgagsahYxKnahYdugaIgeMoahYaGbahYaGTagPahYaewahYjjfafpafpafpafpaiabwblcatiwiDQaIgaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOakMakNakOakPaiMaiLaiLaiMaiLakiaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFLcCpaFNaFMaFOaDUaDUaDTaHiaHjoMXaHjaHkdzjafZafZafZafZaHlaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaHmaGjaDEbbmaEiaHnaDCaDCaDCaFUaEiaEiaEiaDCaGnaHoaHpaHqaafaafaGGaHeaFmaFmaJeaFmaFmaFWaGvaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaHHaHHaGdaGdaGdaGdaGdaGdaGdaGfahYahYahYahYahYaGfahYadAahYahYahYaGfahYahYahYjjfafpuMIuMIafpagFtRBagFtRBagFaIgaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafakiakVakVakVakWaiMakXakYakZakYahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFDaHxaGyaHyaFDaDUaDUaDTaHRaHQaHAaHQaHAaHBaHCqcxahbaHFafZaHCoJyaIvaHFaGjaGjaGjaGjaGjaGjaGjaGjaDEbblaEiaHIaDCaDCaDCaDCaGlaDCaDCaDCaHJaDPaHKaDEaafaafaGGaHeaFmaFWaGsaHeaFmaFWaGGaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaHHaIhaGdaGdjKxdakaGdaGdaGdaIgahYahYahYahYahYaIgahYahYahYahYahYaIgahYahYaGeaIgaGIaGJuMIafpafpafpafpafpwGraIgaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOaleakVakValfaiMalgalhaljalhahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaEZaFpaGyaGyaGyaFraFbaDUaDTaHAaHRaHQaHAaHQaHzaHCagiafPaHFafZaHCahstZQaHFaGjaGjaHWaHWaHWaHWaHWaHWaDEbbjaEiaHXaHYaDCaDCaDCaGlaDCaDCaDCaDCaDCaGnaDEaafaafaHgaHeaFmaFWaGGaHeaFmaHuaHgaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaHHagCaGdaGdqTxcBdaGdaGdaHHaIgaIgaIgaIgaIgaIgaIgaIgaIgaIgaIgaIgaIgahYqgeahYaIgaIgaGLugeaIgaIgaIgaIgaIgaIgaIgaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOalpakVakValqaiMakYaljaljaljahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaFDaIiaGyaGyaGyaIjaFDaDUaDTaHRaIkaHQaHQaHRaHzafZafZafZafZvefafZafZafZafZaGjaGjagkaImaImaImaImaImaDEaDEaDEaDEaInaIoaIoaDEaDEaDEaDEaFlaEhaEhaFlaDEaafaEyavCaIdaFmaFWaHtaHeaFmaIfaHvaECaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaHHaHHfIWaGdaGdaGdaGdaGdaHHaHHaHHaHHaHHaHHaHHaHHaHHaHHaHHaHHaHHaIgahYahYahYaHHaIgaHEaHPaHSaIgaajaajaajaajaajaajaaj -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOalealMakValNaiMalOalPaljalQahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaFDaIwaGyaGyaGyaIxaFDaDUaDTaHQaHRaHAaHRaIyaHzaHCaeRaKwaHFafZaHCaJjahoaHFaGjaGjaIEaIFaIFaIFaIFaIFaDEaIGaIGaIGaIHaIIaIIaIJagOagOaDEaFoaDCaDCaHfaDEaEyaHLaHLaHNaFmaFmaFnaHMaFmaGuaHvaHLaECaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaHHlnJaGdaGdaGdaGdaGdaGdaGdaGdaGdaGdaHHaHHaHHaHHaHHaHHaHHaHHaIgahYahYahYaHHaIgaGKaHPaHSaIgaajaajaajaajaajaajaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaiUambambfXhamcamdahRfXhambambaiWaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaFDaISaGyaGyaGyaIjaFDaDUaDTaITaHRaHAaIUaHQaHzaHCuEOfYoaHFafZaHCaNFaIYaHFaGjaGjahdaIFaIFaIFaIFaIFaDEaIZaJaaJaaJbaIIaIIaIIagOagOaDEaFoaDCaDCaIcaDEaETaIeaItaETaHeaFmaFWaILaIbqSmaELaHZaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaHHaHHaHHadSadSadSaHHaHHaHHaHHaHHaGdaGdaGdaHHaHHaHHaHHaHHaHHaIgaewahYadAaHHaIgaIgaIgaIgaIgaajaajaajaajaajaajaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaiUahVamkajFaiMamlaiLahQaiWaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaJlqLiaJnaJnaJnaJmaJoaDUaDTaJpaHRaHQaHQaHAacvafZafZafZafZafZaGjaGjaGjaGjaGjaGjahdaIFaJqaJraJsaJtaDEagfaJuaJupBpaIXaJwaIIaIIaJxaDEaFoaDCaDCaGnaDEsFXaJcaIsaIraHeaFmaFWaGvaHZaIqaJfaIpaFxaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaHHaHHaHHaHHaHHaajaajaajaHHaHHaHHaGdaGdaGdaGdaHHaHHaHHaIgahYahYahYaHHaajaajaajaajaajaajaajaajaajaajaajaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOamtaiLajhaiLamuahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaJlaJIaJJaJKaJoaDUaDUaDTaHQaJLaJMaHAaJNaJOaJPaJQaJQaJQaJRaJRaJRaJSaJSaJTaJSaJSaJRaJRaJRaDEaDEaDEaJUaJVaJVaJvaJWaJXaJwqsaaJYaDEaFoaDCaDCaGnaGoaJyaIsaIOaMdaFmaFmaFWaHgaHZbbobbobbpaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajaajaajaajaajaHHaHHaHHaHHaGdaHHaHHaHHaIgaJiahYahYaHHaajaajaajaajaajaajaajaajaajaajaajaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOamNamOamPamQamRahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUaDUaDUaDUaDUaDUaDUaDTaIzagoaHQaJNaKkaKlaKlaKlaKlaKlaJRaKmaKnaJSaKnaKnaKnaJSaKnaKmaJRaDEaDEaDEaDEaDEaDElAPaKpaKqaKrqsaaJYaDEaFoaDCaDCaGnaDEmgKaKbaJhmgKbbqaFmaKeaETaKMaJAaJCbbraETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajaajaajaajaajaHHaIgaIgaIgaGfaIgaIgaIgaIgaIgaGfaIgaIgaIgaIgaIgaIgaIgaIgaIgaIgaajaajaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaiUannanoanoanoanpaiWaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUaDUaDUaDUaDUaDUaDUaDTaHQaHQaJNaKkaKlaKlaKlaKlaKlaKlaJRaKnaKBaKCaKnaKnaKnaKCaKDaKnaJRaKEaKFaKGaKHaKIaDEaIIaKoaKraKJaIIaIIaKKaEiaEiaEiaEiaDEaHvaFKaFKaHLaIaaJBttIavCaKOaJdaJzaPcaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajaajaajaajaajaIgahYahYahYahYahYahYaIgaKhaKhaKhaKiaKhaIgahYahYahYahYahYahYaIgaajaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaHRaJNaKkaKlaKlaKlaKlaKlaKlaKlaJRaJSaKnaJSaKnaKnaKnaJSaKnaJSaJRacJaIIaIIaIImYCaKXaIIaIIaIIaIIaIIaIKaKKbbjbblbbmbblaDEaETaKfbbbaKdaPfaKcbbcaETbbdaHZaJZaJZaFxaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajaajaafaafaajaIgkzTahYahYahYahYahYaIgaKhjyGaKhaKhaKhaIgadAahYahYaewahYaGeaIgaajaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDEaJNaKkaKlaKlaKlaKlaKlaKlaKlaKlaJRaLfaKnaKnaKnaKnaKnaKnaKnaLgaJRaLhagfaLiagfaLjaDEnaXaIIaIIaIIaIIaLkaKKbbmbbmbbjbblaDEaETbbeaKcbbfaKcaKcaKtaETaNxaHZaHZbbhaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajaajaafaafaajaIgahYahYahYahYahYahYaGfaKhaKhaKSaKhaKhaGfahYahYahYahYahYadAaIgaajaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaMeaMeaMeaMeaMeaMeaafaDEaDEaDEaDEaDEaDEaDEaDEaDEaDEaDEaDEaJRaLpaLqaLqaLqaKnaLraLraLraLsaJRaLtagfaLuaLnaLvaDEaLwaLxaIIaLyaLzaLAaDEaDEaDEaDEaDEaDEaETaKQaKQaKPaKPaKcaKNaETaULaHZaKLbbtaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajaajajVaafaafaIgahYahYaIgaKxaKxaKxaIgaKhaLcaLdaLeaKhaIgaKxaKxaKxaIgaLmahYaIgaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMebbgbbsbbxbbybbzaMeaafaJRaKnaKnaKnaKnaKnaKnaKnaKnaKnaKnaKnaJRaJRaLEaJRaJRaKnaJRaJRaLEaJRaJRaJRaJRaJRaJRaJRaDEaDEaDEaDEaDEaDEaDEaDEaafaafaafaafaafaKYaKZaLaaLaaLaaILaFKavCaLaaLaaLaaILaLbaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajajWajVaafaafaIgahYahYaIgaafaafaafaIgaIgaKVaKVaKVaIgaIgaafaafaafaIgadAahYaIgaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMebbAbbsbbxbbybbBaMeaafaJRaKnaJRaJRaJRaJRaLHaJRaJRaJRacMacMacMacMacMacMaJRacMaJRacMacMacMacMacMacMacMacMaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKYaLlaLlaLlaLbaafaKYaLlaLlaLlaLbaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaafaafaafaafaafaLBaLCaLCaLDaafaafaafaafaafaafaafaafaafaafaafaafaafaLBaLCaLCaLDaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMebbgbbsbbxbbybbzaMeaafaJRaKnaJRaLLaLMaLMaLMaLMaLNaJRaJRaJRaJRaJRaJRaJRaJRaLOaJRaJRaJRaJRaJRaJRaJRaJRacMaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaLlaLlaLlaafaafaafaLlaLlaLlaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajaafaafaafaafaLBaLFaLGaLDaafaafaafaafaafaafaafaafaafaafaafaafaafaLBaLFaLGaLDaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMebbCaMeaMeaMeaafaJRaKnaJRaLLaLMaLMaLMaLMaLNaJRaLRaLSaLTaLSaLUaLVaLVaLVaLVaLVaLUaLVaLUaLVaLWaJRacMaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafabnaLlaLlaafaafaafabnaLlaLlaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaafaafaafaafaafaLBaLIaLGaLDaafaafaafaafaafaafaafaafaafaafaafaafaafaLBaLFaLGaLDaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaMqaMqaMraMsaMtaMuaMvaMtaMwaMxaMyaMzaMAaMBaMCaMDaMEaMFaMGaMHaMIaMJaMKaMLaPXaPXaMeaafaafaJRaKnaJRaLXaLMaLMaLMaLMaLYaJRaLVaLZaLZaLZaLZaLZaLVaLVaLVaLZaLZaLZaLZaMaaMbaJRacMaJRaJRaJRaJRaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaafaafaafaafaaflHBaLCaLCrOPaafaafaafaObaafaafaafaafaafaOFaafaafaaflHBaLCaLCrOPaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaMqaMWaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaMeaafaafaJRaKnaJRaLXaMfaMgaMgaLMaLMaMhaLVaLVaLVaMiaLVaLVaLVaLVaLVaLVaLVaMiaLVaMjaLVaJRacMacMacMacMacMacMacMaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaafaafaafaafaafaafaafaafaObaMkaOHaOFaafaafaafaMkaMnaMnaMnaMnaMnaMkaafaafaafaObaOXaMkaOFaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaNjaPXaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaNkaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaPXaNlaMeaafaJRaJRaKnaJRaJRaJRaJRaJRaJRaJRaJRaLVaLZaLZaLZaLZaLZaLVaLVaLVaLZaLZaLZaLZaMNaLVaJRaJRaJRaJRaJRaJRaJRacMaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaafaafaafaafaafaafaafaafaMkaTMaNWaMkaafaafaObaMkaMkaMQaMRaMSaMkaMkaOFaafaafaMkbaHbaIaMkaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaNvaPXaMeaNwaNwbbDaNwaNwaNwbbDaNwaNwaNwaNwaNwbbDaNwaNwaNwaNwbbDaNwaNwaMeaPXaNyaMeaafaJRaLfaKnaJRaJRaMXaMXaMXaMXaMXaJRaMYaMYaMYaMYaMYaMYaMYaMYaMYaMYaMYaMYaMYaMZaMYaJRaNaaNaaNaaNaaNaaJRacMacMagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaafaafaafaafaafaafaafaafaMkaNbbaJaMkaafaafaMkaMkaNdaNebaKbaLaNgaMkaMkaafaafaMkbaMaNiaMkaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaNSaPXaMeaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaMeaPXaNyaMeaafaJRaLfaJRaJRaJRaNmaNmaNmaNmaNmaJRaNnaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNpaNnaJRaNmaNmaNmaNmaNmaJRaJRaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaafaafaafaafaafaafaafaafaMkbaNaMkaMkaMkaMkaMkaNraNsbaOaNsaNsaNsaNtaMkaMkaMkaMkaMkbaPaMkaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaOcaPXaMeaOdaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaOeaMeaPXaOfaMeaafaJRaLfaJRaNzkIYaNTaNTaNTaNTaNTaxXaNDaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNpaNEcgVaNUaNUaNUaNUaNUrAKaNGaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaafaafaafaafaafaafaafaafaMkbaQaNIaNJaNKaNLaMkaNMaNsaNsaNsaNsaNsaNMaMkaNNaNOaNPbaRbaSaMkaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaOnaPXaMeaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaMeaPXaPXaMeaafaJRaLfaJRaNzaNAaNTaNTaNTaNTaNTcMmaNDaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNpaNEaNCaNUaNUaNUaNUaNUagAaNGaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaafaafaafaafaafaafaafaafaafaafaafaMkaNVaNWbaHaNWaNXaMkaNYaNYaNYaNZaNYaNYaNYaMkaOaaNWaNWbaTaNVaMkaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaOxaPXaNkaNwaNwaNwaNwaNwaNwaNwaNwaNwaOyaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNkaPXaOzaMeaafaJRaLfaJRaNzkIYaNTaNTaOgaNTaNTcMmaNDaNoaNoaNoaNoaNoaOhaOiaOhaNoaNoaNoaNoaNpaNEaNCaNUaNUaOjaNUaNUagAaNGaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaafaafaafaafaafaafaafaafaafaafaafaOkaNVaNWaNWaNWaOlaNZaNsaNsaNsaNsaNsaNsaNsaNZaNWaNWaOmaNWaNVaOkaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaOKaPXaMeaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaMeaPXaOzaMeaafaJRaLfaJRaNzkIYaNTaNTaNTaNTaNTcMmaNDaNoaNoaNoaNoaNoaOoaOpaOoaNoaNoaNoaNoaNpaNEaNCaNUaNUaNUaNUaNUagAaNGaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaafaafaafaafaafaafaafaafaafaafaOkaOqaNWaOrbaHaNWaMkaOsaOtaNsaNsbaOaNsaOuaMkaNWaOvaNWaOwaNVaOkaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaOZaPXaMeaOdaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaOeaMeaPXaOzaMeaafaJRaLfaJRaNzkIYaNTaNTaNTaNTaNTcMmaNDaNoaNoaNoaNoaNoaOAaOBaOCaNoaNoaNoaNoaNpaNEaNCaNUaNUaNUaNUaNUagAaNGaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaafaafaafaafaafaafaafaafaafaafaOkaOqaNWaNWaMkaODaMkaMkaMkaOEbaUaOGaMkaMkaMkaODaMkbaVaOIaOJaOkaafaafaafaaf -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaPgaPXaMeaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaMeaPXaPhaMeaafaJRaLfaJRacMkIYaNTaNTaNTaNTaNTcMmaNDaNoaNoaNoaNoaNoaNoaOLaNoaNoaNoaNoaNoaNpaNEaNCaNUaNUaNUaNUaNUagAacMaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaafaafaafaafaafaafaafaafaafaObaMkaOMaONaONaMkaOOaOPaOOaOkaOQaORaOSaOkaOTaOUaOVaMkaOWbaWaOYaMkaOFaafaafaaf -agLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaPtaPXaMeaNwaNwaPuaNwaNwaNwaPuaNwaNwaNwaNwaNwaPuaNwaNwaNwaNwaPuaNwaNwaMeaPXaPvaMeaafaJRaLfaJRaPaaJRaPbaPbaPbaPbaPbaJRaNnaNoaNoaNoaNoaNoaNoaOLaNoaNoaNoaNoaNoaNpaNnaJRaPbaPbaPbaPbaPbaJRaPaaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaafaafaafaafaajaajaafaafaafbaXaMkaPdaPdaMkaMkaOOaOOaOOaOkaOQbaYaOSaOkaOVaOVaPeaMkaMkaPdaPdaMkbaZaafaafaaf -aagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaPDaPXaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaNkaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaPXaPEaMeaafaJRaLpaPiacMaJRaPjaPjaPjaPjaPjaJRaMYaMYaMYaMYaMYaMYaPkaPlaPkaMYaMYaMYaMYaMZaMYaJRaPmaPmaPmaPmaPmaJRacMaPntyraJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaafaafaafaafaajaajaafaafaafaafbaXaPoaPobaZaMkaPpaPqaOOaOkaPraNsaPraOkaOVaOVaPsaMkbaXaPoaPobaZaafaafaafaaf -aagahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahXaibaibahXaicaidaieaifaigahXahWahWahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaPMaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaMeaafaJRaJRaJRacMaJRaJRaJRaJRaJRaJRaJRaPwaPxaPxaPxaPxaPxaPyaPzaPwaPxaPxaPxaPxaPAaPwaJRaJRaJRaJRaJRaJRaJRacMaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaafaafaafaafaajaajaafaafaafaafaafaafaafaafaMkaOOaOOaOOaMkaMkaNZaMkaMkaPBaOVaPCaMkaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahWahWahWahWahWahWahWahWahXahXahXahXahXahXahWahWahWahWahWahWahWahWahWahXaiDaiDahXaiFaiGaiGaiGaiHahXahWahWahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaPUaPVaMsaPWaMuaMvaMtaMwaMxaMyaMzaMAaMBaMCaMDaMEaMFebdaPYaPZaPXaMKaMLaMraPVaPXaMeaafaafaafaJRacMacMacMacMacMacMacMaJRaPwaPwaPwaPwaPwaPwaPwaPFaPGaPwaPwaPwaPwaPHaPwaJRacMacMacMacMacMacMacMaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMkaOOaOOaPIaMkaPJaNsaPKaMkbbaaOVaPLaMkaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahWahWahWahWahWahWahWahWahXaiOahXaiPaiQahXahWahWahWahXahXahXahXahXahXahXaiDaiDahXaiRaiGaiSaiGaiTahXahWahWahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaafaafaafaJRaJRaJRaJRaJRaJRaJRacMaLHaPwaPwaPwaPOaPOaPOaPwaPwaPwaPOaPOaPOaPOaPOaPwaLHacMaJRaJRaJRaJRaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaMkaMkaPPaOOaMkaPQaNsaPRaMkaPSaPTaMkaMkaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahXahXahXahXahXahXahXahXahXaiXahXaiPaiXahXahXahXahXahXaiYaiZajaajbajcahXaiDaiDahXajdaiGaiGaiGajeahXahWahWahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaJRaJRaJRaQaaQaaQaaQbaQcaQdaQeaPwaQfaQgaQhaQiaQjaQkaQlaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafbaXaMkaMkaMkaMkaQmaQnaQoaMkaMkaMkaMkbaZaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahXajmajnahXajoajpajqajrahXajsahXahXajuahXajvajwaiDahXajxaiDaiDaiDajyahXaiDaiDahXahXahXajzahXahXahXahXahXahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaafaafaafaafaajaajaafaafaafaafaafaafaafaafbaXaMkaPdaPdaPdaPdaPdaMkbaZaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahXajIajIajJajIajIajIajIajKaiXajLajLaiXahXajMaiDaiDahXajNaiDaiDaiDajOahXaiDaiDajPajQajRaiGaiGajPajSajTahXahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaafaafaafaafaajaajaajaafaafaafaafaafaafaafaafbaXaPoaoFaoFaoFaPobaZaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahXajIajIahXajXajIajIajIahXahXahXahXahXahXajYaiDaiDahXajNaiDaiDaiDajZahXaiDaiDajPakaakbaiGakcakdaiGaiGahXahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaafaafaafaafaajaajaajaafaafaafaafaafaafaafaafaafaafaenaenaenaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahXakjakkahXaklakmaknajIakoahXakpakqakrahXaksaiDaiDaktaiDaiDaiDaiDakuahXaiDaiDajPaiGakvaiGaiGajPakwakxahXahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaecaenaenaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahXahXahXahXahXahXahXakzahXahXakqakAakpahXajvaiDaiDahXaiGaiDaiDakBakCahXaiDaiDajPaiGaiGaiGaiGahXahXahXahXahWahWahWahWahWaagagLaafaafaafagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahXakGakHakGakHakGakIaiGakJahXajPajPajPahXahXahXahXahXahXakKakKahXahXahXaiDaiDakLaiGaiGaiGaiGajPakwakxahXahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahXaiDakSaiDakSaiDakSaiDaiGakTaiGaiGaiGaiGaiGaiGaiGaiGaiGaiDaiDaiDajwaiDaiDaiDakLaiGaiGaiGakcakUaiGaiGahXahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaajaajaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahXaiDakSaiDakSaiDakSaiDaiGakTaiGaiGaiGaiGaiGaiGaiGaiGaiGaiDaiDaiDaiDaiDaiDaiDahXaldaldaiGaiGajPajSajTahXahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaafaafaafaafaafaafaafaafaafaafaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahXakGakHakGakHakGakHaiDaloahXahXajPajPajPahXahXahXajPajPajPajPajPahXahXaiDaiDahXahXahXahXahXahXahXahXahXahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaafaafaafaafaRFaRFaRFaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahC -aagahWahWahWakqakpahXahXahXahXahXahXahXalsahXahXaltalualvalwalxahXalyalzalAalBalCalDalDahXaiDaiDahXalEalFalGalHalIalJalKalLahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaSeaSeaSeaSeaSeaRGaSeaSeaRGaSeaRGaSeaSeaRGaSeaRFaafaafaafaafaRHaafaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWakAakpakpahXalSalTalUalValWalXaiDalYajPalZaiGaiGaiDaiDajPaiDaiDaiGaiGaiGaiGamaajPaiDaiDahXaiDaiDaiDaiDaiDaiDaiDaiDahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaRFaSeaRIaRJaRKaSeaRLaRMaRLaRMaRPaRMaRLaRMaRLaSeaRFaRFaRFaafaafaRFaRFaRHaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWakpakpakpakpajPaiDaiDaiDaiDaiDaiDaiDamfajPamgaiGaiGaiDaiDajPaiDaiDamhamiaiGaiGamjajPaiDaiDahXaiDaiGaiGaiGaiGaiGaiGaiDahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaSeaSeaRIaRRaRTaSeaRMaSeaSeaRUaSeaRUaSeaSeaRMaSeaRWaRWaSeaRHaafaafaRFaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWakqakpakrakpajPaiDammamnamoampaiDaiDamqajPamraiGaiGaiDaiDajPaiDaiDaiGaiGaiGaiGamsajPaiDaiDahXaiDaiDaiDaiDaiDaiDaiDaiDahXahXahXahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRWaRZaSaaSbaScaSeaRUaSeaSdaSkaSmaSoaSpaSeaRUaSeaSqaSraSeaRFaRFaRFaRHaRFaRFaSeaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaafaafaaf -aagahWahWakpakpakqajPaiDammamxamyampaiDaiDamzahXamAamBaiGaiDaiDahXaiDaiDaiGamCamDamEamFahXaiDaiDahXaiDaiDamGamHamIamJamKamLahXamMamMahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaRWaSsaStaUuaSuaSeaToaSvaSwaToaSxaSvaSAaToaToaStaSBaSvaSeaRGaSeaRGaRGaSeaRGaSeaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWakpandakpakqajPaiDammaneanfampaiDaiDangahXajPajPanhanianiahXanjanjankanlanlanlanlahXaiDaiDahXanmanmahXahXahXahXahXahXahXaiDaiDahXahXaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaRWaSCaSDaSEaSGaSHaSIaSJaSKaUdaSLaSMaSRaSSaSSaSMaSTaSvaSeaRLaSUaRLaSVaSWaSXaSeaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWakqakpakpakAajPaiDaiDaiDaiDaiDaiDaiDaiDanAaiDaiDaiDaiDaiDanBaiDaiDaiDaiDaiDaiDaiDajwaiDaiDaiDaiDaiDaiDaiDajwaiDaiDanCaiDaiDaiDaiDanDaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaRWaSYaSZaTaaTbaSeaRUaRGaRUaSeaTlaSeaRUaRGaRGaSeaTmaTnaSeaSXaRLaRMaRLaSXaRLaSeaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWanPakpakqakpahXanQamBanRanSanTanUaiDaiDanAaiDaiDanVaiDaiDaiDaiDaiDaiDaiDaiDaiDaiDaiDaiDaiDanWaiDaiDaiDaiDaiDaiDaiDanCaiDaiDaiDaiDanDaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaSeaSeaRWaRWaSeaSeaRHaRFaafaRGaTxaRGaRFaRFaafaSeaUuaTyaSeaTzaTBaTzaTzaTBaTzaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWakAakpahXahXahXahXahXajPajPaoiajPahXajPajPahXaojaojahXaokaokaolajPajPajPahXahXahXahXahXaomaomahXaiDaiDahXahXahXahXahXahXahXahXaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaRFaafaRFaafaafaafaafaSeaTCaSeaRFaafaafaSeaTEaToaSeaTFaTHaTIaTJaTKaTLaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWakpahWahWahWahWahXaiGaiGaiDaiGajPaotaouaovaiDaiDahXaiDaiDaiGaowaoxaoyaozaoAaoBamCahXaoCaoCahXaiDaiDahXahWahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTNaTOcKPaTRcKPaTTaTNaafaRWaTUaUdaTVaTWaTXaTYaTYaVjaUaaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWahWahWahWahXaiGaoMaiDaiDajPaiGaiGaiGaiDaiDajPaiDaiDaiGaiGaiGaiGaiGaiGaiGamCajPaoNaoNahXaoOaoOahXahXahXahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTNaUbaREaUeaUfaUgaRCdCxaTNaRWaUhaUjaUkaUlaVfaUmaVfaUnaUoaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWahWahWahWahXaoXaoYaoZaiDapaaiGaiGaiGaiDaiDajPaiDaiDapbapcapcapcapcaiGaiGapdajPapeapfahXapgaiDaphapiapjahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUbvdZxpfaUpaUqaUpjpYvdZdCxaRWaUuaSvaSeaUsaUtaUvaUwaUyaUzaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaairrUaKRkEfpmrafVaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWahWahWahWahXappapqaiDaiDahXaprapsaptapuapvajPaiDaiDapwapxapxapxapxaiGaiGapdajPapeapyapzaiDaiDaiDaiDapAahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaWzaREaUEaUFaUGaUHaUIaRCaWBaSeaUuaSxaSeaSeaSeaSeaSeaSeaSeaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaivDlafTahcdztadTaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahXahXahXahXahXahWahWahXapHaiGapIapJahXahXajPajPajPajPahXaiDaiDaiGaiGaiGaiGaiGaiGaiGapKajPapeapyapzaiDaiDaiDaiDapLahXahXahXahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRCaUKbbEaRYaUMaUIaUcaafaSeaUNaToaSeaVwaUOaUWlnYaUPaUQaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiagzahcaJFahcagzaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahXapTapUapVahXahWahWahXahXahXahXahXahXahWakqakqakqakqahXapWalzapXapYapZaqaaqbaqcaqdaqeahXapeapyapzaiDaiDaiDaiDaqfahXaqgaqhahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaURaRXaRYaUSaUKaREaafaSeaUTaTyaSeaVwaUYaUZaVkaVaaVbaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaIWagxahcagxaIWaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahXaqwaqxaqyahXahWahWahWahWahWahWahWahWahWakqakpakrakqahXahXajPajPajPajPahXahXahXahXahXahXapeapyapzaiDaiDaiDaiDaiDaqzaiDaqAahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaURaRXaVcaUMaVdaUcaafaSeaUuaToaSeaVwaVeaVgaTYaVjaVbaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaIWahcahcahcaIWaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahXahXahXahXahXahWahWahWahWahWahWahWahWahWakqakqakqakqakqakqakqakqakqakpakqakqapeapeapeapeapeaqMahXaqNaqOaqPaqQaqRahXaiGaqSahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRCaUKbbEaVcaUMaVdaUcaafaRWaUuaToaSeaSeaVlaUVaVmaVnaSeaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiagYahcahcahcagYaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWahWahWahWahWahWakqakqahWahWakqakqakpakqakpakqakqakpakqakqakrakqakqapeapeapeapeapeapeahXahXahXahXahXahXahXahXahXahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaVoaRXaVcaUSaUKaREaafaRWaVpaVqaSeaSeaSeaVraSeaSeaSeaSeaVtaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiacxahktxPnUYacxaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWahWahWahWakqakqakqakpakqakqakqakpakqakqakqakqandakqakpakqakqakqakqapeapeakqakqakqakpakqakqakrakpakpakqakpakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaVuaVoaRXaRYaUMaVvxWHaafaRWaUuaVyaSeaVzaVAaVBaVCaVDaVFaVOaVPaVtaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiafSahmahmahmmxgaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWakpahWahWakqaruarvarvarvarvarvarvarvarvarvarvarvarvarvarvarvarvarvapeapearvarvarvarvarvarvarvarwakqakrakpahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafewxaVoaSFaRYaVQaVvaUraafaSeaVRaTyaSeaVSaVTaUuaToaToaTGaTDaVtaVtaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaipjuahpahqahrgBBaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWakpakpakqakqakqarHarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarJarJarIarIarIarIarIarIarIarKakqakqahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRCaTQaVUaVVaVWaTSaREaafaSeaVXaSvaTnaSvaVYaUuaVZaWaaWbaTDaVtaVtaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWakpakpakpakqakqarHarIarQarIarIarIarRvBmaucaucvBmarTarIarIarIarIarRarSarSarSarSarTarIarIarIarQarIarKakqakpahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaWcaRVaWdaWeaWfaUcaafaSeaWgaSvaWhaSvaWiaVEaToaWjaWkaTDaVtaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWakpahWakqakqarHarIarIarIarIarIaVKaugasxasxauFaVKarIarIarIarIaVKassastasuasvaVKarIarIarIarIarIarKakqakqahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaWcaRVaRVaRVaWlaUcaafaSeaWmaWnaSeaSeaWoaWpaToaWqaVzaTDaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWahWakqakqakqarHarIarIarIarIarIaVKaRAasYasYasZaVKarIarIarIarIaVKasUasVasVasWaVKarIarIarIarIarIarKakqakqahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcxovaRVaRVaRVaWraUcaafaRWaWsaWtaWuaWvaWwaTDaWxaWyaTDaTDaTDaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWahWakpakqakqarHarIarIarIarIarIaVKaRAasYaVLatuaVKarIarIarIarIaVKatratsatsattaVKarIarIarIarIarIarKakqahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaWzaRvaTQaWAaTSaRvaWBaafaRWaUuaWCaWuaWDaWEaWFaWFaWFaWFaWGaTDaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWahWakrakpakqarHarIarIarIarIarIaVKaEVatMatNaFqaVKarIarIarIarIaVKatJatsrDnatKaVKarIarIarIarIarIarKakqahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaRcaRdaafaRbaRcaRdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaWHaSnaWIaUcaafaafaRWaWJaWCaWuaWvaWKaTDaTDaTDaTDaWLaTDaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWahWakqakpakqarHarIarIarIarIarIeaevBmaUAaUAvBmiTMarIarIarIarIeaeauaaubauaauaiTMarIarIarIarIarIarKakpakpahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaVuaRSaRSaRSxWHaafaafaSeaWMaWNaSeaSeaWOaUjaWPaWQaWRaWLaTDaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWahWakqauAakqarHarIarIarIarIarIarSauDauEaUJauGaVKarIarIarIarIaVKauBatsatsauCarSarIarIarIarIarIarKakqakqahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafkNwaWSaWTaSzaVxaafaafaSeaWUaWVaWWaWXaWYaToaToaToaWZaXaaTDaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaaf -aagahWahWahWahWahWahWahWahWakqakqarHarIarIarIarIarIarSauWauXauXauYaVKarIarIarIarIaVKauUatsatsauVarSarIarIarIarIarIarKakqakqakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTTewxaRQaSlaSyaUraTOaafaXbaXcaSvaWhaSvaToaToaSxaToaXdaXeaTDaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaf -aagahWahWahWahWahWahWahWahWakqakqarHarIarIarIarIarIarSavtauXauXauYeaevBmvBmvBmvBmiTMaVMatsatsaVNarSarIarIarIarIarIarKakqakpakqakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaWzaRuaXfbXChkKaRuaWBaafaSeaXcaXgaSeaSeaXhaToaToaToaXiaXjaTDaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahWahWahWahWakqarHarIarIarIarIarIaVKavKavLauXavMaVKavGavHavIavJaVKavEatsatsavFaVKarIarIarIarIarIarKakqakqakpakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaafaafaRFaXkaSeaSeaSeaSeaSeaSeaSeaSeaSeaSeaXlaXmaToaXnaTDaXoaToaXpaXqaToaXraTDaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahWahWahWahWakqarHarIarIarIarIarIavZvBmmuRawaauaarUawbawcawcawdeegauaawemuRvBmawfarIarIarIarIarIarKakqakpakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaXsaRFaRFaXtaUBaXuaXvaXwaTDaXxaSvaToaXyaToaSvaXcaToaUiaTDaXzaSvacIaXAaRHaXBaTDaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahWahWahWakqakqarHarIarIarIarIarIarIarIaVKauXauXauXauXauXauXauXauXauXauXaVKarIarIarIarIarIarIarIarKakqakpahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaRFaRFaRFaafaRFaRFaSeaXtaXtaXtaXCaXDaXEaXFaXGaXHaXIaXJaSKaXLaXMaXNaToaUxaTDaXOaSvaXPaXQaRHaXRaTDaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahWahWahWakqakqarHarIarRvBmvBmvBmarTarIaVKawyauXauXauXauXauXauXavLauXawzaVKarIarRvBmvBmvBmarTarIarKakqakqahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTkaafaafaafaTkaXtaXtaXtaXtaSeaSeaSeaSeaSeaSeaSeaXSaXTaXUaXVaXWaXXaXYaTDaTDaTDaTDaTDaTDaTDaXZaYaaYbaTDaYcaToaYdaYeaYfaYgaTDaRFaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaezaezaezaezaezaezaezaezaezaezaezaezaezaezaezaezaezaez -aagahWahWahWahWahWahWahWahWakqakqarHarIaVKawGawHawIaVKarIeaeaweauamuRvBmawJawJvBmmuRauaawKiTMarIaVKawLawMawNaVKarIarKakpakqakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTuaTvaTvaTvaTwaXtaYhaToaYiaYjaYkaYlaYmaTDaToaToaYnaYoaYpaYqaYraYsaYtaYuaTDaYvaYwaYxaYyaYzaYAaToaYBaTDaTDaTDaTDaTDaTDaTDaSeaXtaXtaSeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf -aagahWahWahWahWahWahWahWakqakpakqarHarIaVKawWatsawXeaevBmarUauXawYaVKawZaxaaxaaxbaVKaxcaxdeegvBmarUaxeaxfaxdaVKarIarKakqakqakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTPaYCaYDaYEaYFaYGaYHaYHaYIaYJaYKaYLaYMaYNaYOaYPaYQaYRaYSaYTaYUaTDaYVaVhaYWaTDaTDaYXaYYaYYaYZaYZaYZaZaaZbaZcaZdaZeaZfaZgaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQpaQpaQpaQpaQpaQpaQpaQpaQpaQpaQpaQpaQqaQpaQpaQp -aagahWahWahWahWahWahWahWakqakrakqarHarIeaeauaaxHauaiTMauXauXauXawYaVKaxIaxaaxaaxbaVKaxJaxdaxKaxLaxMaxdaxdaxNaVKarIarKakqakqakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUCaTvaTvaTvaUDaXtaToaToaZhaZiaZjaZkaZlaZmaToaToaZnaZoaZpaZqaZraZsaZtaZuaTDaTDaTDaZvaTDaTDaZwaZxaXMaXJaZyaUdaZAaZBaZCaZDaZEaZEaZFaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQraQsanNaSfaSfaQvaQpaQxaQxaQxaQpaQyaQzaQFaQpaQp -aagahWahWahWahWahWahWahWakqakqakqarHarIaVKaxYaxZaxZayaauXaybavLaycaVKaxaaxaaxaaydaVKaxdayeayfaxdaxdaxdaxdaygaVKarIarKakqauAakpahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTkaafaafaafaTkaXtaXtaXtaXtaTDaTDaTDaTDaTDaTDaTDaTDaZGaZHaZIaZJaZKaZLaZuaTDaZMaZNaZOaTDaTDaZPaTDaZQaZRaZPaTDaTDaZSaZTaZDaZUaZEaZVaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQtaQtaQtaQtaQtaQtaQBaQCaQDaQCaQEaQzgSjaQFaQpaQp -aagahWahWahWahWahWahWahWakqakrakparHarIaVKaxYaxZayweaevBmvBmvBmvBmiTMayxayxaxaaxaeaevBmvBmvBmvBmurTayyaxdayzaVKarIarKakqakqakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaafaTAaTAaTAaTAaTAaTAaTAaTDaTDaZWaZXaZYaZZbaaaTDaTDaTDaTDaZvaTDbabbacaTDbadaTDbaebafaTDbagaZTaZDaZDaZDbahaSeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQGaQGaQtaQtaQtaQHaQpaQCaQCaQIaQpaQpaQpaQpaQpaQp -aagahWahWahWakpazhakqakqakqakqakqarHarIarSasXaxZaziaVKarIarIarIarIaVKazjazjazjazjaVKarIarIarIarIaVKazkaxdazlarSarIarKakqakpakqahWahWakpahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTDaTDaTDaTDaTDaTDaTDaTDaVsaZNbaiaTDbajbakbalaTobambanbaoaTDbapbaqaZDbaraZDbasaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQtaQtaQtaQtaQtaQJaQpaQKaQKaQLaQpaQMaQNaQOaTjaQp -aagahWahWazAakpakpakqakpakqakpakqarHarIaVKazBaxZazCaVKarIarIarIarIavZazDazDazDazDawfarIarIarIarIaVKazEazFazGaVKarIarKakqakqakqakqakqakpahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTDaTDaTDaTDaTAaTAaTDaTDaTDaTDaTDbatbauaTDbavaTDbawbaxaTDbaybazbaAbaAbaAbaBaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQQaQQaQtaQtaQtaQRaQpaQKaQKaQKaQSaQKaQKaQKaQTaQp -aagahWahWahWahWakqakpakqauAakpakqarHarIaVKazjazjazjaVKarIarIarIarIarIarIarIarIarIarIarIarIarIarIaVKazjazjazjaVKarIarKakqakqakqakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTDaTDaTDaTDaTDaTDaTDaTDaTDbagbaCbaDbaEbaFbaGaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQtaQtaQtaQtaQtaQUaQpaQVaQWaQXaQpaQYaQZaRaaQPaQp -aagahWahWahWahWahWahWahWakqakqakqarHarIavZazDazDazDawfarIarIarIarIarIarIarIarIarIarIarIarIarIarIavZazDazDazDawfarIarKakqakqahWakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaSeaSeaSeaSeaSeaSeaSeaSeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQtaQtaQtaQtaQtaQHaQpaQpaQpaQpaQpaQpaQpaQpaQpaQp -aagahWahWahWahWahWahWahWakqakqakparHarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarKakqakrakqakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQtaRiaRjaRkaRlaQtaRmaRnaRoaRmaSNaRqaRraRraRqaQp -aagahWahWahWahWahWahWahWahWakqakqaBpaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBrakqakpakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQtaRiaRxaRyaRlaQtaRzaRzaRzaRzaSNaRBaRBaRBaRBaQp -aagahWahWahWahWahWahWahWahWahWakqakqakqakqakqakqakqakqakqakqakpakqakqakqakrakqakqakqakqakqakqakqakqakqakqakqakqakqakqakqahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaVGaRdaafaRbaVGaRdaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQtaRiaRNaROaRlaQtaRzaRzaRzaRzaRzaRzaRzaRzaRzaQp -aagahWahWahWahWahWahWahWahWahWahWahWakqakqakqakrakqakqakpakqakqakqakqahWahWakqakqakqahWahWahWakqakqakqakqakqahWahWakqahWahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaTAaTAaTAaTAaTAaTAaTAaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQtaRiaSQaSgaRlaQtaRzaRzaRzaRzaRzaRzaShaSiaSjaQp -aagahWahWahWahWahWahWahWahWahWahWahWahWahWahWakqakqahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaTAaTAaTAaTAaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQtaQtaQtaQtaQtaQtaRzaRzaRzaRzaRzaRzaRzaRzaRzaQp -aagahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaTAaTAaTAaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNaQp -aagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaTcaTdaTdaSNaTeaTfaTeaSNaTgaTgaThaSNaTiaQzvVlaQp -agLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaafaafaafagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaTdaTpaTcaSNaTeaTeaTeaSNaTqaTraTgaSNaTsaQzaTtaQp -aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaezaafaQpaQpaQpaQpaQpaQpaQpaQpaQpaQpaQpaQpaQpaQpaQpaQpaQp +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaafaafaafaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaFaaFaaiaaiaaFaaFaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacaacaacaacarBarBarBarBarBarBarBarBarBarBarBarBarBarBaacaacaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacaacaacarBarBavravravravravravravravravravravravraeharBarBaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacaacarBarBavravravravravravravravravravravravravravravraeharBaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacarBarBavravravravravravravravravravravravravravravravravraehaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiabPabPabPabPabPabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacarBavravravravravravravravravravravravravravravravravravraehaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiabPabPacbacbacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacarBavravravravravravravravravravravravravravravravravravraehaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPabPacbacbacbacbacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacarBavravravravravravravravravravravravravravravravravravraehaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacarBavravravravravravravravravravravravravravsavsavsavsavsaehaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaFaaFaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacarBavravravravravravravravravravravraVIavravsavsavsavsavsaVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacarBavravravravravravravravravravravravravravsavsavsavsavsaVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacarBavravravravravravravravravravravravravravravravravravraVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacadxadxadxadxaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaadaacarBavravravravravravravravravravravravravravravravravravraVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbadOacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacadxadxadxadPadPadxaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaaaaeaadaacarBavravravravravravravravravravravravravravravravravravraVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacadxadPadPadPadPaehaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaadaacarBarBavravravravravravravravravravravravravravravravravraVJaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacadxadPaetadPadPaeuaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaadaacaacarBarBavravravravravravravravravravravravravravravraVJarBaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaafaafaftafwafwafwafwafwafwafwafwafwaftaafaafaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacadxadPadPadPadPaeuaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaadaacaacaacarBarBavravravravravravravravravravravravraVJarBarBaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaafaafaftafwafwafwafwafwafwafwafwafwaftaafaafaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacadxadxadxadPadPadxaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaadaacaacaacaacarBarBarBarBarBarBarBarBarBarBarBarBarBarBaacaacaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaafaafaftafwafwafwafwafwafwafwafwafwaftaafaafaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacadxadxadxadxaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiabPabPacbacbacbacbacbacbacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiafeabPacbacbacbacbacbacbacbacbacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaFaaFaaFaaVaaVaaVaaVaaVaaVaaFaaFaaFaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaVaaFaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaabaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaFaaFaaFaaFaaFaaFaaFaaFaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaacaadaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaVaaVaaVaaVaaVaaFaaiaaiaaiaaiaaiaaaaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaacaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaafaafaafaaeaaaaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaaaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaiaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiafeacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiabPacbacbacbacbacbacbacbacbacbacbacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiabPabPacbacbacbacbacbabPacbacbacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiabPabPacbacbacbabPaaiabPacbacbacbabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRhaKjaRhaRhaRhaRhaRhaRhaRhaKjaRhaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPacbacbacbabPaaiabPacbacbacbabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaiahaahaahaahaahaahaahaahaahaaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafagLaaeaRfaRgaRgaRgaRgaRgaRgaRhafqafqafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiabPabPabPabPabPaaiabPabPabPabPabPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFaheahfahfahfahfahfahfahfahaaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRhafqafqafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRhafqafqafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahfahfahfahfahiahfahfahfahfaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRhaKjafqafqafqafqafqafqafqaRhaRhaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaKjafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaKjafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFaaiaaiaaiaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaKjafqafqafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaiaaiaaiaaFahaahfahfahfahfahfahfahfahaaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaiaaFahnaaFaaFaaFaaFaaFahnaaFaaiaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaKjaRhafqafqafqafqafqaRhaRhaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaiaaiaaiahaahaahfahfahfahfahfahfahfahaaaFaaiaaiaaiaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnaaFaaFaaFahnahnahnahnahnahnahnaaFaaFaaFahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRhafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiahaahaahaahaahfahfahfahfahfahfahfahfahfahaahaaaFahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnaaFaaFahnahnahnahnahnahnahnahnahnaaFaaFahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRhafqafqagKafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnaaFaaFahnahnahnahnamSahnahnahnahnaaFaaFahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRhafqafqafqafqafqaRhaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiahtahtahtahtahtaaiaaiaaiabPaheaheahaabPaaiaaiaaiabPaheaheahaabPaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRhaRhafqafqafqaRhaRhaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiahtahuahuahuahtaaiaaiaaiabPahvahvahvabPaaiaaiaaiabPahwahwahwabPaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRhaRhaRhaRhaRhaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiahtahtahuahxahuahtahtaaiahtabPahvahyahvabPahtaaiahtabPahwahzahwabPahtaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiaheahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiahtahuahuahuahuahuahAaaiabPahvahvahvahvahvabPaaiabPahwahwahwahwahwabPaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiahaahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaafaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiahtahuahuahuahuahuahAaaiabPahvahvahvahvahvabPaaiabPahwahwahwahwahwabPaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaiahaahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaiaaaaafaaiaaeagLaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaafaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiahtahtahtahtahtahtahtaaiahtabPabPabPabPabPahtaaiahtabPabPabPabPabPahtaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahaahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaFaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaFaaiaaiaaiaaiaafaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaafaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaafaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaFaaFahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaFaaiaaiaaiaaiaaiaaiagLaaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiagLaaeaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiaaFahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfaaFaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafaaiaaaaaiaaiaaiafeahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfafeaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFahnahnahnahnahnahnahnahnahnahnahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagLagLagLagLagLaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaaiaaaaaiaaiaaiahaahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahfahaaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFahnahnahnahnahnahnahnahnahnaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaaiaaiaaiahaahfahfahfahfahfahaahfahfahfahfahfahaahfahfahfahfahfahaaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFahnahnahnahnahnahnahnaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaaiaaiaaiahaahfahfahfahfahfahaahfahfahfahfahfahaahfahfahfahfahfahaaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFahnahnahnaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaaiaaiaaiahaahfahfahfahfahfahaahaahfahfahfahaahaahfahfahfahfahfahaaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFahnahnahnaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaaiaaiaaiahaahaahfahfahfahaahaahaahfahfahfahaahaahaahfahfahfahaahaaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaaiaaiaaiaaiahaahfahfahfahaaaiahaahaahaahaahaaaiahaahfahfahfahaaaiaaiaaiaaiaaaaaiaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaaiaaaaafaafaafaafajkajkajkajkajkaafaafaafaafaafaafaafajkajkajkajkajkaafaafaafaafaaaaafaaiaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaeaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeagLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaaiagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaafaRhaRhaRhaRhaRhaRhaRhaRhaRhaafaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaiaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaiaaiaaFaaFaaFaaFaaFaaiaaiaaiaaaaaeagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRhaRhaRsaRsaRsaRtaRsaRsaRsaRhaRhaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFaaFarVarVarVaaFaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaiaaFaaFawwawwawwaaFaaFaaiaaiaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFaaFawwawwawxawwawwaaFaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRhaRwaRsaRsaRsaRsaRsaRsaRsaRDaRhaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVaswarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFaaFarVarVarVarVarVaaFaaFaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFarVarVarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFawwawwawwawwawwawwawwaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFarVarVarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaFaaFawwawwawwawwawwaaFaaFaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFarVarVarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaiaaFaaFaaFaaFaaFaaFaaFaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFarVarVarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaaaaeaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFarVarVarVarVarVarVarVaaFaaiaaiaaiaaiaaiaaiaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaFaaFarVarVarVarVarVaaFaaFaaiaaiaaiaaiaaiaaiaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRwaRsaRsaRsaRsaRsaRDaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaiaaiaaiaaiaaFaaFaaFaaFaaFaaFaaFaaiaaiaaiaaiaaiaaiaaiaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRhaRsaRsaRsaRsaRsaRhaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRhaRsaRsaRsaRsaRsaRhaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRsaRsaRsaRsaRsaRsaRsaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRhaRwaRwaRwaRwaRDaRDaRDaRhaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareareareareareareareareareareareareareareareareareareareareaqTaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearearearearmarnarnarnrQyarnarnarnarnarnaFfaroareareareareaqTaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearearearmarxaryarzarzlNGarAarAvZZarCarCkCnvSOaFfaroareareaqTaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearekQOxlVarLaryarMarNlNGaryaryaryaryarylNGarOdSxvSOqrEarearParParParParPaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearmiOfthaarWaryarXarYlNGarZaryaryaryaryasaaryaryasblNGarearPascasdasearParParParParPasfasfasfasfarParPaafaafaafaafaafaafaafaafasgasgasgasgasgasgasgasgasgaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareaszasAasBaryaryarzarzlNGaryaryaryasCasClNGaryasDasElNGarearPasFasdasdasGasHasIasJasKasLasJawRasNasOarParParParParParParParParParPasPasPasPasPasPasPasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareataasAatbaryaryaryaryasaaryasbbyRarnrQysCcarnarnarnwlwatdarParParParParPasHawRasJateatfasJawRawRawRatgathathathathathathathathatgasPatiatjatjatjatkasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarehRnpbPatwatxatyatzatAlNGaryaryaryatBatCareareareareareareatDathathathatgawRawRawRawRawRawRawRawRawRatgathathathathathathathathatgasPatEatQatFatSatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearenKSarnarnarnarnarneYAarZaryatParyxsIareareareareareareatDathathathatgawRawRawRawRawRawRawRasHasHarParParParParParParParParPasgasPaupauqatFatFatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearmxlVaudaueaufaudaudlNGaryaryaryasytPOarearearearearearearParParParParPawRawRasJateasLasJawRauhauiarPaujaukaukaularPaumaunauoasgasPauNatFatFatFatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareaszasAauHauIauIauIauIasaaryasbeNtarnsCcarnarnarnarnqrEarearPascasdasearPawRawRasJateauJasJawRasHasHarPauKauKauKauKarPauLaunauMasgasPatEatFatRavkatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareataasAauZavaauIauIauIlNGaryarylNGavbavcavdaveavfavglNGarearPasFasdasdasGawRawRawRawRawRawRawRawRawRarPauKavhaviaviarParPavjarPasgasPauNatFatFatFatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarehRnhQNedRavuauIauIavvlNGarZaryasaaryaryaryaryaryasblNGarearParParParParParParPavwarParParPawRawRawRavxauKavyavyauKauKauKauKaviasgasPavXauqatFatFatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardareareatvpbPavNdHrauIavOnKSavPavPeYAarZaryavQavRnEVlzmwlwarearPaviauKavSarPavTavUavUajtavVarPawRawRawRawRauKauKauKauKavWauKauKaviasgasPatEatQatFatSatEasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearearehRnawgawhawiawjlNGawkawllNGawmawnnEVlzmwSqatcarearearPawoauKauKauKavUavUavUavUawparPawRawRawRavxawqauKauKauKawrauKauKawsasgasPawuawEawEawEawvasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearearearehRnaHraHraHrsCcawtawtsCcarnarnwSqatcarearearearearParPavxavxarParParPavxavxavxarPbbwawRawRarPavxavxavxavxavxavxavxarPasgasPasPawUawUawUasPasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafardarearearearearearearearearearearearearearearearearearearearearPawAawAawAawAawAawAawAawAawAarParPawBarParPawAawAawAawAawAawAawAarPasgasPasPasPasPasPasPasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawPawPawPawPawPawPawPawAawAawAawQawQawQawQawQawQarPawRawSawRarPawQawQawQawQawQawQawQawQasgasPasPasPasPasPasPasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOaxgawOaxhaxiaxjaxkaxlaxmawOaxnaxoaxpaxqaxraxraxsaxsaxtaxtawPaxuaxvaxvaxvaxvaxwaxxaxxaxxaxxaxyaxzaxAaxBaxCarPawRawSawRarPaxEaKWaxGaxGaxGawQaafaafasgasPasPasPasPasPasPasPasQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOawOawOawOawOawOawOaxOawOaxpaxpaxpaxpaxpaxpawOaxPaxoaxpaxpaxpaxpaxpaxpaxpaxpawPaxQaxvaxRaxvaxSaxTaxUaxUaxUaxVaxWaxGaxGaxGaxGarPawRawSawRarPaxGaxGaxGaxGaxGawQaafaafasgasgasgasgasgasgasgasgasgaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOayiayjaxraykaylaymaxpaxpaxpaxpaxpaxpaxpaynawOawOawOaxpaxpaxpaxpaxpaxpaxpaxpawPayoaypayqaxvaxvaxwaxxaxxaxxaxxaxWaxGaxGaxGaxGarPayrawBaysarPaxGaxGaxGaxGaxGawQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayAayBayBayBayBayBayBayBayBayBayBayBayBayBayCayBayBayBayBayBayCayDayBaxraxrayEawOayFaxpaxpaxpaxpaxpaxpaxpawOayGaxpaxpaxpayHayHayIayJayKayKawPayLayMayNaxvaxvawPayOayOayOawOayPayQayRaySayTawQayUayUayUawQaxGaxGaxGaxGaxGawQawQawQawQaytaytaytaytaytaytaytaytaytaytayuaytaytaytaytaytaytaytaytaytaytaytaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOaymawOawOawOaxpaxpaxpaxpaxpaxpaxpaxpawOazmaxpaxpaxpaznawOawOawOawOawOawPawPawPawPawPawPawPazoazoazoawOazpazqaxxaxxaxxawQaxGazraxGawQaxxaxxaxxazqazsawQayvayVayWaytayXayYayZazaazbazcazdaytazeazeazeazeazeaytazfazgaztazaazuazvazwaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOayiazHaxraxrazIawOazJazKazLazMazNazOaxpaxpawOazPaxpaxpaxpazQawOazRazSazSazRazTazUazVazWazoazoazoazoazoazXawOaxGaxGazYazZazZazZazZazZazZazZazZazZaAaaxGaxGawQayvayVayWaytazaazaazaazxazaazaazaaytazeazyazzaAbaAcaytazaazaazaaAdazaazaazaaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayAayBayBayBayBayBayBayBayBayBayBayBayBayBaAjayBayBayBayBayBaAjaAkayBaxraxraAlawOazTazTazTazTazTawOaxpaxpawOaAmaxpaxpaxpaAnawOaxpazoazoazoazTazoazoazoazoazoazoazoazoaAoawOaxGazraApaxxaxxaxxaxxaxxaxxaxxaxxaxxaxWazraxGawQaxxaAeaxxaytazaazaazaazaazaazaazaaytaAfaAgaAcaAcazeaytazaazaazaazaazaazaazaaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOayiaABaxraxraACazTaADaAEaAFaAGaAHazTaxpaxpazTaxpaxpaxpaxpaAIazTaxpazoazoaylaAJazoazoazoazVazVawOawOawOawOawOaxGaxGaApaxxaAKaxGaALaAMaANaxGaAKaxxaxWaxGaxGawQaAhaAiaAqaytaztaAraAsazaaAsaAtaAuaytaAcaAcazeazeazeaytaAvaAwaAsazaaAxaAyaAzaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayAayBayBayBayBayBayBayBayBayBayBayBayBayBaATayBayBayBayBayBaATaAUayBaxraxraAVazTaAWaxpaxpaxpaAXazTaxpaxpazTaxpaxpaAYaAZazNazTaBaazoazoazoawOazTazTaBbazTazTawOazoazoazoaBcaxGaxGaBdaxxaxGaBeaBfaBgaBhaBiaBjaxxaBkaxGaxGaBlaxWaxGaApaytaytaytaAOaAPaAOaytaytaytaytaytaAPaytaytaytaytaytaAQaAPaAQaytaytaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOayiaBsaxraxraBtawOaBuaxpaxpaxpaxpawOaBvaBvawOaBwaBwawOawOawOawOaBaazoazoaylaBxaByaByaByaByaByaBzaByaByaByaBzaxGaxGaBAaBBaxGaxGaBCayUaBDaxGaxGaBBaBEaxGaxGaBFaxWaxGaxGaARaASaBnaBoazaaAsaASaBGaBoaBHaBIazaaAsaASaBXaBoaAsaBHazaaASaBGaBoaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayAayBayBayBayBayBayBayBayBayBayBayBayBayBaBJayBayBayBayBayBaBJaBKaBLaxraxraylaBMaxpaxpaxpaxpaxpaBMaxpaxpaBNaxpaxpaBOaBPaBQaBQaxpazoazoaBRawOazTazTaBbazTazTawOazoazoazoaBSaxGaxGaBTaxxaBUaBeaBVaxGaBVaBiaxGaxxaBWaxGaxGaBFaxWaxGaApaAPazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayhawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOawOaxraxraylaBMaxpaxpaxpaxpaxpaBMaxpaxpaCaaxpaxpazoaCbaCbaCbazoazoazoaCcazTaCdaCeazoaCfaCgawOawOawOawOawOaxGaxGaApaxxaChaxGaBmaxGaBmaCiaCjaxxaxWaxGaxGazqaxWaxGaApaARaASaBGaBoazaaAsaASaBnaBZaBHaAsazaaBHaASaBGaBoaBHaAsazaaCkaClaBoaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOaxraxraCpawOazTazTazTazTazTawOaCqaCqawOaCraxpazoaCsaCtaCuazoazoazoaCvaCwaCeazoazoazoazoaAJazoaAYaCxawOaxGaxGaApawQawQaCyaxGaxGaCzaChawQawQaxWaxGaxGawQaxWaxGaApaytaytaytaCmaAPaCmaytaytaytaytaytaCnaytaytaytaytaytaCoaAPaCoaytaytaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOawOawOawOawOaCIaCJaCKaCLaCMaxpaxpaxpazTaCNaxpazoaCtaCOaCPazoazoazoazoaAJazoazoazoaCQaCRazTazoazoaCSawOaxGazraApawQawQaxxaxxaxxaxxaxxawQawQaxWazraxGawQaxWaxGaApaytaCAaCBaAsazaaAsaCCaCDaytaCEaCFaCEaCGaCHaytaCTaztaCUazaaCVaCDaCWaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOaxpaxpaxpaxpaxpaxpaxpaxpazTaCYaxpazoaCZaCZaCZazoazoazoazoaAJazoazoazoaCQaCRazTaDaaDbaDcawOaxGaxGaDdaDeaDeaDeaDeaDeaDeaDeaDeaDeaDfaxGaxGawQaxWaxGaApaytazaazaazaazaazaazaazaaytaCHaCEaCHaCEaCHaytazaazaazaazaazaazaazaaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahBahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahC +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOaxpaxpaxpaxpaxpaxpaxpaxpawOaDiaxpaxpaxpawDaxpaxpazoazoaDiaCwazoazoazoaCQaCRawOawOawOawOawOawQazqaDkaBlawQaxGaxGazraxGaxGawQawQawQawQawQawQaxWaxGaApaytazaazaazaaCXazaazaazaaytaDgaytaDgaytaDgaytazaazaazaazaazaazaazaaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOaDoaDoaDpaxraDqaDraDsazNawOaDtaDuayOawOawOawVawOayOaDuaDtazTaDwazoazoaCQaCRawOaDxaDyaDzaDxaDAaDBaDCaDDaDEaDFazqaDGaBlawQawQaafaafaafaafawQaDhaxGaDlaytaDmaDnaDSazaaEaaEbaEIaytaFiaytaIMaytaINaytaIPaJgaDnazaazuaKaaKsaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafawOawOawOawOawOawOawOawOawOawOawOawOawOawOawCaDjawFawOawOawOawOaDLazoazoaCQaCRawOaDxaDMaDMaDxaDAaDBaDCaDDaDEaDNaDOaDPaDQaDRaDEaafaafaafaafawQawQaKuawQaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaytaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahDahDahDaafaafahEahEahEaafaafahFahFahFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUawCiOHaDvxAzawFaDUaDUawOaDXazoazoaCQaCRawOaDxaDzaDzaDxaDAaDBaDCaDDaDEaDYaDCaDCaDCaDZaDEaafaafaafaafaafaVHaDCbbiaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahDahGahDaafaafahEahHahEaafaafahFahIahFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUawCiOHaDIaDJaDKxAzawFaDUawOawOaEfaEfawOawOawOaEgaDxaDxaDxaEhaDBaDCaDDaDEaEiaEjaEiaEkaEiaDEaafaafaafaafaafaVHaDCbbiaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahDahDahDahDahDahEahEahEahEahEahFahFahFahFahFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUawTaDVaDJaDJaDJaDWawTaDUazTazoazoazoazoazoaBcaDxaEnaDxaEnaDAaDBaDCaEoaEhaDCaDCaEpaDCaEqaDEaafaafaafaafaafaVHaDCbbiaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahJahKahLahMahNahDahDahDahDahDahEahEahEahEahEahFahFahFahFahFahJahKahLahMahNaafaafaafaafaafaafaafaafaafaafaafaafaDTaEraEraEraEraEraEraEraEraEraDTaDUaDUawTaEcaDJaEdaEeaDWawTaDUazTazoazoazoazoazoaEfaDxaEnaDxaEnaDAaDBaDCaEoaEhaDCaDCaEvaEwaExaDEaafaafaafaafaafaVHaDCbbiaafaafaafaEyaEzaEAaEBaECaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOahPahPahPahQfXhqwvahSahRfXhfXhqwvahTahRfXhfXhqwvahUahRfXhahVahPahPahPahOaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUaDUaDUaDUaDUaDUaDUaDTaDUaDUawTaDVaDJaElawTaEmawTaDUazTazoazoazoazoazoawOaDxaEnaDxaEnaDAaEFaEGaEHaDEaEiaDCaEJaEKaEiaDEaafaafaafaafaafaVHaDCbbiaafaafaEyaELaEMaENaEOaEPaECaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafaafaajaajaajaafaafaafaafaafaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOaihaiiaijaikailaimainailaioaipaiqairaisaitaiusAeaiwaixaiyaizaiAaiBaiCahOaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUaDUaDUaDUaDUaDUaDUaDTaDUaDUawTaDVaDJaEsawTaDJawTaDUaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDEaDEaERaDCaDCaESaDZaDEaDEaDEaDEaDEaDEaDEbbkaDEaafaEyaELaEUaEWaEXaFyaEYaEPaECaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaajaajaajaajaajaajaajaajaajaafaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOaiIaiIaiJaiKaiLaiLaiMaiLaiLaiLaiLaiMaiLaiLaiLaiLaiMaiLaiLaiNaiJaiIaiIahOaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUaEZaFaaFbaDUaDUaDUaDTaDUaDUtSllpglpglpgsTEaEtawTaDUaDUaDUaDUaFdaDUaFeatOaFgaFhaFhaFhaFhaFhaDTbblaEiaFjaDCaDCaFkaDZaEibbjbbmbblaEiaDCaDCaDCaEiaafaGvaFmaFmaFmaFnaFmaFmaFmaGvaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaiUaiAaiIaiVaiMaiMaiMinRaiMaiMaiMaiMaiMaiMaiMaiMaiMinRaiMaiMaiMaiVaiIaijaiWaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaEZaFpatLaFraFbaDUaDUaDTaDUaDUawTaEuaEDaEEaDJaEQawTaDUaDUaDUaDUaDTaDUaDUaDUaFwaFhaFhaFhaFhaFhaDTbblaEiaFjaDCaDCaDCaDZaEibbmbblbblaEiaDCaDCaDCaEiaafaHgaFmaFCaFzaFAaFBaFWaFmaHgaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafajVaafajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaiUfXhfXhfXhfXhfXhajfajgaiLaiMaiLajhajhaiLaiMajGajHfXhfXhfXhfXhfXhaiWaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFDaFEaFFaFGaFDaDUaDUaDTaDUaDUawTaFcaDJaDJaDJaEtawTaDUaDUaDUaDUaDTaDUaDUaDUaFgaFhaFhaFhaFhaFhaDTbbmaEiaFjaDCaDCaDCaFIaEibbjbbjbbmaEiaDCaDCaDCaEiaafaETaFJttIaFKaFKaFKyavaFJaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaafaafaafaafaafaafajVajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafajAajAahOajBaixaiMajCajjajEajFaiMbHaahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFLcCpaFNaFMaFOaDUaDUaDTaDUaDUaFscHKaFtaFtaFtcHKaFuaDUaDUaDUaDUaDTaDUaDUaDUaDTaDTaDTaDTaFSaFTaDTbbjaEiaFjaDCaDCaDCaFUaEiaEiaEiaEibbnbbkaEiaEiaEiaEisFXaFVaFXaFYaGtaGSaFXaFZaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaafaafaafaafaafaafajVaafaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafajAajAajAajAaiJajUaiLaiMajCajEajEajFaiMailahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFDaGaaGyaGcaFDaDUaDUaDTaDUaDUaDUaFsaFvaFHaFPaFuaDUaDUaDUaDUaDUaDTaDUaDUaDUaDTaGgaGhaGiaGjaGjaDEaEiaTeaGkaDCaDCaDCaDCaGlaDCaDCaGmaDCaDCaGnaGoaGpaGoaGFaGraFmaFmaFnaFmaFmaFmaGvaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaafaafaafaafaafaafakFajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafajAakeajAajAakfakgaiMaiMaiLakhakhaiLaiMaiLakiaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaGxaFQaGyaGzaGAaDUaDUaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDUaDUaDUaDTaGBaGCaGDaGjaGjaGEaDCaGlaDCaDCaDCaDCaDCaGlaDCaDCaDCaDCaDCaGnaGoaGpaGoaGqaFmaFmaFWaGsaHeaFmaGHaGGaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaafaafaafaafaafaafakQaafajWaajaajagPaeOaflaeOtRBaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafajAajAajAajAntKailakyaiMaiMaiMaiMaiMaiMakEahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaGxaGyaGyaGzaGMaDUaDUaGNaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDUaDTaGOaGPaGQaGjaGjaGEaDCaGlaDCaDCaDCaDCaGRaEiaEiaEiaDCaDCaDCaGnaEiaEiaEimgKavYaFmaFWaGGaHeaFmaFWaHgaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaQPdgOabgalbasTagFtRBaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafajAajAahQfXhfXhfXhajfakDaiLaiLaiMwGuahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFDaGUaGyaGVaFDaDUaDUaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaGWaGXaGXaGjaGjaDEaEiaTeaGYaDCaGZaDCaFIaEibblaHaaDCaHbaHcaHdaDEaafaafaGvaHsaFmaFWaHtaHeaFmaKeaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafqESallalmalnalmallaGfaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOakMakNakOakPaiMaiLaiLaiMaiLakiaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFLcCpaFNaFMaFOaDUaDUaDTaHiaHjoMXaHjaHkdzjafZafZafZafZaHlaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaHmaGjaDEbbmaEiaHnaDCaDCaDCaFUaEiaEiaEiaDCaGnaHoaHpaHqaafaafaGGaHeaFmaFmaJeaFmaFmaFWaGvaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafqESallalmalnalmallaGfaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafakiakVakVakVakWaiMakXakYakZakYahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaFDaHxaGyaHyaFDaDUaDUaDTaHRaHQaHAaHQaHAaHBaHCqcxahbaHFafZaHCoJyaIvaHFaGjaGjaGjaGjaGjaGjaGjaGjaDEbblaEiaHIaDCaDCaDCaDCaGlaDCaDCaDCaHJaDPaHKaDEaafaafaGGaHeaFmaFWaGsaHeaFmaFWaGGaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafqESallalmalnalmallaGfaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOaleakVakValfaiMalgalhaljalhahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaEZaFpaGyaGyaGyaFraFbaDUaDTaHAaHRaHQaHAaHQaHzaHCagiafPaHFafZaHCahstZQaHFaGjaGjaHWaHWaHWaHWaHWaHWaDEbbjaEiaHXaHYaDCaDCaDCaGlaDCaDCaDCaDCaDCaGnaDEaafaafaHgaHeaFmaFWaGGaHeaFmaHuaHgaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaQPtRBalnalnameagPdgOaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOalpakVakValqaiMakYaljaljaljahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaFDaIiaGyaGyaGyaIjaFDaDUaDTaHRaIkaHQaHQaHRaHzafZafZafZafZvefafZafZafZafZaGjaGjagkaImaImaImaImaImaDEaDEaDEaDEaInaIoaIoaDEaDEaDEaDEaFlaEhaEhaFlaDEaafaEyavCaIdaFmaFWaHtaHeaFmaIfaHvaECaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaGfalnalnalnaGfaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOalealMakValNaiMalOalPaljalQahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaFDaIwaGyaGyaGyaIxaFDaDUaDTaHQaHRaHAaHRaIyaHzaHCaeRaKwaHFafZaHCaJjahoaHFaGjaGjaIEaIFaIFaIFaIFaIFaDEaIGaIGaIGaIHaIIaIIaIJagOagOaDEaFoaDCaDCaHfaDEaEyaHLaHLaHNaFmaFmaFnaHMaFmaGuaHvaHLaECaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafqESqESqESqESafFeJramwaQPsaUaeOaeOaeOaeOtRBaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaiUambambfXhamcamdahRfXhambambaiWaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaFDaISaGyaGyaGyaIjaFDaDUaDTaITaHRaHAaIUaHQaHzaHCuEOfYoaHFafZaHCaNFaIYaHFaGjaGjahdaIFaIFaIFaIFaIFaDEaIZaJaaJaaJbaIIaIIaIIagOagOaDEaFoaDCaDCaIcaDEaETaIeaItaETaHeaFmaFWaILaIbqSmaELaHZaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafamUaOsaoJaoJaoJaeJavzaafaafqESaIVaboaMQaIVaIVaIVaTtaivamZanaanbancaODaaRafltRBaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaiUahVamkajFaiMamlaiLahQaiWaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaJlqLiaJnaJnaJnaJmaJoaDUaDTaJpaHRaHQaHQaHAacvafZafZafZafZafZaGjaGjaGjaGjaGjaGjahdaIFaJqaJraJsaJtaDEagfaJuaJupBpaIXaJwaIIaIIaJxaDEaFoaDCaDCaGnaDEsFXaJcaIsaIraHeaFmaFWaGvaHZaIqaJfaIpaFxaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafaafaafaafaafaafamUshBanransantanuanvfWQavzaafqESaIVafIafIaIVaIVaIVaIVanxanyanyanyanzaNNaQoaOVagFtRBaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOamtaiLajhaiLamuahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaJlaJIaJJaJKaJoaDUaDUaDTaHQaJLaJMaHAaJNaJOaJPaJQaJQaJQaJRaJRaJRaJSaJSaJTaJSaJSaJRaJRaJRaDEaDEaDEaJUaJVaJVaJvaJWaJXaJwqsaaJYaDEaFoaDCaDCaGnaGoaJyaIsaIOaMdaFmaFmaFWaHgaHZbbobbobbpaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafvCmanEanFanFanGanFanFanuvCmaafqESaOWaOTaaMbaUaIVaIVaIVaGbanyanyanyanLaGfanMeCOanOaGfaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahOamNamOamPamQamRahOaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUaDUaDUaDUaDUaDUaDUaDTaIzagoaHQaJNaKkaKlaKlaKlaKlaKlaJRaKmaKnaJSaKnaKnaKnaJSaKnaKmaJRaDEaDEaDEaDEaDEaDElAPaKpaKqaKrqsaaJYaDEaFoaDCaDCaGnaDEmgKaKbaJhmgKbbqaFmaKeaETaKMaJAaJCbbraETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaafaafvCmanXanFanFanFanFanYanZvCmaafqESaIVaOwaOwaIVaIVaIVajDaGfaocaekaodaoeaGfaofanKaohaGfaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaiUannanoanoanoanpaiWaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDUaDUaDUaDUaDUaDUaDUaDUaDUaDTaHQaHQaJNaKkaKlaKlaKlaKlaKlaKlaJRaKnaKBaKCaKnaKnaKnaKCaKDaKnaJRaKEaKFaKGaKHaKIaDEaIIaKoaKraKJaIIaIIaKKaEiaEiaEiaEiaDEaHvaFKaFKaHLaIaaJBttIavCaKOaJdaJzaPcaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmaonanFanFaooanFanFaopvCmaafqESadmaIVaIVaIVaIVaIVaaoiSSaeOaeOaeOaeOaNPaoranKaosaGfaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaDTaHRaJNaKkaKlaKlaKlaKlaKlaKlaKlaJRaJSaKnaJSaKnaKnaKnaJSaKnaJSaJRacJaIIaIIaIImYCaKXaIIaIIaIIaIIaIIaIKaKKbbjbblbbmbblaDEaETaKfbbbaKdaPfaKcbbcaETbbdaHZaJZaJZaFxaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafavDetaaoEagCanqanqanqcAbaFRaafqESqESqESqESdugahjahjahjaivaoHaoHdakageaGfaoKanKaoLaGfaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDEaJNaKkaKlaKlaKlaKlaKlaKlaKlaKlaJRaLfaKnaKnaKnaKnaKnaKnaKnaLgaJRaLhagfaLiagfaLjaDEnaXaIIaIIaIIaIIaLkaKKbbmbbmbbjbblaDEaETbbeaKcbbfaKcaKcaKtaETaNxaHZaHZbbhaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmaoPaRpaoRaoSaoTvCmaafaafaafaafaafaafqESaogaogaogaoUaoVaoVaoWaoWaGfaoKanKaoLaGfaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaMeaMeaMeaMeaMeaMeaafaDEaDEaDEaDEaDEaDEaDEaDEaDEaDEaDEaDEaJRaLpaLqaLqaLqaKnaLraLraLraLsaJRaLtagfaLuaLnaLvaDEaLwaLxaIIaLyaLzaLAaDEaDEaDEaDEaDEaDEaETaKQaKQaKPaKPaKcaKNaETaULaHZaKLbbtaETaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmapkaplaQwanFapmvCmaafaafaafaafaafaafqESaogaogaogaGbapnaGTagPaeOdgOafpbjoafpagFaeOaeOtRBaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMebbgbbsbbxbbybbzaMeaafaJRaKnaKnaKnaKnaKnaKnaKnaKnaKnaKnaKnaJRaJRaLEaJRaJRaKnaJRaJRaLEaJRaJRaJRaJRaJRaJRaJRaDEaDEaDEaDEaDEaDEaDEaDEaafaafaafaafaafaKYaKZaLaaLaaLaaILaFKavCaLaaLaaLaaILaLbaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafgEFalkapBaplaQwanFapCabEaPsaafaafaPpabCabCaGbaogaogaogagFabmaeOdgOapDaasaRzaIAlcaapGapGarcagFtRBaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMebbAbbsbbxbbybbBaMeaafaJRaKnaJRaJRaJRaJRaLHaJRaJRaJRacMacMacMacMacMacMaJRacMaJRacMacMacMacMacMacMacMacMaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKYaLlaLlaLlaLbaafaKYaLlaLlaLlaLbaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafamUanqanqaeFlnJapMaoQvUXanFapNoSCagsanqanqavzapOapOaivapPaogaogaSOaivapQapRaRzafraeaaogaGIaGJuMIlcaapSaGfaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMebbgbbsbbxbbybbzaMeaafaJRaKnaJRaLLaLMaLMaLMaLMaLNaJRaJRaJRaJRaJRaJRaJRaJRaLOaJRaJRaJRaJRaJRaJRaJRaJRacMaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaLlaLlaLlaafaafaafaLlaLlaLlaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmaqiaqjaqkvCmanFaqlanFaqmbCashBaqnaqoaqpaqqabcaqsabcaogaogaoggalaqtnyHaIgaJHaogaogaogaogaogaogabQaqvfomaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMebbCaMeaMeaMeaafaJRaKnaJRaLLaLMaLMaLMaLMaLNaJRaLRaLSaLTaLSaLUaLVaLVaLVaLVaLVaLUaLVaLUaLVaLWaJRacMaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafabnaLlaLlaafaafaafabnaLlaLlaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaIDaqCaqDaqCabEfIWaPCaOGagCqObaqFaqnaqGaqHaqqabcaqIabcaogaogaogkNcaGbaqJaqKafbaHEafHaogaOIaHEaHPaHSaqLaGfaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaMqaMqaMraMsaMtaMuaMvaMtaMwaMxaMyaMzaMAaMBaMCaMDaMEaMFaMGaMHaMIaMJaMKaMLaPXaPXaMeaafaafaJRaKnaJRaLXaLMaLMaLMaLMaLYaJRaLVaLZaLZaLZaLZaLZaLVaLVaLVaLZaLZaLZaLZaMaaMbaJRacMaJRaJRaJRaJRaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaajaajaajaafaafaafaafgndaeGaIDaqUaRxlnJaqVanFaqWgndanqaIDaqXaIDvCmaqYaqYakRqESqESqESaQPacaaeOtRBaqZaraafbaauaHSarbarbaNgagPdgOaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaMqaMWaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaMeaafaafaJRaKnaJRaLXaMfaMgaMgaLMaLMaMhaLVaLVaLVaMiaLVaLVaLVaLVaLVaLVaLVaMiaLVaMjaLVaJRacMacMacMacMacMacMacMaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafvCmarfanFanFargadSanFanFanFadSarhariarjarkvCmajWaafajWaafaafaafaafaajaajagFaeOtRBafparlafpagPaeOaeOdgOaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaNjaPXaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaNkaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaPXaNlaMeaafaJRaJRaKnaJRaJRaJRaJRaJRaJRaJRaJRaLVaLZaLZaLZaLZaLZaLVaLVaLVaLZaLZaLZaLZaMNaLVaJRaJRaJRaJRaJRaJRaJRacMaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafvCmarpanFanFanFarqanFanFanFarranFanFanFarsvCmabCabCabCakFaafaafaafaafaajaajaajaGfartaQrartaGfaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaNvaPXaMeaNwaNwbbDaNwaNwaNwbbDaNwaNwaNwaNwaNwbbDaNwaNwaNwaNwbbDaNwaNwaMeaPXaNyaMeaafaJRaLfaKnaJRaJRaMXaMXaMXaMXaMXaJRaMYaMYaMYaMYaMYaMYaMYaMYaMYaMYaMYaMYaMYaMZaMYaJRaNaaNaaNaaNaaNaaJRacMacMagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafvCmarDanFanFanFarEanFanFanFarFanFanFanFarGvCmaafaafaafaafaafaafaafaafaafaajaajaGfartaaZartaGfaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaNSaPXaMeaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaMeaPXaNyaMeaafaJRaLfaJRaJRaJRaNmaNmaNmaNmaNmaJRaNnaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNpaNnaJRaNmaNmaNmaNmaNmaJRaJRaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafamUnDranqanqanqanqetaanFanFanFbCaanqanqanqanqnDravzaafaafaafaafaafajVaafajWaajaajaGfartaaZartaGfaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaOcaPXaMeaOdaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaOeaMeaPXaOfaMeaafaJRaLfaJRaNzkIYaNTaNTaNTaNTaNTaxXaNDaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNpaNEcgVaNUaNUaNUaNUaNUrAKaNGaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafvCmashasiasjaskaslvCmasmanFasnvCmasoaspaspasqasrvCmaafaafaafaafaafajVajWaajaajaajaGfartaQZartaGfaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaOnaPXaMeaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaMeaPXaPXaMeaafaJRaLfaJRaNzaNAaNTaNTaNTaNTaNTcMmaNDaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNoaNpaNEaNCaNUaNUaNUaNUaNUagAaNGaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaajaafaafaafaafaafaQvasiasiasiasiasiadSanFanFanFadSasRanFanFanFasSaQJaafaafaafaafaafakQaafaajaajaajagFtRBaKhagPdgOaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaOxaPXaNkaNwaNwaNwaNwaNwaNwaNwaNwaNwaOyaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNkaPXaOzaMeaafaJRaLfaJRaNzkIYaNTaNTaOgaNTaNTcMmaNDaNoaNoaNoaNoaNoaOhaOiaOhaNoaNoaNoaNoaNpaNEaNCaNUaNUaOjaNUaNUagAaNGaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafhSxatlatmasiasiasiatnanFanFanFatoanFanFanFatpatqaTraafaafaafaafaafajVajWajWaajaajaajagFaeOdgOaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaOKaPXaMeaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaMeaPXaOzaMeaafaJRaLfaJRaNzkIYaNTaNTaNTaNTaNTcMmaNDaNoaNoaNoaNoaNoaOoaOpaOoaNoaNoaNoaNoaNpaNEaNCaNUaNUaNUaNUaNUagAaNGaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaSPasiasiasiasiasiatGanFanFanFatHanFanFanFanFatIaahaafaafaafaafaafajVaafaafajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaOZaPXaMeaOdaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaOeaMeaPXaOzaMeaafaJRaLfaJRaNzkIYaNTaNTaNTaNTaNTcMmaNDaNoaNoaNoaNoaNoaOAaOBaOCaNoaNoaNoaNoaNpaNEaNCaNUaNUaNUaNUaNUagAaNGaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmatTasiasiasiatUbCaaIDaRoaIDetaatWatXatYanFatZvCmaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaPgaPXaMeaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaNwaMeaPXaPhaMeaafaJRaLfaJRacMkIYaNTaNTaNTaNTaNTcMmaNDaNoaNoaNoaNoaNoaNoaOLaNoaNoaNoaNoaNoaNpaNEaNCaNUaNUaNUaNUaNUagAacMaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmaurausautauuauvvCmauwanFauxvCmauybCaanqauzanqqObaafaafaafaafaafaafaafajVaafajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaPtaPXaMeaNwaNwaPuaNwaNwaNwaPuaNwaNwaNwaNwaNwaPuaNwaNwaNwaNwaPuaNwaNwaMeaPXaPvaMeaafaJRaLfaJRaPaaJRaPbaPbaPbaPbaPbaJRaNnaNoaNoaNoaNoaNoaNoaOLaNoaNoaNoaNoaNoaNpaNnaJRaPbaPbaPbaPbaPbaJRaPaaJRagRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmauOasiauPbCaanqqObanFauQauRgndanqqObauSavpauTvCmaafaafaafaafaafaafaafajVajWajWaajaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaPDaPXaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaNkaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaPXaPEaMeaafaJRaLpaPiacMaJRaPjaPjaPjaPjaPjaJRaMYaMYaMYaMYaMYaMYaPkaPlaPkaMYaMYaMYaMYaMZaMYaJRaPmaPmaPmaPmaPmaJRacMaPntyraJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafvCmavlavmavnvCmaafgndavoavoavoqObaafvCmavqanFbbuvCmaafaafaafaafaafaafaafajVaafajWaafaajaajaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaPMaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaPXaMeaafaJRaJRaJRacMaJRaJRaJRaJRaJRaJRaJRaPwaPxaPxaPxaPxaPxaPyaPzaPwaPxaPxaPxaPxaPAaPwaJRaJRaJRaJRaJRaJRaJRacMaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafgndavoavoavoqObaafavDavAavAavAaFRaafgndavoavoavoqObaafaafaafaafaafaafaafajVajWajWajWajWajWaajaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaPUaPVaMsaPWaMuaMvaMtaMwaMxaMyaMzaMAaMBaMCaMDaMEaMFebdaPYaPZaPXaMKaMLaMraPVaPXaMeaafaafaafaJRacMacMacMacMacMacMacMaJRaPwaPwaPwaPwaPwaPwaPwaPFaPGaPwaPwaPwaPwaPHaPwaJRacMacMacMacMacMacMacMaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafavDavAavAavAaFRaafaafavAavAavAaafaafavDavAavAavAaFRaafaafaafaafaafaafaafajVaafajWaafajWaafaafaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaMeaafaafaafaJRaJRaJRaJRaJRaJRaJRacMaLHaPwaPwaPwaPOaPOaPOaPwaPwaPwaPOaPOaPOaPOaPOaPwaLHacMaJRaJRaJRaJRaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaafaafaafavAavAavAaafaafaafaliavAavAaafaafaafavAavAavAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaJRaJRaJRaQaaQaaQaaQbaQcaQdaQeaPwaQfaQgaQhaQiaQjaQkaQlaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaliavAavAaafaafaafaafaafaafaafaafaafaliavAavAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaJRaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaaj +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaaj +agLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaaj +aagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaAAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaaj +aagahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahXaibaibahXaicaidaieaifaigahXahWahWahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaaj +aagahWahWahWahWahWahWahWahWahWahWahWahWahWahXahXahXahXahXahXahWahWahWahWahWahWahWahWahWahXaiDaiDahXaiFaiGaiGaiGaiHahXahWahWahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaaj +aagahWahWahWahWahWahWahWahWahWahWahWahWahWahXaiOahXaiPaiQahXahWahWahWahXahXahXahXahXahXahXaiDaiDahXaiRaiGaiSaiGaiTahXahWahWahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaj +aagahWahWahWahWahWahXahXahXahXahXahXahXahXahXaiXahXaiPaiXahXahXahXahXahXaiYaiZajaajbajcahXaiDaiDahXajdaiGaiGaiGajeahXahWahWahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aagahWahWahWahWahWahXajmajnahXajoajpajqajrahXajsahXahXajuahXajvajwaiDahXajxaiDaiDaiDajyahXaiDaiDahXahXahXajzahXahXahXahXahXahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aagahWahWahWahWahWahXajIajIajJajIajIajIajIajKaiXajLajLaiXahXajMaiDaiDahXajNaiDaiDaiDajOahXaiDaiDajPajQajRaiGaiGajPajSajTahXahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aagahWahWahWahWahWahXajIajIahXajXajIajIajIahXahXahXahXahXahXajYaiDaiDahXajNaiDaiDaiDajZahXaiDaiDajPakaakbaiGakcakdaiGaiGahXahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aagahWahWahWahWahWahXakjakkahXaklakmaknajIakoahXakpakqakrahXaksaiDaiDaktaiDaiDaiDaiDakuahXaiDaiDajPaiGakvaiGaiGajPakwakxahXahWahWahWahWahWaagagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aagahWahWahWahWahWahXahXahXahXahXahXahXakzahXahXakqakAakpahXajvaiDaiDahXaiGaiDaiDakBakCahXaiDaiDajPaiGaiGaiGaiGahXahXahXahXahWahWahWahWahWaagagLaafaafaafagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafahCaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aagahWahWahWahWahWahXakGakHakGakHakGakIaiGakJahXajPajPajPahXahXahXahXahXahXakKakKahXahXahXaiDaiDakLaiGaiGaiGaiGajPakwakxahXahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaDHahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCaAAahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahC +aagahWahWahWahWahWahXaiDakSaiDakSaiDakSaiDaiGakTaiGaiGaiGaiGaiGaiGaiGaiGaiGaiDaiDaiDajwaiDaiDaiDakLaiGaiGaiGakcakUaiGaiGahXahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aagahWahWahWahWahWahXaiDakSaiDakSaiDakSaiDaiGakTaiGaiGaiGaiGaiGaiGaiGaiGaiGaiDaiDaiDaiDaiDaiDaiDahXaldaldaiGaiGajPajSajTahXahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aagahWahWahWahWahWahXakGakHakGakHakGakHaiDaloahXahXajPajPajPahXahXahXajPajPajPajPajPahXahXaiDaiDahXahXahXahXahXahXahXahXahXahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaafaafaafaafaRFaRFaRFaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf +aagahWahWahWakqakpahXahXahXahXahXahXahXalsahXahXaltalualvalwalxahXalyalzalAalBalCalDalDahXaiDaiDahXalEalFalGalHalIalJalKalLahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaSeaSeaSeaSeaSeaRGaSeaSeaRGaSeaRGaSeaSeaRGaSeaRFaafaafaafaafaRHaafaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKiaeIaPIaPIaggaPIaPIaequgyanIaSfanIadgaafaafaafaafaafagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaaf +aagahWahWakAakpakpahXalSalTalUalValWalXaiDalYajPalZaiGaiGaiDaiDajPaiDaiDaiGaiGaiGaiGamaajPaiDaiDahXaiDaiDaiDaiDaiDaiDaiDaiDahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaRFaSeaRIaRJaRKaSeaRLaRMaRLaRMaRPaRMaRLaRMaRLaSeaRFaRFaRFaafaafaRFaRFaRHaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafacUvbMfPQfjRfjRagnfjRaguaaUagGaKvagGacUaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWakpakpakpakpajPaiDaiDaiDaiDaiDaiDaiDamfajPamgaiGaiGaiDaiDajPaiDaiDamhamiaiGaiGamjajPaiDaiDahXaiDaiGaiGaiGaiGaiGaiGaiDahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaSeaSeaRIaRRaRTaSeaRMaSeaSeaRUaSeaRUaSeaSeaRMaSeaRWaRWaSeaRHaafaafaRFaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafacUthCadWadWadWadWadWadWagJaKvaKvaKvacUaafaafaafaafaafagLaafafiaTcaTcaTcaTcaTcaTcaTcaTcaTcacZaTcaTcaTcaTcaTcacZaTcaTcaTcaTcaTcacZacZaTcaTcacZiDQadwaTcaTcaTcacZaTcaTcaTcacZaTcaTcqTxaafagLaaf +aagahWakqakpakrakpajPaiDammamnamoampaiDaiDamqajPamraiGaiGaiDaiDajPaiDaiDaiGaiGaiGaiGamsajPaiDaiDahXaiDaiDaiDaiDaiDaiDaiDaiDahXahXahXahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRWaRZaSaaSbaScaSeaRUaSeaSdaSkaSmaSoaSpaSeaRUaSeaSqaSraSeaRFaRFaRFaRHaRFaRFaSeaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKiaSfaSfaSfaSjoXYadWafzafzafzadWagpaawaIBaawaIBacUaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaajaQqaMSaNXacSaNXxKnaQqalraNXabIaNXaaEaQqjyGaqBafjaQqamWaGKaepbaRaTdaTdaOmcBdaaDaQqaajaajadbaafagLaaf +aagahWahWakpakpakqajPaiDammamxamyampaiDaiDamzahXamAamBaiGaiDaiDahXaiDaiDaiGamCamDamEamFahXaiDaiDahXaiDaiDamGamHamIamJamKamLahXamMamMahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaRWaSsaStaUuaSuaSeaToaSvaSwaToaSxaSvaSAaToaToaStaSBaSvaSeaRGaSeaRGaRGaSeaRGaSeaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafacUbOSadVadVadVaNBadWqCbahgahgadyagUacUfdAacUagracUaafaafaafaafaafagLaafadbaajaHHaHHaHHaHHaHHaHHaHHaHHaQqaMSaNXaRjaNXxKnaQqaQUaNXaPTaNXaefacNaPQaNXaNXacNaRmbaRadIbaRaoaaTdaTdaTdaTdaQqaajaajadbaafagLaaf +aagahWakpandakpakqajPaiDammaneanfampaiDaiDangahXajPajPanhanianiahXanjanjankanlanlanlanlahXaiDaiDahXanmanmahXahXahXahXahXahXahXaiDaiDahXahXaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaRWaSCaSDaSEaSGaSHaSIaSJaSKaUdaSLaSMaSRaSSaSSaSMaSTaSvaSeaRLaSUaRLaSVaSWaSXaSeaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafacUkKBkInkInkInkoTadWahgaIRuntadyagUaeTaSfaIuaSfacPaafaafaafaafaafagLaafadbaajaHHagbvVlaHHbaVaIhaHHaHHacNaMSaNXaOtaNXxKnacNaeVaNXjHhaNXbaYaNOaNXadDaNXjjfbaRbaRbaRbaRaTjqgeamYbtLaRnaQqaajaajadbaafagLaaf +aagahWakqakpakpakAajPaiDaiDaiDaiDaiDaiDaiDaiDanAaiDaiDaiDaiDaiDanBaiDaiDaiDaiDaiDaiDaiDajwaiDaiDaiDaiDaiDaiDaiDajwaiDaiDanCaiDaiDaiDaiDanDaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaRWaSYaSZaTaaTbaSeaRUaRGaRUaSeaTlaSeaRUaRGaRGaSeaTmaTnaSeaSXaRLaRMaRLaSXaRLaSeaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafafaaSfaSfaSfadgafhadWagZagZagZadWagpaaUagHadWagHaeTaSfaSfadgaafaafagLaafadbaHHaHHaOUaOUaOUaOUaOUaOUaOUjNcaNXaNXaNXaNXaNXjNcaNXaPQaNXaNXaNXjNcaNXaNXaNXjjfbaRkpxkpxbaRamWaSgamWaSgamWaQqaajaajadbaafagLaaf +aagahWanPakpakqakpahXanQamBanRanSanTanUaiDaiDanAaiDaiDanVaiDaiDaiDaiDaiDaiDaiDaiDaiDaiDaiDaiDaiDanWaiDaiDaiDaiDaiDaiDaiDanCaiDaiDaiDaiDanDaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaSeaSeaRWaRWaSeaSeaRHaRFaafaRGaTxaRGaRFaRFaafaSeaUuaTyaSeaTzaTBaTzaTzaTBaTzaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafacUthCadWadWadWadWadWagUadGadWadWaTpacUcOZadcacUaafaafagLaafadbaHHaPLaOUaOUaareLUaOUaOUaOUtiwaNXaNXaNXaNXaNXtiwaNXaNXaNXaNXaNXtiwaNXaNXaLetiwaQAaQHkpxbaRbaRbaRbaRbaRadtaQqaajaajadbaafagLaaf +aagahWahWahWakAakpahXahXahXahXahXajPajPaoiajPahXajPajPahXaojaojahXaokaokaolajPajPajPahXahXahXahXahXaomaomahXaiDaiDahXahXahXahXahXahXahXahXaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRFaRFaafaRFaafaafaafaafaSeaTCaSeaRFaafaafaSeaTEaToaSeaTFaTHaTIaTJaTKaTLaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafablaKgaKgadeaKgaKgadeaKgaKgadeaKgaKgagSaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafacUgqKwtMdCoadWadWadWxsiaawagHadWagHaeTaSfaSfaSjaafaafagLaafadbaHHadsaOUaOUatVacQaOUaOUaHHabGaapaapaapaapaapadMaapaapaapaapaapabUaNXanHaNXabGaHOxGyaduaQNaHOaapaapaapaapabZaajaajadbaafagLaaf +aagahWahWahWahWakpahWahWahWahWahXaiGaiGaiDaiGajPaotaouaovaiDaiDahXaiDaiDaiGaowaoxaoyaozaoAaoBamCahXaoCaoCahXaiDaiDahXahWahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTNaTOcKPaTRcKPaTTaTNaafaRWaTUaUdaTVaTWaTXaTYaTYaVjaUaaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafafBaaHaaIafBaaHaaJafBaaHaaKafBaaHaaIafBaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaaUbaSaPIaawacraawaPIbaSafaaSfaSfaSfaSjaafaafaafaafaafagLaafadbaHHaHHaTqaOUaOUaOUaOUaOUaHHaHHaHHaHHaHHaHHaHHaHHaHHaHHaHHaHHaHHaQqahYahYahYaHHaQqbaTafnaTsaQqaajaajaajaajaajaajaajadbaafagLaaf +aagahWahWahWahWahWahWahWahWahWahXaiGaoMaiDaiDajPaiGaiGaiGaiDaiDajPaiDaiDaiGaiGaiGaiGaiGaiGaiGamCajPaoNaoNahXaoOaoOahXahXahXahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTNaUbaREaUeaUfaUgaRCdCxaTNaRWaUhaUjaUkaUlaVfaUmaVfaUnaUoaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafafBaaYaaKafBaaYaaIafBaaYaaIafBaaYaaIafBaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafaafaafacUaKyacUaafaafaafaafaKAaafaafaafaafaafaafaafagLaafadbaajaHHaPKaOUaOUaOUaOUaOUaOUaGdaGdaGdaGdaHHaHHaHHaHHaHHaHHaHHaHHaQqahYahYahYaHHaQqbaKafnaTsaQqaajaajaajaajaajaajaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWahWahXaoXaoYaoZaiDapaaiGaiGaiGaiDaiDajPaiDaiDapbapcapcapcapcaiGaiGapdajPapeapfahXapgaiDaphapiapjahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUbvdZxpfaUpaUqaUpjpYvdZdCxaRWaUuaSvaSeaUsaUtaUvaUwaUyaUzaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaNZaKgaKgaNdaKgaKgaNdaKgaKgaNdaKgaKguogaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafaafaafacUagtacUaafaafaafaafaKAaafaafaafaafaafaafaafagLaafadbaajaHHaHHaHHaKxaKxaKxaHHaHHaHHaHHaHHaGdaGdaGdaHHaHHaHHaHHaHHaHHaQqaewahYadAaHHabGaapaapaapabZaajaajaajaajaajaajaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWahWahXappapqaiDaiDahXaprapsaptapuapvajPaiDaiDapwapxapxapxapxaiGaiGapdajPapeapyapzaiDaiDaiDaiDapAahXahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaWzaREaUEaUFaUGaUHaUIaRCaWBaSeaUuaSxaSeaSeaSeaSeaSeaSeaSeaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafafBaaHaaIafBaaHaaIafBabBaaIafBaaHaaKafBaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafaafaafaaUaiaaaUaafaafaafaafaKAaafaafaafaafaafaafaafagLaafadbaajaajaajaHHaHHaHHaHHaHHaajaajaajaHHaHHaHHaGdaGdaGdaGdaHHaHHaHHaQqahYahYahYaHHaajaajaajaajaajaajaajaajaajaajaajaafaafaafagLaaf +aagahWahWahXahXahXahXahXahWahWahXapHaiGapIapJahXahXajPajPajPajPahXaiDaiDaiGaiGaiGaiGaiGaiGaiGapKajPapeapyapzaiDaiDaiDaiDapLahXahXahXahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRCaUKbbEaRYaUMaUIaUcaafaSeaUNaToaSeaVwaUOaUWlnYaUPaUQaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafafBaaYaaKafBaaYaaIafBaaYaaIafBaaYaaIafBaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafqqxlkzafoaKUhxgaKUafolkzifKaafaKAaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaajaajaajaajaajaHHaHHaHHaHHaGdaHHaHHaHHaQqaJiahYahYaHHaajaajaajaajaajaajaajaajaajaajaajaafaafaafagLaaf +aagahWahWahXapTapUapVahXahWahWahXahXahXahXahXahXahWakqakqakqakqahXapWalzapXapYapZaqaaqbaqcaqdaqeahXapeapyapzaiDaiDaiDaiDaqfahXaqgaqhahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaURaRXaRYaUSaUKaREaafaSeaUTaTyaSeaVwaUYaUZaVkaVaaVbaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaKSaKgaKgaquaKgaKgaquaKgaKgaquaKgaKgaOJaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafagvaHUagvaLoaHVwRYagvaHUagvaafaKAaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaajaajaajaajaajacBaapaapaeWjNcaQNaapaHOadMaeWjNcaQNaapaHOaapaapaapaapaapaapaROaajaajaafaafaafaafagLaaf +aagahWahWahXaqwaqxaqyahXahWahWahWahWahWahWahWahWahWakqakpakrakqahXahXajPajPajPajPahXahXahXahXahXahXapeapyapzaiDaiDaiDaiDaiDaqzaiDaqAahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaURaRXaVcaUMaVdaUcaafaSeaUuaToaSeaVwaVeaVgaTYaVjaVbaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafagqadYadaeyMaexagmiSsiZjagTaafaKAaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaajaajaajaajaajaQqaNXaNXaNXaNXaNXaNXaQqkzTkzTkzTbbvkzTaQqaNXaNXaNXahYahYahYaQqaajaafaafaafaafaafagLaaf +aagahWahWahXahXahXahXahXahWahWahWahWahWahWahWahWahWakqakqakqakqakqakqakqakqakqakpakqakqapeapeapeapeapeaqMahXaqNaqOaqPaqQaqRahXaiGaqSahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRCaUKbbEaVcaUMaVdaUcaafaRWaUuaToaSeaSeaVlaUVaVmaVnaSeaSeaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafnsGkJSaKUoedaKUhlIagIaafaafaKAaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaajaajaafaafaajaQqmlUaNXaNXaNXaNXaNXacNkzTaQIkzTkzTkzTacNaPQaNXaNXaewahYaGeaQqaajaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWahWahWahWakqakqahWahWakqakqakpakqakpakqakqakpakqakqakrakqakqapeapeapeapeapeapeahXahXahXahXahXahXahXahXahXahXahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaVoaRXaVcaUSaUKaREaafaRWaVpaVqaSeaSeaSeaVraSeaSeaSeaSeaVtaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaNYabLabLabLadzabLabLadBaafaafaafaafaafaafaafaagaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaagaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafacLafUdUVrFYafXaghacLaafaafaKAaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaajaajaafaafaajaQqaNXaNXaNXaNXaNXaNXjNckzTkzTwGrkzTkzTjNcaNXaNXaNXahYahYadAaQqaajaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWahWakqakqakqakpakqakqakqakpakqakqakqakqandakqakpakqakqakqakqapeapeakqakqakqakpakqakqakrakpakpakqakpakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaVuaVoaRXaRYaUMaVvxWHaafaRWaUuaVyaSeaVzaVAaVBaVCaVDaVFaVOaVPaVtaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafabqabRabRabRacDabRabRabqaafaafaafaafaafaafaafaagaajaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafafWafUtLbafXafXaghafWaafaafaKAaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaajaajajVaafaafaQqaNXaNXtiwaddaddaddtiwkzTacwaTgaaNkzTtiwaddaddaddtiwaLmahYaQqaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWakpahWahWakqaruarvarvarvarvarvarvarvarvarvarvarvarvarvarvarvarvarvapeapearvarvarvarvarvarvarvarwakqakrakpahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafewxaVoaSFaRYaVQaVvaUraafaSeaVRaTyaSeaVSaVTaUuaToaToaTGaTDaVtaVtaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafabqabRaNrabRaceabRabRabqaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaaWaaWaaXaaXaaXaaWaaWaaXaaXaaXaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafagqsgpcmbafXagjagdagTaafaafaKAaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaajajWajVaafaafacNaNXaNXacNaafaafaafabGaeWaNMaNMaNMaQNabZaafaafaafacNadAahYacNaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWakpakpakqakqakqarHarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarJarJarIarIarIarIarIarIarIarKakqakqahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaRCaTQaVUaVVaVWaTSaREaafaSeaVXaSvaTnaSvaVYaUuaVZaWaaWbaTDaVtaVtaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafabqacmacmacmaeAabRabRabqaafaafaafaafaafaafaafaagaajaaGabjaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWabkaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaKAaKAaafaafagveMjafXygcagvaafaafaKAaKAaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaafaafaafaafaafaLBaLCaLCaLDaafaafaafaafaafaafaafaafaafaafaafaafaafaLBaLCaLCaLDaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWakpakpakpakqakqarHarIarQarIarIarIarRvBmaucaucvBmarTarIarIarIarIarRarSarSarSarSarTarIarIarIarQarIarKakqakpahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaWcaRVaWdaWeaWfaUcaafaSeaWgaSvaWhaSvaWiaVEaToaWjaWkaTDaVtaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafacyacyacyacyadkadJabLabLabLafvabRabRabqaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWabAaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafagvcmbafXagjagvaafaafaKAaafaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaajaafaafaafaafaLBaLFaLGaLDaafaafaafaafaafaafaafaafaafaafaafaafaafaLBaLFaLGaLDaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWakpahWakqakqarHarIarIarIarIarIaVKaugasxasxauFaVKarIarIarIarIaVKassastasuasvaVKarIarIarIarIarIarKakqakqahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaWcaRVaRVaRVaWlaUcaafaSeaWmaWnaSeaSeaWoaWpaToaWqaVzaTDaVtaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafacyacyacyacyaceabRaceabRabRabRabRabRabqaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWabjaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafagvhuBudLtfEagvaafaafaKAaafaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaafaafaafaafaafaLBaLIaLGaLDaafaafaafaafaafaafaafaafaafaafaafaafaafaLBaLFaLGaLDaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWakqakqakqarHarIarIarIarIarIaVKaRAasYasYasZaVKarIarIarIarIaVKasUasVasVasWaVKarIarIarIarIarIarKakqakqahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcxovaRVaRVaRVaWraUcaafaRWaWsaWtaWuaWvaWwaTDaWxaWyaTDaTDaTDaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafacyacyacyacyadkabLabLadBabRabRabRacXabqaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaccabAaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafagqsgpjSRagdagTaafaafaKAaafaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaajaajaajaafaafaafaafaaflHBaLCaLCrOPaafaafaafaObaafaafaafaafaafaOFaafaafaaflHBaLCaLCrOPaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWakpakqakqarHarIarIarIarIarIaVKaRAasYaVLatuaVKarIarIarIarIaVKatratsatsattaVKarIarIarIarIarIarKakqahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaWzaRvaTQaWAaTSaRvaWBaafaRWaUuaWCaWuaWDaWEaWFaWFaWFaWFaWGaTDaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafabqacmabRabRacXabqaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaaWaclaclaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaKAaafaafagqahlagTaafaafaKAaKAaafaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaafaafaafaafaafaafaafaafaObaMkaOHaOFaafaafaafaMkaMnaMnaMnaMnaMnaMkaafaafaafaObaOXaMkaOFaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWakrakpakqarHarIarIarIarIarIaVKaEVatMatNaFqaVKarIarIarIarIaVKatJatsrDnatKaVKarIarIarIarIarIarKakqahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaRcaRdaafaRbaRcaRdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUcaWHaSnaWIaUcaafaafaRWaWJaWCaWuaWvaWKaTDaTDaTDaTDaWLaTDaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafabqacmabRabRacXabqaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaclactacuaclaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaafaafaafaafaafaafaafaKAaafaafaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaafaafaafaafaafaafaafaafaMkaTMaNWaMkaafaafaObaMkaMkaPJaQOalRaMkaMkaOFaafaafaMkbaHbaIaMkaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWakqakpakqarHarIarIarIarIarIeaevBmaUAaUAvBmiTMarIarIarIarIeaeauaaubauaauaiTMarIarIarIarIarIarKakpakpahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaVuaRSaRSaRSxWHaafaafaSeaWMaWNaSeaSeaWOaUjaWPaWQaWRaWLaTDaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaPPabLabLabLabLafvaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaclacFacGaclaaWaaWaccaaWacHaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaKAaafaafaafaafaafaKAaKAaafaafaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaafaafaafaafaafaafaafaafaMkaNbbaJaMkaafaafaMkaMkaRlaiEamTaOQafJaMkaMkaafaafaMkbaMaNiaMkaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWakqauAakqarHarIarIarIarIarIarSauDauEaUJauGaVKarIarIarIarIaVKauBatsatsauCarSarIarIarIarIarIarKakqakqahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafkNwaWSaWTaSzaVxaafaafaSeaWUaWVaWWaWXaWYaToaToaToaWZaXaaTDaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaaWaaWaaWaclaclaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaKAaKAaKAaKAaKAaKAaKAaafaafaafaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaafaafaafaafaafaafaafaafaMkbaNaMkaMkaMkaMkaMkeMoaQsaQsaQsaaLaQsacgaMkaMkaMkaMkaMkbaPaMkaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWakqakqarHarIarIarIarIarIarSauWauXauXauYaVKarIarIarIarIaVKauUatsatsauVarSarIarIarIarIarIarKakqakqakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTTewxaRQaSlaSyaUraTOaafaXbaXcaSvaWhaSvaToaToaSxaToaXdaXeaTDaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWabAaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWabjaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafadbaajaajaajaajaajaafaafaafaafaafaafaafaafaMkbaQaNIaNJaNKaOuaMkaxDaQsaQsaQsaQsaQsaczaMkaoqadFaaqaSQaeKaMkaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWakqakqarHarIarIarIarIarIarSavtauXauXauYeaevBmvBmvBmvBmiTMaVMatsatsaVNarSarIarIarIarIarIarKakqakpakqakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaWzaRuaXfbXChkKaRuaWBaafaSeaXcaXgaSeaSeaXhaToaToaToaXiaXjaTDaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaagaajaaGaaWaaWaccabAaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWabAaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafadbaajaajaafaafaafaafaafaafaafaafaafaafaafaMkaNVaNWbaHaNWaaBaMkabSabSabSpoBabSabSabSaMkaMRxpTaanacnagWaMkaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWahWakqarHarIarIarIarIarIaVKavKavLauXavMaVKavGavHavIavJaVKavEatsatsavFaVKarIarIarIarIarIarKakqakqakpakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaafaafaRFaXkaSeaSeaSeaSeaSeaSeaSeaSeaSeaSeaXlaXmaToaXnaTDaXoaToaXpaXqaToaXraTDaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaezaezaezaezaezaezaezaezaezaezaezaezaezaezaezaezaezaezadHadHaafaafaagaajaaGaaWaaWaaWaaWaaWaaWaaWadQaaWadQaaWadQaaWadRaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafadbaajaajaafaafaafaafaafaafaafaafaafaafaafaOkaNVaNWaNWaNWxpTaeYaNsaNsaNsaNsaNsaNsaNsaeYxpTrczxpTxpTagWaOkaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWahWakqarHarIarIarIarIarIavZvBmmuRawaauaarUawbawcawcawdeegauaawemuRvBmawfarIarIarIarIarIarKakqakpakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaafaafaafaafaafaafaXsaRFaRFaXtaUBaXuaXvaXwaTDaXxaSvaToaXyaToaSvaXcaToaUiaTDaXzaSvacIaXAaRHaXBaTDaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafadHaafaafaagaajaaGaaWaaWaaWaeiaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaWaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafadbaajaajaajaafaafaafaafaafaafaafaafaafaafaOkaOqbaHaOraMkaMkaMkafEaNsaOvaOvaOvaNsjKxaMkaMkaMkxpTxpTagWaOkaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWakqakqarHarIarIarIarIarIarIarIaVKauXauXauXauXauXauXauXauXauXauXaVKarIarIarIarIarIarIarIarKakqakpahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaReaRdaafaRbaReaRdaafaafaafaRFaRFaRFaafaRFaRFaSeaXtaXtaXtaXCaXDaXEaXFaXGaXHaXIaXJaSKaXLaXMaXNaToaUxaTDaXOaSvaXPaXQaRHaXRaTDaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafabracfacfacfacfacfacfabaacfacfacfabaacfanwacfacfaThaafadHaafaafaagaajaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafadbaajaajaajaafaafaafaafaafaafaafaafaafaafaOkaOqaNWaNWaMkacAaOSaNsaNsafGabhaKVaNsaNsaNsafkaMkamVxpTgSjaOkaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWakqakqarHarIarRvBmvBmvBmarTarIaVKawyauXauXauXauXauXauXavLauXawzaVKarIarRvBmvBmvBmarTarIarKakqakqahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTkaafaafaafaTkaXtaXtaXtaXtaSeaSeaSeaSeaSeaSeaSeaXSaXTaXUaXVaXWaXXaXYaTDaTDaTDaTDaTDaTDaTDaXZaYaaYbaTDaYcaToaYdaYeaYfaYgaTDaRFaRFaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLaORafAacTaeNaaxaNtaqraQxaQxaQxaqraQyaQzaobaQzbaLaafadHaafaafaagaajaePaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQaePaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaafaafaafaafagLaafadbaajaajaajaafaafaafaafaafaafaafaafaafaObaMkaOMaONaONaMkaeLaNsaNsaNsaOOabhbaOaNsaNsaNsugeaMkaRyaeDroJaMkaOFaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWakqakqarHarIaVKawGawHawIaVKarIeaeaweauamuRvBmawJawJvBmmuRauaawKiTMarIaVKawLawMawNaVKarIarKakpakqakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTuaTvaTvaTvaTwaXtaYhaToaYiaYjaYkaYlaYmaTDaToaToaYnaYoaYpaYqaYraYsaYtaYuaTDaYvaYwaYxaYyaYzaYAaToaYBaTDaTDaTDaTDaTDaTDaTDaSeaXtaXtaSeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLadZadZadZadZadZadZaQBaQCaQDaQCaQEaQzaQzaQzaQFbaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaafaafaafaafaajaajaafaafaafbaXaMkaPdaPdaMkaMkajiaNsaPraNsaNeaNeaNeaNsaPraNsqwnaMkaMkaPdaPdaMkbaZaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWakqakpakqarHarIaVKawWatsawXeaevBmarUauXawYaVKawZaxaaxaaxbaVKaxcaxdeegvBmarUaxeaxfaxdaVKarIarKakqakqakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTPaYCaYDaYEaYFaYGaYHaYHaYIaYJaYKaYLaYMaYNaYOaYPaYQaYRaYSaYTaYUaTDaYVaVhaYWaTDaTDaYXaYYaYYaYZaYZaYZaZaaZbaZcaZdaZeaZfaZgaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLkiykiyadZadZadZaPBbwbaQCaQCabpabracfacfacfacfaSiaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaafaafaafaafaajaajaafaafaafaafbaXaPoaPobaZaMkaMkpoBaMkaNsaNsaNsaNsaNsaMkpoBaMkaMkbaXaPoaPobaZaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWakqakrakqarHarIeaeauaaxHauaiTMauXauXauXawYaVKaxIaxaaxaaxbaVKaxJaxdaxKaxLaxMaxdaxdaxNaVKarIarKakqakqakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaUCaTvaTvaTvaUDaXtaToaToaZhaZiaZjaZkaZlaZmaToaToaZnaZoaZpaZqaZraZsaZtaZuaTDaTDaTDaZvaTDaTDaZwaZxaXMaXJaZyaUdaZAaZBaZCaZDaZEaZEaZFaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLadZadZadZadZadZadrbaLaQKaQKaQLaqramvafcabbaOabaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaairrUaKRkEfpmrafVaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaafaafaafaafaajaajaafaafaafaafaafaafaafaafaMkabiaQsaMkaNsaNsaNsaNsaNsaMkaQsanNaMkaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWakqakqakqarHarIaVKaxYaxZaxZayaauXaybavLaycaVKaxaaxaaxaaydaVKaxdayeayfaxdaxdaxdaxdaygaVKarIarKakqauAakpahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTkaafaafaafaTkaXtaXtaXtaXtaTDaTDaTDaTDaTDaTDaTDaTDaZGaZHaZIaZJaZKaZLaZuaTDaZMaZNaZOaTDaTDaZPaTDaZQaZRaZPaTDaTDaZSaZTaZDaZUaZEaZVaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLaTiaTiadZadZadZaShbaLaQKaQKaQKaQSaQKaQKaQKaQTbaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaivDlafTahcdztadTaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaMkbaWamXaMkagVagVaeXagVagVaMkaQsaQtaMkaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWakqakrakparHarIaVKaxYaxZayweaevBmvBmvBmvBmiTMayxayxaxaaxaeaevBmvBmvBmvBmurTayyaxdayzaVKarIarKakqakqakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaafaTAaTAaTAaTAaTAaTAaTAaTDaTDaZWaZXaZYaZZbaaaTDaTDaTDaTDaZvaTDbabbacaTDbadaTDbaebafaTDaZDaZTaZDaZDaZDbahaSeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLadZadZadZadZadZafLbaLaQVaQWaQXbwbliZaoDsalaeCbaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiagzahcaJFahcagzaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaMkaMkigfaMkbbaacOacOacOaQmaMkaQGaMkaMkaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWahWakpazhakqakqakqakqakqarHarIarSasXaxZaziaVKarIarIarIarIaVKazjazjazjazjaVKarIarIarIarIaVKazkaxdazlarSarIarKakqakpakqahWahWakpahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTDaTDaTDaTDaTDaTDaTDaTDaVsaZNbaiaTDbajbakbalaTobambanbaoaTDbapaZTaZDbaraZDbasaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLadZadZadZadZadZaPBaaCacfacfacfaeZacfacfacfacfaOEaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaIWagxahcagxaIWaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafbaXaMkaMkaMkabyaQMadCaRiaQpaMkaMkaMkbaZaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWazAakpakpakqakpakqakpakqarHarIaVKazBaxZazCaVKarIarIarIarIavZazDazDazDazDawfarIarIarIarIaVKazEazFazGaVKarIarKakqakqakqakqakqakpahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTDaTDaTDaTDaTAaTAaTDaTDaTDaTDaTDbatbauaTDbavaTDbawbaxaTDbaybazbaAbaAbaAbaBaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLadZaaSaRkaQndvIadZaoIabzaNLaoIaSNaRqaRraRraRqbaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaIWahcahcahcaIWaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaajaajaafaafaafaafaajaajaafaafaafaafaafaafaafaafbaXaMkaPdaPdaPdaPdaPdaMkbaZaafaafaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWahWahWakqakpakqauAakpakqarHarIaVKazjazjazjaVKarIarIarIarIarIarIarIarIarIarIarIarIarIarIaVKazjazjazjaVKarIarKakqakqakqakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTDaTDaTDaTDaTDaTDaTDaTDaTDaZDbaCbaDbaEbaFbaGaXtaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLadZaaSaRahuRdvIadZalaalaalaalaaSNaRBaRBaRBaRBbaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiagYahcahcahcagYaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaajaajaafaafaafaafaajaajaajaafaafaafaafaafaafaafaafbaXaPoaoFaoFaoFaPobaZaafaafaafaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWakqakqakqarHarIavZazDazDazDawfarIarIarIarIarIarIarIarIarIarIarIarIarIarIavZazDazDazDawfarIarKakqakqahWakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaSeaSeaSeaSeaSeaSeaSeaSeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLadZaaSacdmIBdvIadZalaalaalaalaalaalaalaalaalabaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiacxahktxPnUYacxaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaajaajaafaafaafaafaajaajaajaafaafaafaafaafaafaafaafaafaafaenaenaenaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWakqakqakparHarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarIarKakqakrakqakqahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLadZaaSahhapEdvIadZalaalaalaalaalaalaaRNabTaambaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiafSahmahmahmmxgaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaecaenaenaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWakqakqaBpaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaBrakqakpakqahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaUXaRdaafaRbaUXaRdaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLkpYkpYkpYkpYkpYkpYacYacYacYacYacYacYacYacYacYbaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaipjuahpahqahrgBBaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaafaafaafaafaafaafaafaafaafaafaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWahWakqakqakqakqakqakqakqakqakqakqakpakqakqakqakrakqakqakqakqakqakqakqakqakqakqakqakqakqakqakqahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaRbaVGaRdaafaRbaVGaRdaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNaSNbaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaafaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWahWahWahWakqakqakqakrakqakqakpakqakqakqakqahWahWakqakqakqahWahWahWakqakqakqakqakqahWahWakqahWahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaTAaTAaTAaTAaTAaTAaTAaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLvjnaQYaPSaSNagwaPRaqEaSNaeyapFaeMaSNaOlbAcafmbaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaafaafaafaafagLaafadbaajaajaajaafaafaafaafaafaafaafaajaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWahWahWahWahWahWahWakqakqahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaTAaTAaTAaTAaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafbaLaalaLcapoaSNabMaLdabHaSNavBanJaciaSNadKaTfaPqbaLaafadHaafaafaagaajaffafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgafgaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafagLaafalcaajaafaafaafaafaafaafaafaafaafaafaajaajaajaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaaf +aagahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWahWaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaTAaTAaTAaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaezaafaaCacfacfacfaGLacfacfacfaGLacfacfacfaGLacfacfacfaOPaafadHaafaafaagaajaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaaf +aagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagagLaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaTAaTAaTAaTAaTAaTAaTAaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafadHaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafadHaafaafaagaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaajaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLaaf +agLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaafaafaafagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLagLaafaafadHadHadHadHadHadHadHadHadHadHadHadHadHadHadHadHadHadHadHadHadHaafaafaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafagLagLahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCahCagLagLagLaaf +aafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaf "} diff --git a/maps/eclipse/eclipse-6.dmm b/maps/eclipse/eclipse-6.dmm index dc6ad62b12c..aef38ca3279 100644 --- a/maps/eclipse/eclipse-6.dmm +++ b/maps/eclipse/eclipse-6.dmm @@ -1561,35 +1561,35 @@ "Ei" = (/obj/effect/decal/remains,/obj/item/pickaxe/jackhammer,/turf/simulated/floor/misc/cult,/area/mine/explored) "Ej" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/cobweb2{icon_state = "cobweb1"},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Ek" = (/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/plating,/area/outpost/abandonedpost) -"El" = (/obj/machinery/media/jukebox,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"Em" = (/obj/structure/table/woodentable,/obj/machinery/light/small{dir = 1},/obj/item/storage/box/donkpockets,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"En" = (/obj/structure/table/woodentable,/obj/machinery/microwave,/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) +"El" = (/obj/machinery/media/jukebox,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"Em" = (/obj/structure/table/woodentable,/obj/machinery/light/small{dir = 1},/obj/item/storage/box/donkpockets,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken5"},/area/outpost/abandonedpost) +"En" = (/obj/structure/table/woodentable,/obj/machinery/microwave,/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken3"},/area/outpost/abandonedpost) "Eo" = (/obj/structure/catwalk,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Ep" = (/obj/structure/catwalk,/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Eq" = (/obj/structure/catwalk,/obj/machinery/door/airlock{name = "Storage"},/turf/simulated/floor/plating,/area/outpost/abandonedpost) -"Er" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) +"Er" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) "Es" = (/obj/item/device/flashlight,/obj/item/device/radio,/turf/simulated/floor/misc/cult,/area/mine/explored) "Et" = (/obj/structure/table/rack,/obj/item/storage/firstaid/regular,/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Eu" = (/obj/structure/table/rack,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/obj/item/device/synthesized_instrument/guitar,/turf/simulated/floor/plating,/area/outpost/abandonedpost) -"Ev" = (/obj/structure/bed/chair,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/ash,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"Ew" = (/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) +"Ev" = (/obj/structure/bed/chair,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/ash,/turf/simulated/floor/trim/wood{icon_state = "wood_broken2"},/area/outpost/abandonedpost) +"Ew" = (/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) "Ex" = (/obj/machinery/door/airlock{name = "Toilet"},/obj/effect/floor_decal/oldflood,/turf/simulated/floor/tiled/freezer,/area/outpost/abandonedpost) "Ey" = (/obj/structure/sink{dir = 1; pixel_y = 16},/obj/effect/floor_decal/oldflood,/obj/effect/decal/cleanable/vomit,/obj/structure/mirror{pixel_y = -30},/turf/simulated/floor/tiled/freezer,/area/outpost/abandonedpost) "Ez" = (/obj/machinery/light/small{dir = 4},/obj/structure/toilet{dir = 8},/obj/random/soap,/obj/effect/floor_decal/oldflood,/obj/effect/decal/cleanable/cobweb{dir = 8},/turf/simulated/floor/tiled/freezer,/area/outpost/abandonedpost) -"EA" = (/obj/structure/table/woodentable,/obj/random/snack,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"EB" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"EC" = (/obj/effect/decal/cleanable/blood,/obj/item/remains/human,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"ED" = (/obj/machinery/light/small{dir = 8},/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"EE" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"EF" = (/obj/machinery/light_switch{pixel_x = 25},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) +"EA" = (/obj/structure/table/woodentable,/obj/random/snack,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/turf/simulated/floor/trim/wood{icon_state = "wood_broken3"},/area/outpost/abandonedpost) +"EB" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/trim/wood{icon_state = "wood_broken4"},/area/outpost/abandonedpost) +"EC" = (/obj/effect/decal/cleanable/blood,/obj/item/remains/human,/turf/simulated/floor/trim/wood{icon_state = "wood_broken5"},/area/outpost/abandonedpost) +"ED" = (/obj/machinery/light/small{dir = 8},/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"EE" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"EF" = (/obj/machinery/light_switch{pixel_x = 25},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken6"},/area/outpost/abandonedpost) "EG" = (/obj/structure/table/woodentable,/obj/random/toy,/turf/simulated/floor/trim/carpet,/area/outpost/abandonedpost) "EH" = (/obj/item/bedsheet/brown,/obj/structure/bed,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/trim/carpet,/area/outpost/abandonedpost) "EI" = (/obj/structure/bookcase,/turf/simulated/floor/misc/cult,/area/mine/explored) "EJ" = (/obj/item/stack/flag/red,/turf/simulated/floor/misc/cult,/area/mine/explored) -"EK" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/random/pottedplant,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"EL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"EM" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"EN" = (/obj/machinery/door/airlock{name = "Bedroom"},/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) +"EK" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/random/pottedplant,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken1"},/area/outpost/abandonedpost) +"EL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"EM" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/trim/wood{icon_state = "wood_broken0"},/area/outpost/abandonedpost) +"EN" = (/obj/machinery/door/airlock{name = "Bedroom"},/turf/simulated/floor/trim/carpet,/area/outpost/abandonedpost) "EO" = (/obj/effect/decal/cleanable/generic,/turf/simulated/floor/trim/carpet,/area/outpost/abandonedpost) "EP" = (/obj/machinery/light/small{dir = 4},/obj/random/plushie,/turf/simulated/floor/trim/carpet,/area/outpost/abandonedpost) "EQ" = (/obj/effect/decal/remains,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/misc/cult,/area/mine/explored) @@ -1602,12 +1602,12 @@ "EX" = (/obj/structure/catwalk,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "EY" = (/obj/structure/catwalk,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "EZ" = (/obj/structure/catwalk,/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/decal/cleanable/cobweb2{icon_state = "cobweb1"},/turf/simulated/floor/plating,/area/outpost/abandonedpost) -"Fa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/catwalk,/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/plating,/area/outpost/abandonedpost) +"Fa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/catwalk,/obj/machinery/atmospherics/pipe/manifold4w/visible,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fb" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway) "Fc" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/outpost/research/power) "Fd" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{dir = 10},/obj/machinery/light{dir = 4},/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/turf/simulated/floor/tiled,/area/outpost/engineering/atmospherics) "Fe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Infirmary"; req_access = list(48)},/turf/simulated/floor/tiled/white,/area/outpost/mining_main/dorms) -"Ff" = (/obj/structure/catwalk,/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/outpost/abandonedpost) +"Ff" = (/obj/structure/catwalk,/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fg" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/misc/cult,/area/mine/explored) "Fh" = (/obj/structure/catwalk,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fi" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/plating,/area/outpost/abandonedpost) @@ -1615,15 +1615,15 @@ "Fk" = (/obj/structure/catwalk,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fl" = (/obj/structure/catwalk,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access = list(48)},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fm" = (/obj/structure/catwalk,/obj/machinery/atmospherics/pipe/simple/visible{dir = 6},/turf/simulated/floor/plating,/area/outpost/abandonedpost) -"Fn" = (/obj/structure/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/plating,/area/outpost/abandonedpost) -"Fo" = (/obj/structure/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/outpost/abandonedpost) -"Fp" = (/obj/machinery/power/smes/batteryrack,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/catwalk,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/outpost/abandonedpost) +"Fn" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/outpost/abandonedpost) +"Fo" = (/obj/structure/catwalk,/obj/machinery/power/smes/batteryrack,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/outpost/abandonedpost) +"Fp" = (/obj/machinery/light/small{dir = 4},/obj/machinery/power/terminal{dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fq" = (/obj/effect/decal/remains,/obj/item/device/analyzer,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/misc/cult,/area/mine/explored) "Fr" = (/obj/structure/catwalk,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fs" = (/obj/structure/catwalk,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Ft" = (/obj/structure/catwalk,/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1327; master_tag = "abandoned_outpost_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = -25; req_access = newlist()},/obj/machinery/light/small{dir = 8},/obj/machinery/light_switch{pixel_x = -25},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fu" = (/obj/structure/catwalk,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/port_gen/pacman,/obj/item/stack/material/plasma/ten,/turf/simulated/floor/plating,/area/outpost/abandonedpost) -"Fv" = (/obj/machinery/power/terminal{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/outpost/abandonedpost) +"Fv" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fw" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fx" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fy" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/outpost/abandonedpost) @@ -1723,7 +1723,7 @@ "Kp" = (/obj/structure/table/steel,/obj/random/medical,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/black,/area/outpost/prydwen) "Ks" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 8},/area/outpost/abandoned) "Kx" = (/obj/structure/largecrate/hoverpod,/turf/simulated/floor/shuttle/yellow,/area/outpost/abandoned) -"Ky" = (/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area/space) +"Ky" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken1"},/area/outpost/abandonedpost) "KB" = (/obj/effect/decal/remains,/obj/item/clothing/under/gorka,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/asteroid,/area/mine/explored) "KD" = (/obj/machinery/light/small/red{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_syndie) "KE" = (/obj/effect/decal/remains,/obj/item/clothing/under/gorka,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/asteroid,/area/mine/unexplored) @@ -1817,6 +1817,7 @@ "Qc" = (/obj/structure/flora/pottedplant{icon_state = "plant-21"},/turf/simulated/floor/trim/wood,/area/outpost/engineering/meeting) "Qd" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/warning/dust{dir = 5},/turf/simulated/floor/tiled/airless,/area/mine/explored) "Qg" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; id_tag = "engine_access_hatch"; locked = 1; req_access = list(11)},/turf/simulated/floor/shuttle/black,/area/outpost/prydwen) +"Qh" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken0"},/area/outpost/abandonedpost) "Qi" = (/obj/effect/floor_decal/corner/yellow{dir = 10},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/cable,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_syndie) "Qr" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 9},/turf/simulated/floor/plating/airless,/area/mine/explored) "QH" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "11"; dir = 4},/turf/simulated/floor/plating/airless,/area/outpost/abandoned) @@ -2020,7 +2021,7 @@ pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFTVPlPlPldxgudypFpFpFababahahahababababababababababababpFpFpFpFpFababababpFabababababababababababababadabababpFpFpFpwpFpFpwpFpFpFpFpFdzdzdzdzdzdAdBdCdDdEdFdGcodIdJdKdLdMaHdNdOdPbLdQdRaHdSdTdodpdpdpdpdpbhacacabababacacadacacacacabababababababababababababababacaeadgZgZgZgZgZgZgZadaeacababababababababababababababababpFpFpFpFababpFpFpFpFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFdUcygudyabababababahahahababababababababababababpFpFpFpFpFababababababababababababababababababadadadadpFpFpwpwpFpFpwpFpFpFdzdzdzdzdzdzdzakdVdWdXdYdYdZeadYdXebecedHbefegeheiejekIbemendoeoepeqeresbhacacacacacacadadacadadacababababacacacacacacacacacacacacadadgZgZgZgZgZgZgZadaeacababababababababababababababpFpFpFpFpFabababpFpFpFpFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFahahababababababababababahahahahababpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFJypFpFpFpFpFeteuczgudyababababababahababababababababababababababpFpFpFpFabababababababababababababababababababababadpwpwpwpFpFpFpwpFpFpFdzdzdzevdzdzdzakdVewexdTeydTezdTeAeBeCeDaHeEeFeGeHeIeJaHeKeLbhbhbhbhbhbhbhadadadadadadadadadadadacacacacabacadaeaeadadadadadadadadadadadgZgZgZgZgZadadaeacababababababababababababababpFpFpFpFpFabababpFpFpFpFpFpFpFpFpFpFpFpFpF -pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFahahabababababababababababababahabababababababpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFeNeOePdyhGeQdydydydyababababababababababababababababababpFpFpFpFpFababababababababababababababababababababadpFpFpFpFpFpFKypwpwpFdzdzdzdzdzdzdzakeReweSeTeUeTeVeTeWaseXeYeZJbeZeZeZaHHbaHfbfcalfdfefffgfhadadadadadadadadadadadadadadadacacacadaeaeadadadadadadadadadadadgZgZgZgZgZadadaeacababababababababababababababpFabpFpFpFpFababpFpFpFpFpFpFpFpFpFpFpFpFpF +pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFahahabababababababababababababahabababababababpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFeNeOePdyhGeQdydydydyababababababababababababababababababpFpFpFpFpFababababababababababababababababababababadpFpFpFpFpFpFpwpwpwpFdzdzdzdzdzdzdzakeReweSeTeUeTeVeTeWaseXeYeZJbeZeZeZaHHbaHfbfcalfdfefffgfhadadadadadadadadadadadadadadadacacacadaeaeadadadadadadadadadadadgZgZgZgZgZadadaeacababababababababababababababpFabpFpFpFpFababpFpFpFpFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababababababababahahabababababababababababpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFfjfkflfmisjxbkczfldylolpdyabababababababababababababababababababpFpFpFpFabababababababababababababababababababababababababpFpFpFpFpwpFpFpFdzdzdzdzdzdAfpfqfrfsfrftfrfuftasfvfwfxfyfzfAfBalfCfDfEdTalfFfGfHfIfJfNfNfNfNfNfNfNfNfNfNfNfNfNfNfNfNfNotadaeaeadadadadadadadadadadadgZgZgZgZgZadadaeacabababababababababababababababababababababababpFpFpFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFahabababababababababababababababababahahabababababababababababpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFfOgrfkczczczgufQflBIIqflfldyababababababababababababababababababababpFpFpFababababababababababababababababababababababababadadpFpFpFadfRfSfSfSfTfSfSfSfUKbLbfXfXfXfYasasasasfZdTgagbgcgdgealgfggghcGalgjgkglgmgngogpgpgpadadadadadadadadadaeaeaeaeaeaeaeaeadadadadadadadadadadgZgZgZgZgZgZgZadaeacababababababababababababababababababababababababpFpFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFahahababababababababababababababababababahahababababababababababababpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFgqfOgrfOflflczgsgudyczgtdyflBJdyababababababababababababababababababababpFpFpFpFababababababababababababababababababababababababadpFpFadadfSgvgwgxgygzgwfScJgBgCgDgEgFfYgGgHgHasgIdTgJgKgLgMcLgOgPgQeXgRalalgSalalaldTgTgUgVgVgVgVgWgVgVgVgVaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadgZgZgZgZgZgZgZadaeacababababababababababababababababababababababababpFpFpFpFpFpFpFpFpFpFpF @@ -2185,14 +2186,14 @@ pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababababababababababababababab pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababababababababababababababababababababababababababpFpFpFabababababadadabadadadadDRadadadadabababadabababababababababababababpFpFpFpFababababpFpFpFababababababababababadadadadabababadadadacababababababababababababababababababababababadabadabadababadabababadababababababababababababababadadadadababadadadadadadadababababadadadadababababababababababababababababababababadadadadadababababababababababababababababababababababababababababababababababpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFababababababababababababababababababababababababababababababababababababpFpFpFabababababadadabababadadadDSadadadDTadadadadadadabababababababababpFpFpFpFabababababpFpFpFababababababababadadadababadadabadadadadabababababababababababababababababababababababadabadadadadadadabababadabababababababababababababadadadadadabadadadadadadadadadababababadadadabababababababababababababababababababababadabadadadabababababababababababababEgEgEgEgEgEgEgEgabababababababababababpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababababababababababababababababababababababababababababpFpFpFahababababadabababDUadadDTDVDTadadDVadLWababadadababababababababababpFpFpFpFababpFpFpFpFahabababababababababadabababadadadadadabababababababababababababababababababababadadadadadadadabababadababadabadadadadadadabababababababadadadadadadadadadadadadadadadadadadabadadadadababababababababababababababababababababababababadadadababababababababababababEgEjEkEgElEmEnEgababababababababababaapFpFpFpFpFpFpFpFpF -pFpFpFpFpFpFpFpFpFpFpFpFpFababababababababababababababababababababababababababababababababababababpFpFpFpFpFahababababababDWadadadDTadDTadadabababababadababababababahababpFpFpFpFpFpFpFpFpFpFpFadadadadabababababababadadabadadadababababababababababababababababababababababababababadadababadababababababadabababababadabababababababadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababababababababababababababababadababababababababababababEgEoEpEqErErErEgEgEgEgabababababababaaaapFpFpFpFpFpFpFpF +pFpFpFpFpFpFpFpFpFpFpFpFpFababababababababababababababababababababababababababababababababababababpFpFpFpFpFahababababababDWadadadDTadDTadadabababababadababababababahababpFpFpFpFpFpFpFpFpFpFpFadadadadabababababababadadabadadadababababababababababababababababababababababababababadadababadababababababadabababababadabababababababadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababababababababababababababababadababababababababababababEgEoEpEqErQhKyEgEgEgEgabababababababaaaapFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababababababababababababababababababababababahahpFpFpFpFpFpFahababababababDXadabDYDYDZDYDYabababababadadabababababahpFabpFpFpFpFpFpFpFpFpFpFpFpFadadadadadadabababadadadadadadadababababababababababababababababababababababadadadababadadababadabababababadadabababadabadabababababababadadadadadadadadadadadadababadadadadadadadadadadababababababababababababababababababadadadababadadadadadadabadadadadadadadacacEgEtEuEgEvErEwExEyEzEgababababababaaaapFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababababababababababababababababababababahpFpFpFpFpFpFpFpFababababababababababDYEaEaEeDYababababadadadabababababahpFpFpFpFpFpFpFpFpFpFpFpFpFahahababadadadadabadadadadadabababababababababababababababababababababababababababadababababababadadadadadadadababadadadadadababababababababadadadadadadadadadadadadababadadadabadadadadadabababababababababababababababababadadadadadadadadadadadadadadadadadadadadadacEgEgEgEgEAEBECEgEgEgEgababababababaapFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababababababababababababababababababahpFpFpFpFpFpFpFpFpFababababababababababDYEaEfEaDYababababadabababababababahpFpFpFababpFpFpFababpFpFabababababababadadadadadadabababababababababababababababababababababababababababababadababababababadababababadabababadadadababababababababababadadadadadadadadadadadadababadadababadadadadababababababababababababababababababadadadadadadadadadadadadadadadadadadadadadacacacacEgEDEEEFEgEGEHEgababababaaaapFpFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFababababababababababababababababababababababababahpFpFpFpFpFpFpFpFabababababababababababDYEhacEiacababababadadabababababababpFpFabababpFpFababababababababababababababadadadadabababababababababababababababababababababababababababababadadababababadadababababadabababababadababababababababababadadadadadadadadadadadadabababababadadadadadababababababababababababababababababadadadadadadadadadadadadadadadadadadadadadadadacacEgEKELEMENEOEPEgabababababaapFpFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababababababababababababababahpFpFpFpFpFpFpFpFabababababababababababDYEaacacacababababababababababpFpFpFpFabababpFpFpFabababababababababababababababadadabababababababababababababababababababababababababababababababadababababadabababababadadadadadadadabababababababababababadadadadadadadababadadadabababadadadadabababababababababababababababababababababadadadadadadadadadadadadadadadadadESETEUadadacacEgEgEVEgEgEgEgEgabababababaapFpFpFpFpFpFpFpFpFpFpF -pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFababababababababababababababababababababababababpFpFpFpFpFpFababababababababababababDYEaEsacacabababababababababpFpFpFpFpFababababpFpFpFababababababababababababababadadabababababababababababababababababababababababababababababababadababadabadabababababadabababababadabababababababababababadadadadadadadadababadadadababadadadadabababababababababababababababababababababababadadadadadadadadadadadadadadEXEpEpEpEYadadacEgEZFaFfEgEgababababababababpFpFpFpFpFpFpFpFpFpFpF -pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababpFabpFpFpFpFabababababababpFpFpFpFpFpFabababpFababababDYDYDYDYDYDYDZDYDYDYDYDYDYabababababpFpFpFpFpFabababababpFpFababababababababababababababadadabababababababababababababababababababababababababababababababadadadadadadababababababababadadadadadabababababababababababadadadadadadadadadadadadadadadababababababababababababababababababababababababababababadadadadadadadadadadadadFhFiFjFiEpFkFkFkFlFmFnFoFpEgababababababababaapFpFpFpFpFpFpFpFpFpF +pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFababababababababababababababababababababababababpFpFpFpFpFpFababababababababababababDYEaEsacacabababababababababpFpFpFpFpFababababpFpFpFababababababababababababababadadabababababababababababababababababababababababababababababababadababadabadabababababadabababababadabababababababababababadadadadadadadadababadadadababadadadadabababababababababababababababababababababababadadadadadadadadadadadadadadEXEpEpEpEYadadacEgEZFaFfFoEgababababababababpFpFpFpFpFpFpFpFpFpFpF +pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababpFabpFpFpFpFabababababababpFpFpFpFpFpFabababpFababababDYDYDYDYDYDYDZDYDYDYDYDYDYabababababpFpFpFpFpFabababababpFpFababababababababababababababadadabababababababababababababababababababababababababababababababadadadadadadababababababababadadadadadabababababababababababadadadadadadadadadadadadadadadababababababababababababababababababababababababababababadadadadadadadadadadadadFhFiFjFiEpFkFkFkFlFmFnEpFpEgababababababababaapFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFababababababababababababpFpFpFpFpFpFpFpFpFababpFpFpFpFpFpFpFpFpFabpFpFpFabababDYEIEIEIEIEJEaEaEIEIEIEIDYababababpFpFpFpFpFpFabababababpFpFpFabababababababababababababadadababababababababababababadadadabababababababababababababababababababadababababababababababadabababababababababababababababababababadadadadadadadadadadadabababababababababababababababababababababababababababababadadadadadadadadadadadFrEpEpEpFsadadacEgFtEpFuFvEgababababababababaapFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFababababDYEaEQEaFAEaEaEaEaEaEREaDYababababpFpFpFpFpFpFpFabababpFpFpFababababababababababababababadadadababababababababadadadadadadabababababababababababababababababababadabababababababadadadadadabababababababababababababababababababababababababababababababababababababababababababababababababababababababadadabadadadadadadadadadadadadFwFxFyadadadacEgFzEgEgEgEgabababababababababpFpFpFpFpFpFpFpFpFpF pFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababababababababpFpFpFababpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFpFabababababDYEaWNEaEaEaEaEaFAEaEaEaDYabababababpFpFpFpFpFpFpFpFpFpFpFabababababababababababababababadadadadadababababadadadadadadadadabababababababababababababababababababadababadadabababababababadababababababababababababababababababababababababababababababababababababababababababababababababababababababadadadadadadadadadadadadadadadadadadadadadFBEgEgFCFDEgababababababababababababaapFpFpFpFpFpFpFpF diff --git a/maps/eclipse/eclipse_areas.dm b/maps/eclipse/eclipse_areas.dm index d2aadda2523..d3e7d821ec4 100644 --- a/maps/eclipse/eclipse_areas.dm +++ b/maps/eclipse/eclipse_areas.dm @@ -127,73 +127,6 @@ name = "\improper Swimming Pool" icon_state = "fitness" -/area/eclipse/civilian/dormitory/holodeck - name = "\improper Holodeck" - icon_state = "Holodeck" - dynamic_lighting = 0 - sound_env = LARGE_ENCLOSED - -/area/eclipse/civilian/dormitory/holodeck/alphadeck - name = "\improper Holodeck Alpha" - -/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt - name = "\improper Holodeck - Boxing Court" - sound_env = ARENA - -/area/eclipse/civilian/dormitory/holodeck/source_desert - name = "\improper Holodeck - Desert" - sound_env = PLAIN - -/area/eclipse/civilian/dormitory/holodeck/source_picnicarea - name = "\improper Holodeck - Picnic Area" - sound_env = PLAIN - -/area/eclipse/civilian/dormitory/holodeck/source_wildlife - name = "\improper Holodeck - Wildlife Simulation" - -/area/eclipse/civilian/dormitory/holodeck/source_courtroom - name = "\improper Holodeck - Courtroom" - sound_env = AUDITORIUM - -/area/eclipse/civilian/dormitory/holodeck/source_basketball - name = "\improper Holodeck - Basketball Court" - sound_env = ARENA - -/area/eclipse/civilian/dormitory/holodeck/source_plating - name = "\improper Holodeck - Off" - -/area/eclipse/civilian/dormitory/holodeck/source_emptycourt - name = "\improper Holodeck - Empty Court" - sound_env = ARENA - -/area/eclipse/civilian/dormitory/holodeck/source_theatre - name = "\improper Holodeck - Theatre" - sound_env = CONCERT_HALL - -/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt - name = "\improper Holodeck - Thunderdome Court" - sound_env = ARENA - -/area/eclipse/civilian/dormitory/holodeck/source_beach - name = "\improper Holodeck - Beach" - sound_env = PLAIN - -/area/eclipse/civilian/dormitory/holodeck/source_snowfield - name = "\improper Holodeck - Snow Field" - sound_env = FOREST - -/area/eclipse/civilian/dormitory/holodeck/source_meetinghall - name = "\improper Holodeck - Meeting Hall" - sound_env = AUDITORIUM - -/area/eclipse/civilian/dormitory/holodeck/source_space - name = "\improper Holodeck - Space" - has_gravity = 0 - sound_env = SPACE - -/area/eclipse/civilian/dormitory/holodeck/source_chess - name = "\improper Holodeck - Chess Field" - // Cargo diff --git a/maps/eclipse/eclipse_holodecks.dm b/maps/eclipse/eclipse_holodecks.dm deleted file mode 100644 index 1923615a39b..00000000000 --- a/maps/eclipse/eclipse_holodecks.dm +++ /dev/null @@ -1,68 +0,0 @@ - -/datum/map/eclipse - - holodeck_programs = list( - "emptycourt" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_emptycourt, list('sound/music/THUNDERDOME.ogg')), - "boxingcourt" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_boxingcourt, list('sound/music/THUNDERDOME.ogg')), - "basketball" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_basketball, list('sound/music/THUNDERDOME.ogg')), - "thunderdomecourt" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_thunderdomecourt, list('sound/music/THUNDERDOME.ogg')), - "beach" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_beach), - "desert" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_desert, - list( - 'sound/effects/wind/wind_2_1.ogg', - 'sound/effects/wind/wind_2_2.ogg', - 'sound/effects/wind/wind_3_1.ogg', - 'sound/effects/wind/wind_4_1.ogg', - 'sound/effects/wind/wind_4_2.ogg', - 'sound/effects/wind/wind_5_1.ogg' - ) - ), - "snowfield" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_snowfield, - list( - 'sound/effects/wind/wind_2_1.ogg', - 'sound/effects/wind/wind_2_2.ogg', - 'sound/effects/wind/wind_3_1.ogg', - 'sound/effects/wind/wind_4_1.ogg', - 'sound/effects/wind/wind_4_2.ogg', - 'sound/effects/wind/wind_5_1.ogg' - ) - ), - "space" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_space, - list(SFX_AMBIENT_SPACE) - ), - "picnicarea" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_picnicarea, list('sound/music/classic/title2.ogg')), - "theatre" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_theatre), - "meetinghall" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_meetinghall), - "courtroom" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_courtroom, list('sound/music/classic/traitor.ogg')), - "wildlifecarp" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_wildlife, list()), - "chess" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_chess, list()), - "turnoff" = new /datum/holodeck_program(/area/eclipse/civilian/dormitory/holodeck/source_plating, list()) - ) - - holodeck_supported_programs = list( - - "EclipseMainPrograms" = list( - "Empty Court" = "emptycourt", - "Basketball Court" = "basketball", - "Thunderdome Court" = "thunderdomecourt", - "Boxing Ring" = "boxingcourt", - "Beach" = "beach", - "Desert" = "desert", - "Space" = "space", - "Picnic Area" = "picnicarea", - "Snow Field" = "snowfield", - "Theatre" = "theatre", - "Meeting Hall" = "meetinghall", - "Courtroom" = "courtroom", - "Chess Field" = "chess" - ) - - ) - - holodeck_restricted_programs = list( - - "EclipseMainPrograms" = list( - "Wildlife Simulation" = "wildlifecarp" - ) - - ) diff --git a/maps/entrepot/entrepot-1.dmm b/maps/entrepot/entrepot-1.dmm new file mode 100644 index 00000000000..de8405d9c17 --- /dev/null +++ b/maps/entrepot/entrepot-1.dmm @@ -0,0 +1,1048 @@ +"aa" = (/turf/space,/area/space) +"ab" = (/obj/structure/lattice,/turf/space,/area/space) +"ac" = (/turf/simulated/wall/r_wall,/area/entrepot/cafe_1) +"ad" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/cafe_1) +"ae" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/entrepot/cafe_1) +"af" = (/obj/machinery/cooker/oven,/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"ag" = (/obj/machinery/cooker/grill,/obj/machinery/camera/network/civilian_west{c_tag = "Refectory Module 1F - Kitchen"},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"ah" = (/obj/machinery/cooker/fryer,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"ai" = (/obj/structure/table/marble,/obj/item/material/knife/butch,/obj/item/material/kitchen/rollingpin,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"aj" = (/obj/structure/table/marble,/obj/item/material/knife/kitchen,/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"ak" = (/obj/structure/table/marble,/obj/machinery/reagentgrinder{pixel_y = 10},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"al" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"},/obj/machinery/camera/network/civilian_west{c_tag = "Refectory Module 1F - Freezer"},/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"am" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/reagent_containers/vessel/plastic/milk,/obj/item/reagent_containers/vessel/plastic/milk,/obj/item/reagent_containers/vessel/plastic/soymilk,/obj/item/reagent_containers/vessel/plastic/soymilk,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"an" = (/obj/structure/closet/secure_closet/freezer/meat,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"ao" = (/turf/simulated/wall,/area/entrepot/cafe_1) +"ap" = (/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"aq" = (/obj/machinery/icecream_vat,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"ar" = (/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"as" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"at" = (/obj/structure/table/marble,/obj/machinery/cooker/cereal{pixel_y = 6},/obj/item/reagent_containers/vessel/plastic/milk,/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"au" = (/obj/structure/table/marble,/obj/machinery/cooker/candy{pixel_y = 6},/obj/item/storage/fancy/egg_box,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"av" = (/obj/structure/sink/kitchen{dir = 8; pixel_x = 18},/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"aw" = (/obj/machinery/slot_machine,/obj/effect/floor_decal/siding/wood{dir = 1},/obj/effect/floor_decal/siding/wood{dir = 8},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"ax" = (/obj/item/stool/bar/padded,/obj/effect/floor_decal/siding/wood{dir = 1},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"ay" = (/obj/effect/floor_decal/siding/wood{dir = 4},/obj/effect/floor_decal/siding/wood{dir = 1},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"az" = (/obj/structure/bed/couch/right/sofa,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"aA" = (/obj/structure/bed/couch/left/sofa,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"aB" = (/obj/machinery/vending/dinnerware,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"aC" = (/obj/structure/kitchenspike,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"aD" = (/obj/machinery/smartfridge,/turf/simulated/wall,/area/entrepot/cafe_1) +"aE" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/coffeepot,/obj/item/reagent_containers/vessel/teapot,/obj/item/reagent_containers/vessel/pitcher,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"aF" = (/obj/structure/table/woodentable,/obj/machinery/reagentgrinder{pixel_y = 10},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"aG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/junction,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"aH" = (/obj/machinery/slot_machine,/obj/effect/floor_decal/siding/wood{dir = 8},/obj/machinery/light/small/hl{dir = 8},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"aI" = (/obj/item/stool/bar/padded,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"aJ" = (/obj/effect/floor_decal/siding/wood{dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"aK" = (/obj/structure/table/darkwood_reinforced,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"aL" = (/obj/structure/table/darkwood_reinforced,/obj/item/material/ashtray/bronze{pixel_x = -10},/obj/item/device/flashlight/lamp/brown{pixel_x = 4; pixel_y = 6},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"aM" = (/obj/structure/closet/crate/freezer,/obj/item/reagent_containers/food/meat,/obj/item/reagent_containers/food/meat,/obj/item/reagent_containers/food/meat,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"aN" = (/obj/machinery/gibber,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"aO" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"aP" = (/obj/structure/table/marble,/obj/machinery/microwave,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"aQ" = (/obj/structure/table/marble,/obj/item/storage/box/donkpockets,/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"aR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"aS" = (/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"aT" = (/obj/machinery/media/jukebox,/obj/effect/floor_decal/siding/wood{dir = 8},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"aU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"aV" = (/obj/structure/bed/couch/left/sofa{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"aW" = (/obj/structure/bed/couch/right/sofa{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"aX" = (/obj/machinery/door/airlock/freezer{name = "Kitchen cold room"; req_access = list(28)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"aY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"aZ" = (/obj/structure/table/darkwood_reinforced,/obj/effect/floor_decal/siding/wood{dir = 8},/obj/item/flame/lighter/zippo,/obj/item/music_tape_box/jazz,/obj/item/music_tape_box/exodus,/obj/item/music_tape_box/frontier,/obj/effect/landmark/roundstart/monkeyportrait{pixel_y = 28},/obj/effect/floor_decal/siding/wood{dir = 1},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"ba" = (/obj/item/stool/bar_new/padded,/obj/effect/floor_decal/siding/wood/corner{dir = 1},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"bb" = (/obj/machinery/seed_extractor,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"bc" = (/obj/structure/closet/crate/hydroponics/prespawned,/obj/machinery/camera/network/civilian_west{c_tag = "Refectory Module 1F - Growing Room"},/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"bd" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"be" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"bf" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"bg" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bh" = (/obj/structure/table/darkwood_reinforced,/obj/effect/floor_decal/siding/wood{dir = 8},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"bi" = (/obj/item/stool/bar_new/padded,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"bj" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_alc/full,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bk" = (/obj/effect/floor_decal/siding/wood{dir = 8},/obj/structure/table/darkwood_reinforced,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"bl" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"bm" = (/obj/machinery/seed_storage,/obj/machinery/light/he,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"bn" = (/obj/structure/reagent_dispensers/composttank,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"bo" = (/obj/machinery/vending/boozeomat,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bp" = (/obj/structure/table/darkwood_reinforced,/obj/effect/floor_decal/siding/wood{dir = 8},/obj/item/material/ashtray/bronze,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"bq" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 9},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"br" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/structure/bed/pew/pewchapel/left,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"bs" = (/obj/item/stool/padded,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bt" = (/obj/structure/synthesized_instrument/synthesizer/minimoog/chaotic{icon_state = "minipiano_right"; dir = 8},/obj/machinery/light/small/hl{dir = 4},/obj/machinery/camera/network/civilian_west{dir = 8; c_tag = "Refectory Module 1F"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bu" = (/obj/machinery/status_display,/turf/simulated/wall,/area/entrepot/cafe_1) +"bv" = (/obj/effect/floor_decal/siding/wood{dir = 4},/obj/structure/table/darkwood_reinforced,/obj/item/plant_pot/stoutbush,/obj/item/device/synthesized_instrument/guitar,/obj/machinery/light/small/hl{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"bx" = (/obj/structure/table/darkwood_reinforced,/obj/effect/floor_decal/siding/wood{dir = 1},/obj/item/reagent_containers/rag,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"by" = (/obj/structure/table/darkwood_reinforced,/obj/effect/floor_decal/siding/wood/corner{dir = 1},/obj/item/storage/box/donut,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"bz" = (/obj/effect/floor_decal/siding/wood/corner{dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"bA" = (/obj/effect/floor_decal/siding/wood{dir = 1},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"bB" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/structure/bed/pew/pewchapel/middle,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light/he{dir = 1},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"bC" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"bD" = (/obj/effect/floor_decal/siding/wood{dir = 1},/obj/effect/floor_decal/siding/wood{dir = 4},/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"bE" = (/obj/structure/bed/couch/left/blue,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bF" = (/obj/structure/bed/couch/right/blue,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bG" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/dark,/area/entrepot/cafe_1) +"bH" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/dark,/area/entrepot/cafe_1) +"bI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/dark,/area/entrepot/cafe_1) +"bJ" = (/obj/machinery/atmospherics/pipe/simple/visible/black,/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"bK" = (/obj/structure/flora/ausbushes/leafybush,/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/structure/bed/pew/pewchapel/right,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"bL" = (/obj/structure/sink{dir = 4; pixel_x = 10},/obj/structure/mirror{pixel_x = 28},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/entrepot/cafe_1) +"bM" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"bO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/dark,/area/entrepot/cafe_1) +"bP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/cafe_1) +"bQ" = (/obj/effect/floor_decal/siding/wood,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"bR" = (/turf/simulated/wall/r_wall,/area/entrepot/crew_1/dorm) +"bS" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/crew_1/dorm) +"bT" = (/obj/structure/closet/secure_closet/personal/empty,/obj/structure/window/reinforced,/obj/effect/floor_decal/spline/plain/black{dir = 9},/obj/item/clothing/under/pj/blue,/obj/item/clothing/shoes/slippers,/turf/simulated/floor/trim/lino,/area/entrepot/crew_1/dorm) +"bU" = (/obj/structure/table/darkwood_reinforced,/obj/item/reagent_containers/vessel/bottle/syrup_bottle/caramel{pixel_x = 7; pixel_y = 6},/obj/item/reagent_containers/vessel/bottle/syrup_bottle/liqueur{pixel_x = 17; pixel_y = 6},/obj/structure/coffee_condi_display{pixel_x = -6; pixel_y = 4},/obj/effect/floor_decal/siding/wood,/obj/structure/railing/darkwood,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bV" = (/obj/structure/table/darkwood_reinforced,/obj/machinery/coffeemaker{pixel_x = 4; pixel_y = 3},/obj/effect/floor_decal/siding/wood,/obj/structure/railing/darkwood,/obj/effect/floor_decal/siding/wood{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bW" = (/obj/structure/sign/warning/smoking,/turf/simulated/wall,/area/entrepot/cafe_1) +"bX" = (/obj/item/stool/bar,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"bY" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/dark,/area/entrepot/cafe_1) +"bZ" = (/obj/machinery/vending/cigars,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"ca" = (/obj/effect/floor_decal/siding/wood,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"cb" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"cc" = (/obj/structure/railing/darkwood,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"cd" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/shuttle/blue,/area/entrepot/deck_1) +"ce" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"cf" = (/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"cg" = (/obj/effect/floor_decal/spline/plain/black{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"ch" = (/obj/structure/bed/chair/black,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"ci" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"cj" = (/obj/structure/bed/chair/black{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"ck" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"cl" = (/obj/structure/window_frame/grille,/turf/simulated/wall/r_wall,/area/entrepot/engi_1) +"cm" = (/obj/structure/bed/chair/black{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"cn" = (/obj/structure/bed/chair/black{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"co" = (/turf/simulated/floor/reinforced/nitrogen,/area/entrepot/engi_1) +"cp" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/reinforced/nitrogen,/area/entrepot/engi_1) +"cq" = (/turf/simulated/floor/reinforced/oxygen,/area/entrepot/engi_1) +"cr" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/reinforced/oxygen,/area/entrepot/engi_1) +"cs" = (/turf/simulated/floor/reinforced/airmix,/area/entrepot/engi_1) +"ct" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/reinforced/airmix,/area/entrepot/engi_1) +"cu" = (/obj/machinery/portable_atmospherics/canister/empty/nitrogen,/turf/simulated/floor/reinforced/nitrogen,/area/entrepot/engi_1) +"cv" = (/obj/machinery/portable_atmospherics/canister/empty/oxygen,/turf/simulated/floor/reinforced/oxygen,/area/entrepot/engi_1) +"cw" = (/obj/machinery/portable_atmospherics/canister/empty/air,/turf/simulated/floor/reinforced/airmix,/area/entrepot/engi_1) +"cx" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/plain/black{dir = 5},/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"cy" = (/obj/machinery/atmospherics/unary/outlet_injector{frequency = 1441; id = "n2_in"; use_power = 1},/turf/simulated/floor/reinforced/nitrogen,/area/entrepot/engi_1) +"cz" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/reinforced/nitrogen,/area/entrepot/engi_1) +"cA" = (/obj/machinery/atmospherics/unary/vent_pump{icon_state = "map_vent_in"; frequency = 1441; use_power = 1; id_tag = "n2_out"; pump_direction = 0; external_pressure_bound = 0; pressure_checks = 2; internal_pressure_bound = 4000; external_pressure_bound_default = 0; internal_pressure_bound_default = 4000; pressure_checks_default = 2; initialize_directions = 1},/turf/simulated/floor/reinforced/nitrogen,/area/entrepot/engi_1) +"cB" = (/obj/machinery/atmospherics/unary/outlet_injector{frequency = 1441; id = "o2_in"; use_power = 1},/turf/simulated/floor/reinforced/oxygen,/area/entrepot/engi_1) +"cC" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "o2_sensor"},/turf/simulated/floor/reinforced/oxygen,/area/entrepot/engi_1) +"cD" = (/obj/machinery/atmospherics/unary/vent_pump{icon_state = "map_vent_in"; frequency = 1441; use_power = 1; id_tag = "o2_out"; pump_direction = 0; external_pressure_bound = 0; pressure_checks = 2; internal_pressure_bound = 4000; external_pressure_bound_default = 0; internal_pressure_bound_default = 4000; pressure_checks_default = 2; initialize_directions = 1},/turf/simulated/floor/reinforced/oxygen,/area/entrepot/engi_1) +"cE" = (/obj/machinery/atmospherics/unary/outlet_injector{frequency = 1443; id = "air_in"; use_power = 1},/turf/simulated/floor/reinforced/airmix,/area/entrepot/engi_1) +"cF" = (/obj/machinery/air_sensor{frequency = 1443; output = 7; id_tag = "air_sensor"},/turf/simulated/floor/reinforced/airmix,/area/entrepot/engi_1) +"cG" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{icon_state = "map_vent_in"; frequency = 1443; use_power = 1; id_tag = "air_out"; pump_direction = 0; external_pressure_bound = 0; pressure_checks = 2; internal_pressure_bound = 2000; external_pressure_bound_default = 0; internal_pressure_bound_default = 2000; pressure_checks_default = 2},/turf/simulated/floor/reinforced/airmix,/area/entrepot/engi_1) +"cH" = (/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"cI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"cJ" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 9},/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"cK" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/structure/bed/pew/pewchapel/left,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"cL" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/structure/bed/pew/pewchapel/middle,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/light/he{dir = 1},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"cM" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/structure/bed/pew/pewchapel/right,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"cN" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 5},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"cO" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/deck_1) +"cP" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/effect/floor_decal/spline/plain/black{dir = 10},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"cQ" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"cR" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/green,/obj/structure/window_frame/reinforced,/turf/simulated/wall/r_wall,/area/entrepot/engi_1) +"cS" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"cT" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/yellow,/obj/structure/window_frame/reinforced,/turf/simulated/wall/r_wall,/area/entrepot/engi_1) +"cU" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/green,/obj/machinery/atmospherics/binary/pump/on{name = "Air to Supply"; dir = 1},/obj/structure/window_frame/reinforced,/turf/simulated/wall/r_wall,/area/entrepot/engi_1) +"cV" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/meter{name = "Mixed Air Tank Out"; frequency = 1443; id = "mair_out_meter"},/obj/structure/window_frame/reinforced,/turf/simulated/wall/r_wall,/area/entrepot/engi_1) +"cW" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/meter{name = "Mixed Air Tank In"; frequency = 1443; id = "mair_in_meter"},/obj/structure/window_frame/reinforced,/turf/simulated/wall/r_wall,/area/entrepot/engi_1) +"cX" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"cY" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"cZ" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/effect/floor_decal/spline/plain/black{dir = 6},/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"da" = (/obj/effect/floor_decal/stairs{dir = 1},/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"db" = (/obj/effect/floor_decal/siding/wood,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/disposalpipe/junction,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"dc" = (/obj/structure/flora/ausbushes/leafybush,/obj/effect/floor_decal/spline/plain/black{dir = 10},/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"dd" = (/obj/structure/stairs/east,/obj/structure/railing/darkwood,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"de" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 6},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"df" = (/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"dg" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/black,/turf/space,/area/entrepot/engi_1) +"dh" = (/obj/structure/lattice,/turf/space,/area/entrepot/engi_1) +"di" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/space,/area/entrepot/engi_1) +"dj" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/blue,/turf/space,/area/entrepot/engi_1) +"dk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"dl" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"dm" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8},/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"dn" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 10},/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"do" = (/obj/machinery/atmospherics/pipe/simple/visible/blue,/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"dp" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"dq" = (/turf/simulated/wall/r_wall,/area/entrepot/engi_1) +"dr" = (/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"ds" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"dt" = (/turf/simulated/wall/r_wall,/area/entrepot/cargo) +"du" = (/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"dv" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"dw" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"dx" = (/obj/machinery/atmospherics/pipe/simple/visible/black,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dy" = (/obj/machinery/computer/general_air_control/large_tank_control{name = "Nitrogen Supply Control"; sensors = list(n2_sensor="Tank"); input_tag = "n2_in"; output_tag = "n2_out"},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dz" = (/obj/machinery/atmospherics/valve/digital/open{name = "Nitrogen Outlet Valve"},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dA" = (/obj/machinery/atmospherics/binary/pump{name = "N2 to Connector"},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dB" = (/obj/machinery/computer/general_air_control/large_tank_control{name = "Oxygen Supply Control"; sensors = list(o2_sensor="Tank"); input_tag = "o2_in"; output_tag = "o2_out"},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dC" = (/obj/machinery/atmospherics/valve/digital/open{name = "Oxygen Outlet Valve"},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dD" = (/obj/machinery/atmospherics/binary/pump{name = "O2 to Connector"},/obj/machinery/camera/network/engineering{c_tag = "Atmospherics Tank - Air"},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dE" = (/obj/machinery/atmospherics/pipe/simple/visible/blue,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dF" = (/obj/machinery/computer/general_air_control/large_tank_control{name = "Mixed Air Supply Control"; frequency = 1443; sensors = list(air_sensor="Tank"); input_tag = "air_in"; output_tag = "air_out"; pressure_setting = 2000},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dG" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8},/obj/machinery/meter,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dH" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 10},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dI" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dJ" = (/obj/effect/floor_decal/techgrid,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"dK" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"dL" = (/obj/effect/floor_decal/techgrid{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"dM" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"dN" = (/obj/structure/closet/crate/internals,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"dO" = (/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"dP" = (/obj/structure/closet/crate/freezer/rations,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"dQ" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dR" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dS" = (/obj/machinery/atmospherics/pipe/simple/visible/black,/obj/machinery/meter,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dT" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 6},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dU" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 9},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dV" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 6},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dW" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 9},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"dX" = (/obj/structure/closet/crate/rcd,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"dY" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/storage/box/monkeycubes,/obj/item/storage/box/monkeycubes,/obj/item/inflatable_dispenser,/obj/item/storage/briefcase/inflatable,/obj/item/storage/briefcase/inflatable,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"dZ" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"ea" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/tank/jetpack,/obj/item/tank/jetpack,/obj/item/tank/jetpack,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"eb" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/effect/floor_decal/spline/plain/black{dir = 10},/obj/effect/floor_decal/spline/plain/black{dir = 1},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"ec" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 5},/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"ed" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"ee" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"ef" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/machinery/status_display,/turf/simulated/floor/grid/greengrid,/area/entrepot/deck_1) +"eg" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/grid/greengrid,/area/entrepot/deck_1) +"eh" = (/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/techgrid{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"ei" = (/obj/structure/flora/ausbushes/leafybush,/obj/effect/floor_decal/spline/plain/black{dir = 9},/obj/effect/floor_decal/spline/plain/corner/black,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"ej" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 6},/obj/effect/floor_decal/spline/plain/black{dir = 1},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"ek" = (/obj/structure/closet/crate/hydroponics/beekeeping,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"el" = (/mob/living/simple_animal/corgi/Lisa,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"em" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/power/port_gen/pacman{sheets = 25},/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"en" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/storage/box/bodybags,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"eo" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"ep" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"eq" = (/obj/structure/window_frame/grille/rglass,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"er" = (/obj/structure/railing/steel,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"es" = (/obj/machinery/status_display,/obj/structure/railing/steel,/turf/simulated/wall,/area/entrepot/deck_1) +"et" = (/turf/simulated/wall,/area/entrepot/deck_1) +"eu" = (/obj/structure/bed/padded,/obj/structure/curtain/open/bed{anchored = 1},/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/item/bedsheet/nt,/turf/simulated/floor/trim/lino,/area/entrepot/crew_1/dorm) +"ev" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/machinery/light/he{dir = 8},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"ew" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/disposalpipe/junction{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"ex" = (/obj/effect/floor_decal/corner/black/three_quarters{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/disposalpipe/junction{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"ey" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/alarm{dir = 8; pixel_x = 24},/obj/machinery/light/he{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"ez" = (/obj/structure/window_frame/grille/rglass,/obj/structure/sign/cargo,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/cargo) +"eA" = (/obj/effect/floor_decal/techfloor{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"eB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"eC" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/cargo) +"eD" = (/obj/structure/window_frame/grille/rglass,/obj/structure/sign/engineering,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/deck_1) +"eE" = (/obj/structure/railing/steel,/turf/simulated/floor/plating,/area/entrepot/deck_1) +"eF" = (/obj/structure/stairs/east,/obj/structure/railing/steel,/turf/simulated/floor/plating,/area/entrepot/deck_1) +"eG" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 9},/obj/machinery/vending/coffee,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"eH" = (/obj/effect/floor_decal/spline/plain/black{dir = 1},/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"eI" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/effect/floor_decal/spline/plain/corner/black{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"eJ" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"eK" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 5},/obj/machinery/vending/cola,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"eL" = (/obj/structure/stairs/west,/obj/structure/railing/steel,/turf/simulated/floor/plating,/area/entrepot/deck_1) +"eM" = (/obj/machinery/door/airlock/centcom{name = "Warehouse"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/cargo) +"eN" = (/turf/simulated/floor/tiled/dark/mono,/area/entrepot/cargo) +"eO" = (/obj/effect/floor_decal/spline/plain/black{dir = 9},/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"eP" = (/obj/structure/railing/steel,/turf/simulated/floor/plating,/area/entrepot/cargo) +"eQ" = (/obj/structure/stairs/east,/obj/structure/railing/steel,/turf/simulated/floor/plating,/area/entrepot/cargo) +"eR" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Wing"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark,/area/entrepot/engi_1) +"eS" = (/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"eT" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/entrepot/crew_1) +"eU" = (/turf/simulated/wall/r_wall,/area/entrepot/crew_1) +"eV" = (/obj/structure/sign/flag/nt,/turf/simulated/wall/r_wall,/area/entrepot/crew_1) +"eW" = (/obj/structure/window_frame/glass,/turf/simulated/floor/plating,/area/entrepot/crew_1) +"eX" = (/obj/effect/floor_decal/corner/black{dir = 10},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"eY" = (/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"eZ" = (/obj/structure/window_frame/glass,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/crew_1) +"fa" = (/obj/effect/floor_decal/stairs,/obj/effect/floor_decal/spline/plain/black,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"fb" = (/obj/structure/sign/custodian,/turf/simulated/wall/r_wall,/area/entrepot/crew_1) +"fc" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fd" = (/obj/machinery/vending/cigarette,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fe" = (/obj/machinery/vending/coffee,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"ff" = (/turf/simulated/wall,/area/entrepot/crew_1/fitness) +"fg" = (/obj/structure/table/standard,/obj/item/storage/fancy/crayons,/obj/item/storage/box/chalk,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fh" = (/obj/effect/floor_decal/corner/black{dir = 6},/obj/structure/flora/pottedplant/stoutbush,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fi" = (/obj/effect/floor_decal/spline/plain/black{dir = 5},/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"fj" = (/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"fk" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fl" = (/obj/effect/floor_decal/corner/black{dir = 9},/obj/structure/flora/pottedplant/stoutbush,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fm" = (/obj/machinery/door/airlock/glass{name = "Holodeck Controls"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"fn" = (/obj/structure/table/standard,/obj/item/storage/toolbox/emergency,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fo" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fp" = (/obj/machinery/vending/cola,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fq" = (/obj/structure/closet/secure_closet/personal/empty,/obj/structure/window/reinforced,/obj/effect/floor_decal/spline/plain/black{dir = 5},/obj/item/clothing/under/pj/red,/obj/item/clothing/shoes/slippers,/turf/simulated/floor/trim/lino,/area/entrepot/crew_1/dorm) +"fr" = (/obj/structure/table/standard,/obj/item/storage/bible,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fs" = (/obj/structure/closet/jcloset,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"ft" = (/obj/structure/sink{dir = 1; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"fu" = (/obj/machinery/door/airlock{name = "Cleaning Supplies"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"fv" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"fw" = (/turf/simulated/wall,/area/entrepot/crew_1/dorm) +"fx" = (/obj/structure/railing/steel{dir = 8},/obj/structure/window_frame/glass,/turf/simulated/floor/plating,/area/entrepot/crew_1) +"fy" = (/obj/effect/floor_decal/corner/black{dir = 9},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fz" = (/obj/structure/table/rack,/obj/item/storage/box/lights/mixed,/obj/item/storage/box/lights/mixed,/obj/item/storage/box/lights/mixed/he,/obj/item/storage/box/lights/bulbs/old,/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"fA" = (/obj/structure/janitorialcart,/obj/item/reagent_containers/vessel/bucket,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light/small/he{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"fB" = (/turf/simulated/wall,/area/entrepot/crew_1) +"fC" = (/obj/effect/floor_decal/corner/black{dir = 5},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/light/small/hl,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"fE" = (/obj/structure/bed/chair/comfy/black{dir = 8},/obj/effect/floor_decal/spline/plain/black{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/computer/holodeck,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"fG" = (/obj/structure/railing/steel{dir = 8},/obj/structure/stairs/north,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fH" = (/obj/structure/bed/couch/left/brown,/obj/effect/floor_decal/corner/black/three_quarters{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"fI" = (/obj/structure/bed/couch/right/brown,/obj/effect/floor_decal/corner/black{dir = 5},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"fJ" = (/obj/effect/floor_decal/corner/black{dir = 5},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"fK" = (/obj/effect/floor_decal/corner/black/three_quarters{dir = 1},/obj/structure/flora/pottedplant/unusual,/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"fL" = (/obj/machinery/atmospherics/valve/digital/open{name = "Mixed Air Outlet Valve"; dir = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"fM" = (/obj/structure/closet/secure_closet/personal/empty,/obj/structure/window/reinforced,/obj/effect/floor_decal/spline/plain/black{dir = 9},/obj/item/clothing/under/pj/red,/obj/item/clothing/shoes/slippers,/turf/simulated/floor/trim/lino,/area/entrepot/crew_1/dorm) +"fN" = (/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"fO" = (/obj/effect/floor_decal/spline/plain/black{dir = 4},/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"fP" = (/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1) +"fQ" = (/obj/structure/railing/steel,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1) +"fR" = (/obj/effect/floor_decal/corner/black/three_quarters{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fS" = (/obj/structure/table/rack,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/reagent_containers/spray/cleaner,/obj/item/storage/box/cleanerpods,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"fT" = (/obj/structure/table/standard,/obj/item/material/ashtray/plastic,/obj/effect/floor_decal/spline/plain/black{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"fU" = (/turf/simulated/floor/reinforced{name = "Holodeck Projector Floor"},/area/holodeck) +"fV" = (/obj/structure/closet/secure_closet/personal/empty,/obj/structure/window/reinforced,/obj/effect/floor_decal/spline/plain/black{dir = 5},/obj/item/clothing/under/pj/blue,/obj/item/clothing/shoes/slippers,/turf/simulated/floor/trim/lino,/area/entrepot/crew_1/dorm) +"fW" = (/obj/structure/sign/flag/nt,/turf/simulated/wall,/area/entrepot/crew_1/dorm) +"fX" = (/obj/structure/table/standard,/obj/item/material/ashtray,/obj/effect/floor_decal/corner/black{dir = 9},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"fY" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"fZ" = (/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"ga" = (/obj/structure/railing/steel{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1) +"gb" = (/obj/item/stool/padded,/obj/effect/floor_decal/corner/black{dir = 10},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"gc" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/table/rack,/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"gd" = (/obj/effect/floor_decal/corner/black{dir = 6},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"ge" = (/obj/effect/floor_decal/corner/black/three_quarters{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"gf" = (/obj/structure/bed/couch/left/brown{dir = 1},/obj/effect/floor_decal/corner/black{dir = 9},/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"gg" = (/obj/effect/floor_decal/corner/black{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"gh" = (/obj/structure/table/standard,/obj/item/device/camera,/obj/item/device/camera_film,/obj/item/device/camera_film,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"gi" = (/obj/machinery/vending/fashionvend,/obj/machinery/light,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"gj" = (/obj/machinery/lapvend,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"gk" = (/obj/structure/table/standard,/obj/machinery/vending/wallmed1{pixel_y = -28},/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"gl" = (/obj/machinery/vending/games,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"gm" = (/obj/structure/closet/lasertag/red,/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"gn" = (/obj/structure/bed/couch/right/brown{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"go" = (/obj/effect/floor_decal/corner/black{dir = 9},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"gp" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/entrepot/crew_1/dorm) +"gq" = (/obj/machinery/door/airlock/glass{name = "Holodeck"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"gr" = (/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1) +"gs" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"gt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"gu" = (/obj/structure/table/darkwood_reinforced,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"gv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1) +"gw" = (/obj/structure/closet/secure_closet/personal/empty,/obj/structure/window/reinforced,/obj/effect/floor_decal/spline/plain/black{dir = 9},/obj/item/clothing/under/pj/blue,/obj/item/clothing/shoes/slippers,/obj/machinery/light/small/hl{dir = 1},/turf/simulated/floor/trim/lino,/area/entrepot/crew_1/dorm) +"gx" = (/obj/structure/table/woodentable,/obj/machinery/microwave,/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"gy" = (/obj/structure/table/woodentable,/obj/item/storage/box/donkpockets,/obj/effect/floor_decal/spline/plain/black,/obj/item/storage/box/cups,/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"gz" = (/obj/structure/table/woodentable,/obj/effect/floor_decal/spline/plain/black,/obj/structure/bedsheetbin,/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"gA" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"gB" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"gC" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"gD" = (/obj/structure/table/standard,/obj/item/soap/nanotrasen,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"gE" = (/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"gF" = (/obj/structure/table/woodentable,/obj/item/paper_bin,/obj/item/paper,/obj/item/pen/blue,/obj/item/pen/blue,/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"gG" = (/obj/structure/closet/secure_closet/personal/empty,/obj/structure/window/reinforced,/obj/effect/floor_decal/spline/plain/black{dir = 5},/obj/item/clothing/under/pj/red,/obj/item/clothing/shoes/slippers,/obj/machinery/light/small/hl{dir = 1},/turf/simulated/floor/trim/lino,/area/entrepot/crew_1/dorm) +"gH" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"gI" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/obj/effect/floor_decal/industrial/warning/full,/turf/space,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"gJ" = (/obj/effect/floor_decal/corner/black{dir = 10},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"gK" = (/obj/effect/floor_decal/corner/black{dir = 10},/obj/structure/closet/wardrobe/mixed,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"gL" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"gM" = (/obj/structure/closet/secure_closet/personal/empty,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"gN" = (/obj/structure/reagent_dispensers/water_cooler,/obj/effect/floor_decal/spline/plain/black{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"gO" = (/obj/machinery/door/airlock{name = "Public Bedroom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/dorm) +"gP" = (/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"gQ" = (/obj/item/stool,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"gR" = (/obj/machinery/shower,/obj/structure/window/reinforced{dir = 4},/obj/structure/curtain/open/shower{anchored = 1},/obj/effect/floor_decal/floordetail/edgedrain{dir = 1},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"gS" = (/obj/structure/sink{dir = 4; pixel_x = 10},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"gT" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"gU" = (/obj/structure/stairs/south,/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"gV" = (/obj/structure/flora/pottedplant/unusual,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"gW" = (/obj/structure/stairs/south,/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"gX" = (/obj/machinery/shower{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/curtain/open/shower{anchored = 1},/obj/effect/floor_decal/floordetail/edgedrain,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"gY" = (/obj/structure/window_frame/glass,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/crew_1/fitness) +"gZ" = (/turf/simulated/wall/r_wall,/area/entrepot/crew_1/fitness) +"ha" = (/obj/machinery/status_display,/turf/simulated/wall,/area/entrepot/crew_1/fitness) +"hb" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"hc" = (/obj/structure/closet/athletic_mixed,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"hd" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/crew_1/fitness) +"he" = (/obj/structure/table/standard,/obj/item/clothing/shoes/swimmingfins,/obj/item/inflatable_duck,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"hf" = (/obj/item/stool,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"hg" = (/obj/structure/bed/chair/wheelchair,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"hh" = (/obj/structure/bed/chair/blue,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"hi" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/plastic/waterbottle,/obj/item/reagent_containers/vessel/plastic/waterbottle,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"hj" = (/obj/machinery/door/window/southleft{name = "Sauna"},/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"hk" = (/obj/machinery/disposal,/obj/effect/floor_decal/corner/black/three_quarters,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"hl" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"hm" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/machinery/light/he{dir = 8},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"hn" = (/obj/effect/floor_decal/spline/plain/black{dir = 1},/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_1/fitness) +"ho" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/light/he{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"hp" = (/obj/effect/floor_decal/siding/wood{dir = 8},/obj/effect/floor_decal/siding/wood{dir = 1},/obj/structure/table/darkwood_reinforced,/obj/structure/railing/wood{dir = 8},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"hq" = (/obj/effect/floor_decal/siding/wood{dir = 1},/obj/structure/table/darkwood_reinforced,/obj/item/towel,/obj/machinery/light/small/hl{dir = 1},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"hr" = (/obj/effect/floor_decal/siding/wood{dir = 4},/obj/effect/floor_decal/siding/wood{dir = 1},/obj/structure/table/darkwood_reinforced,/obj/structure/railing/wood{dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"hs" = (/obj/effect/floor_decal/siding/wood{dir = 1},/turf/simulated/floor/trim/wood,/area/entrepot/crew_1/fitness) +"ht" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/siding/wood{dir = 4},/obj/effect/floor_decal/siding/wood{dir = 1},/obj/structure/closet/crate/bin,/obj/item/towel,/obj/item/towel,/obj/item/towel,/obj/item/towel,/obj/item/towel,/obj/item/towel,/obj/item/clothing/head/ushanka,/turf/simulated/floor/trim/wood,/area/entrepot/crew_1/fitness) +"hu" = (/obj/structure/table/standard,/obj/item/storage/box/cups,/obj/item/storage/box/cups,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"hv" = (/obj/effect/floor_decal/spline/plain{dir = 4},/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_1/fitness) +"hw" = (/obj/effect/floor_decal/spline/plain{dir = 1},/obj/effect/floor_decal/spline/plain/grey{dir = 1},/obj/effect/floor_decal/spline/plain/grey{dir = 8},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1/fitness) +"hx" = (/obj/effect/floor_decal/spline/plain{dir = 1},/obj/effect/floor_decal/spline/plain/grey{dir = 1},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1/fitness) +"hy" = (/obj/effect/floor_decal/spline/plain{dir = 1},/obj/effect/floor_decal/spline/plain{dir = 1},/obj/effect/floor_decal/spline/plain/grey{dir = 1},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1/fitness) +"hz" = (/obj/effect/floor_decal/spline/plain{dir = 8},/obj/effect/floor_decal/spline/plain/black{dir = 4},/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_1/fitness) +"hA" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 5},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"hB" = (/obj/effect/floor_decal/siding/wood{dir = 8},/obj/effect/floor_decal/siding/wood,/obj/structure/bed/pew/pewchapel/left,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"hC" = (/obj/effect/floor_decal/siding/wood,/obj/structure/bed/pew/pewchapel/middle,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"hD" = (/obj/effect/floor_decal/siding/wood{dir = 4},/obj/effect/floor_decal/siding/wood,/obj/structure/bed/pew/pewchapel/right,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"hE" = (/obj/effect/floor_decal/siding/wood,/turf/simulated/floor/trim/wood,/area/entrepot/crew_1/fitness) +"hF" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/sink{dir = 4},/obj/effect/floor_decal/siding/wood{dir = 4},/obj/effect/floor_decal/siding/wood,/turf/simulated/floor/trim/wood,/area/entrepot/crew_1/fitness) +"hG" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"hH" = (/obj/effect/floor_decal/spline/plain/grey{dir = 8},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1/fitness) +"hI" = (/turf/simulated/floor/water/fountain,/area/entrepot/crew_1/fitness) +"hJ" = (/obj/machinery/sauna,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"hK" = (/obj/effect/floor_decal/siding/wood{dir = 8},/turf/simulated/floor/trim/wood,/area/entrepot/crew_1/fitness) +"hL" = (/turf/simulated/floor/trim/wood,/area/entrepot/crew_1/fitness) +"hM" = (/obj/effect/floor_decal/siding/wood{dir = 4},/turf/simulated/floor/trim/wood,/area/entrepot/crew_1/fitness) +"hN" = (/obj/machinery/door/window/eastright{name = "Sauna"},/obj/effect/floor_decal/siding/wood{dir = 4},/turf/simulated/floor/trim/wood,/area/entrepot/crew_1/fitness) +"hO" = (/obj/item/beach_ball,/turf/simulated/floor/water/fountain,/area/entrepot/crew_1/fitness) +"hP" = (/obj/effect/floor_decal/siding/wood{dir = 8},/obj/effect/floor_decal/siding/wood{dir = 1},/obj/structure/bed/pew/pewchapel/left{name = "bench"; icon_state = "chair_pewchapel_left_over"; dir = 1},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"hQ" = (/obj/effect/floor_decal/siding/wood{dir = 1},/obj/structure/bed/pew/pewchapel/middle{icon_state = "chair_pewchapel_middle_over"; dir = 1},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"hR" = (/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"hS" = (/obj/structure/flora/pottedplant/unusual,/obj/structure/railing/steel,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"hT" = (/obj/structure/sign/deck/first,/turf/simulated/wall,/area/entrepot/deck_1) +"hU" = (/obj/machinery/disposal,/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"hV" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"hW" = (/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"hX" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"hY" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/black,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"hZ" = (/obj/machinery/atmospherics/omni/mixer{tag_north_con = 0.21; tag_south_con = 0; tag_east_con = 0; tag_west_con = 0.79; tag_north = 1; tag_east = 2; tag_west = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"ia" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"ib" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{dir = 9},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"ic" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; use_power = 1; volume_rate = 200; initialize_directions = 4},/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"id" = (/obj/machinery/atmospherics/pipe/simple/visible/red{dir = 10},/obj/structure/lattice,/turf/space,/area/entrepot/engi_1) +"ie" = (/obj/machinery/atmospherics/pipe/simple/visible/red{dir = 6},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"if" = (/obj/machinery/atmospherics/pipe/simple/visible/red{dir = 4},/obj/machinery/atmospherics/binary/pump/on{name = "Air to Supply"; dir = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"ig" = (/obj/machinery/atmospherics/pipe/simple/visible/red{dir = 10},/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"ih" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/visible/red{dir = 4},/turf/simulated/floor/plating,/area/entrepot/engi_1) +"ii" = (/obj/machinery/atmospherics/pipe/simple/visible/red,/obj/structure/lattice,/turf/space,/area/space) +"ij" = (/obj/machinery/atmospherics/pipe/simple/visible/red{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"ik" = (/obj/machinery/atmospherics/omni/filter{tag_north = 4; tag_south = 0; tag_east = 1; tag_west = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"il" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"im" = (/obj/machinery/atmospherics/omni/filter{tag_north = 3; tag_south = 0; tag_east = 1; tag_west = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"in" = (/obj/machinery/atmospherics/pipe/simple/visible/red{dir = 9},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"io" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"ip" = (/obj/structure/window_frame/grille,/obj/structure/lattice,/turf/space,/area/space) +"iq" = (/obj/structure/sign/flag/nt,/turf/simulated/wall/r_wall,/area/entrepot/engi_1) +"ir" = (/obj/structure/ladder/up,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"is" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"it" = (/obj/structure/window_frame/grille,/turf/space,/area/space) +"iu" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/machinery/light,/obj/structure/table/rack,/obj/item/backwear/powered/rpd/loaded,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iv" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/red,/turf/space,/area/space) +"iw" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/red{dir = 5},/turf/space,/area/space) +"ix" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/item/construction/rcd/loaded/upgraded,/obj/structure/table/rack,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iy" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/atmospherics/pipe/manifold/visible/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iz" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iA" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iB" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"iC" = (/obj/effect/floor_decal/spline/plain/black,/turf/space,/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"iD" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iE" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"iF" = (/obj/machinery/door/airlock/centcom,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"iG" = (/turf/simulated/wall,/area/entrepot/engi_1) +"iH" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/structure/sign/atmosplaque{dir = 1; pixel_y = -30},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iI" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/visible/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iJ" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/door/airlock/hatch{name = "Power Storage"},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/atmospherics/pipe/simple/visible/supply,/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"iK" = (/obj/machinery/status_display,/turf/simulated/wall,/area/entrepot/engi_1) +"iL" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iM" = (/obj/machinery/disposal,/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"iN" = (/obj/machinery/atmospherics/pipe/simple/visible/supply,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iO" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iP" = (/obj/structure/railing/steel,/obj/structure/railing/steel,/obj/structure/flora/pottedplant/unusual,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"iQ" = (/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"iS" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"iT" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/structure/railing/steel,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"iU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/effect/decal/cleanable/cobweb,/obj/structure/cable{icon_state = "16-0"; d2 = 0; d1 = 16},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/alarm{pixel_y = 24},/obj/machinery/camera/network/civilian_west{dir = 4; c_tag = "Technical Module 1F - Junkyard"},/turf/simulated/floor/plating,/area/entrepot/engi_1) +"iV" = (/obj/machinery/door/airlock/hatch{name = "Maintenance"},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/visible/supply,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/engi_1) +"iW" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"iX" = (/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"iY" = (/obj/machinery/door/airlock/hatch{name = "Communications Relay"},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/atmospherics/pipe/simple/visible/supply,/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"iZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/cargo) +"ja" = (/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"jb" = (/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/table/rack,/obj/item/stack/material/wood/fifty,/obj/item/stack/material/wood/fifty,/obj/item/stack/material/darkwood/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/marble/fifty,/obj/effect/floor_decal/industrial/box,/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"jc" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"jd" = (/obj/structure/railing/steel,/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"je" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/light/he{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"jf" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/effect/floor_decal/spline/plain/black{dir = 10},/obj/machinery/vending/cigarette,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"jg" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"jh" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"ji" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 6},/obj/machinery/vending/snack,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"jj" = (/obj/machinery/status_display,/turf/simulated/wall,/area/entrepot/deck_1) +"jk" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/table/rack,/obj/item/storage/toolbox/mechanical,/obj/item/storage/toolbox/mechanical,/obj/item/storage/toolbox/mechanical,/obj/structure/window/reinforced{dir = 1; health = null},/obj/effect/floor_decal/industrial/box,/obj/item/device/handcharger,/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"jl" = (/obj/machinery/atmospherics/pipe/simple/visible/supply,/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"jm" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 9},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/engi_1) +"jn" = (/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/zpipe/up/supply{dir = 1},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/light/small/he{dir = 8},/turf/simulated/floor{icon_state = "dmg2"},/area/entrepot/engi_1) +"jo" = (/obj/structure/table/standard,/obj/random/maintenance,/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/engi_1) +"jp" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"jq" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 6},/obj/machinery/alarm{pixel_y = 24},/obj/machinery/camera/network/civilian_west{dir = 4; c_tag = "Technical Module 1F - Power Storage"},/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"jr" = (/obj/machinery/power/smes/magical,/obj/structure/cable,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"js" = (/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/space) +"jt" = (/obj/structure/cable/yellow{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/plating/airless,/area/space) +"ju" = (/obj/structure/cable/yellow{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating/airless,/area/space) +"jv" = (/obj/structure/cable/yellow{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable/yellow{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/plating/airless,/area/space) +"jw" = (/obj/structure/cable/yellow{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/plating/airless,/area/space) +"jx" = (/obj/structure/lattice,/obj/structure/window_frame/grille,/turf/space,/area/space) +"jy" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/space) +"jz" = (/obj/structure/cable/yellow{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable/yellow{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/space) +"jA" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{icon_state = "0-8"; d2 = 8},/turf/simulated/floor/plating/airless,/area/space) +"jB" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 5},/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"jC" = (/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 10},/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"jD" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/telecomms/relay/preset/station,/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"jE" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/visible/supply{dir = 8},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"jF" = (/obj/structure/closet/secure_closet/engineering_welding,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"jG" = (/obj/machinery/atmospherics/pipe/simple/visible/red{dir = 4},/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"jH" = (/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"jI" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"jJ" = (/obj/structure/cable/yellow{icon_state = "0-2"; d2 = 2},/obj/machinery/power/terminal{dir = 1},/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"jK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"jL" = (/obj/machinery/portable_atmospherics/canister/empty,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"jM" = (/obj/structure/cable/yellow{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/wall/r_wall,/area/entrepot/engi_1) +"jN" = (/obj/structure/window_frame/grille,/turf/space,/area/entrepot/engi_1) +"jO" = (/obj/machinery/door/blast/regular{name = "disposal mass driver"; id = "trash"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/airless,/area/entrepot/engi_1) +"jP" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black,/obj/structure/table/woodentable,/obj/item/storage/box/checkers,/obj/item/storage/box/checkers/chess,/obj/item/storage/box/checkers/chess/red,/obj/item/board,/obj/machinery/light/he,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"jQ" = (/obj/structure/table/glass,/obj/item/material/ashtray/glass,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"jR" = (/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"jS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"jT" = (/obj/structure/cable/yellow{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/wall/r_wall,/area/entrepot/engi_1) +"jU" = (/obj/effect/floor_decal/techfloor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"jV" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 9},/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"jW" = (/obj/structure/flora/ausbushes/leafybush,/obj/effect/floor_decal/spline/plain/black{dir = 6},/obj/effect/floor_decal/spline/plain/corner/black{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"jX" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 10},/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"jY" = (/obj/structure/flora/ausbushes/leafybush,/obj/effect/floor_decal/spline/plain/black{dir = 5},/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"jZ" = (/obj/machinery/floodlight,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"ka" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"kb" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"kc" = (/obj/structure/closet/toolcloset,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/device/handcharger,/obj/item/device/handcharger,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"kd" = (/obj/structure/closet/jcloset,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"ke" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/geltank/burn,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"kf" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"kg" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"kh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/cargo) +"ki" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/disposalpipe/junction{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"kj" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"kk" = (/obj/effect/floor_decal/techgrid{dir = 4},/obj/effect/floor_decal/techgrid{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"kl" = (/obj/effect/floor_decal/techgrid{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"km" = (/obj/effect/floor_decal/techfloor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"kn" = (/obj/structure/closet/l3closet/general/multi,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/light,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"ko" = (/obj/structure/closet/radiation,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/clothing/head/radiation,/obj/item/clothing/head/radiation,/obj/item/clothing/head/radiation,/obj/item/clothing/suit/radiation,/obj/item/clothing/suit/radiation,/obj/item/clothing/suit/radiation,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"kp" = (/obj/structure/closet/wardrobe/tactical,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/storage/box/handcuffs,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"kq" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/reagent_dispensers/watertank,/obj/machinery/light,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"kr" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/geltank/somatic,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"ks" = (/obj/effect/floor_decal/techfloor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"kt" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"ku" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/cargo) +"kv" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/structure/bed/pew/pewchapel/right{name = "bench"; dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"kw" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/structure/table/woodentable,/obj/item/game_kit,/obj/item/material/ashtray/glass,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"kx" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/structure/bed/pew/pewchapel/left{name = "bench"; dir = 8},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"ky" = (/obj/structure/flora/ausbushes/leafybush,/obj/effect/floor_decal/spline/plain/black{dir = 5},/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"kz" = (/obj/effect/floor_decal/stairs,/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"kA" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"kB" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/effect/floor_decal/spline/plain/black{dir = 9},/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"kC" = (/obj/structure/cable/yellow{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/wall/r_wall,/area/entrepot/engi_1) +"kD" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/structure/bed/pew/pewchapel/right{name = "bench"; dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"kE" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/structure/table/woodentable,/obj/item/material/ashtray/glass,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"kF" = (/obj/structure/flora/ausbushes/leafybush,/obj/effect/floor_decal/spline/plain/black{dir = 5},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"kG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"kH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"kI" = (/obj/structure/sign/double/barsign,/turf/simulated/wall/r_wall,/area/entrepot/cafe_1) +"kJ" = (/obj/structure/closet/lasertag/blue,/obj/machinery/light,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"kK" = (/obj/machinery/door/airlock/glass{name = "Fitness"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"kL" = (/obj/effect/floor_decal/corner/black/three_quarters,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"kM" = (/obj/structure/closet/wardrobe/mixed,/obj/effect/floor_decal/corner/black/three_quarters{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"kN" = (/obj/structure/table/standard,/obj/item/soap/nanotrasen,/obj/structure/window/reinforced{dir = 1; health = null},/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/spline/plain/grey{dir = 1},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/dorm) +"kO" = (/obj/structure/mopbucket,/obj/item/mop,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8; layer = 2.4; level = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"kP" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/spline/plain/grey{dir = 1},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/dorm) +"kQ" = (/obj/effect/floor_decal/siding/wood{dir = 4},/obj/effect/floor_decal/siding/wood{dir = 1},/obj/structure/bed/pew/pewchapel/right{name = "bench"; icon_state = "chair_pewchapel_right_over"; dir = 1},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"kR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/effect/floor_decal/siding/wood{dir = 4},/obj/effect/floor_decal/siding/wood{dir = 1},/turf/simulated/floor/trim/wood,/area/entrepot/crew_1/fitness) +"kS" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/crew_1) +"kT" = (/obj/structure/bed/chair/comfy/black{dir = 4},/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"kU" = (/obj/structure/window_frame/glass,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/entrepot/crew_1) +"kV" = (/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"kW" = (/obj/effect/floor_decal/spline/fancy{dir = 9},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1) +"kX" = (/obj/effect/floor_decal/spline/fancy{dir = 1},/obj/machinery/light,/obj/machinery/camera/network/civilian_east{dir = 1; c_tag = "Central Garden - North"},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1) +"kY" = (/obj/effect/floor_decal/spline/fancy{dir = 5},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1) +"kZ" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/machinery/status_display,/turf/simulated/floor/plating,/area/entrepot/crew_1) +"la" = (/obj/structure/table/standard,/obj/item/material/ashtray/plastic,/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"lb" = (/obj/structure/railing/steel{dir = 4},/obj/structure/stairs/south,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"lc" = (/obj/effect/floor_decal/spline/fancy{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1) +"ld" = (/turf/simulated/wall/gold,/area/entrepot/crew_1) +"le" = (/obj/effect/floor_decal/spline/fancy{dir = 4},/obj/machinery/light{dir = 8},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1) +"lf" = (/obj/structure/railing/steel{dir = 4},/obj/structure/window_frame/glass,/turf/simulated/floor/plating,/area/entrepot/crew_1) +"lg" = (/obj/effect/floor_decal/spline/fancy{dir = 10},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1) +"lh" = (/obj/effect/floor_decal/spline/fancy,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/civilian_east{c_tag = "Central Garden - South"},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1) +"li" = (/obj/effect/floor_decal/spline/fancy{dir = 6},/turf/simulated/floor/water/fountain,/area/entrepot/crew_1) +"lj" = (/obj/structure/table/standard,/obj/item/storage/laundry_basket,/obj/structure/window/reinforced{dir = 1; health = null},/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/spline/plain/grey{dir = 1},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/dorm) +"lk" = (/obj/machinery/washing_machine,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/dorm) +"ll" = (/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/dorm) +"lm" = (/obj/machinery/vending/fitness,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"ln" = (/obj/effect/floor_decal/siding/wood{dir = 8},/obj/effect/floor_decal/siding/wood,/obj/structure/table/darkwood_reinforced,/obj/item/towel,/obj/structure/railing/wood{dir = 8},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"lo" = (/obj/effect/floor_decal/siding/wood,/obj/structure/table/darkwood_reinforced,/obj/machinery/light/small/hl,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"lp" = (/obj/effect/floor_decal/siding/wood{dir = 4},/obj/effect/floor_decal/siding/wood,/obj/structure/table/darkwood_reinforced,/obj/structure/railing/wood{dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_1/fitness) +"lq" = (/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/trim/wood,/area/entrepot/crew_1/fitness) +"lr" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bucket,/obj/effect/floor_decal/siding/wood{dir = 4},/turf/simulated/floor/trim/wood,/area/entrepot/crew_1/fitness) +"ls" = (/obj/machinery/vending/snack/medbay,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"lt" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/plain/black,/obj/structure/table/woodentable,/obj/item/deck/cards,/obj/item/deck/tarot,/obj/item/storage/pill_bottle/dice,/obj/machinery/light/he,/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"lu" = (/obj/effect/floor_decal/spline/plain{dir = 1},/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_1/fitness) +"lv" = (/obj/effect/floor_decal/spline/plain/black{dir = 9},/obj/effect/floor_decal/floordetail/tiled,/obj/structure/flora/pottedplant/stoutbush,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"lw" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/entrepot/crew_1/fitness) +"lx" = (/obj/structure/sign/flag/nt,/turf/simulated/wall/r_wall,/area/entrepot/crew_1/fitness) +"ly" = (/turf/simulated/wall/r_wall,/area/entrepot/deck_1) +"lz" = (/obj/structure/sign/flag/nt,/turf/simulated/wall/r_wall,/area/entrepot/deck_1) +"lA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"lB" = (/obj/machinery/door/airlock/glass{name = "Fitness"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"lC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"lD" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/plain/black{dir = 10},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"lE" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black,/obj/structure/bed/pew/pewchapel/left{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"lF" = (/obj/effect/floor_decal/spline/plain/black{dir = 5},/obj/effect/floor_decal/floordetail/tiled,/obj/structure/flora/pottedplant/stoutbush,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"lG" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/plain/black,/obj/structure/bed/pew/pewchapel/right{name = "bench"; dir = 8},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"lH" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black{dir = 6},/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"lI" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/plain/black,/obj/structure/bed/pew/pewchapel/left{name = "bench"; dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"lJ" = (/obj/effect/floor_decal/spline/plain/black{dir = 10},/obj/effect/floor_decal/spline/plain/corner{dir = 1},/obj/effect/floor_decal/floordetail/tiled,/obj/structure/flora/pottedplant/stoutbush,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"lK" = (/obj/structure/sign/flag/nt,/turf/simulated/wall/r_wall,/area/entrepot/cargo) +"lL" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/structure/lattice,/turf/space,/area/entrepot/engi_1) +"lM" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"lN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"lO" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"lP" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"lQ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"lR" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"lS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"lT" = (/obj/machinery/portable_atmospherics/canister/empty,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"lU" = (/obj/machinery/portable_atmospherics/canister/empty,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"lV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/obj/machinery/camera/network/civilian_west{dir = 1; c_tag = "Main Module 1F - West Connector"},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"lW" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/obj/machinery/camera/network/civilian_west{dir = 4; c_tag = "Main Module 1F - North Connector"},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"lX" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/camera/network/civilian_west{dir = 8; c_tag = "Main Module 1F - South Connector"},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"lY" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"lZ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"ma" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/structure/railing/steel,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"mb" = (/obj/effect/floor_decal/techfloor,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"mc" = (/obj/effect/floor_decal/corner/black{dir = 6},/obj/structure/flora/pottedplant/stoutbush,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"md" = (/obj/effect/floor_decal/corner/black{dir = 9},/obj/structure/flora/pottedplant/stoutbush,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"me" = (/obj/item/bikehorn/rubberducky,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"mf" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"mg" = (/obj/structure/closet/athletic_mixed,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"mh" = (/obj/structure/table/glass,/obj/item/material/ashtray/glass,/obj/item/storage/fancy/cigar,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/light/small/he{dir = 8},/obj/machinery/camera/network/civilian_west{dir = 4; c_tag = "Refectory Module 1F - Smoking Area"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"mi" = (/obj/structure/sink{dir = 4; pixel_x = 10},/obj/structure/mirror{pixel_x = 28},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/entrepot/cafe_1) +"mj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"mk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"ml" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"mm" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable{icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/disposalpipe/junction{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"mn" = (/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"mo" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"mp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"mq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"mr" = (/obj/structure/window_frame/grille/rglass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/cargo) +"ms" = (/obj/structure/table/rack,/obj/item/stack/material/wood/fifty,/obj/item/stack/material/wood/fifty,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"mt" = (/obj/structure/table/rack,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/steel/fifty,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"mu" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"mv" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window_frame/grille/rglass,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/entrepot/engi_1) +"mw" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"mx" = (/obj/machinery/door/airlock/freezer{name = "Kitchen growing room"; req_access = list(28)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"my" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"mz" = (/obj/machinery/door/airlock/freezer{name = "Kitchen"; req_access = list(28)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"mA" = (/obj/machinery/door/airlock{name = "Changing Room"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"mB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"mC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"mD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"mE" = (/obj/effect/floor_decal/siding/wood{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"mF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"mG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock{name = "Unisex Restrooms"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark,/area/entrepot/cafe_1) +"mH" = (/obj/machinery/door/airlock{name = "Smoking Room"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"mI" = (/obj/structure/window_frame/glass,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/cafe_1) +"mJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"mK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/entrepot/cafe_1) +"mL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"mM" = (/obj/effect/floor_decal/siding/wood{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"mN" = (/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"mO" = (/obj/item/stool/bar,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"mP" = (/obj/structure/table/glass,/obj/item/material/ashtray/glass,/obj/item/reagent_containers/vessel/hookah{pixel_y = 10},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"mQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"mR" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1) +"mS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"mT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/alarm{dir = 8; pixel_x = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"mU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/light/small{dir = 8},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"mV" = (/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"mW" = (/obj/effect/floor_decal/spline/plain/corner/black{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"mX" = (/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"mY" = (/obj/effect/floor_decal/spline/plain/black{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"mZ" = (/obj/machinery/door/airlock{name = "Changing Room"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"na" = (/obj/effect/floor_decal/corner/black{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"nb" = (/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"nc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"nd" = (/obj/structure/railing/steel,/obj/machinery/light/he{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"ne" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"nf" = (/obj/machinery/door/airlock{name = "Showers"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"ng" = (/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"nh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"ni" = (/obj/structure/railing/steel,/obj/machinery/light/he{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"nj" = (/obj/structure/cable{icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"nk" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"nl" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/rough,/area/entrepot/cafe_1) +"nm" = (/obj/effect/floor_decal/techgrid{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"nn" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"no" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"np" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"nq" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"nr" = (/turf/unsimulated/mask,/area/space) +"ns" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"nt" = (/obj/structure/flora/pottedplant/unusual,/obj/structure/railing/steel,/obj/machinery/light/he{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"nu" = (/obj/structure/window_frame/glass,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/entrepot/cafe_1) +"nv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"nw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"nx" = (/obj/effect/floor_decal/corner/black{dir = 5},/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"ny" = (/obj/effect/floor_decal/corner/black{dir = 5},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1) +"nz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"nA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"nB" = (/obj/effect/floor_decal/corner/black{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"nC" = (/obj/effect/floor_decal/corner/black{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"nD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"nE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"nF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"nG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"nH" = (/obj/machinery/light/he{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"nI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"nJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"nK" = (/obj/item/stool/bar,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"nL" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"nM" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"nN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"nO" = (/obj/effect/floor_decal/siding/wood{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"nP" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/shaker,/obj/machinery/light/small/hl{dir = 8},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"nQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"nR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"nS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"nT" = (/obj/effect/floor_decal/siding/wood{dir = 1},/obj/machinery/door/window/westleft{name = "Bar"; dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"nU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/dark,/area/entrepot/cafe_1) +"nV" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"nW" = (/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"nX" = (/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"nY" = (/obj/effect/floor_decal/spline/plain/black,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"nZ" = (/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"oa" = (/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"ob" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"oc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"od" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"oe" = (/obj/machinery/door/airlock{name = "Showers"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"of" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"og" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"oh" = (/obj/machinery/door/airlock{name = "Cleaning Supplies"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"oi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"oj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"ok" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"ol" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"om" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"on" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"oo" = (/obj/machinery/vending/snack,/obj/machinery/power/apc{name = "south bump"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"op" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"oq" = (/obj/structure/table/rack,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/rods/fifty,/obj/item/stack/rods/fifty,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cargo) +"or" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"os" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"ot" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"ou" = (/obj/effect/floor_decal/corner/black{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/light{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/dorm) +"ov" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"ow" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"ox" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"oy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"oz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"oA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"oB" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 5},/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"oC" = (/obj/machinery/light/small/he{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"oD" = (/obj/machinery/light/small/he{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/supply,/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"oE" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/light/small/he{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"oF" = (/obj/item/stool,/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"oG" = (/obj/structure/bed/chair/blue,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"oH" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"oI" = (/obj/effect/floor_decal/spline/plain/black{dir = 6},/obj/effect/floor_decal/spline/plain/corner{dir = 4},/obj/effect/floor_decal/floordetail/tiled,/obj/structure/flora/pottedplant/stoutbush,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"oJ" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"oK" = (/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"oL" = (/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"oM" = (/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/reinforced{name = "Holodeck Projector Floor"},/area/holodeck) +"oN" = (/obj/structure/window_frame/glass,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/deck_1) +"oO" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"oP" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"oQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"oR" = (/obj/machinery/light/he{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"oS" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 8},/obj/machinery/light/he,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"oT" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 4},/obj/machinery/light/he{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"oU" = (/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/techgrid{dir = 8},/obj/machinery/light/he{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"oV" = (/obj/effect/floor_decal/techgrid{dir = 4},/obj/effect/floor_decal/techgrid{dir = 1},/obj/machinery/light/he{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"oW" = (/obj/structure/table/rack,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/plastic/fifty,/obj/item/stack/material/plastic/fifty,/obj/item/stack/material/plasteel/fifty,/obj/item/stack/material/plasteel/fifty,/obj/effect/floor_decal/industrial/box,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"oX" = (/obj/machinery/light/he,/turf/simulated/floor/tiled/freezer,/area/entrepot/cafe_1) +"oY" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/light/small/he,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/dorm) +"oZ" = (/obj/effect/floor_decal/spline/plain{dir = 1},/obj/effect/floor_decal/spline/plain/black,/obj/machinery/light,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_1/fitness) +"pa" = (/obj/structure/bed/chair/blue,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"pb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"pc" = (/obj/structure/sink{dir = 4; pixel_x = 10},/obj/structure/mirror{pixel_x = 28},/obj/machinery/light/small,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_1/fitness) +"pd" = (/obj/structure/closet/secure_closet/personal/empty,/obj/machinery/light/he{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"pe" = (/obj/structure/closet/secure_closet/personal/empty,/obj/machinery/light/he,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"pf" = (/obj/machinery/light/he{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"pg" = (/obj/machinery/light/he{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_1/fitness) +"ph" = (/obj/effect/landmark/map_data,/turf/space,/area/space) +"pi" = (/obj/structure/bed/chair/black,/obj/machinery/light/small/he{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"pj" = (/obj/structure/bed/chair/black{dir = 1},/obj/machinery/light/small/he{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"pk" = (/obj/structure/bed/chair/black{dir = 8},/obj/machinery/light/small/he{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"pl" = (/obj/structure/bed/chair/black{dir = 4},/obj/machinery/light/small/he,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"pm" = (/obj/effect/floor_decal/spline/plain/black{dir = 10},/obj/structure/flora/pottedplant/subterranean,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/obj/machinery/light/small/hl,/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"pn" = (/obj/effect/floor_decal/spline/plain/black{dir = 6},/obj/structure/flora/pottedplant/subterranean,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -24},/obj/machinery/light/small/hl,/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_1/dorm) +"po" = (/turf/space,/turf/space,/area/space) +"pp" = (/turf/simulated/floor/asteroid,/area/space) +"pq" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/closet/crate/critter,/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"pr" = (/obj/item/stool/padded,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/engi_1) +"ps" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"pt" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"pu" = (/obj/machinery/conveyor{dir = 10; id = "garbage"},/obj/structure/sign/warning/vacuum{pixel_x = -32},/obj/random/trash,/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"pv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/disposal/deliveryChute{name = "disposal inlet"; dir = 1},/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning/cee,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"pw" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 2},/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"px" = (/obj/machinery/mass_driver{id = "trash"},/obj/machinery/airlock_sensor{dir = 4; pixel_x = -25},/turf/space,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"py" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"pz" = (/turf/simulated/open,/area/space) +"pA" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/space) +"pB" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/obj/random/junk,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/entrepot/engi_1) +"pC" = (/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating,/area/space) +"pD" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/plating,/area/space) +"pE" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/space) +"pF" = (/obj/structure/closet/secure_closet/personal,/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 2},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/rough,/area/space) +"pG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/space) +"pH" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable/green{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable/green{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/space) +"pI" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled/rough,/area/space) +"pJ" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/deck_1) +"pK" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window_frame/grille/rglass,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/entrepot/deck_1) +"pL" = (/obj/machinery/light/small/he{dir = 4},/obj/machinery/conveyor_switch/oneway{name = "disposal coveyor"; id = "garbage"; convdir = -1},/obj/machinery/button/remote/driver{dir = 8; pixel_x = 25; pixel_y = 12; id = "trash"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/engi_1) +"pM" = (/obj/structure/window_frame/glass,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/entrepot/deck_1) +"pN" = (/obj/effect/floor_decal/stairs{dir = 1},/obj/effect/floor_decal/spline/plain/black,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"pO" = (/obj/structure/window/reinforced,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1/fitness) +"pP" = (/obj/machinery/disposal,/obj/effect/floor_decal/siding/wood{dir = 4},/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"pQ" = (/obj/effect/floor_decal/siding/wood{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_1) +"pR" = (/obj/effect/floor_decal/siding/wood,/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/cafe_1) +"pS" = (/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"pT" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"pU" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"pV" = (/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"pW" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"pX" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"pY" = (/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"pZ" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/natural/grass,/area/entrepot/deck_1) +"qa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_1) +"qb" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"qc" = (/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1) +"qd" = (/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_1/fitness) +"qe" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/obj/machinery/camera/network/civilian_west{dir = 8; c_tag = "Technical Module 1F - East"},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"qf" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/civilian_west{dir = 1; c_tag = "Technical Module 1F - West"},/turf/simulated/floor/tiled/rough,/area/entrepot/engi_1) +"qg" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 6},/obj/machinery/alarm{pixel_y = 24},/obj/machinery/camera/network/civilian_west{dir = 4; c_tag = "Technical Module 1F - Communications"},/turf/simulated/floor/grid/bluegrid,/area/entrepot/engi_1) +"qh" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 8},/obj/machinery/camera/network/civilian_west{dir = 1; c_tag = "Main Module 1F - North"},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"qi" = (/obj/effect/floor_decal/techgrid{dir = 4},/obj/effect/floor_decal/techgrid{dir = 1},/obj/machinery/camera/network/civilian_west{c_tag = "Main Module 1F - South"},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_1) +"qj" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/camera/network/civilian_west{dir = 4; c_tag = "Main Module 1F - West"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"qk" = (/obj/machinery/camera/network/civilian_west{dir = 8; c_tag = "Main Module 1F - East"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_1) +"ql" = (/obj/machinery/camera/network/civilian_west{dir = 1; c_tag = "Main Module 1F - Warehouse South"},/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) +"qm" = (/obj/machinery/camera/network/civilian_west{c_tag = "Main Module 1F - Warehouse North"},/turf/simulated/floor/tiled/dirty,/area/entrepot/cargo) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaanrnraaaaaaaanrnrnraaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaanrnrnraaaaaaaanrnrnrnraaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaponrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaanrnraaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaanrnrnrnraaaaaaaanraaaaaaaaaaaanrnrnrnrnraaaanrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaanraaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaanrnrnraaaaaanraaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraanrnraaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaanrnraaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaanraaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaanrnraanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaanraaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaanraaaaaanrnraaaaaanrnraaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaanraaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnraaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaanrnraaaaaaaaaanrnrnrnrnraaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaanrnrnraaaaaaaaaaaanraaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabipipipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnraaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipipipipaaaaaaipipipaaaaaaaaabababababipipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaanrnrnrnrnrnrnrnrnrnrnraaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipipaaaaabaaaaaaabaaaaaaabaaipipaaaaabababaaaaaaaaaaipipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipaaabaaaaabaaaaaaabaaaaaaabaaaaipaaababaaabaaaaaaaaaaaaaaipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipaaaaababababacacacacadadadacabaaipababaaaaabaaaaaaaaaaaaaaaaipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipababacacacacaeafagahaiajakacababababaaaaaaabaaaaaaaaaaaaaaaaaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacalamanaoapapapaRbwaqacababacadadadadadadaaaaaaaaaaaaaaaaipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacoLaskHaXmyataumKavaoacacacacawaxayazaAadaaaaaaaaaaaaaaaaaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacaBaraCaoaUaYaYbfapaDaEaFbMaoaHaImMaKaLadaaaaaaaaaaaaaaaaaaipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacaMoXaNaoaOaPaQbNcImzmDmLmNaoaTmFaJaVaWadabaaaaaaaaaaaaaaaaaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnraaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacaoaoaomxaoaonPaGaSaZbamFaJazaAadababaaaaaaaaaaaaaaaaipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaadbbbcbdmJbemIbgnSaSbhbinNnOguaLadaaababaaaaaaaaaaaaaaabipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaadarararnQbemIbjnSaSbkbidkaJaVaWadaaaaababaaaaaaaaaaaaabipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadblbmbnnRbemIbonSaSbpbidkaJbsbtbuadadadadaaaaaaaaaaaaabipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacaoaoaoaoaobvnTbxbybidkbzbAbDaobMbEbFadababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacbGbHbIbLaopPombibidsjSkGkGmEmHonmBmCadaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaoaobObPmGpQcapRpRdbbQbQbUbVbWnKbXmOadaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabititabitititabitititabititabaaaaaaaaaaaaaaaaaaacbYbHnUmiaobZoocbaSfDaSaSccddaomhjQmPadababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababaaaaaaaaaaaaaaaaacacacacacacacacmInlnunlmIkIacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitabclclclclclclclclclclclclclabitaaaaaaaaaaaaaaaaaaaaaaabaaaaabcdcecfnLcgchcdabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitabclcocpcoclcqcrcqclcsctcsclabitaaaaaaaaaaaaaaaaaaaaaaabaaaaabcdlWnXnMcgcicdabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitabclcocucoclcqcvcqclcscwcsclabitaaaaaaaaaaaaaaaaaaaaaaababababcdpicfnLcgpjcdababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitabclcyczcAclcBcCcDclcEcFcGclabitaaaaaaaaaaaaaaaaaaaaaaabaaaaabcdckcfopnWlOcdabaaaaabaaaaaaabipipaaaaaaaaabipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipitititabclcRcScTclcUcScTclcVcScWclabitaaaaaaaaaaaaaaaaaaaaaaabaaaaabcdcjcfnLcgcecdabaaaaabaaaaaaabaaipipaaaaaaabaaipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipababababababdgdhdiabdgdhdiabdjdhlLabababaaaaaaaaaaaaaaaaaaaaablylylylylzoNoPpMoPoNlzlylylylyabaaaaabaaaaipipaaaaabaaaaipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababicidbCbCbCbJbCdmdnbJbCdmdndobCdpbCdqdqaaaaaaaaaaaaaaaaaaabablybqbrbBbKcxcHnLcHcJcKcLcMcNlyabababababababipipabababababipipabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipababiibCiWdrdxdydzdAdxdBdCdDdEdFdGdHdIdqababababablylycOcOcOlylzcPcQcXcYcZdapNdadccYdwcQdelzlycOcOcOlylyabababababababababababipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipipiibCjpdrdxdrdQdRdSdTdUdRdEdVdWfLdIdqaaaaababaalyeSdfdfdfoNdfdfediEkjkjkjkimpmpmpnppVdfdfoNdfdfdfdfdtdtdtdtdtdtdtdtdtdtdtabipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitivbCjFdrdxdrhAhXhYhZiaiaibdRieifigdqababababablyoJdudududvdudunVdJdKdKdKoSdKqhdKdLpWdududMdudududfdtdNjadPdXdOdYdZqmeadtabaaipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitiwihjGijikilililimijijijijijinioqeiqcdcdcdcdcdlzqjmjmklYoNebecmueeefegegegegegefehpXeiejoNlRnoeBdflKekjcpqemdOeneodOepdtabaaaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajNdhdqirhVisiuixiyqfiHiziIiziLiQiAiDeqcmckpklPceeDlMmlndesetetevmueeegabaaaaaaabegehpXeyetetesniiRdfezeAkgeAeAeAiSiTmaeCeCabababipabipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitabdqiGiViGiGiGiJiGiGiGiYiGiKjkjliOeReHeHeHhReHiFowmleEeFeteGeImueeegaaaaaaaaaaegehpXeJeKeteLeEiRdueMeNkueNeNeNiZePeQeCaaabaaaaaaaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitabdqiUjmjoiGjqjBjCiGqgoBjCiGjbjEjHmvmwpsmwpJmwpKkfnjerhShThUiBmuoTegaaaaaaaaaaegoUpYpZiMhTiPerlNmqmrjeoqmsmtgcnsjdnteCaaabaaaaaaaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitabdqjnprpLiGoCjroDiGoEjDoDiGoWiNiOeRhWnYiChWhWiFdunVeEeFetjfjgmueeegaaaaaaaaaaegehdfjhjieteLeEordueMeNeNeNeNeNkhePeQeCaaabaaaaaaaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitabdqpupBptiGjIjJjKiGjIiXjKiGjLlUlTeqcelVplcicneDdfnVnHjjetethmmueeegabaaaaaaabegehdfhoetetjjoRorqkezjUjUjUjUjUkmksmbeCeCabababipabipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitabdqpvpwbCdqdqjMjTkCdqdqdqdqbCbCbCiqcdcdcdcdcdlzdfoxnolSoNjVjWmueeefegegegegegefehdfjXjYoNlZmkoydflKjZdOkakbdOkckddOkedtabaaaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitabdqpxgIbCababababjsababababababababababababablydfpSpTpTpUpTpTmmnmkkqikkoVkkkkkkkldlnknkoOnkozoAoKdtjZqlknkodOkpkqelkrdtabaaipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitabdqjObCbCaajtjujujvjujujwaaaaabaaaaaaaaababaalydfdfdfdfoNdfdfmnnqkjkjkjeYnnnnnnokmodfdfoNdfdfdfdfdtdtdtdtdtdtdtdtdtdtdtabipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitababaaabaajyjzjAaaabaajyjzjAaaabababababababablylycOcOcOlylzbqkvkwkxkykzfakzkBkDkEkxkFlzlycOcOcOlylyabababababababababababipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitititaajxabjyjzjAabababjyjzjAabjxaaaaaaaaaaaaaaaaaaaaaaabablylDlEjPlGlHcHnLcHdclIltlGdelyabababababababipipabababababipipabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxaajyjzjAaaabaajyjzjAaajxaaaaaaaaaaaaaaaaaaaaaaaaablylylylylzoNoPpMoPoNlzlylylylyabaaaaabaaaaipipaaaaabaaaaipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxaajyjzjAaaabaajyjzjAaajxaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabcdcecfnLcgchcdabaaaaabaaaaaaabaaipipaaaaaaabaaipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxaajyjzjAaaabaajyjzjAaajxaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabcdlQnZktcgckcdabaaaaabaaaaaaabipipaaaaaaaaabipipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapzpApCaaaajxaajyjzjAaaabaajyjzjAaajxaaaaaaaaaaaaaaaaaaaaaaaaaaababababcdpicfnLcgpjcdababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapDpEpFaaaajxaajyjzjAaaabaajyjzjAaajxaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabcdcicfkAoalXcdabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapGpHpIaaaajxaajyjzjAaaabaajyjzjAaajxaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabcdcjcfnLcgcecdabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxabjyjzjAabababjyjzjAabjxaaaaaaaaaaaaaaaaaaaaaaaaabeUeUeUeUeVeZfkkUfkeZeVeUeUeUeUabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxaajyjzjAaaaaaajyjzjAaajxaaaaaaaaaaaaaaaaabeUeUeUeUfbfcfdfefgfhfjmRfjflfnfofpfreUeUeUeUabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaababeUfsftogohmSnwnwewoloQqalCmQfjfjfjfjfmoHfjkSababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxjxjxjxjxjxjxjxjxaaaaaaaaaaaaaaaaababaaeUfzoifAfBnxnynygefPfQfQfQfPfRfCfCfCfBfvfjkSaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaeUfSojkOeUkSkSkTggkVkWkXkYfxfyfEkSkSeUfFfjkSaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxababababababbRbRbSbSbSbSbRbReTfBfufBeUaakZlagglblcldlefGfyfTkZaaeUeWgqkSkSkSkSkSkSkSkSkSababababababjxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjxaaaaaaaaaaaabRgweueOfieugGfwfHfIfJfKeUkSkSkTgglflglhlijRfyfEkSkSeUoMfUfUfUfUfUfUfUfUfUkSaaaaaaaaaaaajxabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababjxaaaaaaaaaaaabRfMeufNfOeufVfWfXfYfZgdeZeXeXeXexgrgagagafPkLeXeXgbeZfUfUfUfUfUfUfUfUfUfUkSaaaaaaaaaaaajxababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipaajxaaaaaaaaaaaabRbTeufNfOeufqfwgfgnfZnanboQoQoQgsgtoQgvpynAqbqbqbqcgqfUfUfUfUfUfUfUfUfUfUkSaaaaaaaaaaaajxaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipabjxababababababbRfMeufNfOeufVfwgofZfZnBeZghgigjgkmcfjfPlAmdglgmkJgHeZfUfUfUfUfUfUfUfUfUfUkSababababababjxabipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipaaabaaaaaaaaaaaagpgNmVmWmXmVmYgOnCobotoufBfBfBfBfBfBkKeZlBfBfBfBfBfBfBfUfUfUfUfUfUfUfUfUfUkSaaaaaaaaaaaaabaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipaaabaaaaaaaaaaaabRpmgxgygzgFpnfwhkgJgKkMffgAgBgCgDffngmfmTffgLgTpdgMfffUfUfUfUfUfUfUfUfUfUkSaaaaaaaaaaaaabaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipabjxababababababbRbRbSbSbSbSbRbRkNkPljfwffffffmUncnfnhnvnzmAnIofgQoFfffUfUfUfUfUfUfUfUfUfUkSababababababjxabipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipaajxaaaaaaabaaaaababaaaaaaaaabbRlklllkfwgRgRgRocgSffpfnJpgffgPgPgPgPmZfUfUfUfUfUfUfUfUfUfUkSaaaaaaaaaaaajxaaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababjxaaaaaaabaaaaaaababaaaaaaaabRlkoYlkfwmeneneodgSffgUgVgWffgMgPgQgQfffUfUfUfUfUfUfUfUfUfUkSaaaaaaaaaaaajxababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjxaaaaaaabaaaaaaaaababaaaaaabRbRbRbRbRgXgXgXocpcffgYgYgYffgMgPpegMfffUfUfUfUfUfUfUfUfUfUkSaaaaaaaaaaaajxabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxababababaaaaaaaaaaababaaaaaaaaaaabgZgZgZffoeffhahbhcmghaffmZffffffffgZeUkSkSkSkSkSkSkSkSababababababjxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaababaaaaaaaaaaaaabhdheosnDpbnEnFnGhfhggEhhpaoGhhgZaaaaaaaaaaaaaaababaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaabababaaaaaaaaaaabhdhiovqdgEgEgEgEgEgEgEgEgEgEgEhdaaaaaaaaaaaaababaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaababaaababaaaaaagZgZgZffhjpOhlgElvhnhnhnhnhnhnhnlFhdaaaaaaaaaaabababaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaababaaaaaaababaaabgZhphqhrhshthugEhvhwhxhxhxhyhyhxhzhdaaaaaaaaababaaababaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaababaaaaaaaaaaababhdhdhBhChDhEhFhGgEhvhHhIhIhIhIhIhIhzhdaaaaaaabaaaaaaaaababaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababaaaaaaaaaaaaababhdhJhKhLhMhLhNgEgEhvhHhOhIhIhIhIhIhzhdaaaaababaaaaaaaaaaababaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaababaaaaaaaaaaaaaaababhdhdhPhQkQhskRlmgEhvhHhIhIhIhIhIhIhzhdaaababaaaaaaaaaaaaaaababaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipaaaaabababaaaaaaaaaaaaaaababaaabgZlnlolplqlrlsgElJluoZlululuoZluoIhdababababaaaaaaaaaaaaaaabababaaaajxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipaaaaababaaaaaaaaaaaaaaababaaaaaagZgZgZgZlwgZlxhdhdhdhdhdhdhdhdhdhdhdabaaaaababaaaaaaaaaaaaaaababaaaajxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipababaaaaaaaaaaaaaaababaaaaaaaaabaaaaaaaaabaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaababaaaaaaaaaaaaaaababjxjxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipabaaaaaaaaaaaaaaababaaaaaaaaaaabaaaaaaaaabaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaaaababaaaaaaaaaaaaaaabjxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipaaaaaaaaaaaaababaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaaaaaababaaaaaaaaaaaajxjxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipaaaaaaaaababaaaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaaaaaaaababaaaaaaaajxjxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipaaaaabababababababababababaaaaaaaaabaaaaaaaaaaaaabaaaaaaaaabababababababababababaaaajxjxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipababaaaaaaaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaaaaaaaaaaaababjxjxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipipaaaaaaaaaaaaaaaaaaabjxjxjxjxjxababababababjxjxjxjxjxabaaaaaaaaaaaaaaaaaajxjxjxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaipipipaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaajxjxjxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabipipipipaaaaipipipipabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaabaaaaabaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaanraaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabipipipipipipabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnraaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaanrnrnraaaaaanrnraaaaaaaaaaaaaaaaaappppppppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaanrppppppnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrppppppppnrnrnrnrnrnrnrnraaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrppppppnrnrnrnrnrnrnrnrnrnraaaaaanrnrnraaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnrnrnrnrppppppnrppppnrppnrnrnrnrnrnrnrnrnrnrnrnraaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrppppppppppppppnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnraaaanrnrnrnrnrnrnrnrnrnrppppppppppnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaanrnrnrnraanrnrnrnrnrnrnrnrnrnrnrppnrppppnrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrppppppppppnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaanrnrnrnrnrnrnrppppnrnrnrnrnrnrppppnrppppppnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrppppppnrnrppppppppppppppppppppnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaanrnrnrnrnrnrnrnrnrnrppppppppppppppppppnrnrnrppppnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraanrnrnrnraaaaaaaanrnrnrnrnrnrnrnrnrnrnrppppppppnrnrnrnrnrnrnrppnrnrnrnrnrnrnraaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaanrnrnraanraaaanrnrnrnrnrnrnrnrnrnrnrppnrnrppppnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaanrnraaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrppppppnrnrnrnrnrnrnrnrnrnrnraaaanraaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaanrnrnraaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaanrnraaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaanrnraaaaaanraaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaanrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaanrnrnrnrnrnrnrnrnrnrnrnrnrnraaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaanraaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaanrnrnraaaaaaaaaaaaaaaanraaaaaaaanrnraaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaanrnraaaaaanrnrnrnraaaanraaaanrnrnrnraaaaaanraaaaaaaaaanrnrnraaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnrnrnraaaaaaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaanrnrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaanrnrnraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanrnraaaaaaaaaaaaaaaaaaaaaaaanraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +phaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/entrepot/entrepot-2.dmm b/maps/entrepot/entrepot-2.dmm new file mode 100644 index 00000000000..d7b48344140 --- /dev/null +++ b/maps/entrepot/entrepot-2.dmm @@ -0,0 +1,995 @@ +"aa" = (/turf/space,/area/space) +"ab" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/cafe_2) +"ac" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/dock) +"ad" = (/turf/simulated/wall/r_wall,/area/entrepot/crew_2) +"ae" = (/turf/simulated/wall/r_wall,/area/entrepot/arrivals) +"af" = (/obj/machinery/door/airlock{name = "Cabin 2"; id_tag = "Room2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"ag" = (/turf/simulated/wall/r_wall,/area/entrepot/engi_2) +"ah" = (/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"ai" = (/turf/simulated/open,/area/entrepot/cafe_2) +"aj" = (/obj/machinery/gateway{dir = 9},/obj/machinery/light/he{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"ak" = (/turf/simulated/wall/r_wall,/area/entrepot/deck_2) +"al" = (/obj/machinery/door/airlock/external/bolted_open,/obj/machinery/door/firedoor/border_only,/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/rough,/area/entrepot/dock) +"am" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"an" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/deck_2) +"ao" = (/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"ap" = (/turf/simulated/wall,/area/entrepot/deck_2) +"aq" = (/turf/simulated/open,/area/entrepot/deck_2) +"ar" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"as" = (/obj/structure/railing/steel,/turf/simulated/open,/area/entrepot/deck_2) +"at" = (/turf/simulated/floor/tiled/dark/rough,/area/hallway/secondary/entry/fore) +"au" = (/turf/simulated/floor/plating,/area/entrepot/dock) +"av" = (/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"aw" = (/obj/structure/railing/darkwood{dir = 4},/turf/simulated/open,/area/entrepot/cafe_2) +"ax" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"ay" = (/turf/space,/area/crew_quarters/bar) +"az" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/entrepot/engi_2) +"aA" = (/obj/machinery/gateway{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"aB" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/crew_2) +"aC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aD" = (/obj/machinery/floor_light/prebuilt,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aE" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"aF" = (/obj/machinery/door/airlock/glass{name = "Gateway"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"aG" = (/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"aH" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/structure/sign/warning/airlock,/turf/simulated/floor/plating,/area/entrepot/dock) +"aI" = (/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"aJ" = (/turf/simulated/wall/r_wall,/area/entrepot/crew_2/dorm) +"aK" = (/obj/machinery/floor_light/prebuilt,/obj/machinery/media/jukebox,/obj/machinery/camera/network/civilian_east{dir = 1; c_tag = "Refectory Module 2F - North"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aL" = (/obj/machinery/floor_light/prebuilt,/obj/structure/table/glass,/obj/item/music_tape/custom,/obj/item/music_tape/custom,/obj/item/music_tape/custom,/obj/item/music_tape/custom,/obj/item/music_tape/custom,/obj/item/music_tape/custom,/obj/item/music_tape/custom,/obj/item/music_tape/custom,/obj/item/music_tape/custom,/obj/item/music_tape/custom,/obj/item/music_tape_box/valhalla,/obj/item/music_tape_box/jazz,/obj/item/music_tape_box/frontier,/obj/item/music_tape_box/exodus,/obj/item/music_tape_box/classic,/obj/item/device/multitool,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aM" = (/obj/effect/floor_decal/stairs,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aN" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/crew_2/dorm) +"aO" = (/obj/effect/floor_decal/siding/wood{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aP" = (/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aQ" = (/obj/structure/bed/couch/right/sofa,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aR" = (/obj/structure/bed/couch/left/sofa,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aS" = (/obj/structure/railing/darkwood,/obj/effect/floor_decal/siding/wood,/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aT" = (/obj/structure/table/darkwood_reinforced,/obj/item/material/ashtray/bronze{pixel_x = 5},/obj/effect/floor_decal/siding/wood{dir = 1},/obj/item/device/flashlight/lamp/brown{pixel_x = -3; pixel_y = 6},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aU" = (/obj/structure/table/darkwood_reinforced,/obj/item/material/ashtray/bronze,/obj/item/reagent_containers/vessel/hookah,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aV" = (/obj/machinery/gateway{dir = 5},/obj/machinery/light/he{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"aW" = (/obj/structure/railing/darkwood,/turf/simulated/open,/area/entrepot/cafe_2) +"aX" = (/obj/structure/railing/darkwood{dir = 4},/obj/structure/railing/darkwood,/turf/simulated/open,/area/entrepot/cafe_2) +"aY" = (/obj/structure/bed/couch/left/sofa{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"aZ" = (/obj/structure/bed/couch/right/sofa{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"ba" = (/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/effect/floor_decal/siding/wood{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"bb" = (/obj/machinery/gateway{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"bc" = (/obj/effect/floor_decal/techfloor,/turf/simulated/floor/reinforced/airless,/area/space) +"bd" = (/obj/effect/floor_decal/techgrid{dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"be" = (/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/techgrid{dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"bf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"bg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"bh" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"bi" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"bj" = (/obj/structure/flora/pottedplant/minitree,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/camera/network/civilian_east{dir = 1; c_tag = "Main Module 2F - Docks North"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"bk" = (/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/techgrid{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"bl" = (/obj/effect/floor_decal/techgrid{dir = 8},/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/spline/plain/blue{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black{dir = 4},/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"bm" = (/obj/structure/table/darkwood_reinforced,/obj/machinery/light/small/hl,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"bn" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/obj/effect/floor_decal/siding/wood{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"bo" = (/obj/effect/floor_decal/techfloor{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"bp" = (/obj/effect/floor_decal/techgrid{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"bq" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/techgrid{dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"br" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/techgrid,/turf/simulated/floor/reinforced/airless,/area/space) +"bs" = (/obj/effect/floor_decal/siding/wood/corner{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"bt" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"bu" = (/obj/effect/floor_decal/techgrid{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"bv" = (/obj/effect/floor_decal/techgrid,/turf/simulated/floor/reinforced/airless,/area/space) +"bw" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/techgrid{dir = 8},/obj/effect/floor_decal/spline/plain/blue{dir = 8},/obj/effect/floor_decal/spline/plain/blue{dir = 1},/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"bx" = (/obj/effect/floor_decal/siding/wood/corner,/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"by" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"bz" = (/obj/effect/floor_decal/techfloor{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"bA" = (/obj/effect/floor_decal/techfloor{dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"bB" = (/obj/structure/bed/couch/left/sofa{dir = 1},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"bC" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/spline/plain/blue{dir = 1},/obj/effect/floor_decal/spline/plain/corner/black{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"bD" = (/obj/effect/floor_decal/techfloor{dir = 8},/obj/effect/floor_decal/spline/plain/blue{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black{dir = 4},/turf/simulated/floor/grid/bluegrid/airless,/area/space) +"bE" = (/obj/effect/floor_decal/techfloor{dir = 4},/obj/effect/floor_decal/spline/plain/blue{dir = 4},/obj/effect/floor_decal/spline/plain/corner/black,/turf/simulated/floor/grid/bluegrid/airless,/area/space) +"bF" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"bG" = (/turf/simulated/open,/area/entrepot/crew_2/fitness) +"bH" = (/obj/effect/floor_decal/techfloor{dir = 8},/obj/effect/floor_decal/spline/plain/blue{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/turf/simulated/floor/grid/bluegrid/airless,/area/space) +"bI" = (/obj/effect/floor_decal/techgrid{dir = 8},/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/spline/plain/blue{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"bJ" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/spline/plain/blue{dir = 1},/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/obj/effect/floor_decal/spline/plain/corner/black{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"bK" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai) +"bL" = (/obj/effect/floor_decal/techfloor{dir = 4},/obj/effect/floor_decal/spline/plain/blue{dir = 4},/obj/effect/floor_decal/spline/plain/corner/black,/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/turf/simulated/floor/grid/bluegrid/airless,/area/space) +"bM" = (/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"bN" = (/obj/machinery/light,/obj/machinery/camera/network/civilian_east{dir = 1; c_tag = "Living Module 2F - North"},/turf/simulated/open,/area/entrepot/crew_2) +"bO" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/spline/plain/blue{dir = 1},/obj/effect/floor_decal/spline/plain/corner/black{dir = 4},/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"bP" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"bQ" = (/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/techgrid{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"bR" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"bS" = (/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"bT" = (/obj/structure/railing/steel,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"bU" = (/turf/simulated/wall/r_wall,/area/entrepot/crew_2/fitness) +"bV" = (/obj/structure/table/standard,/obj/item/towel,/obj/item/reagent_containers/vessel/fitnessflask/proteinshake,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"bW" = (/obj/structure/fitness/weightlifter,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"bX" = (/obj/structure/reagent_dispensers/water_cooler,/obj/structure/sign/flag/rainbow{pixel_y = 32},/obj/machinery/camera/network/civilian_east{c_tag = "Living Module 2F - Gym"},/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"bY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/standard,/obj/item/reagent_containers/vessel/bottle/cola,/obj/item/storage/box/cups,/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"bZ" = (/obj/item/stool,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"ca" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"cb" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/reinforced/airless,/area/space) +"cc" = (/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"cd" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/techgrid{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/reinforced/airless,/area/space) +"ce" = (/obj/structure/railing/steel{dir = 1},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/entrepot/deck_2) +"cf" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"cg" = (/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"ch" = (/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"ci" = (/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/techgrid{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"cj" = (/obj/effect/floor_decal/industrial/shutoff{dir = 4},/obj/effect/floor_decal/industrial/outline,/turf/simulated/floor/reinforced/airless,/area/space) +"ck" = (/obj/effect/floor_decal/floordetail/borderfloor/black/full,/turf/simulated/floor/reinforced/airless,/area/space) +"cl" = (/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/spline/plain/blue,/obj/effect/floor_decal/spline/plain/corner/black,/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"cm" = (/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/spline/plain/blue,/obj/effect/floor_decal/spline/plain/corner/black,/turf/simulated/floor/reinforced/airless,/area/space) +"cn" = (/turf/simulated/open,/area/entrepot/engi_2) +"co" = (/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"cp" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/spline/plain/blue,/obj/effect/floor_decal/spline/plain/corner/black,/turf/simulated/floor/reinforced/airless,/area/space) +"cq" = (/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/spline/plain/blue,/obj/effect/floor_decal/spline/plain/blue{dir = 4},/obj/effect/floor_decal/spline/plain/corner/black,/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"cr" = (/obj/item/immovable_wand,/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/techgrid{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"cs" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/techgrid{dir = 8},/obj/effect/floor_decal/spline/plain/blue{dir = 1},/obj/effect/floor_decal/spline/plain/blue{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/obj/effect/floor_decal/spline/plain/corner/black{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"ct" = (/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/techgrid{dir = 8},/obj/effect/floor_decal/spline/plain/blue{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"cu" = (/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/spline/plain/blue,/obj/effect/floor_decal/spline/plain/blue{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/obj/effect/floor_decal/spline/plain/corner/black,/turf/simulated/floor/reinforced/airless,/area/space) +"cv" = (/obj/structure/bed/padded,/turf/simulated/floor/trim/carpet/purple,/area/entrepot/crew_2/dorm) +"cw" = (/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"cx" = (/obj/structure/railing/steel,/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"cy" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/arrivals) +"cz" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"cA" = (/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"cB" = (/obj/structure/table/steel,/obj/item/material/ashtray/glass,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"cC" = (/obj/structure/railing/steel,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/arrivals) +"cD" = (/obj/effect/floor_decal/techgrid,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"cE" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/entrepot/crew_2) +"cF" = (/obj/structure/table/woodentable,/obj/item/modular_computer/laptop/preset/custom_loadout/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"cG" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"cH" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"cI" = (/obj/machinery/status_display,/turf/simulated/wall,/area/entrepot/dock) +"cJ" = (/turf/simulated/wall,/area/entrepot/dock) +"cK" = (/obj/structure/sign/warning/airlock,/turf/simulated/wall/r_wall,/area/entrepot/dock) +"cL" = (/turf/simulated/wall,/area/entrepot/crew_2/dorm) +"cM" = (/obj/effect/floor_decal/techgrid{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"cN" = (/obj/structure/railing/steel,/turf/simulated/open,/area/entrepot/dock) +"cO" = (/obj/structure/table/steel,/obj/item/storage/box/donut,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"cP" = (/turf/simulated/open,/area/entrepot/dock) +"cQ" = (/obj/machinery/status_display,/turf/simulated/wall,/area/entrepot/deck_2) +"cR" = (/obj/structure/railing/steel{dir = 1},/turf/simulated/open,/area/entrepot/deck_2) +"cS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"cT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"cU" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"cV" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/machinery/status_display,/turf/simulated/floor/grid/greengrid,/area/entrepot/deck_2) +"cW" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/grid/greengrid,/area/entrepot/deck_2) +"cX" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/rough,/area/entrepot/dock) +"cY" = (/obj/effect/floor_decal/industrial/loading{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/dock) +"cZ" = (/obj/machinery/gateway/centerstation,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"da" = (/obj/machinery/gateway{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"db" = (/obj/structure/sign/flag/nt,/turf/simulated/wall/r_wall,/area/entrepot/arrivals) +"dc" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/arrivals) +"dd" = (/obj/machinery/gateway{dir = 10},/obj/effect/landmark/joinlate/gate,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"de" = (/obj/machinery/gateway,/obj/effect/landmark/joinlate/gate,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"df" = (/obj/machinery/gateway{dir = 6},/obj/effect/landmark/joinlate/gate,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"dg" = (/obj/machinery/door/airlock/glass{name = "Gateway"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"dh" = (/turf/simulated/wall/r_wall,/area/entrepot/medbay) +"di" = (/obj/machinery/door/airlock/external/bolted_open,/obj/effect/floor_decal/industrial/box/yellow,/turf/simulated/floor/plating,/area/entrepot/dock) +"dj" = (/turf/simulated/floor/tiled/dark/mono,/area/entrepot/arrivals) +"dk" = (/obj/structure/railing/steel,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"dl" = (/obj/structure/railing/steel,/turf/simulated/wall,/area/entrepot/arrivals) +"dm" = (/obj/structure/railing/steel,/turf/simulated/open,/area/entrepot/arrivals) +"dn" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/entrepot/arrivals) +"do" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"dp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"dq" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/entrepot/cafe_2) +"dr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"ds" = (/obj/structure/cryofeed{dir = 2},/turf/simulated/floor/plating,/area/entrepot/arrivals) +"dt" = (/turf/simulated/wall,/area/entrepot/arrivals) +"du" = (/obj/structure/lattice,/turf/space,/area/space) +"dv" = (/obj/machinery/shower{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/spline/plain,/obj/item/reagent_containers/vessel/hookah/makeshift,/obj/item/soap/nanotrasen,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_2/dorm) +"dw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"dx" = (/obj/machinery/vending/snack,/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"dy" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/entrepot/crew_2) +"dz" = (/obj/structure/lattice,/obj/structure/window_frame/grille,/turf/space,/area/space) +"dA" = (/obj/machinery/vending/cola,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"dB" = (/obj/structure/table/standard,/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"dC" = (/obj/machinery/light{dir = 4},/turf/simulated/open,/area/entrepot/crew_2) +"dD" = (/obj/machinery/light{dir = 8},/turf/simulated/open,/area/entrepot/crew_2) +"dE" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"dF" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/spline/plain/red{dir = 4},/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled/mono,/area/entrepot/crew_2/fitness) +"dG" = (/obj/machinery/cryopod{dir = 2},/obj/machinery/light/he{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"dH" = (/obj/machinery/cryopod{dir = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"dI" = (/obj/machinery/light{dir = 1},/obj/machinery/camera/network/civilian_east{c_tag = "Living Module 2F - North"},/turf/simulated/open,/area/entrepot/crew_2) +"dJ" = (/obj/structure/railing/steel{dir = 8},/obj/structure/railing/steel,/turf/simulated/open,/area/entrepot/arrivals) +"dK" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"dL" = (/obj/structure/ladder,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"dM" = (/turf/simulated/wall,/area/turret_protected/ai) +"dN" = (/obj/effect/landmark/start/crew/ai,/obj/machinery/newscaster/security_unit{pixel_x = 32; pixel_y = 32},/obj/machinery/requests_console{pixel_x = -32; pixel_y = 32; department = "AI"; departmentType = 5},/obj/structure/cable/cyan{icon_state = "0-2"; d2 = 2},/obj/item/device/radio/intercom/custom{dir = 2; pixel_x = -28; pixel_y = 4},/obj/item/device/radio/intercom/private{dir = 2; pixel_x = 28; pixel_y = 4},/obj/item/device/radio/intercom/broadcasting{pixel_y = 22},/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai) +"dO" = (/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"dP" = (/obj/machinery/light/small{dir = 8},/obj/machinery/turret/network/station,/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai) +"dQ" = (/obj/machinery/vending/cigarette,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"dR" = (/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/techgrid{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"dS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 1},/obj/structure/cable/cyan{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc/super/critical{name = "north bump"; dir = 1; pixel_y = 24; is_critical = 1},/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai) +"dT" = (/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"dU" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_2/dorm) +"dV" = (/obj/machinery/status_display,/turf/simulated/wall,/area/entrepot/crew_2/dorm) +"dW" = (/obj/structure/sign/flag/nt,/turf/simulated/wall,/area/entrepot/dock) +"dX" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/plating,/area/entrepot/dock) +"dY" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"dZ" = (/obj/structure/flora/pottedplant/shoot,/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"ea" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"eb" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/effect/floor_decal/spline/plain/black{dir = 1},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"ec" = (/obj/structure/closet/secure_closet/personal/cabinet,/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"ed" = (/obj/effect/floor_decal/corner/white,/obj/effect/floor_decal/corner/red{dir = 5},/obj/effect/floor_decal/spline/plain/black{dir = 1},/obj/machinery/camera/network/civilian_east{c_tag = "Living Module 2F - Basketball Court"},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"ee" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/brown,/obj/item/material/ashtray/plastic,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/turf/simulated/floor/trim/carpet/purple,/area/entrepot/crew_2/dorm) +"ef" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/spline/plain/red{dir = 4},/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/mono,/area/entrepot/crew_2/fitness) +"eg" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/crew_2/fitness) +"eh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"ei" = (/obj/structure/sink{dir = 8; pixel_x = -10},/obj/structure/mirror{pixel_x = -30},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_2/dorm) +"ej" = (/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_2/dorm) +"ek" = (/obj/machinery/door/airlock{name = "Restroom"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"el" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"em" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"en" = (/obj/structure/railing/steel,/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"eo" = (/turf/simulated/floor/tiled/white/rough,/area/entrepot/crew_2/fitness) +"ep" = (/obj/structure/window/reinforced{dir = 4},/obj/item/stool,/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"eq" = (/obj/structure/sink{dir = 4; pixel_x = 10},/obj/structure/mirror{pixel_x = 30},/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_2/dorm) +"er" = (/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"es" = (/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"et" = (/obj/effect/floor_decal/corner/white{dir = 8},/obj/effect/floor_decal/corner/white{dir = 1},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"eu" = (/obj/machinery/cryopod{dir = 2},/obj/machinery/alarm{dir = 8; pixel_x = 25},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"ev" = (/obj/effect/floor_decal/corner/red,/obj/effect/floor_decal/corner/white{dir = 8},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"ew" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"ex" = (/obj/effect/floor_decal/corner/red{dir = 10},/obj/effect/floor_decal/corner/red{dir = 4},/obj/effect/floor_decal/spline/plain/black{dir = 4},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"ey" = (/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"ez" = (/obj/structure/fitness/punchingbag,/turf/simulated/floor/tiled/white/rough,/area/entrepot/crew_2/fitness) +"eA" = (/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"eB" = (/obj/effect/floor_decal/spline/plain/red{dir = 4},/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled/mono,/area/entrepot/crew_2/fitness) +"eC" = (/obj/effect/floor_decal/trimline,/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"eD" = (/obj/effect/floor_decal/corner/white{dir = 1},/obj/effect/floor_decal/corner/white{dir = 8},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/white,/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"eE" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"eF" = (/obj/item/beach_ball/basketball,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"eG" = (/obj/structure/hoop{dir = 8},/obj/effect/floor_decal/corner/red/full,/obj/effect/floor_decal/spline/plain/black{dir = 4},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"eH" = (/obj/structure/bed/chair/comfy/brown,/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"eI" = (/obj/structure/closet/secure_closet/personal/cabinet,/obj/item/clothing/mask/smokable/cigarette/spliff,/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"eJ" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"eK" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"eL" = (/obj/effect/floor_decal/corner/red{dir = 4},/obj/effect/floor_decal/corner/white{dir = 1},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"eM" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"eN" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_2/dorm) +"eO" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/effect/floor_decal/corner/red,/obj/effect/floor_decal/spline/plain/black{dir = 4},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"eP" = (/obj/item/stool,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"eQ" = (/obj/machinery/shower{dir = 8},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/spline/plain{dir = 1},/obj/item/soap/nanotrasen,/turf/simulated/floor/tiled/freezer,/area/entrepot/crew_2/dorm) +"eR" = (/obj/machinery/vending/fitness,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"eS" = (/obj/effect/floor_decal/siding/wood{dir = 4},/obj/machinery/light/small/hl,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/camera/network/civilian_east{dir = 1; c_tag = "Refectory Module 2F - South"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"eT" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"eU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"eV" = (/obj/structure/railing/steel{dir = 4},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"eW" = (/obj/item/stool,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"eX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"eY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"eZ" = (/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/techfloor,/turf/simulated/floor/reinforced/airless,/area/space) +"fa" = (/obj/machinery/button/remote/airlock{name = "Door Bolts"; dir = 1; pixel_x = 25; pixel_y = -25; id = "Room2"; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"fb" = (/obj/machinery/power/apc{name = "south bump"; dir = 2; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fc" = (/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fe" = (/obj/machinery/button/remote/airlock{name = "Door Bolts"; dir = 1; pixel_x = 25; pixel_y = -25; id = "Room1"; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"ff" = (/obj/structure/sign/double/picturesky/left{pixel_y = 32},/obj/structure/bed/couch/left/blue,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fg" = (/obj/structure/sign/double/picturesky/right{pixel_y = 32},/obj/structure/bed/couch/right/blue,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fh" = (/obj/structure/bookcase/prefitted/fiction,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fi" = (/obj/structure/flora/pottedplant/tropicalflowers,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"fj" = (/obj/machinery/door/airlock{name = "Cabin 1"; id_tag = "Room1"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fk" = (/obj/structure/sign/double/pictureplanet/left{pixel_y = 32},/obj/structure/coatrack,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"fl" = (/obj/structure/sign/double/pictureplanet/right{pixel_y = 32},/obj/structure/bed/couch/left/purple,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"fm" = (/obj/structure/bed/couch/right/purple,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"fn" = (/obj/structure/closet/secure_closet/personal/cabinet,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"fo" = (/obj/structure/sink{dir = 8; pixel_x = -12},/obj/structure/mirror{pixel_x = -30},/turf/simulated/floor/tiled/dark,/area/entrepot/crew_2/dorm) +"fp" = (/obj/structure/toilet{dir = 8},/turf/simulated/floor/tiled/dark,/area/entrepot/crew_2/dorm) +"fq" = (/obj/structure/table/glass,/obj/item/material/ashtray/glass,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fr" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fs" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"ft" = (/obj/structure/table/glass,/obj/machinery/chemical_dispenser/bar_coffee/full,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fu" = (/obj/structure/bookcase/prefitted/fiction,/obj/machinery/light{dir = 8},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"fv" = (/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"fw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"fx" = (/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"fy" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"fz" = (/obj/machinery/door/window{name = "AI Core Door"; dir = 2; req_access = list(); req_one_access = list(109,199)},/obj/structure/cable/cyan{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable/cyan{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/flasher{pixel_x = 22; pixel_y = 24; id = "AI"},/obj/machinery/turret_control_panel/ai_chamber{pixel_x = 36; pixel_y = 24},/obj/machinery/hologram/holopad,/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai) +"fA" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small/hl{dir = 1},/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"fB" = (/obj/structure/sink{dir = 4; pixel_x = 10},/obj/structure/mirror{pixel_y = 30},/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"fC" = (/obj/structure/sign/crime,/turf/simulated/wall/r_wall,/area/entrepot/crew_2) +"fD" = (/obj/machinery/door/airlock{name = "Restroom"},/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"fE" = (/obj/structure/bed/chair,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"fF" = (/obj/machinery/computer/cryopod{pixel_x = -32},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/obj/effect/landmark/joinlate/cryo,/turf/simulated/floor/tiled/white/rough,/area/entrepot/arrivals) +"fG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"fH" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/entrepot/crew_2) +"fI" = (/obj/machinery/cryopod,/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"fJ" = (/obj/structure/railing/steel,/turf/simulated/open,/area/entrepot/crew_2) +"fK" = (/obj/structure/railing/steel{dir = 1},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"fL" = (/obj/structure/cryofeed,/turf/simulated/floor/plating,/area/entrepot/crew_2) +"fM" = (/obj/machinery/door/airlock{name = "Bathroom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/crew_2/dorm) +"fN" = (/obj/structure/table/marble,/obj/item/storage/fancy/candle_box,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/crew_2/dorm) +"fO" = (/obj/structure/bed/couch/left/blue{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fP" = (/obj/structure/bed/couch/right/blue{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"fQ" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/landmark/joinlate/cryo,/turf/simulated/floor/tiled/white/rough,/area/entrepot/arrivals) +"fR" = (/obj/structure/railing/steel{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"fS" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/landmark/joinlate/cryo,/turf/simulated/floor/tiled/white/rough,/area/entrepot/arrivals) +"fT" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/landmark/joinlate/cryo,/turf/simulated/floor/tiled/white/rough,/area/entrepot/arrivals) +"fU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/arrivals) +"fV" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"fW" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai) +"fX" = (/obj/effect/floor_decal/corner/black{dir = 5},/obj/structure/flora/pottedplant/stoutbush,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8; layer = 2.4; level = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"fY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"fZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"ga" = (/obj/effect/floor_decal/corner/black{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"gb" = (/obj/effect/floor_decal/corner/black/three_quarters{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"gc" = (/obj/structure/railing/steel,/turf/simulated/floor/tiled/rough,/area/entrepot/dock) +"gd" = (/obj/structure/table/glass,/obj/item/storage/box/glasses/rocks,/obj/item/reagent_containers/vessel/mug/NT,/obj/item/reagent_containers/vessel/mug/NT,/obj/item/reagent_containers/vessel/mug/NT,/obj/item/reagent_containers/vessel/mug/NT,/obj/item/device/flashlight/lamp,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"ge" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/dock) +"gf" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"gg" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"gh" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/medbay) +"gi" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/tiled/freezer,/area/space) +"gj" = (/obj/structure/window_frame/rglass,/obj/machinery/door/firedoor,/obj/machinery/status_display,/turf/simulated/floor/plating,/area/space) +"gk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"gl" = (/obj/effect/floor_decal/corner/black{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"gm" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/medbay) +"gn" = (/obj/structure/window_frame/rglass,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/entrepot/medbay) +"go" = (/obj/structure/closet/secure_closet/medical2,/obj/item/wrench/red,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/medbay) +"gp" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"gq" = (/obj/structure/railing/steel,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_2) +"gr" = (/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_2) +"gs" = (/obj/structure/railing/steel{dir = 1},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"gt" = (/obj/effect/floor_decal/corner/black{dir = 6},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"gu" = (/obj/effect/floor_decal/spline/plain/grey{dir = 8},/obj/effect/floor_decal/spline/plain/grey{dir = 1},/obj/structure/gas_stand/anesthetic,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"gv" = (/obj/machinery/computer/operating,/obj/effect/floor_decal/spline/plain/grey{dir = 1},/obj/machinery/camera/network/civilian_east{c_tag = "Living Module 2F - Surgery"},/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"gw" = (/obj/effect/floor_decal/spline/plain/grey{dir = 1},/obj/effect/floor_decal/spline/plain/grey{dir = 4},/obj/structure/iv_drip,/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"gx" = (/obj/machinery/button/remote/airlock{name = "Door Bolts"; dir = 2; pixel_x = -25; pixel_y = 24; id = "RetardRoom"; specialfunctions = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/medbay) +"gy" = (/obj/structure/table/standard,/obj/item/storage/firstaid/surgery,/obj/item/reagent_containers/spray/sterilizine,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/turf/simulated/floor/tiled/dark,/area/entrepot/medbay) +"gz" = (/obj/structure/bed/chair/wheelchair,/obj/machinery/light/he{dir = 1},/turf/simulated/floor/tiled/freezer,/area/space) +"gA" = (/obj/effect/floor_decal/spline/plain/grey{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"gB" = (/obj/machinery/optable,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"gC" = (/obj/effect/floor_decal/spline/plain/grey{dir = 4},/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"gD" = (/turf/simulated/wall,/area/entrepot/medbay) +"gE" = (/obj/machinery/door/airlock/glass_security{name = "Detention Room"; id_tag = "RetardRoom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"gF" = (/obj/machinery/door/airlock{name = "Wardroom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"gG" = (/turf/simulated/open,/area/entrepot/crew_2) +"gH" = (/obj/structure/table/standard,/obj/machinery/alarm{pixel_y = 24},/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"gI" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/railing/steel,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/entrepot/crew_2) +"gJ" = (/obj/item/blueprints,/obj/random_multi/single_item/captains_spare_id,/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/item/modular_computer/console/preset/command,/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai_upload) +"gK" = (/obj/effect/floor_decal/corner/black{dir = 9},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"gL" = (/obj/structure/sign/redcross{name = "Medbay"},/turf/simulated/wall,/area/entrepot/medbay) +"gM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"gN" = (/obj/structure/cable{icon_state = "32-4"; d2 = 4; d1 = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/lattice,/obj/machinery/camera/network/civilian_east{dir = 4; c_tag = "Technical Module 2F"},/turf/simulated/open,/area/entrepot/engi_2) +"gO" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"gP" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/turret/network/station,/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai) +"gQ" = (/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"gR" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"gS" = (/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai) +"gT" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai) +"gU" = (/obj/machinery/atmospherics/pipe/zpipe/down/supply{dir = 1},/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers{dir = 1},/obj/structure/lattice,/obj/structure/railing/steel,/turf/simulated/open,/area/entrepot/engi_2) +"gV" = (/obj/machinery/organ_printer/robot/mapped,/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/tiled/dark,/area/entrepot/medbay) +"gW" = (/obj/structure/window_frame/grille,/obj/structure/lattice,/turf/space,/area/space) +"gX" = (/obj/effect/floor_decal/spline/plain/grey,/obj/effect/floor_decal/spline/plain/grey{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"gY" = (/obj/effect/floor_decal/spline/plain/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"gZ" = (/obj/structure/shuttle/engine/propulsion{dir = 1},/turf/space,/area/supply/station) +"ha" = (/obj/effect/floor_decal/spline/plain/grey{dir = 4},/obj/effect/floor_decal/spline/plain/grey,/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"hb" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"hc" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/nw{icon_state = "corner_whiteship_s"},/area/supply/station) +"hd" = (/obj/machinery/smartfridge/secure/blood/filled,/turf/space,/area/entrepot/medbay) +"he" = (/obj/machinery/sleeper{dir = 4},/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"hf" = (/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"hg" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"hh" = (/obj/machinery/door/airlock/glass_medical{name = "Medbay"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"hi" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/structure/bed/roller,/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"hj" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"hk" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"hl" = (/obj/machinery/door/firedoor,/obj/structure/curtain/medical,/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"hm" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/black,/turf/space,/area/space) +"hn" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"ho" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"hp" = (/obj/structure/sign/flag/byonder,/turf/simulated/wall/r_wall,/area/turret_protected/ai) +"hq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"hr" = (/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"hs" = (/obj/structure/table/glass,/obj/item/stack/material/plasma/ten,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"ht" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_c"; dir = 8},/area/supply/station) +"hu" = (/obj/structure/shuttle/engine/heater{dir = 1},/obj/structure/window/reinforced/crescent,/turf/simulated/floor/plating/airless,/area/supply/station) +"hv" = (/obj/structure/sign/warning/lethal_turrets,/turf/simulated/wall/r_wall,/area/turret_protected/ai) +"hw" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_d"; dir = 4},/area/supply/station) +"hx" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_c"; dir = 2},/area/supply/station) +"hy" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_b"; dir = 8},/area/supply/station) +"hz" = (/turf/simulated/floor/shuttle/blue,/turf/simulated/shuttle/wall/corner/smoothwhite/se{icon_state = "corner_whiteship_s"},/area/supply/station) +"hA" = (/turf/simulated/floor/shuttle/blue,/area/supply/station) +"hB" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/ne{icon_state = "corner_whiteship_s"},/area/supply/station) +"hC" = (/turf/simulated/floor/shuttle/blue,/turf/simulated/shuttle/wall/corner/smoothwhite/sw{icon_state = "corner_whiteship_s"},/area/supply/station) +"hD" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"},/area/supply/station) +"hE" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/railing/steel,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"hF" = (/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"hG" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"hH" = (/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/floor_decal/spline/plain/corner/black,/obj/effect/floor_decal/techgrid,/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"hI" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/trunk,/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating,/area/entrepot/engi_2) +"hJ" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/reinforced/airless,/area/space) +"hK" = (/obj/machinery/power/apc{name = "south bump"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/medbay) +"hL" = (/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"hM" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/bed/roller,/obj/machinery/camera/network/civilian_east{dir = 4; c_tag = "Living Module 2F - Cryo"},/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"hN" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"hO" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/obj/machinery/light/he,/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"hP" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/junction{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"hQ" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/joinlate/cryo,/turf/simulated/floor/tiled/white/rough,/area/entrepot/arrivals) +"hR" = (/obj/structure/sign/deck/second,/turf/simulated/wall,/area/entrepot/deck_2) +"hS" = (/obj/structure/railing/steel{dir = 4},/turf/simulated/open,/area/entrepot/deck_2) +"hT" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload) +"hU" = (/obj/structure/sign/warning/lethal_turrets,/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload) +"hV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/cyan{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/door/airlock/vault/bolted{name = "AI core"; req_access = list(16)},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) +"hW" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/structure/railing/steel,/turf/simulated/floor/plating,/area/entrepot/dock) +"hX" = (/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai_upload) +"hY" = (/obj/machinery/turret/network/station,/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai_upload) +"hZ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"ia" = (/obj/machinery/door/airlock/highsecurity{name = "AI Upload"; req_access = list(16)},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"ib" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"ic" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"id" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/joinlate/cryo,/turf/simulated/floor/tiled/white/rough,/area/entrepot/arrivals) +"ie" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"if" = (/obj/machinery/status_display,/obj/structure/railing/steel,/turf/simulated/wall,/area/entrepot/dock) +"ig" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/nw,/area/shuttle/arrival/station) +"ih" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/shuttle/arrival/station) +"ii" = (/obj/machinery/door/airlock/external/bolted,/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"ij" = (/obj/machinery/light{dir = 8},/obj/structure/largecrate/animal/corgi/ian,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"ik" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 1},/area/supply/station) +"il" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 4},/area/shuttle/arrival/station) +"im" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"; dir = 4},/area/shuttle/arrival/station) +"in" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "11"; dir = 4},/turf/simulated/floor/plating/rough,/area/shuttle/arrival/station) +"io" = (/obj/structure/railing/steel{dir = 8},/obj/machinery/light/he{dir = 4},/obj/structure/railing/steel,/turf/simulated/open,/area/entrepot/deck_2) +"ip" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "11"; dir = 8},/turf/simulated/floor/plating/rough,/area/shuttle/arrival/station) +"iq" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 8},/area/shuttle/arrival/station) +"ir" = (/obj/machinery/door/airlock/external/bolted_open,/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor/plating,/area/supply/station) +"is" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor/shuttle/blue,/area/supply/station) +"it" = (/obj/machinery/door/airlock/external/bolted_open,/turf/simulated/floor/plating,/area/supply/station) +"iu" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"iv" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"iw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/rough,/area/hallway/secondary/entry/starboard) +"ix" = (/obj/machinery/light/he{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/entrepot/dock) +"iy" = (/obj/machinery/atmospherics/binary/passive_gate/on{dir = 2},/turf/simulated/floor/plating,/area/entrepot/dock) +"iz" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"iA" = (/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"iB" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"iC" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"iD" = (/obj/effect/floor_decal/corner/red/three_quarters,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"iE" = (/obj/structure/bed/chair/office/light,/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"iF" = (/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"iG" = (/obj/effect/shuttle_landmark/escape/station,/turf/space,/area/shuttle/escape/station) +"iH" = (/turf/simulated/wall/r_wall,/area/space) +"iI" = (/obj/machinery/door/airlock/glass{name = "Surgery"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"iJ" = (/obj/machinery/atmospherics/unary/freezer{icon_state = "freezer"; dir = 1},/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"iK" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/reagent_containers/vessel/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/reagent_containers/spray/cleaner{pixel_x = -5},/obj/machinery/light/he,/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/obj/item/reagent_containers/vessel/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/wrench/red,/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"iL" = (/obj/item/device/radio/intercom{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/binary/passive_gate/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/entrepot/medbay) +"iM" = (/obj/structure/sign/greencross,/turf/simulated/wall/r_wall,/area/entrepot/crew_2) +"iN" = (/obj/machinery/door/airlock/glass,/obj/structure/railing/steel,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"iO" = (/obj/machinery/door/airlock/glass{name = "Pharmacy"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"iP" = (/obj/structure/table/woodentable,/obj/item/paper_bin,/obj/item/pen/multi,/obj/item/pen/multi,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"iQ" = (/obj/structure/sign/security,/turf/simulated/wall/r_wall,/area/entrepot/crew_2) +"iR" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/machinery/status_display,/turf/simulated/floor/plating,/area/entrepot/crew_2) +"iS" = (/obj/structure/railing/steel{dir = 4},/turf/simulated/open,/area/entrepot/crew_2) +"iT" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/structure/railing/steel,/turf/simulated/floor/tiled/rough,/area/entrepot/dock) +"iU" = (/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"iV" = (/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{dir = 4; layer = 7; pixel_x = -30; frequency = 1380; req_one_access = list(13); id_tag = "escape_dock_south_airlock"; master_tag = "escape_dock"; tag_exterior_door = "escape_dock_south_outer"; tag_interior_door = "escape_dock_south_inner"; tag_airpump = "escape_dock_south_pump"; tag_chamber_sensor = "escape_dock_south_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_south_pump"},/obj/machinery/airlock_sensor{dir = 8; pixel_x = 28; frequency = 1380; id_tag = "escape_dock_south_sensor"},/turf/simulated/floor/plating,/area/entrepot/dock) +"iW" = (/obj/structure/bed/chair/comfy/purp,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"iX" = (/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_2/dorm) +"iY" = (/obj/structure/bed/padded{icon_state = "bedleft"},/obj/item/bedsheet/nt,/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_2/dorm) +"iZ" = (/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/spline/plain/blue{dir = 1},/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"ja" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/spline/plain/blue{dir = 4},/obj/effect/floor_decal/spline/plain/blue{dir = 1},/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"jb" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 4},/obj/effect/floor_decal/spline/plain/blue{dir = 4},/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"jc" = (/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/spline/plain/blue,/obj/effect/floor_decal/techgrid{dir = 4},/obj/effect/floor_decal/spline/plain/blue{dir = 4},/obj/effect/floor_decal/spline/plain/corner/black,/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/turf/simulated/floor/reinforced/airless,/area/space) +"jd" = (/obj/effect/floor_decal/corner/red{dir = 10},/obj/effect/floor_decal/spline/plain/black,/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"je" = (/obj/effect/floor_decal/corner/red{dir = 10},/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"jf" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/red{dir = 10},/obj/effect/floor_decal/spline/plain/black,/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"jg" = (/obj/structure/sign/flag/nt,/turf/simulated/wall,/area/entrepot/crew_2) +"jh" = (/obj/effect/floor_decal/corner/black{dir = 10},/obj/structure/flora/pottedplant/stoutbush,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"ji" = (/obj/structure/railing/steel,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"jj" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/obj/effect/floor_decal/spline/plain/black{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"jk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"jl" = (/obj/effect/floor_decal/spline/fancy{dir = 5},/obj/effect/floor_decal/spline/fancy{dir = 9},/obj/effect/mist,/turf/simulated/floor/water/fountain,/area/entrepot/crew_2/dorm) +"jm" = (/obj/machinery/cryopod{dir = 1},/obj/machinery/light/he{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"jn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"jo" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"jp" = (/obj/machinery/door/firedoor,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/door/window/westleft{name = "Canister Access"},/obj/machinery/door/window/eastright{name = "Canister Access"},/turf/simulated/floor/tiled/rough,/area/entrepot/medbay) +"jq" = (/obj/effect/floor_decal/corner/black{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"jr" = (/obj/structure/railing/steel{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_2) +"js" = (/obj/effect/floor_decal/corner/black/three_quarters,/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"jt" = (/obj/effect/floor_decal/techgrid{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"ju" = (/obj/effect/floor_decal/techgrid{dir = 4},/obj/effect/floor_decal/techgrid{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"jv" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"jw" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/medbay) +"jx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"jy" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/arrivals) +"jz" = (/obj/machinery/door/airlock{name = "Luxury Cabin"; id_tag = "LuxRoom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"jA" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"jB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/he,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"jC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/light/he{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"jD" = (/obj/machinery/light/he{dir = 4},/obj/machinery/camera/network/civilian_east{dir = 8; c_tag = "Main Module 2F - Docks"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"jE" = (/obj/machinery/light/he{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"jF" = (/obj/machinery/light/he,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"jG" = (/obj/structure/railing/steel{dir = 4},/obj/machinery/light/he{dir = 8},/turf/simulated/open,/area/entrepot/deck_2) +"jH" = (/obj/structure/railing/steel{dir = 8},/obj/machinery/light/he{dir = 4},/turf/simulated/open,/area/entrepot/deck_2) +"jI" = (/obj/machinery/light/he{dir = 1},/turf/simulated/open,/area/entrepot/deck_2) +"jJ" = (/obj/machinery/light/he,/turf/simulated/open,/area/entrepot/deck_2) +"jK" = (/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 2},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"jL" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light/he{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"jM" = (/obj/effect/floor_decal/techgrid{dir = 1},/obj/effect/floor_decal/techgrid{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light/he{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"jN" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"jO" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8; layer = 2.4; level = 2},/obj/machinery/light/he{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"jP" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light/he{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"jQ" = (/obj/machinery/light/he{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"jR" = (/obj/machinery/light/he{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"jS" = (/obj/machinery/light/he,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"jT" = (/obj/machinery/light,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"jU" = (/obj/effect/floor_decal/corner/black{dir = 6},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"jV" = (/obj/effect/floor_decal/corner/black{dir = 9},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"jW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"jX" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"jY" = (/obj/machinery/alarm{dir = 8; pixel_x = 24},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"jZ" = (/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"ka" = (/obj/machinery/light/he{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"kb" = (/obj/machinery/light,/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_2/dorm) +"kc" = (/obj/structure/table/standard,/obj/item/towel,/obj/item/reagent_containers/food/packaged/sweetroid,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/light,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"kd" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/standard,/obj/item/reagent_containers/food/packaged/nutribar,/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/obj/machinery/light,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"ke" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"kf" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/spline/plain/red{dir = 4},/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/machinery/light,/turf/simulated/floor/tiled/mono,/area/entrepot/crew_2/fitness) +"kg" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/obj/effect/floor_decal/spline/plain/black{dir = 6},/obj/machinery/light,/turf/simulated/floor/tiled,/area/entrepot/crew_2/fitness) +"kh" = (/turf/simulated/floor/reinforced/airless,/area/space) +"ki" = (/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{dir = 4; layer = 7; pixel_x = -30; frequency = 1380; req_one_access = list(13); id_tag = "escape_dock_north_airlock"; master_tag = "escape_dock"; tag_exterior_door = "escape_dock_north_outer"; tag_interior_door = "escape_dock_north_inner"; tag_airpump = "escape_dock_north_pump"; tag_chamber_sensor = "escape_dock_north_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_north_pump"},/obj/machinery/airlock_sensor{dir = 8; pixel_x = 28; frequency = 1380; id_tag = "escape_dock_north_sensor"},/turf/simulated/floor/plating,/area/entrepot/dock) +"kj" = (/obj/machinery/light/he{dir = 8},/turf/simulated/open,/area/entrepot/crew_2/fitness) +"kk" = (/turf/simulated/wall,/area/entrepot/crew_2) +"kl" = (/obj/random/pottedplant,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"km" = (/obj/random/pottedplant,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"kn" = (/obj/structure/window_frame/glass,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"ko" = (/obj/structure/flora/pottedplant/unusual,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"kp" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"kq" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/brown,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"kr" = (/obj/structure/table/woodentable,/obj/item/modular_computer/laptop/preset/custom_loadout/standard,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"ks" = (/obj/structure/table/woodentable,/obj/item/material/ashtray/bronze,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"kt" = (/obj/structure/flora/pottedplant/pink,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"ku" = (/obj/structure/bed/padded{icon_state = "bedright"},/obj/item/bedsheet/nt,/turf/simulated/floor/trim/carpet/gpurple,/area/entrepot/crew_2/dorm) +"kv" = (/obj/machinery/sauna,/turf/simulated/floor/tiled/dark,/area/entrepot/crew_2/dorm) +"kw" = (/obj/item/soap/deluxe,/obj/effect/floor_decal/spline/fancy{dir = 6},/obj/effect/floor_decal/spline/fancy{dir = 10},/obj/effect/mist,/turf/simulated/floor/water/fountain,/area/entrepot/crew_2/dorm) +"kx" = (/obj/structure/bed/roller,/obj/machinery/camera/network/civilian_east{dir = 1; c_tag = "Living Module 2F - Medbay"},/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"ky" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"kz" = (/obj/machinery/body_scanconsole{dir = 8},/obj/machinery/light,/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"kA" = (/obj/structure/table/rack,/obj/item/storage/firstaid/o2,/obj/item/storage/firstaid/o2,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/toxin,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"kB" = (/obj/item/reagent_containers/dropper,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/structure/table/glass,/obj/item/reagent_containers/vessel/beaker/plass,/obj/item/reagent_containers/vessel/beaker/large,/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"kC" = (/obj/machinery/chemical_dispenser/full,/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"kD" = (/obj/machinery/chem_master,/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"kE" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder{pixel_y = 6},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1; layer = 2.4; level = 2},/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"kF" = (/obj/structure/railing/steel{dir = 8},/obj/structure/railing/steel{dir = 1},/turf/simulated/open,/area/entrepot/crew_2/fitness) +"kG" = (/obj/structure/railing/steel{dir = 1},/turf/simulated/open,/area/entrepot/crew_2/fitness) +"kH" = (/obj/structure/railing/steel{dir = 1},/obj/structure/window/reinforced{dir = 1; health = 1e+06},/turf/simulated/open,/area/entrepot/crew_2/fitness) +"kI" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/medbay) +"kJ" = (/obj/structure/bed/chair/pedalgen,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"kK" = (/obj/structure/table/reinforced,/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/machinery/light/small/hl{dir = 8},/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"kL" = (/obj/structure/railing/steel{dir = 8},/turf/simulated/open,/area/entrepot/crew_2/fitness) +"kM" = (/obj/effect/floor_decal/techgrid{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"kN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"kO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"kP" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"kQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"kR" = (/obj/structure/railing/steel{dir = 8},/obj/structure/railing/steel{dir = 4},/obj/structure/flora/pottedplant/unusual,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"kS" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall,/area/entrepot/dock) +"kT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"kU" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/embedded_controller/radio/docking_port_multi{dir = 1; layer = 7; pixel_y = -26; frequency = 1380; req_one_access = list(13); id_tag = "escape_dock"; child_tags_txt = "escape_dock_north_airlock;escape_dock_south_airlock"; child_names_txt = "Airlock One;Airlock Two"},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"kV" = (/obj/structure/closet/crate/critter,/obj/item/metroid_extract/green,/obj/item/metroid_extract/green,/obj/item/metroid_extract/green,/obj/item/device/metroid_scanner,/turf/simulated/floor/shuttle/blue{dir = 8},/area/supply/station) +"kW" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_dock_south_outer"},/obj/machinery/access_button{name = "exterior access button"; dir = 2; layer = 7; pixel_x = 26; pixel_y = -7; frequency = 1380; command = "cycle_exterior"; req_one_access = list(13); master_tag = "escape_dock_south_airlock"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/entrepot/dock) +"kX" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_dock_north_outer"},/obj/machinery/access_button{name = "exterior access button"; dir = 2; layer = 7; pixel_x = 26; pixel_y = -7; frequency = 1380; command = "cycle_exterior"; req_one_access = list(13); master_tag = "escape_dock_north_airlock"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/entrepot/dock) +"kY" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/shuttle/arrival/station) +"kZ" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 8},/turf/space,/area/shuttle/arrival/station) +"la" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"},/area/shuttle/arrival/station) +"lb" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lc" = (/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"ld" = (/obj/structure/closet/wardrobe/black,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/exodus{c_tag = "Arrivals - Main Shuttle"},/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"le" = (/obj/structure/closet/wardrobe/xenos,/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lf" = (/obj/structure/closet/wardrobe/mixed,/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lg" = (/obj/structure/closet/wardrobe/grey,/obj/machinery/light{dir = 1},/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lh" = (/obj/machinery/computer/arcade,/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"li" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lj" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 8},/area/shuttle/arrival/station) +"lk" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/rough/airless,/area/shuttle/arrival/station) +"ll" = (/obj/structure/bed/chair/shuttle/blue{dir = 4},/obj/effect/landmark/joinlate,/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lm" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 1},/area/shuttle/arrival/station) +"ln" = (/obj/structure/bed/chair/shuttle/blue{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lo" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lp" = (/obj/effect/landmark/joinlate/observer,/obj/item/device/bluespace_beacon,/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lq" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lr" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "2"; dir = 1},/turf/simulated/floor/plating/rough,/area/shuttle/arrival/station) +"ls" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"},/area/shuttle/arrival/station) +"lt" = (/obj/machinery/light,/obj/item/device/radio/intercom{dir = 1; pixel_y = -22},/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lu" = (/obj/machinery/requests_console{pixel_y = -30; department = "Arrival shuttle"},/obj/machinery/light,/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lv" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/se,/area/shuttle/arrival/station) +"lw" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/sw,/area/shuttle/arrival/station) +"lx" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 9},/area/shuttle/arrival/station) +"ly" = (/obj/machinery/door/airlock/external/bolted_open,/turf/simulated/floor/shuttle/blue,/area/shuttle/arrival/station) +"lz" = (/obj/machinery/light/he{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"lA" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless,/area/space) +"lB" = (/obj/machinery/cryopod{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"lC" = (/obj/structure/cryofeed{dir = 1},/turf/simulated/floor/plating,/area/entrepot/arrivals) +"lD" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/airlock/external/bolted_open,/turf/simulated/floor/plating,/area/supply/station) +"lE" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor/shuttle/blue,/area/supply/station) +"lF" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"},/area/supply/station) +"lG" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; frequency = 1380; req_one_access = list(13,31); id_tag = "supply_shuttle"; tag_door = "supply_shuttle_hatch"},/turf/simulated/floor/shuttle/blue,/area/supply/station) +"lH" = (/obj/machinery/light{dir = 8},/obj/item/reagent_containers/food/monkeycube/wrapped,/obj/item/extinguisher,/obj/item/stack/material/cardboard/ten,/turf/simulated/floor/shuttle/blue{dir = 8},/area/supply/station) +"lI" = (/obj/item/stack/material/wood,/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"lJ" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/sw,/area/supply/station) +"lK" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"; dir = 4},/area/supply/station) +"lL" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"lM" = (/obj/machinery/computer/borgupload,/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai_upload) +"lN" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"lO" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"lP" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 6},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"lQ" = (/obj/machinery/computer/aiupload,/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai_upload) +"lR" = (/obj/item/aiModule/protectStation,/obj/item/aiModule/quarantine,/obj/item/aiModule/reset,/obj/item/aiModule/nanotrasen,/obj/structure/table/standard,/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai_upload) +"lS" = (/obj/structure/table/standard,/obj/item/aiModule/oxygen,/obj/item/aiModule/oneHuman,/obj/item/aiModule/purge,/obj/item/aiModule/antimov,/obj/item/aiModule/teleporterOffline,/obj/item/aiModule/robocop,/obj/item/aiModule/paladin,/obj/item/aiModule/corp,/obj/item/aiModule/freeformcore,/obj/item/aiModule/asimov,/obj/machinery/camera/network/civilian_east{dir = 1; c_tag = "AI Upload"},/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai_upload) +"lT" = (/obj/effect/floor_decal/corner/black{dir = 10},/obj/structure/flora/pottedplant/stoutbush,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"lU" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"lV" = (/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"lW" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/railing/steel,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"lX" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"lY" = (/obj/machinery/turret_control_panel/ai_upload{pixel_x = 30},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"lZ" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"ma" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/junction{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"mb" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"mc" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"md" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"me" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"mf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/entrepot/crew_2/dorm) +"mg" = (/obj/structure/table/woodentable,/obj/item/modular_computer/laptop/preset/custom_loadout/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/trim/wood,/area/entrepot/crew_2/dorm) +"mh" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/light{dir = 4},/obj/structure/railing/steel,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"mi" = (/obj/machinery/light/he,/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai_upload) +"mj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"mk" = (/obj/structure/table/darkwood_reinforced,/obj/item/device/flashlight/lamp/brown,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"ml" = (/obj/structure/flora/pottedplant/minitree,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/camera/network/civilian_east{c_tag = "Main Module 2F - Docks South"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"mm" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"mn" = (/obj/structure/railing/steel{dir = 8},/obj/structure/railing/steel{dir = 4},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"mo" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"mp" = (/obj/machinery/light/he{dir = 4},/turf/simulated/open,/area/entrepot/crew_2/fitness) +"mq" = (/obj/structure/table/darkwood_reinforced,/obj/item/device/flashlight/lamp/brown,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"mr" = (/obj/structure/railing/steel{dir = 4},/turf/simulated/open,/area/entrepot/dock) +"ms" = (/obj/effect/floor_decal/industrial/loading{dir = 8},/obj/machinery/light/he{dir = 1},/turf/simulated/floor/tiled/rough,/area/entrepot/dock) +"mt" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/brown,/obj/item/material/ashtray/plastic,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8; layer = 2.4; level = 2},/turf/simulated/floor/trim/carpet/purple,/area/entrepot/crew_2/dorm) +"mu" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"mv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/arrivals) +"mw" = (/obj/machinery/status_display,/turf/simulated/floor/tiled/dark/rough,/turf/simulated/wall,/area/entrepot/deck_2) +"mx" = (/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"my" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"mz" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"mA" = (/obj/effect/floor_decal/industrial/loading{dir = 8},/obj/machinery/light/he,/turf/simulated/floor/tiled/rough,/area/entrepot/dock) +"mB" = (/obj/structure/sign/double/picturemount/left{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"mC" = (/obj/structure/railing/steel,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_2) +"mD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"mE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"mF" = (/obj/structure/sign/double/picturemount/right{pixel_y = 32},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"mG" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"mH" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"mI" = (/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/medbay) +"mJ" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"mK" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"mL" = (/obj/structure/railing/steel,/obj/structure/window_frame/glass,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_2/fitness) +"mM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"mN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/dark,/area/entrepot/crew_2/dorm) +"mO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"mP" = (/obj/effect/landmark/map_data{height = 2},/turf/space,/area/space) +"mQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white/rough,/area/entrepot/crew_2/fitness) +"mR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"mS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"mT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"mU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"mV" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"mW" = (/obj/structure/window/reinforced{dir = 4},/obj/item/stool,/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"mX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"mY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"mZ" = (/obj/structure/table/glass,/obj/item/storage/box/syringes,/obj/item/storage/box/pillbottles,/obj/item/storage/box/pillbottles,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/entrepot/medbay) +"na" = (/obj/structure/railing/steel,/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_2) +"nb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_2) +"nc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"nd" = (/obj/effect/floor_decal/corner/black/three_quarters{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"ne" = (/obj/effect/floor_decal/corner/black{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"nf" = (/obj/machinery/light/nobreak{dir = 1},/turf/simulated/open,/area/entrepot/cafe_2) +"ng" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/structure/railing/steel,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark,/area/entrepot/engi_2) +"nh" = (/obj/structure/railing/steel,/obj/structure/railing/steel,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"ni" = (/obj/effect/floor_decal/corner/black/three_quarters{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"nj" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"nk" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"nl" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"nm" = (/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"nn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/arrivals) +"no" = (/obj/structure/table/rack,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/fire,/obj/item/storage/firstaid/fire,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white/rough,/area/entrepot/medbay) +"np" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/arrivals) +"nq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/arrivals) +"nr" = (/obj/machinery/door/airlock/glass{name = "Cryogenic Storage"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"ns" = (/obj/structure/window_frame/glass,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"nt" = (/obj/effect/floor_decal/techgrid{dir = 4},/obj/effect/floor_decal/techgrid{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light/he{dir = 1},/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"nu" = (/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"nv" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/entrepot/deck_2) +"nw" = (/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"nx" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"ny" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"nz" = (/obj/structure/railing/steel,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"nA" = (/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"nB" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"nC" = (/obj/item/stool,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"nD" = (/obj/structure/railing/steel,/turf/simulated/wall,/area/entrepot/dock) +"nE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"nF" = (/obj/machinery/camera/network/civilian_east{dir = 1; c_tag = "Living Module 2F - Dormitories"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"nG" = (/obj/machinery/button/remote/airlock{name = "Door Bolts"; dir = 2; pixel_x = -25; pixel_y = 24; id = "LuxRoom"; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"nH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/trim/darkwood,/area/entrepot/crew_2/dorm) +"nI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"nJ" = (/obj/item/stool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white/mono,/area/entrepot/crew_2/fitness) +"nK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/arrivals) +"nL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"nM" = (/obj/structure/railing/steel{dir = 4},/obj/structure/railing/steel,/turf/simulated/open,/area/entrepot/dock) +"nN" = (/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/cafe_2) +"nO" = (/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/machinery/camera/network/civilian_east{dir = 4; c_tag = "Main Module 2F - West"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"nP" = (/obj/machinery/access_button{name = "interior access button"; dir = 1; layer = 7; pixel_x = 26; pixel_y = -26; frequency = 1380; command = "cycle_interior"; req_one_access = list(13); master_tag = "escape_dock_south_airlock"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"nQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/dock) +"nR" = (/obj/structure/railing/steel{dir = 8},/turf/simulated/open,/area/entrepot/deck_2) +"nS" = (/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"nT" = (/obj/item/crowbar/prybar,/obj/item/paper{info = "\[i]So, we have checked these cool scientific thingies - everything seems to be alright. I guess, that message was but a prank. Alls well that ends well, right? P.S. For fucks sake, was it really necessary to put that jar of acid right on the keyboard? Jimmys got his toes melted off.\[/i]"},/turf/simulated/floor/shuttle/blue,/area/supply/station) +"nU" = (/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_2) +"nV" = (/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/dorm) +"nW" = (/obj/structure/railing/steel,/turf/simulated/wall,/area/entrepot/deck_2) +"nX" = (/obj/machinery/cryopod,/obj/machinery/camera/network/civilian_east{dir = 1; c_tag = "Living Module 2F - Detention"},/turf/simulated/floor/tiled/dirty,/area/entrepot/crew_2) +"nY" = (/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2/fitness) +"nZ" = (/obj/structure/sign/deck/second,/obj/structure/railing/steel,/turf/simulated/wall,/area/entrepot/deck_2) +"oa" = (/obj/machinery/status_display,/turf/simulated/wall,/area/entrepot/medbay) +"ob" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/machinery/status_display,/turf/simulated/floor/plating,/area/entrepot/crew_2/dorm) +"oc" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/entrepot/medbay) +"od" = (/turf/space,/area/shuttle/escape/station) +"oe" = (/turf/simulated/wall/gold,/area/entrepot/crew_2) +"of" = (/obj/structure/railing/steel,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"og" = (/obj/effect/floor_decal/corner/black{dir = 5},/obj/structure/flora/pottedplant/stoutbush,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/rough,/area/entrepot/crew_2) +"oh" = (/obj/structure/railing/steel{dir = 4},/obj/machinery/light/he{dir = 8},/obj/structure/railing/steel,/turf/simulated/open,/area/entrepot/deck_2) +"oi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/arrivals) +"oj" = (/obj/machinery/door/airlock/glass{name = "Cryogenic Storage"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"ok" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"ol" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"om" = (/obj/machinery/access_button{name = "interior access button"; dir = 1; layer = 7; pixel_x = 26; pixel_y = -26; frequency = 1380; command = "cycle_interior"; req_one_access = list(13); master_tag = "escape_dock_north_airlock"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"on" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_dock_south_inner"},/turf/simulated/floor/plating,/area/entrepot/dock) +"oo" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_dock_north_inner"},/turf/simulated/floor/plating,/area/entrepot/dock) +"op" = (/obj/machinery/light/he,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"oq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"or" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"os" = (/obj/structure/window_frame/glass,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"ot" = (/turf/unsimulated/mask,/area/space) +"ou" = (/turf/space,/turf/space,/area/space) +"ov" = (/obj/structure/railing/steel{dir = 8},/turf/simulated/open,/area/entrepot/crew_2) +"ow" = (/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/crew_2) +"ox" = (/obj/machinery/alarm{dir = 1; pixel_y = -24},/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/crew_2) +"oy" = (/obj/item/packageWrap,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oz" = (/obj/machinery/r_n_d/protolathe,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oA" = (/obj/item/stack/material/wood,/obj/item/stack/material/wood,/obj/item/stack/material/wood,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oB" = (/obj/machinery/r_n_d/destructive_analyzer,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oC" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/se,/area/supply/station) +"oD" = (/obj/machinery/computer/processing_unit_console,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oE" = (/obj/machinery/mineral/processing_unit,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oF" = (/obj/item/pickaxe/drill,/obj/item/pickaxe/drill,/obj/structure/closet/crate/miningcar,/obj/item/ore_radar,/obj/item/ore_radar,/obj/item/storage/ore,/obj/item/storage/ore,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oG" = (/obj/machinery/r_n_d/circuit_imprinter,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oH" = (/obj/item/stack/material/wood,/obj/item/conveyor_construct,/obj/item/conveyor_construct,/obj/item/conveyor_construct,/obj/item/conveyor_construct,/obj/item/conveyor_construct,/obj/item/conveyor_construct,/obj/item/conveyor_construct,/obj/item/conveyor_construct,/obj/item/conveyor_construct,/obj/item/conveyor_construct,/obj/item/conveyor_switch_construct,/obj/item/conveyor_switch_construct,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oI" = (/obj/structure/largecrate/animal/cat/runtime,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oJ" = (/obj/item/device/integrated_electronics/debugger,/obj/item/device/integrated_circuit_printer,/obj/item/device/integrated_electronics/wirer,/obj/item/device/integrated_electronics/analyzer,/obj/structure/closet/crate/science,/obj/item/reagent_containers/vessel/beaker/sulphuric,/obj/item/stack/cable_coil,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oK" = (/obj/structure/largecrate/animal/mulebot,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oL" = (/obj/structure/largecrate/animal/chick,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oM" = (/obj/structure/largecrate/animal/parrot/poly,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oN" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/effect/floor_decal/techfloor,/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"oO" = (/obj/item/stack/material/wood,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oP" = (/obj/machinery/computer/stacking_unit_console,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oQ" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oR" = (/obj/machinery/computer/rdconsole/core,/obj/item/stack/cable_coil,/turf/simulated/floor/shuttle/blue,/area/supply/station) +"oS" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/effect/floor_decal/techfloor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/reinforced/airless,/area/space) +"oT" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/reinforced/airless,/area/space) +"oU" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/spline/plain/blue,/obj/effect/floor_decal/spline/plain/corner/black,/obj/effect/floor_decal/spline/plain/corner/black{dir = 8},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/reinforced/airless,/area/space) +"oV" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/space) +"oW" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/entrepot/deck_2) +"oX" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/railing/steel,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/entrepot/deck_2) +"oY" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"oZ" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"pa" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"pb" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"pc" = (/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"pd" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"pe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"pf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/dock) +"pg" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/deck_2) +"ph" = (/obj/effect/floor_decal/techgrid,/obj/effect/floor_decal/techgrid{dir = 8},/obj/machinery/camera/network/civilian_east{dir = 1; c_tag = "Main Module 2F - North"},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"pi" = (/obj/effect/floor_decal/techgrid{dir = 4},/obj/effect/floor_decal/techgrid{dir = 1},/obj/machinery/camera/network/civilian_east{c_tag = "Main Module 2F - South"},/turf/simulated/floor/tiled/dark/mono,/area/entrepot/deck_2) +"pj" = (/obj/machinery/camera/network/civilian_east{dir = 8; c_tag = "Main Module 2F - Gateway"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"pk" = (/obj/machinery/cryopod{dir = 1},/obj/machinery/camera/network/civilian_east{dir = 8; c_tag = "Main Module 2F - Cryo Storage"},/turf/simulated/floor/tiled/dark/rough,/area/entrepot/arrivals) +"pl" = (/obj/machinery/camera/network/civilian_east{dir = 1; c_tag = "AI Chamber"},/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaototaaaaaaaaotototaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaotototaaaaaaaaototototaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaotototaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaototototaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaouotototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaototaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaototototototaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaototototototaaaaaaaaaaaaaaaaaaototototototototototototototototaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaototototaaaaaaaaotaaaaaaaaaaaaotototototaaaaototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaotaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaotototaaaaaaotaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaototaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaototototototototototototaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototototaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototaaaaaaaaaaaaaaaaaaaaototototototototaaototaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaototaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototaaaaaaaaaaaaaaaaaaaaotototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaotaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaototaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaotaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaotaaaaaaototaaaaaaototaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototototaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaotototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaotaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaotototototototototototaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaototototototototototaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaotototototototototototaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaototaaaaaaaaaaotototototaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaotototaaaaaaaaaaaaotaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaotototototototaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaotototototototototototaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaototototototototototototaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubqbobobobCbCbJbrduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqbobobobpbpkhkhkhkhbubtduduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabebpkhkhkhkhkhkhkhkhkhbtduduabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototototaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabekhkhkhkhkhkhkhkhkhkhbuboboabaiaiaiaiawaDaDaDaDabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototototaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabekhkhkhkhkhkhkhkhkhkhkhkhkhabaiaiaiaiawaDaDaDaDabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabebdkhkhkhkhkhkhkhkhabababababaiaiaiaiawaDaDaDaDabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkbcbcbcbdkhkhkhkhkhabaiaiainfaiaiaiaiawaDaDaKaLabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduduaaaablkhkhkhkhkhabaiaiaiaiaiaiaiaiawaMaMabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduduaabIkhkhkhkhkhabaiaiaiaiaiaiaiaiawaOaPaQaRabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadudubIbdkhkhkhkhabaiaiaiaiaiaiaiaiawaOmdmqaUabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubkbdkhkhkhkhabaWaWaWaWaWaWaWaWaXaOmeaYaZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubekhkhkhkhabbaaTbnbaaTbnbaaTbnbsmeaQaRabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabekhkhkhkhablVmcmcmcaoaCbxaSaSarbgmkaUabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabebdkhkhkhabbmaYaZbmbBaZeSaWaWaPnNaYaZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadududududududududududududududuaaaaaaaaaaaaaaaaaabkbcbcbcbcabababababdqabababababababababaaigihiiiliminipimiqiiilkYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaducdcbcbcbbPcbcbcbbPcbcbcbcfduaaaaaaaaaaaaaaaaaaaaaaaaduaaaadubDbvbzlAbAbdbLduaaaaduaaaaaakZlalblcldlelflglhlcliljinipkYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubQbpckbubRbpckbubRbpckbucaduaaaaaaaaaaaaaaaaaaaaaaaaduaaaadubHkhbzlAbAkhbEduaaaaduaaaaaakZlklclllclllclllclllclmlnlclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubQckcjckbRckcjckbRckcjckcaduaaaaaaaaaaaaaaaaaaaaaaaadudududubHkhbzlAbAkhbEdudududuaaaaaakZlklclllolllplllclllclqlclclraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubQbdckbvbRbdckbvbRbdckbvcaduaaaaaaaaaaaaaaaaaaaaaaaaduaaaydubHkhbzlAbAkhbEduaaaaduaaaaaakZlklclllclllclllclllclslnlclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaducgccccccchccccccchccccccciduaaaaaaaaaaaaaaaaaaaaaaaaduaaaadubHbubzlAbAbpbEduaaaaduaaaaaakZlalblcltlclclulclcliljiniplvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadudududuhmdududubKbKbKdudududududuaeaeaeaeaeaeaeaaaaaaaaaaakakakakakanannvananakakakakakaaaaaalwlxlyiliminipimiqlyillvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubwbCbCbCbCbObKbKbKbKbKbCbCbCbOboaeahajaAaVahaeaaaaaaaaaaakaqaqaqjIaqaqoWaqaqjIaqaqaqakaaaaaaaaacalacaaaaaaaaacalacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubIbpkhkhbpbKbKdMdNdMbKbKkhkhkhbpaeahbbcZdaahdbaedcdcdcakakaqasasasasasoXasasasasasaqakakacacacacauacaaaaaaaaacauacaaaaaaaagZgZgZgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubIkhkhkhkhbKdPdSfzfWgPbKkhkhkhkhaemodddedfahaFjRahahahnsaqhSoYpapapapaoZaGaGaGaGaGnRaqnsbiavaxaHalacacacacacaHalacacacaahchthuhuhuhxhBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubIbpkhkhbpbKgSplgTgSgSbKkhkhkhkhaemjdpdrdrdrdgmvnndjdjosaqhSnycDcGphcGhOcGcGcGcMcAnRaqosbFaIdwjEaIaIaIaIaIaIaIaIaIbhacaahyhzoKoLoIhChwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduagagazazazagbKbKhVhphvhThTkhkhkhaeahahahahpjaeahnpcSjOcQaqhSpbcUcVcWcWcWcWcWcVdRaGnRaqcQlzamfYiwjnjnjnjBnQjnjnjnjBbjacaahDijlIlLoFoHhDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduagdLdOdOdOgQhUgJhZhXhXhYhTkhkhkhaeahjSnSjSahaejQnqdkdlnWnZohpbcUcWduaaaaaaducWdRaGionZnWnDcxkNjNczcBcHcIcJacachWnDifcKacikoMhAhAoDoEhDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduagdTfVgMdOgRiaiblZicielMhTkhkhkhaeaeaeaeaeaeaenOnqdJdmmxdKpcpdcUcWaaaaaaaaaacWdRaGaGdKaGcNnMkNjNczcOcHcJdXcPcPcPcNcXmsdiirishAhAhAhAhDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaggNgOhFlXlYhTlNlOlOlPlQhTcohGaEaEbybybybybydndocycCcCjomumajKjLcWaaaaaaaaaacWjMkOlUmulUnhnzkQnAavavjDdWixcPcPmrgcgecYdiithAhAhAoPoQhDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaggUhElWngmhhUlRlSmihXhYhToThJkhaeaeaeaeaeaeaeiFfUdJdmofiNofpbcUcWaaaaaaaaaacWdRnLofiNofcNnMoratczgfcHcJiycPcPcNcNiTmAdilDlEhAhAhAoyhDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduagagcnhIazaghThThThThThThToThJbdaedsdsdsdsdsaejQfUahdtaphRjGpbcUcWduaaaaaaducWdRnLjHhRapcJiupeavczcBcHcIkSacacaccJcIcKaclFlGhAoOoGozhDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubeoVoVhHoNoSoSoSoSoSoSoSoSoUcpcmaedGdHdHdHeuaeahjyfZjPmwaqhSpbcUcVcWcWcWcWcWcVdRnLnRaqcQlzampfjkjkjkjkjCkTjkjkjkjCmlacaahDlHhAhAnToAhDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubebdbvjbdudududududududududududuaefFfQfQfQfSnrnKoidjdjnsaqhSmzjtjujujuntjupijukMmznRaqnsmbaImyjFnPokokkUolokokomaIbhacaahDkVhAoJoRoBhDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadubkclcmjcduaaaaaaaaaaaaaaaaaaaaaaaefThQhQhQidojopoqahahosaqhSnwpapapapanupapapapapgnRaqosnxavmmaHonacacacacacaHooacacacaalJlKlKlKlKlKoCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadudududududuaaaaaaaaaaaaaaaaaaaaaaaejmlBlBlBpkdbaedcdcdcakakaqcRcRcRcRcRcecRcRcRcRcRaqakakacacacaciVacaaaaaaaaackiacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelClClClClCaeaaaaaaaaaaakaqaqaqjJaqaqoWaqaqjJaqaqaqakaaaaaaaaackWacaaaaaaaaackXacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaaaaaaaaaaakakakakakanannvananakakakakakaaaaaaododododododododododododaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaaadubDbvbzlAbAbdbLduaaaaduodododododododododododododododaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaaadubHkhbzlAbAkhbEduaaaaduodododododododododododododododaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadudududubHkhbzlAbAkhbEdudududuododododododododiGododododododaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaaadubHkhbzlAbAkhbEduaaaaduodododododododododododododododaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaaadubHbubzlAbAbpbEduaaaaduodododododododododododododododaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduadadadadadaBaBcEaBaBadadadadadaaaaaaododododododododododododaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaNaNaNaJaJaJaJaNaNaNadcTdxdAdBgGgGdygGgGgHdQdYfsadadadadduiHiHiHdudududuiHiHiHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJcvcwcFcLdvdUdVdZcweckkeKdEfyhPfKfKgsfRfRfxfxfxfxadfAfBadduduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJeeeheJcLeiejekcwcwelkkoggagbeTgqgqmCnanbncndnefXadfCfDadaaduduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJcveUjYcLcLcLcLjZcwcvadaBaBgteViSgGbNgGnUfxgKaBaBadfEbffHadadduduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzdudududududubqaJemeUcwekejeqcLeHeXmtadaaiRjUeViSdCoedDoviUjViRaaadkKfGfIfLadbJiZiZiZiZjadududududududzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadudzaaaaaaaaaaaabeaJeIfadZdVeNeQcLmgfecvadaBaBgtgpowgGdIgGoviUgKaBaBadgggknXfLadkhkhkhkhbujbaaaaaaaaaaaadzduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadududzaaaaaaaaaaaabeaJcLafcLcLcLcLcLcLfjcLjgjhjqnikPgrjrjrjrjrfxjsgllTiMadgEiQadaddhocghghkhjbaaaaaaaaaaaadzduduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWaadzaaaaaaaaaaaabeaNeWnEeYjWmBmFjXnjnkmGmHnBnBnBbMbTbTenjijinBnBmJnBmHmIgxgmgngogugvgwghkhjbaaaaaaaaaaaadzaagWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWdudzdudududududubeaNnCjxfdfcnVfbnFmDfcfcjAfxfxjToxgGgGdygGgGiUjTfxfxjAhKjwkIgngygAgBgCghkhjbdududududududzdugWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWaaduaaaaaaaaaaaabeaJcLcLgFcLcLcLcLjzcLcLcLcLcLcLcLcLfJgIfJgDgDgDgDgDgDgDhhgLgDgVgXgYhaghkhjbaaaaaaaaaaaaduaagWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWaaduaaaaaaaaaaaabeaNfffgmDkafhcLfinGfkflfmfncLfofpcLkmklkmgDhbgzgigjhdhehohgoagngniIgndhkhjbaaaaaaaaaaaaduaagWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWdudzdudududududueZaNfqfrmMmEftaJfunlfwfwfwfwfMmNfNcLmLknmLgDhihjhkhlhfhniDhqiOmXmXjvhsghkhjbdududududududzdugWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWaadzaaaaaaduaaaaduaNfOfPnIjxgdaJiPiWnHfviXiYdVmfjlcLkjkRmpgDhMhNiAhlhfiBiCnognhriEmYmZghkhjbaaaaaaaaaaaadzaagWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadududzaaaaaaduaaaaaaaNobkofcfckpaJkqkrksktkbkucLkvkwcLbGmnbGgDiJiKiLjpkxkykzkAdhkBkCkDkEghkhjbaaaaaaaaaaaadzduduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadudzaaaaaaduaaaaaaaaaNaNaNaNaNaJaNaNaNaJaJcLcLcLcLcLhLmKnYgDgDgDgDgDgDgDdhdhdhghghghghghkhjbaaaaaaaaaaaadzduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzdudududuaaaaaaaaaaduduaaaaaaaaaaducrbUbVbWbXbWbYbSmObZefeaebedebebjjbUbcclcmcmcmcmcmcmjcdududududududzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaaaaaaaaaaaduduaaaaaaaaaaaaegePeoeoeoepbSmObZdFeresetevewexbUaaaaaaaaaaaaaaduduaaaaaaaaduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaaaaaaaaaaadududuaaaaaaaaaaegmTeoezeoeAbSmObSeBeCeseDeEeFeGegaaaaaaaaaaaaduduaaaaaaaaaaduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaaaaaaaaaduduaaduduaaaaaabqegkemQmQmQnmmRmSbSeBereseteLeMeOegaaaaaaaaaadududuaaaaaaaaaaduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaaaaaaaduduaaaaaaduduaadubeegmUeoezeomVeRivizkfjdjejfjejekgegaaaaaaaaduduaaduduaaaaaaaaduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaaaaaduduaaaaaaaaaaduducsbpegnJeoeoeomWkFkGkGkHkHkHkHkHkHkHegaaaaaaduaaaaaaaaduduaaaaaaduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaaaduduaaaaaaaaaaaaduductkhegkckJeykJkdkLbGbGbGbGbGbGbGbGbGegaaaaduduaaaaaaaaaaduduaaaaduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduaaduduaaaaaaaaaaaaaaduducubdegegegegegegkLbGbGbGbGbGbGbGbGbGegaaduduaaaaaaaaaaaaaaduduaaduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWaaaadududuaaaaaaaaaaaaaaduduaadubebdkhkhkhbdegegegegegegegegegegegegdudududuaaaaaaaaaaaaaadududuaaaadzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWaaaaduduaaaaaaaaaaaaaaduduaaaaaabkbcbcbcbcbcbcclcmcmcmcmcmcmcmcmcmcqduaaaaduduaaaaaaaaaaaaaaduduaaaadzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWgWduduaaaaaaaaaaaaaaduduaaaaaaaaduaaaaaaaaduaaaaaaaaaaaaduaaaaaaaaduaaaaaaaaduduaaaaaaaaaaaaaadududzdzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWduaaaaaaaaaaaaaaduduaaaaaaaaaaduaaaaaaaaduaaaaaaaaaaaaduaaaaaaaaduaaaaaaaaaaduduaaaaaaaaaaaaaadudzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaototototaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWgWaaaaaaaaaaaaduduaaaaaaaaaaaaduaaaaaaaaduaaaaaaaaaaaaduaaaaaaaaduaaaaaaaaaaaaduduaaaaaaaaaaaadzdzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWgWaaaaaaaaduduaaaaaaaaaaaaaaduaaaaaaaaduaaaaaaaaaaaaduaaaaaaaaduaaaaaaaaaaaaaaduduaaaaaaaadzdzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWgWaaaadududududududududududuaaaaaaaaduaaaaaaaaaaaaduaaaaaaaadududududududududududuaaaadzdzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWgWduduaaaaaaaaaaaaaaaaaaduaaaaaaaaduaaaaaaaaaaaaduaaaaaaaaduaaaaaaaaaaaaaaaaaadududzdzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaotototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWgWgWaaaaaaaaaaaaaaaaaadudzdzdzdzdzdududududududzdzdzdzdzduaaaaaaaaaaaaaaaaaadzdzdzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaotototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagWgWgWaaaaaaaaaaaaaaaaaaduduaaaaaaaaaaaaaaaaaaaaduduaaaaaaaaaaaaaaaaaadzdzdzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadugWgWgWgWaaaagWgWgWgWduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduduaaduaaaaduaaduduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaotaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadugWgWgWgWgWgWduaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaototaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaotototaaaaaaototaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototototototaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototototaaaaaaotototaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaotototototototototototototototototototototototototaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototototototototototototototaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaototaaaaototototototototototototototototototototototototototototaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaototototaaotototototototototototototototototototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototototototototototototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaotototototototototototototototototototototototototototototototototaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototototototototototototototototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaotototototototototototototototototototototototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaototototaaaaaaaaototototototototototototototototototototototototototototototaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaotototaaotaaaaotototototototototototototototototototototototototototototaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaototaaaaaaototototototototototototototototototototototototototototototaaaaotaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaotototaaaaaaaaototototototototototototototototototototototototototototaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaototaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaototaaaaaaotaaaaaaaaaaaaaaaaaaaaototototototototototototototototototototototototototototaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaototototototototototototototototototototototototototototaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaotototototototototototototototototototototototototototaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaototototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototototaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaototototototototototototototaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaotototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaotototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaotaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaotototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaotototaaaaaaaaaaaaaaaaotaaaaaaaaototaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaototaaaaaaototototaaaaotaaaaototototaaaaaaotaaaaaaaaaaotototaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototototaaaaaaaaaaaaototototaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaototototaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaotototaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaototaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/entrepot/entrepot-3.dmm b/maps/entrepot/entrepot-3.dmm new file mode 100644 index 00000000000..ece4e2089aa --- /dev/null +++ b/maps/entrepot/entrepot-3.dmm @@ -0,0 +1,1291 @@ +"aa" = (/turf/space{icon_state = "black"},/area/space) +"ab" = (/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/west,/area/space) +"ac" = (/turf/space,/area/shuttle/escape/transit) +"ad" = (/turf/space,/area/space) +"ae" = (/turf/space/transit/west,/area/space) +"af" = (/obj/effect/shuttle_landmark/escape/internim,/turf/space,/area/shuttle/escape/transit) +"ag" = (/obj/structure/lattice,/turf/space,/area/space) +"ah" = (/turf/simulated/wall/r_wall,/area/centcom/holding) +"ai" = (/obj/machinery/door/blast/regular{name = "Escape Pods Dock"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "escapepods"},/obj/machinery/light{dir = 8},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating{icon_state = "dmg1"; burnt = 1},/area/centcom/holding) +"aj" = (/obj/machinery/door/blast/regular{name = "Escape Pods Dock"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "escapepods"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/airless,/area/centcom/holding) +"ak" = (/obj/machinery/door/blast/regular{name = "Escape Pods Dock"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "escapepods"},/obj/machinery/light{dir = 4},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating{icon_state = "dmg4"; burnt = 1},/area/centcom/holding) +"al" = (/obj/machinery/door/blast/regular{name = "Escape Pods Dock"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "escapepods"},/obj/machinery/light{dir = 8},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating{icon_state = "dmg4"; burnt = 1},/area/centcom/holding) +"am" = (/obj/machinery/door/blast/regular{name = "Escape Pods Dock"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "escapepods"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating{icon_state = "dmg1"; burnt = 1},/area/centcom/holding) +"an" = (/obj/machinery/door/blast/regular{name = "Escape Pods Dock"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "escapepods"},/obj/machinery/light{dir = 4},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/airless,/area/centcom/holding) +"ao" = (/turf/simulated/wall,/area/centcom/holding) +"ap" = (/obj/machinery/door/airlock/external{name = "Escape Pod"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_pod_1_berth_hatch"},/obj/machinery/navbeacon/wayfinding/dockescpod1,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"aq" = (/obj/structure/sign/warning/pods,/turf/simulated/wall,/area/centcom/holding) +"ar" = (/obj/machinery/door/airlock/external{name = "Escape Pod"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_pod_2_berth_hatch"},/obj/machinery/navbeacon/wayfinding/dockescpod2,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"as" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/centcom/holding) +"at" = (/obj/machinery/access_button{name = "exterior access button"; dir = 1; pixel_x = -24; pixel_y = 8; frequency = 1380; command = "cycle_exterior"; req_one_access = list(13); master_tag = "admin_shuttle_dock_airlock"},/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "admin_shuttle_dock_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"au" = (/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "admin_shuttle_dock_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"av" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/centcom/holding) +"aw" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/bed/chair/blue,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ax" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ay" = (/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{pixel_x = -25; pixel_y = 30; frequency = 1380; id_tag = "escape_pod_1_berth"; tag_door = "escape_pod_1_berth_hatch"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"az" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/closet/emcloset,/obj/item/clothing/suit/space/emergency,/obj/item/clothing/head/helmet/space/emergency,/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"aA" = (/obj/machinery/camera/xray/security{c_tag = "Arrivals Escape Pods"},/obj/item/device/radio/intercom{pixel_y = 22},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/table/standard,/obj/item/storage/firstaid/regular,/obj/item/storage/toolbox/emergency,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"aB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/closet/emcloset,/obj/item/clothing/suit/space/emergency,/obj/item/clothing/head/helmet/space/emergency,/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"aC" = (/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{pixel_x = -25; pixel_y = 30; frequency = 1380; id_tag = "escape_pod_2_berth"; tag_door = "escape_pod_2_berth_hatch"},/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aD" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aE" = (/obj/machinery/light/small{dir = 1},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aF" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"aG" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/obj/machinery/light/small/red{dir = 4},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"aH" = (/obj/structure/table/standard,/obj/item/material/ashtray,/obj/random/smokes,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aI" = (/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aJ" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aK" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aM" = (/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_shuttle_hatch"},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"aN" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/obj/machinery/airlock_sensor{dir = 4; pixel_x = -30; pixel_y = 8; frequency = 1380; id_tag = "admin_shuttle_dock_sensor"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"aO" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4},/obj/machinery/embedded_controller/radio/airlock/docking_port{dir = 8; pixel_x = 28; frequency = 1380; req_one_access = list(13); id_tag = "admin_shuttle_dock_airlock"; tag_exterior_door = "admin_shuttle_dock_outer"; tag_interior_door = "admin_shuttle_dock_inner"; tag_airpump = "admin_shuttle_dock_pump"; tag_chamber_sensor = "admin_shuttle_dock_sensor"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"aP" = (/obj/machinery/power/apc/high{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable/green{icon_state = "0-4"; d2 = 4},/obj/structure/bed/chair/blue{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aQ" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aR" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aS" = (/obj/structure/cable/green{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -30},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aV" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"aW" = (/obj/machinery/door/airlock/external{name = "Engineering External Access"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(10,13); id_tag = "arrivals_outer"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"aX" = (/obj/structure/sign/warning/airlock,/turf/simulated/wall/r_wall,/area/centcom/holding) +"aY" = (/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "admin_shuttle_dock_inner"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"aZ" = (/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "admin_shuttle_dock_inner"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"ba" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/indestructible,/turf/simulated/floor/plating,/area/centcom/holding) +"bb" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Escape Pods"; req_access = list(101)},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bc" = (/obj/structure/lattice,/obj/structure/catwalk,/turf/simulated/floor/plating/rough/airless,/area/space) +"bd" = (/obj/machinery/access_button{name = "exterior access button"; dir = 1; pixel_x = -25; pixel_y = -25; frequency = 1379; req_access = list(13); command = "cycle_exterior"; master_tag = "arrivals_airlock"},/obj/structure/lattice,/obj/structure/catwalk,/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/rough/airless,/area/space) +"be" = (/obj/machinery/alarm{dir = 8; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Escape Pods"; req_access = list(101)},/obj/machinery/navbeacon/wayfinding/dockesc,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bg" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/door/firedoor/border_only,/turf/simulated/wall/r_wall,/area/centcom/holding) +"bh" = (/obj/effect/floor_decal/industrial/warning/cee{dir = 1},/obj/machinery/light/small/red{dir = 8},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"bi" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bj" = (/obj/machinery/access_button{name = "interior access button"; pixel_x = -8; pixel_y = 26; frequency = 1380; command = "cycle_interior"; req_one_access = list(13); master_tag = "admin_shuttle_dock_airlock"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bk" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bl" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/camera/network/exodus{c_tag = "Arrivals Northwest"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bm" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bn" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bo" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/item/device/radio/intercom{pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bp" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bq" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/camera/network/exodus{c_tag = "Arrivals North"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"br" = (/obj/machinery/light{dir = 1},/obj/machinery/power/apc/high{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable/green{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bs" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bt" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bu" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bv" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/green{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bw" = (/obj/structure/cable/green{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/sign/warning/pods{dir = 4; pixel_x = 32},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bx" = (/turf/simulated/floor/plating,/area/centcom/holding) +"by" = (/turf/space,/area/centcom/holding) +"bz" = (/obj/machinery/oxygen_pump,/turf/simulated/wall,/area/centcom/holding) +"bA" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1379; id_tag = "arrivals_pump"},/obj/machinery/airlock_sensor{dir = 8; pixel_x = 25; pixel_y = 12; id_tag = "arrivals_sensor"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{dir = 8; pixel_x = 28; req_access = list(13); id_tag = "arrivals_airlock"; tag_exterior_door = "arrivals_outer"; tag_interior_door = "arrivals_inner"; tag_airpump = "arrivals_pump"; tag_chamber_sensor = "arrivals_sensor"},/obj/effect/floor_decal/industrial/warning/cee,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"bB" = (/obj/structure/table/standard,/obj/machinery/recharger,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bC" = (/obj/structure/bed/chair/comfy/beige{dir = 1},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bD" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bJ" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bK" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_access = list(101)},/turf/simulated/floor/plating,/area/centcom/holding) +"bL" = (/obj/machinery/door/airlock/external{name = "Engineering External Access"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(13); id_tag = "arrivals_inner"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"bM" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/bed/chair/comfy/beige{dir = 8},/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "docking port controller"; pixel_y = -25; frequency = 1380; req_one_access = list(13); id_tag = "centcom_dock"; tag_door = "centcom_dock_airlock"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bN" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bO" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/sign/warning/airlock{pixel_y = -32},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bP" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bQ" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bR" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bS" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bU" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bV" = (/turf/simulated/wall/r_wall,/area/space) +"bW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{name = "Arrivals Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "centcom_dock_airlock"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"bX" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/centcom/holding) +"bY" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"bZ" = (/obj/machinery/status_display{pixel_y = -32},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ca" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"cb" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"cc" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/closet/emcloset,/obj/item/clothing/suit/space/emergency,/obj/item/clothing/suit/space/emergency,/obj/item/clothing/head/helmet/space/emergency,/obj/item/clothing/head/helmet/space/emergency,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"cd" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ce" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"cf" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass{name = "Arrivals"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"cg" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/obj/machinery/door/airlock/glass{name = "Arrivals"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ch" = (/obj/structure/sign/warning/docking_area,/turf/simulated/wall/r_wall,/area/centcom/holding) +"ci" = (/obj/machinery/door/unpowered/shuttle,/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_y = 34; frequency = 1380; req_one_access = list(13); id_tag = "escape_shuttle"; tag_door = "escape_shuttle_hatch"},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"cj" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ck" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/power/apc/high{name = "east bump"; dir = 4; pixel_x = 24},/obj/structure/cable/green,/obj/structure/cable/green{icon_state = "0-2"; d2 = 2},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"cl" = (/obj/structure/bed/chair/shuttle/blue{dir = 8},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"cm" = (/obj/effect/shuttle_landmark/escape/centcom,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"cn" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/acting/backstage) +"co" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"cp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/camera/network/exodus{dir = 8; c_tag = "Arrivals East"},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"cq" = (/obj/structure/closet/secure_closet/security,/obj/machinery/light{dir = 1},/obj/item/device/flashlight/flare,/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/obj/item/melee/baton/loaded,/obj/item/gun/energy/classictaser,/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"cr" = (/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable/green{icon_state = "0-2"; d2 = 2},/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"cs" = (/obj/structure/reagent_dispensers/peppertank{pixel_y = 30},/obj/effect/floor_decal/corner/red{dir = 5},/obj/item/modular_computer/console/preset/security,/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"ct" = (/obj/item/modular_computer/console/preset/command,/obj/machinery/status_display{pixel_y = 32},/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"cu" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"cv" = (/obj/machinery/requests_console{pixel_y = 30; department = "Security"; departmentType = 5},/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"cx" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall,/area/centcom/holding) +"cy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"cz" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) +"cA" = (/turf/simulated/mineral,/area/space) +"cB" = (/obj/structure/lattice,/obj/structure/window_frame/grille,/turf/space,/area/space) +"cC" = (/obj/structure/lattice,/obj/structure/window_frame/broken,/turf/space,/area/space) +"cD" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/syndicate_mothership) +"cE" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership) +"cF" = (/obj/structure/sign/flag/syndie,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership) +"cG" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/syndicate_mothership) +"cH" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/syndicate_mothership) +"cI" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/syndicate_mothership) +"cJ" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 8},/obj/item/pen{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"cK" = (/obj/structure/table/standard,/obj/effect/landmark/event/nuke/code,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"cL" = (/obj/structure/table/standard,/obj/item/paper_bin{pixel_x = -3; pixel_y = 8},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"cM" = (/obj/structure/closet/wardrobe/red,/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"cN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"cO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"cP" = (/obj/structure/bed/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"cQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"cR" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/syndicate_mothership) +"cS" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership) +"cT" = (/obj/structure/bed,/obj/item/bedsheet/hos,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"cU" = (/obj/effect/landmark/start/antags/operatives,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"cV" = (/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"cW" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/syndicate_mothership) +"cX" = (/obj/item/device/pda/syndicate,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"cY" = (/obj/structure/sign/flag/syndie,/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/syndicate_mothership) +"da" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "11"; dir = 4},/turf/simulated/floor/plating/rough,/area/shuttle/escape/centcom) +"db" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "11"; dir = 8},/turf/simulated/floor/plating/rough,/area/shuttle/escape/centcom) +"dc" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"dd" = (/obj/machinery/computer/arcade,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"de" = (/obj/structure/closet/wardrobe/black,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/exodus{c_tag = "Arrivals - Main Shuttle"},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"df" = (/obj/structure/closet/wardrobe/xenos,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"dg" = (/obj/structure/closet/wardrobe/mixed,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"dh" = (/obj/structure/closet/wardrobe/grey,/obj/machinery/light{dir = 1},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"di" = (/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = list(1)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"dj" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access = list(101)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/centcom/holding) +"dl" = (/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/camera/network/security{dir = 1; c_tag = "Security - Arrival Checkpoint"},/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"dm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"dn" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"do" = (/obj/structure/table/reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"dp" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"dq" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/syndicate_mothership) +"dr" = (/obj/machinery/door/airlock/centcom{name = "Barracks"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"ds" = (/obj/item/crowbar,/obj/item/device/flash,/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/obj/item/device/radio/intercom{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"dv" = (/turf/unsimulated/wall{icon_state = "riveted_15"},/area/syndicate_mothership) +"dw" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw,/area/syndicate_station/start) +"dx" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/obj/structure/window/syndi{icon_state = "ws4"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"dy" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/obj/structure/window/syndi{icon_state = "ws6"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"dz" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/obj/structure/window/syndi{icon_state = "ws5"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"dA" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/ne,/area/syndicate_station/start) +"dB" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"dC" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"dD" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"dE" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"dF" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"dG" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/space,/area/shuttle/escape/centcom) +"dH" = (/obj/machinery/light{dir = 4},/obj/structure/bed/chair/shuttle/blue{dir = 8},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"dI" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/syndicate_mothership) +"dJ" = (/obj/structure/shuttle/engine/heater{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/rough/airless,/area/shuttle/escape/centcom) +"dK" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "2"; dir = 1},/turf/simulated/floor/plating/rough,/area/shuttle/escape/centcom) +"dL" = (/obj/machinery/computer/shuttle_control/emergency,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"dN" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full{pixel_x = 2; pixel_y = 6},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"dO" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"dP" = (/obj/machinery/light,/obj/item/device/radio/intercom{dir = 1; pixel_y = -22},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"dQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/door/airlock/engineering{name = "Civilian West Substation"; req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/centcom/holding) +"dR" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"dS" = (/obj/machinery/status_display{pixel_y = 32},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"dT" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/vending/snack,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"dU" = (/obj/machinery/camera/network/exodus{c_tag = "Arrivals South"},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"dV" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/closet/emcloset,/obj/item/clothing/suit/space/emergency,/obj/item/clothing/suit/space/emergency,/obj/item/clothing/head/helmet/space/emergency,/obj/item/clothing/head/helmet/space/emergency,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"dW" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/lapvend,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"dX" = (/obj/structure/table/standard,/obj/item/storage/box/glasses/square{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"dY" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"dZ" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"ea" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 8},/area/syndicate_mothership) +"eb" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 1},/area/syndicate_mothership) +"ec" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 9},/area/syndicate_station/start) +"ed" = (/obj/machinery/recharger,/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"ee" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ef" = (/obj/item/modular_computer/console/preset/syndicate,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"eg" = (/obj/machinery/computer/shuttle_control/multi/syndicate,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"eh" = (/obj/structure/computerframe,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"ei" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; id = "syndieshutters"; req_access = list(150)},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"ej" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 5},/area/syndicate_station/start) +"ek" = (/obj/machinery/requests_console{pixel_y = -30; department = "Arrival shuttle"},/obj/machinery/light,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"el" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 5},/area/shuttle/escape/centcom) +"em" = (/obj/machinery/camera/network/exodus{c_tag = "Arrivals Southwest"},/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"en" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"eo" = (/obj/structure/sign/warning/airlock{pixel_y = 32},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ep" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/centcom/holding) +"eq" = (/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1331; locked = 1; req_access = list(13); id_tag = "rescue_shuttle_dock_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"er" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "rescue_shuttle_dock_pump"},/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light/small/red{dir = 1},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"es" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_y = 30; frequency = 1331; req_access = list(0); req_one_access = list(13); id_tag = "rescue_shuttle_dock_airlock"; tag_exterior_door = "rescue_shuttle_dock_outer"; tag_interior_door = "rescue_shuttle_dock_inner"; tag_airpump = "rescue_shuttle_dock_pump"; tag_chamber_sensor = "rescue_shuttle_dock_sensor"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"et" = (/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1331; locked = 1; req_access = list(13); id_tag = "rescue_shuttle_dock_inner"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"eu" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/access_button{name = "interior access button"; pixel_x = -28; pixel_y = 26; frequency = 1331; command = "cycle_interior"; req_one_access = list(13); master_tag = "rescue_shuttle_dock_airlock"},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ev" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ew" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/brigdoor/northleft{name = "Security Checkpoint"; req_access = list(63)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"ex" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ey" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ez" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"eA" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"eB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"eC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"eD" = (/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1331; locked = 1; req_access = list(13); id_tag = "rescue_shuttle_dock_outer"},/obj/machinery/access_button{name = "exterior access button"; pixel_x = -5; pixel_y = -26; frequency = 1331; command = "cycle_exterior"; req_one_access = list(13); master_tag = "nuke_shuttle_dock_airlock"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"eE" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"eF" = (/obj/structure/sign/double/map/left,/turf/simulated/wall,/area/centcom/holding) +"eG" = (/obj/structure/sign/double/map/right,/turf/simulated/wall,/area/centcom/holding) +"eH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable/green{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/centcom/holding) +"eI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/meter,/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/light/small/hl{dir = 1},/turf/simulated/floor/plating,/area/centcom/holding) +"eJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/terminal,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/centcom/holding) +"eK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/centcom/holding) +"eL" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/item/modular_computer/telescreen/preset/generic{name = "west bump"; pixel_x = -32},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"eM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/green{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"eN" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/light{dir = 1},/obj/machinery/door/airlock/glass{name = "Arrivals"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"eO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/device/radio/intercom{pixel_y = 22},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"eP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/cable/green{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"eQ" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"eR" = (/obj/structure/table/reinforced,/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"eS" = (/turf/unsimulated/wall{icon_state = "riveted_b"; dir = 8},/area/syndicate_mothership) +"eT" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 4},/area/syndicate_mothership) +"eU" = (/obj/vehicle/bike/electric,/obj/effect/floor_decal/industrial/hatch/red,/obj/effect/floor_decal/industrial/warning/full,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"eV" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1331; id_tag = "rescue_shuttle_dock_pump"},/obj/machinery/airlock_sensor{pixel_y = -25; frequency = 1331; id_tag = "rescue_shuttle_dock_sensor"},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"eW" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"eX" = (/obj/machinery/light{dir = 1},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/camera/network/exodus{c_tag = "Arrivals Lounge"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"eY" = (/obj/structure/extinguisher_cabinet{pixel_x = -7; pixel_y = 32},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/vending/wallmed1{pixel_x = 7; pixel_y = 32},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"eZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/airlock/engineering{name = "Civilian West Substation"; req_access = list(101)},/turf/simulated/floor/plating,/area/centcom/holding) +"fc" = (/obj/machinery/alarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/power/sensor{name = "Powernet Sensor - Civilian West"; name_tag = "Civilian West Subgrid"},/obj/structure/cable/green{icon_state = "0-8"; d2 = 8},/obj/structure/cable/green{icon_state = "0-4"; d2 = 4},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/centcom/holding) +"fd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/meter,/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/camera/network/engineering{dir = 1; c_tag = "Civilian West Substation"},/turf/simulated/floor/plating,/area/centcom/holding) +"fe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/power/breakerbox/activated{RCon_tag = "Civilian West Substation Bypass"},/turf/simulated/floor/plating,/area/centcom/holding) +"ff" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/spline/fancy/wood/corner,/obj/machinery/door/airlock/glass{name = "Arrivals"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fg" = (/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fj" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "0-4"; d2 = 4},/obj/structure/cable/green{icon_state = "0-8"; d2 = 8},/obj/machinery/power/smes/buildable{input_level = 250000; input_level_max = 250000; output_level = 250000; output_level_max = 250000; RCon_tag = "Substation - Civilian West"},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_west) +"fl" = (/obj/structure/window_frame/rglass,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/centcom/holding) +"fm" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/syndicate_station/start) +"fn" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 2},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"fo" = (/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"fp" = (/obj/effect/shuttle_landmark/syndi/start,/obj/structure/bed/chair/comfy/captain{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"fq" = (/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"fr" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"fs" = (/obj/item/folder{pixel_y = 2},/obj/structure/table/glass,/obj/item/flame/lighter/zippo/syndie,/obj/item/deck/cards,/obj/item/music_tape_box/syndie,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"ft" = (/obj/item/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/pen{pixel_y = 4},/obj/structure/table/glass,/obj/item/clothing/glasses/rglasses,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"fu" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fv" = (/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1331; locked = 1; req_access = list(13); id_tag = "rescue_shuttle_dock_inner"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"fw" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fx" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fy" = (/obj/structure/window_frame/rglass,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/centcom/holding) +"fz" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fA" = (/obj/structure/bed/chair/comfy/beige,/turf/simulated/floor/trim/wood,/area/centcom/holding) +"fB" = (/turf/simulated/floor/trim/wood,/area/centcom/holding) +"fC" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/item/book/wiki/nt_regs,/turf/simulated/floor/trim/wood,/area/centcom/holding) +"fD" = (/obj/machinery/vending/cigarette,/obj/effect/floor_decal/spline/plain/black{dir = 9},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"fE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fF" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fG" = (/obj/machinery/light{dir = 1},/obj/structure/sign/directions/evac{dir = 4; pixel_y = 32; pixel_z = -8},/obj/structure/sign/directions/medical{dir = 4; pixel_y = 32},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fH" = (/obj/machinery/door/airlock/glass{name = "Central Access"; req_access = list(101)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fI" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"fJ" = (/obj/effect/floor_decal/corner/blue,/obj/effect/floor_decal/corner/white{dir = 8},/obj/item/device/radio/intercom{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fK" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/syndicate_mothership) +"fL" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fM" = (/obj/structure/table/reinforced,/obj/item/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"fN" = (/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable/green{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fO" = (/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fQ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fR" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fS" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fT" = (/obj/machinery/light{dir = 1},/obj/structure/sign/warning/high_voltage{pixel_y = 32},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fU" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fV" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"fW" = (/obj/structure/table/woodentable,/obj/random/single{name = "randomly spawned deck of cards"; icon = 'icons/obj/playing_cards.dmi'; icon_state = "deck"; spawn_nothing_percentage = 50; spawn_object = /obj/item/deck/cards},/obj/machinery/recharger,/turf/simulated/floor/trim/wood,/area/centcom/holding) +"fX" = (/obj/structure/table/woodentable,/obj/random/snack,/obj/item/plant_pot/random,/turf/simulated/floor/trim/carpet,/area/centcom/holding) +"fY" = (/turf/simulated/floor/trim/carpet,/area/centcom/holding) +"fZ" = (/obj/item/modular_computer/console/preset/civilian,/turf/simulated/floor/trim/wood,/area/centcom/holding) +"ga" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"gb" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/green,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/green,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"gc" = (/obj/structure/cable/green{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/effect/floor_decal/plaque,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gd" = (/obj/machinery/door/airlock/glass{name = "Central Access"; req_access = list(101)},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gf" = (/obj/effect/floor_decal/industrial/warning/red/cee{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"gg" = (/obj/effect/floor_decal/corner/blue,/obj/effect/floor_decal/corner/white{dir = 8},/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gh" = (/obj/machinery/light,/obj/effect/floor_decal/corner/blue,/obj/effect/floor_decal/corner/white{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gi" = (/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gj" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/cable/green{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gk" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gl" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gm" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gn" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"go" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable/green{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gp" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gq" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gr" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/obj/machinery/camera/network/exodus{dir = 4; c_tag = "Arrivals Southeast"},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gs" = (/obj/structure/table/woodentable,/obj/random/single{name = "randomly spawned lighter"; icon = 'icons/obj/items.dmi'; icon_state = "lighter-g"; spawn_nothing_percentage = 50; spawn_object = /obj/item/flame/lighter},/obj/random/smokes,/turf/simulated/floor/trim/wood,/area/centcom/holding) +"gt" = (/obj/structure/table/woodentable,/obj/item/material/ashtray/plastic,/turf/simulated/floor/trim/carpet,/area/centcom/holding) +"gu" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/spline/plain/black{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"gv" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gw" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gx" = (/obj/machinery/light,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gy" = (/obj/machinery/camera/network/exodus{dir = 1; c_tag = "Primary Hallway Port - West"},/obj/item/device/radio/intercom{dir = 1; pixel_y = -22},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gz" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gA" = (/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gC" = (/obj/effect/floor_decal/corner/blue,/obj/effect/floor_decal/corner/white{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/corner/blue,/obj/effect/floor_decal/corner/white{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gE" = (/obj/effect/floor_decal/corner/white{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gF" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/indestructible/hull,/turf/simulated/floor/plating,/area/centcom/holding) +"gG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/obj/machinery/door/airlock/glass{name = "Arrivals"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gH" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/light,/obj/machinery/door/airlock/glass{name = "Arrivals"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gI" = (/obj/structure/window_frame/rglass,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/shutters{name = "Office Shutters"; id = "office_shutter"},/turf/simulated/floor/plating,/area/centcom/holding) +"gJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -24},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/light,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gK" = (/obj/structure/disposalpipe/sortjunction/flipped{name = "Primary Tool Storage"; dir = 4; sortType = "Primary Tool Storage"},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gM" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gN" = (/obj/structure/bed/chair/comfy/beige{dir = 1},/turf/simulated/floor/trim/wood,/area/centcom/holding) +"gO" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/spline/plain/black{dir = 10},/turf/simulated/floor/tiled/dark/rough,/area/centcom/holding) +"gP" = (/obj/structure/cable/green,/obj/machinery/power/apc/high{name = "east bump"; dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gQ" = (/obj/machinery/door/airlock/glass{name = "Locker Room"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gR" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass{name = "Locker Room"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gT" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gU" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass{name = "Arrivals"; req_access = list(101)},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gW" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gX" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gY" = (/obj/machinery/status_display{pixel_y = 32},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"gZ" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/blue,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/blue,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"ha" = (/obj/item/storage/box/donkpockets{pixel_x = 2; pixel_y = 3},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"hb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Vacant Office"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hc" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hd" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"he" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hf" = (/obj/structure/window_frame/rglass,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/shutters{name = "Office Shutters"; dir = 8; id = "office_shutter"},/turf/simulated/floor/plating,/area/centcom/holding) +"hg" = (/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled,/area/centcom/holding) +"hh" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/plant_pot/random,/turf/simulated/floor/tiled,/area/centcom/holding) +"hi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hj" = (/obj/machinery/atm{pixel_x = 24},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hk" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hl" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass{name = "Arrivals"; req_access = list(101)},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hm" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/papershredder,/turf/simulated/floor/tiled,/area/centcom/holding) +"hn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ho" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled,/area/centcom/holding) +"hq" = (/obj/structure/window/basic{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled,/area/centcom/holding) +"hr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"hs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/button/remote/blast_door{name = "Office Shutters"; pixel_x = -8; pixel_y = 22; id = "office_shutter"},/obj/machinery/light_switch{pixel_x = -8; pixel_y = 32},/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"ht" = (/obj/machinery/alarm{dir = 8; pixel_x = 24},/obj/structure/table/standard,/obj/item/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/hand_labeler,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"hu" = (/obj/structure/window_frame/reinforced/hull,/obj/structure/sign/warning/airlock,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/centcom/holding) +"hv" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/centcom/holding) +"hw" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hy" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/machinery/recharger,/turf/simulated/floor/tiled,/area/centcom/holding) +"hz" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/firealarm{pixel_y = -24},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hA" = (/obj/machinery/alarm{dir = 1; pixel_y = -24},/obj/machinery/camera/network/exodus{dir = 8; c_tag = "Arrivals Hallway"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"hI" = (/obj/structure/bed/chair/shuttle/red{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"hJ" = (/obj/machinery/light{dir = 4},/obj/structure/computerframe,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"hK" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"hL" = (/obj/structure/bed/chair/office/light{dir = 8},/turf/simulated/floor/tiled,/area/centcom/holding) +"hM" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"hN" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"hO" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"hP" = (/obj/structure/table/reinforced,/obj/item/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"hQ" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/vessel/bottle/vodka{pixel_x = 3; pixel_y = 12},/obj/item/reagent_containers/vessel/bottle/wine{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"hR" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/med,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/med,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"hS" = (/obj/effect/floor_decal/industrial/warning/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"hT" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"hU" = (/obj/item/stack/material/glass{amount = 15},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"hV" = (/obj/machinery/light,/obj/item/device/radio/intercom/syndicate{dir = 1; pixel_y = -22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"hW" = (/obj/item/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/pen{pixel_y = 4},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"hX" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"hY" = (/turf/simulated/floor/tiled,/area/centcom/holding) +"hZ" = (/obj/structure/bed/chair/office/dark{dir = 4},/turf/simulated/floor/tiled,/area/centcom/holding) +"ia" = (/obj/structure/window/basic{dir = 4},/obj/item/folder/blue{pixel_x = 5},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled,/area/centcom/holding) +"ib" = (/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"ic" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"id" = (/obj/machinery/power/apc{name = "east bump"; dir = 4; pixel_x = 24},/obj/structure/table/standard,/obj/item/stamp,/obj/structure/cable/green{icon_state = "0-8"; d2 = 8},/obj/item/pen,/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"ie" = (/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "centcom_shuttle_dock_outer"},/obj/machinery/access_button{name = "exterior access button"; dir = 8; pixel_x = -5; pixel_y = -26; frequency = 1380; command = "cycle_exterior"; req_one_access = list(13); master_tag = "ghetto_shuttle_dock"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"if" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_y = 30; frequency = 1380; req_one_access = list(13); id_tag = "centcom_shuttle_dock_airlock"; tag_exterior_door = "centcom_shuttle_dock_outer"; tag_interior_door = "centcom_shuttle_dock_inner"; tag_airpump = "centcom_shuttle_dock_pump"; tag_chamber_sensor = "centcom_shuttle_dock_sensor"},/obj/machinery/airlock_sensor{dir = 1; pixel_y = -25; frequency = 1380; id_tag = "centcom_shuttle_dock_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "centcom_shuttle_dock_pump"},/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"ig" = (/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "centcom_shuttle_dock_inner"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"ih" = (/obj/machinery/access_button{name = "interior access button"; dir = 4; pixel_x = -28; pixel_y = 26; frequency = 1380; command = "cycle_interior"; req_one_access = list(13); master_tag = "centcom_shuttle_dock_airlock"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"ii" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"iq" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; products = list(/obj/item/storage/fancy/cigarettes=10, /obj/item/storage/box/matches=10, /obj/item/flame/lighter/zippo=4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana=2); prices = list()},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"ir" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"is" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/syndicate_mothership) +"it" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/syndicate_mothership) +"iu" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"iv" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"iw" = (/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"ix" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4},/obj/machinery/status_display{pixel_x = 32},/obj/random/smokes,/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"iy" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"iz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"iA" = (/obj/structure/bed/chair/office/dark{dir = 8},/turf/simulated/floor/tiled,/area/centcom/holding) +"iB" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/sw,/area/syndicate_station/start) +"iC" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/syndicate_station/start) +"iD" = (/obj/machinery/door/window/northright{name = "Flight Deck"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"iE" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 4},/area/syndicate_station/start) +"iF" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 4},/area/syndicate_station/start) +"iG" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/syndicate_station/start) +"iH" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/se,/area/syndicate_station/start) +"iI" = (/obj/structure/sign/flag/syndie,/turf/unsimulated/wall,/area/syndicate_mothership) +"iJ" = (/obj/structure/window/basic{dir = 4},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled,/area/centcom/holding) +"iK" = (/obj/machinery/photocopier,/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"iL" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning/cee{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"iM" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"iN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera/network/exodus{dir = 8; c_tag = "Arrivals Auxiliary Docking North"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"iO" = (/obj/item/folder/yellow,/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled,/area/centcom/holding) +"iP" = (/obj/machinery/firealarm{pixel_y = -24},/obj/machinery/light,/turf/simulated/floor/tiled,/area/centcom/holding) +"iQ" = (/obj/machinery/newscaster{pixel_y = -32},/obj/structure/table/standard{name = "plastic table frame"},/obj/item/plant_pot/random,/turf/simulated/floor/tiled,/area/centcom/holding) +"iR" = (/obj/machinery/camera/network/civilian_west{dir = 1; c_tag = "Vacant Office"},/obj/item/device/radio/intercom{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"iS" = (/obj/structure/filingcabinet,/turf/simulated/floor/tiled/dark,/area/centcom/holding) +"iT" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"iU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/power/apc/high{name = "east bump"; dir = 4; pixel_x = 24},/obj/structure/cable/green{icon_state = "0-2"; d2 = 2},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"iW" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "deathsquad_shuttle_dock_pump"},/obj/machinery/light/small/red{dir = 1},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"iX" = (/obj/effect/floor_decal/spline/plain/black{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"iY" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) +"iZ" = (/obj/machinery/shower{pixel_y = 24},/obj/structure/window/basic{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) +"ja" = (/obj/item/soap/syndie,/obj/machinery/shower{pixel_y = 24},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) +"jb" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"jc" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/armor/vest,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"jd" = (/obj/structure/closet/secure_closet/medical_wall{pixel_x = -32; req_access = list(150)},/obj/item/stack/medical/splint,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"je" = (/obj/effect/floor_decal/industrial/warning/red{dir = 6},/obj/structure/bed/chair/shuttle/red{dir = 8},/turf/simulated/floor,/area/syndicate_station/start) +"jf" = (/obj/machinery/light{dir = 1},/obj/structure/bed/chair/shuttle/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 10},/turf/simulated/floor,/area/syndicate_station/start) +"jg" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_y = 30; frequency = 1380; req_access = list(0); req_one_access = list(13); id_tag = "deathsquad_shuttle_dock_airlock"; tag_exterior_door = "deathsquad_shuttle_dock_outer"; tag_interior_door = "deathsquad_shuttle_dock_inner"; tag_airpump = "deathsquad_shuttle_dock_pump"; tag_chamber_sensor = "deathsquad_shuttle_dock_sensor"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"jh" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "deathsquad_shuttle_dock_inner"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"ji" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/access_button{name = "interior access button"; pixel_x = -8; pixel_y = 26; frequency = 1380; command = "cycle_interior"; req_one_access = list(13); master_tag = "deathsquad_shuttle_dock_airlock"},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"jj" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"jk" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"jl" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/machinery/atmospherics/pipe/manifold4w/hidden,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"jm" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable/green{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"jn" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/centcom/holding) +"jo" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/centcom/holding) +"jp" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/sign/warning/moving_parts{pixel_y = -32},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/plating,/area/centcom/holding) +"jq" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/centcom/holding) +"jr" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/centcom/holding) +"js" = (/obj/structure/cable/green{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/centcom/holding) +"jt" = (/obj/structure/closet/hydrant{pixel_y = 32},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"ju" = (/obj/structure/table/rack,/obj/item/storage/belt/security,/obj/item/storage/belt/security,/obj/item/ammo_magazine/mc9mm/flash,/obj/item/gun/projectile/pistol/holdout/flash,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"jv" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"jw" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/wall,/area/centcom/holding) +"jx" = (/obj/machinery/door/airlock/centcom{name = "Bathroom"; opacity = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) +"jy" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) +"jz" = (/obj/machinery/shower{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) +"jA" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"jB" = (/obj/structure/bed/chair/shuttle/red{dir = 8},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/simulated/floor,/area/syndicate_station/start) +"jC" = (/obj/structure/bed/chair/shuttle/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/simulated/floor,/area/syndicate_station/start) +"jD" = (/obj/structure/closet,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"jE" = (/obj/structure/mirror{dir = 4; pixel_x = -32},/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) +"jF" = (/obj/structure/window/reinforced/tinted{dir = 8},/obj/structure/toilet{dir = 8},/obj/item/paper/crumpled,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) +"jG" = (/obj/structure/window_frame/indestructible/grille,/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership) +"jH" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/airlock_sensor{dir = 4; pixel_x = -25; frequency = 1380; id_tag = "deathsquad_shuttle_dock_sensor"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"jI" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "deathsquad_shuttle_dock_pump"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"jJ" = (/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "deathsquad_shuttle_dock_inner"},/turf/simulated/floor/plating/rough,/area/centcom/holding) +"jK" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/light,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"jL" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"jM" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"jN" = (/obj/machinery/status_display{pixel_x = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/spline/fancy/wood/corner,/turf/simulated/floor/tiled/rough,/area/centcom/holding) +"jO" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Disposal Access"; req_access = list(12)},/turf/simulated/floor/plating,/area/centcom/holding) +"jP" = (/obj/machinery/door/airlock/centcom{name = "Suit Storage"; opacity = 1},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"jQ" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw{icon_state = "corner_syndiwall_s"},/area/syndicate_station/start) +"jR" = (/obj/machinery/access_button{name = "exterior access button"; pixel_x = -26; pixel_y = -5; frequency = 1380; command = "cycle_exterior"; req_one_access = list(13); master_tag = "deathsquad_shuttle_dock_airlock"},/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "deathsquad_shuttle_dock_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"jS" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 4},/area/syndicate_station/start) +"jT" = (/obj/structure/closet,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"jU" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 8},/area/syndicate_station/start) +"jV" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/ne{icon_state = "corner_syndiwall_s"},/area/syndicate_station/start) +"jW" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/syndicate_mothership) +"jX" = (/obj/structure/table/rack,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"jY" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"jZ" = (/obj/machinery/door/airlock/external{name = "Docking Port Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "deathsquad_shuttle_dock_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating/rough,/area/centcom/holding) +"ka" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall/r_wall,/area/centcom/holding) +"ke" = (/obj/effect/floor_decal/industrial/warning/red{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kf" = (/obj/effect/floor_decal/sign/armory/suits{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kg" = (/obj/effect/floor_decal/industrial/warning/red{dir = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kh" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/gun/projectile/automatic/c20r,/obj/item/gun/projectile/automatic/c20r,/obj/item/gun/projectile/automatic/c20r,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"ki" = (/obj/structure/table/rack,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/device/suit_cooling_unit,/obj/item/ammo_magazine/c556,/obj/item/ammo_magazine/c556,/obj/item/ammo_magazine/c556,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kj" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"},/area/syndicate_station/start) +"kk" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 4},/area/syndicate_station/start) +"kl" = (/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_50"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"km" = (/obj/structure/bed/chair/shuttle/red{dir = 8},/obj/effect/floor_decal/industrial/warning/red{dir = 5},/turf/simulated/floor,/area/syndicate_station/start) +"kn" = (/obj/structure/bed/chair/shuttle/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 9},/turf/simulated/floor,/area/syndicate_station/start) +"ko" = (/obj/structure/closet,/obj/item/reagent_containers/food/packaged/tastybread,/obj/item/reagent_containers/food/packaged/tastybread,/obj/item/reagent_containers/food/packaged/tastybread,/obj/item/reagent_containers/food/packaged/tastybread,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"kp" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 8},/area/syndicate_station/start) +"kq" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"},/area/syndicate_station/start) +"kz" = (/obj/structure/window/reinforced/crescent,/turf/space,/area/space) +"kA" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; pixel_y = -5; frequency = 1331; id_tag = "merc_base"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kB" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kC" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kD" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kE" = (/obj/effect/floor_decal/industrial/warning/red{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kF" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kM" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kN" = (/obj/effect/floor_decal/sign/armory/ballistic1{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kO" = (/obj/effect/floor_decal/sign/armory/ballistic2{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kP" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"kQ" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) +"lf" = (/obj/machinery/flasher{pixel_y = 28; id = "syndieflash"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) +"lg" = (/obj/item/device/radio/electropack,/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) +"lh" = (/obj/item/device/radio/intercom/syndicate{dir = 1; pixel_y = -22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"li" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/syndicate_station/start) +"lj" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"lk" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/airlock_sensor{pixel_x = 8; pixel_y = 25; frequency = 1331; id_tag = "merc_shuttle_sensor"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"ll" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = -8; pixel_y = 25; frequency = 1331; req_access = list(150); id_tag = "merc_shuttle"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"lm" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; frequency = 1331; req_access = list(150); id_tag = "merc_shuttle_outer"},/obj/machinery/door/blast/regular{name = "Outer Airlock"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "smindicate"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/syndicate_station/start) +"ln" = (/obj/machinery/door/airlock/external{frequency = 1331; req_access = list(150); id_tag = "merc_base_hatch"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lo" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lp" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/acting/backstage) +"lB" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lC" = (/obj/machinery/door/airlock/vault{name = "Armory"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lD" = (/obj/effect/floor_decal/industrial/warning/red/cee{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lE" = (/obj/effect/floor_decal/industrial/warning/red,/obj/effect/floor_decal/industrial/warning/red{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lF" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 8},/obj/effect/floor_decal/industrial/warning/red/corner{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lG" = (/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lH" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lI" = (/obj/structure/sign/flag/syndie,/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/syndicate_mothership) +"lJ" = (/obj/structure/window/syndi,/turf/simulated/floor/plating,/area/syndicate_station/start) +"lK" = (/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) +"lN" = (/obj/item/cigbutt,/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) +"lO" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 1},/area/syndicate_station/start) +"lP" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 8},/area/syndicate_station/start) +"lQ" = (/obj/machinery/door/window{name = "Seating"; dir = 2; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"lR" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/syndicate_station/start) +"lS" = (/obj/structure/table/standard,/obj/machinery/computer/pod/old/syndicate{id = "smindicate"},/obj/machinery/door/window{name = "Blast Door Control"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"lT" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"lU" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"lV" = (/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lW" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lX" = (/obj/structure/table/rack,/obj/item/tank/jetpack/oxygen,/obj/item/tank/jetpack/oxygen,/obj/item/tank/jetpack/oxygen,/obj/item/tank/jetpack/oxygen,/obj/item/tank/jetpack/oxygen,/obj/item/tank/jetpack/oxygen,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lY" = (/obj/structure/table/rack,/obj/item/tank/jetpack/carbondioxide,/obj/item/tank/jetpack/carbondioxide,/obj/item/tank/jetpack/carbondioxide,/obj/item/tank/jetpack/carbondioxide,/obj/item/tank/jetpack/carbondioxide,/obj/item/tank/jetpack/carbondioxide,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"lZ" = (/obj/effect/floor_decal/industrial/warning/red{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"ma" = (/obj/effect/floor_decal/industrial/warning/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mb" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"md" = (/obj/effect/floor_decal/industrial/warning/red/corner,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"me" = (/obj/effect/floor_decal/sign/armory/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mf" = (/obj/effect/floor_decal/industrial/warning/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mg" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mh" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/syndicate_station/start) +"mi" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/nw,/area/shuttle/escape/centcom) +"mj" = (/obj/machinery/door/window{name = "Cell"; dir = 1; req_access = list(150)},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mk" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_c"; dir = 1},/area/syndicate_station/start) +"ml" = (/obj/machinery/vending/assist/antag,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mm" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/shuttle/escape/centcom) +"mn" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; frequency = 1331; req_access = list(0); id_tag = "merc_shuttle_inner"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mo" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/space,/area/space) +"mp" = (/turf/unsimulated/wall,/area/syndicate_mothership) +"mq" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/syndicate_mothership) +"mr" = (/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"ms" = (/obj/structure/table/rack,/obj/item/storage/box/handcuffs{pixel_x = 4; pixel_y = 2},/obj/item/storage/box/flashbangs,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mt" = (/obj/structure/table/rack,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mu" = (/obj/effect/floor_decal/sign/armory/suits,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mv" = (/obj/structure/table/rack,/obj/item/gun/energy/gun,/obj/item/gun/energy/gun,/obj/item/gun/energy/gun,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mw" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle,/obj/effect/floor_decal/industrial/hatch/red,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mx" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; products = list(/obj/item/storage/fancy/cigarettes=10, /obj/item/storage/box/matches=10, /obj/item/flame/lighter/zippo=4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana=2); prices = list()},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"my" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/button/flasher{name = "Flasher"; pixel_x = 27; id = "syndieflash"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mz" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 1},/area/syndicate_station/start) +"mA" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mB" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mC" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"},/area/shuttle/escape/centcom) +"mD" = (/obj/machinery/access_button{name = "interior access button"; pixel_x = 25; pixel_y = 25; frequency = 1331; req_access = list(150); command = "cycle_interior"; master_tag = "merc_shuttle"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mE" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mF" = (/obj/machinery/door/airlock/centcom{name = "Hardsuit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mG" = (/obj/item/material/kitchen/utensil/knife{pixel_x = -6},/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = -1},/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 4},/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 9},/obj/structure/table/glass,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mH" = (/obj/machinery/door/window{name = "Brig"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mI" = (/obj/machinery/door/window{name = "Preparation"; icon_state = "right"; dir = 8; req_access = list(150); base_state = "right"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mJ" = (/obj/structure/closet/syndicate/suit{name = "suit closet"},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mK" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas/syndicate,/obj/item/clothing/suit/space/void/syndi/prepared,/obj/effect/floor_decal/industrial/hatch/red,/obj/item/clothing/accessory/holochip/nuke,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mL" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 1},/obj/effect/floor_decal/industrial/warning/red/corner{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mM" = (/obj/structure/closet{name = "custodial"},/obj/item/reagent_containers/vessel/bucket,/obj/item/mop,/obj/item/reagent_containers/spray/cleaner,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mN" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"},/area/shuttle/escape/centcom) +"mO" = (/obj/machinery/door/window{name = "Brig"; icon_state = "right"; req_access = list(150); base_state = "right"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mP" = (/obj/machinery/door/window{name = "Preparation"; dir = 8; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mQ" = (/obj/structure/table/standard,/obj/item/storage/toolbox/syndicate{pixel_x = -1; pixel_y = 3},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"mR" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"; dir = 4},/area/shuttle/escape/centcom) +"mS" = (/obj/effect/floor_decal/industrial/warning/red{dir = 8},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mT" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"},/area/syndicate_station/start) +"mU" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 8},/area/syndicate_station/start) +"mV" = (/obj/machinery/sleeper{dir = 4},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"mW" = (/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"mX" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 1},/area/shuttle/escape/centcom) +"mY" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/structure/sign/warning/nosmoking_1{pixel_y = 32},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"mZ" = (/obj/structure/table/standard,/obj/item/roller{pixel_y = 8},/obj/item/reagent_containers/syringe/antiviral/packaged,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"na" = (/obj/structure/table/standard,/obj/structure/closet/secure_closet/medical_wall{pixel_y = 32; req_access = list(150)},/obj/item/bodybag,/obj/item/reagent_containers/vessel/bottle/chemical/antitoxin{pixel_x = -4; pixel_y = 8},/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline{pixel_x = 4; pixel_y = 7},/obj/item/reagent_containers/syringe,/obj/machinery/light{dir = 4},/obj/item/reagent_containers/syringe/antiviral/packaged,/obj/item/reagent_containers/syringe/antiviral/packaged,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nb" = (/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nc" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nd" = (/obj/item/clothing/gloves/insulated,/obj/item/device/assembly/signaler{pixel_y = 2},/obj/item/clothing/glasses/hud/scanners/night,/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"ne" = (/obj/item/clothing/gloves/insulated,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/hud/scanners/night,/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nf" = (/obj/item/clothing/gloves/insulated,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/hud/scanners/night,/obj/machinery/light{dir = 4},/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"ng" = (/obj/effect/floor_decal/sign/armory,/obj/effect/floor_decal/industrial/warning/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"nh" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 4},/area/shuttle/escape/centcom) +"ni" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"nj" = (/obj/item/screwdriver,/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nk" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"nl" = (/obj/structure/table/rack,/obj/item/rig/syndi/empty,/obj/effect/floor_decal/industrial/hatch/red,/obj/effect/floor_decal/industrial/warning/full,/obj/item/clothing/accessory/holochip/nuke,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"nm" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"nn" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"no" = (/obj/machinery/body_scanconsole{dir = 8},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"np" = (/obj/machinery/door/window{name = "Infirmary"; req_access = list(150)},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nq" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nr" = (/obj/item/stool/padded,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"ns" = (/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nt" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 8},/area/shuttle/escape/centcom) +"nu" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"nv" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 4},/area/shuttle/escape/centcom) +"nw" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"nx" = (/obj/machinery/door/window{name = "Infirmary"; icon_state = "right"; req_access = list(150); base_state = "right"},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"ny" = (/obj/machinery/door/window{name = "Tool Storage"; dir = 8; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nz" = (/obj/item/aicard,/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nA" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"nB" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_x = -25; id = "syndieshutters_infirmary"},/obj/structure/mopbucket,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nC" = (/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nD" = (/obj/machinery/door/window{name = "Secure Storage"; dir = 1; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nE" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nF" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_y = -25; id = "syndieshutters_telebay"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nG" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_x = 25; id = "syndieshutters_workshop"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nH" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/item/bonesetter,/obj/item/bonegel,/obj/item/organfixer/advanced,/obj/structure/table/glass,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nI" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 6},/area/shuttle/escape/centcom) +"nJ" = (/obj/machinery/door/window{name = "Surgery"; dir = 1; req_access = list(150)},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nK" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/gas_stand/anesthetic,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nL" = (/obj/structure/table/standard,/obj/structure/window/reinforced/crescent{dir = 8},/obj/item/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = 1},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nM" = (/obj/structure/table/standard,/obj/item/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/fire{pixel_x = 1},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nN" = (/obj/item/weldingtool,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nO" = (/obj/structure/sign/warning/caution{pixel_x = 32},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nP" = (/obj/machinery/telecomms/allinone{intercept = 1},/obj/machinery/door/window/northright{name = "Telecoms Mainframe"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nQ" = (/obj/machinery/door/blast/regular{name = "Outer Airlock"; id = "syndieshutters_telebay"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"nR" = (/obj/item/scalpel,/obj/item/circular_saw{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/structure/table/glass,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nS" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/syringe,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/latex,/obj/item/surgicaldrill,/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; req_access = list(150)},/obj/item/reagent_containers/syringe/antiviral/packaged,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nT" = (/obj/effect/landmark/event/nuke/bomb,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nU" = (/obj/item/crowbar,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nV" = (/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nW" = (/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nX" = (/obj/structure/sign/warning/nosmoking_2{pixel_x = 32},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"nY" = (/obj/item/cautery,/obj/item/hemostat,/obj/item/FixOVein,/obj/structure/table/glass,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"nZ" = (/obj/machinery/optable,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"oa" = (/obj/item/stack/medical/advanced/bruise_pack,/obj/item/retractor,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/obj/structure/table/glass,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"ob" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced/crescent{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_station/start) +"oc" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"od" = (/obj/structure/table/steel,/obj/item/flame/lighter/zippo,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"oe" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_station/start) +"of" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_station/start) +"og" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_station/start) +"oh" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/space) +"oi" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) +"oj" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/skipjack_station/base) +"ok" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/skipjack_station/base) +"ol" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"om" = (/turf/unsimulated/wall,/area/skipjack_station/base) +"on" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/skipjack_station/base) +"oo" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/skipjack_station/base) +"op" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/skipjack_station/base) +"oq" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/skipjack_station/base) +"or" = (/obj/structure/sign/double/maltesefalcon/left,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/skipjack_station/base) +"os" = (/obj/structure/sign/double/maltesefalcon/right,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/skipjack_station/base) +"ot" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"ou" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/sw,/area/shuttle/escape/centcom) +"ov" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/space) +"ow" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) +"ox" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/skipjack_station/base) +"oy" = (/obj/structure/bed,/obj/item/bedsheet/orange,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oz" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/se,/area/shuttle/escape/centcom) +"oA" = (/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oB" = (/obj/structure/table/steel,/obj/item/device/flashlight/lamp/brown,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oC" = (/obj/structure/bed,/obj/item/bedsheet/purple,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oD" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oE" = (/obj/structure/largecrate/animal/cow,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oF" = (/obj/structure/closet/crate/medical,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oG" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oH" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oI" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oJ" = (/obj/item/stool/padded,/obj/effect/landmark/start/antags/vox,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oK" = (/obj/structure/table/gamblingtable,/obj/item/deck/cards,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oL" = (/obj/item/stool/padded,/obj/effect/landmark/start/antags/vox,/turf/simulated/floor/trim/wood/broken0{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oM" = (/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oN" = (/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oO" = (/obj/structure/table/woodentable,/obj/item/storage/box/glasses,/obj/machinery/light/small{dir = 1},/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oP" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_alc/full{pixel_y = 2},/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oQ" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oR" = (/turf/simulated/mineral,/area/skipjack_station/base) +"oS" = (/obj/structure/table/steel,/obj/item/paper,/obj/item/pen,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oT" = (/obj/structure/closet,/obj/random/contraband,/obj/random/contraband,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oU" = (/obj/structure/closet/crate,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/crowbar,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oV" = (/obj/structure/table/standard,/obj/item/storage/firstaid/surgery,/obj/item/storage/firstaid/combat,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oW" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/skipjack_station/base) +"oX" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oY" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/trim/wood/broken0{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"oZ" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pa" = (/obj/structure/table/woodentable,/obj/item/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/medic,/obj/item/clothing/head/helmet/space/vox/medic,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pc" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/pressure,/obj/item/clothing/head/helmet/space/vox/pressure,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pd" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox,/obj/item/clothing/head/helmet/space/vox,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pe" = (/obj/effect/decal/mecha_wreckage/hoverpod,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pf" = (/obj/structure/flora/pottedplant/ugly,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pg" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/closet,/obj/random/clothing/hat,/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"ph" = (/obj/structure/closet/crate/trashcart,/obj/random/drinkbottle,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pi" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pj" = (/obj/structure/sign/poster,/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/skipjack_station/base) +"pk" = (/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pl" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) +"pm" = (/obj/structure/table/woodentable,/obj/item/flame/lighter/zippo,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pn" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bottle/small/beer,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"po" = (/obj/structure/table/woodentable,/obj/item/pizzabox/meat,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pp" = (/obj/structure/table/woodentable,/obj/random/cash,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pq" = (/obj/structure/table/woodentable,/obj/random/handgun,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pr" = (/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"ps" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pt" = (/turf/simulated/floor/trim/wood/broken0{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pu" = (/obj/item/stool/padded,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pv" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pw" = (/obj/structure/table/rack/dark,/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"px" = (/obj/structure/table/rack/dark,/obj/item/gun/launcher/alien/spikethrower,/obj/item/gun/launcher/alien/spikethrower,/obj/item/gun/launcher/alien/slugsling,/obj/item/gun/launcher/alien/slugsling,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"py" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/skipjack_station/base) +"pz" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pA" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pB" = (/obj/item/broken_bottle,/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pC" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pD" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/stealth,/obj/item/clothing/head/helmet/space/vox/stealth,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/glasses/hud/plain/thermal/monocle,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pE" = (/obj/structure/table/rack/dark,/obj/random/projectile,/obj/random/projectile,/obj/random/ammo,/obj/random/ammo,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pF" = (/obj/structure/table/rack/dark,/obj/item/gun/energy/sniperrifle,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/kinetic_accelerator,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pG" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/skipjack_station/base) +"pH" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/skipjack_station/base) +"pI" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/skipjack_station/base) +"pJ" = (/obj/effect/decal/cleanable/blood/oil,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pK" = (/obj/structure/mirror/raider,/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/skipjack_station/base) +"pL" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pM" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/skipjack_station/base) +"pN" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pO" = (/obj/structure/sink{dir = 1; pixel_y = 16},/obj/effect/decal/cleanable/blood/splatter,/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pP" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pQ" = (/obj/machinery/shower{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pR" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pS" = (/obj/structure/toilet{dir = 4},/obj/effect/landmark/start/antags/vox,/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pT" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/tank/nitrogen,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pU" = (/obj/effect/decal/cleanable/cobweb{dir = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pV" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pW" = (/obj/machinery/light/small{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pX" = (/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pY" = (/obj/random/junk,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"pZ" = (/obj/structure/bed/chair,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"qa" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space) +"qb" = (/obj/machinery/computer/station_alert/all,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"qc" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"qd" = (/obj/machinery/floodlight,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"qe" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; pixel_y = -5; frequency = 1380; id_tag = "skipjack_base"},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"qf" = (/turf/space,/area/skipjack_station/base) +"qg" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"qh" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 4},/turf/space,/area/space) +"qi" = (/obj/machinery/door/airlock/external{frequency = 1380; req_access = list(150); id_tag = "skipjack_base_hatch"},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"qj" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 8},/turf/space,/area/skipjack_station/base) +"qk" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 4},/turf/space,/area/skipjack_station/base) +"ql" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 8},/turf/space,/area/space) +"qm" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"qn" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"qo" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"qp" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/lattice,/turf/space,/area/space) +"qq" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/lattice,/turf/space,/area/skipjack_station/base) +"qr" = (/turf/simulated/shuttle/wall/corner/dark/nw,/area/skipjack_station/start) +"qs" = (/turf/simulated/shuttle/wall/corner/dark/ne,/area/skipjack_station/start) +"qt" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/lattice,/turf/space,/area/skipjack_station/base) +"qu" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/lattice,/turf/space,/area/space) +"qv" = (/turf/simulated/wall/voxshuttle,/area/skipjack_station/start) +"qw" = (/obj/machinery/door/airlock/hatch{name = "Ship External Access"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_one_access = 150; id_tag = "vox_northwest_lock"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qx" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/blast/regular{name = "Skipjack Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "skipjackshutters"},/turf/simulated/floor/plating,/area/skipjack_station/start) +"qy" = (/obj/machinery/door/airlock/hatch{name = "Ship External Access"; frequency = 1380; req_one_access = 150; id_tag = "skipjack_shuttle_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qz" = (/obj/machinery/airlock_sensor{pixel_x = -8; pixel_y = 25; frequency = 1380; id_tag = "vox_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "vox_west_vent"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qA" = (/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qB" = (/obj/machinery/computer/station_alert/all,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qC" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qD" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qE" = (/obj/random/trash,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qF" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "skipjack_shuttle_pump"},/obj/machinery/airlock_sensor{pixel_x = 8; pixel_y = 25; frequency = 1380; id_tag = "skipjack_shuttle_sensor"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qG" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qH" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = 25; pixel_y = 8; frequency = 1380; req_access = list(150); id_tag = "vox_west_control"; tag_exterior_door = "vox_northwest_lock"; tag_interior_door = "vox_southwest_lock"; tag_airpump = "vox_west_vent"; tag_chamber_sensor = "vox_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "vox_west_vent"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qI" = (/obj/machinery/light/small{dir = 8},/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qJ" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qK" = (/obj/structure/bed/chair{dir = 1},/obj/item/clothing/head/pirate,/obj/effect/shuttle_landmark/skipjack/start,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qL" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_x = 32; pixel_y = 32; id = "skipjackshutters"; req_access = list(150)},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qM" = (/obj/machinery/light/small{dir = 4},/obj/structure/table/steel,/obj/machinery/recharger,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qN" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = -25; pixel_y = 8; frequency = 1380; req_access = list(150); id_tag = "skipjack_shuttle"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "skipjack_shuttle_pump"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qO" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qP" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{name = "Ship External Access"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_one_access = 150; id_tag = "vox_southwest_lock"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qQ" = (/obj/structure/table/rack,/obj/item/clothing/glasses/hud/plain/thermal/monocle,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qR" = (/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qS" = (/obj/random/junk,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qT" = (/obj/structure/table/rack,/obj/item/gun/launcher/alien/spikethrower,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qU" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{name = "Ship External Access"; frequency = 1380; req_one_access = 150; id_tag = "skipjack_shuttle_inner"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qV" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{name = "interior access button"; pixel_x = -25; pixel_y = 25; frequency = 1380; req_access = list(150); command = "cycle_interior"; master_tag = "vox_west_control"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qW" = (/obj/structure/closet/crate/freezer/rations,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qX" = (/obj/structure/table/standard,/obj/item/material/kitchen/utensil/knife/unathiknife,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qY" = (/obj/structure/table/standard,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qZ" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"ra" = (/obj/structure/closet,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rb" = (/obj/structure/closet/voxn2closet,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rc" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/obj/item/device/multitool,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rd" = (/obj/machinery/autolathe,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"re" = (/obj/structure/table/standard,/obj/item/clothing/gloves/insulated,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rf" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rg" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{name = "interior access button"; pixel_x = 25; pixel_y = 25; frequency = 1380; req_access = list(150); command = "cycle_interior"; master_tag = "skipjack_shuttle"},/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rh" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"ri" = (/obj/item/robot_parts/r_arm,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rj" = (/obj/random/ammo,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rk" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rl" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rm" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rn" = (/obj/item/robot_parts/head,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"ro" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rp" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rq" = (/obj/random/junk,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rr" = (/obj/item/bodybag,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rs" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rt" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"ru" = (/obj/structure/bed/chair,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rv" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rw" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/random/junk,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rx" = (/obj/structure/synthesized_instrument/synthesizer/piano,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"ry" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rz" = (/obj/structure/table/steel,/obj/random/drinkbottle,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rA" = (/obj/structure/table/steel,/obj/item/trash/dish/bowl,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rB" = (/obj/structure/table/steel,/obj/item/storage/fancy/cigarettes,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rC" = (/obj/structure/table/steel,/obj/item/storage/box/handcuffs,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rD" = (/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/obj/random/trash,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rE" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/item/wrench,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rF" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rG" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rH" = (/obj/structure/mopbucket,/obj/item/mop,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rI" = (/obj/structure/table/steel,/obj/random/medical,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rJ" = (/obj/structure/table/steel,/obj/item/flame/lighter/zippo,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rK" = (/obj/structure/table/steel,/obj/structure/table/steel,/obj/item/pizzabox/meat,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rL" = (/obj/structure/table/steel,/obj/machinery/recharger,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rM" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rN" = (/obj/structure/closet/voxn2closet,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rO" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rP" = (/turf/simulated/shuttle/wall/corner/dark/sw,/area/skipjack_station/start) +"rQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/skipjack_station/start) +"rR" = (/obj/structure/table/steel,/obj/item/storage/firstaid,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rS" = (/obj/machinery/light/small,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rT" = (/obj/structure/flora/pottedplant/autumn,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rU" = (/turf/simulated/shuttle/wall/corner/dark/se,/area/skipjack_station/start) +"rV" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/floor/plating/airless,/area/skipjack_station/start) +"rW" = (/obj/item/shovel,/obj/item/storage/toolbox/mechanical,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rX" = (/obj/item/wrench,/obj/item/crowbar,/obj/item/gun/energy/crossbow,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rY" = (/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"rZ" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_arm,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sa" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sb" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sc" = (/obj/item/gun/launcher/grenade,/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sd" = (/obj/structure/closet/crate,/obj/item/implanter/freedom,/obj/item/implantcase/freedom,/obj/item/implanter/explosive,/obj/item/implantcase/explosive,/obj/item/card/emag,/obj/item/melee/energy/sword/pirate,/obj/item/melee/energy/sword/pirate,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"se" = (/obj/structure/table/standard,/obj/item/retractor,/obj/item/circular_saw{pixel_y = 8},/obj/item/cautery,/obj/item/scalpel,/obj/item/hemostat,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sf" = (/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sg" = (/obj/structure/gas_stand/anesthetic,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sh" = (/obj/item/grenade/frag,/obj/item/grenade/frag,/obj/item/grenade/flashbang,/obj/item/grenade/flashbang,/obj/item/grenade/flashbang,/obj/item/grenade/chem_grenade/teargas,/obj/item/grenade/chem_grenade/teargas,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/spawnergrenade/manhacks,/obj/item/grenade/empgrenade,/obj/item/grenade/empgrenade,/obj/structure/closet/crate,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"si" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/syringe/antiviral/packaged,/obj/item/reagent_containers/syringe,/obj/item/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = 1},/obj/item/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/fire{pixel_x = 1},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sj" = (/obj/structure/table/standard,/obj/item/bonesetter,/obj/item/FixOVein,/obj/item/bonegel,/obj/item/reagent_containers/syringe/antiviral/packaged,/obj/item/organfixer/standard,/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sk" = (/obj/machinery/optable,/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sl" = (/obj/machinery/body_scanconsole{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sm" = (/obj/machinery/bodyscanner{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"sn" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/space) +"so" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/wizard_station) +"sp" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 4},/area/wizard_station) +"sq" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/wizard_station) +"sr" = (/obj/structure/sink,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 4},/area/wizard_station) +"ss" = (/turf/unsimulated/wall{icon_state = "riveted_b"; dir = 1},/area/wizard_station) +"st" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 8},/area/wizard_station) +"su" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/wizard_station) +"sv" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"sw" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"sx" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"sy" = (/obj/structure/table/woodentable,/obj/item/immovable_wand,/obj/item/paper/immovable_wand_note,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"sz" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"sA" = (/obj/structure/table/woodentable,/obj/item/book/wiki/nuclear,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"sB" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/wizard_station) +"sC" = (/obj/structure/table/woodentable,/turf/simulated/floor/trim/carpet,/area/wizard_station) +"sD" = (/obj/structure/toilet{pixel_y = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"sE" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"sF" = (/obj/structure/mirror/magic{pixel_y = 30},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"sG" = (/turf/unsimulated/wall{icon_state = "riveted_s"; dir = 8},/area/wizard_station) +"sH" = (/turf/unsimulated/wall{icon_state = "riveted_s"; dir = 4},/area/wizard_station) +"sI" = (/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"sJ" = (/obj/machinery/door/unpowered/simple/wood,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) +"sK" = (/turf/simulated/floor/trim/carpet,/area/wizard_station) +"sL" = (/obj/effect/landmark/start/antags/wizard,/turf/simulated/floor/trim/carpet,/area/wizard_station) +"sM" = (/obj/machinery/door/unpowered/simple/iron,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) +"sN" = (/obj/machinery/shower{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"sO" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"sP" = (/obj/structure/closet/coffin,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"sQ" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/wizard_station) +"sR" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = -3; pixel_y = 8; on = 0},/obj/item/reagent_containers/vessel/flask/barflask,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/trim/carpet,/area/wizard_station) +"sS" = (/turf/unsimulated/wall{icon_state = "riveted_d"},/area/wizard_station) +"sT" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 4},/area/wizard_station) +"sU" = (/obj/structure/table/woodentable,/obj/item/storage/bag/cash,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"sV" = (/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"sW" = (/obj/structure/bed,/obj/item/bedsheet/rd,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"sX" = (/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/staff,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"sY" = (/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/staff/broom,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"sZ" = (/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/staff,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"ta" = (/obj/item/clothing/head/wizard/violetwizard,/obj/item/clothing/suit/wizrobe/violetwizard,/obj/item/staff/broom,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"tb" = (/obj/structure/bookcase,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tc" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"td" = (/obj/machinery/door/unpowered/simple/wood,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"te" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"tf" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tg" = (/obj/structure/table/woodentable,/obj/item/storage/backpack/cultpack,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"th" = (/obj/structure/table/woodentable,/obj/item/clothing/glasses/monocle,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"ti" = (/obj/structure/table/woodentable,/obj/item/storage/backpack,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"tj" = (/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"tk" = (/obj/item/clothing/shoes/sandal/marisa{name = "Gentlemans Shoes"; desc = "A set of fancy shoes that are as functional as they are comfortable."},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/staff/gentcane,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"tl" = (/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/staff,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"tm" = (/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"tn" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/wizard_station) +"to" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/wizard_station) +"tp" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/wizard_station) +"tq" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tr" = (/obj/structure/table/woodentable,/obj/item/dice/d20,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"ts" = (/obj/structure/table/woodentable,/obj/item/storage/box/cups,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tt" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tu" = (/obj/item/target,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"tv" = (/obj/item/target/syndicate,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"tw" = (/obj/item/target/alien,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"tx" = (/obj/structure/window_frame/indestructible/grille,/turf/unsimulated/floor{name = "plating"},/area/wizard_station) +"ty" = (/obj/structure/table/rack,/obj/item/material/knife/ritual,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) +"tz" = (/obj/structure/kitchenspike,/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) +"tA" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/reagent_containers/food/milosoup,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tB" = (/obj/structure/table/woodentable,/obj/item/dice,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tC" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"tD" = (/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) +"tE" = (/obj/structure/table/woodentable,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tF" = (/obj/structure/table/woodentable,/obj/item/storage/box/donut,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tG" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/chawanmushi,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tH" = (/obj/structure/table/woodentable,/obj/item/spacecash/bundle/c1,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tI" = (/obj/item/book/wiki/robotics_cyborgs,/obj/structure/table/glass,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"tJ" = (/obj/item/robot_parts/head,/obj/structure/table/glass,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"tK" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"tL" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"tM" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"tN" = (/obj/item/remains/human,/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"tO" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"tP" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"tQ" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) +"tR" = (/mob/living/simple_animal/crab{name = "Experiment 68a"},/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) +"tS" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) +"tT" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"tU" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"tV" = (/obj/structure/flora/ausbushes/fullgrass,/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"tW" = (/obj/effect/decal/cleanable/blood,/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"tX" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"tY" = (/mob/living/simple_animal/faithful_hound,/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"tZ" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"ua" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"ub" = (/obj/item/remains/human,/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"uc" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) +"ud" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) +"ue" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) +"uf" = (/obj/structure/flora/ausbushes/grassybush,/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"ug" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Experiment 97d"},/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"uh" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"ui" = (/obj/item/caution,/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"uj" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"uk" = (/obj/item/material/knife/ritual,/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) +"ul" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/wizard_station) +"um" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/wizard_station) +"un" = (/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/north,/area/space) +"uo" = (/turf/space/transit/north,/area/space) +"up" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1; stopper = 0},/turf/space/transit/north,/area/space) +"uq" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(left)"; direction = 8; tiles = 0; affect_ghosts = 1},/turf/space/transit/north,/area/space) +"ur" = (/turf/space/transit/north,/area/rescue_base/transit) +"us" = (/obj/effect/step_trigger/thrower{name = "thrower_throwup"; direction = 1; tiles = 0},/turf/space/transit/north,/area/space) +"ut" = (/obj/effect/shuttle_landmark/rescue/internim,/turf/space/transit/north,/area/rescue_base/transit) +"uu" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdownsidenostop"; tiles = 0; affect_ghosts = 1; stopper = 0; nostop = 1},/turf/space/transit/north,/area/space) +"uv" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(right)"; direction = 4; tiles = 0; affect_ghosts = 1},/turf/space/transit/north,/area/space) +"uw" = (/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/north,/area/space) +"ux" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw{icon_state = "corner_syndiwall_s"},/area/syndicate_mothership/ninja) +"uy" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 1},/area/syndicate_mothership/ninja) +"uz" = (/obj/structure/window/syndi,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) +"uA" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 1},/area/syndicate_mothership/ninja) +"uB" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/ne{icon_state = "corner_syndiwall_s"},/area/syndicate_mothership/ninja) +"uC" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 8},/area/syndicate_mothership/ninja) +"uD" = (/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/syndi/se{icon_state = "corner_syndiwall_s"},/area/syndicate_mothership/ninja) +"uE" = (/turf/simulated/floor/shuttle/red,/area/syndicate_mothership/ninja) +"uF" = (/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/syndi/sw{icon_state = "corner_syndiwall_s"},/area/syndicate_mothership/ninja) +"uG" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 4},/area/syndicate_mothership/ninja) +"uH" = (/obj/structure/window/syndi{icon_state = "ws2"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) +"uI" = (/obj/structure/bed/chair{dir = 1},/obj/effect/landmark/start/antags/ninja,/turf/simulated/floor/shuttle/red,/area/syndicate_mothership/ninja) +"uJ" = (/obj/structure/window/syndi{icon_state = "ws3"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) +"uK" = (/obj/effect/landmark/start/antags/ninja,/turf/simulated/floor/shuttle/red,/area/syndicate_mothership/ninja) +"uL" = (/obj/structure/window/syndi{icon_state = "ws1"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) +"uM" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/syndicate_mothership/ninja) +"uN" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/syndicate_mothership/ninja) +"uO" = (/obj/machinery/teleporter_gate,/turf/simulated/floor/plating,/area/syndicate_mothership/ninja) +"uP" = (/turf/simulated/floor/plating,/area/syndicate_mothership/ninja) +"uQ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/syndicate_mothership/ninja) +"uR" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced/crescent{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_mothership/ninja) +"uS" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/syndicate_mothership/ninja) +"uT" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/sw,/area/syndicate_mothership/ninja) +"uU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_mothership/ninja) +"uV" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_mothership/ninja) +"uW" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_mothership/ninja) +"uX" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/se,/area/syndicate_mothership/ninja) +"uY" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/acting/backstage) +"uZ" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/acting/backstage) +"va" = (/obj/effect/landmark/start/antags/actor,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vb" = (/obj/machinery/acting/wardrobe,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vc" = (/obj/structure/table/rack,/obj/item/storage/box/lights/mixed,/obj/item/device/floor_painter,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vd" = (/obj/structure/table/rack,/obj/item/stack/tile/floor{amount = 50},/obj/item/stack/tile/floor{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"ve" = (/obj/structure/table/rack,/obj/item/stack/tile/floor_freezer{amount = 50},/obj/item/stack/tile/floor_freezer{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vf" = (/obj/structure/table/rack,/obj/item/stack/tile/carpet{amount = 50},/obj/item/stack/tile/carpet{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vg" = (/obj/structure/table/rack,/obj/item/stack/tile/grass{amount = 50},/obj/item/stack/tile/grass{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vh" = (/obj/structure/table/rack,/obj/item/stack/material/steel{pixel_x = 5; pixel_y = 5; amount = 50},/obj/item/stack/material/steel{pixel_x = 5; pixel_y = 5; amount = 50},/obj/item/stack/material/steel{pixel_x = 5; pixel_y = 5; amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vi" = (/obj/structure/table/rack,/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vj" = (/obj/structure/table/rack,/obj/item/stack/material/wood{amount = 50},/obj/item/stack/material/wood{amount = 50},/obj/item/stack/material/wood{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vk" = (/obj/structure/table/rack,/obj/item/stack/material/sandstone{amount = 50},/obj/item/stack/material/sandstone{amount = 50},/obj/item/stack/material/sandstone{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vl" = (/obj/structure/table/rack,/obj/item/stack/material/glass{pixel_x = 3; pixel_y = 3; amount = 50},/obj/item/stack/material/glass{pixel_x = 3; pixel_y = 3; amount = 50},/obj/item/stack/material/glass{pixel_x = 3; pixel_y = 3; amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vm" = (/obj/structure/table/rack,/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vn" = (/obj/structure/table/rack,/obj/item/stack/material/marble{amount = 50},/obj/item/stack/material/marble{amount = 50},/obj/item/stack/material/marble{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vo" = (/obj/structure/table/rack,/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vp" = (/obj/structure/table/rack,/obj/item/stack/material/silver{amount = 50},/obj/item/stack/material/silver{amount = 50},/obj/item/stack/material/silver{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vq" = (/obj/machinery/gibber{anchored = 0},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vr" = (/obj/machinery/papershredder,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vs" = (/obj/machinery/recharger,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vt" = (/obj/machinery/reagentgrinder,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vu" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vv" = (/obj/structure/reagent_dispensers/fueltank,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vw" = (/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vx" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vy" = (/obj/item/paper{name = "Actor's Guild Instruction Pamphlet"; info = "\[center]\[b]READ INSTRUCTIONS CAREFULLY\[/b]\[/center]\[br]\[br]Hello! Welcome and congratulations on being hired for NanoTrasen's new Television initiative. You are now tasked with the creation and production of NanoTrasen brand television that is to be broadcasted to all of our stations!\[br]\[br] We've outfitted these facilities with all the materials and objects you will need.\[br]On the port side you'll find various venders and machines, namely the Wardrobe Dispenser, which will dispense holoclothing and items for you to use, and a Quickee brand plastic surgery machine (which I would remind you you are contractually obligated to \[b]not\[/b] report to the authorities.) which can change your appearance into anything you want, even other races. Stern and aft you'll find all the materials we could muster up on short notice. Use it to decorate the stage to your liking. Starboard you'll find gases, microwaves, hydroponic trays and the like. Go silly! This is already paid for (as are you) so do what you want and entertain!"},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vz" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vA" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/acting/backstage) +"vB" = (/obj/machinery/door/airlock/glass{name = "Stage"},/turf/simulated/floor,/area/acting/backstage) +"vC" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/acting/backstage) +"vD" = (/obj/machinery/biogenerator,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vE" = (/obj/machinery/vending/hydroseeds,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vF" = (/turf/simulated/floor/tiled,/area/acting/stage) +"vG" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/acting/stage) +"vH" = (/obj/machinery/microwave,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vI" = (/obj/machinery/vending/hydronutrients,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vJ" = (/obj/machinery/vending/medical,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vK" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/acting/stage) +"vL" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/acting/stage) +"vM" = (/obj/machinery/vending/security,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vN" = (/obj/machinery/vending/robotics,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vO" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/acting/backstage) +"vP" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vQ" = (/obj/machinery/camera/network/thunder{name = "Movable Camera"; anchored = 0; c_tag = "Television"},/turf/simulated/floor/tiled,/area/acting/stage) +"vR" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vS" = (/obj/machinery/vending/dinnerware,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vT" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/acting/backstage) +"vU" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vV" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; products = list(/obj/item/storage/fancy/cigarettes=10, /obj/item/storage/box/matches=10, /obj/item/flame/lighter/zippo=4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana=2); prices = list()},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vW" = (/obj/machinery/chemical_dispenser/bar_alc/full,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vX" = (/obj/machinery/vending/containers,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"vY" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/acting/stage) +"vZ" = (/obj/machinery/chemical_dispenser/full,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"wa" = (/obj/machinery/pipedispenser,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"wb" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/acting/backstage) +"wc" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/acting/backstage) +"wd" = (/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"we" = (/obj/machinery/acting/changer,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"wf" = (/obj/machinery/vending/props,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"wg" = (/obj/machinery/newscaster{pixel_y = -27},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"wh" = (/obj/structure/table/rack,/obj/item/stack/tile/floor{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"wi" = (/obj/structure/table/glass/plass,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"wj" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"wk" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) + +(1,1,1) = {" +aaabababababababababababababababababababababababababababababaaununununununununununununununununununununununununununununununununununununununaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadadadadadabaaunuouououououououououououououououououououououououououououououououououououounaaununununununununununununununununununununuwaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadadadadadabaaunuouououououououououpupuququququququququququququququpupuououououououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +aaabaeaeaeadadadadadadadadadadadadadadadadadadadadadadadadabaaunuouououououououououpururururururusuouousururururururupuououououououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +aaabaeaeaeadadadadadadadadadadadadadadadadadadadadadadadadabaaunuouououououououououpururururururusuouousururururururupuououououououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadadadabaaunuouououououououououpururururururusuouousururururururupuououououououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadadadabaaunuouououououououououpurururutururusuouousururururururupuououououououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczcz +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeabaaunuouououououououououpururururururusuouousururururururupuououououououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeabaaunuouououououououououpururururururusuouousururururururupuououououououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeabaaunuouououououououououpururururururusuouousururururururupuououououououououounaaunuouououououououxuyuzuAuBuououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +aaabaeaeaeaeaeaeaeaeaeacacacacacacacacacacacacaeaeaeaeaeaeabaaunuouououououououououpururururururususususururururururupuououououououououounaaunuouououououououCuDuEuFuGuououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +aaabaeaeaeaeaeaeacacacacacacacacacacacacacacacaeaeaeaeaeaeabaaunuouououououououououpururururururururururururururururupuououououououououounaaunuouououououououHuEuIuEuHuououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcA +aaabaeaeaeaeaeaeacacacacacacacacacacacacacacacaeaeaeaeaeaeabaaunuouououououououououpururururururururururururururururupuououououououououounaaunuouououououououJuKuEuKuJuououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAadadadadadadadadadadadadadadadadadadadadadadcAcAcAcA +aaabaeaeaeaeaeaeacacacacacacacacafacacacacacacaeaeaeaeaeaeabaaunuouououououououououpururururururururururururururururupuououououououououounaaunuouououououououJuEuEuEuJuououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAadadadadadadadadadadadadadadadadadadadcAcAcAcAcA +aaabaeaeaeaeaeaeacacacacacacacacacacacacacacacaeaeaeaeaeaeabaaunuouououououuuuuququpuquuururururururururururururuvuvupuvuvuuuuuououououounaaunuouououououououLuEuEuEuLuououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAadadadadadadadadcAcAcAcAcAcAadadadadadadadcAcAcAadadadadadcAcAcAcAcAcAcA +aaabaeaeaeaeaeaeacacacacacacacacacacacacacacacaeaeaeaeaeaeabaaunuouououououuurururururusururururururururururururusurururururuuuououououounaaunuouououououououMuNuOuPuMuououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAadadadadadadadadadcAcAcAcAcAcAadadadcAcAcAcAcAcAcAcAcAadcAcAcAcAcAcAcAcA +aaabaeaeaeaeaeaeaeaeaeacacacacacacacacacacacacaeaeaeaeaeaeabaaunuouououououuurururururusururururururururururururusurururururuuuououououounaaunuouououououououQuRuRuRuSuououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAadadadadadadadadadcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeabaaunuouououououuururururururururururururururururururururururururuuuououououounaaunuouououououououTuUuVuWuXuououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAadadadadadadcBadagcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeabaaunuouououououuururururururururururururururururururururururururuuuououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAadadadadadadcBagcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeabaaunuouououououuururururururururururururururururururururururururuuuououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAadadadadadadcBadcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadabaaunuouououououuururururururururururururururururururururururururuuuououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcAadadadadadadcBagcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadabaaunuouououououuurururururuuuuuuuuururururururuuuuuuuuurururururuuuououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcAadadadadadadcCadagcAcAcDcEcFcEcGcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadabaaunuouououououuurururururuuuououuururururururuuuououuurururururuuuououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAadadadadadadadadadadadcHcIcJcKcLcRcGcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadabaaunuouououououuurururururuuuououuuuuuuuuuuuuuuuuououuurururururuuuououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAadadadadadadadadadadadcScTcUcVcUcTcWcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +aaabaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadadadadadabaaunuouououououuurururururuuuououououououououououououuurururururuuuououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAadadadadadadadadadadadadcScTcUcVcUcTcWcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +aaabababababababababababababababababababababababababababababaaunuouououououuuuuuuuuuuuuuuououououououououououououuuuuuuuuuuuuuuououououounaaunuououououououououououououououououououounaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAadadadadadadadadadadadadadcScTcUcVcUcTcWcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaunuouououououououououououououououououououououououououououououououououououounaaunununununununununununununununununununununaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAadadadadadadadadcAcAcAadadadadadadadadadadadadadadcHcGcVcVcXcDcIcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaaunuouououououououououououououououououououououououououououououououououououounaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAadadadadadadcAcAadadadadadadadadadadadadadadadadcWcVcVcVcWcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaaununununununununununununununununununununununununununununununununununununununaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAadadadadadadadadadadadadadadadadadadadcScScScScYdqdrcHdvcEcEcEcEcGcAcAcAcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAadadadadadadadadadaddwdxdydydydzdAadadcSdBdCdDdBdBdBdEdIdNdXdYdZeaebcFcGcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAadadadadadadadadaddwecedefegeheiejdAadcSdBezezdBdBdBdBeAeQeQeQeReSeTeUcRcGcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAadadadadadadadadadfmfnfofofpfofofqfmadcSfrfsftfIdBdBdBfKeQeQeQfMcWgbgfgZcWcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAadadadadadadadadadadfmhafofofofohIhJfmadcSdBhKhKdBdBdBhMcWhNhOhPhQcWhRhShTcWcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadfmhUfofohVfofohWfmadcShXdBdBdBdBdBiqiscEcEcEcEitiuhSivcWcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadiBiCiDiEiFiFiFiGiHadcScScScSiIiXiXiXdIiYiYiZjacWjbhSjccWcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadfmjdjejfjtjufmadadadadadadcSjvjvjvjxjyjyjzjzcWjbhSjccWcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadfmjAjBjCfojDfmadadadadadadcSjvjvjvfKjEjFcDcEcIjGjPjGcRcEcEcGcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadjQjSjAjBjCfojTjUjVadadcCcBcBfKjvjvjvcRjWcEcIjXjYkekfkgkhkhkicRcGcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaddwiFiFkjkkklkmknfokokpkqiFiFdAkzkzdIkAjvjvkBdIkCkDkekEkFjvkMkNkOkgkPcWcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadfmkQlflgfmfolhfofoliecljlklllmlnlolnjvjvjvlBlClDlElFjvjvjvjvjvjvlGlHlIcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAadadadadlJlKlNlKjUlOlPlQiElRlSljlTlUlmlnlVlnjvjvjvlWfKlXlYlZmambjvmdmamemfmgcWcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAadadadadmhiFlJmjmkkkfofomlmhiFlJmnlJlRmomompcScScScHmqcEcGmsmtlZmumfmvmvmwcDcIcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAadadadadfmmxfofomymzfofofomzmAmBmDmEfmagadagadadadadcAcAcRcEcGjGmFjGcDcEcEcIcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAadadadadfmmGfofofomHfofofomIfofofomJfmcBcBcBcBadadadadcAcAcAcWmKmLmKcWcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAadadadadfmmMfofofomOfofofomPfofofomQfmadadadadadadadadadcAcAcWmKmSmKcWcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAadadadaddwmTmUmUmUmUiCfofofolimUmUmUmUmTdAadadadadadcBadagcAcAcWmKmSmKcWcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAadadadadfmmVmWmYmZnafmnbfoncfmndndndnenffmadadadadadcBagcAcAcAcWmKngmKcWcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAadadadadadnimWmWmWmWmWmzfofofomznbfofofonjnkadadadadadcCadcAcAcAcRcGnlcDcIcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAadadadadadadnmnnnomWmWmWnpfofofonqfofofonrnsnuadadadadadcBagagcAcAcAcRcEcIcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadnwmWmWmWmWmWnxfofofonyfofofofonznAadadadadadcBadadagcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadfmnBmWmWmWnClilJnDlJiCnEnEnFfonGfmadadadadadadadadadcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadfmnHnJnKnLnMfmnNfonOfmnPlimUnQmUlRadadadadadadadcBadagcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadfmnRmWnSlimUlRfonTnUmhmUlRnVnWnXfmadadadadadadadcBagagcAcAcAcAcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadfmnYnZoafmadfmobobobfmadfmocfoodfmadadadadadadadcBadagadcAcAcAcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadfmobobobfmadiBoeofogiHadfmobobobfmadadadadadadadcBagagagagagcAcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAadadadiBoeofogiHadadadadadadadiBoeofogiHadadadadadadadcBadagadagadadcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAadadadadadadadadadadadadadcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAadadadadadadadadadadadadadcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAadadadadadadadadadadadadadcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAadadadadadadadadadadadadadcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAadadadadadadadadadadadadadadcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcAcAadadadadadadadadadadadadadadcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcAcAadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAcAcAcAcAadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcAcAcAcAcAadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadahaiajakahalamanahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadahadadadahadadadahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadahadadadahadadadahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadahadadadahadadadahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadahadadadahadadadahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadahahaoapaqaoaoaraqahahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagasatauasagadbyadadadagavawaxayazaAaBaCaDaEavagagagagadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagasaFaGasagadadadadadagavaHaIaJaKaKaLaDaIaIavbcbdbcagadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagasaNaOasagagagagagagagaoaPaQaRaRaRaSaTaUaVahaoaWasagagagagagadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagaXaYaZahavavavavaoaoaoaoaoaobabababbbfaobgahaobhasagadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagavaIbibjbkbkbkblbmbnbobpbqbrbsbtbubvbwaoahbybzbAasagadadadagadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagavbBbCbDbEaTaTaTaTaTbFbGbGbGbGbGbHbIbJaoahbyaobLaXagagagagagadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagavavavbMbNbObPaIaIaIaIaIaIbQbObRbSbTbUaoahbybybybybybybybybybyadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagagagahahahbXbYbZcacbcccdbZceavavahcfcgaoahahahahahahahahbybybyadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadchahahahagagavbWavavasasavavbWavadahcjckaoaoaoaoaoaoaoaoahbybybyadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadadadadmintaMnvmRdadbmRntaMnImmahcocpaocqcrcsctcucvaoahbybybybybybybyadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadmidadbnhdcmrdddedfdgdhmrdFmCdGahcocyaocMcNcOcPcOcQdjahahahahahahahahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadmCmrdHmXmrclmrclmrclmrclmrdJdGahcocyaodldmdndodpdsaoahahaoaoaocxdQaoadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagaddKdLmrcimrclmrclcmcldOclmrdJdGahcobeaoaodiasewasaoaoeFeGaoeHeIeJeKaoadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadmCmrdHmNmrclmrclmrclmrclmrdJdGaheLeMeNeOePeWeWaReXeYeZfafbfcfdfkfeaobVbVbVbVbVbVbVbVbVbVbVbVadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadoudadbnhdcmrmrdPmrmrekmrdFmCdGahcohefffgfhfgfgfgfgfgfifjaoaoaoaoaoaoflfuflflflflflflfxfyaobVadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadadadadountaMnvmRdadbmRntaMelozahfzhebafAfAfBfAfCaofDfEfFfGfHfLaIfNfOaIfPaIaIaIfQaIaIfRfSfTbVadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadchahahahagagavbWavavasasavavbWavadahfUfVbafWfXfYfYfZaogafEgcaRgdaRgigjaRaRgkglglglgmgngngogpgqbVadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagagagahchahavdRdSdTdUdVdWdSeeavavahgrhebagsgtfYfYfZaogufEfFaIfHaIfFaIaIgvgwgxgygzgAgBgJgBgKgLbVadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadavavavavemeneoaDaIaIaIaIaIaIaJeoenaKgMhebagNgNfBgNfCaogOfEgPaoaoaoepaoaoaoaoaoaogQgRaoaoaoaoaobVadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadeqereseteuevexexexexexeyeBeBeBeBeCeBgSgTgGgVgWgXgXgXgYgXhihjaoahbxbxahbVbVbVbVbVbVbVbVbVbVbVbVbVadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadeDeEeVfvfwfJggghgCgCgCgDgCgCghgCgCgEhkhxgHaIaIaIaIaIhnhohzhAaoahbxbxahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadavavavavahahahgFgFgFgFgFgFgFgFahahbzgUhlaogIgIgIgIgIhbaoaoaoaoahbxbxahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagagagagagagadadadadadadadadadagashchdhehfhghhhmhphqhrhshtaoahahbxbxahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadadadadadadadadadhuashvhwhxhfhyhLhYhZiaibicidaoahbxbxahahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadadadadadadadadadieifigihiihfhYhYhYhYhYiriwixaoahbxbxahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadadadadadadadadadasashviyizhfhgiAhYhZiJiriwiKaoahbxbxahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadohoioioioioioioioioiojokolomolonojooooooooooopolololoqorosokotototonooooojoiov +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadadadadadadadadadagasiLiMiNhfhgiOiPiQiJiriRiSaoahbxbxahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAcAoxoyoAoBoAoCoxoDoAoEoAoFoxoGoHoIoxoJoKoLoMoNoNoOoPoQoxcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadchahhvhvhvhvhvasasasahahaoiTiUaoaoaoaoaoaobKaoaoaoahbxbxahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAoRoRoRoRoRoRoRoRoxoyoAoSoAoCoxoToAoUoAoVoWoXoAoAoWoYoMoZoMpaoNoNoNoNoxcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadadadagasiWjgjhjijjjjjkjljmjnjojojpjqjrjsjwahahahbxbxahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAoRpbpcoRpdpeoRoRoWoyoApfoAoCoWpgoAphoApipjoApkoAploMoMoMoMpmpnpopppqoxcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadagadadadagasjHjIjJbYbDjKjLjMjNaoaoaoaojOaoaoaoahbxbxbxbxahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowoRoRprprprprprprprpsoAoAoAoAoApsoAoXoAoAoApsoAoAoAploMptptoMoJpuoJpuoJoxcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadchahhvasasasjRjZhuasasahchkaahahahahahahahahahahahahahahahadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowoRpvprprpwpxprprprpyoAoAoAoAoApyoAoAoAoAoApyoAoApzpypApBptoMoMoMoMoMpCoxcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowoRpDprprpEpFprproRpGoooooooooopHoooooooooopIoApJoApGojpKpLonojoooooooopMcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowoRoRpNprprprprproRoRoRoRoRoRoRoRoRoRoRoRoRoxoAoAoAoRoxpOpPpQoxcAcAcAcAcAcAcA +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAoRpRprprprprprprprprprproRoRoRoRoRoRoRoRoxoAoAoAoRoxpSpPpQoxcAcAcAcAcAcAad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAoRoRoRpTpTpToRoRoRoRoRprprproRoRoRoRoRoRoxpkoAoXoRpGoooooopMcAcAcAcAcAcAad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAoRoRoRoRoRcAcAcAoRoRoRprprprproRoRoRoxoAoAoAoRcAcAcAcAcAcAcAcAcAcAcAad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAcAcAcAcAcAoRoRoRoRproRoRoRoxpUoAoAoRcAcAcAcAcAcAcAcAcAcAcAad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAcAcAcAcAcAoqoooookpsonooojpHokpsonooojooooooooooooopcAcAadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAcAcAcAcAcAoxoAoAoAoAoAoAoxpVpVpVpWpVoxoAoAoAoAoAoAoxcAadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAcAcAadadcAoxpXoAoAoAoAoAoWpVpYpVpVpVoWoXoAoApkoApzoxcAadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAcAcAadadcAoxoAoAoAoAoAoApspVpVpZpVpVpsoAoAoAoAoAoXoxcAadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAcAcAqaadadoxoAoApyolololpypVqbqcqdpVpyolololpyqeoAoxadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAcAagqaadadoWoAoAoWqfqfqfpGokqgqgqgonpMqfqfqfoWoXoAoWadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAadadadadadqhqiqiqjqfqfqfqfqfqfqfqfqfqfqfqfqfqkqiqiqladadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAcAadadadadqhqmqnqjqfqfqfqfqfqfqfqfqfqfqfqfqfqkqmqnqladadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAadadadadadqhqoqnqjqfqfqfqfqfqfqfqfqfqfqfqfqfqkqmqnqladadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAcAcAcAadadadadadqpqiqiqqqfqfqfqrqfqfqfqfqfqsqfqfqfqtqiqiquadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAadadadadadadadadqrqvqwqsqfqfqfqvqxqxqxqxqxqvqfqfqfqrqyqvqsadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAadadadadadadadadqvqzqAqvqfqfqrqvqvqBqCqDqvqvqsqfqfqvqEqFqvadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadcnlplplplplplplplplplplplplplplplplplplplplplplplplplpuYadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAadadadadadadadadqvqGqHqvqfqfqvqvqIqJqKqLqMqvqvqfqfqvqNqOqvadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvavavbvcvdvevfvdvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAadadadadadadadadqvqPqvqvqvqvqvqQqRqRqRqSqRqTqvqvqvqvqvqUqvadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvavyvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAcAadadadadadadadadqvqVqWqXqYqZqvraqRqRqRqRqRrbqvrcrdrerfrgqvadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvzvwcnlplplplplplplplpvAvBvClplplplplplplplplpuYvwvDuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAadadadadadadadadadadadqvrhqAqArirjqvrkrkrkrlrkrkrkqvrmqArnqErhqvadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvEvwuZvFvFvGvFvFvFvGvFvFvFvFvFvGvFvFvFvFvGvFvFuZvwvHuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAadadadadadadadadadadadrorhqEqAqAqArpqRqRqRqRqRqRqRrpqArqqAqArhroadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvIvwuZvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFuZvwvHuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAadadadadadadadadadadrorhrrrsqvqvqvrtqRrururuqRrvqvqvqvqAqArhroadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvJvwuZvKvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvLuZvwvMuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAadadadadadadadadadadrorwqAqAqvrxryqRqRrzrArBqRqRqRrCqvrDqArEroadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvNvwvOvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvOvwvwuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAadadadadadadadadadqrqvrFrGrHqvrIqRqRqRrJrArKqRqRqRrLqvrMrNrOqvqsadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvPvwvBvFvFvFvFvFvFvFvFvFvQvFvFvFvFvFvFvFvFvFvFvBvwvRuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAadadadadcAcAadadadrPqvrQrQqvqvrRqRrSqRqJqJqJqRrSqRrTqvqvrQrQqvrUadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvSvwvTvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvTvwvRuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAadadadadadadcAcAadadadadrPrVrVrUqvqvrlqvqRqRqRqRqRqvrlqvqvrPrVrVrUadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvUvwuZvKvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvLuZvwvRuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAadadadadadadadadadadadadadadqvrWqRqvqRqRqRqRqRqvqRrXqvadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvVvwuZvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFvFuZvwvWuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAadadadadadadadadadadadadadadqvrYrZqvsasasbsasaqvqRscqvadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZvXvwuZvFvFvYvFvFvFvYvFvFvFvFvFvYvFvFvFvFvYvFvFuZvwvZuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAadadadadadadadadadadadadadadadadqvqvsdqvsesfsfsfsgqvshqvqvadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZwavwwblplplplplplplplpvAvBvClplplplplplplplplpwcvwwduZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAadcAcAcAadadadadadadadadadadadadrPqvqvqvsisjskslsmqvqvqvrUadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZwevwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAcAadadadadadcAcAadadadadadadadadrPqvrQrQrQrQrQqvrUadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaduZwfwgvcwhvevfvdvgvhvivjvkvlvmvnvovpwiwjwkvwvuvvvbwgvwuZadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAadadadadadadcAcAcAadadadadadadadadrPrVrVrVrVrVrUadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadwblplplplplplplplplplplplplplplplplplplplplplplplplplpwcadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAadadadadadadadcAcAcAadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAadadcAadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAadadadadadadadadadadcAcAadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAadadadadadadadadcAcAcAcAadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadowcAcAcAadadadadadadadcAcAcAcAadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsncAadadadadadadadadadadcAcAcAadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczczcz +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsospspspspspspsqspspspsqspsrspssstadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsusvswsxsyszsAsBsCsCsCsBsDsEsFsGsHadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsusIsIsIsIsIsIsJsKsLsKsMsEsEsNsGsHadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsusOsOsIsIsIsPsQsKsKsRsospspspsSsTadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsusIsIsIsIsIsUsusVsVsWsBsXsYsZtasuadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsutbtbsIsIsItcsusVsVsVtdsVsVsVtesuadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsusIsIsIsIsItfsutgthtisQtjtktltmsuadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsusIsIsIsIsIsPtnspspsptospspspsptpadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsusItqtrtsttsItutvtwtutxtytztztysuadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsusItqtAtBttsItCtCtCtCtxtDtDtDtDsuadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsusItqtEtFttsItCtCtCtCtCtCtCtCtCsuadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsusItqtGtHttsItCtCtCtCtCtCtItJtKsuadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsutLtLtLtLtLtLtMtMtMtMtMtMtMtMtMsuadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsutxtxtxtxtxtxtxtxtxtxtxtxtxtxtxsuadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsutNtOtPtxtQtRtStxtTtUtVtxtWtXtYsuadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadsutZuaubtxucuduetxufuguhtxuiujuksuadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadtnspspspulspspspulspspspulspspspumadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad +"} diff --git a/maps/entrepot/entrepot_areas.dm b/maps/entrepot/entrepot_areas.dm new file mode 100644 index 00000000000..c13fa054195 --- /dev/null +++ b/maps/entrepot/entrepot_areas.dm @@ -0,0 +1,86 @@ + +/area/entrepot + name = "\improper NTS Entrepot-17" + icon_state = "dark" + area_flags = AREA_FLAG_RAD_SHIELDED + + +/area/entrepot/deck_1 + name = "\improper Main Module 1F" + icon_state = "hallC1" + +/area/entrepot/deck_2 + name = "\improper Main Module 2F" + icon_state = "hallC1" + +/area/entrepot/cargo + name = "\improper Main Module 1F - Warehouse" + icon_state = "quartstorage" + +/area/entrepot/dock + name = "\improper Main Module 2F - Space Dock" + icon_state = "escape" + +/area/entrepot/arrivals + name = "\improper Main Module 2F - Arrivals" + icon_state = "escape" + +/area/entrepot/crew_1 + name = "\improper Living Module 1F" + icon_state = "udorm" + +/area/entrepot/crew_2 + name = "\improper Living Module 2F" + icon_state = "udorm" + +/area/entrepot/crew_1/dorm + name = "\improper Living Module 1F - Dormitories" + icon_state = "Sleep" + +/area/entrepot/crew_2/dorm + name = "\improper Living Module 2F - Dormitories" + icon_state = "Sleep" + +/area/entrepot/crew_1/fitness + name = "\improper Living Module 1F - Gym" + icon_state = "fitness" + +/area/entrepot/crew_2/fitness + name = "\improper Living Module 2F - Gym" + icon_state = "fitness" + +/area/entrepot/medbay + name = "\improper Living Module 2F - Medbay" + icon_state = "medbay" + + +/area/entrepot/cafe_1 + name = "\improper Refectory Module 1F" + icon_state = "cafeteria" + sound_env = LARGE_SOFTFLOOR + +/area/entrepot/cafe_2 + name = "\improper Refectory Module 2F" + icon_state = "cafeteria" + sound_env = LARGE_SOFTFLOOR + + +/area/entrepot/engi_1 + name = "\improper Technical Module 1F" + icon_state = "engineering" + ambience_powered = list(SFX_AMBIENT_ENGINEERING) + +/area/entrepot/engi_2 + name = "\improper Technical Module 2F" + icon_state = "engineering" + ambience_powered = list(SFX_AMBIENT_ENGINEERING) + + +/area/entrepot/engi_1 + name = "\improper Technical Module 1F" + icon_state = "Sleep" + +/area/entrepot/engi_2 + name = "\improper Technical Module 2F" + icon_state = "Sleep" + diff --git a/maps/entrepot/entrepot_define.dm b/maps/entrepot/entrepot_define.dm new file mode 100644 index 00000000000..b7fe398b667 --- /dev/null +++ b/maps/entrepot/entrepot_define.dm @@ -0,0 +1,42 @@ + +/datum/map/entrepot + name = "Entrepot" + full_name = "NTS Entrepot-17" + path = "entrepot" + + shuttle_types = list( + /datum/shuttle/autodock/ferry/emergency/centcom, + /datum/shuttle/autodock/multi/antag/syndicate, + /datum/shuttle/autodock/multi/antag/skipjack, + ) + + map_levels = list( + new /datum/space_level/entrepot_1, + new /datum/space_level/entrepot_2, + new /datum/space_level/entrepot_3, // Exodus-shaped CentCom + new /datum/space_level/null_space, + new /datum/space_level/telecomms, + new /datum/space_level/derelict + ) + + station_name = "NTS Entrepot-17" + station_short = "Entrepot-17" + dock_name = "NSS Exodus" + boss_name = "Central Command" + boss_short = "Centcomm" + company_name = "Nanotrasen" + company_short = "NT" + system_name = "Nyx" + + evac_controller_type = /datum/evacuation_controller/shuttle + + station_networks = list( + NETWORK_EXODUS, + NETWORK_TELECOM, + NETWORK_MASTER + ) + + post_round_safe_areas = list ( + /area/centcom, + /area/shuttle/escape/centcom + ) diff --git a/maps/entrepot/entrepot_levels.dm b/maps/entrepot/entrepot_levels.dm new file mode 100644 index 00000000000..516946ee799 --- /dev/null +++ b/maps/entrepot/entrepot_levels.dm @@ -0,0 +1,35 @@ +/datum/space_level/entrepot_1 + path = 'entrepot-1.dmm' + traits = list( + ZTRAIT_STATION, + ZTRAIT_CONTACT + ) + travel_chance = 10 + +/datum/space_level/entrepot_1/generate(z) + // Create the mining Z-level. + new /datum/random_map/automata/cave_system(null, 1, 1, z, 200, 200) + // Create the mining ore distribution map. + new /datum/random_map/noise/ore(null, 1, 1, z, 200, 200) + +/datum/space_level/entrepot_2 + path = 'entrepot-2.dmm' + traits = list( + ZTRAIT_STATION, + ZTRAIT_CONTACT + ) + travel_chance = 10 + +/datum/space_level/entrepot_2/generate(z) + // Create the mining Z-level. + new /datum/random_map/automata/cave_system(null, 1, 1, z, 200, 200) + // Create the mining ore distribution map. + new /datum/random_map/noise/ore(null, 1, 1, z, 200, 200) + +/datum/space_level/entrepot_3 + path = 'entrepot-3.dmm' + traits = list( + ZTRAIT_CENTCOM, + ZTRAIT_CONTACT, + ZTRAIT_SEALED + ) diff --git a/maps/example/example-1.dmm b/maps/example/example-1.dmm index 17e424ab24b..dd5a027762c 100644 --- a/maps/example/example-1.dmm +++ b/maps/example/example-1.dmm @@ -1,46 +1,41 @@ -"a" = (/turf/simulated/wall/r_wall,/area/engineering) -"b" = (/obj/effect/landmark/start/crew/ai,/obj/machinery/camera,/turf/simulated/floor/tiled/rough,/area/engineering) -"c" = (/turf/simulated/floor/tiled/rough,/area/engineering) -"d" = (/obj/machinery/light/spot{dir = 1},/turf/simulated/floor/tiled/rough,/area/engineering) -"e" = (/obj/machinery/camera{dir = 1},/turf/simulated/floor/tiled/rough,/area/engineering) -"f" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/rough,/area/engineering) -"g" = (/turf/simulated/wall,/area/engineering) -"h" = (/obj/machinery/light_switch{on = 1; pixel_x = 25},/turf/simulated/floor/tiled/rough,/area/engineering) -"i" = (/obj/machinery/light/spot{dir = 8},/turf/simulated/floor/tiled/rough,/area/engineering) -"j" = (/obj/structure/ladder/up,/turf/simulated/floor/tiled/rough,/area/engineering) -"k" = (/obj/machinery/light/spot{dir = 4},/turf/simulated/floor/tiled/rough,/area/engineering) -"l" = (/obj/effect/landmark/start/crew,/turf/simulated/floor/tiled/rough,/area/engineering) -"m" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/rough,/area/engineering) -"n" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/tiled/rough,/area/engineering) -"o" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/tiled/rough,/area/engineering) -"p" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/tiled/rough,/area/engineering) -"q" = (/obj/machinery/light_switch{on = 1; pixel_x = -25},/obj/machinery/camera{dir = 4},/turf/simulated/floor/tiled/rough,/area/engineering) -"r" = (/obj/effect/landmark/start/crew/captain,/turf/simulated/floor/tiled/rough,/area/engineering) -"s" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 6},/turf/simulated/floor/tiled/rough,/area/engineering) -"t" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/empty,/turf/simulated/floor/tiled/rough,/area/engineering) -"u" = (/obj/machinery/door/airlock/external/bolted{frequency = 1379; id_tag = "lower_level_dock_hatch"},/turf/simulated/floor,/area/engineering) -"v" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{id_tag = "lower_level_dock"; pixel_x = -8; pixel_y = -25},/obj/machinery/camera{dir = 1},/turf/simulated/floor,/area/engineering) -"w" = (/turf/simulated/floor,/area/engineering) -"x" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/rough,/area/engineering) -"y" = (/turf/simulated/wall,/area/shuttle/escape) +"a" = (/turf/simulated/wall/r_wall,/area/engineering/toilet) +"b" = (/turf/simulated/floor/tiled,/area/engineering/toilet) +"c" = (/turf/simulated/wall/r_wall,/area/space) +"d" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/engineering/toilet) +"f" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/engineering/toilet) +"g" = (/turf/simulated/wall,/area/engineering/toilet) +"h" = (/obj/machinery/light_switch{on = 1; pixel_x = 25},/turf/simulated/floor/tiled,/area/engineering/toilet) +"i" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/engineering/toilet) +"j" = (/obj/structure/ladder/up,/turf/simulated/floor/tiled,/area/engineering/toilet) +"k" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/engineering/toilet) +"l" = (/obj/effect/landmark/start/crew,/turf/simulated/floor/tiled,/area/engineering/toilet) +"m" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/engineering/toilet) +"n" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/tiled,/area/engineering/toilet) +"o" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/tiled,/area/engineering/toilet) +"p" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/tiled,/area/engineering/toilet) +"q" = (/obj/machinery/light_switch{on = 1; pixel_x = -25},/turf/simulated/floor/tiled,/area/engineering/toilet) +"r" = (/obj/effect/landmark/start,/turf/simulated/floor/tiled,/area/engineering/toilet) +"s" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 6},/turf/simulated/floor/tiled,/area/engineering/toilet) +"t" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/empty,/turf/simulated/floor/tiled,/area/engineering/toilet) +"u" = (/obj/machinery/door/airlock/external/bolted{frequency = 1379; id_tag = "lower_level_dock_hatch"},/turf/simulated/floor,/area/engineering/toilet) +"v" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{id_tag = "lower_level_dock"; pixel_x = -8; pixel_y = -25},/turf/simulated/floor,/area/engineering/toilet) +"w" = (/turf/simulated/floor,/area/engineering/toilet) +"x" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/engineering/toilet) +"y" = (/turf/simulated/wall/iron,/area/shuttle/escape) "z" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/shuttle/escape) "A" = (/obj/machinery/computer/shuttle_control{shuttle_tag = "Example"},/turf/simulated/floor/plating,/area/shuttle/escape) "B" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/embedded_controller/radio/simple_docking_controller{id_tag = "example_shuttle_starboard"; pixel_x = 28},/obj/machinery/embedded_controller/radio/simple_docking_controller{id_tag = "example_shuttle_port"; pixel_x = -28},/turf/simulated/floor/plating,/area/shuttle/escape) -"C" = (/obj/machinery/camera{dir = 1},/obj/machinery/light/spot,/turf/simulated/floor/plating,/area/shuttle/escape) +"C" = (/obj/machinery/light,/turf/simulated/floor/plating,/area/shuttle/escape) "D" = (/obj/machinery/door/airlock/external/bolted{frequency = 1379; id_tag = "example_shuttle_port_hatch"},/turf/simulated/floor/plating,/area/shuttle/escape) "E" = (/obj/machinery/door/airlock/external/bolted{frequency = 1379; id_tag = "example_shuttle_starboard_hatch"},/turf/simulated/floor/plating,/area/shuttle/escape) -"F" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled/rough,/area/engineering) -"G" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/rough,/area/engineering) -"H" = (/obj/structure/cable,/obj/machinery/power/debug_items/infinite_generator,/turf/simulated/floor/tiled/rough,/area/engineering) -"I" = (/obj/machinery/light/spot,/turf/simulated/floor/tiled/rough,/area/engineering) +"F" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled,/area/engineering/toilet) +"G" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/engineering/toilet) +"H" = (/obj/structure/cable,/obj/machinery/power/debug_items/infinite_generator,/turf/simulated/floor/tiled,/area/engineering/toilet) +"I" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/engineering/toilet) "J" = (/turf/space,/area/space) -"K" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/map_ent/trigger_mob{pixel_x = -7; ev_tag = "ent_tp_wv"; tag = "ent_tp_trigger"},/obj/map_ent/func_teleport{pixel_x = 14; ev_dest_tag = "ent_showcase_tp_dest"; tag = "ent_tp_src"},/obj/map_ent/func_write_var{pixel_y = 9; ev_activate_writer = 1; ev_read_tag = "ent_tp_trigger"; ev_table = list("ev_tag"="ev_triggered"); ev_write_tag = "ent_tp_src"; tag = "ent_tp_wv"},/turf/simulated/floor/tiled/rough,/area/engineering) -"L" = (/obj/machinery/camera{dir = 8},/turf/simulated/floor/tiled/rough,/area/engineering) -"P" = (/obj/map_ent/info_maptext{ev_text = "Map entities showcase"},/turf/simulated/floor/tiled/rough,/area/engineering) -"R" = (/obj/structure/stairs/south,/turf/simulated/floor/tiled/rough,/area/engineering) -"U" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/camera,/obj/machinery/light/spot{dir = 1},/turf/simulated/floor/tiled/rough,/area/engineering) -"X" = (/obj/effect/landmark/joinlate,/turf/simulated/floor/tiled/rough,/area/engineering) -"Z" = (/obj/effect/landmark/start,/turf/simulated/floor/tiled/rough,/area/engineering) +"K" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/map_ent/trigger_mob{pixel_x = -7; ev_tag = "ent_tp_wv"; tag = "ent_tp_trigger"},/obj/map_ent/func_teleport{pixel_x = 14; ev_dest_tag = "ent_showcase_tp_dest"; tag = "ent_tp_src"},/obj/map_ent/func_write_var{pixel_y = 9; ev_activate_writer = 1; ev_read_tag = "ent_tp_trigger"; ev_table = list("ev_tag"="ev_triggered"); ev_write_tag = "ent_tp_src"; tag = "ent_tp_wv"},/turf/simulated/floor/tiled,/area/engineering/toilet) +"P" = (/obj/map_ent/info_maptext{ev_text = "Map entities showcase"},/turf/simulated/floor/tiled,/area/engineering/toilet) +"X" = (/obj/effect/landmark/joinlate,/turf/simulated/floor/tiled,/area/engineering/toilet) (1,1,1) = {" JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ @@ -51,23 +46,23 @@ JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJJaaaaaaaaaaaaaaaaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJJaaaaaaaaaaaaaaaaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJJaacccdccbccdcccaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJJaacccccfgfcccccaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJJaacccccfUfcccchaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJJaaicccjfffcccckaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJJaaccccccccccmccaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJyyyJaaccccccXcccnopaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJzAzaaaqccccZrlccccLaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJzBzaaaccccccccccsotaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJDCEuvwccccccccccxccaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJyyyaaaiccccccccccckaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJaaaFccccccccccccaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJJaaGcccccPccccccaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJJaaHccIceKccIccRaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJJaaaaaaaaaaaaaaaaaJJJJJJJJJJJJJJJ -JJJJJJJJJJJJJJJJaaaaaaaaaaaaaaaaaJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJJcccccccccccccccccJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJJcaaaaaaaaaaaaaaacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJJcabbbdbbbbbdbbbacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJJcabbbbbfgfbbbbbacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJJcabbbbbfffbbbbhacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJJcaibbbjfffbbbbkacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJJcabbbbbbbbbbmbbacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJyyyJcabbbbbbXbbbnopacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJzAzccaqbbbbbrlbbbbbacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJzBzaaabbbbbbbbbbsotacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJDCEuvwbbbbbbbbbbxbbacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJyyyaaaibbbbbbbbbbbkacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJccaFbbbbbbbbbbbbacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJJcaGbbbbbPbbbbbbacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJJcaHbbIbbKbbIbbbacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJJcaaaaaaaaaaaaaaacJJJJJJJJJJJJJJJ +JJJJJJJJJJJJJJJJcccccccccccccccccJJJJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ diff --git a/maps/example/example-2.dmm b/maps/example/example-2.dmm index 9dc8594a17a..715716f36f8 100644 --- a/maps/example/example-2.dmm +++ b/maps/example/example-2.dmm @@ -1,95 +1,84 @@ -"aK" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/computer/operating,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"aU" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/light/spot,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"cK" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/atmospherics/unary/cryo_cell,/obj/structure/railing/steel{dir = 1},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"dR" = (/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"eH" = (/turf/simulated/floor/tiled/dark/rough,/area/medical/medbay) -"eZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"fq" = (/obj/machinery/light_switch{on = 1; pixel_x = -25},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"gA" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/camera{dir = 8},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"hq" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/organ_printer/flesh/mapped,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"im" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/storage/firstaid/surgery,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"iL" = (/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/medbay) -"jG" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/mirror,/obj/machinery/light/spot{dir = 8},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"kv" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/atmospherics/unary/freezer,/obj/structure/railing/steel{dir = 1},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"kw" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"lT" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/rack,/obj/item/stack/material/plasteel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/gold/ten,/obj/item/stack/material/mhydrogen/ten,/obj/item/stack/material/silver/ten,/obj/item/stack/material/uranium/ten,/obj/item/stack/material/diamond/ten,/obj/item/stack/material/plasma/fifty,/obj/item/storage/belt/utility/full,/obj/item/stack/material/steel/fifty,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"mX" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled/dark/rough,/area/medical/medbay) -"op" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/light/spot{dir = 4},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"oO" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/bodyscanner{icon_state = "body_scanner_0"; dir = 4},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"qm" = (/turf/space,/area/space) -"su" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/tiled/white,/area/medical/medbay) -"sF" = (/obj/machinery/atmospherics/portables_connector{icon_state = "map_connector"; dir = 8},/obj/machinery/portable_atmospherics/canister/empty,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"tz" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled/dark/rough,/area/medical/medbay) -"uG" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"vo" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 4},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"vC" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/card/id/all_access,/obj/item/card/id/all_access,/obj/item/card/id/all_access,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"wr" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/ladder/updown,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"wG" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/storage/box/gloves,/obj/item/storage/box/masks,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"wM" = (/obj/machinery/light_switch{on = 1; pixel_x = 25},/turf/simulated/floor/tiled/dark/rough,/area/medical/medbay) -"yh" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/camera{dir = 1},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"zX" = (/obj/structure/cable,/obj/machinery/power/debug_items/infinite_generator,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Ae" = (/turf/simulated/wall/r_wall,/area/medical/medbay) -"AN" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"BH" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/atmospherics/pipe/manifold/visible/blue,/obj/item/reagent_containers/vessel/beaker/cryoxadone,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"CC" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/atmospherics/pipe/simple/visible/blue{icon_state = "intact"; dir = 9},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Dp" = (/obj/effect/landmark/map_data{height = 2},/turf/space,/area/space) -"FQ" = (/obj/structure/lattice,/turf/simulated/open,/area/medical/medbay) -"Gk" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/railing/steel,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"GM" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/stairs/north,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Hh" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled/dark/rough,/area/medical/medbay) -"Id" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/body_scanconsole{icon_state = "body_scannerconsole"; dir = 4},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Ix" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/closet/secure_closet/freezer/meat,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Iz" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/light/spot{dir = 1},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Je" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"JE" = (/turf/simulated/open,/area/medical/medbay) -"JY" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/sink{icon_state = "sink"; dir = 4},/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Kz" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/scalpel/laser1,/obj/item/scalpel/laser2,/obj/item/scalpel/laser3,/obj/item/device/robotanalyzer,/obj/item/device/healthanalyzer,/obj/item/storage/firstaid/adv,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"KC" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/organ_printer/robot/mapped,/obj/machinery/camera{dir = 4},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"RG" = (/obj/machinery/atmospherics/portables_connector{icon_state = "map_connector"; dir = 8},/obj/machinery/portable_atmospherics/canister/air,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"SE" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Tv" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled/dark/rough,/area/medical/medbay) -"TF" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/sleeper{icon_state = "sleeper_0"; dir = 8},/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Un" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/optable,/obj/machinery/oxygen_pump/anesthetic{pixel_y = 32},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"UX" = (/obj/structure/lattice,/obj/machinery/camera,/turf/simulated/open,/area/medical/medbay) -"Vl" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"VK" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/atmospherics/pipe/simple/visible/blue{icon_state = "intact"; dir = 5},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Wj" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/iv_drip,/obj/item/reagent_containers/ivbag/blood/OMinus,/obj/item/reagent_containers/ivbag/blood/OMinus,/obj/item/reagent_containers/ivbag/blood/OMinus,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Xk" = (/mob/living/carbon/human/dummy,/obj/effect/floor_decal/bot_red,/turf/simulated/floor/tiled/dark/rough,/area/medical/medbay) -"Yk" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/chem_disp_cartridge/peridaxon,/obj/item/stack/nanopaste,/obj/machinery/light/spot{dir = 8},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"YD" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/storage/box/syringes,/obj/item/storage/box/freezer,/obj/machinery/light/spot{dir = 1},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) -"Zg" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/machinery/atmospherics/portables_connector,/obj/structure/railing/steel{dir = 1},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay) +"a" = (/turf/space,/area/space) +"b" = (/obj/effect/landmark/map_data{height = 2},/turf/space,/area/space) +"c" = (/turf/simulated/wall/r_wall,/area/space) +"d" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/iv_drip,/obj/item/reagent_containers/ivbag/blood/OMinus,/obj/item/reagent_containers/ivbag/blood/OMinus,/obj/item/reagent_containers/ivbag/blood/OMinus,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"e" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/optable,/obj/machinery/oxygen_pump/anesthetic{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/medical/surgery) +"f" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/computer/operating,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"g" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/storage/box/syringes,/obj/item/storage/box/freezer,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"h" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/storage/box/gloves,/obj/item/storage/box/masks,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"i" = (/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"j" = (/obj/structure/lattice,/turf/simulated/open,/area/medical/surgery) +"k" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"l" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/storage/firstaid/surgery,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"m" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/sink{icon_state = "sink"; dir = 4},/turf/simulated/floor/tiled/white,/area/medical/surgery) +"n" = (/turf/simulated/open,/area/medical/surgery) +"o" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/chem_disp_cartridge/peridaxon,/obj/item/stack/nanopaste,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/white,/area/medical/surgery) +"p" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/body_scanconsole{icon_state = "body_scannerconsole"; dir = 4},/turf/simulated/floor/tiled/white,/area/medical/surgery) +"q" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/bodyscanner{icon_state = "body_scanner_0"; dir = 4},/turf/simulated/floor/tiled/white,/area/medical/surgery) +"r" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/sleeper{icon_state = "sleeper_0"; dir = 8},/turf/simulated/floor/tiled/white,/area/medical/surgery) +"s" = (/obj/machinery/light_switch{on = 1; pixel_x = 25},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"t" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/scalpel/laser1,/obj/item/scalpel/laser2,/obj/item/scalpel/laser3,/obj/item/device/robotanalyzer,/obj/item/device/healthanalyzer,/obj/item/storage/firstaid/adv,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"u" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/ladder/updown,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"v" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/atmospherics/unary/freezer,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"w" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"x" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"y" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/medical/surgery) +"z" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/closet/secure_closet/freezer/meat,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"A" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"B" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/atmospherics/pipe/simple/visible/blue{icon_state = "intact"; dir = 5},/turf/simulated/floor/tiled/white,/area/medical/surgery) +"C" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/atmospherics/pipe/manifold/visible/blue,/obj/item/reagent_containers/vessel/beaker/cryoxadone,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"D" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/atmospherics/pipe/simple/visible/blue{icon_state = "intact"; dir = 9},/turf/simulated/floor/tiled/white,/area/medical/surgery) +"E" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"F" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/organ_printer/flesh/mapped,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"G" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"H" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 4},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"I" = (/obj/machinery/atmospherics/portables_connector{icon_state = "map_connector"; dir = 8},/obj/machinery/portable_atmospherics/canister/air,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"J" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/organ_printer/robot/mapped,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"K" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/rack,/obj/item/stack/material/plasteel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/gold/ten,/obj/item/stack/material/mhydrogen/ten,/obj/item/stack/material/silver/ten,/obj/item/stack/material/uranium/ten,/obj/item/stack/material/diamond/ten,/obj/item/stack/material/plasma/fifty,/obj/item/storage/belt/utility/full,/obj/item/stack/material/steel/fifty,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"L" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"M" = (/obj/machinery/atmospherics/portables_connector{icon_state = "map_connector"; dir = 8},/obj/machinery/portable_atmospherics/canister/empty,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"N" = (/obj/machinery/light_switch{on = 1; pixel_x = -25},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"O" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"P" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"Q" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"R" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/table/glass,/obj/item/card/id/all_access,/obj/item/card/id/all_access,/obj/item/card/id/all_access,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"S" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor,/area/medical/surgery) +"T" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/medical/surgery) +"U" = (/obj/machinery/light,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"V" = (/obj/structure/cable,/obj/machinery/power/debug_items/infinite_generator,/turf/simulated/floor,/area/medical/surgery) +"W" = (/turf/simulated/wall/r_wall,/area/medical/surgery) (1,1,1) = {" -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmDpqmqmAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAeWjUnaKYDwGGkUXGkdRIzeHmXeHAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAeimdRdRdRJYFQFQFQJedRHhXktzAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAeYkIdoOdRTFJEJEJEJedReHTvwMAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAeKzdRdRdRwrkvcKZgdRdRdRdRopAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAeIxdRsudRdRVKBHCCdRdRANdRdRAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAehqdRdRdRdRdRdRdRdRdRVlvoRGAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAeKCdRlTdRdRdRdRdRdRdRdRdRgAAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAevCdRdRdRdRdRdRiLiLdRkwvosFAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAefqdRdRdRdRdRdRdRdRdRuGdRdRAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAejGdRdRdRdRdRdRdRdRdRdRdRopAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAeSEdRdRdRdRdRdRdRdRdRdRdRdRAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAeeZdRdRdRdRdRdRdRdRdRdRGMJEAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAezXdRdRaUdRdRyhdRdRaUdRdRJEAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm -qmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqmqm +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacccccccccccccccccaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaacWWWWWWWWWWWWWWWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWdefghijiikiiiWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWliiimjjniiiiiWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWopqirnnniiiisWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWtiiiuvwxiiiiyWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWziAiiBCDiiEiiWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWFiiiiiiiiiGHIWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWJiKiiiiiiiiiiWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWRiiiiiiiiiLHMWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWNiiiiiiiiiOiiWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWPiiiiiiiiiiiQWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWSiiiiiiiiiiiiWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWTiiiiiiiiiiiiWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWViiUiiiiiUiiiWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacWWWWWWWWWWWWWWWcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacccccccccccccccccaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} diff --git a/maps/example/example-3.dmm b/maps/example/example-3.dmm index 210f436b33d..599eea8b2da 100644 --- a/maps/example/example-3.dmm +++ b/maps/example/example-3.dmm @@ -1,43 +1,36 @@ "a" = (/turf/space,/area/space) "b" = (/obj/effect/landmark/map_data{height = 2},/turf/space,/area/space) -"c" = (/turf/simulated/wall/r_wall,/area/rnd/research) -"d" = (/turf/simulated/floor/tiled/rough,/area/rnd/research) -"e" = (/obj/machinery/light/spot{dir = 1},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"f" = (/obj/structure/lattice,/turf/simulated/open,/area/rnd/research) -"g" = (/turf/simulated/open,/area/rnd/research) -"h" = (/obj/machinery/light_switch{on = 1; pixel_x = 25},/turf/simulated/floor/tiled/rough,/area/rnd/research) +"c" = (/turf/simulated/wall/r_wall,/area/space) +"d" = (/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"e" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"f" = (/obj/structure/lattice,/turf/simulated/open,/area/maintenance/fsmaint2) +"g" = (/turf/simulated/open,/area/maintenance/fsmaint2) +"h" = (/obj/machinery/light_switch{on = 1; pixel_x = 25},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) "i" = (/obj/effect/shuttle_landmark/upper_level,/turf/space,/area/space) -"j" = (/obj/machinery/camera{dir = 1},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"k" = (/obj/structure/ladder,/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"l" = (/obj/machinery/camera,/turf/simulated/floor,/area/rnd/research) -"m" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{id_tag = "upper_level_dock"; pixel_x = 8; pixel_y = -25},/turf/simulated/floor,/area/rnd/research) -"n" = (/obj/machinery/door/airlock/external/bolted{frequency = 1379},/turf/simulated/floor,/area/rnd/research) -"o" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/rough,/area/rnd/research) -"p" = (/obj/machinery/light/spot{dir = 4},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"q" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"r" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"s" = (/obj/machinery/atmospherics/portables_connector{icon_state = "map_connector"; dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/tiled/rough,/area/rnd/research) -"t" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"u" = (/obj/machinery/atmospherics/portables_connector{icon_state = "map_connector"; dir = 8},/obj/machinery/portable_atmospherics/canister/empty,/turf/simulated/floor/tiled/rough,/area/rnd/research) -"v" = (/obj/machinery/light_switch{on = 1; pixel_x = -25},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"w" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"x" = (/obj/structure/railing/steel{dir = 1},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"y" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"z" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"A" = (/obj/structure/cable,/obj/machinery/power/debug_items/infinite_generator,/turf/simulated/floor/tiled/rough,/area/rnd/research) -"B" = (/obj/machinery/light/spot,/turf/simulated/floor/tiled/rough,/area/rnd/research) -"C" = (/obj/machinery/light/spot{dir = 8},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"D" = (/obj/structure/window_frame/rglass,/obj/machinery/light/spot{dir = 1},/turf/simulated/floor,/area/rnd/research) -"E" = (/obj/structure/window_frame/rglass,/turf/simulated/floor,/area/rnd/research) -"F" = (/obj/machinery/camera{dir = 4},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"G" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/rough,/area/rnd/research) -"H" = (/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"I" = (/obj/machinery/camera{dir = 4},/turf/space,/area/rnd/research) -"P" = (/obj/machinery/camera{dir = 8},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"R" = (/obj/structure/lattice,/obj/machinery/camera,/turf/simulated/open,/area/rnd/research) -"T" = (/turf/simulated/floor,/area/rnd/research) -"Y" = (/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/tiled/rough,/area/rnd/research) -"Z" = (/obj/structure/railing/steel,/turf/simulated/floor/tiled/rough,/area/rnd/research) +"j" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"k" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/ladder,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"l" = (/turf/simulated/floor,/area/maintenance/fsmaint2) +"m" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{id_tag = "upper_level_dock"; pixel_x = 8; pixel_y = -25},/turf/simulated/floor,/area/maintenance/fsmaint2) +"n" = (/obj/machinery/door/airlock/external/bolted{frequency = 1379},/turf/simulated/floor,/area/maintenance/fsmaint2) +"o" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"p" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"q" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"r" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 4},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"s" = (/obj/machinery/atmospherics/portables_connector{icon_state = "map_connector"; dir = 8},/obj/machinery/portable_atmospherics/canister/air,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"t" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"u" = (/obj/machinery/atmospherics/portables_connector{icon_state = "map_connector"; dir = 8},/obj/machinery/portable_atmospherics/canister/empty,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"v" = (/obj/machinery/light_switch{on = 1; pixel_x = -25},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"w" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"x" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"y" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"z" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"A" = (/obj/structure/cable,/obj/machinery/power/debug_items/infinite_generator,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"B" = (/obj/machinery/light,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"C" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/industrial/hatch/blue,/turf/simulated/floor/tiled,/area/outpost/research/analysis{has_gravity = 0}) +"D" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/window/reinforced/full,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"E" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/window/reinforced/full,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"G" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled,/area/maintenance/fsmaint2) +"H" = (/turf/simulated/wall/r_wall,/area/maintenance/fsmaint2) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -49,21 +42,21 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaacccccccccccccccccaaaaaaaaaaaaaaa -aaaaaaaaaaaaabaacccccccccccccccccaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaccdddDdZRZdedddccaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaccdddEHfffYddddccccaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaccdddEHgggYdddhccccaiaaaaaaaaaaa -aaaaaaaaaaaaaaaaccdddEkgggYddddTlmnaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaccCddEdxxxddodpccccIaaaaaaaaaaaa -aaaaaaaaaaaaaaaaccEGEEddddddqrsccccaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaccFdddddddddddPccaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaccddddddddddtruccaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaccvdddddddddwddccaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaccCdddddddddddpccaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaccyddddddddddddccaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaacczddddddddddgdccaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaccAddBddjddBdgdccaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaacccccccccccccccccaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaacHHHHHHHHHHHHHHHcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHCCCDddfddedddHcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHCCCEdfffdddddHcccaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHCCCEdgggddddhHHHHaiaaaaaaaaaaa +aaaaaaaaaaaaaaaacHCCCEkgggdddddllmnaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHCCCEddddddodpHHHHaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHEGEEddddddqrsHcccaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHdddddddddddddHcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHddddddddddtruHcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHvdddddddddwddHcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHjdddddddddddxHcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHyddddddddddddHcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHzddddddddddddHcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHAddBdddddBdddHcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacHHHHHHHHHHHHHHHcaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaacccccccccccccccccaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/example/example-4.dmm b/maps/example/example-4.dmm index 02cea6986b7..82f92ed36d4 100644 --- a/maps/example/example-4.dmm +++ b/maps/example/example-4.dmm @@ -1,91 +1,91 @@ -"aa" = (/obj/map_ent/func_say_in_radio{ev_is_ai = 1; ev_message = "Hello World!"; ev_name = "Epicus"; tag = "ent_say_in_radio"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"ag" = (/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"bE" = (/obj/map_ent/func_explosion{ev_heavy_impact_range = 0; ev_devastation_range = 0; tag = "ent_explosion"; ev_flash_range = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"cB" = (/obj/machinery/button{_wifi_id = -1; pixel_x = -30},/obj/map_ent/trigger_button{ev_tag = "ent_user_die_wr"; tag = "ent_user_die_rd"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"cJ" = (/obj/map_ent/func_smoke{tag = "ent_rel_smoke"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"dE" = (/obj/map_ent/info_maptext{ev_text = "logic_timer"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"ef" = (/obj/machinery/light,/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"eL" = (/obj/map_ent/info_maptext{ev_text = "COUNTER"; tag = "ent_maptext_text"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"fr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"fz" = (/obj/map_ent/trigger_button{ev_tag = "ent_load_map"},/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) +"aa" = (/obj/map_ent/func_say_in_radio{ev_is_ai = 1; ev_message = "Hello World!"; ev_name = "Epicus"; tag = "ent_say_in_radio"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"ag" = (/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"bE" = (/obj/map_ent/func_explosion{ev_heavy_impact_range = 0; ev_devastation_range = 0; tag = "ent_explosion"; ev_flash_range = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"cB" = (/obj/machinery/button{_wifi_id = -1; pixel_x = -30},/obj/map_ent/trigger_button{ev_tag = "ent_user_die_wr"; tag = "ent_user_die_rd"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"cJ" = (/obj/map_ent/func_smoke{tag = "ent_rel_smoke"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"dE" = (/obj/map_ent/info_maptext{ev_text = "logic_timer"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"ef" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"eL" = (/obj/map_ent/info_maptext{ev_text = "COUNTER"; tag = "ent_maptext_text"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"fr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"fz" = (/obj/map_ent/trigger_button{ev_tag = "ent_load_map"},/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) "fC" = (/turf/space,/area/space) -"fK" = (/obj/map_ent/func_light{ev_color = "#e04040"; tag = "ent_light"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"gh" = (/obj/map_ent/trigger_button{ev_tag = "ent_timer"},/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"hA" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_explosion"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"hL" = (/obj/map_ent/info_maptext{ev_text = "func_strcon"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"iH" = (/obj/map_ent/info_maptext{ev_text = "func_explosion"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"iS" = (/obj/map_ent/trigger_button{ev_tag = "ent_concat_relay"},/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"kK" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_gib_relay"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"lo" = (/obj/map_ent/info_maptext{ev_text = "press to die (func_proc_call)"},/obj/map_ent/func_write_var{ev_read_tag = "ent_user_die_rd"; tag = "ent_user_die_wr"; ev_write_tag = "env_die_user"; ev_table = list("ev_object_ref"="ev_triggered"); ev_activate_writer = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"lC" = (/obj/map_ent/info_maptext{ev_text = "func_load_map"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"lN" = (/obj/map_ent/func_write_var{tag = "ent_bool_wv"; ev_read_tag = "ent_bool_reg"; ev_write_tag = "ent_bool_text"; ev_table = list("ev_text"="ev_value"); ev_activate_writer = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"lS" = (/obj/map_ent/func_write_var{tag = "ent_string_concat_wv"; ev_read_tag = "ent_string"; ev_write_tag = "ent_concat"; ev_table = list("ev_lvalue"="ev_value")},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"ma" = (/obj/map_ent/info_maptext{ev_text = "info_bool"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"mf" = (/obj/map_ent/func_spawn{ev_unique = 1; ev_target = /mob/living/simple_animal/cow; ev_activate_at_startup = 1; tag = "ent_cow_spawner"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"nc" = (/obj/map_ent/info_maptext{ev_text = "COUNTER"; tag = "ent_bool_text"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"nn" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"pu" = (/obj/map_ent/func_sparks{tag = "ent_rel_sparks"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"qj" = (/obj/map_ent/func_spawn{tag = "ent_spawn_u"; ev_target = /obj/item/reagent_containers/food/donut; ev_unique = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"qV" = (/obj/map_ent/info_maptext{ev_text = "func_smoke"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"ri" = (/obj/map_ent/info_maptext{ev_text = "func_gib"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"rk" = (/obj/map_ent/func_write_var{tag = "ent_maptext_wv"; ev_read_tag = "ent_concat"; ev_write_tag = "ent_maptext_text"; ev_table = list("ev_text"="ev_result"); ev_activate_writer = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"tO" = (/obj/map_ent/trigger_button{ev_tag = "ent_spawn"},/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"tX" = (/obj/map_ent/logic_relay{tag = "ent_counter_relay"; ev_tags = list("ent_counter","ent_counter_wv")},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"vE" = (/obj/map_ent/func_write_var{tag = "ent_counter_wv"; ev_read_tag = "ent_counter"; ev_write_tag = "ent_counter_text"; ev_table = list("ev_text"="ev_value"); ev_activate_writer = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"wa" = (/obj/map_ent/func_gib{tag = "ent_cow_gibber"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"ww" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_sparks"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"wI" = (/obj/map_ent/func_sfx{ev_sound = 'sound/effects/phasein.ogg'; ev_volume = 60; tag = "ent_sfx"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"xS" = (/obj/map_ent/logic_relay{ev_tags = list("ent_rel_sparks","ent_rel_smoke","ent_rel_light"); tag = "ent_relay"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"xU" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"yw" = (/obj/map_ent/func_write_var{tag = "ent_counter_reset_vw"; ev_write_tag = "ent_counter"; ev_table = list("ev_value"=0)},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"zb" = (/obj/map_ent/trigger_button{ev_tag = "ent_counter_reset_relay"},/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/obj/map_ent/info_maptext{ev_text = "reset"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"zI" = (/obj/map_ent/logic_timer{ev_tag = "ent_light_timer"; ev_wait = 20; tag = "ent_timer"; ev_activate_at_startup = 0},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"zU" = (/obj/map_ent/logic_relay{tag = "ent_counter_reset_relay"; ev_tags = list("ent_counter_reset_vw","ent_counter_wv")},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"zV" = (/obj/map_ent/info_maptext{ev_text = "func_light"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"BM" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_light"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Cs" = (/obj/machinery/button{pixel_y = -32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_say_in_radio"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) +"fK" = (/obj/map_ent/func_light{ev_color = "#e04040"; tag = "ent_light"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"gh" = (/obj/map_ent/trigger_button{ev_tag = "ent_timer"},/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"hA" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_explosion"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"hL" = (/obj/map_ent/info_maptext{ev_text = "func_strcon"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"iH" = (/obj/map_ent/info_maptext{ev_text = "func_explosion"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"iS" = (/obj/map_ent/trigger_button{ev_tag = "ent_concat_relay"},/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"kK" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_gib_relay"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"lo" = (/obj/map_ent/info_maptext{ev_text = "press to die (func_proc_call)"},/obj/map_ent/func_write_var{ev_read_tag = "ent_user_die_rd"; tag = "ent_user_die_wr"; ev_write_tag = "env_die_user"; ev_table = list("ev_object_ref"="ev_triggered"); ev_activate_writer = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"lC" = (/obj/map_ent/info_maptext{ev_text = "func_load_map"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"lN" = (/obj/map_ent/func_write_var{tag = "ent_bool_wv"; ev_read_tag = "ent_bool_reg"; ev_write_tag = "ent_bool_text"; ev_table = list("ev_text"="ev_value"); ev_activate_writer = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"lS" = (/obj/map_ent/func_write_var{tag = "ent_string_concat_wv"; ev_read_tag = "ent_string"; ev_write_tag = "ent_concat"; ev_table = list("ev_lvalue"="ev_value")},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"ma" = (/obj/map_ent/info_maptext{ev_text = "info_bool"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"mf" = (/obj/map_ent/func_spawn{ev_unique = 1; ev_target = /mob/living/simple_animal/cow; ev_activate_at_startup = 1; tag = "ent_cow_spawner"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"nc" = (/obj/map_ent/info_maptext{ev_text = "COUNTER"; tag = "ent_bool_text"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"nn" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"pu" = (/obj/map_ent/func_sparks{tag = "ent_rel_sparks"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"qj" = (/obj/map_ent/func_spawn{tag = "ent_spawn_u"; ev_target = /obj/item/reagent_containers/food/donut; ev_unique = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"qV" = (/obj/map_ent/info_maptext{ev_text = "func_smoke"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"ri" = (/obj/map_ent/info_maptext{ev_text = "func_gib"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"rk" = (/obj/map_ent/func_write_var{tag = "ent_maptext_wv"; ev_read_tag = "ent_concat"; ev_write_tag = "ent_maptext_text"; ev_table = list("ev_text"="ev_result"); ev_activate_writer = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"tO" = (/obj/map_ent/trigger_button{ev_tag = "ent_spawn"},/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"tX" = (/obj/map_ent/logic_relay{tag = "ent_counter_relay"; ev_tags = list("ent_counter","ent_counter_wv")},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"vE" = (/obj/map_ent/func_write_var{tag = "ent_counter_wv"; ev_read_tag = "ent_counter"; ev_write_tag = "ent_counter_text"; ev_table = list("ev_text"="ev_value"); ev_activate_writer = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"wa" = (/obj/map_ent/func_gib{tag = "ent_cow_gibber"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"ww" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_sparks"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"wI" = (/obj/map_ent/func_sfx{ev_sound = 'sound/effects/phasein.ogg'; ev_volume = 60; tag = "ent_sfx"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"xS" = (/obj/map_ent/logic_relay{ev_tags = list("ent_rel_sparks","ent_rel_smoke","ent_rel_light"); tag = "ent_relay"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"xU" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"yw" = (/obj/map_ent/func_write_var{tag = "ent_counter_reset_vw"; ev_write_tag = "ent_counter"; ev_table = list("ev_value"=0)},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"zb" = (/obj/map_ent/trigger_button{ev_tag = "ent_counter_reset_relay"},/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/obj/map_ent/info_maptext{ev_text = "reset"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"zI" = (/obj/map_ent/logic_timer{ev_tag = "ent_light_timer"; ev_wait = 20; tag = "ent_timer"; ev_activate_at_startup = 0},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"zU" = (/obj/map_ent/logic_relay{tag = "ent_counter_reset_relay"; ev_tags = list("ent_counter_reset_vw","ent_counter_wv")},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"zV" = (/obj/map_ent/info_maptext{ev_text = "func_light"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"BM" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_light"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Cs" = (/obj/machinery/button{pixel_y = -32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_say_in_radio"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) "CC" = (/turf/space,/area/engineering/sublevel_access) -"Dm" = (/obj/map_ent/logic_relay{tag = "ent_bool_relay"; ev_tags = list("ent_bool_reg","ent_bool_wv")},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"EG" = (/obj/map_ent/info_counter{tag = "ent_counter"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"EQ" = (/obj/map_ent/info_maptext{ev_text = "with ev_unique"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Ge" = (/obj/map_ent/func_light{ev_color = "#e04040"; tag = "ent_light_timer"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Gu" = (/obj/map_ent/info_maptext{ev_text = "logic_relay"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"GM" = (/obj/machinery/power/debug_items/infinite_generator,/obj/structure/cable,/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"GX" = (/obj/map_ent/func_smoke{tag = "ent_smoke"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"HI" = (/obj/map_ent/info_maptext{ev_text = "func_say_in_radio"},/obj/machinery/light,/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Is" = (/obj/map_ent/info_maptext{ev_text = "func_spawn"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Iv" = (/obj/map_ent/func_rand_spawn{ev_paths = list(/obj/effect/decal/cleanable/blood/gibs,/obj/item/remains/human); tag = "ent_rand_spawn"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Ke" = (/obj/map_ent/trigger_button{ev_tag = "ent_spawn_u"},/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"KM" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_sfx"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"KO" = (/obj/map_ent/func_spawn{tag = "ent_spawn"; ev_target = /obj/item/reagent_containers/food/donut},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) +"Dm" = (/obj/map_ent/logic_relay{tag = "ent_bool_relay"; ev_tags = list("ent_bool_reg","ent_bool_wv")},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"EG" = (/obj/map_ent/info_counter{tag = "ent_counter"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"EQ" = (/obj/map_ent/info_maptext{ev_text = "with ev_unique"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Ge" = (/obj/map_ent/func_light{ev_color = "#e04040"; tag = "ent_light_timer"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Gu" = (/obj/map_ent/info_maptext{ev_text = "logic_relay"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"GM" = (/obj/machinery/power/debug_items/infinite_generator,/obj/structure/cable,/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"GX" = (/obj/map_ent/func_smoke{tag = "ent_smoke"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"HI" = (/obj/map_ent/info_maptext{ev_text = "func_say_in_radio"},/obj/machinery/light,/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Is" = (/obj/map_ent/info_maptext{ev_text = "func_spawn"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Iv" = (/obj/map_ent/func_rand_spawn{ev_paths = list(/obj/effect/decal/cleanable/blood/gibs,/obj/item/remains/human); tag = "ent_rand_spawn"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Ke" = (/obj/map_ent/trigger_button{ev_tag = "ent_spawn_u"},/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"KM" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_sfx"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"KO" = (/obj/map_ent/func_spawn{tag = "ent_spawn"; ev_target = /obj/item/reagent_containers/food/donut},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) "Lm" = (/turf/simulated/wall/r_wall,/area/engineering/sublevel_access) -"LM" = (/obj/map_ent/info_maptext{ev_text = "info_counter"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) +"LM" = (/obj/map_ent/info_maptext{ev_text = "info_counter"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) "Ml" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/engineering/sublevel_access) -"MP" = (/obj/map_ent/func_proc_call{tag = "env_die_user"; ev_proc_name = "death"; ev_args = list(show_dead_message="You didn't think fast chucklenut")},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"MX" = (/obj/map_ent/logic_relay{tag = "ent_gib_relay"; ev_tags = list("ent_gibber_wv","ent_cow_gibber","ent_cow_timer")},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Nw" = (/obj/map_ent/func_strcat{tag = "ent_concat"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) +"MP" = (/obj/map_ent/func_proc_call{tag = "env_die_user"; ev_proc_name = "death"; ev_args = list(show_dead_message="You didn't think fast chucklenut")},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"MX" = (/obj/map_ent/logic_relay{tag = "ent_gib_relay"; ev_tags = list("ent_gibber_wv","ent_cow_gibber","ent_cow_timer")},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Nw" = (/obj/map_ent/func_strcat{tag = "ent_concat"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) "NE" = (/obj/map_ent/func_load_map{ev_map_path = 'maps/example/clown_shuttle.dmm'; tag = "ent_load_map"},/turf/space,/area/engineering/sublevel_access) -"PX" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Rj" = (/obj/map_ent/trigger_button{ev_tag = "ent_smoke"},/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"RN" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Sb" = (/obj/machinery/light{dir = 1; tag = "ind_light"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Tr" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_relay"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"TI" = (/obj/map_ent/info_maptext{ev_text = "func_rand_spawn"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Uj" = (/obj/map_ent/logic_timer{tag = "ent_cow_timer"; ev_wait = 40; ev_tag = "ent_cow_spawner"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Uw" = (/obj/map_ent{tag = "ent_showcase_tp_dest"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"UB" = (/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/obj/map_ent/trigger_button{ev_tag = "ent_bool_relay"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Vk" = (/obj/map_ent/info_maptext{ev_text = "COUNTER"; tag = "ent_counter_text"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"VF" = (/obj/map_ent/logic_relay{tag = "ent_concat_relay"; ev_tags = list("ent_string_concat_wv","ent_counter_concat_wv","ent_maptext_wv")},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Wd" = (/obj/map_ent/info_bool{tag = "ent_bool_reg"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"WA" = (/obj/map_ent/func_write_var{ev_read_tag = "ent_cow_spawner"; ev_write_tag = "ent_cow_gibber"; tag = "ent_gibber_wv"; ev_table = list("ev_tag"="ev_spawned")},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"WP" = (/obj/map_ent/info_maptext{ev_text = "func_sparks"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"WT" = (/obj/map_ent/func_light{ev_color = "#e04040"; tag = "ent_rel_light"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"XO" = (/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/obj/map_ent/trigger_button{ev_tag = "ent_rand_spawn"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"YB" = (/obj/map_ent/info_maptext{ev_text = "func_sfx"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"YJ" = (/obj/map_ent/func_sparks{tag = "ent_sparks"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"YL" = (/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/obj/map_ent/trigger_button{ev_tag = "ent_counter_relay"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"YQ" = (/obj/map_ent/info_string{tag = "ent_string"; ev_value = "hello, world!"},/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) -"Zi" = (/obj/map_ent/func_write_var{tag = "ent_counter_concat_wv"; ev_read_tag = "ent_counter"; ev_write_tag = "ent_concat"; ev_table = list("ev_rvalue"="ev_value"); ev_activate_writer = 1},/obj/machinery/light,/turf/simulated/floor/tiled/rough,/area/engineering/sublevel_access) +"PX" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Rj" = (/obj/map_ent/trigger_button{ev_tag = "ent_smoke"},/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"RN" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Sb" = (/obj/machinery/light{dir = 1; tag = "ind_light"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Tr" = (/obj/machinery/button{pixel_y = 32; _wifi_id = -1},/obj/map_ent/trigger_button{ev_tag = "ent_relay"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"TI" = (/obj/map_ent/info_maptext{ev_text = "func_rand_spawn"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Uj" = (/obj/map_ent/logic_timer{tag = "ent_cow_timer"; ev_wait = 40; ev_tag = "ent_cow_spawner"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Uw" = (/obj/map_ent{tag = "ent_showcase_tp_dest"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"UB" = (/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/obj/map_ent/trigger_button{ev_tag = "ent_bool_relay"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Vk" = (/obj/map_ent/info_maptext{ev_text = "COUNTER"; tag = "ent_counter_text"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"VF" = (/obj/map_ent/logic_relay{tag = "ent_concat_relay"; ev_tags = list("ent_string_concat_wv","ent_counter_concat_wv","ent_maptext_wv")},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Wd" = (/obj/map_ent/info_bool{tag = "ent_bool_reg"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"WA" = (/obj/map_ent/func_write_var{ev_read_tag = "ent_cow_spawner"; ev_write_tag = "ent_cow_gibber"; tag = "ent_gibber_wv"; ev_table = list("ev_tag"="ev_spawned")},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"WP" = (/obj/map_ent/info_maptext{ev_text = "func_sparks"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"WT" = (/obj/map_ent/func_light{ev_color = "#e04040"; tag = "ent_rel_light"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"XO" = (/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/obj/map_ent/trigger_button{ev_tag = "ent_rand_spawn"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"YB" = (/obj/map_ent/info_maptext{ev_text = "func_sfx"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"YJ" = (/obj/map_ent/func_sparks{tag = "ent_sparks"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"YL" = (/obj/machinery/button{pixel_y = -32; _wifi_id = -1; dir = 1},/obj/map_ent/trigger_button{ev_tag = "ent_counter_relay"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"YQ" = (/obj/map_ent/info_string{tag = "ent_string"; ev_value = "hello, world!"},/turf/simulated/floor/tiled,/area/engineering/sublevel_access) +"Zi" = (/obj/map_ent/func_write_var{tag = "ent_counter_concat_wv"; ev_read_tag = "ent_counter"; ev_write_tag = "ent_concat"; ev_table = list("ev_rvalue"="ev_value"); ev_activate_writer = 1},/obj/machinery/light,/turf/simulated/floor/tiled,/area/engineering/sublevel_access) (1,1,1) = {" fCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfCfC diff --git a/maps/exodus/exodus-1.dmm b/maps/exodus/exodus-1.dmm index 4f987464e54..2c98983d028 100644 --- a/maps/exodus/exodus-1.dmm +++ b/maps/exodus/exodus-1.dmm @@ -92,7 +92,7 @@ "abN" = (/obj/item/extinguisher,/turf/space,/area/space) "abO" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/hydroponics{name = "isolation tray"; closed_system = 1},/obj/effect/floor_decal/industrial/outline/orange,/turf/simulated/floor/tiled/freezer,/area/rnd/xenobiology/xenoflora) "abP" = (/obj/structure/lattice,/turf/simulated/wall,/area/maintenance/underground/dormitories) -"abQ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/barricade/material{layer = 6},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/underground/gateway) +"abQ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/barricade/material,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/underground/gateway) "abR" = (/obj/structure/railing{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/oldflood,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small/hl{dir = 1},/turf/simulated/floor/tiled/rough,/area/quartermaster/storage/under) "abS" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/hydroponics{name = "isolation tray"; closed_system = 1},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/outline/orange,/turf/simulated/floor/tiled/freezer,/area/rnd/xenobiology/xenoflora) "abT" = (/obj/machinery/door/airlock/glass_security{name = "Security Cryogenic Storage"; req_access = list(1)},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/white/rough,/area/maintenance/underground/security_mainhall) @@ -185,7 +185,7 @@ "adC" = (/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater) "adD" = (/obj/effect/floor_decal/corner/grey/three_quarters{dir = 1},/obj/machinery/atm{layer = 3.1; pixel_y = 32},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "adE" = (/obj/structure/mirror{pixel_x = 32},/obj/structure/table/woodentable,/obj/random/clothing/hat,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater) -"adF" = (/obj/structure/barricade/material{layer = 6},/obj/structure/window_frame/rglass,/turf/simulated/floor/plating,/area/maintenance/underground/dormitories) +"adF" = (/obj/structure/barricade/material,/obj/structure/window_frame/rglass,/turf/simulated/floor/plating,/area/maintenance/underground/dormitories) "adG" = (/turf/simulated/wall,/area/crew_quarters/sleep/underg_cabin2) "adH" = (/obj/structure/window_frame/grille,/turf/simulated/floor/plating,/area/crew_quarters/underdorm) "adI" = (/obj/machinery/vending/tool,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/underdorm) @@ -279,7 +279,7 @@ "afs" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/maintenance/underground/EVA) "aft" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/plating,/area/maintenance/underground/EVA) "afu" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/ladder/up,/turf/simulated/floor/plating,/area/maintenance/underground/gateway) -"afv" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_coffee/full,/obj/machinery/light/small/hl{dir = 1},/turf/simulated/floor/trim/wood,/area/rnd/research_under/breakroom) +"afv" = (/obj/structure/table/woodentable,/obj/machinery/light/small/hl{dir = 1},/obj/machinery/coffeemaker,/turf/simulated/floor/trim/wood,/area/rnd/research_under/breakroom) "afw" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/plating,/area/maintenance/underground/dormitories) "afx" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/underground/dormitories) "afy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/effect/floor_decal/corner/grey{dir = 8},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 2},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) @@ -294,13 +294,13 @@ "afH" = (/obj/structure/table/woodentable,/obj/item/paper_bin,/obj/item/pen,/obj/item/book/wiki/detective,/obj/machinery/atmospherics/unary/vent_pump/on{layer = 2.4; level = 2},/turf/simulated/floor/trim/lino,/area/crew_quarters/sleep/underg_cabin3) "afI" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating,/area/maintenance/underground/tool_storage) "afJ" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/underground/EVA) -"afK" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/cabinet,/obj/machinery/light/small/hl{dir = 1},/turf/simulated/floor/plating,/area/crew_quarters/underdorm/sauna) +"afK" = (/obj/machinery/light/small/hl{dir = 1},/obj/structure/closet/secure_closet/personal/empty,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/underdorm/sauna) "afL" = (/obj/structure/table/rack,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/maintenance/underground/dormitories) "afM" = (/obj/effect/floor_decal/corner/grey/three_quarters{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 32},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "afN" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/dark/rough,/area/maintenance/ghetto_main_west) "afO" = (/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater/actor) "afP" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/maintenance/underground/security) -"afQ" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_coffee/full,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater/actor) +"afQ" = (/obj/structure/table/woodentable,/obj/machinery/coffeemaker,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater/actor) "afR" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 9},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater) "afS" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater) "afT" = (/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater) @@ -377,7 +377,7 @@ "ahm" = (/obj/machinery/door/firedoor,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/rough,/area/maintenance/underground/bar) "ahn" = (/obj/effect/floor_decal/rust,/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled/dark,/area/maintenance/underground/security_mainhall) "aho" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater/actor) -"ahp" = (/obj/structure/table/woodentable,/obj/item/storage/box/glasses/square,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater/actor) +"ahp" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/item/reagent_containers/vessel/bottle/syrup_bottle/caramel{pixel_x = 9; pixel_y = 15},/obj/item/reagent_containers/vessel/bottle/syrup_bottle/liqueur{pixel_x = 9},/obj/structure/coffee_condi_display,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater/actor) "ahq" = (/obj/machinery/disposal,/obj/effect/floor_decal/corner/red{dir = 10},/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/dark/rough,/area/maintenance/ghetto_main_west) "ahr" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/rough,/area/maintenance/ghetto_main_west) "ahs" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/floor_decal/corner/red{dir = 4},/turf/simulated/floor/tiled/rough,/area/maintenance/ghetto_main_west) @@ -447,7 +447,7 @@ "aiE" = (/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/underground/port_primary_hallway) "aiF" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/plating,/area/maintenance/underground/port_primary_hallway) "aiG" = (/turf/simulated/wall/r_wall,/area/maintenance/exterior) -"aiH" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/vessel/bucket,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/underdorm/sauna) +"aiH" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/item/reagent_containers/vessel/bucket,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/underdorm/sauna) "aiI" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/underground/central_six) "aiJ" = (/turf/simulated/floor/plating,/area/maintenance/underground/central_six) "aiK" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/plating,/area/maintenance/underground/central_six) @@ -527,7 +527,7 @@ "akg" = (/obj/effect/floor_decal/corner/grey{dir = 5},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/civilian_west{c_tag = "Underground Main - West 2"},/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_main_west) "akh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6; pixel_y = 1},/obj/effect/floor_decal/corner/grey{dir = 5},/obj/structure/cable{icon_state = "2-8"},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_main_west) "aki" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/grey{dir = 5},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_main_west) -"akj" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/machinery/chemical_dispenser/bar_coffee/full,/turf/simulated/floor/natural/grass,/area/hydroponics/lower) +"akj" = (/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/natural/grass,/area/hydroponics/lower) "akk" = (/obj/effect/floor_decal/corner/grey{dir = 5},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_main_west) "akl" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/bed/chair{dir = 1},/obj/effect/floor_decal/corner/red{dir = 8},/obj/machinery/camera/network/civilian_west{dir = 1; c_tag = "Underground Main - West 1"},/turf/simulated/floor/tiled/rough,/area/maintenance/ghetto_main_west) "akm" = (/turf/simulated/wall,/area/maintenance/underground/vaccant_office) @@ -644,7 +644,7 @@ "amt" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/ubarbackroom) "amu" = (/turf/simulated/floor,/area/maintenance/underground/atmospherics) "amv" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/rough,/area/maintenance/ghetto_dockhall) -"amw" = (/obj/machinery/shower{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/structure/window/reinforced{dir = 1},/obj/structure/curtain/open/shower,/obj/effect/decal/cleanable/cobweb{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/item/camera_assembly,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/underdorm/sauna) +"amw" = (/obj/machinery/shower{dir = 8},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/underdorm/sauna) "amx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Clown's Bedroom"; req_one_access = list(43,57)},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/theater/clown) "amy" = (/obj/structure/closet,/obj/effect/decal/cleanable/cobweb{dir = 4},/obj/random/maintenance,/turf/simulated/floor/plating,/area/maintenance/underground/central_two) "amz" = (/obj/effect/floor_decal/spline/fancy{dir = 4},/turf/simulated/floor/tiled/rough,/area/hydroponics/lower) @@ -666,7 +666,7 @@ "amP" = (/obj/effect/floor_decal/oldflood,/obj/effect/decal/cleanable/dirt,/obj/structure/closet/firecloset,/obj/effect/decal/cleanable/cobweb{dir = 1},/turf/simulated/floor/tiled/dark,/area/maintenance/underground/bar) "amQ" = (/obj/effect/floor_decal/corner/grey/three_quarters{dir = 4},/obj/structure/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "amR" = (/obj/structure/closet,/obj/random/maintenance,/obj/random/maintenance,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/oldflood,/obj/effect/decal/cleanable/cobweb{dir = 8},/turf/simulated/floor/tiled/dark,/area/maintenance/underground/bar) -"amS" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/door/firedoor/border_only,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/underground/atmospherics) +"amS" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/door/firedoor/border_only,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/underground/atmospherics) "amT" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/floor_decal/oldflood,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_main) "amU" = (/obj/effect/floor_decal/spline/fancy/corner{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 32},/turf/simulated/floor/tiled/rough,/area/hydroponics/lower) "amV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/grey{dir = 4},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) @@ -977,7 +977,7 @@ "asO" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/rough,/area/maintenance/ghetto_main) "asP" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/oldflood,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/maintenance/ghetto_main) "asQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/trim/carpet,/area/maintenance/ghetto_dorm) -"asR" = (/mob/living/simple_animal/mouse,/obj/structure/bed/pew/pewchapel/left{icon_state = "chair_pewchapel_left_over"; dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/sauna) +"asR" = (/obj/structure/bed/pew/pewchapel/left{icon_state = "chair_pewchapel_left_over"; dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/sauna) "asS" = (/turf/simulated/wall/r_wall,/area/space) "asT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/oldflood,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/maintenance/ghetto_main) "asU" = (/obj/structure/lattice,/turf/simulated/wall,/area/maintenance/underground/library) @@ -1591,7 +1591,7 @@ "aEE" = (/obj/effect/floor_decal/corner/grey/three_quarters{dir = 1},/obj/structure/closet/firecloset,/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "aEF" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/camera/network/civilian_east{dir = 4; c_tag = "Underground Bedroom One"},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/sleep/underg_cabin1) "aEG" = (/obj/effect/floor_decal/corner/purple{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible{dir = 10},/obj/machinery/meter,/turf/simulated/floor/tiled/white/rough,/area/rnd/xenobiology/xenoflora) -"aEH" = (/turf/simulated/floor/plating,/area/crew_quarters/underdorm/sauna) +"aEH" = (/obj/structure/closet/secure_closet/personal/empty,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/underdorm/sauna) "aEI" = (/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/crew_quarters/sleep/underg_cabin2) "aEJ" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/decal/cleanable/dirt,/obj/structure/bed/couch/right/brown{dir = 4},/turf/simulated/floor/trim/carpet/oldred,/area/crew_quarters/sleep/underg_cabin2) "aEK" = (/obj/structure/table/rack,/obj/effect/floor_decal/oldflood,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/airalarm_electronics,/obj/item/screwdriver,/obj/random/maintenance,/obj/random/maintenance,/obj/random/maintenance,/obj/item/storage/box/lights/bulbs/old,/turf/simulated/floor/tiled/dark,/area/maintenance/underground/bar) @@ -1770,13 +1770,13 @@ "aIb" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/alarm{dir = 4; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/rough,/area/maintenance/underground/engineering_lower) "aIc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "aId" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) -"aIe" = (/obj/machinery/door/airlock/external{name = "Port Internal Access"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(11,13); id_tag = 0},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"aIe" = (/obj/machinery/door/airlock/external{name = "Port Internal Access"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(11,13); id_tag = 0},/obj/structure/barricade/material,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "aIf" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/effect/floor_decal/industrial/warning,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "aIg" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) -"aIh" = (/obj/machinery/door/airlock/external{name = "Port External Access"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(11,13); id_tag = 0},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"aIh" = (/obj/machinery/door/airlock/external{name = "Port External Access"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(11,13); id_tag = 0},/obj/structure/barricade/material,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "aIi" = (/obj/effect/decal/remains,/obj/item/wrench,/turf/simulated/floor/plating,/area/space) "aIj" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/vomit,/turf/simulated/floor/plating,/area/space) -"aIk" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{name = "Port Internal Access"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(11,13); id_tag = 0},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"aIk" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{name = "Port Internal Access"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(11,13); id_tag = 0},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "aIl" = (/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable/green{icon_state = "0-8"; d2 = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/trim/wood,/area/medical/psych) "aIm" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/medbay{c_tag = "Underground Medbay Entrance"},/obj/structure/sign/redcross{pixel_y = 32},/obj/effect/floor_decal/corner/white{dir = 1},/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled/rough,/area/maintenance/ghetto_dockhall) "aIn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/camera/network/medbay{c_tag = "Medbay Psychiatrist's Office"},/obj/machinery/button/remote/blast_door{name = "Window Shutters"; desc = "A remote control-switch for shutters."; pixel_y = 25; id = "psychroom"},/turf/simulated/floor/trim/wood,/area/medical/psych) @@ -2028,7 +2028,7 @@ "aMZ" = (/obj/structure/table/steel,/obj/random/firstaid,/turf/simulated/floor/tiled/dark/rough,/area/maintenance/underground/atmospherics) "aNa" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/underground/engineering) "aNb" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6; pixel_y = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) -"aNc" = (/obj/machinery/door/airlock/external{name = "Port External Access"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(11,13); id_tag = 0},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"aNc" = (/obj/machinery/door/airlock/external{name = "Port External Access"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(11,13); id_tag = 0},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "aNd" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) "aNe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/grid/bluegrid,/area/maintenance/sub/relay_station) "aNf" = (/turf/simulated/wall/r_wall,/area/maintenance/underground/engineering) @@ -2156,7 +2156,7 @@ "aPx" = (/obj/structure/sign/poster{pixel_y = -32},/obj/structure/table/standard,/obj/item/material/ashtray,/turf/simulated/floor/tiled/dark/rough,/area/maintenance/ghetto_main_west) "aPy" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 32},/turf/simulated/floor/tiled/dark/rough,/area/maintenance/ghetto_main_west) "aPz" = (/turf/simulated/wall,/area/crew_quarters/underdorm/sauna) -"aPA" = (/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-8"; dir = 1; d2 = 8},/turf/simulated/floor/plating,/area/maintenance/underground/security) +"aPA" = (/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/underground/security) "aPB" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/purple{dir = 9},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/item/storage/box/monkeycubes,/turf/simulated/floor/tiled/white/rough,/area/rnd/xenobiology/xenoflora_storage) "aPC" = (/obj/structure/table/darkwood_reinforced,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/item/material/ashtray/bronze,/turf/simulated/floor/trim/carpet/oldred,/area/crew_quarters/underdorm) "aPD" = (/obj/effect/floor_decal/corner/grey/three_quarters,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) @@ -2164,7 +2164,7 @@ "aPF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{name = "Containment Blast Doors"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "xenobio1"},/obj/structure/cable/green{icon_state = "0-4"; d2 = 4},/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/rnd/xenobiology) "aPG" = (/obj/effect/floor_decal/corner/grey{dir = 10},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "aPH" = (/obj/effect/floor_decal/corner/grey/three_quarters{dir = 4},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) -"aPI" = (/obj/structure/barricade/material{layer = 6},/obj/machinery/door/airlock{name = "Abandoned Room"},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating,/area/crew_quarters/underdorm/sauna) +"aPI" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/door/airlock{name = "Sauna"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/underdorm/sauna) "aPJ" = (/obj/effect/floor_decal/corner/grey/three_quarters,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "aPK" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/underground/locker_room) "aPL" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/underground/locker_room) @@ -2195,7 +2195,7 @@ "aQk" = (/obj/item/modular_computer/console/preset/security,/turf/simulated/floor/trim/darkwood,/area/maintenance/underground/security_breakroom) "aQl" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 1},/turf/simulated/floor/tiled/dark,/area/maintenance/underground/security_mainhall) "aQm" = (/obj/effect/floor_decal/corner/grey{dir = 10},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) -"aQn" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/nettlesoup,/obj/effect/decal/cleanable/dirt,/obj/item/trash/sosjerky,/obj/effect/decal/cleanable/cobweb,/obj/random/trash,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/sauna) +"aQn" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/obj/item/reagent_containers/vessel/bottle/small/beer,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/sauna) "aQo" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/power/apc{name = "east bump"; dir = 4; pixel_x = 24},/obj/structure/cable{icon_state = "0-8"; d2 = 8},/obj/effect/floor_decal/rust,/obj/structure/table/steel,/obj/item/material/ashtray,/obj/random/smokes,/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled/dark,/area/maintenance/underground/security_mainhall) "aQp" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/underground/central_three) "aQq" = (/turf/simulated/floor/tiled/white/rough,/area/rnd/xenobiology/xenoflora_storage) @@ -2205,7 +2205,7 @@ "aQu" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "aQv" = (/obj/effect/floor_decal/corner/grey{dir = 5},/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "aQw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{icon_state = "0-8"; d2 = 8},/obj/machinery/door/blast/regular{name = "Containment Blast Doors"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "xenobio6"},/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/rnd/xenobiology) -"aQx" = (/obj/structure/bed/pew/pewchapel/left,/obj/effect/decal/cleanable/dirt,/obj/item/trash/cans/cola,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/sauna) +"aQx" = (/obj/structure/bed/pew/pewchapel/left,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/sauna) "aQy" = (/obj/structure/bed/pew/pewchapel/middle,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/sauna) "aQz" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/bed/pew/pewchapel/right,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/sauna) "aQA" = (/obj/effect/floor_decal/corner/grey{dir = 5},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) @@ -2213,22 +2213,21 @@ "aQC" = (/obj/random/tech_supply,/obj/random/tech_supply,/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/rough,/area/maintenance/underground/atmospherics) "aQD" = (/obj/structure/table/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/hud/standard/meson,/turf/simulated/floor/plating,/area/maintenance/underground/security_west) "aQF" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/blast/regular{name = "Biohazard Blast Doors"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 2; id = "xenobotwindow2"},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora_storage) -"aQG" = (/obj/machinery/space_heater,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small/hl{dir = 8},/turf/simulated/floor/trim/wood,/area/crew_quarters/underdorm/sauna) +"aQG" = (/obj/machinery/light/small/hl{dir = 8},/obj/machinery/sauna,/turf/simulated/floor/trim/wood,/area/crew_quarters/underdorm/sauna) "aQH" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/rough,/area/maintenance/ghetto_dockhall) "aQI" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/rough,/area/maintenance/ghetto_dockhall) -"aQJ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken3"},/area/crew_quarters/underdorm/sauna) +"aQJ" = (/turf/simulated/floor/trim/wood,/area/crew_quarters/underdorm/sauna) "aQK" = (/obj/effect/decal/cleanable/mucus,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/underground/locker_room) -"aQL" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken5"},/area/crew_quarters/underdorm/sauna) +"aQL" = (/obj/structure/table/woodentable,/obj/item/towel/random,/obj/item/towel/random,/obj/machinery/light_switch,/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/underdorm/sauna) "aQM" = (/obj/structure/table/rack{dir = 8},/obj/item/module/power_control,/obj/item/cell{maxcharge = 2000},/obj/effect/decal/cleanable/cobweb2{icon_state = "cobweb1"},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/button/remote/blast_door{name = "Warehouse Door Control"; pixel_x = 4; pixel_y = 24; id = "qm_warehouse"; req_access = list(31)},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/floor_decal/oldflood,/turf/simulated/floor/tiled/rough,/area/quartermaster/storage/under/secure) -"aQN" = (/obj/machinery/door/window/eastleft,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken2"},/area/crew_quarters/underdorm/sauna) +"aQN" = (/obj/machinery/door/window/eastleft,/turf/simulated/floor/trim/wood,/area/crew_quarters/underdorm/sauna) "aQO" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/floor_decal/oldflood,/turf/simulated/floor/tiled/rough,/area/quartermaster/storage/under/secure) "aQP" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/floor_decal/oldflood,/turf/simulated/floor/tiled/rough,/area/quartermaster/storage/under/secure) -"aQQ" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/crew_quarters/underdorm/sauna) "aQR" = (/obj/structure/table/rack{dir = 8},/obj/random/maintenance,/obj/random/maintenance,/obj/random/tech_supply,/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/floor_decal/oldflood,/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm{pixel_y = 24},/obj/machinery/light/small/hl{dir = 4},/turf/simulated/floor/tiled/rough,/area/quartermaster/storage/under/secure) "aQS" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/sign/poster{pixel_x = -32},/turf/simulated/floor/tiled/rough,/area/quartermaster/storage/under) "aQT" = (/obj/effect/floor_decal/corner/grey{dir = 5},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "aQU" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/engineering/grav_generator) -"aQV" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bottle/vodka,/obj/effect/decal/cleanable/dirt,/obj/random/trash,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/sauna) +"aQV" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bottle/vodka,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/vessel/bucket,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/sauna) "aQW" = (/mob/living/simple_animal/mouse,/obj/item/clothing/mask/rubber,/turf/simulated/floor/trim/wood{icon_state = "wood_broken3"},/area/maintenance/ghetto_dorm) "aQX" = (/obj/machinery/light/small{dir = 1},/obj/machinery/recharge_station,/turf/simulated/floor/tiled/freezer,/area/medical/patient_wing/washroom) "aQY" = (/obj/machinery/door/airlock/medical{name = "Cubicle 2"; icon = 'icons/obj/doors/doorviro.dmi'; icon_state = "door_open"; id_tag = "cubicle2"},/obj/effect/floor_decal/spline/plain/grey{dir = 8},/turf/simulated/floor/tiled/freezer,/area/medical/patient_wing/washroom) @@ -2266,7 +2265,7 @@ "aRE" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/rough,/area/maintenance/underground/research_misc) "aRF" = (/obj/effect/floor_decal/corner/grey{dir = 8},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "aRG" = (/obj/effect/floor_decal/corner/grey{dir = 6},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/alarm{dir = 8; pixel_x = 24},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 2},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) -"aRH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm/sauna) +"aRH" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/underdorm/sauna) "aRI" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_access = list(12)},/turf/simulated/floor/plating,/area/maintenance/underground/security) "aRJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/plating,/area/maintenance/underground/locker_room) "aRK" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/bed/pew/pewchapel/right{icon_state = "chair_pewchapel_right_over"; dir = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/underdorm/sauna) @@ -2275,7 +2274,7 @@ "aRN" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/corner/brown{dir = 6},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/floor_decal/oldflood,/turf/simulated/floor/tiled/rough,/area/quartermaster/storage/under) "aRO" = (/obj/effect/floor_decal/corner/grey{dir = 9},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "aRP" = (/turf/simulated/wall/r_wall,/area/maintenance/underground/security_lobby) -"aRQ" = (/obj/effect/decal/cleanable/dirt,/obj/item/stack/cable_coil/single,/obj/item/trash/semki,/obj/machinery/power/apc/derelict{pixel_y = -24},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/underdorm/sauna) +"aRQ" = (/obj/structure/cable,/obj/structure/table/woodentable,/obj/item/towel/random,/obj/item/towel/random,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/machinery/power/apc{name = "south bump"; pixel_y = -24},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/underdorm/sauna) "aRR" = (/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/obj/effect/floor_decal/oldflood,/turf/simulated/floor/tiled/rough,/area/quartermaster/storage/under/secure) "aRS" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_access = list(31)},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/quartermaster/storage/under/secure) "aRT" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom{dir = 8; pixel_x = 25},/turf/simulated/floor/tiled/white/rough,/area/rnd/xenobiology/xenoflora_storage) @@ -2304,7 +2303,7 @@ "aSq" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/white/rough,/area/rnd/xenobiology/xenoflora_storage) "aSr" = (/obj/machinery/light{dir = 1},/obj/machinery/vending/coffee,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/underdorm) "aSs" = (/obj/random/obstruction,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/random/trash,/obj/random/trash,/turf/simulated/floor/plating,/area/maintenance/underground/dormitories) -"aSt" = (/obj/structure/barricade/material{layer = 6},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/underground/dormitories) +"aSt" = (/obj/structure/barricade/material,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/underground/dormitories) "aSu" = (/obj/machinery/firealarm{dir = 4; pixel_x = 26},/obj/machinery/vending/snack,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/underdorm) "aSv" = (/obj/effect/floor_decal/corner/grey{dir = 9},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) "aSw" = (/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/corner/grey{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled/dark,/area/crew_quarters/underdorm) @@ -2890,7 +2889,7 @@ "hHb" = (/turf/simulated/wall/r_wall,/area/rnd/xenobiology/dorm) "hIb" = (/turf/simulated/wall,/area/rnd/xenobiology/dorm) "hPb" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/machinery/light_switch{dir = 1; pixel_x = 10; pixel_y = 26},/turf/simulated/floor/trim/wood,/area/rnd/research_under/breakroom) -"hQb" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/item/storage/box/cups,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/trim/wood,/area/rnd/research_under/breakroom) +"hQb" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/item/storage/box/cups,/obj/machinery/alarm{pixel_y = 24},/obj/item/storage/box/coffeemaking_kit,/turf/simulated/floor/trim/wood,/area/rnd/research_under/breakroom) "hSb" = (/obj/machinery/vending/coffee,/obj/structure/sign/poster{pixel_x = 32},/turf/simulated/floor/trim/wood,/area/rnd/research_under/breakroom) "hTb" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/washing_machine,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/rnd/research_under/breakroom) "hUb" = (/obj/structure/table/standard,/obj/structure/bedsheetbin,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/tiled/freezer,/area/rnd/research_under/breakroom) @@ -3102,8 +3101,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaetadtaeuaevaevaevaevadfadfadfadfadfadfadfajkajkajkadfadfadfadfadfaPeaexcRbaexabPacTacTacTacTacTacTacTacTaRUacTaPwaPxaPyaRtaPDaPGaPHaRtaPJbcDaPSaPWaQaaQcaQfaQmaQraQtaQuafzaQvaQAaQTaRaaeSaujaujaeSawgawgaeQaacaaaaaaaaaaacalNakjxwvairagDaisalKalMajWagDairxwvakDalNaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaeTaeTaeTanyanyaeTaeTaeTaeTanyanyaeTaeTaetaetaeVaeWaevaacaacaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaexaOTcSbabQabYaSsaStadgadgadgadgadgaTVaefacTacTaPzaPzaPzaPzaPIaPzaPzabKacZabKabKadGadGadJadGaRtaReaRnaRAaRAaRDaRFaRGaeSaujaujaeSaeFaeHaeQaacaacaaaaaaalNalNajMairairairadKalKamzakKairairairakLalNalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaeTafoafpafpafpafpafpafqafpafpafpafpafpafpafrafsaftaevaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaacaacaexafucTbaexacTacTacTabZacVabXacWacTaSDaSGabXacTaQnaQxaQyaQzaRHaEHafKabKaeGabKaeEadGagRaeJaFVafEafEafGafGafEaRtaROaRZaeSaeSaeSaeSagyaeFaeQaacaacaacaacalNaluairairairankalBamAamUalBankairairairaohalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaeTafIaeTaeTaeTaeTaeTaeTaeTaeTaeTaeTaeTaeTaeTaevafJaevaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaacaexdgbcUbadyaacaaaacTadFaezadFadFacTafwafxabXacTaQGaQJaQLaQNaQQaFnaiHabKaozagKahEadGahFajHakyafEaljafHamKauGaRtaSnaSoaSpaSraSuaeSagzaheaeQaeQaeQaeQaacalNammairairanvalBalBanlanlalBalBaFYairairammalNaaaaaaaaaaaaaaaaaaaaaaaaapbapbapbasSasSasSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaaaaaaaaaagbagcagdagcaaaaaaaaaaaaaaaaacaaaaaaaacaaaaaaaaaageagfageaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyadycSbadyaacaacacTadwaumaNQaecacTakGaSEagIacTaQVasRaRdaRKaRQaFnamwabKaCFabKabKadGaCWaExaEyafEaEAamBaECaEDbczaSvaSwaSBaUsaWxahmanpanqanransagEaSHaaaalNammairairanxaoPantanuanuanwaoPanYairairammalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacasSasSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaeTafIaeTaeTaeTaeTaeTaeTaeTaeTaeTaeTaeTaeTaeTaevafJaevaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaacaexdgbcUbadyaacaaaacTadFaezadFadFacTafwafxabXacTaQGaQJaQJaQNaRHaFnaiHabKaozagKahEadGahFajHakyafEaljafHamKauGaRtaSnaSoaSpaSraSuaeSagzaheaeQaeQaeQaeQaacalNammairairanvalBalBanlanlalBalBaFYairairammalNaaaaaaaaaaaaaaaaaaaaaaaaapbapbapbasSasSasSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaaaaaaaaaagbagcagdagcaaaaaaaaaaaaaaaaacaaaaaaaacaaaaaaaaaageagfageaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyadycSbadyaacaacacTadwaumaNQaecacTakGaSEagIacTaQVasRaRdaRKaRQaQLamwabKaCFabKabKadGaCWaExaEyafEaEAamBaECaEDbczaSvaSwaSBaUsaWxahmanpanqanransagEaSHaaaalNammairairanxaoPantanuanuanwaoPanYairairammalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacasSasSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaagbagFagGagcaaaaaaaaaaaaaaaaacaaaaaaaacaaaaaaaaaageagHageaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadyadxadyaaaaacacTaedaeeaOFaPfacTafLamqaSFacTaPzaPzaPzaPzaPzaPzaPzabKaEFaeraeLadGaEIaEJapcafEaEOaERaESaETaRtaWEaXAaXGaYuaPHahYanAanCanGanIamPaSHaaaalNammxwvairaisanKalKanOanPamzaogajWairxwvammalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaacaacaacasSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacagbahfahgagcaaaaaaaibaibaibaibaibaibaacaaaaaaageageahiageaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacahjcVbahjaaaaaaacTapvapvacTacTacTacTabXaefapvaaaaVmabnaacaaaaacaaaapJafFaeYafmadGaFgaFjaFkafEafEafEaFlaFlaRtaYCaZtamQjYbjYbjYbjYbjYbanQanRaeSaeSaacalNaluairairaisanKalKanSanTamzanUajWairairaohalNaacaacaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaacasSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagbahAahBagcaacaacaibaYbaZbaicaLcaibaibaibaibaibahGagHageaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacahjcXbahjaacaaaabnabnaacaaaaaaaPracTacTaefanzaaaaacaaaaacaaaaacaaaapXapXapXapXadGaFqaFraFsafEaFtaFvaFwaFxaRtasyasyasyjYbanmamWailjYbanVanWaeSaacaacalNalNammairaoGaoPaoaaobaodaofaoPapGairammalNalNaaaaacaacaaaaaaaaaaaaaaaaaaaacaacaacaacaaaaaaaacaacasSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus/exodus-2.dmm b/maps/exodus/exodus-2.dmm index 0059fe0d199..230cef45c33 100644 --- a/maps/exodus/exodus-2.dmm +++ b/maps/exodus/exodus-2.dmm @@ -827,7 +827,7 @@ "apU" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "apV" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "apW" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/security_starboard) -"apX" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/airlock/engineering{name = "Security Substation"; req_one_access = list(1,11,24)},/turf/simulated/floor/plating,/area/maintenance/substation/security) +"apX" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/airlock/engineering{name = "Security Substation"; req_one_access = list(1,11,24)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/substation/security) "apY" = (/obj/structure/bed/chair/office/dark,/obj/effect/landmark/start/crew/warden,/turf/simulated/floor/tiled/dark/rough,/area/security/warden) "apZ" = (/obj/structure/bookcase,/obj/item/book/wiki/detective,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/trim/lino,/area/security/detectives_office) "aqa" = (/obj/effect/decal/cleanable/blood/oil,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/security_starboard) @@ -918,7 +918,7 @@ "arH" = (/obj/structure/table/woodentable,/obj/machinery/photocopier/faxmachine,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/trim/darkwood,/area/security/meeting) "arI" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/trim/wood,/area/security/meeting) "arJ" = (/obj/machinery/firealarm{dir = 1; pixel_y = 24},/obj/structure/closet/lawcloset,/turf/simulated/floor/trim/wood,/area/security/meeting) -"arK" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/door/airlock/engineering{name = "Security Substation"; req_one_access = list(1,11,24)},/turf/simulated/floor/plating,/area/maintenance/substation/security) +"arK" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/door/airlock/engineering{name = "Security Substation"; req_one_access = list(1,11,24)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/substation/security) "arL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/rough,/area/hallway/primary/seclobby) "arM" = (/obj/machinery/power/solar{name = "Port Auxiliary Solar Array"; id = "auxsolareast"},/obj/structure/cable/yellow{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/auxport) "arN" = (/obj/item/caution/cone,/turf/simulated/floor/plating,/area/maintenance/security_port) @@ -1118,7 +1118,7 @@ "avz" = (/turf/simulated/wall,/area/security/meeting) "avA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access = list(1)},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/dark/rough,/area/security/brigmorgue) "avB" = (/obj/structure/morgue,/turf/simulated/floor/tiled/dark/rough,/area/security/brigmorgue) -"avC" = (/obj/machinery/door/airlock/glass_medical{name = "Medical Voidsuits"; req_one_access = list(5)},/turf/simulated/floor/tiled/rough,/area/ai_monitored/storage/eva) +"avC" = (/obj/machinery/door/airlock/glass_medical{name = "Medical Voidsuits"; req_one_access = list(5)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/rough,/area/ai_monitored/storage/eva) "avD" = (/turf/simulated/floor/tiled/rough,/area/hallway/primary/seclobby) "avE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/tiled/rough,/area/hallway/primary/seclobby) "avF" = (/obj/effect/floor_decal/spline/fancy{dir = 9},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8; layer = 2.4; level = 2},/turf/simulated/floor/tiled/white/rough,/area/crew_quarters/fitness) @@ -1138,7 +1138,7 @@ "avT" = (/obj/structure/window_frame/grille/rglass,/obj/machinery/door/blast/regular{name = "Security Blast Door"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "Prison Lockdown"},/obj/structure/cable{icon_state = "0-8"; d2 = 8},/turf/simulated/floor/plating,/area/security/prison) "avU" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/rough,/area/security/prison) "avV" = (/obj/structure/window_frame/grille/rglass,/obj/machinery/door/blast/regular{name = "Security Blast Door"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "Prison Lockdown"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/prison) -"avW" = (/obj/structure/window_frame/grille/rglass,/obj/machinery/door/blast/regular{name = "Security Blast Door"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "Prison Lockdown"},/obj/structure/cable{icon_state = "0-8"; dir = 1; d2 = 8},/obj/structure/cable/cyan{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating,/area/security/prison) +"avW" = (/obj/structure/window_frame/grille/rglass,/obj/machinery/door/blast/regular{name = "Security Blast Door"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "Prison Lockdown"},/obj/structure/cable/cyan{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable{icon_state = "0-8"; d2 = 8},/turf/simulated/floor/plating,/area/security/prison) "avX" = (/obj/structure/closet/crate,/obj/item/reagent_containers/vessel/bottle/wine,/turf/simulated/floor/plating,/area/maintenance/security_port) "avY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/rough,/area/security/prison) "avZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/security/brig/interrogation) @@ -1304,7 +1304,7 @@ "azd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/effect/floor_decal/rust,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark/rough,/area/security/brigswstorage) "aze" = (/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/trim/carpet/purple,/area/crew_quarters/sleep/dorms) "azf" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/trim/carpet/purple,/area/crew_quarters/sleep/dorms) -"azg" = (/turf/simulated/floor/reinforced{name = "Holodeck Projector Floor"},/area/holodeck/alphadeck) +"azg" = (/turf/simulated/floor/reinforced{name = "Holodeck Projector Floor"},/area/holodeck) "azh" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/machinery/camera/network/security{c_tag = "Primary Hallway Fore - North"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/tiled/rough,/area/hallway/primary/fore) "azi" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/corner/red{dir = 1},/turf/simulated/floor/tiled/rough,/area/hallway/primary/fore) "azj" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/captain) @@ -1343,7 +1343,7 @@ "azQ" = (/obj/structure/undies_wardrobe,/turf/simulated/floor/trim/wood,/area/crew_quarters/sleep/cabin2) "azR" = (/turf/simulated/wall,/area/crew_quarters/sleep/cabin3) "azS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/security_starboard) -"azT" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/airlock/engineering{name = "Civilian East Substation"; req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_east) +"azT" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/airlock/engineering{name = "Civilian East Substation"; req_one_access = list(11,24)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/substation/civilian_east) "azU" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_east) "azV" = (/obj/structure/cable{icon_state = "0-8"; d2 = 8},/obj/machinery/power/terminal{dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -24},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/camera/network/engineering{dir = 1; c_tag = "Civilian East Substation"},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_east) "azW" = (/obj/structure/window_frame/grille/rglass,/obj/machinery/door/blast/regular{name = "Security Blast Door"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "Prison Gate"},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/security/brig) @@ -1693,8 +1693,8 @@ "aGC" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/plating,/area/maintenance/dormitory) "aGD" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/sleep) "aGE" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/civilian_east{dir = 4; c_tag = "Dormitory Holodeck Control"},/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_9"},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/fitness) -"aGF" = (/obj/machinery/computer/HolodeckControl{linkedholodeck_area = /area/holodeck/alphadeck; programs_list_id = "ExodusMainPrograms"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/fitness) -"aGG" = (/obj/structure/window_frame/grille,/turf/simulated/floor/plating,/area/crew_quarters/fitness) +"aGF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/computer/holodeck,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/fitness) +"aGG" = (/mob/living/simple_animal/corgi/Ian,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/crew_quarters/heads/hop) "aGH" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/rglass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "aGI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/secondary/entry/pods) "aGJ" = (/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{pixel_x = -25; pixel_y = 30; frequency = 1380; id_tag = "escape_pod_1_berth"; tag_door = "escape_pod_1_berth_hatch"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/rough,/area/hallway/secondary/entry/pods) @@ -1801,7 +1801,7 @@ "aIG" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/binary/pump/on{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/evahallway) "aIH" = (/obj/structure/closet{name = "Evidence Closet"},/turf/simulated/floor/trim/lino,/area/security/detectives_office) "aII" = (/obj/machinery/power/apc{name = "south bump"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/trim/lino,/area/security/detectives_office) -"aIJ" = (/obj/machinery/computer/arcade,/obj/machinery/light/small/hl{dir = 4},/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) +"aIJ" = (/obj/machinery/light/small/hl{dir = 4},/obj/machinery/vending/cigars,/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) "aIK" = (/obj/structure/filingcabinet,/turf/simulated/floor/trim/lino,/area/security/detectives_office) "aIL" = (/obj/structure/bed/couch/right/brown{dir = 4},/obj/machinery/camera/network/civilian_east{c_tag = "Private Bedroom Four"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/trim/carpet/blue2,/area/crew_quarters/sleep/cabin4) "aIM" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/maintenance/evahallway) @@ -2280,7 +2280,7 @@ "aRR" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/item/inflatable_dispenser,/obj/item/storage/briefcase/inflatable,/obj/item/storage/briefcase/inflatable,/obj/item/storage/briefcase/inflatable,/turf/simulated/floor/tiled/rough,/area/ai_monitored/storage/eva) "aRS" = (/obj/machinery/light{dir = 8},/obj/structure/table/reinforced,/obj/item/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/multitool,/turf/simulated/floor/tiled/rough,/area/ai_monitored/storage/eva) "aRT" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters/open{name = "Chapel Privacy Shutters"; dir = 4; id = "chapel"},/turf/simulated/floor/plating,/area/chapel/office) -"aRU" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Voidsuits"; req_one_access = list(11,24)},/turf/simulated/floor/tiled/rough,/area/ai_monitored/storage/eva) +"aRU" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Voidsuits"; req_one_access = list(11,24)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/rough,/area/ai_monitored/storage/eva) "aRV" = (/obj/effect/floor_decal/corner/blue{dir = 5},/obj/machinery/suit_storage_unit/standard_unit,/obj/effect/floor_decal/industrial/box,/turf/simulated/floor/tiled/dark/rough,/area/ai_monitored/storage/eva) "aRW" = (/obj/effect/floor_decal/corner/blue{dir = 5},/obj/effect/floor_decal/industrial/box,/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor/tiled/dark/rough,/area/ai_monitored/storage/eva) "aRX" = (/obj/machinery/smartfridge/secure/food,/obj/machinery/door/blast/shutters{name = "South Kitchen Shutter"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 2; id = "kitchen1"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) @@ -2459,7 +2459,7 @@ "aVo" = (/obj/machinery/power/apc{name = "east bump"; dir = 4; pixel_x = 24},/obj/structure/cable/green,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet) "aVp" = (/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/disposalpipe/segment,/turf/simulated/floor/trim/carpet/red,/area/crew_quarters/bar) "aVq" = (/turf/simulated/floor/trim/carpet/red,/area/crew_quarters/bar) -"aVr" = (/obj/structure/sign/warning/secure_area/cctv{pixel_x = 32},/obj/structure/closet/secure_closet/bar,/obj/item/gun/projectile/shotgun/doublebarrel,/obj/item/storage/box/shotgun/beanbags,/turf/simulated/floor/trim/carpet/red,/area/crew_quarters/bar) +"aVr" = (/obj/structure/sign/warning/secure_area/cctv{pixel_x = 32},/obj/structure/closet/secure_closet/bar,/obj/item/gun/projectile/shotgun/doublebarrel,/obj/item/storage/box/shotgun/beanbags,/obj/item/storage/box/coffeemaking_kit,/turf/simulated/floor/trim/carpet/red,/area/crew_quarters/bar) "aVs" = (/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/obj/structure/cable/green{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/maintenance/bar) "aVt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/maintenance/bar) "aVu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/cable/green{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/plating,/area/maintenance/bar) @@ -2623,7 +2623,7 @@ "aYw" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet) "aYx" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28},/obj/random/medical/lite,/obj/random/medical/lite,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet) "aYy" = (/obj/machinery/atm{pixel_x = -28},/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) -"aYz" = (/obj/structure/bed/couch/right/sofa{dir = 8},/obj/machinery/newscaster{dir = 8; pixel_x = 32},/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) +"aYz" = (/obj/item/flame/lighter/zippo,/obj/structure/table/darkwood_reinforced,/obj/random/smokes,/obj/machinery/newscaster{dir = 8; pixel_x = 32},/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) "aYA" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Bar"; req_access = list(25)},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/trim/carpet/red,/area/crew_quarters/bar) "aYB" = (/turf/simulated/wall,/area/crew_quarters/mess) "aYC" = (/obj/machinery/door/airlock/maintenance{name = "Bar Maintenance"; req_one_access = list(12,25,28)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/mess) @@ -2693,7 +2693,7 @@ "aZO" = (/obj/structure/table/woodentable,/obj/random/snack,/obj/item/plant_pot/random,/turf/simulated/floor/trim/carpet,/area/hallway/secondary/entry/starboard) "aZP" = (/obj/structure/cable/green{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/effect/floor_decal/plaque,/turf/simulated/floor/tiled/rough,/area/hallway/secondary/entry/starboard) "aZQ" = (/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_9"},/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) -"aZR" = (/obj/structure/bed/couch/left/sofa{dir = 8},/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) +"aZR" = (/obj/machinery/vending/snack,/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) "aZS" = (/obj/structure/disposalpipe/segment,/obj/machinery/requests_console{name = "Bar RC"; pixel_x = -32; department = "Bar"; departmentType = 2},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/trim/carpet/red,/area/crew_quarters/bar) "aZT" = (/obj/machinery/smartfridge/drinks,/obj/machinery/light/small/hl{dir = 1},/turf/simulated/floor/trim/carpet/red,/area/crew_quarters/bar) "aZU" = (/obj/structure/cable/green{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/flora/pottedplant/tropicalflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) @@ -2701,7 +2701,7 @@ "aZW" = (/obj/structure/table/darkwood_reinforced,/obj/machinery/reagentgrinder,/turf/simulated/floor/trim/carpet/red,/area/crew_quarters/bar) "aZX" = (/obj/machinery/light/small/hl{dir = 8},/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) "aZY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 8},/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) -"aZZ" = (/obj/machinery/vending/cigars,/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) +"aZZ" = (/obj/structure/table/darkwood_reinforced,/obj/machinery/coffeemaker,/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) "baa" = (/obj/structure/kitchenspike,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) "bab" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) "bac" = (/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) @@ -2809,7 +2809,7 @@ "bca" = (/obj/machinery/light{dir = 1},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/trim/carpet/oldred,/area/crew_quarters/mess) "bcb" = (/obj/machinery/media/jukebox,/obj/machinery/light{dir = 1},/turf/simulated/floor/trim/carpet/oldred,/area/crew_quarters/mess) "bcc" = (/obj/machinery/door/window{name = "Bar"; req_one_access = list(25); base_state = "right"},/obj/machinery/camera/network/exodus{c_tag = "Bar Central"},/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/trim/carpet/red,/area/crew_quarters/bar) -"bcd" = (/obj/item/flame/lighter/zippo,/obj/structure/table/darkwood_reinforced,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/alarm{dir = 8; pixel_x = 24},/obj/random/smokes,/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) +"bcd" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/alarm{dir = 8; pixel_x = 24},/obj/structure/table/darkwood_reinforced,/obj/item/reagent_containers/vessel/bottle/syrup_bottle/caramel{pixel_x = 9; pixel_y = 15},/obj/item/reagent_containers/vessel/bottle/syrup_bottle/liqueur{pixel_x = 9},/obj/item/reagent_containers/food/grown/coffee,/obj/item/reagent_containers/food/grown/coffee,/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) "bce" = (/obj/machinery/light/small{dir = 8},/obj/structure/kitchenspike,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) "bcf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/obj/structure/cable/green{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) "bcg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) @@ -2901,7 +2901,7 @@ "bdO" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/secondary/entry/port) "bdP" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/rough,/area/hallway/secondary/entry/port) "bdQ" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/rough,/area/hallway/secondary/entry/port) -"bdR" = (/obj/machinery/vending/snack,/obj/machinery/light/small/hl{dir = 4},/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) +"bdR" = (/obj/machinery/light/small/hl{dir = 4},/obj/structure/table/darkwood_reinforced,/obj/structure/coffee_condi_display,/turf/simulated/floor/trim/wood,/area/crew_quarters/mess) "bdS" = (/obj/item/stool/bar_new/padded,/turf/simulated/floor/trim/carpet/oldred,/area/crew_quarters/mess) "bdT" = (/obj/machinery/door/blast/shutters/open{dir = 8; id = "barshut1"},/obj/structure/table/darkwood_reinforced,/obj/item/plant_pot/random,/turf/simulated/floor/trim/carpet/red,/area/crew_quarters/bar) "bdU" = (/obj/structure/table/darkwood_reinforced,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/simulated/floor/trim/carpet/red,/area/crew_quarters/bar) @@ -4063,7 +4063,7 @@ "bAg" = (/obj/structure/table/reinforced,/obj/item/packageWrap,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atm{pixel_x = -28},/obj/effect/floor_decal/spline/fancy{icon_state = "spline_fancy"; dir = 4},/obj/structure/disposalpipe/segment{icon_state = "conpipe-c"; dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/heads/hop) "bAh" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/crew_quarters/heads/hop) "bAi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/crew_quarters/heads/hop) -"bAj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/crew_quarters/heads/hop) +"bAj" = (/obj/structure/window_frame/grille/rglass,/obj/machinery/door/firedoor/border_only,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/brig) "bAk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/crew_quarters/heads/hop) "bAl" = (/obj/structure/table/woodentable,/obj/random_multi/single_item/captains_spare_id{weight = 10},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/captain) "bAm" = (/obj/structure/table/rack,/obj/item/tank/jetpack/oxygen,/obj/machinery/newscaster/security_unit{pixel_x = -32},/obj/item/clothing/suit/space/void/captain/prepared,/obj/item/clothing/mask/gas/captain,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/captain) @@ -4071,7 +4071,7 @@ "bAo" = (/obj/machinery/keycard_auth{pixel_y = -24},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/captain) "bAp" = (/obj/machinery/door/window{name = "Captain's Desk Door"; icon_state = "right"; dir = 4; req_access = list(20); base_state = "right"},/obj/machinery/light,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/captain) "bAq" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/crew_quarters/heads/hop) -"bAr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/hatch{name = "Captain's Quarters"; req_access = list(20)},/turf/simulated/floor/trim/wood,/area/crew_quarters/captain) +"bAr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/hatch{name = "Captain's Quarters"; req_access = list(20)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/trim/wood,/area/crew_quarters/captain) "bAs" = (/obj/structure/displaycase,/turf/simulated/floor/trim/carpet,/area/crew_quarters/captain) "bAt" = (/obj/structure/cable/cyan{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) "bAu" = (/obj/structure/cable/cyan{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai) @@ -4269,7 +4269,7 @@ "bEe" = (/obj/effect/floor_decal/corner/purple{dir = 5},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/table/woodentable,/obj/item/folder/white{pixel_x = 4; pixel_y = -1},/obj/item/plant_pot/random{pixel_x = -8},/turf/simulated/floor/tiled/white/rough,/area/assembly/robotics) "bEf" = (/obj/structure/window_frame/rglass,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/break_room) "bEg" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/item/paper_bin{pixel_x = 4; pixel_y = -1},/obj/item/pen,/obj/machinery/door/window/eastright{name = "Robotics Desk"; icon_state = "left"; dir = 2; req_access = list(29); base_state = "left"},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{name = "Research Division Blast Doors"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "researchlockdown"},/turf/simulated/floor/plating,/area/assembly/robotics) -"bEh" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/visible/supply,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/door/airlock/hatch{name = "Captain's Quarters"; req_access = list(20)},/turf/simulated/floor/plating,/area/crew_quarters/captain) +"bEh" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/visible/supply,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/door/airlock/hatch{name = "Captain's Quarters"; req_access = list(20)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/captain) "bEi" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/bridge/meeting_room) "bEj" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/engineering/engine_monitoring) "bEk" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/southright{name = "Research and Development Desk"; req_access = list(7)},/obj/structure/table/standard{name = "plastic table frame"},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{name = "Research Division Blast Doors"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "researchlockdown"},/turf/simulated/floor/plating,/area/rnd/lab) @@ -4315,7 +4315,7 @@ "bEY" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/plating,/area/maintenance/substation/command) "bEZ" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/rough,/area/bridge/meeting_room) "bFa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/substation/command) -"bFb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/structure/cable/green{icon_state = "0-2"; d2 = 2},/obj/structure/cable/green,/obj/structure/cable/green{icon_state = "0-8"; d2 = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/substation/command) +"bFb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable/green{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/plating,/area/maintenance/substation/command) "bFc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/substation/command) "bFd" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/shutters{name = "Medbay Emergency Quarantine Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 2; id = "medbayrecquar"},/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/rough,/area/medical/reception) "bFe" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/shutters{name = "Medbay Emergency Quarantine Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 2; id = "medbayrecquar"},/obj/machinery/power/apc{name = "south bump"; pixel_y = -24},/obj/structure/cable/green{icon_state = "0-8"; d2 = 8},/obj/machinery/button/remote/blast_door{name = "EMT Door Control"; dir = 8; pixel_x = 24; pixel_y = 6; id = "emtroom"; req_access = list(5)},/turf/simulated/floor/tiled/rough,/area/medical/reception) @@ -4356,7 +4356,7 @@ "bFN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/assembly/chargebay) "bFO" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/hallway/primary/starboard) "bFP" = (/obj/effect/landmark/start/crew/scientist,/obj/item/stool/padded,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white/rough,/area/rnd/lab) -"bFQ" = (/obj/structure/disposalpipe/junction,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_two) +"bFQ" = (/obj/structure/disposalpipe/junction,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_two) "bFR" = (/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable/green{icon_state = "0-2"; d2 = 2},/obj/machinery/camera/network/research{c_tag = "Research - R&D Lab"},/obj/effect/floor_decal/corner/purple{dir = 1},/turf/simulated/floor/tiled/white/rough,/area/rnd/lab) "bFS" = (/turf/simulated/floor/tiled/white/rough,/area/rnd/lab) "bFT" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/white/rough,/area/rnd/lab) @@ -4399,7 +4399,7 @@ "bGE" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_fore) "bGF" = (/obj/structure/table/woodentable,/obj/item/storage/box/matches,/obj/item/clothing/mask/smokable/cigarette/cigar,/obj/item/reagent_containers/vessel/flask{pixel_x = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/trim/carpet,/area/crew_quarters/captain) "bGG" = (/obj/machinery/door/window/eastright{name = "Shower"; icon_state = "left"; dir = 1; base_state = "left"},/obj/machinery/shower{icon_state = "shower"; dir = 4; pixel_x = 5; pixel_y = -5},/obj/item/soap/deluxe,/obj/item/bikehorn/rubberducky,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/captain) -"bGH" = (/obj/structure/sign/warning/secure_area{pixel_x = -32},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/visible/supply,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/door/airlock/hatch{name = "Teleporter Maintenance"; req_access = list(17)},/turf/simulated/floor/plating,/area/teleporter) +"bGH" = (/obj/structure/sign/warning/secure_area{pixel_x = -32},/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/visible/supply,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/door/airlock/hatch{name = "Teleporter Maintenance"; req_access = list(17)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/teleporter) "bGI" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/prefab/hand_teleporter,/turf/simulated/floor/tiled/rough,/area/teleporter) "bGJ" = (/obj/structure/window_frame/grille/rglass,/obj/structure/cable/cyan{icon_state = "0-4"; d2 = 4},/obj/structure/cable/cyan{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/turret_protected/ai_upload) "bGK" = (/obj/item/aiModule/protectStation,/obj/item/aiModule/quarantine,/obj/item/aiModule/reset,/obj/item/aiModule/nanotrasen,/obj/structure/table/standard,/obj/structure/cable/cyan{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai_upload) @@ -4503,7 +4503,7 @@ "bIE" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/floor_decal/spline/plain/black,/obj/effect/floor_decal/spline/plain/black{dir = 8},/obj/effect/landmark/start/antags/xeno,/obj/effect/floor_decal/spline/plain/corner/black{dir = 1},/turf/simulated/floor/tiled/dark,/area/medical/morgue) "bIF" = (/obj/machinery/cell_charger,/obj/structure/table/steel,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/plating,/area/maintenance/substation/command) "bIG" = (/obj/item/storage/toolbox/electrical,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/table/steel,/obj/item/tank/emergency/oxygen,/obj/item/tank/emergency/oxygen,/turf/simulated/floor/plating,/area/maintenance/substation/command) -"bIH" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_command{name = "Conference Room"; req_access = list(19)},/turf/simulated/floor/tiled/dark/rough,/area/bridge/meeting_room) +"bIH" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_command{name = "Conference Room"; req_access = list(19)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/dark/rough,/area/bridge/meeting_room) "bII" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/floor_decal/corner/brown{dir = 1},/obj/structure/sign/cargo{pixel_x = -32},/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_fore) "bIJ" = (/obj/machinery/navbeacon/wayfinding/med,/turf/simulated/floor/tiled/white/rough,/area/medical/reception) "bIK" = (/obj/structure/bed/roller,/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/machinery/light{dir = 4},/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/white/rough,/area/medical/reception) @@ -4550,7 +4550,7 @@ "bJz" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/underground/research_utility_room) "bJA" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/underground/research_utility_room) "bJB" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/chapel/main) -"bJC" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "2-8"},/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_two) +"bJC" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable{icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_two) "bJD" = (/obj/item/modular_computer/console/preset/supply,/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_fore) "bJE" = (/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/effect/floor_decal/spline/plain/black,/obj/machinery/light/he,/obj/effect/floor_decal/spline/plain/corner/black{dir = 4},/turf/simulated/floor/tiled/dark,/area/medical/morgue) "bJF" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{dir = 8; pixel_x = 25; pixel_y = -8; frequency = 1380; req_one_access = list(13,48); id_tag = "mining_shuttle"; tag_door = "mining_shuttle_hatch"},/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/hatch/orange,/obj/structure/closet/crate,/turf/simulated/floor/shuttle/pod,/area/shuttle/mining/station) @@ -5889,7 +5889,7 @@ "cjm" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/rough/airless,/area/shuttle/research/station) "cjn" = (/obj/effect/floor_decal/corner/brown{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_three) "cjo" = (/turf/simulated/wall/r_wall,/area/quartermaster/miningdock) -"cjp" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_three) +"cjp" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_three) "cjq" = (/obj/effect/floor_decal/corner/brown{dir = 5},/obj/structure/disposalpipe/sortjunction{name = "QM Office"; dir = 8; sortType = "QM Office"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_three) "cjr" = (/obj/effect/floor_decal/corner/brown{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_three) "cjs" = (/obj/effect/floor_decal/corner/brown{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/primary/central_three) @@ -6036,7 +6036,7 @@ "cmd" = (/obj/structure/table/steel,/obj/item/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/stock_parts/matter_bin,/obj/item/stock_parts/matter_bin,/obj/item/stock_parts/manipulator,/obj/item/stock_parts/scanning_module,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/research_shuttle) "cme" = (/turf/simulated/wall/r_wall,/area/maintenance/cargo) "cmf" = (/obj/random/junk,/obj/machinery/atmospherics/pipe/manifold/hidden{icon_state = "map"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/cargo) -"cmg" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/binary/passive_gate/on{dir = 8},/obj/machinery/power/apc{name = "south bump"; pixel_y = -24},/obj/structure/cable{icon_state = "0-8"; dir = 1; d2 = 8},/turf/simulated/floor/plating,/area/maintenance/cargo) +"cmg" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/binary/passive_gate/on{dir = 8},/obj/machinery/power/apc{name = "south bump"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/cargo) "cmh" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/wall,/area/maintenance/cargo) "cmi" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{icon_state = "0-4"; d2 = 4},/obj/structure/cable/green{icon_state = "0-2"; d2 = 2},/obj/structure/cable/green,/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/storage/tech) "cmj" = (/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable/green{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/chief) @@ -6292,7 +6292,7 @@ "cqZ" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/white/rough,/area/crew_quarters/medbreak) "cra" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/random/pottedplant,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white/rough,/area/crew_quarters/medbreak) "crb" = (/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/paleblue{dir = 8},/turf/simulated/floor/tiled/white/rough,/area/medical/medbay4) -"crc" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/reinforced/hull,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/research_starboard) +"crc" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/reinforced/hull,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/research_starboard) "crd" = (/obj/effect/floor_decal/corner/paleblue,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay4) "cre" = (/obj/effect/floor_decal/corner/paleblue,/obj/structure/cable/green{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white/rough,/area/medical/medbay4) "crf" = (/obj/effect/floor_decal/spline/fancy/corner,/obj/structure/flora/ausbushes/ppflowers,/obj/structure/flora/ausbushes/sunnybush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/medical/patient_wing/garden) @@ -6524,7 +6524,7 @@ "cvx" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/warning/corner,/obj/random/maintenance,/obj/random/maintenance,/obj/random/maintenance,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/research_starboard) "cvy" = (/obj/random/obstruction,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/research_port) "cvz" = (/obj/random/maintenance,/obj/random/maintenance,/turf/simulated/floor/plating,/area/maintenance/research_starboard) -"cvA" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_one_access = list(7,12)},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/research_starboard) +"cvA" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_one_access = list(7,12)},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/research_starboard) "cvB" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/plating,/area/maintenance/research_starboard) "cvC" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/maintenance/research_starboard) "cvD" = (/obj/machinery/access_button{name = "interior access button"; dir = 8; pixel_x = 22; pixel_y = 22; frequency = 1379; command = "cycle_interior"; req_one_access = list(7,13); master_tag = "toxin_test_airlock"},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_starboard) @@ -7961,11 +7961,11 @@ "ezm" = (/obj/structure/window/miningpod,/obj/structure/window_frame/grille,/turf/simulated/floor/plating/rough,/area/shuttle/security/station) "eBH" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/navbeacon/wayfinding/court,/turf/simulated/floor/trim/wood,/area/security/meeting) "eEN" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "security_dock_pump"},/turf/simulated/floor/tiled/dark/rough,/area/security/brig) -"eIW" = (/obj/structure/window_frame/grille/rglass,/obj/structure/cable{icon_state = "0-8"; dir = 1; d2 = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/security/brig) "eOv" = (/obj/structure/bed/chair/shuttle/red{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/shuttle/security/station) "fJK" = (/obj/structure/table/woodentable,/obj/random/music_tape,/turf/simulated/floor/trim/wood,/area/library) "fOf" = (/obj/structure/lattice,/turf/simulated/wall/r_wall,/area/security/armory) "gru" = (/obj/structure/bed/chair/shuttle/red,/obj/effect/floor_decal/rust,/turf/simulated/floor/shuttle/darkred,/area/shuttle/security/station) +"hca" = (/obj/machinery/computer/guestpass,/turf/simulated/wall,/area/quartermaster/office) "hme" = (/turf/space,/turf/simulated/shuttle/wall/corner/security/nw,/area/shuttle/security/station) "hFH" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/rough,/area/shuttle/security/station) "ifB" = (/turf/space,/turf/simulated/shuttle/wall/corner/security/se,/area/shuttle/security/station) @@ -8083,7 +8083,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjacjacjacjacjacjacjacjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgadgadgadgaaaaaaadgadgadgadgadgadgadgadgadgaaaaaaadgadgadgadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaakaalaalaalaalaalaalaalaaaaaasQhouvouvouvvxcvxcezmifBabVabVabVadWadYadZaeaaeeaemaeraezabVabdabeaaVaaVaapaasadcadcaaradcaaradcadcaataaIabOadcadcaalaakaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagYagYamMagYagYaaaaaaaaaaaaaaaaaaaaaaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaaaaaaaaaaaaaaaaaaaaaaiJaiJaiJaiJaiJaiJaiJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjacjacjacjacjacjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgadgadgadgaaaaaaadgadgadgadgaeQadgadgadgadgaaaaaaadgadgadgadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaajaalaalaaaaaaaaaaalaaaaalaaloGMacMacMacMacMtqVtqVnbtacMabVaeAaeBaeCabkaeDaeFaeGaeRafdabVabVabfabjablabnaapaasadcaaqaawaaLaaMadCadEadXaebadXackadcadcadcaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagYagYagYagYagYaaaaaaaaaaaaaaaaaaaaaaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaaaaaaaaaaaaaaaaaaaaaaiJaiJaiJaiJaiJaiJaiJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjacjacjacjacjacjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaajaalaalaaaaaaaaaaaaaalaaaaaaaaaaalaaaaaaaaaiwHjMfwfPpJCqjpabVafeaazafgafgafqafsafyafGafHafIabVabxabzabBabMaapaasadcaaOaaPaaQaaRabhaegaehaeiaehaekaePaczadcaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagYagYagYaaaaaaaaaaaaaaaaaaaaaaaaaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaaaaaaaaaaaaaaaaaaaaaaiJaiJaiJaiJaiJaiJaiJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjacjacjacjacjacjacjacjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaajaalaalaalaaaaaaaaaaalaalaalaaaaaaaalaalaaaaaaeIWlxVeENehlvdPabVaffadyafJafKafMafNafUafYaggagiabVabRacFacNacCaapaasadcabiabwabEabIadCaeZadXafbadXafcadXafkabQaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaaaaaaaaaaaaaaaaaaaaaaiJaiJaiJaiJaiJaiJaiJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjacjacjacjacjacjacjacjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaajaalaalaalaaaaaaaaaaalaalaalaaaaaaaalaalaaaaaabAjlxVeENehlvdPabVaffadyafJafKafMafNafUafYaggagiabVabRacFacNacCaapaasadcabiabwabEabIadCaeZadXafbadXafcadXafkabQaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaaaaaaaaaaaaaaaaaaaaaaiJaiJaiJaiJaiJaiJaiJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjacjacjacjacjacjacjacjacjacjacjacjacjacjaaaaaaaaaaaaaaaaaaaaaadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaajaalaalaaaaalaalaaaaaaaalaiiaiiaiiaiiafnafnabSabWafnafnvcrdKulAIagdagdagdagnagdagdagdagdaguagBabVabVaapadbaeLaapaapaapadcadcabJabNabPabYafmadXadXadXadXadXafFadcaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaaaaaaaaaaaaaaaaaaaaaaiJaiJaiJaiJaiJaiJaiJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjacjacjacjacjacjacjacjacjacjacjacjacjacjaaaaaaaaaaaaaaaaaaaaaadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaalaalaaaaaaaaxaaxaaxaaxaaxaiiagJagKagLaeKaaoaaBaaCadiadTacdacfacXagdagNatwagQagTagVagZagdacnacwacyacAadqacEacIagAaaGaaSaaXadcacRacTacUadCaeZadXafbadXafOadXafPabQaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaanaaaaaaaaaaaaaaaaaaaaaaiJaiJaiJaiJaiJaiJaiJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjacjacjacjacjacjacjacjacjacjacjacjacjacjaaaaaaaaaaaaaaaaaaaaaadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaalaaaaaaaaaaaxaaYaaZabmaboaiiahqahrahuaeKadBafxpTHahtafhuDfacWaddagdahwahGahzahEahGahIagdadfadhadjadkadmadpaefagAabpabqabtadcadGabEadIadJagkagyagyagyagzadXaeYadcaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanaanaanaanaanaaaaanaanaanaanaanaaaaanaanaanaanaanaaaaaaaaaaaaaaaaaaaaaaiJaiJaiJaiJaiJaiJaiJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8118,7 +8118,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarmarmar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarmarmarmarmarmarmarmarmarmarmarmarmarmarmarmarmarmarmaalavRawWavQawWavRawYawXawYavRaalaaaaaaaakaaaasUasUasUasUasUaaaaqhaaaasUasUasUasUasUaaaaakaaaaaaaaaaaaaaaaaaaalaaaaaaaaaaalaDwaxEayzaxbaxbaAfaBUaBVaBWaxbaxbaxbaxbaxbaxbaxbaxbaCpaCqatEatEaDDaDDaDDatEatJatEatEaCCaCPaCQaxmanAanAanAaxnanAanAanAamXandandandandanpawraxuaxuaFRawqaFSaFTazbatAazgazgazgazgazgazgazgazgazgazgaCgaalaalaalaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaatxatxatxatxatxaalaqPaalatxatxatxatxatxaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarmarmarmarmarmarmarmarmarmarmarmarmarmarmarmarmarmaalavRawWaxCawWavRawYaxDawYavRaalaaaaaaaajaaaaaaaaaaalaaaaaaaaaaqhaaaaaaaaaaalaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaalaaaaaaaaaaalaDwazkaxaaxbawZaFWaFXaxHaxJankapZaxMaxNaxOaodaxQaxbaCJaxYatEaxgaxhauYaxSaxTaxVaxXatEaCRaCSaCYaxmanvanyanyanBanyanyanFaGaanAanAanAanAanAaGbanAanAanAanAanAayqatAatAazgazgazgazgazgazgazgazgazgazgatRapsaDGaDGaDGapsaaaaaaaaaaaaaalaalaaaaaaaaaaaaaaaaajaaaaaaaaaaalaaaaaaaaaaqPaaaaaaaaaaalaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarmarmarmarmarmarmarmarmarmarmarmarmarmarmarmaalaalavRauKayuauKavRaLQayxaLQavRaalaalaaaaajaajaakaalaalaalaalaalaqhaalaalaalaalaalaakaajaajaaaaaaaaaaoaaaaaaaaalaaaaaaaaaaalaDwaGgaGhaxbaAnaGjayEaGkayDayEayFaxPayHayIayJasCaxbaEGaxYatEayPayQayRayRayRazoazuaDDaCCaCPaCQaxmaoIaGlaGlaGlaGlaGlatocWkawtaBpaDKaDLaDMayiaEaxiRaGnaEbawtaGsaGtaGuazgazgazgazgazgazgazgazgazgazgatRaymayoaypaGvapsaysaEdaEdaEdaysaalaalaaaaaaaaaaaaaajaajaakaalaalaalaalaalaqPaalaalaalaalaalaakaajaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarmarmarmarmarmarmarmarmarmarmarmarmaaaaaaaalavRavRazZaALaAbazZazZaANaAbavRavRaalaaaaaaaalaaaaaaaaaaaaaaaaalaqhaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaalaalaalaalapaaVUaGxaxbazmaGyaGzaGAaGBayBaxHazqazrazrazsaztaxbaszavpatEazwazxazyazzazyazAazBaDDaCCaCPaDiaxmaGCayXayYayZazaayXaGDayTawtaGoazeazfazDazEazFazFazIaAyawtaGEaGFaGGazgazgazgazgazgazgazgazgazgazgatRazJazKazLazMapsazNazOazPazQazRazRazRaEraEraaaaaaaaaaaaaaaaaaaaaaaaaaaaalaqPaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoXaoXaoXaoXaoXaaaaaaaaaaaaaoXaoXaoXaoXaoXaoXaaaaaaaaaaaaaoXaoXaoXaoXaoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarmarmarmarmarmarmarmarmarmarmarmarmaaaaaaaalavRavRazZaALaAbazZazZaANaAbavRavRaalaaaaaaaalaaaaaaaaaaaaaaaaalaqhaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaalaalaalaalapaaVUaGxaxbazmaGyaGzaGAaGBayBaxHazqazrazrazsaztaxbaszavpatEazwazxazyazzazyazAazBaDDaCCaCPaDiaxmaGCayXayYayZazaayXaGDayTawtaGoazeazfazDazEazFazFazIaAyawtaGEaGFaNEazgazgazgazgazgazgazgazgazgazgatRazJazKazLazMapsazNazOazPazQazRazRazRaEraEraaaaaaaaaaaaaaaaaaaaaaaaaaaaalaqPaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoXaoXaoXaoXaoXaaaaaaaaaaaaaoXaoXaoXaoXaoXaoXaaaaaaaaaaaaaoXaoXaoXaoXaoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaalaExaFPaHoaExaalaaaaaaaaaaaaaaaaalaEzaAVaGIaGJaEHaEIaEWaGNaGOaGPaEzaalaalaalaalaaaaaaaaaaaaaaaaalaqhaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaHwpGnavpavpavpavpaGQaxbaGRaGyaAgaGSaigaAjaAkaAlaAmaFZaAoaApaxbavqaIOatEaArazyaAsaAtaAuazyaEFaDDaCCaCPaDjaxmaGUazTazUazVaAwaAxaEXaGWawtaGpaACaGqawtaGraGXaGraGYaHaawtaHbaHcatRcGqcGqcGqcGqaFeaFfcGqcGqcGqcGqatRaHfaDBaHgatIapsaHhaGiaHjaHkazRaHlaHmaHnaEraaaaaaaaaaaaaaaaaaaaaaaaaalaalaqPaalaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoXaoXaoXaoXaoXaaaaaaaaaaaaaoXaoXaoXaoXaoXaoXaaaaaaaaaaaaaoXaoXaoXaoXaoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaExaIpaIqaExaalaaaaaaaaaaaaaaaaalaEzaHpaHqaHraHsaHsaHtaGOaHqaHqaEzbHcaHubHcaalaaaaaaaaaaaaaalaalaqhaalaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaHxaHyaHzaHAaIEaHBaHCaxbaHDaHEaHFaHGaHHaHIaHJaxbaxbaxbaxbaxbaxbaHXaHYatEaHLaHMaHNaHOaHPciFcpbatEaDkaCPaDlaxmaHRaGlaGlaGlaGlaGlaFgaGWawtaGZaHUaHTawtawtawtawtawtaFjawtaDZaGHatRaDmaDnaDnaDoaFkaFlaDEaDPaDWaDXatRapsapsaIiapsapsaysaysaIjaIkazRaIlaImaInaEraaaaaaaaaaaaaaaaaaaaaaaaaalaFQaIoaFQaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoXaoXaoXaoXaoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoXaoXaoXaoXaoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaExaJBaJCaExaalaalaalaalaalaalaalazZaIraIsaItaItaItaIuaIvaIwaIxazZaIyaHvbMjaalaalaalaalaalaalaIzaIBaIzaalaalaalaalaalaalaalaalaalaalaalaalaalaalaHwavpaJzaKGavpaIFaIGaxbaIHaIIaFYaxJaIKaHiaxbaxbatHaIMaINaJPavpavqaIXatEatEcpgatEatEatEatEatEatEaDYaCPaEcaxmaIQayTaGKaGLaGMaGTaGVaHdawtaJyaHeaJyawtaHSaHWaIccGqaEeaEkaElaEmatRaIdaIRaISaISaITaIUaIVaIWaISaIZaJaaJbaJgaJhaJiaJjaJkaysaJuaysazRaJvaJwaJxazRaalaaaaaaaaaaaaaaaaaaaaaaalaMnaLXaMnaalaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoXaoXaoXaoXaoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoXaoXaoXaoXaoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8149,12 +8149,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbe aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKaaaaaaaaaaaaaaabwgbwhbrgbrgbrgbrgbrgbnSbnSbnSbwhbwhbwibsBbsUbwibnFbnFbnFbnFbnFbwlbnFbnFbnFbwmcRTbpAbrsbthbwnbuNbwobwpbwpbwpbwpbwpbwpbtpbqnbrmbiEbkybtsbttbsVbsWbsXbsYbsZbtvbuYbwvbtabtbbtcbtdbtqbdEbBdbBLbyobtIbunbvdbvgbvgbvgbvgbvebvsbtIbtGbvhbvibwNbvjbwPbvkbvmbtGbLTbvtbrVbvwbvwbvubvxbLTbBMbvvbrKbtCaPibtJbtLbtObqHbqHbtPbqHbqwbqHbuibujbqHbqHbqHbuDbuEbuFbuGbuHbuHbuHbuHbuHbuHbuIbqHbqHbqHbuRbuTbuUbuTbuTbuVbuXbqHbvzbuybvAbvBbvDbvEbvQcWXbvSbvTbvDbvUbrTbvVbufbqHbqHbvWbvXbvUbrTbvYbvQbvZbvSbvTbwabwbbkbbkmbkjboobopbopbopboobkjbkmbsAbdeaaaaalaaaaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaalaaaamaaalaaaaDNaoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKaaaaaaaaaaaaaaaaaaaaaaalaaaaaaaaaaalbnSbuzbxMbxNbwdbwebwebwfbwjbwkbxUbxVbxVbxWbxXbxYbxZbxVbyabpBbybbycbpAbrsbrsbrsbydbuObwpbnGbyfbygbzPbwpbyhbwqbwrbiEbykbylbttbwsbwubwwbwxbwybtvbuYbyrbtabtbbtbbtbbwzbdEbBNbpobyobtIcWmbwHbwIbwIbwIbvfbvybwJbtIbtGbyCbwGbyEbyFbyEbvkbyGbtGbLTbwMbrVbNAbNAbwObwQbwSbAVbvvbrLbwCbxabxabxbbxcbxcbxcbxdbxebxfbxgbxgbxgbxhbxgbxgbxgbxgbxibxjbxkbxkbxkbxlbxcbxcbxmbxcbxcbxcbxnbxobxpbxqbxrbxsbxtbxgbxubxkbxlbxcbxcbxcbxccWWbxcbxcbxcbxcbxcbxcbxvbxwbxxbxybxzbxwbxwbxwbxwbxAbxBbxBbxBbxCbxDbxEbxEbxEbxEbxFbxEbxEbxEbxEbxGbdeaaaaalaaaaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaalaalaalaalaalaOvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKaaabeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKaaabeKbeKbeKbeKbeKaaaaalaaaaaaaaaaalbnSbxObzzbzAbxHbxIbxJbxKbxLbxPbwibzHbzHbzHbzIbzHbzHbzHbzJbzKbzLbycbzMbrscRVbzNbzObwobwpcRWaVWbiCcRWbwpbiEbiEbzQbiEbzRbtsbttbxQbxRbxSbxTbyibtvbzXbvcbyjbtbbtbbtbbymbdEbCsbpobyobtIbwTbwUbwXbyzbyAbBTbBUbyBbtIbwYbyvbywbyEbyxbyEbvibAnbyybLTbyDbrVbyHbNAbwObyIbyJbAVbvvbtBbyqbysbytbyPbyQbombyRbySbyTbyUbyVbombombombombyWbyXbqHbyYbyZbqHbqHbzabzbbzcbqHbzdbzebzfbzgbzhbzabzibzjbzkbzlbqHbqHbqHbqHbzmbznbyZbqHbzacWXbqHbqHbqHbqHbqHbqHbqHbqHbvzbqHbqHbqHbqHbyZbzabzobqHbznbzpbwbbzqbzrbzsbzsbzsbwcbzsbzsbzsbzubzvbdeaaaaalaaaaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaalaaaaZlaalaaaaDNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKaaabeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKaaabeKbeKbeKbeKbeKaaabwgbwhbrgbnSbnSbnSbBhbBibqPbnSbnSbwhbwgbzwbzxbvJbzHbBmbBnbBobBpbBqbBrbBsbBtbBubBvbBwbrsbrsbrsbuNbBxbwpbBycSabBybBybBybBzcWnbBAbrFbBBbBCbBDbzybzBbzCbzDbzEbtvbBJbvcbzFbtbbzGbtbbzSbofbCsbpobCtbtIbyKbAdbAebAfbyAbBTbBUbwEbtGbtGbBWbBXbyNbyObAcbBXbCbbtGbLTbAgbAhbAibAjbAkbAqbBObCZbvvbBSbdFbTWaWMboPboPboPboPboPboPboPbtnboPoQQoQQoQQboPbzWbzYboPboPboPboPboPboPboPboPboPboPbvKboPboPboPboPboPbCmboPbqHbzZbzZbzZbAabCpbCpbCpbCpbCpbAwbAwbAwbAxbAybqHbAzbAAbABbACbAwcXebCpbCpbCpbCwboPboPboPbaQbaQbaQbvLbvMbBlbaQbClbClbaQbCxbCybaQaaaaalaaaaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaalaaaamaaalaaaaDJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKaaabeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKaaabeKbeKbeKbeKbeKaaabwgbwhbrgbnSbnSbnSbBhbBibqPbnSbnSbwhbwgbzwbzxbvJbzHbBmbBnbBobBpbBqbBrbBsbBtbBubBvbBwbrsbrsbrsbuNbBxbwpbBycSabBybBybBybBzcWnbBAbrFbBBbBCbBDbzybzBbzCbzDbzEbtvbBJbvcbzFbtbbzGbtbbzSbofbCsbpobCtbtIbyKbAdbAebAfbyAbBTbBUbwEbtGbtGbBWbBXbyNbyObAcbBXbCbbtGbLTbAgbAhbAiaGGbAkbAqbBObCZbvvbBSbdFbTWaWMboPboPboPboPboPboPboPbtnboPoQQoQQoQQboPbzWbzYboPboPboPboPboPboPboPboPboPboPbvKboPboPboPboPboPbCmboPbqHbzZbzZbzZbAabCpbCpbCpbCpbCpbAwbAwbAwbAxbAybqHbAzbAAbABbACbAwcXebCpbCpbCpbCwboPboPboPbaQbaQbaQbvLbvMbBlbaQbClbClbaQbCxbCybaQaaaaalaaaaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaalaaaamaaalaaaaDJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKaaaaalbCDbCDbCDbCDbCDbCDbCDbCDbCDbCDaaabwhbADbzxbCzbzHbCGbKobLtbLtbzHbzHbzHbCJbiCbiCbCKbrsbCLbCMbCNbCObwpbCPbCQbCRbCRbCSbCTbCUbCVbCUbCWbEBbttbAEbAFbAGbAHbAIbDcbDdbDebAJbtbbtbbAKbALbDbbCsbpobDfbtIbwVbwWbyMbAlbwFbBTbBUcVjamabtGbvhbAtbAubAvbBPbBQbBRbtGbLTbBVbBZbCcbDjbDlbCdbLTbDgbwKbTSbdFaPibDwblrboGbspbsybtlbtmbDDcXcbtXbtYbuPbtYbuQbDybDzbDAbDMbDBbDCbDEbDFbDRbCAaTraWpbCBaTraWpbCCaTrbDRbDXbDYbDYbAObAObAOaAhbEbbskbtQbtUbEbbLKbEgbLKbCpbAPbAwbAQbCpbLUbEkbLUbCpazXbElbEnbEobEpbEqbTCbErbEsbaQbdebdebdebaQbdebdebaQbdebdebaQaaaaalaaaaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaalaaaamaaalaaaaDJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKaaaaalbCDbCDbCDbCDbCDbCDbCDbCDbCDbCDbCDbnSbzwbARbCFbzHbEwbKobExbEybEzbEAbzHbEEaSQcRIbCKbrsbrsbrsbrsbrsbwpbrPcRPbEFbEFbEGbtvbtvbtvbtvbtvbtvbtvbtvbEHbtvbtvbASbtvbvcbEJbAJbtbbtbbtbbATbofbCsbpobDhbtIbAmbwWbAobApbDmbDrbDubtIamabtGbERbDnbtGbDocWJbvnbDpbtGbLTbLTbDZbLTbDkbDkbDkbDkbDkbDkbgbbAWaPibMSbDGbDHbDIbDJbDKbDLbDNbDObDPbDQbDQbDQbFgbFhbFibFjbFkbFlbFmbFnbFobDRbDSaTraWpbDTaTraWpbDUaTrbDRbFCbFDbugbuhbuhbuhbEabMXbEcbEcbEcbEdbEebFEbFFbCpbCpbFGbFObCpbEmbFPaSWbFRbFSbFTbEnbFUbFVbFWbFXaqbcyvbFYaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaaaaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaalaaaamaaalaaaaDJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKaaaaalbCDbCDbFZbCDbCDbCDbCDbCDbCDbCDbCDbnSbzwbAXbDVbzHbGcbzHbGdbGebGfbGgbGhbGibGjcWobGkbGlbGmbGnbGlbGlbGlbGobGobGobGpbGqbtvbDxbDxbDxbDxbGsbGtbGubGvbtvbAYbAZbGybGybNCbBabtbbtbbBbbvcbdEbDibGDbGEbtIawEbArawEawEawEbtIbEhbtIaalbtGbtGbtGbtGbDvbtGbtGbtGbtGaalbtDbEZbDkbEubECbEMbEXbEYbDkbwBcWObKwbDwbFpbFqbFrbFsbFtbFubNQbDObMnbMnbMnbMnbMnbFvbFwbFxcWDbFybGWbGXbGYbDRbDWbEvbEvbFzbEvbEvbFAbHnbDRbHsbDYbFJbFKbFLbFMbFNbHybHtbHubHvbHwbHxbHzbHAbEbbHBbHCbHDbEnbHJbHKbHLbHMbFSbHNbEnbHObFVbFVbHPbFVbHQbOCaalaalaaaaalaalaalaaaaalaalaalaaaaalaaaaaaaaaaaaaaaaUtaUtaUtaUtaUtaaaaaaaaaaaaaalaaaamaaalaaaaDNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKbeKaaaaalbCDbCDbCDbCDbCDbCDbCDbCDbCDbCDbCDbnSbzwbAXbFBbzHbHTbOWbHVbHWbzHbzHbzHcWAcWAbpBbBybBybBybBybBybBybBybBybHXbtvbtvbHYbtvbDxbDxbDxbGrbHZbIabIabIbcGmbBfbBjbBkbBEbBFbBGbBHbBKbBKbImbHebInbIqbCrbtIbAsbCfbCgbChbDsawEbDtbtIaalbNvbNvbEVbNvbEWbNvbEVbNvbNvaalbtDbEibDkbFabFbbFcbGPbGQbGRbFQbJCaPibMSbDGbGZbHabHfbHgbHhbIObHdbHjbHkbHlbHmbMnbIJbFwbIKbDMbILbIMbINbIPbDRbHpbHqbIZbHSaTraWpbDUaTrbDRbJdbDYbHEbHFbHGbHHbHIcaUbEcbJebJfbJgbJhbJibJjbEbbJkbJlbJmbEnbJsbJtbJubJvbJwbJxbEnbJybJzbJzbJAbFVbWzbOCaaaaalaalaalaalaalaalaalaaaaalaalaalaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaalaalaalaalaOvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKaaaaaaaaaaaabeKbeKbeKbeKbeKbeKaaaaaaaaaaaabeKbeKbeKbeKbeKaaaaalbCDbCDbCDbCDbCDbCDbCDbCDbCDbCDaaabwhbCibCjbIubzHbuCbJGbJHbJIbKoaalaalaalaalaalbJJbJKbJKbJKbJKbJKbJKbJKbJLaalbtvbIcbJMbJObJNbIabJPbJRbJSbJTbJUbJVbCkbCnbCobJZbAbbvcbvcbCqbvcbvcbdEbIIbpobplbtIbENbEObEQawEbESawEbETbtIaalbGJbGKbGLbGMbGNbGObGLbYjbZEaalbtDbGSbGTbGUbGVbIwbIFbIGbDkbCuboibCvbDwbIQboGbIRbISbITbIUbIObHrbIVblNbIXbIYbKzbKzbKAbKBbKCbFlbKDbKEbKFbDRbJabJbbKObHSaTraWpbDUaTrbDRbKRbDYbJnbJobJpbJqbJrbKXbKSbKTbKUbKVbKWbKYbKZbEbbLabLbbLcbEnbLibLjbLkbJvbFSbLlbEnbLmbFVbLnbLobFYbOCbOCaalaalaaaaaaaalaalaaaaalaalaalaaaaalaaaaalaalaaaaaaaaaaalaaaaaaaalaaaaakaaaaaaaalaaaamaaalaaaaDNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKaaaaaaaaaaaabeKbeKbeKbeKbeKbeKaaaaaaaaaaaabeKbeKbeKbeKbeKaaaaalbCDbCDbCDbCDbCDbCDbCDbCDbCDbCDaaabwhbCibCjbIubzHbuCbJGbJHbJIbKoaalaalaalaalaalbJJbJKbJKbJKbJKbJKbJKbJKbJLaalbtvbIcbJMbJObJNbIabJPbJRbJSbJTbJUbJVbCkbCnbCobJZbAbhcabvcbCqbvcbvcbdEbIIbpobplbtIbENbEObEQawEbESawEbETbtIaalbGJbGKbGLbGMbGNbGObGLbYjbZEaalbtDbGSbGTbGUbGVbIwbIFbIGbDkbCuboibCvbDwbIQboGbIRbISbITbIUbIObHrbIVblNbIXbIYbKzbKzbKAbKBbKCbFlbKDbKEbKFbDRbJabJbbKObHSaTraWpbDUaTrbDRbKRbDYbJnbJobJpbJqbJrbKXbKSbKTbKUbKVbKWbKYbKZbEbbLabLbbLcbEnbLibLjbLkbJvbFSbLlbEnbLmbFVbLnbLobFYbOCbOCaalaalaaaaaaaalaalaaaaalaalaalaaaaalaaaaalaalaaaaaaaaaaalaaaaaaaalaaaaakaaaaaaaalaaaamaaalaaaaDNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKaaaaaaaaaaaabeKbeKbeKbeKbeKbeKaaaaaaaaaaaabeKbeKbeKbeKbeKaaabwgbwhbrgbnSbnSbnSbnSbnSbnSbnSbwhbnSbwhbLpbLqbwhbLrbLsbKobKobKobKoaalaaaaalaaaaalbPpbJKbJKbJKbJKbJKbJKbJKbPpaalbStbLubLvbLwbLxbLybLzbLAbLBbLzbLCbLDbCEbCXbCYbLHbLIbvcbJDbplbJWbJXbofbJYbLJbLLbtIbEUbGbbGFawEbGGawEbDtbtIaalbZFbIhbLWbIibIrbIsbMabIvbZFaalbtDbIHbtDbDkbDkbDkbDkbDkbDkbEIbpKbEKbDwbDwbDwbUAbMkbKGbUAbIObKybKHbKHbKHbKIbELbEPbFdbFebDMbKJbKKaAKaZVbDRbKPbKQbMxbIEbJcbEvbJEaTrbDRbDXbDYbMCbMCbMCbMCbMCbKXbLdbJebLebLfbKWbKYbLgbEbbMHbLhbMJbEnbMKbMLbMMbMNbFSbMObEnbMPbFVbMQbMRbFYaalaalaalaaaaaaaaaaalaalaaaaaaaalaaaaaaaalaaaaaaaalaalaaaaaaaalaaaamaaalaaaaajaaaaaaaalaaaamaaalaaaaDJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKaaaaalaalaalaalaalaalaalaalaalaalbYibMTbMUbMVbnSaalaalaaaaalaalaalaalaalaalaalaaaaalbPpbJKbJKbJKbMWbJKbJKbJKbPpaalbYVbMYbMZbNabNbbNcbJTbNdbNebNebNfcGmbGabGwbGxbGAbGBbGCbLMbplbplbLSbofbJYbLJbplbOXbOXbOXbOXbOXbOXbOXbGHbOXaalbNvbIybKkbIzbIBbICbNxbIDbNvaalbtDbKbbKdbKebKgbKhbKibLQbtDbIjbpKbTWbNIbKLbKMbKNbMlbMmbMobNObNOwkFbNPbYXbNObNObIkbIlbNObDMcWDbMtcWDbDMbDRbNVbNWbPubNXbNXbNXbNXbNXbNXbDXbEbbFIbNYbNZbOabObbMDbEcbJebMEbMFbMGbMIbOdbKXbOebOfbOgbOmbOnaUMbOpbOqbFSbOrbEnbOscRwbOubMRbFYbOvbZwbJJaDJaDNaDJaDJaDJaDJaDJbOxbOxbOxbOxbOxbOxbOxbOxbOyaalaalaalbJJaalaalaakaalaalaalaalaZlaalaalaDNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeKbeKbeKbeKbeKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbYibOzbOAbOBbnSaalaaaaaaaalaaaaalaaaaalaaaaalaalaalbPpbJKbJKbJKbJKbJKbJKbJKcaebStbStbODbOEbNabNbbJTbOFbNdbOGaVAbbZbtvbIobtbbBjbGAbIpbAbbMrbMsbMsbNmbNnbNpbNHbOVbOXbLRbGIbHibHobIdbIebIfbOXaalbNvbNvbKqbKrbKsbKtbKqbNvbNvaalbtDbLVbLXbLYbLYbMbbMcbNkbNqbPZbdFaPibNIbMubNJbNKbNLbNMbNNbNObNTbOlbPcbPdbYXbPebPfbPgbPhcaobPibPjbPkbPlbDRbDRbUkbDRbNXbJQbKxbMvbMwbNXbHsbEbbOcbPzbPzbPzcQKbEcbEcbOhbOibOibOibOjbOkbKXbPmbPnbPobOmcaqcaqcaqbPJcaqbEnbEnbPKbFYbFYbFYbFYbMAbdfbOxbOxcaRcaRcaRcaRcaRbOxbOxbPObPPbhgbPPbhgbPPbPRaaaaalaaaaaaaalaaaaaaaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus/exodus-3.dmm b/maps/exodus/exodus-3.dmm index bd2ead282c1..6fbcf28a396 100644 --- a/maps/exodus/exodus-3.dmm +++ b/maps/exodus/exodus-3.dmm @@ -1626,9 +1626,9 @@ "Ft" = (/obj/machinery/newscaster{layer = 3.3; pixel_y = -27},/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/turf/simulated/floor/trim/wood,/area/outpost/main_outpost/dorms/proom2) "Fu" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/cobweb2{icon_state = "cobweb1"},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "Fv" = (/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/plating,/area/outpost/abandonedpost) -"Fw" = (/obj/machinery/media/jukebox,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"Fx" = (/obj/structure/table/woodentable,/obj/machinery/light/small{dir = 1},/obj/item/storage/box/donkpockets,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"Fy" = (/obj/structure/table/woodentable,/obj/machinery/microwave,/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) +"Fw" = (/obj/machinery/media/jukebox,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"Fx" = (/obj/structure/table/woodentable,/obj/machinery/light/small{dir = 1},/obj/item/storage/box/donkpockets,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"Fy" = (/obj/structure/table/woodentable,/obj/machinery/microwave,/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) "Fz" = (/obj/item/device/flashlight,/obj/item/device/radio,/turf/simulated/floor/misc/cult,/area/mine/explored) "FA" = (/obj/effect/floor_decal/corner/purple{dir = 4},/turf/simulated/floor/tiled/white/rough,/area/outpost/research/hallway) "FB" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor/tiled/white/rough,/area/outpost/research/brainstorm) @@ -1642,7 +1642,7 @@ "FJ" = (/obj/structure/catwalk,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/outpost/abandonedpost) "FK" = (/obj/structure/catwalk,/turf/simulated/floor/plating,/area/outpost/abandonedpost) "FL" = (/obj/structure/catwalk,/obj/machinery/door/airlock{name = "Storage"},/turf/simulated/floor/plating,/area/outpost/abandonedpost) -"FM" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) +"FM" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) "FN" = (/obj/machinery/artifact_scanpad,/turf/simulated/floor/grid/bluegrid,/area/outpost/research/anomaly_analysis) "FO" = (/obj/machinery/artifact_harvester,/turf/simulated/floor/grid/bluegrid,/area/outpost/research/anomaly_analysis) "FP" = (/obj/machinery/airlock_sensor{dir = 4; id_tag = "research_sensor"; pixel_x = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "research_pump"},/turf/simulated/floor/plating,/area/outpost/research/eva) @@ -1652,8 +1652,8 @@ "FT" = (/obj/machinery/photocopier,/turf/simulated/floor/tiled/white/rough,/area/outpost/research/brainstorm) "FU" = (/obj/structure/table/rack,/obj/item/storage/firstaid/regular,/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plating,/area/outpost/abandonedpost) "FV" = (/obj/structure/table/rack,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/obj/item/device/synthesized_instrument/guitar,/turf/simulated/floor/plating,/area/outpost/abandonedpost) -"FW" = (/obj/structure/bed/chair,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/ash,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"FX" = (/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) +"FW" = (/obj/structure/bed/chair,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/ash,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"FX" = (/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) "FY" = (/obj/machinery/door/airlock{name = "Toilet"},/obj/effect/floor_decal/oldflood,/turf/simulated/floor/tiled/freezer,/area/outpost/abandonedpost) "FZ" = (/obj/structure/sink{dir = 1; pixel_y = 16},/obj/structure/mirror{dir = 4; pixel_y = 32},/obj/effect/floor_decal/oldflood,/obj/effect/decal/cleanable/vomit,/turf/simulated/floor/tiled/freezer,/area/outpost/abandonedpost) "Ga" = (/obj/machinery/light/small{dir = 4},/obj/structure/toilet{dir = 8},/obj/random/soap,/obj/effect/floor_decal/oldflood,/obj/effect/decal/cleanable/cobweb{dir = 8},/turf/simulated/floor/tiled/freezer,/area/outpost/abandonedpost) @@ -1664,9 +1664,9 @@ "Gf" = (/obj/structure/table/steel,/obj/item/pickaxe,/obj/effect/decal/cleanable/cobweb2,/obj/item/reagent_containers/spray/cleaner,/turf/simulated/floor/plating,/area/outpost/main_outpost/challway) "Gg" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/tiled/dirty,/area/outpost/main_outpost/dorms) "Gh" = (/obj/structure/bed/chair/beige,/turf/simulated/floor/trim/lino,/area/outpost/main_outpost/dorms) -"Gi" = (/obj/structure/table/woodentable,/obj/random/snack,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"Gj" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"Gk" = (/obj/effect/decal/cleanable/blood,/obj/item/remains/human,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) +"Gi" = (/obj/structure/table/woodentable,/obj/random/snack,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"Gj" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"Gk" = (/obj/effect/decal/cleanable/blood,/obj/item/remains/human,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) "Gl" = (/obj/structure/bookcase,/turf/simulated/floor/misc/cult,/area/mine/explored) "Gm" = (/obj/item/stack/flag/red,/turf/simulated/floor/misc/cult,/area/mine/explored) "Gn" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/white/rough,/area/outpost/research/hallway) @@ -1678,17 +1678,17 @@ "Gt" = (/obj/machinery/door/blast/shutters{dir = 8},/turf/simulated/floor/plating/airless,/area/outpost/abandoned) "Gu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white/rough,/area/outpost/research/hallway) "Gv" = (/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor/tiled/white/rough,/area/outpost/research/hallway) -"Gw" = (/obj/machinery/light/small{dir = 8},/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"Gx" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"Gy" = (/obj/machinery/light_switch{dir = 8; pixel_x = 25},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) +"Gw" = (/obj/machinery/light/small{dir = 8},/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"Gx" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"Gy" = (/obj/machinery/light_switch{dir = 8; pixel_x = 25},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) "Gz" = (/obj/structure/table/woodentable,/obj/random/toy,/turf/simulated/floor/trim/carpet,/area/outpost/abandonedpost) "GA" = (/obj/item/bedsheet/brown,/obj/structure/bed,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/trim/carpet,/area/outpost/abandonedpost) "GB" = (/obj/effect/decal/remains,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/misc/cult,/area/mine/explored) "GC" = (/obj/effect/decal/remains,/obj/item/device/ano_scanner,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/misc/cult,/area/mine/explored) -"GD" = (/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/random/pottedplant,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"GE" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"GF" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) -"GG" = (/obj/machinery/door/airlock{name = "Bedroom"},/turf/simulated/floor/holofloor/wood,/area/outpost/abandonedpost) +"GD" = (/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/random/pottedplant,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"GE" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"GF" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) +"GG" = (/obj/machinery/door/airlock{name = "Bedroom"},/turf/simulated/floor/trim/wood,/area/outpost/abandonedpost) "GH" = (/obj/effect/decal/cleanable/generic,/turf/simulated/floor/trim/carpet,/area/outpost/abandonedpost) "GI" = (/obj/machinery/light/small{dir = 4},/obj/random/plushie,/turf/simulated/floor/trim/carpet,/area/outpost/abandonedpost) "GJ" = (/obj/structure/closet/crate/internals,/turf/simulated/floor/shuttle/yellow,/area/outpost/abandoned) @@ -2197,7 +2197,7 @@ "RS" = (/obj/machinery/floodlight,/obj/effect/floor_decal/industrial/warning/dust{dir = 4},/turf/simulated/floor,/area/mine/explored/prison) "RT" = (/turf/simulated/wall/r_wall,/area/outpost/security/dorms) "RV" = (/obj/structure/sign/warning/docking_area,/turf/simulated/wall,/area/mine/explored/prison) -"Sb" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_coffee/full,/turf/simulated/floor/trim/wood,/area/outpost/main_outpost/canteen) +"Sb" = (/obj/structure/table/standard,/turf/simulated/floor/trim/wood,/area/outpost/main_outpost/canteen) "Sc" = (/turf/simulated/wall/r_wall,/area/outpost/main_outpost/dock/security) "Sd" = (/obj/structure/closet/crate/internals,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/effect/floor_decal/industrial/outline/red,/turf/simulated/floor/shuttle/black,/area/outpost/prydwen) "Sf" = (/obj/structure/closet/secure_closet/personal,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/trim/carpet,/area/outpost/main_outpost/dorms/proom2) @@ -2264,7 +2264,7 @@ "TS" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable,/turf/simulated/floor/tiled/rough,/area/outpost/security/dorms) "TU" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/rough,/area/outpost/security/prison) "TV" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm{pixel_y = 24},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/rough,/area/outpost/security/prison) -"TX" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_coffee/full,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/trim/wood{icon_state = "wood_broken4"},/area/outpost/main_outpost/dock/security) +"TX" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/trim/wood{icon_state = "wood_broken4"},/area/outpost/main_outpost/dock/security) "TY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/mine/explored/prison) "TZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/rough,/area/outpost/security/prison) "Ua" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/obj/machinery/light/small/hl{dir = 4},/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/trim/wood,/area/outpost/main_outpost/canteen) diff --git a/maps/exodus/exodus-4.dmm b/maps/exodus/exodus-4.dmm index d5a140aeacf..42367274ff0 100644 --- a/maps/exodus/exodus-4.dmm +++ b/maps/exodus/exodus-4.dmm @@ -4,133 +4,43 @@ "aad" = (/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/east,/area/space) "aae" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aaf" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) -"aag" = (/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) "aah" = (/turf/space/transit/north,/area/space) "aai" = (/turf/space/transit/west,/area/space) "aaj" = (/turf/space/transit/east,/area/space) "aak" = (/turf/simulated/mineral,/area/space) -"aal" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) "aam" = (/obj/structure/sign/flag/syndie,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership) "aan" = (/obj/structure/window/syndi,/turf/simulated/floor/plating,/area/rescue_base/start) -"aao" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) -"aap" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaq" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aar" = (/obj/structure/table/rack/holorack,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/head/hairflower,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"aas" = (/obj/effect/landmark/costume,/obj/structure/table/rack/holorack,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"aat" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"aau" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/obj/machinery/door/window/holowindoor{name = "Jury Box"; dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aav" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"aaw" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_wildlife) -"aax" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_plating) -"aay" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) -"aaz" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaA" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet/corners{dir = 10},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aaB" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaC" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaD" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aaE" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) "aaF" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1; stopper = 0},/turf/space/transit/north,/area/space) "aaG" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(left)"; direction = 8; tiles = 0; affect_ghosts = 1},/turf/space/transit/north,/area/space) "aaH" = (/turf/unsimulated/beach/sand{opacity = 1; density = 1},/area/beach) "aaI" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/obj/structure/window/syndi{icon_state = "ws4"},/turf/simulated/floor/plating,/area/syndicate_station/start) -"aaJ" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaK" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaL" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"aaM" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aaN" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"aaO" = (/obj/effect/landmark/event/other/holodeck/carps,/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_wildlife) -"aaP" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaQ" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaR" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) "aaS" = (/turf/space/transit/north,/area/rescue_base/transit) "aaT" = (/obj/effect/step_trigger/thrower{name = "thrower_throwup"; direction = 1; tiles = 0},/turf/space/transit/north,/area/space) "aaU" = (/turf/unsimulated/beach/sand,/area/beach) "aaV" = (/obj/structure/closet,/turf/unsimulated/beach/sand,/area/beach) -"aaW" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaX" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaY" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaZ" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 8},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aba" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"abb" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abc" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abd" = (/obj/effect/floor_decal/carpet,/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abe" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abf" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) "abg" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/beach) "abh" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) -"abi" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"abj" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"abk" = (/obj/effect/decal/cleanable/dirt,/obj/structure/holostool,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"abl" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"abm" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"abn" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) -"abo" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abp" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abq" = (/obj/machinery/door/window/holowindoor{name = "Witness Box"; icon_state = "right"; dir = 8; base_state = "right"},/obj/structure/bed/chair/holochair{dir = 4},/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abr" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abs" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abt" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abu" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abv" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow{dir = 4},/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abw" = (/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) "abx" = (/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) "aby" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/alien) -"abz" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"abA" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"abB" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) -"abC" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abD" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abE" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abF" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abG" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abH" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abI" = (/obj/structure/bed/chair/holochair{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abJ" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abK" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow{dir = 4},/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) "abL" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdownside"; tiles = 0; affect_ghosts = 1; nostop = 1},/turf/space/transit/north,/area/space) "abM" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(right)"; direction = 4; tiles = 0; affect_ghosts = 1},/turf/space/transit/north,/area/space) "abN" = (/obj/effect/shuttle_landmark/rescue/internim,/turf/space/transit/north,/area/rescue_base/transit) "abO" = (/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"abP" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abQ" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abR" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abS" = (/obj/structure/table/holo_woodentable,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abT" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abU" = (/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abV" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"abW" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"abX" = (/obj/machinery/door/window/holowindoor{name = "Court Reporter's Box"; dir = 8},/obj/structure/bed/chair/holochair{dir = 4},/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) "abY" = (/turf/space/transit/north,/area/shuttle/escape/transit) "abZ" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand,/area/beach) "aca" = (/obj/item/paper{name = "Insert alien artifacts here."; info = "Some stuff is missing..."},/turf/unsimulated/floor{icon_state = "dark"},/area/alien) "acb" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acc" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 9},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) "acd" = (/turf/space,/area/shuttle/alien/base) -"ace" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"acf" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acg" = (/obj/effect/floor_decal/carpet,/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"ach" = (/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) "aci" = (/obj/effect/step_trigger/thrower{name = "thrower_leftnostop"; affect_ghosts = 1},/turf/space/transit/west,/area/space) "acj" = (/obj/effect/step_trigger/thrower{name = "thrower_leftnostop"; affect_ghosts = 1},/turf/space/transit/east,/area/space) "ack" = (/obj/effect/landmark/event/rift/exit,/turf/unsimulated/beach/sand,/area/beach) "acl" = (/obj/structure/closet/acloset,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acm" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"acn" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aco" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acp" = (/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acq" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"acr" = (/obj/machinery/door/window/holowindoor{name = "Green Team"; icon_state = "right"; dir = 1; base_state = "right"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) "acs" = (/turf/space/transit/west,/area/shuttle/escape_pod5/transit) "act" = (/turf/space/transit/east,/area/shuttle/escape_pod5/transit) "acu" = (/obj/effect/step_trigger/thrower{name = "thrower_throwup"; direction = 1; tiles = 0},/turf/space/transit/east,/area/space) "acv" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/turf/unsimulated/beach/sand,/area/beach) "acw" = (/obj/structure/table/standard,/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/collectable/petehat{pixel_y = 5},/turf/unsimulated/beach/sand,/area/beach) "acx" = (/obj/structure/bed/alien,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acy" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acz" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acA" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acB" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acC" = (/obj/machinery/door/window/holowindoor{name = "Red Team"; dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) "acD" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{name = "plating"},/area/centcom/suppy) "acE" = (/obj/effect/shuttle_landmark/escape_pod/transit/pod5,/turf/space/transit/west,/area/shuttle/escape_pod5/transit) "acF" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1; stopper = 0},/turf/space/transit/east,/area/space) @@ -138,52 +48,10 @@ "acH" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/turf/unsimulated/beach/sand,/area/beach) "acI" = (/obj/item/beach_ball,/turf/unsimulated/beach/sand,/area/beach) "acJ" = (/obj/structure/window/syndi,/turf/simulated/floor/plating,/area/syndicate_station/start) -"acK" = (/turf/simulated/floor/holofloor/lino,/area/holodeck/source_chess) -"acL" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acM" = (/obj/machinery/door/window/holowindoor{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"acN" = (/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"acO" = (/obj/machinery/door/window/holowindoor{icon_state = "right"; dir = 1; base_state = "right"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"acP" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"acQ" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"acR" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) "acS" = (/obj/structure/bed,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) -"acT" = (/obj/structure/window/reinforced/crescent,/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) -"acU" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) -"acV" = (/turf/simulated/floor/holofloor/space,/area/holodeck/source_space) -"acW" = (/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"acX" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) -"acY" = (/obj/item/reagent_containers/food/checker/rook{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"acZ" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) -"ada" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adb" = (/turf/unsimulated/beach/sand{icon_state = "beach"; dir = 4},/area/holodeck/source_beach) -"adc" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"add" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) "ade" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/syndicate_station/start) -"adf" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adg" = (/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adh" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"adi" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adj" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adk" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/obj/structure/window/reinforced/holowindow/disappearing{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adl" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/obj/structure/window/reinforced/holowindow/disappearing{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adm" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adn" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"ado" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "adp" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "adq" = (/obj/structure/mirror,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership/elite_squad) -"adr" = (/obj/effect/landmark/event/other/holodeck/randcarps,/turf/simulated/floor/holofloor/space,/area/holodeck/source_space) -"ads" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"adt" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"adu" = (/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"adv" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"adw" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adx" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"ady" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adz" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adA" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adB" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adC" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/holo/esword/red,/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adD" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "adE" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdownsidenostop"; tiles = 0; affect_ghosts = 1; stopper = 0; nostop = 1},/turf/space/transit/north,/area/space) "adF" = (/obj/structure/bed/chair,/obj/effect/landmark/event/rift/exit,/turf/unsimulated/beach/sand,/area/beach) "adG" = (/mob/living/simple_animal/crab/Coffee,/turf/unsimulated/beach/sand,/area/beach) @@ -194,14 +62,6 @@ "adL" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "adM" = (/obj/structure/sink{dir = 1; pixel_y = 16},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) "adN" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) -"adO" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"adP" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) -"adQ" = (/obj/structure/holohoop{dir = 4},/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adR" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adS" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adT" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 4},/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adU" = (/obj/machinery/door/window/holowindoor{name = "Red Corner"; icon_state = "right"; dir = 2; base_state = "right"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"adV" = (/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "adW" = (/turf/space/transit/west,/area/shuttle/escape_pod3/transit) "adX" = (/turf/space/transit/east,/area/shuttle/escape_pod3/transit) "adY" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/sand,/area/beach) @@ -209,37 +69,12 @@ "aea" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aeb" = (/obj/machinery/door/airlock/hatch{name = "Restroom"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) "aec" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/syndicate_station/start) -"aed" = (/turf/simulated/floor/holofloor/lino,/area/holodeck/source_meetinghall) -"aee" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_meetinghall) -"aef" = (/obj/item/beach_ball,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"aeg" = (/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"aeh" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aei" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aej" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aek" = (/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "ael" = (/obj/effect/shuttle_landmark/escape_pod/transit/pod3,/turf/space/transit/east,/area/shuttle/escape_pod3/transit) "aem" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aen" = (/obj/structure/bed/chair/comfy/black,/obj/effect/landmark/start/antags/commando,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aeo" = (/obj/machinery/light{dir = 4},/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aep" = (/obj/machinery/door/airlock/hatch{name = "Cabin"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) "aeq" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/prison/solitary) -"aer" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"aes" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aet" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aeu" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aev" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aew" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aex" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aey" = (/obj/effect/floor_decal/corner/red{dir = 6},/obj/item/beach_ball/holoball,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aez" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aeA" = (/obj/item/inflatable_duck,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"aeB" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 8},/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aeC" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/holo/esword/green,/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aeD" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aeE" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aeF" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aeG" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aeH" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) "aeI" = (/turf/unsimulated/beach/coastline{opacity = 1; density = 1},/area/beach) "aeJ" = (/turf/unsimulated/beach/coastline,/area/beach) "aeK" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1; req_access = list(150)},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership/elite_squad) @@ -255,17 +90,6 @@ "aeU" = (/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) "aeV" = (/obj/effect/decal/cleanable/cobweb2,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) "aeW" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) -"aeX" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aeY" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aeZ" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afa" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afb" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afc" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afd" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"afe" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/obj/structure/window/reinforced/holowindow/disappearing{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aff" = (/obj/effect/floor_decal/corner/green/three_quarters,/obj/structure/window/reinforced/holowindow/disappearing{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"afg" = (/obj/effect/floor_decal/corner/blue/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"afh" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) "afi" = (/turf/unsimulated/beach/water{opacity = 1; density = 1},/area/beach) "afj" = (/turf/unsimulated/beach/water,/area/beach) "afk" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) @@ -274,23 +98,9 @@ "afn" = (/obj/structure/table/steel_reinforced,/obj/item/deck/cards,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afo" = (/obj/structure/table/steel_reinforced,/obj/machinery/recharger,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afp" = (/obj/structure/bed,/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) -"afq" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afr" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afs" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aft" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"afu" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"afv" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) "afw" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afx" = (/obj/effect/landmark/start/antags/commando,/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afy" = (/obj/machinery/mech_recharger,/obj/mecha/combat/marauder/mauler,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"afz" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"afA" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet{dir = 8},/area/holodeck/source_meetinghall) -"afB" = (/obj/structure/holohoop{dir = 8},/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afC" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afD" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afE" = (/obj/machinery/door/window/holowindoor{name = "Green Team"; icon_state = "right"; dir = 1; base_state = "right"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"afF" = (/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"afG" = (/obj/machinery/door/window/holowindoor{name = "Green Corner"; dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "afH" = (/obj/effect/shuttle_landmark/escape/internim,/turf/space/transit/north,/area/shuttle/escape/transit) "afI" = (/obj/effect/step_trigger/teleporter/random,/turf/space,/area/space) "afJ" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{name = "Mech Room Door"; dir = 4; id = "syndicate_elite_mech_room"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) @@ -299,24 +109,12 @@ "afM" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/elite_squad) "afN" = (/obj/structure/sign/flag/syndie,/turf/unsimulated/wall,/area/syndicate_mothership/elite_squad) "afO" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/prison/solitary) -"afP" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afQ" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afR" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afS" = (/turf/simulated/floor/holofloor/beach/water,/area/holodeck/source_beach) "afT" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/dark,/area/syndicate_mothership/elite_squad) "afU" = (/obj/machinery/computer/shuttle_control/multi/elite_syndicate,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afV" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "docking port controller"; pixel_y = -25; frequency = 1331; req_one_access = 150; id_tag = "emerc_base"; tag_door = "emerc_airlock_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afW" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afX" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw,/area/shuttle/syndicate_elite/mothership) -"afY" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afZ" = (/obj/machinery/door/window/holowindoor{name = "Green Team"; icon_state = "right"; dir = 1; base_state = "right"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) -"aga" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"agb" = (/obj/machinery/door/window/holowindoor{name = "Red Team"; dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"agc" = (/obj/item/reagent_containers/food/checker/knight{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"agd" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"age" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "agf" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1331; locked = 1; id_tag = "emerc_airlock_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"agg" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/space) "agh" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) "agi" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) "agj" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1331; locked = 1; id_tag = "emerc_airlock_dock_door"},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) @@ -533,7 +331,6 @@ "akm" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akn" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle/small,/obj/item/gun/energy/ionrifle/small,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "ako" = (/obj/structure/table/reinforced,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/defibrillator/compact/combat/loaded,/obj/item/defibrillator/compact/combat/loaded,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) -"akp" = (/obj/machinery/door/window/holowindoor{name = "Red Team"; dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) "akq" = (/obj/machinery/chem_master,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akr" = (/obj/structure/bed/chair/office/light{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aks" = (/obj/structure/table/reinforced,/obj/item/stamp/centcomm,/obj/item/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) @@ -715,7 +512,6 @@ "anM" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "anN" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/sw{icon_state = "corner_whiteship_s"},/area/centcom/evac) "anO" = (/obj/machinery/door/airlock/maintenance_hatch{req_access = list(101)},/turf/simulated/floor/plating,/area/centcom/evac) -"anP" = (/obj/item/reagent_containers/food/checker/bishop{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) "anQ" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/se{icon_state = "corner_whiteship_s"},/area/centcom/evac) "anR" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "anS" = (/obj/machinery/light{dir = 1},/obj/structure/bed/chair/shuttle/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 10},/turf/simulated/floor,/area/syndicate_station/start) @@ -790,7 +586,6 @@ "apj" = (/obj/structure/table/woodentable{dir = 5},/obj/item/material/ashtray/bronze,/obj/item/cigbutt/cigarbutt,/obj/item/device/radio/phone{desc = "Should anything ever go wrong..."; frequency = 1345},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) "apk" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) "apl" = (/obj/structure/table/woodentable{dir = 5},/obj/item/storage/fancy/cigar,/obj/item/flame/lighter/zippo,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) -"apm" = (/obj/item/reagent_containers/food/checker/queen{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) "apn" = (/obj/mecha/combat/gygax/dark,/obj/machinery/mech_recharger,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "apo" = (/obj/effect/shuttle_landmark/escape_pod/out/pod1,/turf/space,/area/shuttle/escape_pod1/centcom) "app" = (/obj/machinery/door/airlock/external{name = "Recovery Shuttle Dock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_pod_5_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) @@ -1058,7 +853,6 @@ "aur" = (/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "aus" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) "aut" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) -"auu" = (/obj/item/reagent_containers/food/checker/king{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) "auv" = (/obj/structure/bed/chair/shuttle/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/simulated/floor,/area/syndicate_station/start) "auw" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/syringe,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/latex,/obj/item/surgicaldrill,/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; req_access = list(150)},/obj/item/reagent_containers/syringe/antiviral/packaged,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "aux" = (/obj/effect/landmark/event/nuke/bomb,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) @@ -1247,8 +1041,6 @@ "axY" = (/obj/structure/sign/warning/nosmoking_2,/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/centcom/living) "axZ" = (/obj/structure/sign/warning/secure_area,/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/centcom/living) "aya" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) -"ayb" = (/obj/item/reagent_containers/food/checker/bishop{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayc" = (/obj/item/reagent_containers/food/checker/knight{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) "ayd" = (/obj/machinery/button/flasher{name = "Flasher"; pixel_x = 27; id = "rescueflash"},/obj/structure/bed/chair{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "aye" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/rescue_base/start) "ayf" = (/obj/structure/table/rack,/obj/item/wrench,/obj/item/storage/belt/utility/full,/turf/simulated/floor/plating,/area/rescue_base/start) @@ -1275,18 +1067,6 @@ "ayA" = (/obj/machinery/computer/rdservercontrol{name = "Master R&D Server Controller"; badmin = 1},/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "ayB" = (/obj/machinery/r_n_d/server/centcom,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "ayC" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"ayD" = (/obj/item/reagent_containers/food/checker/rook{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayE" = (/obj/item/reagent_containers/food/checker/pawn{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayF" = (/obj/item/reagent_containers/food/checker/pawn{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"ayG" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"ayH" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayI" = (/obj/item/reagent_containers/food/checker/pawn/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"ayJ" = (/obj/item/reagent_containers/food/checker/pawn/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayK" = (/obj/item/reagent_containers/food/checker/rook/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayL" = (/obj/item/reagent_containers/food/checker/knight/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"ayM" = (/obj/item/reagent_containers/food/checker/bishop/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayN" = (/obj/item/reagent_containers/food/checker/queen/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"ayO" = (/obj/item/reagent_containers/food/checker/king/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) "ayP" = (/obj/item/device/flashlight/lantern,/turf/unsimulated/floor{icon_state = "asteroid"},/area/rescue_base/base) "ayQ" = (/obj/structure/closet{name = "Prisoner's Locker"},/obj/item/clothing/shoes/orange,/obj/item/clothing/under/color/orange,/obj/item/device/radio/intercom/specops{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "ayR" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced/crescent{dir = 1},/turf/simulated/floor/plating,/area/rescue_base/start) @@ -1299,9 +1079,6 @@ "ayY" = (/obj/structure/sign/warning/secure_area,/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/centcom/control) "ayZ" = (/obj/machinery/turret/network/centcomm,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aza" = (/obj/machinery/door/airlock/centcom{name = "Teleporter Bay"; opacity = 1; req_access = list(107)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/living) -"azb" = (/obj/item/reagent_containers/food/checker/bishop/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"azc" = (/obj/item/reagent_containers/food/checker/knight/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"azd" = (/obj/item/reagent_containers/food/checker/rook/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) "aze" = (/obj/structure/table/rack,/obj/item/gun/energy/lasercannon,/obj/item/gun/energy/lasercannon,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "azf" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand{icon_state = "desert2"},/turf/unsimulated/beach/sand{icon_state = "coconuts"},/area/centcom/holding) "azg" = (/obj/structure/table/reinforced,/obj/item/paper/trade_lic,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) @@ -1333,7 +1110,7 @@ "azG" = (/obj/effect/floor_decal/corner/green,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "azH" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "azI" = (/obj/structure/table/standard,/obj/item/extinguisher,/obj/item/crowbar,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"azJ" = (/mob/living/simple_animal/tindalos{name = "Eddy"},/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/merchant_station) +"azJ" = (/mob/living/simple_animal/tindalos{name = "Eddy"},/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/natural/jungle,/area/merchant_station) "azK" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 1},/area/shuttle/administration/centcom) "azL" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"},/area/shuttle/administration/centcom) "azM" = (/obj/machinery/camera/network/crescent{c_tag = "Shuttle Security"},/obj/structure/bed/chair/shuttle/red,/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) @@ -1446,7 +1223,7 @@ "aBP" = (/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) "aBQ" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) "aBR" = (/obj/machinery/computer/robotics,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) -"aBS" = (/obj/structure/window_frame/indestructible,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/trim/wood,/area/thunderfield) +"aBS" = (/obj/structure/window_frame/indestructible,/obj/structure/barricade/material,/turf/simulated/floor/trim/wood,/area/thunderfield) "aBT" = (/obj/structure/window_frame/indestructible/hull,/obj/machinery/door/firedoor/border_only,/turf/unsimulated/floor{name = "plating"},/area/merchant_station) "aBU" = (/obj/item/modular_computer/console/preset/security,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aBV" = (/obj/structure/window_frame/indestructible,/turf/simulated/floor/plating,/area/merchant_station) @@ -1616,14 +1393,12 @@ "aFd" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "2"},/turf/simulated/floor/plating,/area/shuttle/escape/centcom) "aFe" = (/obj/effect/floor_decal/industrial/warning/red{dir = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aFf" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 4},/area/shuttle/escape/centcom) -"aFg" = (/turf/simulated/floor/holofloor/space,/area/space) "aFh" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/structure/bed/couch/right/sofa,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aFi" = (/obj/structure/table/standard,/obj/item/FixOVein/clot,/obj/effect/floor_decal/corner/paleblue/three_quarters{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aFj" = (/obj/structure/table/standard,/obj/item/cautery,/obj/item/hemostat/pico,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aFk" = (/obj/structure/table/standard,/obj/item/retractor{pixel_y = 6},/obj/item/scalpel/manager,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aFl" = (/obj/structure/table/standard,/obj/item/bonesetter/bone_mender,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aFm" = (/obj/structure/table/standard,/obj/item/surgicaldrill,/obj/item/circular_saw/plasmasaw,/obj/effect/floor_decal/corner/paleblue/three_quarters{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"aFn" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/holofloor/snow,/area/space) "aFo" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aFp" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aFq" = (/obj/structure/sign/flag/nt,/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 4},/area/rescue_base/start) @@ -1634,15 +1409,6 @@ "aFv" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atm{pixel_x = -32},/turf/simulated/floor/tiled,/area/merchant_station) "aFw" = (/obj/effect/floor_decal/industrial/warning/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aFx" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 4},/area/shuttle/administration/centcom) -"aFy" = (/turf/simulated/floor/holofloor/snow,/area/space) -"aFz" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/space) -"aFA" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/space) -"aFB" = (/obj/structure/flora/ausbushes/fernybush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFC" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFD" = (/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFE" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFF" = (/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFG" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall{icon_state = "riveted_l"},/area/space) "aFH" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aFI" = (/obj/machinery/door/airlock/external{name = "Arrivals Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "centcom_dock_airlock"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aFJ" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) @@ -1651,14 +1417,6 @@ "aFM" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 8},/obj/effect/floor_decal/industrial/warning/red/corner{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aFN" = (/obj/effect/floor_decal/industrial/warning/red{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aFO" = (/obj/structure/table/standard,/obj/item/storage/firstaid/fire,/obj/machinery/camera/network/crescent{c_tag = "Shuttle Bridge West"},/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/extinguisher,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"aFP" = (/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFQ" = (/obj/structure/flora/ausbushes/ppflowers,/obj/structure/holostool,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFR" = (/obj/structure/flora/ausbushes/leafybush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFS" = (/obj/structure/flora/ausbushes/palebush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFT" = (/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFU" = (/obj/structure/flora/ausbushes/sunnybush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFV" = (/obj/structure/flora/ausbushes/genericbush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFW" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) "aFX" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aFY" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aFZ" = (/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) @@ -1667,27 +1425,12 @@ "aGc" = (/obj/machinery/vending/engivend{req_one_access = list()},/turf/simulated/floor/tiled,/area/merchant_station) "aGd" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 1},/turf/simulated/floor/plating,/area/shuttle/escape/centcom) "aGe" = (/obj/machinery/vending/cigarette{prices = list()},/turf/simulated/floor/trim/wood,/area/merchant_station) -"aGf" = (/obj/structure/flora/ausbushes/reedbush,/obj/structure/holostool,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aGg" = (/obj/structure/flora/ausbushes/sunnybush,/obj/structure/holostool,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aGh" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/space) -"aGi" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) -"aGj" = (/turf/simulated/floor/holofloor/tiled,/area/space) -"aGk" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/space) -"aGl" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/space) "aGm" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/green{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aGn" = (/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aGo" = (/obj/machinery/turret/network/centcomm,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aGp" = (/obj/machinery/status_display,/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/centcom/holding) "aGq" = (/obj/structure/sign/warning/lethal_turrets,/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/centcom/holding) "aGr" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aGs" = (/obj/structure/flora/pottedplant{icon_state = "plant-10"},/turf/simulated/floor/holofloor/tiled,/area/space) -"aGt" = (/obj/structure/flora/pottedplant{icon_state = "plant-20"},/turf/simulated/floor/holofloor/tiled,/area/space) -"aGu" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/space) -"aGv" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/space) -"aGw" = (/obj/structure/flora/pottedplant{icon_state = "plant-06"},/turf/simulated/floor/holofloor/tiled,/area/space) -"aGx" = (/obj/structure/flora/pottedplant,/turf/simulated/floor/holofloor/tiled,/area/space) -"aGy" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/space) -"aGz" = (/obj/structure/table/holo_woodentable,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/space) "aGA" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/structure/bed/couch/middle/sofa,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aGB" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/structure/bed/couch/left/sofa,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aGC" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/obj/structure/bed/couch/left/sofa{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) @@ -1702,9 +1445,6 @@ "aGL" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aGM" = (/obj/effect/floor_decal/industrial/warning/red/corner,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aGN" = (/turf/unsimulated/wall,/area/skipjack_station/base) -"aGO" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/carpet,/area/space) -"aGP" = (/obj/structure/table/holo_woodentable,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/space) -"aGQ" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/space) "aGR" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/item/reagent_containers/food/candy/variable,/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aGS" = (/obj/item/reagent_containers/food/candy/variable,/obj/structure/table/woodentable,/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aGT" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/item/reagent_containers/food/candy/variable,/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) @@ -1866,6 +1606,7 @@ "aJT" = (/obj/structure/table/woodentable{dir = 5},/obj/item/clothing/under/suit_jacket,/obj/item/clothing/accessory/wcoat,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) "aJU" = (/obj/structure/table/standard,/obj/item/storage/toolbox/mechanical,/obj/item/device/flashlight,/obj/item/device/multitool,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aJV" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) +"aJW" = (/obj/structure/table/woodentable,/obj/item/immovable_wand,/obj/item/paper/immovable_wand_note,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aJX" = (/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/obj/structure/bed/chair/shuttle/red{dir = 4},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aJY" = (/obj/machinery/sleeper{dir = 8},/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aJZ" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) @@ -1885,8 +1626,6 @@ "aKp" = (/obj/item/inflatable_duck,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) "aKq" = (/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/turf/unsimulated/beach/sand{icon_state = "beach"},/area/centcom/holding) "aKr" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28},/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"aKs" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/space) -"aKt" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/space) "aKu" = (/turf/space,/area/space) "aKv" = (/obj/item/toy/chubbyskeleton,/turf/unsimulated/beach/sand{icon_state = "desert3"},/area/centcom/holding) "aKw" = (/mob/living/simple_animal/faithful_hound,/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) @@ -2052,9 +1791,9 @@ "aQe" = (/obj/machinery/cryopod{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/white,/area/merchant_station) "aQf" = (/obj/machinery/light/small{dir = 1},/obj/machinery/computer/cryopod{pixel_y = 32},/obj/item/roller,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/merchant_station) "aQg" = (/obj/item/device/radio/intercom{pixel_y = 22},/obj/structure/table/reinforced,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = -2},/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/merchant_station) -"aQh" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aQi" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aQj" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) +"aQh" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/natural/jungle,/area/merchant_station) +"aQi" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/natural/jungle,/area/merchant_station) +"aQj" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light{dir = 1},/turf/simulated/floor/natural/jungle,/area/merchant_station) "aQk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/white,/area/merchant_station) "aQl" = (/obj/machinery/sleeper{dir = 8},/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/white,/area/merchant_station) "aQo" = (/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/blue/three_quarters{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) @@ -2093,9 +1832,9 @@ "aQV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aQW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aQX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/merchant_station) -"aQY" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aRa" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aRb" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/grass,/area/merchant_station) +"aQY" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/natural/jungle,/area/merchant_station) +"aRa" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/natural/jungle,/area/merchant_station) +"aRb" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/natural/jungle,/area/merchant_station) "aRc" = (/obj/structure/table/reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/effect/floor_decal/corner/blue/three_quarters,/turf/simulated/floor/tiled,/area/merchant_station) "aRd" = (/obj/structure/closet/crate/trashcart,/obj/random/drinkbottle,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "aRe" = (/obj/structure/table/reinforced,/obj/random/loot,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/merchant_station) @@ -2418,7 +2157,7 @@ "aYr" = (/obj/machinery/door/airlock/glass{name = "Restroom"},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aYs" = (/obj/machinery/firealarm{pixel_y = 26},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/trim/wood,/area/merchant_station) "aYu" = (/obj/machinery/computer/arcade,/turf/simulated/floor/trim/wood,/area/merchant_station) -"aYv" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/obj/machinery/chemical_dispenser/bar_coffee/full,/turf/simulated/floor/trim/carpet,/area/merchant_station) +"aYv" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) "aYw" = (/obj/structure/bed/chair/comfy/brown,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aYx" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/structure/sign/christmas/minigarland,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aYy" = (/obj/structure/cable/blue{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/plating/airless,/area/merchant_station) @@ -2474,7 +2213,7 @@ "aZx" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor/tiled,/area/merchant_station) "aZy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/table/woodentable,/obj/random/action_figure,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/bed,/obj/structure/curtain/open/bed,/obj/item/bedsheet/blue,/turf/simulated/floor/trim/carpet,/area/merchant_station) -"aZA" = (/obj/structure/holostool,/turf/simulated/floor/trim/wood,/area/merchant_station) +"aZA" = (/obj/item/stool/padded,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZB" = (/obj/structure/table/woodentable,/obj/machinery/microwave{pixel_y = 5},/obj/machinery/light{dir = 4},/obj/structure/sign/warning/smoking{pixel_x = 32},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZC" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aZD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/freezer,/area/merchant_station) @@ -2485,7 +2224,7 @@ "aZI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZJ" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZK" = (/obj/structure/table/woodentable,/obj/item/material/ashtray,/obj/item/clothing/mask/smokable/cigarette/cigar/havana,/obj/machinery/light{dir = 8},/turf/simulated/floor/trim/wood,/area/merchant_station) -"aZL" = (/obj/structure/holostool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/wood,/area/merchant_station) +"aZL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/stool/padded,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZM" = (/obj/structure/table/woodentable,/obj/item/storage/box/glasses/pint,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZN" = (/obj/item/modular_computer/console/preset/civilian,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZO" = (/obj/structure/table/woodentable,/turf/simulated/floor/trim/carpet/blue,/area/merchant_station) @@ -2494,7 +2233,7 @@ "aZR" = (/obj/structure/closet{name = "Wardrobe"; icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/shoes/leather,/obj/item/clothing/under/blazer,/obj/item/clothing/under/lawyer/black,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZS" = (/obj/structure/table/woodentable,/obj/random/toy,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZT" = (/obj/structure/table/woodentable,/obj/machinery/newscaster{pixel_x = -28},/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/trim/wood,/area/merchant_station) -"aZU" = (/obj/structure/holostool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/wood,/area/merchant_station) +"aZU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/stool/padded,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZW" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZX" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/trim/wood,/area/merchant_station) @@ -2536,7 +2275,6 @@ "bob" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/door/window/brigdoor/eastright/merchant{req_access = list(201)},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "boX" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw{icon_state = "corner_syndiwall_s"},/area/syndicate_station/start) "bpb" = (/obj/structure/grille,/obj/structure/window/miningpod,/turf/simulated/floor/plating,/area/shuttle/merchant/home) -"bpG" = (/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall{icon_state = "riveted_t"},/area/space) "bqb" = (/obj/structure/closet/crate/freezer,/obj/effect/floor_decal/industrial/outline/grey,/obj/random/loot,/obj/random/loot,/obj/random/loot,/turf/simulated/floor/tiled/dark,/area/merchant_station) "bqF" = (/obj/machinery/computer/arcade,/turf/simulated/floor/trim/carpet/arcade,/area/thunderfield) "brb" = (/obj/structure/closet/crate,/obj/effect/floor_decal/industrial/outline/grey,/obj/random/loot,/obj/random/loot,/obj/random/contraband,/turf/simulated/floor/tiled/dark,/area/merchant_station) @@ -2601,7 +2339,7 @@ "clu" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/syndicate_station/start) "clV" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/ne,/area/shuttle/administration/centcom) "con" = (/obj/structure/spider/stickyweb,/turf/simulated/floor/trim/wood,/area/thunderfield) -"cra" = (/obj/structure/barricade/material{layer = 6},/turf/simulated/wall/r_wall,/area/thunderfield) +"cra" = (/obj/structure/barricade/material,/turf/simulated/wall/r_wall,/area/thunderfield) "cst" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 1},/area/syndicate_station/start) "cvA" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/rescue_base/base) "cwc" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/alien) @@ -2648,7 +2386,7 @@ "dTW" = (/obj/structure/flora/tree/dead/deadtree_5,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "dUW" = (/obj/structure/bed/chair/shuttle/blue,/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "dVe" = (/obj/machinery/hologram/holopad,/obj/machinery/light{dir = 1},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) -"dWt" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) +"dWt" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "dWv" = (/obj/structure/closet/crate/freezer/rations,/obj/structure/closet/hydrant{pixel_x = -30},/obj/machinery/camera/network/crescent{dir = 4; c_tag = "Shuttle Cargo"},/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) "dYP" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 8},/area/wizard_station) "eak" = (/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) @@ -2704,7 +2442,6 @@ "ftS" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/rescue_base/start) "ful" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_y = 34; frequency = 1380; req_one_access = list(13); id_tag = "escape_shuttle"; tag_door = "escape_shuttle_hatch"},/obj/machinery/light,/obj/machinery/status_display{pixel_y = -30},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "fut" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) -"fuA" = (/obj/structure/flora/tree/dead/deadtree_0,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) "fwI" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/syndicate_mothership/elite_squad) "fzf" = (/obj/effect/decal/remains,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "fzQ" = (/obj/structure/table/woodentable,/obj/item/clothing/head/collectable/paper,/turf/simulated/floor/trim/carpet/purple,/area/thunderfield) @@ -2712,7 +2449,7 @@ "fAR" = (/obj/structure/flora/pottedplant/ugly,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "fBF" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/trim/wood,/area/thunderfield) "fDc" = (/obj/structure/flora/ausbushes,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) -"fDq" = (/obj/structure/table/rack/holorack,/obj/item/wrench,/obj/item/crowbar,/obj/item/gun/energy/crossbow,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"fDq" = (/obj/item/wrench,/obj/item/crowbar,/obj/item/gun/energy/crossbow,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fEK" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/effect/floor_decal/spline/fancy/wood,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "fFh" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/structure/flora/tree/dead/deadtree_5,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "fFq" = (/obj/structure/dogbed,/obj/item/stack/material/animalhide/corgi,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) @@ -2721,7 +2458,6 @@ "fMT" = (/obj/structure/bed/chair/comfy/blue{dir = 8},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "fNc" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/syndicate_mothership/elite_squad) "fQF" = (/obj/structure/bed,/obj/item/bedsheet/red,/obj/item/shield/buckler,/turf/simulated/floor/trim/wood,/area/thunderfield) -"fST" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) "fTw" = (/obj/structure/table/woodentable,/obj/item/device/flash,/turf/simulated/floor/trim/wood,/area/thunderfield) "fVx" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 4},/area/centcom/evac) "fZk" = (/obj/item/bodybag,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) @@ -2753,7 +2489,7 @@ "gJu" = (/obj/effect/decal/remains,/obj/random/maintenance,/turf/simulated/floor/tiled/dark,/area/thunderfield) "gMk" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 8},/area/centcom/control) "gNq" = (/obj/structure/table/steel,/obj/machinery/recharger,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) -"gND" = (/obj/structure/table/rack/holorack,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"gND" = (/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "gNN" = (/obj/machinery/shieldwallgen,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor,/area/centcom/control) "gPm" = (/obj/structure/sink{dir = 4; pixel_x = 11},/turf/simulated/floor/trim/wood,/area/thunderfield) "gRl" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) @@ -2764,10 +2500,9 @@ "gWb" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/thunderfield) "gWt" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/tdome) "gXo" = (/obj/machinery/body_scanconsole{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) -"gZG" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 9},/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) +"gZG" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 9},/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "hcf" = (/obj/structure/table/gamblingtable,/obj/item/deck/cards,/obj/item/reagent_containers/vessel/bottle/rum,/obj/item/wrench,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) "heY" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_v"; dir = 4},/area/shuttle/administration/centcom) -"hfr" = (/obj/item/modular_computer/console/preset/command,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "hgW" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/centcom/creed) "hjL" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/shuttle/escape/centcom) "hjQ" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) @@ -2830,7 +2565,7 @@ "iqt" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/centcom/control) "iqz" = (/obj/structure/table/woodentable,/obj/item/material/knife/butch,/turf/simulated/floor/trim/wood,/area/thunderfield) "irC" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/centcom/specops) -"isX" = (/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) +"isX" = (/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "iuw" = (/turf/unsimulated/wall{icon_state = "riveted_15"},/area/syndicate_mothership) "iuK" = (/obj/effect/decal/cleanable/blood/oil,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "ixg" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/centcom/ferry) @@ -2855,7 +2590,7 @@ "jgO" = (/obj/structure/bed/chair/shuttle/red{dir = 8},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "jhK" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/closet,/obj/random/clothing/hat,/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "jiP" = (/turf/unsimulated/wall{icon_state = "riveted_d"},/area/tdome) -"jkb" = (/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/tiled/dark,/area/thunderfield) +"jkb" = (/obj/structure/barricade/material,/turf/simulated/floor/tiled/dark,/area/thunderfield) "jkj" = (/obj/item/broken_bottle,/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "jkD" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 1},/area/syndicate_station/start) "jlm" = (/obj/effect/decal/cleanable/vomit,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) @@ -2868,7 +2603,6 @@ "juQ" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "juT" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/centcom/holding) "jxM" = (/obj/structure/table/rack/dark,/obj/random/projectile,/obj/random/projectile,/obj/random/ammo,/obj/random/ammo,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) -"jAX" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/space) "jBj" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) "jDs" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "jEl" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/shuttle/administration/centcom) @@ -2892,13 +2626,13 @@ "jZg" = (/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled/dark,/area/thunderfield) "kaA" = (/turf/unsimulated/wall{icon_state = "riveted_s"; dir = 4},/area/wizard_station) "kaV" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) -"kaZ" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 6},/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) +"kaZ" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 6},/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "kdl" = (/obj/machinery/autolathe,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "kfM" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/rescue_base/start) "kgP" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/structure/flora/tree/dead/deadtree_2,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "khi" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/obj/structure/window/syndi{icon_state = "ws6"},/turf/simulated/floor/plating,/area/syndicate_station/start) "khq" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/rescue_base/base) -"khQ" = (/obj/machinery/computer/crew,/obj/machinery/light{dir = 4},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"khQ" = (/obj/machinery/computer/crew,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "kia" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/centcom/control) "kiK" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/tdome) "kiM" = (/turf/unsimulated/wall{icon_state = "riveted_s"; dir = 4},/area/tdome) @@ -2914,7 +2648,7 @@ "kpE" = (/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "ksb" = (/obj/machinery/door/blast/regular{name = "Thunderdome Blast Door"; id = "thunderdome"},/obj/machinery/door/blast/regular{name = "Thunderdome Blast Door"; dir = 8; id = "thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "kti" = (/obj/structure/table/woodentable,/obj/random/cash,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) -"kvR" = (/obj/machinery/door/airlock/hatch,/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) +"kvR" = (/obj/machinery/door/airlock/hatch,/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "kwe" = (/obj/machinery/door/airlock/centcom,/turf/simulated/floor/tiled/dark,/area/thunderfield) "kzN" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) "kAz" = (/obj/structure/table/woodentable,/obj/random/handgun,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) @@ -2939,7 +2673,7 @@ "kYZ" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/centcom/control) "laf" = (/obj/structure/table/standard,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "lap" = (/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) -"lat" = (/obj/structure/flora/ausbushes/palebush,/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) +"lat" = (/obj/structure/flora/ausbushes/palebush,/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "lbs" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 8},/area/tdome) "lei" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/smoothwhite/se{icon_state = "corner_whiteship_s"},/area/supply/dock) "ley" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) @@ -2969,7 +2703,7 @@ "lNM" = (/obj/structure/table/standard,/obj/item/storage/box/masks,/obj/item/storage/box/gloves{pixel_x = 3; pixel_y = 4},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "lNO" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/lattice,/turf/space,/area/skipjack_station/base) "lRi" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_b"; dir = 1},/area/centcom/evac) -"lSn" = (/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) +"lSn" = (/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "lSv" = (/obj/machinery/door/airlock/hatch{name = "Ship External Access"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_one_access = 150; id_tag = "vox_northwest_lock"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "lTV" = (/obj/structure/window/syndi{icon_state = "ws2"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) "lWu" = (/obj/structure/table/steel,/obj/item/device/flashlight/lamp/brown,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) @@ -3004,7 +2738,7 @@ "mMc" = (/obj/machinery/light/small{dir = 8},/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "mMw" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/centcom/control) "mOI" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"mRw" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 4},/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) +"mRw" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 4},/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "mRH" = (/obj/effect/floor_decal/spline/fancy/wood,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "mUY" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/alien) "mVd" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) @@ -3031,7 +2765,6 @@ "nGx" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "nJi" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/prison/solitary) "nJG" = (/obj/machinery/atmospherics/binary/passive_gate/on,/turf/simulated/floor/shuttle/white,/area/rescue_base/start) -"nKa" = (/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) "nMG" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/syndicate_station/start) "nNa" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/centcom/holding) "nNs" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/obj/structure/flora/tree/dead/deadtree_3,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) @@ -3040,7 +2773,7 @@ "nSC" = (/obj/structure/table/gamblingtable,/obj/item/reagent_containers/vessel/bottle/cognac,/turf/simulated/floor/trim/wood,/area/thunderfield) "nVu" = (/obj/machinery/computer/teleporter,/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) "nWi" = (/obj/structure/flora/ausbushes/ywflowers,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"nWE" = (/obj/machinery/door/airlock/hatch,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/tiled/dark,/area/thunderfield) +"nWE" = (/obj/machinery/door/airlock/hatch,/obj/structure/barricade/material,/turf/simulated/floor/tiled/dark,/area/thunderfield) "nWQ" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "nZC" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/syndicate_mothership) "oft" = (/turf/unsimulated/wall{icon_state = "riveted_s"; dir = 1},/area/centcom/holding) @@ -3080,7 +2813,7 @@ "pcJ" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/syndicate_station/start) "pdB" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 4},/area/centcom/specops) "pea" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 4},/area/shuttle/administration/centcom) -"pfT" = (/obj/structure/table/rack/holorack,/obj/item/gun/launcher/grenade,/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"pfT" = (/obj/item/gun/launcher/grenade,/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "pfY" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/amanitajelly,/turf/simulated/floor/trim/wood,/area/thunderfield) "pgX" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/ne{icon_state = "corner_syndiwall_s"},/area/syndicate_station/start) "phO" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/centcom/holding) @@ -3121,7 +2854,7 @@ "quU" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/centcom/creed) "qyG" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "qzN" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/space) -"qBz" = (/obj/machinery/door/unpowered/simple/wood,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/trim/wood,/area/thunderfield) +"qBz" = (/obj/machinery/door/unpowered/simple/wood,/obj/structure/barricade/material,/turf/simulated/floor/trim/wood,/area/thunderfield) "qCi" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bottle/small/beer,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "qCR" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/se,/area/centcom/evac) "qFj" = (/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) @@ -3134,28 +2867,26 @@ "qOH" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/medic,/obj/item/clothing/head/helmet/space/vox/medic,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "qOX" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/rescue_base/base) "qQb" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership/elite_squad) -"qQY" = (/obj/structure/table/rack/holorack,/obj/item/shovel,/obj/item/storage/toolbox/mechanical,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"qQY" = (/obj/item/shovel,/obj/item/storage/toolbox/mechanical,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "qRb" = (/obj/machinery/door/unpowered/simple/wood,/turf/simulated/floor/trim/wood,/area/thunderfield) "qSu" = (/obj/effect/floor_decal/industrial/warning/dust,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "qTG" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/acting/backstage) "qTU" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) -"qXV" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/space) "rci" = (/obj/item/stool/padded,/obj/effect/landmark/start/antags/vox,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "rdB" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/syndicate_mothership) "reZ" = (/obj/structure/iv_drip,/obj/item/reagent_containers/ivbag/blood/AMinus,/obj/item/reagent_containers/ivbag/blood/APlus,/obj/item/reagent_containers/ivbag/blood/BMinus,/obj/item/reagent_containers/ivbag/blood/BPlus,/obj/item/reagent_containers/ivbag/blood/OMinus,/obj/item/reagent_containers/ivbag/blood/OPlus,/obj/structure/closet/secure_closet/medical_wall{name = "Blood Locker"; pixel_x = -28},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "rgy" = (/turf/simulated/floor/trim/carpet/red,/area/thunderfield) -"rgC" = (/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/trim/wood,/area/thunderfield) +"rgC" = (/obj/structure/barricade/material,/turf/simulated/floor/trim/wood,/area/thunderfield) "rgP" = (/obj/structure/table/woodentable,/obj/structure/bedsheetbin,/turf/simulated/floor/trim/wood,/area/thunderfield) "rkm" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/sw,/area/centcom/evac) "rkU" = (/obj/structure/janitorialcart,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "rmd" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/skipjack_station/base) "rmy" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) -"rnH" = (/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) +"rnH" = (/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "rxn" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/shuttle/deathsquad/centcom) "rzD" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 1},/area/centcom/specops) "rzU" = (/turf/simulated/floor/shuttle/blue,/turf/simulated/shuttle/wall/corner/smoothwhite/nw{icon_state = "corner_whiteship_s"},/area/supply/dock) "rAs" = (/obj/structure/closet/crate,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/crowbar,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) -"rAx" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/space) "rBo" = (/obj/effect/decal/cleanable/vomit,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "rBJ" = (/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "rCT" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 4},/area/syndicate_station/start) @@ -3186,7 +2917,6 @@ "spq" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "ssT" = (/obj/random/junk,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "stc" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/sw{icon_state = "corner_syndiwall_s"},/area/shuttle/administration/centcom) -"stu" = (/turf/unsimulated/wall{icon_state = "riveted_15"},/area/space) "svn" = (/obj/effect/floor_decal/industrial/warning/dust/corner{dir = 4},/obj/effect/decal/remains,/obj/item/wrench,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "szw" = (/turf/simulated/mineral,/area/thunderfield) "sAd" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) @@ -3285,7 +3015,6 @@ "vev" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "vfl" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 1},/area/syndicate_mothership/ninja) "vks" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"vkN" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) "vlf" = (/obj/structure/window/syndi{icon_state = "ws4"},/turf/simulated/floor/plating,/area/rescue_base/start) "vnm" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "vok" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) @@ -3319,7 +3048,6 @@ "wqb" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/centcom/holding) "wqW" = (/obj/effect/floor_decal/spline/fancy/wood,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "wry" = (/obj/structure/table/rack/dark,/obj/item/gun/energy/sniperrifle,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/kinetic_accelerator,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) -"wsI" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/space) "wsT" = (/obj/structure/bed/chair/shuttle/red{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "wtv" = (/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/syndi/nw{icon_state = "corner_syndiwall_s"},/area/shuttle/administration/centcom) "wvS" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/wizard_station) @@ -3331,7 +3059,6 @@ "wEs" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "6"; dir = 8},/turf/simulated/floor/plating,/area/shuttle/escape/centcom) "wFU" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "wGr" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "skipjack_shuttle_pump"},/obj/machinery/airlock_sensor{pixel_x = 8; pixel_y = 25; frequency = 1380; id_tag = "skipjack_shuttle_sensor"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) -"wGt" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) "wGG" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/skipjack_station/base) "wHQ" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/skipjack_station/base) "wIm" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) @@ -3389,43 +3116,43 @@ "yjV" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/se,/area/shuttle/escape/centcom) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaacaacaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuqzNmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmKaaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuqzNaagaagaagaagaagaagaagaagaagaagtVdaagaagaagaagaagaagaagaagaagaagtVdaagaagaagaagaagaagaagaagaagaagtVdaagaagaagaagaagaagaagaagaagaagtVdaagaagaagaagaagaagaagaagaagaagtVdaagaagaagaagaagaagaagaagaagaagtVdaagaagaagaagaagaagaagaagaagaagmKa -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudDCdcWdcWdcWjmqdcWdcWgmKaKuaalnKanKanKavkNnKanKanKanKanKanKaaaoaapaaJaaKaaJaaKaaJaaKaaJaaKaapaaoaaraasaasaasaasaasaasaasaasaasaaoaavaaNaauaaAaaDaaDaaDaaDaaMaavaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaBaaCaaCaaCaaCaaRaaRaaRaaRabaaaE -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaFaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaFaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuabyabOabOabOjsXabOabOabyaKuaalnKanKanKanKanKanKanKanKafSTnKaaaoaapaaKaaJaaKaaJaaKaaJaaKaaJaaqaaoaaLaaLaaLaaLaaLaaLaaLaaLaaLaaLaaoaavaaNabbabcabdabdabdabdabeaavaaoaawaaOaawaawaawaawaawaawaaOaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaPaaQaaQaaQaaQaaQaaQaaQaaQabfaaE -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUaaUaaVaaVaaVaaUaaUaaVaaVaaVaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuabyabOacaabOacbabOabOabyaKuaalnKafSTnKanKanKanKanKanKanKanKaaaoaapaaJaaWaaXaaYaaXaaYaaZaaKaaqaaoaaLaaLaaLaaLaaLaaLaaLaaLaaLaaLaaoaavaaNabpabrabrabrabrabrabrabraaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaPaaQaaQaaQaaQaaQaaQaaQaaQabfaaE -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHabgaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabhaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuabyaclaclaclrFCabOabOabyaKuaalnKanKanKanKanKavkNnKanKanKanKaaaoaaqaaKabiablablablablabmaaJaapaaoabnabnabnabnabnabnabnabnabnaboaaoaavaaNaaNabqabsabtabHabHabtabuaaoaawaawaawaaOaawaawaaOaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaPaaQaaQaaQaaQaaQaaQaaQaaQabfaaE -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdbtecwcdcWdcWdcWmUYabOabOabyaKuaalnKanKavkNnKanKanKavkNnKanKanKaaaoaaqaaJabjabkabzabzabkabAaaKaapaaoabBabBabCabDabDabDabDabEabBabFaaoaavaaNaavabvabSabwabUabUabwabGaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaPaaQaaQaaQaaQaaQaaQaaQaaQabfaaE -aaaaahaahaahaahaahaahaahaahabLaaGaaGaaGaaGaaGabMabMabMabMabLaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSabNaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdacbabOacbabOabOabOabOabOabyaKuaalnKanKanKanKanKanKanKanKanKanKaaaoaapaaJabjabkabzabzabkabAaaKaaqaaoabBabBabPabQabQabQabQabRabBabFaaoaavaaNabIabJacpabUabUabUabwabGaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaPaaQaaQaaQaaQaaQaaQaaQaaQabfaaE -aaaaahaahaahaahaahaahaahabLaaGabYabYabYabYabYabYabYabYabYabMabLaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdbtedcWdcWgmKabOabOabOacxabyaKuaalnKanKanKanKanKafSTnKanKanKavkNaaoaapaaKabiablablablablabmaaJaapaaoabBabBabPabQabQabQabQabRabBabFaaoaavaaNaavabKabTabwabUabUabwabGaaoaawaawaawaaOaawaawaaOaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoabVabWabWabWabWacQacQacQacQacRaaE -aaaaahaahaahaahaahaahabLaaGabYabYabYabYabYabYabYabYabYabYabYabMabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuabyaclabOabOacxabyaKuaalnKanKafSTnKanKanKanKanKanKanKaaaoaaqaaJacmaceablablaccacnaaKaaqaaoabBabBabPabQabQabQabQabRabBabFaaoaavaaNaaNabXacfacgachachacgacoaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoacqacqacracqacqacqacqacCacqacqaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacuaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUackacvacwackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuabyaclabOabOacxabyaKuaalnKanKanKanKanKanKanKanKanKanKaaaoaapaaKaaJabjablablabAaaKaaKaapaaoabBabBacyaczaczaczaczacAabBacBaaoacNacMacNacNacNacNacNacOacNacNaaoaawaaOaawaawaawaawaawaawaaOaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaazaazaayaazaazaazaazaayaazaazaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacEactactacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaaTaaTaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUackacGacHackaaUaaUabZaaUacIaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKunecdcWdcWdcWdcWmUYaKuaalvkNnKanKanKafSTnKanKanKanKafSTaaoaapaaJaaKabiablablabAaaKaaJaapaaoabBabBabBabBabBabBabBabBabBacLaaoaataataataataataataataataataataaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaayaayaayaayaayaayaayaayaayaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuqXVacTacTacTacTacTacTacTacTacTacTstuacTacTacTacTacTacTacTacTacTacTstuacTacTacTacTacTacTacTacTacTacTstuacUacUacUacUacUacUacUacUacUacUstuacUacUacUacUacUacUacUacUacUacUstuacUacUacUacUacUacUacUacUacUacUstuacUacUacUacUacUacUacUacUacUacUowb -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuoEbaeqaeqpYZaeqaeqpYZaeqaeqpYZaeqaeqnJiaKuaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWacWacWacWacWacWacWaaoacXacXacXacXacXacXacXacXacXacXaaoadcaddaddaddadfafaafbafbafbafcaaoadgadgadgadgadgadgadgadbafSafSaaoacPadjadjadjadkadladmadmadmadAaaoadnadnadoadoadoadoadoadoadoadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuhKrxvQadpadpafNadpadpvHmuGoadqqQbadqblnaKuaKuaKuaKuafOacSaeUafOacSaeVafOacSaeWafOacSaeUafOaKuaalacVacVacVadracVacVacVacVadracVaaoacWadsacWacWacWacWadsacWacWacWaaoacXacXadtaduaduaduadvacXacXacXaaoadwadxadxadxadyafqadxadxadxafraaoadgadgadgadgadgadgadgadbafSafSaaoadCadBadBadBadTaeBadBadBadBaeCaaoadoadoadoadoadDadDadDadoadoadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEadEaaGaaGaaFaaGadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSabMabMaaFabMabMadEadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUaaUaaUadFaaUadFaaUadFaaUadGaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuvQUadHadIadJadJadKadJadLoUCadMadNadMvQUaKuaKuaKuaKuafOaeTaeWafOaeTaeUafOaeTaeUafOaeTaeUafOaKuaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWacWacWacWacWadOacWaaoacXacXadPadPadPadPadPacXacXacXaaoadcaddadwadxadyafqadxafrafbafcaaoadgadgadgadgadzadgadgadbafSafSaaoadCadBadBadBadTaeBadBadBadBaeCaaoadoadoadoadUadVadVadVadoadoadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacuaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUadYaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuvQUadZaeaaeaaeaaeaaeaaeaaebadNadNadNvQUaKuaKuaKuaKuchoaeqaeqpNwaeqaeqpNwaeqaeqpNwaeqaeqjVTaKuaalacVadracVacVacVacVadracVacVacVaaoacWacWfuAacWadOacWacWacWacWacWaaoaedaedaedaedaedaedaedaedaedaeeaaoadQadxadwadxaeyafqadxafradxafBaaoadgadgadRadgaefadgadgadbafSafSaaoadCadBadBadBadTaeBadBadBadBaeCaaoadoadDaegaehaeiaeiaejaekadDadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWaeladXacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaafaKuaKuhKrqQbqQbqQbkoZaemaeaaenaenaenaeaaeoquBaepquBaepvQUaKuaKuaKuaKuafOacSaeUafOacSaeUafOafpaeUafOacSaeWafOaKuaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWaeracWacWacWacWaeracWaaoaedaetaeuaeuaeuaeuaeuaevaedaeeaaoaewaexadwadxadyafqadxafrafCagaaaoadgadgadgadgadgadgadgadbafSafSaaoadCadBadBadBadTaeBadBadBadBaeCaaoadoadDaegaeEaeFaeGaeHaekadDadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaeIaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeIaakaafaKuaKuvQUaeKaeLaeLaeLaeMaeaaeNaeOaeOaePaeQvQUaeRvQUaeSvQUaKuaKuaKuaKuafOaeTaeWafOaeTaeUafOaeTaeUafOaeTaeUafOaKuaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWacWacWacWacWacWacWaaoaedaeXaeYaeYaeYaeYaeYaeZaedaeeaaoadwadxadxadxadyafqadxadxadxafraaoadgadSadgadgadgadgadgadbafSafSaaoadCadBadBadBadTaeBadBadBadBaeCaaoadoadDaegaeEafgafhaeHaekadDadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuvQUafkaflaflaflafmaeaaeOafnafoaePaeQfNcqQbgmaqQbfwIaKuaKuaKuaKubzNaeqaeqkKSaeqaeqkKSaeqaeqkKSaeqaeqbMhaKuaalacVacVacVadracVacVacVacVadracVaaoacWacWacWacWadsacWfuAacWacWadsaaoaedaeXaeYaeYaeYaeYaeYaeZaedaeeaaoaewaexaexaexaezafYafCafCafCagaaaoadgadgadgaeAadgadgadgadbafSafSaaoaeDafdafdafdafeaffafsafsafsagdaaoadoadDaegaejafuafuafvaekadDadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKubcVqQbqQbqQbblnafwaeaafxafxafxaeaaeooUCafyaeaafyfNcqQbqQbblnaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaalacVacVacVacVacVacVacVacVacVacVaaoafzacWacWacWacWafzacWacWacWacWaaoaedaeXaeYaeYaeYaeYaeYafAaedaeeaaoafDafDafZafDafDafDafDakpafDafDaaoadgadgadgadgadgadzadgadbafSafSaaoaftaftafEaftaftaftaftagbaftaftaaoadoadoadoafFafFafFafGadoadoadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYafHabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuvQUadZaeaaeaaeaaeaaeaaeQafJaeaaeaafKvQUafLafMvQUaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaalacVadracVacVacVacVadracVacVacVaaoacWaeracWfuAacWacWaeracWadOacWaaoaedafPafQafQafQafQafQafRaedaeeaaoadaadaacZadaadaadaadaacZadaadaaaoadgadgadgadgadgadgadgadbafSafSaaoadiadiadhadiadiadiadiadhadiadiaaoadoadoadoadDadDadDadoadoadoadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuvQUafTafUafVaeaaeaaeaafWquBafyaeaafyfNcqQbqQbkoZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWafzacWacWacWacWafzaaoaedaedaedaedaesaesaedaedaedaeeaaoacZacZacZacZacZacZacZacZacZacZaaoadgadgadgadgadgadgadgadbafSafSaaoadhadhadhadhadhadhadhadhadhadhaaoadoadoadoadoadoadoadoadoageageaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuoUCaJAadpquBagfquBadpaJAbcVqQbqQbqQbkoZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKulYOwGtwGtwGtwGtwGtwGtwGtwGtwGtwGtjAXwGtwGtwGtwGtwGtwGtwGtwGtwGtwGtjAXwGtwGtwGtwGtwGtwGtwGtwGtwGtwGtjAXwGtwGtwGtwGtwGtwGtwGtwGtwGtwGtjAXwGtwGtwGtwGtwGtwGtwGtwGtwGtwGtjAXwGtwGtwGtwGtwGtwGtwGtwGtwGtwGtstuacUacUacUacUacUacUacUacUacUacUowb -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahadEadEadEadEadEadEadEadEaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKuaKuaKuvQUaghvQUaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaalacKacKacKacKacKacKacKacKacKacKaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaahaahaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKuaKuaKuvQUagivQUaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaFGacUacUacUacUacUaggacUacUacUacUacUaggacUacUacUacUacUaggacUacUacUacUacUaGhaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaalacKacYagcanPapmauuaybaycayDacKaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaacaacaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEadEadEadEadEadEadEaahaahaahaahaahaahaahaahaahaahaahaahadEadEadEadEadEadEadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKuaKuaKuoUCagjoUCaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGiaFBaFCaFDaFEaFQaGiaFgaFgaFgaFgaFgaGiaFnaFyaFzaFzaFnaGiaGsaGjaGjaGjaGtaGiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagkaabaKuaKuaalacKayEayFayEayFayEayFayEayFacKaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuafXagmvcdaIKagnaIKvcdagmagHaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGiaFFaFWaFPaFDaGfaGiaFgaFgaFgaFgaFgaGiaFzaFzaFyaFyaFzaGiaGjaGuaGvaGyaGjaGiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayGayHayGayHayGayHayGayHacKaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaabaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaIBagoaIBagpagqagraIBagoaIBaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGiaFRaFSaFTaFBaFCaGiaFgaFgaFgaFgaFgaGiaFyaFyaFAaFzaFyaGiaGjaGzaGOaGPaGjaGiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayHayGayHayGayHayGayHayGacKaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuagsdLuaKjagtaguagvaglgtBagwaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGiaGgaFDaFUaFVaFEaGiaFgaFgaFgaFgaFgaGiaFzaFzaFyaFyaFyaGiaGjaGQaKsaKtaGjaGiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayGayHayGayHayGayHayGayHacKaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaKuaKuaKuaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKufjtycpaIKagxaIKfsHrDkaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGiaGfaFEaFCaFWaFRaGiaFgaFgaFgaFgaFgaGiaFnaFyaFzaFzaFnaGiaGwaGjaGjaGjaGxaGiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayHayGayHayGayHayGayHayGacKaaE -aaaaahaahaahaahaahaahabLabLabLabLabLabYabYabYabYabYabLabLabLabLabLaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKuagyagzagAagBagCagDagyaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuwsIacUacUacUacUacUstuacUacUacUacUacUstuacUacUacUacUacUstuacUacUacUacUacUrAxaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayIayJayIayJayIayJayIayJacKaaE -aaaaahaahaahaahaahaahaahaahaahaahabLabLabLabLabLabLabLaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKunOIagzagEagCagCagDnOIaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayKayLayMayNayOazbazcazdacKaaE -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiaakaafaKuaKuaKuaKuafIaKuaKuagsaCoagFagCagGxpVagwaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKacKacKacKacKacKacKacKacKacKaaE -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaafaKuaKuaKuaKuafIafIaKuaKuaIBagIagCagJaIBaKuaKuafIafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahagKvflagMagLagNaahaahaahaahaahaahaahaaaaabaKuaKulYOwGtwGtwGtwGtwGtwGtwGtwGtwGtwGtdkk -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahadEadEadEadEadEadEadEadEadEaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKulYOmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJdkkaKuaKuaKuaKuaKuafIaKuaKuaIBagFagCagGaIBaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahwTmagOagPagQaEDaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahadEadEagRagRagRagRagRagRagRadEaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIaKuaKuaIBagSagTagUaIBaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaGiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahlTVagPagVagPlTVaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaabaaaaahaahaahaahaahaahaahagWagRagRagRagRagRagRagRagRagRaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIaKuaKuagsaCoagYxpVagwaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGkacUacUacUacUacUbpGacUacUacUacUacUbpGacUacUacUacUacUbpGacUacUacUacUacUaGlaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahbzQagZagPagZbzQaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaacaacaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuqzNmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmKaaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudDCdcWdcWdcWjmqdcWdcWgmKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaFaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaFaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuabyabOabOabOjsXabOabOabyaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUaaUaaVaaVaaVaaUaaUaaVaaVaaVaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuabyabOacaabOacbabOabOabyaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHabgaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabhaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuabyaclaclaclrFCabOabOabyaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdbtecwcdcWdcWdcWmUYabOabOabyaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahaahabLaaGaaGaaGaaGaaGabMabMabMabMabLaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSabNaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdacbabOacbabOabOabOabOabOabyaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahabLaaGabYabYabYabYabYabYabYabYabYabMabLaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdbtedcWdcWgmKabOabOabOacxabyaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLaaGabYabYabYabYabYabYabYabYabYabYabYabMabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuabyaclabOabOacxabyaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacuaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUackacvacwackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuabyaclabOabOacxabyaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacEactactacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaaTaaTaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUackacGacHackaaUaaUabZaaUacIaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKunecdcWdcWdcWdcWmUYaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuoEbaeqaeqpYZaeqaeqpYZaeqaeqpYZaeqaeqnJiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuhKrxvQadpadpafNadpadpvHmuGoadqqQbadqblnaKuaKuaKuaKuafOacSaeUafOacSaeVafOacSaeWafOacSaeUafOaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEadEaaGaaGaaFaaGadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSabMabMaaFabMabMadEadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUaaUaaUaaUaaUadFaaUadFaaUadFaaUadGaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuvQUadHadIadJadJadKadJadLoUCadMadNadMvQUaKuaKuaKuaKuafOaeTaeWafOaeTaeUafOaeTaeUafOaeTaeUafOaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacuaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaUaaUaaUadYaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaKuaKuaKuaKuaKuaKuvQUadZaeaaeaaeaaeaaeaaeaaebadNadNadNvQUaKuaKuaKuaKuchoaeqaeqpNwaeqaeqpNwaeqaeqpNwaeqaeqjVTaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWaeladXacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaafaKuaKuhKrqQbqQbqQbkoZaemaeaaenaenaenaeaaeoquBaepquBaepvQUaKuaKuaKuaKuafOacSaeUafOacSaeUafOafpaeUafOacSaeWafOaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaeIaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeIaakaafaKuaKuvQUaeKaeLaeLaeLaeMaeaaeNaeOaeOaePaeQvQUaeRvQUaeSvQUaKuaKuaKuaKuafOaeTaeWafOaeTaeUafOaeTaeUafOaeTaeUafOaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuvQUafkaflaflaflafmaeaaeOafnafoaePaeQfNcqQbgmaqQbfwIaKuaKuaKuaKubzNaeqaeqkKSaeqaeqkKSaeqaeqkKSaeqaeqbMhaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKubcVqQbqQbqQbblnafwaeaafxafxafxaeaaeooUCafyaeaafyfNcqQbqQbblnaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYafHabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuvQUadZaeaaeaaeaaeaaeaaeQafJaeaaeaafKvQUafLafMvQUaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuvQUafTafUafVaeaaeaaeaafWquBafyaeaafyfNcqQbqQbkoZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuoUCaJAadpquBagfquBadpaJAbcVqQbqQbqQbkoZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahadEadEadEadEadEadEadEadEaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKuaKuaKuvQUaghvQUaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaahaahaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKuaKuaKuvQUagivQUaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaacaacaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEadEadEadEadEadEadEaahaahaahaahaahaahaahaahaahaahaahaahadEadEadEadEadEadEadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKuaKuaKuoUCagjoUCaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagkaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuafXagmvcdaIKagnaIKvcdagmagHaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaabaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaIBagoaIBagpagqagraIBagoaIBaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuagsdLuaKjagtaguagvaglgtBagwaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaKuaKuaKuaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKufjtycpaIKagxaIKfsHrDkaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahabLabLabLabLabLabYabYabYabYabYabLabLabLabLabLaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKuagyagzagAagBagCagDagyaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahaahaahaahabLabLabLabLabLabLabLaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaKuaKuaKuaKuafIaKuaKunOIagzagEagCagCagDnOIaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiaakaafaKuaKuaKuaKuafIaKuaKuagsaCoagFagCagGxpVagwaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaafaKuaKuaKuaKuafIafIaKuaKuaIBagIagCagJaIBaKuaKuafIafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahagKvflagMagLagNaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahaahadEadEadEadEadEadEadEadEadEaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKulYOmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJmjJdkkaKuaKuaKuaKuaKuafIaKuaKuaIBagFagCagGaIBaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahwTmagOagPagQaEDaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaaaahaahaahaahaahaahaahadEadEagRagRagRagRagRagRagRadEaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIaKuaKuaIBagSagTagUaIBaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahlTVagPagVagPlTVaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaabaaaaahaahaahaahaahaahaahagWagRagRagRagRagRagRagRagRagRaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIaKuaKuagsaCoagYxpVagwaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahbzQagZagPagZbzQaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaagkaabaaaaahaahaahaahaahaahaahagWagRagRagRagRahaagRagRagRagRaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabagXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIafIaKuaKuagsahcagwaKuaKuafIafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahbzQagPagPagPbzQaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaahaahaahaahaahaahaahagWagRagRagRagRagRagRagRagRagRaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabagXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahpUhagPagPagPpUhaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaabaaaaahaahaahaahaahaahaahagWagRagRagRagRagRagRagRagRagRaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaaFaaFaaFaaGaaGaaGaaGaaGaaGaaGaaGaaGabMabMabMabMabMabMabMabMaaFaaFaaFaahaahaahaahaahaahaahaaaaabagXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIafIaKuaKuaKuaKuaKuafIafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahcAMahdahfahecAMaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu @@ -3536,7 +3263,7 @@ aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaK aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuirCaCWaCWaCXawZaCYaCZaDaazvirCaDbaDcaywmcwayWaDdmcwaywaDcaDbaveaDeayWayWaCyaCzirCaDfaDgaDhaDfaxfaDjaJfaDljuTaDnayYaDoaATkYZiqtaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaDpahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGaAiahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahGahG aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKunshhBVhBVhBVhBVhBVhBVhBVhBVsdNhBVhBVhBVyfgaDqaDqnshhBVhBVhBVecGaDrayWayWaCyaCzirCaDfaDsaDsaDfaxfaDjaJfaDlnNaaDtaDuaDvaDwaDxnNaaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaDzrxnaDAaDAaDAaDBaDBaDAaDAaDCaKuirCaDDayWayWaCyaCzirCaDfaDhaDhaDfaxfaDjaJfaDlnNaaDEaDkaDkaDkaDFnNaaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKutgXgevazOazOazOazOazOmmBhjLaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu -aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaDNaDOaDPaDQaDRaDSaDSaDTaDTijuaDCnshqlxaDVaDVhTHhBVtDHaDWaDfaDfaDfaDXaDjaJfaDlcIiaCkaDZaCkaDiaCknNaaKuaKuaKuaKuaKuaKuaKuaKuaKuaKutgXeeAaIhaJqaBUaCPaIhhnghfrewQhjLaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaDNaDOaDPaDQaDRaDSaDSaDTaDTijuaDCnshqlxaDVaDVhTHhBVtDHaDWaDfaDfaDfaDXaDjaJfaDlcIiaCkaDZaCkaDiaCknNaaKuaKuaKuaKuaKuaKuaKuaKuaKuaKutgXeeAaIhaJqaBUaCPaIhhngaIhewQhjLaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaDNaDOaEhaDSaDSaDSaDSaDSaDSaDUsFUaBqayWayWayWayWayWaAKaDfaEiaDfaEiaxfaDjaJfaEjaDXaDkaDkaEaaFJaEkjuTwqbwqbwqbwqbwqbwqbwhzaKuaKutgXeeAaFOaDIazYmLGaFslhlazYaDIaIWewQhjLaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaDNaDOaEqaEraEtaEPaEtaEtaEtmAYaEuaBqayWayWayWayWayWaSFaDfaEiaDfaEiaxfaDjaJfaEjaDXaDkaDkaElaEvaEwnNaaEyaECaEyaEyaECaEynNaaKuaKuaENaKzaBpazYazYfulaILmyEazYazYaBokhQaENaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaEGaIMaDAaDAaDAaDAaDAaDAaDAaEuaKuaBqayWayWayWayWayWmcwaDfaEiaDfaEiaxfaEHaEIaEJxXxaCkaEKaELaEMaHhcIiaECaEAaEBaECaEAaEBnNaaKuaKuaENjXvaJUaBoaIXaEbaAgaEbaIYazYazYrGkaENaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu @@ -3610,7 +3337,7 @@ aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaK aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubgbbgbbhbaRKaRLaRMbhbbgbbgbajGaRNaROaRPaRQaRRaRSaRRaRTaRUaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudBqszwszwszwszwszwszwszwxAnxAntvXxAnrHErnHjtyjtyjtyjtyjtyjtyjtyjtyjtytLijtyjtyjtyjtyjtyjtyjtyjtyjtynwdjtywImxgxiWqpLTiyiiWqxgxoxkdDZxAnxAntvXxAnxAnxgxxgxxAnlulxgxtvXszwszwdBqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubibbjbbkbblbaRZblbbkbbjbbmbajGaQCaQFaQbbnbaSdaSeaSfaSgaShaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudBqszwszwszwszwszwszwszwxAntvXtvXidPrHEjtyjtyjtyjtyjtyjtyxgxxgxqBzxgxqRbxgxxgxwImjtyjtyjtyxgxxgxxgxqRbxgxxgxxgxgrqekBetzgrqcraoxkxAnxAnxAntvXtvXtvXxAntvXxAntvXdfJtvXszwszwdBqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubhbbobaSjaSkaSlbsbbhbaKuaQbaQCaQHaQbaQbaQbaQbaQbaQbaQbaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudBqszwszwszwszwszwszwszwszwtvXtlHxAnrHExgxxgxaBSaBHaBHxgxxgxetzetzetzetzetzxgxxgxrnHjtyrnHxgxfTwoQtetzconkpyxgxetzetzetzetzaBSoxkxAnqjGxAntvXtHHdROwzbwzbnlPnlPvBEtvXszwszwdBqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuukcbixbixbixbixbixbixlkhbixbixbixlkhbixaSobixkENdYPaKuaKuaKuaKuaKuaKuaKuaKuaKu -aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubhbbpbaSqaSraSsbsbbhbaKuaQbaStaQEaQbaSuaSvbqbbrbaSyaSzaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudBqszwszwszwszwszwszwszwszwtvXtvXoncrHExgxetzqsGetzqsGetzxgxetzbJLubeiBOetzxgxjtyjtyjtyjtyxgxoVdrgyrgyphQiSpxgxrJketzetzxspaBSoxkxAnxAnxAntvXxAnrHExgxxgxkwekwexgxxgxxgxxgxdBqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKueWLaSAaSBaEzaSDaSDaNbwvSaSGaSGaSGwvSaSHaSIaSJaSnkaAaKuaKuaKuaKuaKuaKuaKuaKuaKu +aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubhbbpbaSqaSraSsbsbbhbaKuaQbaStaQEaQbaSuaSvbqbbrbaSyaSzaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudBqszwszwszwszwszwszwszwszwtvXtvXoncrHExgxetzqsGetzqsGetzxgxetzbJLubeiBOetzxgxjtyjtyjtyjtyxgxoVdrgyrgyphQiSpxgxrJketzetzxspaBSoxkxAnxAnxAntvXxAnrHExgxxgxkwekwexgxxgxxgxxgxdBqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKueWLaSAaSBaEzaJWaSDaNbwvSaSGaSGaSGwvSaSHaSIaSJaSnkaAaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubhbbUbaSLaSraSMbpbbtbaKuaQbaSOaRkaQbaSuaSQbubbvbaSSaSTaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudBqszwszwszwszwszwszwszwxAnxAntvXxAnrHExgxetzdtotCUqKIetzxgxetziBOugknaaetzqRbnwdjtyjtyjtyaBSconphQoDmfhmetzqRbetzetzetzetzxgxoxktvXxAnxAntvXxAnrHExgxlullullullullullvQxgxdBqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKueWLaSCaSCaSCaSCaSCaSCaSUaSVaSWaSVaSXaSIaSIaSYaSnkaAaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubhbbUbaSLaSZaSsbVbbhbaKuaQbaQCaQEaQbaSuaTbaTcaRFaTeaSTaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudBqszwszwszwszwszwszwxgxxgxtvXtvXxAnrHExgxetztCUtCUtCUetzqRbetznwccxktdletzqRbnwdjtyjtyjtyaBSetzphQxxYrgygPmxgxejYetzetzpPuxgxoxktvXxAndDZtvXtvXrHExgxjZglultmtkFYxuXkFYxgxdBqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKueWLaTfaTfaSCaSCaSCaTgfIWaSVaSVaThukcbixbixbixvrzdBfaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubwbbpbaSqaSZaSsbVbbhbaKuajGaQCaQEaQbaQbaTjaTkaTlaTmaQbaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudBqszwszwxgxxgxszwszwlulxgxtvXdTWxAnrHExgxvSWetzetzetznCpxgxetzetzfBFetzetzxgxjtyjtyjtyjtyaBSconlofdHzrgyconxgxxgxxgxqRbxgxxgxoxktvXvbpxAntvXtlHrHExgxjZgjZgtmtlvQlultmtxgxdBqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKueWLaSCaSCaSCaSCaSCaTneWLaToaToaTpwvSaTqaTraTsaAbeWLaKuaKuaKuaKuaKuaKuaKuaKuaKu diff --git a/maps/exodus/exodus.dm b/maps/exodus/exodus.dm index 10e381f491a..b59aa0c4364 100644 --- a/maps/exodus/exodus.dm +++ b/maps/exodus/exodus.dm @@ -2,7 +2,6 @@ #include "exodus_areas.dm" #include "exodus_effects.dm" - #include "exodus_holodecks.dm" #include "exodus_shuttles.dm" #include "exodus_jobs.dm" diff --git a/maps/exodus/exodus_areas.dm b/maps/exodus/exodus_areas.dm index 18894509cfd..07620693cf2 100644 --- a/maps/exodus/exodus_areas.dm +++ b/maps/exodus/exodus_areas.dm @@ -2204,70 +2204,10 @@ /area/holodeck name = "\improper Holodeck" icon_state = "Holodeck" - dynamic_lighting = 0 + requires_power = FALSE + dynamic_lighting = FALSE sound_env = LARGE_ENCLOSED -/area/holodeck/source_boxingcourt - name = "\improper Holodeck - Boxing Court" - sound_env = ARENA - -/area/holodeck/source_desert - name = "\improper Holodeck - Desert" - sound_env = PLAIN - -/area/holodeck/source_picnicarea - name = "\improper Holodeck - Picnic Area" - sound_env = PLAIN - -/area/holodeck/source_wildlife - name = "\improper Holodeck - Wildlife Simulation" - -/area/holodeck/source_courtroom - name = "\improper Holodeck - Courtroom" - sound_env = AUDITORIUM - -/area/holodeck/source_basketball - name = "\improper Holodeck - Basketball Court" - sound_env = ARENA - -/area/holodeck/source_plating - name = "\improper Holodeck - Off" - -/area/holodeck/source_emptycourt - name = "\improper Holodeck - Empty Court" - sound_env = ARENA - -/area/holodeck/source_theatre - name = "\improper Holodeck - Theatre" - sound_env = CONCERT_HALL - -/area/holodeck/source_thunderdomecourt - name = "\improper Holodeck - Thunderdome Court" - sound_env = ARENA - -/area/holodeck/source_beach - name = "\improper Holodeck - Beach" - sound_env = PLAIN - -/area/holodeck/source_snowfield - name = "\improper Holodeck - Snow Field" - sound_env = FOREST - -/area/holodeck/source_meetinghall - name = "\improper Holodeck - Meeting Hall" - sound_env = AUDITORIUM - -/area/holodeck/source_space - name = "\improper Holodeck - Space" - has_gravity = 0 - sound_env = SPACE - -/area/holodeck/source_chess - name = "\improper Holodeck - Chess Field" - -/area/holodeck/alphadeck - name = "\improper Holodeck Alpha" - /area/prison/solitary name = "Solitary Confinement" icon_state = "brig" @@ -2282,6 +2222,7 @@ ambience_off = list(SFX_AMBIENT_MINE) ambience_powered = list(SFX_AMBIENT_MINE) ambient_music_tags = list(MUSIC_TAG_MYSTIC, MUSIC_TAG_SPACE) + /area/mine/explored name = "Mine" icon_state = "explored" diff --git a/maps/exodus/exodus_holodecks.dm b/maps/exodus/exodus_holodecks.dm deleted file mode 100644 index 4b12ed441d8..00000000000 --- a/maps/exodus/exodus_holodecks.dm +++ /dev/null @@ -1,68 +0,0 @@ - -/datum/map/exodus - - holodeck_programs = list( - "emptycourt" = new /datum/holodeck_program(/area/holodeck/source_emptycourt, list('sound/music/THUNDERDOME.ogg')), - "boxingcourt" = new /datum/holodeck_program(/area/holodeck/source_boxingcourt, list('sound/music/THUNDERDOME.ogg')), - "basketball" = new /datum/holodeck_program(/area/holodeck/source_basketball, list('sound/music/THUNDERDOME.ogg')), - "thunderdomecourt" = new /datum/holodeck_program(/area/holodeck/source_thunderdomecourt, list('sound/music/THUNDERDOME.ogg')), - "beach" = new /datum/holodeck_program(/area/holodeck/source_beach), - "desert" = new /datum/holodeck_program(/area/holodeck/source_desert, - list( - 'sound/effects/wind/wind_2_1.ogg', - 'sound/effects/wind/wind_2_2.ogg', - 'sound/effects/wind/wind_3_1.ogg', - 'sound/effects/wind/wind_4_1.ogg', - 'sound/effects/wind/wind_4_2.ogg', - 'sound/effects/wind/wind_5_1.ogg' - ) - ), - "snowfield" = new /datum/holodeck_program(/area/holodeck/source_snowfield, - list( - 'sound/effects/wind/wind_2_1.ogg', - 'sound/effects/wind/wind_2_2.ogg', - 'sound/effects/wind/wind_3_1.ogg', - 'sound/effects/wind/wind_4_1.ogg', - 'sound/effects/wind/wind_4_2.ogg', - 'sound/effects/wind/wind_5_1.ogg' - ) - ), - "space" = new /datum/holodeck_program(/area/holodeck/source_space, - list(SFX_AMBIENT_SPACE) - ), - "picnicarea" = new /datum/holodeck_program(/area/holodeck/source_picnicarea, list('sound/music/classic/title2.ogg')), - "theatre" = new /datum/holodeck_program(/area/holodeck/source_theatre), - "meetinghall" = new /datum/holodeck_program(/area/holodeck/source_meetinghall), - "courtroom" = new /datum/holodeck_program(/area/holodeck/source_courtroom, list('sound/music/classic/traitor.ogg')), - "wildlifecarp" = new /datum/holodeck_program(/area/holodeck/source_wildlife, list()), - "chess" = new /datum/holodeck_program(/area/holodeck/source_chess, list()), - "turnoff" = new /datum/holodeck_program(/area/holodeck/source_plating, list()) - ) - - holodeck_supported_programs = list( - - "ExodusMainPrograms" = list( - "Empty Court" = "emptycourt", - "Basketball Court" = "basketball", - "Thunderdome Court" = "thunderdomecourt", - "Boxing Ring" = "boxingcourt", - "Beach" = "beach", - "Desert" = "desert", - "Space" = "space", - "Picnic Area" = "picnicarea", - "Snow Field" = "snowfield", - "Theatre" = "theatre", - "Meeting Hall" = "meetinghall", - "Courtroom" = "courtroom", - "Chess Field" = "chess" - ) - - ) - - holodeck_restricted_programs = list( - - "ExodusMainPrograms" = list( - "Wildlife Simulation" = "wildlifecarp" - ) - - ) diff --git a/maps/frontier/bar/classic.dmm b/maps/frontier/bar/classic.dmm index 38c42006249..e97a1885a94 100644 --- a/maps/frontier/bar/classic.dmm +++ b/maps/frontier/bar/classic.dmm @@ -36,7 +36,7 @@ "hM" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/structure/mirror{pixel_x = 28},/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet/bar) "hN" = (/obj/machinery/vending/boozeomat,/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "hW" = (/obj/structure/cable/white{icon_state = "1-2"},/obj/structure/cable/white{icon_state = "2-4"},/obj/effect/floor_decal/corner/green{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/rough,/area/crew_quarters/sleep) -"ih" = (/obj/structure/closet/secure_closet/bar,/obj/item/gun/projectile/shotgun/doublebarrel,/obj/item/storage/box/shotgun/beanbags,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) +"ih" = (/obj/structure/closet/secure_closet/bar,/obj/item/gun/projectile/shotgun/doublebarrel,/obj/item/storage/box/shotgun/beanbags,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/item/storage/box/coffeemaking_kit,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) "in" = (/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "barprivate"; name = "Bar Private Room"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "iy" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/machinery/button/remote/blast_door{id = "kitchen_shutters"; name = "Kitchen Shutters Control"; pixel_x = -24; req_access = list(28)},/turf/simulated/floor/tiled/white/rough,/area/crew_quarters/kitchen) "iA" = (/obj/structure/bed/couch/right/sofa{dir = 1},/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/obj/effect/floor_decal/corner/black/diagonal,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) @@ -122,7 +122,7 @@ "wL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/primary/frontier/central_east) "wU" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/obj/machinery/camera/network/civilian_east{c_tag = "Bar Cafe"; dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "xc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) -"xe" = (/obj/structure/table/darkwood_reinforced,/obj/item/reagent_containers/rag,/obj/effect/floor_decal/corner/red{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "bar_shutters"; name = "Bar Shutters"; opacity = 0},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) +"xe" = (/obj/structure/table/darkwood_reinforced,/obj/item/reagent_containers/rag,/obj/effect/floor_decal/corner/red{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "bar_shutters"; name = "Bar Shutters"; opacity = 0},/obj/random/drinkbottle,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "xm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "xo" = (/obj/effect/floor_decal/corner/green{dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/primary/frontier/central_east) "xH" = (/obj/structure/window_frame/rglass,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "kitchen_shutters"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/kitchen) @@ -134,7 +134,7 @@ "zB" = (/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "zT" = (/turf/simulated/floor/trim/carpet/oldred,/area/crew_quarters/bar) "zX" = (/obj/structure/table/steel,/obj/machinery/chemical_dispenser/bar_alc/full{pixel_y = 2},/obj/effect/floor_decal/corner/red{dir = 6},/obj/machinery/alarm{dir = 8; pixel_x = 25},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) -"Af" = (/obj/structure/table/darkwood_reinforced,/obj/effect/floor_decal/corner/red{dir = 9},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/obj/random/drinkbottle,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "bar_shutters"; name = "Bar Shutters"; opacity = 0},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) +"Af" = (/obj/structure/table/darkwood_reinforced,/obj/effect/floor_decal/corner/red{dir = 9},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4; layer = 2.4; level = 2},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "bar_shutters"; name = "Bar Shutters"; opacity = 0},/obj/structure/coffee_condi_display,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "Ax" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "Az" = (/obj/structure/cable/white{icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/sink{dir = 8; pixel_x = -11},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) "AB" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/crew_quarters/sleep) @@ -148,7 +148,7 @@ "BN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/primary/frontier/central_east) "BQ" = (/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "BR" = (/obj/structure/cable/white{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/navbeacon/frontier/BAR,/turf/simulated/floor/tiled/rough,/area/hallway/primary/frontier/central_east) -"Cf" = (/obj/structure/table/steel,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/obj/item/screwdriver,/obj/item/book/wiki/barman_recipes,/obj/item/reagent_containers/rag,/obj/effect/floor_decal/corner/red{dir = 6},/obj/machinery/camera/network/civilian_east{c_tag = "Bar East"},/obj/item/music_tape_box/frontier,/obj/effect/landmark/roundstart/monkeyportrait{pixel_x = 4; pixel_y = 28},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) +"Cf" = (/obj/structure/table/steel,/obj/effect/floor_decal/corner/red{dir = 6},/obj/machinery/camera/network/civilian_east{c_tag = "Bar East"},/obj/effect/landmark/roundstart/monkeyportrait{pixel_x = 4; pixel_y = 28},/obj/machinery/coffeemaker,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "Cg" = (/obj/structure/window_frame/rglass,/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "kitchen_shutters"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/kitchen) "Ck" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) "Cr" = (/obj/machinery/lapvend,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/sleep) @@ -240,6 +240,7 @@ "Qd" = (/obj/structure/cable/white{icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/primary/frontier/central_east) "Qk" = (/obj/structure/cable/white{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/wood,/area/crew_quarters/sleep/lobby) "Ql" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/newscaster{dir = 1; pixel_y = 32},/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/bar) +"QC" = (/obj/structure/table/woodentable,/obj/machinery/camera/network/civilian_east{c_tag = "Bar Backroom"},/obj/item/reagent_containers/rag,/obj/item/paper/exodus_bartender,/obj/item/hand_labeler,/obj/machinery/button/window_frame_tint{pixel_x = 10; pixel_y = -24},/obj/random/music_tape,/obj/effect/landmark/roundstart/puncube,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) "QZ" = (/obj/structure/cable/white{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/landmark/start/crew/barmonkey,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "Rc" = (/obj/effect/floor_decal/corner/green{dir = 4},/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/tiled/rough,/area/crew_quarters/sleep) "Rh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/rough,/area/hallway/primary/frontier/central_east) @@ -262,7 +263,7 @@ "VI" = (/obj/structure/disposalpipe/segment,/obj/machinery/navbeacon/frontier/CRYO,/turf/simulated/floor/tiled/rough,/area/crew_quarters/sleep) "VJ" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/electric/glass,/turf/simulated/floor/plating,/area/crew_quarters/bar) "VL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/landmark/start/crew/bartender,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) -"VN" = (/obj/structure/table/woodentable,/obj/machinery/camera/network/civilian_east{c_tag = "Bar Backroom"},/obj/item/reagent_containers/rag,/obj/item/paper/exodus_bartender,/obj/item/hand_labeler,/obj/machinery/button/window_frame_tint{pixel_x = 10; pixel_y = 24},/obj/random/music_tape,/obj/effect/landmark/roundstart/puncube,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) +"VN" = (/obj/item/music_tape_box/frontier,/obj/item/reagent_containers/rag,/obj/item/book/wiki/barman_recipes,/obj/item/screwdriver,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bottle/syrup_bottle/caramel,/obj/item/reagent_containers/vessel/bottle/syrup_bottle/liqueur,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) "Wu" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) "WN" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) "Xf" = (/obj/machinery/cooker/oven,/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white/rough,/area/crew_quarters/kitchen) @@ -291,9 +292,9 @@ CrOJABeXJHyyqqTfDFPuljyKHxFUhlPJPJPJPJPJPJPJ CUnuoFtBtBtBtBtBtBtBCgxHxHtBtBtBPJPJPJPJPJPJ CUqJGAnahdDiGvXnMpZnuNNmqvXfPNtBPJPJPJPJPJPJ CUhWTdlZOWOWbXFtBrGQXolrdwHoXDtBxKGsxKvkxKxK -hHGJVIUCdReZKJDVbGuxGyLNuqPwrotBihCkiUbUVNJP +hHGJVIUCdReZKJDVbGuxGyLNuqPwrotBihCkiUbUnAJP npaFRctBtBtBYltBtBiyuxuxuxuxvxtBAzFRVLkxDZJP -CUHdvmXWEODwxcZqtBAUtVPktVVdxPtBvVGFZNbUnAJP +CUHdvmXWEODwxcZqtBAUtVPktVVdxPtBvVGFZNQCVNJP CUCYFwfwNSWNkXFZtBIXkmkmkmkmwUrxrxEvrxrxrxrx fPrtDHtBIvWuwpAGtBjZugTTTTTTNUQlJLOOCfrxPJPJ PJCPxotBtBtBtBtBtBOhYXNPzTjwjwBBAfDtzXrxPJPJ diff --git a/maps/frontier/bar/modern.dmm b/maps/frontier/bar/modern.dmm index f0267ff865a..e4db80d4f18 100644 --- a/maps/frontier/bar/modern.dmm +++ b/maps/frontier/bar/modern.dmm @@ -1,7 +1,7 @@ "aa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) "ab" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = -2},/obj/machinery/slot_machine,/turf/simulated/floor/tiled/dark/mono,/area/crew_quarters/bar) "ac" = (/obj/machinery/vending/cigars,/obj/effect/floor_decal/corner/black/diagonal,/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) -"ad" = (/obj/structure/table/darkwood_reinforced,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/newscaster{pixel_y = -28},/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) +"ad" = (/obj/structure/table/darkwood_reinforced,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/newscaster{pixel_y = -28},/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/obj/structure/coffee_condi_display,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "ah" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/trim/wood,/area/crew_quarters/sleep/lobby) "ak" = (/obj/structure/cable/white{icon_state = "1-8"},/obj/structure/cable/white{icon_state = "4-8"},/obj/effect/floor_decal/corner/green{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/tiled/rough,/area/crew_quarters/sleep/lobby) "ao" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/white{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) @@ -23,9 +23,9 @@ "da" = (/obj/item/device/radio/intercom{pixel_y = 22},/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) "db" = (/obj/structure/table/marble,/obj/machinery/cooker/candy,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/trim/lino,/area/crew_quarters/kitchen) "dn" = (/obj/effect/floor_decal/spline/plain/black,/obj/machinery/door/window/southleft,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) -"ds" = (/obj/structure/table/steel,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/obj/item/screwdriver,/obj/item/book/wiki/barman_recipes,/obj/item/reagent_containers/rag,/obj/machinery/camera/network/civilian_east{c_tag = "Bar East"},/obj/item/music_tape_box/frontier,/obj/effect/landmark/roundstart/monkeyportrait{pixel_x = 4; pixel_y = 28},/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) +"ds" = (/obj/structure/table/steel,/obj/machinery/camera/network/civilian_east{c_tag = "Bar East"},/obj/effect/landmark/roundstart/monkeyportrait{pixel_x = 4; pixel_y = 28},/obj/effect/floor_decal/corner/red{dir = 6},/obj/machinery/coffeemaker,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "dL" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon/delivery/Bar,/obj/machinery/door/window/southleft{name = "Bar Delivery"; req_access = list(25)},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/barbackroom) -"dM" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/structure/closet/secure_closet/bar,/obj/item/gun/projectile/shotgun/doublebarrel,/obj/item/storage/box/shotgun/beanbags,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) +"dM" = (/obj/structure/closet/secure_closet/bar,/obj/item/gun/projectile/shotgun/doublebarrel,/obj/item/storage/box/shotgun/beanbags,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/item/storage/box/coffeemaking_kit,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) "dT" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/trim/lino,/area/crew_quarters/kitchen) "en" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "eK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/multi_tile{dir = 2},/obj/machinery/door/airlock/multi_tile/glass{id_tag = "MedbayFoyerStar"; dir = 2; name = "Bar"},/turf/simulated/floor/tiled/dark/mono,/area/crew_quarters/bar) @@ -167,7 +167,7 @@ "FW" = (/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/bed/couch/left/sofa{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "Gj" = (/obj/machinery/navbeacon/frontier/CRYO,/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/tiled/rough,/area/crew_quarters/sleep) "Gn" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/structure/cable/white{icon_state = "1-2"},/turf/simulated/floor/plating,/area/crew_quarters/sleep) -"Gs" = (/obj/structure/table/woodentable,/obj/machinery/camera/network/civilian_east{c_tag = "Bar Backroom"},/obj/item/reagent_containers/rag,/obj/item/hand_labeler,/obj/machinery/button/window_frame_tint{pixel_x = 10; pixel_y = 24},/obj/random/music_tape,/obj/effect/landmark/roundstart/puncube,/obj/item/paper/exodus_bartender,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) +"Gs" = (/obj/structure/table/woodentable,/obj/machinery/camera/network/civilian_east{c_tag = "Bar Backroom"},/obj/item/reagent_containers/rag,/obj/item/paper/exodus_bartender,/obj/item/hand_labeler,/obj/machinery/button/window_frame_tint{pixel_x = 10; pixel_y = -24},/obj/random/music_tape,/obj/effect/landmark/roundstart/puncube,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) "GN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/spline/fancy{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/crew_quarters/bar) "GT" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/effect/floor_decal/spline/fancy{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/crew_quarters/bar) "GY" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/structure/synthesized_instrument/synthesizer/piano,/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) @@ -228,6 +228,7 @@ "QN" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/bar) "QW" = (/obj/machinery/camera/network/civilian_east{c_tag = "Kitchen"},/obj/machinery/atmospherics/unary/vent_pump/on{layer = 2.4; level = 2},/obj/machinery/light{dir = 1},/obj/machinery/gibber,/obj/effect/floor_decal/spline/plain/black{dir = 4},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) "Ra" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/rough,/area/hallway/primary/frontier/central_east) +"Ri" = (/obj/item/music_tape_box/frontier,/obj/item/reagent_containers/rag,/obj/item/book/wiki/barman_recipes,/obj/item/screwdriver,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bottle/syrup_bottle/liqueur,/obj/item/reagent_containers/vessel/bottle/syrup_bottle/caramel,/turf/simulated/floor/trim/darkwood,/area/crew_quarters/barbackroom) "Rl" = (/turf/space,/area/space) "Rr" = (/obj/structure/table/marble,/obj/item/reagent_containers/vessel/condiment/small/peppermill{pixel_x = -3; pixel_y = 2},/obj/item/reagent_containers/vessel/condiment/small/saltshaker,/obj/item/storage/pill_bottle/sugar_cubes,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchen_shutters"; name = "Kitchen Shutters"; opacity = 0},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/corner/black/diagonal,/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/kitchen) "RC" = (/obj/structure/toilet{dir = 4},/obj/machinery/newscaster{layer = 3.3; pixel_y = -27},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/bar) @@ -280,9 +281,9 @@ KPkJQzjZVPHGYFTUJVmvXwLVLDHoKzRlRlRlRlRlRlRl WrktWdZQZQZQZQZQZQZQwmmfmfZQZQZQRlRlRlRlRlRl WrtWbMTjlkpWdaNjQWJsTCCHqmHhMHZQRlRlRlRlRlRl WrVbpmAFaoIiQpIiwgobEUnTfUyogmZQzOvXzOdLzOzO -tgawGjZQbRdnonKOpBRYIRWvweUGwOZQdMCUPfxRGsxS +tgawGjZQbRdnonKOpBRYIRWvweUGwOZQdMCUPfxRiBxS HOwDHJELbPFSUFdbZQRYRYRYRYRYaFZQPLlFDZaaVlxS -WraYZhELDrFSrPvpZQroRrfJRrjnFJZQckTdBwxRiBxS +WraYZhELDrFSrPvpZQroRrfJRrjnFJZQckTdBwGsRixS WrlGHJZQdTFSFSFSZQQcpNpNpNpNpgMDzOLkzOzOzOzO ZmndmZZQCfOiOikIZQeQAntOtOtOtOXfmPbFdsMDRlRl RlMZuFQiASRSRSRQOEUtAXBRBRBRBRfoFKLlqSMDRlRl diff --git a/maps/frontier/bar/saloon.dmm b/maps/frontier/bar/saloon.dmm index 20546506ef0..0fdb52887ce 100644 --- a/maps/frontier/bar/saloon.dmm +++ b/maps/frontier/bar/saloon.dmm @@ -38,7 +38,7 @@ "fY" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; pixel_x = 11},/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet/bar) "gg" = (/obj/effect/floor_decal/corner/red/diagonal{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8; layer = 2.4; level = 2},/obj/structure/cable/white{icon_state = "1-8"},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "gJ" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{layer = 3.3; pixel_y = -27},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet/bar) -"gT" = (/obj/structure/bed/couch/left/sofa{dir = 8},/turf/simulated/floor/trim/wood,/area/crew_quarters/bar) +"gT" = (/obj/structure/table/darkwood_reinforced,/obj/machinery/coffeemaker,/turf/simulated/floor/trim/wood,/area/crew_quarters/bar) "hb" = (/obj/effect/landmark/start/crew/bartender,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) "hc" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/shaker,/obj/item/packageWrap,/obj/item/wrapping_paper,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/item/deck/cards,/obj/item/deck/cards,/obj/item/deck/cards,/obj/random/music_tape,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8; layer = 2.4; level = 2},/obj/item/device/flashlight/lantern/active,/turf/simulated/floor/trim/carpet/oldred,/area/crew_quarters/barbackroom) "hj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/disposalpipe/segment,/obj/structure/cable/white{icon_state = "1-2"},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = -2},/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/bar) @@ -160,7 +160,7 @@ "CP" = (/obj/structure/cable/white{icon_state = "1-2"},/obj/effect/floor_decal/corner/green{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/rough,/area/hallway/primary/frontier/central_east) "CU" = (/turf/simulated/wall,/area/crew_quarters/sleep/cryo) "CY" = (/obj/structure/cable/white{icon_state = "1-2"},/obj/effect/floor_decal/corner/green{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/rough,/area/crew_quarters/sleep) -"Da" = (/obj/structure/bed/couch/right/sofa{dir = 8},/turf/simulated/floor/trim/wood,/area/crew_quarters/bar) +"Da" = (/obj/structure/table/darkwood_reinforced,/obj/item/reagent_containers/vessel/bottle/syrup_bottle/caramel{pixel_y = 2; pixel_x = 7},/obj/item/reagent_containers/vessel/bottle/syrup_bottle/liqueur{pixel_y = 17; pixel_x = 8},/obj/structure/coffee_condi_display,/turf/simulated/floor/trim/wood,/area/crew_quarters/bar) "Dd" = (/obj/machinery/door/airlock{name = "Unit 2"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet/bar) "Dg" = (/obj/structure/bed/couch/right/brown{dir = 4},/obj/item/device/radio/intercom{pixel_y = 22},/turf/simulated/floor/trim/carpet/oldred,/area/crew_quarters/sleep/lobby) "DA" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) diff --git a/maps/frontier/biodome/beach.dmm b/maps/frontier/biodome/beach.dmm index 1f10433450b..e2219675c70 100644 --- a/maps/frontier/biodome/beach.dmm +++ b/maps/frontier/biodome/beach.dmm @@ -6,7 +6,7 @@ "bX" = (/obj/item/clothing/under/swimsuit/purple,/turf/simulated/floor/natural/jungle/sand,/area/hydroponics/biodome) "cL" = (/obj/item/beach_ball,/turf/simulated/floor/natural/jungle/water,/area/hydroponics/biodome) "eJ" = (/turf/simulated/floor/natural/jungle/water/edge{dir = 4},/area/hydroponics/biodome) -"fM" = (/obj/structure/railing/steel,/obj/structure/railing/steel{dir = 1},/turf/simulated/floor/holofloor/beach/water,/area/hydroponics/biodome) +"fM" = (/obj/structure/railing/steel,/obj/structure/railing/steel{dir = 1},/turf/simulated/floor/natural/jungle/water,/area/hydroponics/biodome) "fY" = (/obj/item/clothing/under/swimsuit/blue,/turf/simulated/floor/natural/jungle/water/corner{dir = 8},/area/hydroponics/biodome) "gi" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/spline/plain/yellow{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/sand_floor,/area/hydroponics/biodome) "hk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/spline/plain/yellow{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/sand_floor,/area/hydroponics/biodome) @@ -26,7 +26,7 @@ "sb" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/spline/plain/corner/yellow,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/sand_floor,/area/hydroponics/biodome) "sd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 8},/obj/effect/floor_decal/plaque,/obj/effect/floor_decal/spline/plain/yellow{dir = 1},/turf/simulated/floor/sand_floor,/area/hydroponics/biodome) "sX" = (/obj/machinery/light,/turf/simulated/floor/natural/jungle/sand,/area/hydroponics/biodome) -"uR" = (/obj/structure/railing/steel,/obj/structure/railing/steel{dir = 1},/obj/structure/railing/steel{dir = 8; icon_state = "newrailing0"},/turf/simulated/floor/holofloor/beach/water,/area/hydroponics/biodome) +"uR" = (/obj/structure/railing/steel,/obj/structure/railing/steel{dir = 1},/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/natural/jungle/water,/area/hydroponics/biodome) "uX" = (/turf/simulated/floor/natural/jungle/water/edge,/area/hydroponics/biodome) "vC" = (/obj/machinery/light,/obj/machinery/camera/network/civilian_east{c_tag = "Central Garden - North"; dir = 1},/turf/simulated/floor/natural/jungle/water,/area/hydroponics/biodome) "vP" = (/obj/item/inflatable_duck,/turf/simulated/floor/natural/jungle/water/edge{dir = 1},/area/hydroponics/biodome) @@ -71,7 +71,7 @@ "VT" = (/turf/simulated/floor/natural/jungle/water/edge{dir = 8},/area/hydroponics/biodome) "Ws" = (/obj/machinery/atmospherics/unary/vent_pump/on{layer = 2.4; level = 2},/turf/simulated/floor/sand_floor,/area/hydroponics/biodome) "WJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/obj/effect/floor_decal/spline/plain/corner/yellow{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/sand_floor,/area/hydroponics/biodome) -"WS" = (/obj/structure/railing/steel,/obj/structure/railing/steel{dir = 1},/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/holofloor/beach/water,/area/hydroponics/biodome) +"WS" = (/obj/structure/railing/steel,/obj/structure/railing/steel{dir = 1},/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/natural/jungle/water,/area/hydroponics/biodome) "Xg" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "conpipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/effect/floor_decal/spline/plain/yellow{dir = 5},/obj/machinery/hologram/holopad,/turf/simulated/floor/sand_floor,/area/hydroponics/biodome) "XH" = (/obj/structure/disposalpipe/segment{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/spline/plain/yellow,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/sand_floor,/area/hydroponics/biodome) "XJ" = (/turf/simulated/wall,/area/hydroponics/biodome) diff --git a/maps/frontier/frontier-1.dmm b/maps/frontier/frontier-1.dmm index 2443550d806..e3cc19fefba 100644 --- a/maps/frontier/frontier-1.dmm +++ b/maps/frontier/frontier-1.dmm @@ -312,7 +312,7 @@ "afZ" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/grille/rglass,/obj/machinery/door/blast/shutters{name = "Warden's Office Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 8; id = "warden2"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/security/warden) "aga" = (/obj/structure/table/steel,/obj/item/storage/box/donut,/obj/random/smokes,/turf/simulated/floor/tiled/dark/rough,/area/security/warden) "agb" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 9},/obj/machinery/door/blast/regular/open{dir = 8; id = "isolationC"},/obj/structure/window_frame/reinforced/thermal,/turf/simulated/floor/plating,/area/outpost/research/isolation_c) -"agc" = (/turf/simulated/floor/reinforced{name = "Holodeck Projector Floor"},/area/holodeck/alphadeck) +"agc" = (/turf/simulated/floor/reinforced,/area/holodeck) "agd" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/natural/grass,/area/hydroponics) "age" = (/obj/effect/floor_decal/corner/grey{dir = 9},/obj/effect/floor_decal/corner/grey{dir = 6},/turf/simulated/floor/tiled/dark/rough,/area/security/sec_locker) "agf" = (/obj/machinery/light{dir = 1},/obj/machinery/camera/network/civilian_east{c_tag = "Hydroponics"},/obj/item/device/radio/intercom{pixel_y = 22},/obj/structure/table/standard,/obj/item/device/analyzer/plant_analyzer,/obj/item/material/minihoe,/turf/simulated/floor/natural/grass,/area/hydroponics) @@ -661,7 +661,7 @@ "amK" = (/obj/structure/closet/crate/secure/weapon{name = "shotgun shells"},/obj/item/storage/box/shotgun/shells,/obj/item/storage/box/shotgun/shells,/obj/item/storage/box/shotgun/stunshells,/obj/item/storage/box/shotgun/stunshells,/obj/effect/floor_decal/industrial/hatch/red,/obj/item/storage/box/shotgun/beanbags,/obj/item/storage/box/shotgun/beanbags,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/dark/rough,/area/security/armory) "amL" = (/obj/effect/floor_decal/industrial/warning/red,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/security/armory) "amM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; icon = 'icons/obj/doors/doorsci.dmi'; req_access = list(65)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/white/rough,/area/outpost/research/lab) -"amN" = (/obj/machinery/computer/HolodeckControl{linkedholodeck_area = /area/holodeck/alphadeck; programs_list_id = "FrontierMainPrograms"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/sleep/cave) +"amN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/computer/holodeck,/turf/simulated/floor/tiled/dark/rough,/area/crew_quarters/sleep/cave) "amO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/trim/darkwood,/area/bridge/meeting_room/cafe) "amP" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/grille/rglass,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/sec_locker) "amQ" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/grille/rglass,/obj/structure/cable{icon_state = "0-8"; d2 = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/sec_locker) @@ -727,7 +727,7 @@ "anY" = (/obj/machinery/portable_atmospherics/canister/empty/air,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/reinforced/airmix,/area/engineering/atmos) "anZ" = (/obj/effect/floor_decal/corner/red{dir = 10},/obj/effect/floor_decal/corner/grey{dir = 5},/obj/machinery/alarm{dir = 1; pixel_y = -24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/security/brig) "aoa" = (/obj/effect/floor_decal/corner/red{dir = 10},/obj/effect/floor_decal/corner/grey{dir = 5},/obj/machinery/computer/guestpass{pixel_y = -28},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/security/brig) -"aob" = (/obj/structure/window_frame/reinforced/hull,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/abandoned_casino) +"aob" = (/obj/structure/window_frame/reinforced/hull,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/abandoned_casino) "aoc" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor/trim/darkwood,/area/bridge/meeting_room/cafe) "aod" = (/obj/structure/cable/green{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/cable/green{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/condiment/small/peppermill{pixel_x = -3; pixel_y = 2},/obj/item/reagent_containers/vessel/condiment/small/saltshaker,/turf/simulated/floor/trim/darkwood,/area/bridge/meeting_room/cafe) "aoe" = (/obj/effect/floor_decal/corner/red{dir = 10},/obj/effect/floor_decal/corner/grey{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/dark/rough,/area/security/brig) @@ -2030,7 +2030,7 @@ "aQw" = (/obj/effect/floor_decal/corner/red{dir = 1},/turf/simulated/floor/tiled/rough,/area/hallway/primary/frontier/brighall) "aQx" = (/obj/effect/floor_decal/corner/red{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/tiled/rough,/area/hallway/primary/frontier/brighall) "aQD" = (/obj/effect/floor_decal/sandfloordec,/obj/structure/cable/white{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable/white{icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/rough,/area/crew_quarters/sleep/cave) -"aQE" = (/obj/structure/cable/white{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/siding/wood{dir = 8},/obj/structure/door_assembly,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/trim/wood/broken0,/area/maintenance/law) +"aQE" = (/obj/structure/cable/white{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/siding/wood{dir = 8},/obj/structure/door_assembly,/obj/structure/barricade/material,/turf/simulated/floor/trim/wood/broken0,/area/maintenance/law) "aQF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/rough,/area/engineering/atmos) "aQG" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/rough,/area/engineering/atmos) "aQH" = (/turf/simulated/mineral,/area/maintenance/cargo) @@ -4299,7 +4299,7 @@ "bSr" = (/obj/structure/table/woodentable,/obj/machinery/light/small{dir = 1},/obj/item/toy/plushie/spider,/turf/simulated/floor/trim/carpet/purple,/area/crew_quarters/sleep/cabin2) "bSs" = (/turf/simulated/wall,/area/maintenance/chapel/south) "bSt" = (/obj/structure/flora/ausbushes/fullgrass{pixel_y = -18},/turf/simulated/floor/natural/sand/darksand,/area/crew_quarters/sleep/cave) -"bSu" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_coffee/full,/obj/item/device/radio/intercom{pixel_y = 22},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/effect/decal/cleanable/cobweb2{icon_state = "cobweb1"},/turf/simulated/floor/trim/wood{icon_state = "wood_broken5"},/area/crew_quarters/underdorm/theater/actor) +"bSu" = (/obj/structure/table/woodentable,/obj/item/device/radio/intercom{pixel_y = 22},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/effect/decal/cleanable/cobweb2{icon_state = "cobweb1"},/turf/simulated/floor/trim/wood{icon_state = "wood_broken5"},/area/crew_quarters/underdorm/theater/actor) "bSv" = (/obj/machinery/camera/network/civilian_east{c_tag = "Underground Theater"},/obj/structure/table/woodentable,/obj/item/storage/box/glasses/square,/obj/machinery/light/small{dir = 1},/obj/structure/sign/poster{pixel_y = 32},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/crew_quarters/underdorm/theater/actor) "bSw" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/unpowered/simple/wood,/turf/simulated/floor/trim/wood,/area/crew_quarters/underdorm/theater/actor) "bSx" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/natural/sand/darksand,/area/crew_quarters/underdorm/theater/actor) @@ -4889,7 +4889,7 @@ "cer" = (/obj/effect/decal/cleanable/dirt,/obj/item/weldingtool/largetank,/turf/simulated/floor/plating,/area/maintenance/research_port) "ces" = (/obj/effect/decal/cleanable/dirt,/obj/structure/bed/chair,/turf/simulated/floor/plating,/area/maintenance/research_port) "cet" = (/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/random/obstruction,/turf/simulated/floor/plating,/area/maintenance/research_port) -"ceu" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/door/firedoor/border_only,/obj/structure/barricade/material{layer = 6},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/maintenance/research_port) +"ceu" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/door/firedoor/border_only,/obj/structure/barricade/material,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/maintenance/research_port) "cev" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/effect/floor_decal/rust,/obj/machinery/light/small/red{dir = 4},/turf/simulated/floor/tiled/rough,/area/maintenance/research_port) "cew" = (/obj/machinery/optable{name = "Xenobiology Operating Table"},/obj/effect/floor_decal/corner/black{dir = 5},/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/corner/black,/obj/effect/floor_decal/corner/purple{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/freezer,/area/rnd/xenobiology) "cex" = (/obj/random/tech_supply,/obj/random/tech_supply,/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/structure/sign/poster{pixel_x = 32},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/rough,/area/maintenance/research_port) @@ -4905,7 +4905,7 @@ "ceH" = (/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/chapel/south) "ceI" = (/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{dir = 8; pixel_x = 25; pixel_y = -30; frequency = 1380; id_tag = "escape_pod_2_berth"; tag_door = "escape_pod_2_berth_hatch"},/turf/simulated/floor/plating,/area/maintenance/chapel/south) "ceJ" = (/obj/machinery/door/airlock/external{name = "Escape Pod"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_pod_2_berth_hatch"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/maintenance/chapel/south) -"ceK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_one_access = list(7,12)},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/chapel/south) +"ceK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_one_access = list(7,12)},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/chapel/south) "ceL" = (/obj/machinery/door/firedoor,/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/maintenance/medbay) "ceM" = (/obj/effect/floor_decal/corner/purple{dir = 8},/obj/machinery/portable_atmospherics/canister/empty,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dark/rough,/area/rnd/mixing) "ceP" = (/obj/random/trash,/turf/simulated/floor/plating,/area/maintenance/chapel/south) @@ -5024,7 +5024,7 @@ "chf" = (/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/plating,/area/maintenance/cargo) "chg" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/medical/virology) "chh" = (/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/plating,/area/maintenance/cargo) -"chi" = (/obj/structure/barricade/material{layer = 6},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/maintenance/cargo) +"chi" = (/obj/structure/barricade/material,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/maintenance/cargo) "chj" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/maintenance/cargo) "chk" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/plating,/area/maintenance/cargo) "chl" = (/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/vessel/bottle/winesparkling,/turf/simulated/floor/plating,/area/maintenance/abandoned_casino) @@ -5277,7 +5277,7 @@ "cmj" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/maintenance/medbay) "cmk" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/obj/effect/floor_decal/corner/purple{dir = 5},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark/rough,/area/rnd/mixing) "cml" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/dark/rough,/area/rnd/mixing) -"cmm" = (/obj/structure/window_frame/rglass,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/chapel/south) +"cmm" = (/obj/structure/window_frame/rglass,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/chapel/south) "cmn" = (/obj/machinery/light_switch{dir = 8; pixel_x = 26; pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/light{dir = 4},/obj/machinery/button/window_frame_tint{dir = 8; pixel_x = 26; pixel_y = -8},/turf/simulated/floor/trim/wood,/area/crew_quarters/sleep/cabin2) "cmo" = (/obj/structure/table/woodentable,/obj/item/paper_bin,/obj/item/pen,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/wirecutters,/turf/simulated/floor/trim/wood,/area/maintenance/law) "cmp" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/effect/floor_decal/corner/purple{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dark/rough,/area/rnd/mixing) @@ -5410,7 +5410,7 @@ "dwK" = (/obj/structure/girder,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/dormitory) "dFj" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/white{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock{name = "Law Office"; req_access = list(67); id_tag = "LawyerDoor"},/turf/simulated/floor/trim/wood,/area/lawoffice) "dVh" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/rough,/area/hallway/primary/frontier/ring_north) -"dVI" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/broken,/obj/structure/window_frame,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/law) +"dVI" = (/obj/machinery/door/firedoor/border_only,/obj/structure/window_frame/broken,/obj/structure/window_frame,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/law) "ecn" = (/obj/machinery/disposal,/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/trunk,/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/tiled/white/rough,/area/rnd/xenobiology) "ehb" = (/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume{frequency = 1379; id = "tox_airlock_pump"},/obj/machinery/air_sensor{pixel_x = -16; pixel_y = 6; frequency = 1430; output = 63; id_tag = "toxins_mixing_interior"},/turf/simulated/floor/reinforced,/area/rnd/mixing) "emC" = (/turf/simulated/floor/trim/wood/broken0,/area/maintenance/law) @@ -5530,7 +5530,7 @@ "qHn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/grid/bluegrid,/area/turret_protected/ai) "qNy" = (/obj/structure/closet/secure_closet/lawyer,/turf/simulated/floor/trim/carpet,/area/lawoffice) "qOT" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/wood,/area/maintenance/engineering) -"qPx" = (/obj/structure/barricade/material{layer = 6},/obj/machinery/door/airlock/maintenance{req_one_access = list(7,12)},/turf/simulated/floor/plating,/area/maintenance/research_port) +"qPx" = (/obj/structure/barricade/material,/obj/machinery/door/airlock/maintenance{req_one_access = list(7,12)},/turf/simulated/floor/plating,/area/maintenance/research_port) "qTt" = (/obj/structure/closet/crate/secure/weapon{name = ".45 ammo crate"; req_access = list(3)},/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/effect/floor_decal/industrial/box/red,/obj/item/ammo_magazine/c45m,/turf/simulated/floor/tiled/dark/rough,/area/security/tactical) "rae" = (/obj/machinery/field_generator,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light{dir = 4},/turf/simulated/floor/plating,/area/engineering/storage) "reu" = (/obj/effect/floor_decal/rust,/obj/effect/decal/cleanable/dirt,/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/tiled/rough,/area/maintenance/research_port) @@ -5551,7 +5551,7 @@ "rWk" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/wood{icon_state = "wood_broken4"},/area/maintenance/engineering) "rWr" = (/obj/machinery/photocopier,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable/white{icon_state = "0-4"},/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/turf/simulated/floor/trim/wood,/area/lawoffice) "sfF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/research_port) -"sgx" = (/obj/machinery/door/unpowered/simple/wood,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/abandoned_casino) +"sgx" = (/obj/machinery/door/unpowered/simple/wood,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/abandoned_casino) "skJ" = (/obj/machinery/power/apc{name = "west bump"; dir = 8; pixel_x = -24},/obj/structure/cable/white,/turf/simulated/floor/plating,/area/maintenance/dormitory) "snT" = (/obj/structure/window/reinforced{health = 1e+07},/turf/simulated/floor/asteroid,/area/mine/explored) "soX" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/tiled/rough,/area/maintenance/incinerator) diff --git a/maps/frontier/frontier-2.dmm b/maps/frontier/frontier-2.dmm index 96744c7c5e0..df56dab6110 100644 --- a/maps/frontier/frontier-2.dmm +++ b/maps/frontier/frontier-2.dmm @@ -2,187 +2,57 @@ "aab" = (/turf/space{icon_state = "black"},/area/space) "aac" = (/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/west,/area/space) "aad" = (/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/east,/area/space) -"aae" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aae" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aaf" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/space) -"aag" = (/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) "aah" = (/turf/space/transit/north,/area/space) "aai" = (/turf/space/transit/west,/area/space) "aaj" = (/turf/space/transit/east,/area/space) "aak" = (/turf/simulated/mineral,/area/space) -"aal" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) -"aam" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "syndieshutters"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws4"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"aam" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/obj/structure/window/syndi{icon_state = "ws4"},/turf/simulated/floor/plating,/area/syndicate_station/start) "aan" = (/obj/structure/window/syndi{icon_state = "ws3"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) -"aao" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) -"aap" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaq" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aar" = (/obj/structure/table/rack/holorack,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/head/hairflower,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"aas" = (/obj/effect/landmark/costume,/obj/structure/table/rack/holorack,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"aat" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"aau" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/obj/machinery/door/window/holowindoor{dir = 8; name = "Jury Box"},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aav" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"aaw" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_wildlife) -"aax" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_plating) -"aay" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) -"aaz" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaA" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet/corners{dir = 10},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aaB" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaC" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaD" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aaE" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) -"aaF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/north,/area/space) -"aaG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north,/area/space) -"aaH" = (/turf/unsimulated/beach/sand{density = 1; opacity = 1},/area/beach) -"aaJ" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaK" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaL" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"aaM" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aaN" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"aaO" = (/obj/effect/landmark/event/other/holodeck/carps,/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_wildlife) -"aaP" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaQ" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaR" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"aaF" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1; stopper = 0},/turf/space/transit/north,/area/space) +"aaG" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(left)"; direction = 8; tiles = 0; affect_ghosts = 1},/turf/space/transit/north,/area/space) +"aaH" = (/turf/unsimulated/beach/sand{opacity = 1; density = 1},/area/beach) +"aaI" = (/mob/living/silicon/decoy{name = "A.L.I.C.E."},/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/centcom/control) "aaS" = (/turf/space/transit/north,/area/rescue_base/transit) -"aaT" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; tiles = 0},/turf/space/transit/north,/area/space) +"aaT" = (/obj/effect/step_trigger/thrower{name = "thrower_throwup"; direction = 1; tiles = 0},/turf/space/transit/north,/area/space) "aaU" = (/turf/unsimulated/beach/sand,/area/beach) "aaV" = (/obj/structure/closet,/turf/unsimulated/beach/sand,/area/beach) -"aaW" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaX" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaY" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaZ" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 8},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aba" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"abb" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abc" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abd" = (/obj/effect/floor_decal/carpet,/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abe" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abf" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) "abg" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/beach) "abh" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) -"abi" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"abj" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"abk" = (/obj/effect/decal/cleanable/dirt,/obj/structure/holostool,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"abl" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"abm" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"abn" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) -"abo" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abp" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abq" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"; name = "Witness Box"},/obj/structure/bed/chair/holochair{dir = 4},/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abr" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abs" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abt" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abu" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abv" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow{dir = 4},/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abw" = (/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) "abx" = (/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) "aby" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/alien) -"abz" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"abA" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"abB" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) -"abC" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abD" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abE" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abF" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abG" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abH" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abI" = (/obj/structure/bed/chair/holochair{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abJ" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abK" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow{dir = 4},/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north,/area/space) -"abM" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north,/area/space) +"abL" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdownside"; tiles = 0; affect_ghosts = 1; nostop = 1},/turf/space/transit/north,/area/space) +"abM" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(right)"; direction = 4; tiles = 0; affect_ghosts = 1},/turf/space/transit/north,/area/space) "abN" = (/obj/effect/shuttle_landmark/rescue/internim,/turf/space/transit/north,/area/rescue_base/transit) "abO" = (/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"abP" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abQ" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abR" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abS" = (/obj/structure/table/holo_woodentable,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abT" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abU" = (/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abV" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"abW" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"abX" = (/obj/machinery/door/window/holowindoor{dir = 8; name = "Court Reporter's Box"},/obj/structure/bed/chair/holochair{dir = 4},/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abY" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; tiles = 0},/turf/space/transit/south,/area/space) +"abY" = (/obj/effect/step_trigger/thrower{name = "thrower_throwup"; direction = 1; tiles = 0},/turf/space/transit/south,/area/space) "abZ" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand,/area/beach) -"aca" = (/obj/item/paper{info = "Some stuff is missing..."; name = "Insert alien artifacts here."},/turf/unsimulated/floor{icon_state = "dark"},/area/alien) +"aca" = (/obj/item/paper{name = "Insert alien artifacts here."; info = "Some stuff is missing..."},/turf/unsimulated/floor{icon_state = "dark"},/area/alien) "acb" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acc" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 9},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) "acd" = (/turf/space,/area/shuttle/alien/base) -"ace" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"acf" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acg" = (/obj/effect/floor_decal/carpet,/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"ach" = (/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aci" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/west,/area/space) -"acj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east,/area/space) +"aci" = (/obj/effect/step_trigger/thrower{name = "thrower_leftnostop"; affect_ghosts = 1},/turf/space/transit/west,/area/space) +"acj" = (/obj/effect/step_trigger/thrower{name = "thrower_leftnostop"; affect_ghosts = 1},/turf/space/transit/east,/area/space) "ack" = (/obj/effect/landmark/event/rift/exit,/turf/unsimulated/beach/sand,/area/beach) "acl" = (/obj/structure/closet/acloset,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acm" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"acn" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aco" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acp" = (/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acq" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"acr" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 1; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) "acs" = (/turf/space/transit/west,/area/shuttle/escape_pod1/transit) "act" = (/turf/space/transit/east,/area/shuttle/escape_pod1/transit) -"acu" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; tiles = 0},/turf/space/transit/east,/area/space) +"acu" = (/obj/effect/step_trigger/thrower{name = "thrower_throwup"; direction = 1; tiles = 0},/turf/space/transit/east,/area/space) "acv" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/turf/unsimulated/beach/sand,/area/beach) "acw" = (/obj/structure/table/standard,/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/collectable/petehat{pixel_y = 5},/turf/unsimulated/beach/sand,/area/beach) "acx" = (/obj/structure/bed/alien,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acy" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acz" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acA" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acB" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acC" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) "acD" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{name = "plating"},/area/centcom/suppy) "acE" = (/obj/effect/shuttle_landmark/escape_pod/transit/pod1,/turf/space/transit/west,/area/shuttle/escape_pod1/transit) -"acF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east,/area/space) +"acF" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1; stopper = 0},/turf/space/transit/east,/area/space) "acG" = (/obj/structure/table/standard,/obj/item/reagent_containers/food/packaged/chips,/turf/unsimulated/beach/sand,/area/beach) "acH" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/turf/unsimulated/beach/sand,/area/beach) "acI" = (/obj/item/beach_ball,/turf/unsimulated/beach/sand,/area/beach) -"acK" = (/turf/simulated/floor/holofloor/lino,/area/holodeck/source_chess) -"acL" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acM" = (/obj/machinery/door/window/holowindoor{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"acN" = (/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"acO" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 1; icon_state = "right"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"acP" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"acQ" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"acR" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"acJ" = (/mob/living/simple_animal/tindalos{name = "Eddy"},/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/natural/jungle,/area/merchant_station) "acS" = (/obj/structure/bed,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) -"acT" = (/obj/structure/window/reinforced/crescent,/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) -"acU" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) -"acV" = (/turf/simulated/floor/holofloor/space,/area/holodeck/source_space) -"acW" = (/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"acX" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) -"acY" = (/obj/item/reagent_containers/food/checker/rook{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"acZ" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) -"ada" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adb" = (/turf/unsimulated/beach/sand{dir = 4; icon_state = "beach"},/area/holodeck/source_beach) -"adc" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"add" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) "ade" = (/obj/structure/shuttle/engine/heater{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/shuttle/escape/centcom) -"adf" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adg" = (/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adh" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"adi" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adj" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adk" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/obj/structure/window/reinforced/holowindow/disappearing{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adl" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/obj/structure/window/reinforced/holowindow/disappearing{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adm" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adn" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"ado" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "adp" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "adq" = (/obj/structure/mirror,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership/elite_squad) -"adr" = (/obj/effect/landmark/event/other/holodeck/randcarps,/turf/simulated/floor/holofloor/space,/area/holodeck/source_space) -"ads" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"adt" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"adu" = (/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"adv" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"adw" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adx" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"ady" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adz" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adA" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adB" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adC" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/holo/esword/red,/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adD" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"adE" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdownsidenostop"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north,/area/space) +"adE" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdownsidenostop"; tiles = 0; affect_ghosts = 1; stopper = 0; nostop = 1},/turf/space/transit/north,/area/space) "adF" = (/obj/structure/bed/chair,/obj/effect/landmark/event/rift/exit,/turf/unsimulated/beach/sand,/area/beach) "adG" = (/mob/living/simple_animal/crab/Coffee,/turf/unsimulated/beach/sand,/area/beach) "adH" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) @@ -192,52 +62,20 @@ "adL" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "adM" = (/obj/structure/sink{dir = 1; pixel_y = 16},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) "adN" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) -"adO" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"adP" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) -"adQ" = (/obj/structure/holohoop{dir = 4},/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adR" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adS" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adT" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 4},/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adU" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 2; icon_state = "right"; name = "Red Corner"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"adV" = (/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "adW" = (/turf/space/transit/west,/area/shuttle/escape_pod2/transit) "adX" = (/turf/space/transit/east,/area/shuttle/escape_pod2/transit) "adY" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/sand,/area/beach) "adZ" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aea" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aeb" = (/obj/machinery/door/airlock/hatch{name = "Restroom"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) -"aed" = (/turf/simulated/floor/holofloor/lino,/area/holodeck/source_meetinghall) -"aee" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_meetinghall) -"aef" = (/obj/item/beach_ball,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"aeg" = (/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"aeh" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aei" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aej" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aek" = (/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) +"aec" = (/obj/structure/table/woodentable,/obj/item/immovable_wand,/obj/item/paper/immovable_wand_note,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "ael" = (/obj/effect/shuttle_landmark/escape_pod/transit/pod2,/turf/space/transit/east,/area/shuttle/escape_pod2/transit) "aem" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aen" = (/obj/structure/bed/chair/comfy/black,/obj/effect/landmark/start/antags/commando,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aeo" = (/obj/machinery/light{dir = 4},/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aep" = (/obj/machinery/door/airlock/hatch{name = "Cabin"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) "aeq" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/prison/solitary) -"aer" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"aes" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aet" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aeu" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aev" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aew" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aex" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aey" = (/obj/effect/floor_decal/corner/red{dir = 6},/obj/item/beach_ball/holoball,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aez" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aeA" = (/obj/item/inflatable_duck,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"aeB" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 8},/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aeC" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/holo/esword/green,/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aeD" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aeE" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aeF" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aeG" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aeH" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aeI" = (/turf/unsimulated/beach/coastline{density = 1; opacity = 1},/area/beach) +"aeI" = (/turf/unsimulated/beach/coastline{opacity = 1; density = 1},/area/beach) "aeJ" = (/turf/unsimulated/beach/coastline,/area/beach) "aeK" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1; req_access = list(150)},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership/elite_squad) "aeL" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) @@ -252,18 +90,7 @@ "aeU" = (/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) "aeV" = (/obj/effect/decal/cleanable/cobweb2,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) "aeW" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) -"aeX" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aeY" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aeZ" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afa" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afb" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afc" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afd" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"afe" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/obj/structure/window/reinforced/holowindow/disappearing{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aff" = (/obj/effect/floor_decal/corner/green/three_quarters,/obj/structure/window/reinforced/holowindow/disappearing{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"afg" = (/obj/effect/floor_decal/corner/blue/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"afh" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"afi" = (/turf/unsimulated/beach/water{density = 1; opacity = 1},/area/beach) +"afi" = (/turf/unsimulated/beach/water{opacity = 1; density = 1},/area/beach) "afj" = (/turf/unsimulated/beach/water,/area/beach) "afk" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afl" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) @@ -271,70 +98,44 @@ "afn" = (/obj/structure/table/steel_reinforced,/obj/item/deck/cards,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afo" = (/obj/structure/table/steel_reinforced,/obj/machinery/recharger,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afp" = (/obj/structure/bed,/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) -"afq" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afr" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afs" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aft" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"afu" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"afv" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) "afw" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afx" = (/obj/effect/landmark/start/antags/commando,/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afy" = (/obj/machinery/mech_recharger,/obj/mecha/combat/marauder/mauler,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"afz" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"afA" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet{dir = 8},/area/holodeck/source_meetinghall) -"afB" = (/obj/structure/holohoop{dir = 8},/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afC" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afD" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afE" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 1; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"afF" = (/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"afG" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Green Corner"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"afH" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; tiles = 0},/turf/space,/area/space) +"afH" = (/obj/effect/step_trigger/thrower{name = "thrower_throwup"; direction = 1; tiles = 0},/turf/space,/area/space) "afI" = (/obj/effect/step_trigger/teleporter/random,/turf/space,/area/space) -"afJ" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{dir = 4; id = "syndicate_elite_mech_room"; name = "Mech Room Door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"afK" = (/obj/machinery/button/remote/blast_door{id = "syndicate_elite_mech_room"; name = "Mech Access"; pixel_x = 32; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"afL" = (/mob/living/silicon/decoy{icon_state = "ai-malf"; name = "GLaDOS"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/elite_squad) +"afJ" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{name = "Mech Room Door"; dir = 4; id = "syndicate_elite_mech_room"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"afK" = (/obj/machinery/button/remote/blast_door{name = "Mech Access"; pixel_x = 32; id = "syndicate_elite_mech_room"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"afL" = (/mob/living/silicon/decoy{name = "GLaDOS"; icon_state = "ai-malf"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/elite_squad) "afM" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/elite_squad) "afN" = (/turf/unsimulated/wall,/area/syndicate_mothership/elite_squad) "afO" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/tdome) -"afP" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afQ" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afR" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afS" = (/turf/simulated/floor/holofloor/beach/water,/area/holodeck/source_beach) "afT" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/dark,/area/syndicate_mothership/elite_squad) "afU" = (/obj/machinery/computer/shuttle_control/multi/elite_syndicate,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"afV" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "emerc_base"; name = "docking port controller"; pixel_y = -25; req_one_access = 150; tag_door = "emerc_airlock_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"afV" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "docking port controller"; pixel_y = -25; frequency = 1331; req_one_access = 150; id_tag = "emerc_base"; tag_door = "emerc_airlock_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afW" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afX" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw,/area/shuttle/syndicate_elite/mothership) -"afY" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afZ" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 1; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) -"aga" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"agb" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"agc" = (/obj/item/reagent_containers/food/checker/knight{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"agd" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"age" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"agf" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_airlock_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"agg" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) +"agf" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1331; locked = 1; id_tag = "emerc_airlock_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "agh" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) "agi" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) -"agj" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_airlock_dock_door"; locked = 1},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) +"agj" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1331; locked = 1; id_tag = "emerc_airlock_dock_door"},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) "agk" = (/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/north,/area/space) -"agl" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_t"},/area/shuttle/syndicate_elite/mothership) -"agm" = (/obj/structure/shuttle/engine/propulsion{dir = 1; icon_state = "propulsion_l"},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) -"agn" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_shuttle_outer"; locked = 1; name = "Ship External Access"; req_access = list(150)},/obj/machinery/shield_diffuser,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) +"agl" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/shuttle/syndicate_elite/mothership) +"agm" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) +"agn" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; icon_state = "door_locked"; frequency = 1331; locked = 1; req_access = list(150); id_tag = "emerc_shuttle_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "ago" = (/obj/structure/shuttle/engine/heater{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) "agp" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "emerc_shuttle_pump"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "agq" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) -"agr" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "emerc_shuttle_sensor"; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "emerc_shuttle_pump"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) +"agr" = (/obj/machinery/airlock_sensor{pixel_y = 25; frequency = 1331; id_tag = "emerc_shuttle_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "emerc_shuttle_pump"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "ags" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/sw,/area/shuttle/syndicate_elite/mothership) "agt" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "emerc_shuttle_pump"},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "agu" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) -"agv" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "emerc_shuttle"; pixel_x = 25; req_access = list(150)},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "emerc_shuttle_pump"},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) +"agv" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = 25; frequency = 1331; req_access = list(150); id_tag = "emerc_shuttle"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "emerc_shuttle_pump"},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "agw" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/se,/area/shuttle/syndicate_elite/mothership) -"agx" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_shuttle_inner"; locked = 1; name = "Ship External Access"; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) -"agy" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "elite_syndicate_ship"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/shuttle/syndicate_elite/mothership) +"agx" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; icon_state = "door_locked"; frequency = 1331; locked = 1; req_access = list(150); id_tag = "emerc_shuttle_inner"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) +"agy" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "elite_syndicate_ship"},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/shuttle/syndicate_elite/mothership) "agz" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector{dir = 4},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agA" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) -"agB" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "emerc_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) +"agB" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/obj/machinery/access_button{name = "interior access button"; pixel_x = 25; pixel_y = 25; frequency = 1331; req_access = list(150); command = "cycle_interior"; master_tag = "emerc_shuttle"},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agC" = (/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agD" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agE" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) @@ -344,60 +145,60 @@ "agI" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/red{dir = 9},/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agJ" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/red{dir = 6},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agK" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw{icon_state = "corner_syndiwall_s"},/area/syndicate_mothership/ninja) -"agL" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_t"},/area/syndicate_mothership/ninja) +"agL" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/syndicate_mothership/ninja) "agM" = (/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{name = "plating"},/area/rescue_base/base) "agN" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/ne{icon_state = "corner_syndiwall_s"},/area/syndicate_mothership/ninja) "agO" = (/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/syndi/se{icon_state = "corner_syndiwall_s"},/area/syndicate_mothership/ninja) "agP" = (/turf/simulated/floor/shuttle/red,/area/syndicate_mothership/ninja) "agQ" = (/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/syndi/sw{icon_state = "corner_syndiwall_s"},/area/syndicate_mothership/ninja) "agR" = (/turf/space/transit/north,/area/syndicate_station/transit) -"agS" = (/obj/machinery/button/remote/blast_door{id = "elite_syndicate_ship"; name = "remote shutter control"; req_access = list(150)},/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) +"agS" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; id = "elite_syndicate_ship"; req_access = list(150)},/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agT" = (/obj/structure/bed/chair,/obj/effect/shuttle_landmark/elite_syndicate/start,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agU" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agV" = (/obj/structure/bed/chair{dir = 1},/obj/effect/landmark/start/antags/ninja,/turf/simulated/floor/shuttle/red,/area/syndicate_mothership/ninja) -"agW" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north,/area/space) +"agW" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/turf/space/transit/north,/area/space) "agX" = (/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/south,/area/space) "agY" = (/obj/machinery/computer/shuttle_control/multi/elite_syndicate,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agZ" = (/obj/effect/landmark/start/antags/ninja,/turf/simulated/floor/shuttle/red,/area/syndicate_mothership/ninja) "aha" = (/obj/effect/shuttle_landmark/syndi/internim,/turf/space/transit/north,/area/syndicate_station/transit) "ahb" = (/turf/space/transit/south,/area/space) -"ahc" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "elite_syndicate_ship"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi,/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) +"ahc" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "elite_syndicate_ship"},/obj/structure/window/syndi,/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) "ahd" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/syndicate_mothership/ninja) +"ahe" = (/mob/living/simple_animal/tindalos{name = "Eddy"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/merchant_station) "ahf" = (/obj/machinery/teleporter_gate,/turf/simulated/floor/plating,/area/syndicate_mothership/ninja) -"ahg" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall{icon_state = "riveted_l"},/area/space) -"ahh" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 1; name = "thrower_throwupsidenostop"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north,/area/space) +"ahh" = (/obj/effect/step_trigger/thrower{name = "thrower_throwupsidenostop"; direction = 1; tiles = 0; affect_ghosts = 1; stopper = 0; nostop = 1},/turf/space/transit/north,/area/space) "ahi" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/sw,/area/syndicate_mothership/ninja) "ahj" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_mothership/ninja) "ahk" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_mothership/ninja) "ahl" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_mothership/ninja) "ahm" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/se,/area/syndicate_mothership/ninja) "ahn" = (/obj/effect/shuttle_landmark/skipjack/internim,/turf/space/transit/north,/area/space) -"ahs" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 1; name = "thrower_throwupsidenostop"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/south,/area/space) -"aht" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/south,/area/space) +"ahs" = (/obj/effect/step_trigger/thrower{name = "thrower_throwupsidenostop"; direction = 1; tiles = 0; affect_ghosts = 1; stopper = 0; nostop = 1},/turf/space/transit/south,/area/space) +"aht" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/turf/space/transit/south,/area/space) "ahu" = (/turf/space/transit/south,/area/shuttle/syndicate_elite/transit) -"ahv" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/east,/area/space) +"ahv" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(left)"; direction = 8; tiles = 0; affect_ghosts = 1},/turf/space/transit/east,/area/space) "ahw" = (/turf/space/transit/east,/area/shuttle/administration/transit) "ahx" = (/obj/effect/shuttle_landmark/elite_syndicate/internim,/turf/space/transit/south,/area/shuttle/syndicate_elite/transit) -"ahy" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/east,/area/space) +"ahy" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(right)"; direction = 4; tiles = 0; affect_ghosts = 1},/turf/space/transit/east,/area/space) "ahz" = (/obj/effect/shuttle_landmark/administration/internim,/turf/space/transit/east,/area/shuttle/administration/transit) -"ahA" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/east,/area/space) +"ahA" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/turf/space/transit/east,/area/space) "ahB" = (/turf/space/transit/east,/area/shuttle/deathsquad/transit) "ahC" = (/obj/effect/shuttle_landmark/deathsquad/internim,/turf/space/transit/east,/area/shuttle/deathsquad/transit) "ahD" = (/turf/space/transit/south,/area/shuttle/merchant/transit) "ahE" = (/obj/effect/shuttle_landmark/merchant/internim,/turf/space/transit/south,/area/shuttle/merchant/transit) -"ahF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) -"ahG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) -"ahH" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/south,/area/space) -"ahI" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/south,/area/space) +"ahF" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) +"ahG" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) +"ahH" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(left)"; direction = 8; tiles = 0; affect_ghosts = 1},/turf/space/transit/south,/area/space) +"ahI" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(right)"; direction = 4; tiles = 0; affect_ghosts = 1},/turf/space/transit/south,/area/space) "ahJ" = (/turf/unsimulated/mineral,/area/rescue_base/base) "ahK" = (/turf/unsimulated/wall,/area/rescue_base/base) -"ahL" = (/turf/unsimulated/wall{desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"; name = "Facility Access"},/area/rescue_base/base) +"ahL" = (/turf/unsimulated/wall{name = "Facility Access"; desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"},/area/rescue_base/base) "ahM" = (/obj/structure/table/steel_reinforced,/obj/item/material/hatchet/tacknife,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ahN" = (/obj/structure/table/steel_reinforced,/obj/item/storage/firstaid/regular,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ahO" = (/obj/machinery/floodlight,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ahP" = (/obj/structure/table/steel_reinforced,/obj/item/storage/box/bodybags,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ahQ" = (/obj/structure/table/steel_reinforced,/obj/item/storage/firstaid/surgery,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) -"ahR" = (/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"ahR" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "ahS" = (/obj/structure/table/steel_reinforced,/obj/item/device/taperecorder,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ahT" = (/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ahU" = (/obj/structure/table/steel_reinforced,/obj/item/bikehorn/rubberducky,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) @@ -408,11 +209,11 @@ "ahZ" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aia" = (/obj/structure/table/steel_reinforced,/obj/item/material/twohanded/baseballbat/metal,/obj/item/material/hatchet,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aib" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/rescue_base/base) -"aic" = (/obj/item/aiModule/nanotrasen,/obj/item/aiModule/reset,/obj/item/aiModule/freeformcore,/obj/item/aiModule/protectStation,/obj/item/aiModule/quarantine,/obj/item/aiModule/paladin,/obj/item/aiModule/robocop,/obj/item/aiModule/safeguard,/obj/structure/table/rack,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aid" = (/obj/structure/table/rack,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aie" = (/obj/structure/table/rack,/obj/item/gun/projectile/shotgun/pump/combat,/obj/item/gun/projectile/shotgun/pump/combat,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aif" = (/obj/structure/table/reinforced,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/storage/firstaid/surgery,/obj/item/storage/firstaid/surgery,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aig" = (/obj/structure/table/rack,/obj/item/gun/energy/rifle,/obj/item/gun/energy/rifle,/obj/item/gun/energy/rifle,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"aic" = (/obj/item/aiModule/nanotrasen,/obj/item/aiModule/reset,/obj/item/aiModule/freeformcore,/obj/item/aiModule/protectStation,/obj/item/aiModule/quarantine,/obj/item/aiModule/paladin,/obj/item/aiModule/robocop,/obj/item/aiModule/safeguard,/obj/structure/table/rack,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aid" = (/obj/structure/table/rack,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aie" = (/obj/structure/table/rack,/obj/item/gun/projectile/shotgun/pump/combat,/obj/item/gun/projectile/shotgun/pump/combat,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aif" = (/obj/structure/table/reinforced,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/storage/firstaid/surgery,/obj/item/storage/firstaid/surgery,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aig" = (/obj/structure/table/rack,/obj/item/gun/energy/rifle,/obj/item/gun/energy/rifle,/obj/item/gun/energy/rifle,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aih" = (/obj/structure/table/steel_reinforced,/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = -1},/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 4},/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aii" = (/obj/structure/table/steel_reinforced,/obj/item/storage/belt/utility/full,/obj/item/device/assembly/igniter,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aij" = (/obj/structure/mopbucket,/obj/item/mop,/obj/effect/floor_decal/corner/blue/diagonal,/obj/structure/sink/kitchen{pixel_y = 21},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/rescue_base/base) @@ -424,18 +225,17 @@ "aip" = (/obj/machinery/door/airlock/centcom{name = "Stall"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/rescue_base/base) "aiq" = (/obj/structure/mirror,/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/rescue_base/base) "air" = (/obj/machinery/door/airlock/centcom{name = "Showers"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/rescue_base/base) -"ais" = (/obj/structure/table/rack,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ait" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"aiu" = (/obj/structure/table/rack,/obj/item/circuitboard/borgupload,/obj/item/circuitboard/aiupload{pixel_x = -3; pixel_y = -3},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aiv" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/wt550,/obj/item/gun/projectile/automatic/wt550,/obj/item/gun/projectile/automatic/wt550,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"ais" = (/obj/structure/table/rack,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ait" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"aiu" = (/obj/structure/table/rack,/obj/item/circuitboard/borgupload,/obj/item/circuitboard/aiupload{pixel_x = -3; pixel_y = -3},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aiv" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/wt550,/obj/item/gun/projectile/automatic/wt550,/obj/item/gun/projectile/automatic/wt550,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aiw" = (/obj/machinery/door/airlock/centcom{name = "Processing"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aix" = (/obj/effect/floor_decal/corner/blue/diagonal,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/rescue_base/base) "aiy" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/machinery/door/airlock/centcom{name = "Storage"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "white"},/area/rescue_base/base) "aiz" = (/obj/machinery/door/airlock/centcom{name = "Head"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/rescue_base/base) "aiA" = (/obj/structure/sink{dir = 1; pixel_y = 16},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/rescue_base/base) -"aiB" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/l6_saw,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aiC" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/space) -"aiD" = (/obj/structure/table/rack,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"aiB" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/l6_saw,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aiD" = (/obj/structure/table/rack,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aiE" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{name = "plating"},/area/rescue_base/base) "aiF" = (/obj/structure/table/reinforced,/obj/item/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aiG" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) @@ -444,11 +244,11 @@ "aiJ" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space) "aiK" = (/obj/structure/lattice,/turf/space,/area/space) "aiL" = (/obj/effect/floor_decal/corner/blue/diagonal,/turf/unsimulated/floor{icon_state = "white"},/area/rescue_base/base) -"aiM" = (/obj/structure/table/rack,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aiN" = (/obj/structure/table/rack,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"aiM" = (/obj/structure/table/rack,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aiN" = (/obj/structure/table/rack,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aiO" = (/obj/structure/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aiP" = (/obj/structure/table/reinforced,/obj/item/device/flash,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) -"aiQ" = (/turf/unsimulated/floor{dir = 9; icon_state = "vault"},/area/rescue_base/base) +"aiQ" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 9},/area/rescue_base/base) "aiR" = (/obj/machinery/door/airlock/centcom{name = "Cell 2"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aiS" = (/obj/machinery/vending/dinnerware,/obj/effect/floor_decal/corner/blue/diagonal,/turf/unsimulated/floor{icon_state = "white"},/area/rescue_base/base) "aiT" = (/obj/structure/table/rack,/obj/item/device/lightreplacer,/obj/item/device/lightreplacer,/obj/effect/floor_decal/corner/blue/diagonal,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/rescue_base/base) @@ -459,26 +259,26 @@ "aiY" = (/turf/unsimulated/floor{icon_state = "asteroid"},/area/rescue_base/base) "aiZ" = (/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/rescue_base/base) "aja" = (/obj/structure/flora/ausbushes/fullgrass,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/rescue_base/base) -"ajb" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/z8,/obj/item/gun/projectile/automatic/z8,/obj/item/grenade/frag/shell,/obj/item/grenade/frag/shell,/obj/item/grenade/frag/shell,/obj/item/grenade/frag/shell,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajc" = (/obj/machinery/door/airlock/centcom{name = "Restricted Equipment"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular/singulo{dir = 4; id = "heavyrescue"; name = "Restricted Equipment"},/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"ajd" = (/obj/structure/table/rack,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"ajb" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/z8,/obj/item/gun/projectile/automatic/z8,/obj/item/grenade/frag/shell,/obj/item/grenade/frag/shell,/obj/item/grenade/frag/shell,/obj/item/grenade/frag/shell,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajc" = (/obj/machinery/door/airlock/centcom{name = "Restricted Equipment"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular/singulo{name = "Restricted Equipment"; dir = 4; id = "heavyrescue"},/obj/effect/forcefield{name = "Blocker"; desc = "You can't get in. Heh."; layer = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"ajd" = (/obj/structure/table/rack,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aje" = (/obj/structure/table/reinforced,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ajf" = (/obj/item/stool,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ajg" = (/obj/structure/table/standard,/obj/item/paper,/obj/item/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ajh" = (/obj/machinery/door/airlock/centcom{name = "Galley"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aji" = (/obj/structure/flora/ausbushes/fullgrass,/turf/unsimulated/floor{icon_state = "asteroid"},/area/rescue_base/base) -"ajj" = (/obj/structure/table/rack,/obj/item/gun/launcher/grenade,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajk" = (/obj/structure/table/rack,/obj/item/storage/box/flashbangs,/obj/item/storage/box/flashbangs,/obj/item/storage/box/teargas,/obj/item/storage/box/teargas,/obj/item/storage/box/emps,/obj/item/storage/box/emps,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"ajj" = (/obj/structure/table/rack,/obj/item/gun/launcher/grenade,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajk" = (/obj/structure/table/rack,/obj/item/storage/box/flashbangs,/obj/item/storage/box/flashbangs,/obj/item/storage/box/teargas,/obj/item/storage/box/teargas,/obj/item/storage/box/emps,/obj/item/storage/box/emps,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "ajl" = (/obj/structure/lattice,/obj/structure/window_frame/grille,/turf/space,/area/space) -"ajm" = (/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/mask/balaclava,/obj/item/material/coin/silver,/obj/structure/closet{icon_closed = "syndicate1"; icon_opened = "syndicate1open"; icon_state = "syndicate1"; name = "emergency response team wardrobe"},/obj/item/clothing/under/tactical,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajn" = (/obj/structure/bed/padded,/obj/item/bedsheet/captain,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajo" = (/obj/structure/bed/padded,/obj/item/bedsheet/captain,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajp" = (/obj/machinery/vending/coffee{prices = list()},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajq" = (/obj/machinery/door/airlock/centcom{name = "Combat Exosuit"; opacity = 1; req_access = list(103)},/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/machinery/door/blast/regular/singulo{dir = 4; id = "heavyrescue"; name = "Combat Exosuit"},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"ajm" = (/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/mask/balaclava,/obj/item/material/coin/silver,/obj/structure/closet{name = "emergency response team wardrobe"; icon_state = "syndicate1"; icon_closed = "syndicate1"; icon_opened = "syndicate1open"},/obj/item/clothing/under/tactical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajn" = (/obj/structure/bed/padded,/obj/item/bedsheet/captain,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajo" = (/obj/structure/bed/padded,/obj/item/bedsheet/captain,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajp" = (/obj/machinery/vending/coffee{prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajq" = (/obj/machinery/door/airlock/centcom{name = "Combat Exosuit"; opacity = 1; req_access = list(103)},/obj/effect/forcefield{name = "Blocker"; desc = "You can't get in. Heh."; layer = 1},/obj/machinery/door/blast/regular/singulo{name = "Combat Exosuit"; dir = 4; id = "heavyrescue"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "ajr" = (/obj/machinery/door/airlock/centcom{name = "Detention"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ajs" = (/obj/structure/lattice,/obj/structure/window_frame/broken,/turf/space,/area/space) "ajt" = (/turf/unsimulated/wall,/area/syndicate_mothership) -"aju" = (/obj/effect/landmark/start/antags/ert,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"aju" = (/obj/effect/landmark/start/antags/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "ajv" = (/obj/machinery/door/airlock/centcom{name = "Squad Bay"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ajw" = (/obj/machinery/door/airlock/centcom{name = "Cell 1"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ajx" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 8},/obj/item/pen{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) @@ -489,76 +289,72 @@ "ajC" = (/obj/structure/bed,/obj/item/bedsheet/hos,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "ajD" = (/obj/effect/landmark/start/antags/operatives,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "ajE" = (/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) -"ajF" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"ajF" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "ajG" = (/obj/vehicle/bike/electric,/obj/effect/floor_decal/industrial/hatch/red,/obj/effect/floor_decal/industrial/warning/full,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"ajH" = (/obj/machinery/door/airlock/centcom{name = "Ready Room"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"ajI" = (/obj/structure/table/rack,/obj/item/storage/box/handcuffs,/obj/item/storage/box/handcuffs,/obj/item/storage/box/teargas,/obj/item/storage/box/teargas,/obj/item/storage/box/flashbangs,/obj/item/storage/box/flashbangs,/obj/item/device/flash,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/reagent_containers/spray/pepper,/obj/item/reagent_containers/spray/pepper,/obj/item/gun/energy/stunrevolver,/obj/item/gun/energy/stunrevolver,/obj/item/melee/telebaton,/obj/item/melee/telebaton,/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajJ" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/hud/scanners/night,/obj/item/clothing/glasses/hud/scanners/night,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajK" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/security,/obj/item/storage/backpack/ert/security,/obj/item/storage/belt/security/tactical,/obj/item/storage/belt/security/tactical,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajL" = (/obj/structure/table/rack,/obj/item/gun/energy/rifle,/obj/item/gun/energy/rifle,/obj/item/gun/energy/rifle,/obj/item/gun/energy/rifle,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajM" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajN" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajO" = (/obj/structure/table/rack,/obj/item/gun/energy/stunrevolver,/obj/item/gun/energy/stunrevolver,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajP" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/medical,/obj/item/storage/backpack/ert/medical,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical/emt,/obj/item/storage/belt/medical/emt,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajQ" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/storage/box/gloves,/obj/item/storage/box/gloves,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajR" = (/obj/structure/table/rack,/obj/item/device/flash,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/storage/box/syringes,/obj/item/storage/box/syringes,/obj/item/storage/box/autoinjectors,/obj/item/storage/box/autoinjectors,/obj/item/storage/box/beakers,/obj/item/storage/box/beakers,/obj/item/storage/box/pillbottles,/obj/item/storage/box/pillbottles,/obj/item/storage/box/bodybags,/obj/item/storage/box/bodybags,/obj/item/storage/box/syringegun,/obj/item/storage/box/syringegun,/obj/item/storage/box/syringegun,/obj/item/storage/box/syringegun,/obj/item/gun/launcher/syringe/rapid,/obj/item/gun/launcher/syringe/rapid,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajS" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/vessel/beaker/large,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajT" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) -"ajU" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/space) -"ajV" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/space) -"ajW" = (/obj/structure/table/rack,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ajX" = (/obj/structure/table/rack,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"ajH" = (/obj/machinery/door/airlock/centcom{name = "Ready Room"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"ajI" = (/obj/structure/table/rack,/obj/item/storage/box/handcuffs,/obj/item/storage/box/handcuffs,/obj/item/storage/box/teargas,/obj/item/storage/box/teargas,/obj/item/storage/box/flashbangs,/obj/item/storage/box/flashbangs,/obj/item/device/flash,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/reagent_containers/spray/pepper,/obj/item/reagent_containers/spray/pepper,/obj/item/gun/energy/stunrevolver,/obj/item/gun/energy/stunrevolver,/obj/item/melee/telebaton,/obj/item/melee/telebaton,/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajJ" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/hud/scanners/night,/obj/item/clothing/glasses/hud/scanners/night,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajK" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/security,/obj/item/storage/backpack/ert/security,/obj/item/storage/belt/security/tactical,/obj/item/storage/belt/security/tactical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajL" = (/obj/structure/table/rack,/obj/item/gun/energy/rifle,/obj/item/gun/energy/rifle,/obj/item/gun/energy/rifle,/obj/item/gun/energy/rifle,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajM" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajN" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajO" = (/obj/structure/table/rack,/obj/item/gun/energy/stunrevolver,/obj/item/gun/energy/stunrevolver,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajP" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/medical,/obj/item/storage/backpack/ert/medical,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical/emt,/obj/item/storage/belt/medical/emt,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajQ" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/storage/box/gloves,/obj/item/storage/box/gloves,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajR" = (/obj/structure/table/rack,/obj/item/device/flash,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/storage/box/syringes,/obj/item/storage/box/syringes,/obj/item/storage/box/autoinjectors,/obj/item/storage/box/autoinjectors,/obj/item/storage/box/beakers,/obj/item/storage/box/beakers,/obj/item/storage/box/pillbottles,/obj/item/storage/box/pillbottles,/obj/item/storage/box/bodybags,/obj/item/storage/box/bodybags,/obj/item/storage/box/syringegun,/obj/item/storage/box/syringegun,/obj/item/storage/box/syringegun,/obj/item/storage/box/syringegun,/obj/item/gun/launcher/syringe/rapid,/obj/item/gun/launcher/syringe/rapid,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajS" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/vessel/beaker/large,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajW" = (/obj/structure/table/rack,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajX" = (/obj/structure/table/rack,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "ajY" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced/crescent{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_mothership/ninja) -"ajZ" = (/obj/machinery/turret/network/centcomm,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aka" = (/obj/structure/table/rack,/obj/item/rig/ert/medical,/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent{dir = 8},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akb" = (/obj/item/folder{pixel_y = 2},/obj/structure/table/glass,/obj/item/flame/lighter/zippo/syndie,/obj/item/deck/cards,/obj/item/music_tape_box/syndie,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) -"akc" = (/obj/machinery/vending/snack{prices = list()},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akd" = (/obj/machinery/vending/cola{prices = list()},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ake" = (/obj/machinery/vending/cigarette{prices = list()},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akf" = (/obj/machinery/lapvend,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akg" = (/obj/structure/reagent_dispensers/water_cooler,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akh" = (/obj/structure/table/reinforced,/obj/item/device/radio/intercom/specops{pixel_y = 22},/obj/item/storage/box/cups,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aki" = (/obj/structure/table/rack,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akj" = (/obj/structure/table/rack,/obj/item/gun/energy/laser,/obj/item/gun/energy/laser,/obj/item/gun/energy/laser,/obj/item/gun/energy/laser,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akk" = (/obj/machinery/chemical_dispenser/ert,/obj/item/reagent_containers/vessel/beaker/large,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"ajZ" = (/obj/machinery/turret/network/centcomm,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aka" = (/obj/structure/table/rack,/obj/item/rig/ert/medical,/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent{dir = 8},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akb" = (/obj/item/folder{pixel_y = 2},/obj/structure/table/glass,/obj/item/flame/lighter/zippo/syndie,/obj/item/deck/cards,/obj/item/music_tape_box/syndie,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"akc" = (/obj/machinery/vending/snack{prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akd" = (/obj/machinery/vending/cola{prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ake" = (/obj/machinery/vending/cigarette{prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akf" = (/obj/machinery/lapvend,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akg" = (/obj/structure/reagent_dispensers/water_cooler,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akh" = (/obj/structure/table/reinforced,/obj/item/device/radio/intercom/specops{pixel_y = 22},/obj/item/storage/box/cups,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aki" = (/obj/structure/table/rack,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akj" = (/obj/structure/table/rack,/obj/item/gun/energy/laser,/obj/item/gun/energy/laser,/obj/item/gun/energy/laser,/obj/item/gun/energy/laser,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akk" = (/obj/machinery/chemical_dispenser/ert,/obj/item/reagent_containers/vessel/beaker/large,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akl" = (/obj/item/device/pda/syndicate,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) -"akm" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akn" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle/small,/obj/item/gun/energy/ionrifle/small,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"ako" = (/obj/structure/table/reinforced,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/defibrillator/compact/combat/loaded,/obj/item/defibrillator/compact/combat/loaded,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akp" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) -"akq" = (/obj/machinery/chem_master,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"akm" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akn" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle/small,/obj/item/gun/energy/ionrifle/small,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ako" = (/obj/structure/table/reinforced,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/defibrillator/compact/combat/loaded,/obj/item/defibrillator/compact/combat/loaded,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akq" = (/obj/machinery/chem_master,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akr" = (/obj/structure/bed/chair/office/light{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aks" = (/obj/structure/table/reinforced,/obj/item/stamp/centcomm,/obj/item/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "akt" = (/obj/structure/table/reinforced,/obj/item/board,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "aku" = (/obj/structure/bed/chair/office/light{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) -"akv" = (/obj/structure/table/reinforced,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akw" = (/obj/structure/table/rack,/obj/item/gun/energy/accelerator,/obj/item/gun/energy/accelerator,/obj/item/gun/energy/accelerator,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akx" = (/obj/machinery/chemical_dispenser/full,/obj/item/reagent_containers/vessel/beaker/large,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"akv" = (/obj/structure/table/reinforced,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akw" = (/obj/structure/table/rack,/obj/item/gun/energy/accelerator,/obj/item/gun/energy/accelerator,/obj/item/gun/energy/accelerator,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akx" = (/obj/machinery/chemical_dispenser/full,/obj/item/reagent_containers/vessel/beaker/large,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aky" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/green,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/green,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "akz" = (/obj/machinery/door/airlock/centcom{name = "Barracks"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "akA" = (/obj/structure/table/reinforced,/obj/item/storage/fancy/cigar,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "akB" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) -"akC" = (/obj/structure/table/reinforced,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/structure/noticeboard{pixel_x = 32},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akD" = (/obj/structure/table/reinforced,/obj/item/taperoll/police,/obj/item/taperoll/police,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akE" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akF" = (/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akG" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/spray/cleaner,/obj/item/reagent_containers/spray/cleaner,/obj/item/reagent_containers/spray/sterilizine,/obj/item/reagent_containers/spray/sterilizine,/obj/item/storage/box/bloodpacks,/obj/item/tape/medical,/obj/item/tape/medical,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akH" = (/obj/structure/table/reinforced,/obj/item/storage/firstaid/fire,/obj/item/storage/firstaid/fire,/obj/item/storage/firstaid/fire,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/o2,/obj/item/storage/firstaid/o2,/obj/item/storage/firstaid/o2,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akI" = (/obj/structure/table/reinforced,/obj/item/storage/firstaid/regular,/obj/item/storage/firstaid/regular,/obj/item/storage/firstaid/regular,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/combat,/obj/item/storage/firstaid/combat,/obj/item/storage/firstaid/combat,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akJ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akK" = (/obj/structure/table/rack,/obj/item/rig/ert/medical,/obj/structure/window/reinforced/crescent{dir = 1},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akL" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/vision/medhud,/obj/item/rig_module/vision/medhud,/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akM" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/grenade_launcher,/obj/item/rig_module/vision/sechud,/obj/item/rig_module/vision/sechud,/obj/item/rig_module/device/flash,/obj/item/rig_module/device/flash,/obj/item/rig_module/mounted,/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akN" = (/obj/structure/table/rack,/obj/item/rig/ert/security,/obj/structure/window/reinforced/crescent{dir = 1},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akO" = (/obj/structure/table/rack,/obj/item/rig/ert/security,/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent{dir = 4},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"akP" = (/turf/unsimulated/wall{desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"; name = "Foxtrot Barracks"},/area/rescue_base/base) +"akC" = (/obj/structure/table/reinforced,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/structure/noticeboard{pixel_x = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akD" = (/obj/structure/table/reinforced,/obj/item/taperoll/police,/obj/item/taperoll/police,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akE" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akF" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akG" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/spray/cleaner,/obj/item/reagent_containers/spray/cleaner,/obj/item/reagent_containers/spray/sterilizine,/obj/item/reagent_containers/spray/sterilizine,/obj/item/storage/box/bloodpacks,/obj/item/tape/medical,/obj/item/tape/medical,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akH" = (/obj/structure/table/reinforced,/obj/item/storage/firstaid/fire,/obj/item/storage/firstaid/fire,/obj/item/storage/firstaid/fire,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/o2,/obj/item/storage/firstaid/o2,/obj/item/storage/firstaid/o2,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akI" = (/obj/structure/table/reinforced,/obj/item/storage/firstaid/regular,/obj/item/storage/firstaid/regular,/obj/item/storage/firstaid/regular,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/combat,/obj/item/storage/firstaid/combat,/obj/item/storage/firstaid/combat,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akJ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akK" = (/obj/structure/table/rack,/obj/item/rig/ert/medical,/obj/structure/window/reinforced/crescent{dir = 1},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akL" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/vision/medhud,/obj/item/rig_module/vision/medhud,/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akM" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/grenade_launcher,/obj/item/rig_module/vision/sechud,/obj/item/rig_module/vision/sechud,/obj/item/rig_module/device/flash,/obj/item/rig_module/device/flash,/obj/item/rig_module/mounted,/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akN" = (/obj/structure/table/rack,/obj/item/rig/ert/security,/obj/structure/window/reinforced/crescent{dir = 1},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akO" = (/obj/structure/table/rack,/obj/item/rig/ert/security,/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent{dir = 4},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akP" = (/turf/unsimulated/wall{name = "Foxtrot Barracks"; desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"},/area/rescue_base/base) "akQ" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw{icon_state = "corner_syndiwall_s"},/area/syndicate_station/start) "akR" = (/obj/structure/window/syndi,/turf/simulated/floor/plating,/area/syndicate_station/start) "akS" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/ne,/area/syndicate_station/start) -"akT" = (/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) -"akU" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) -"akV" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) -"akW" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) +"akT" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"akU" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"akV" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"akW" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "akX" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full{pixel_x = 2; pixel_y = 6},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "akY" = (/obj/structure/table/standard,/obj/item/storage/box/glasses/square{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "akZ" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) @@ -566,70 +362,70 @@ "alb" = (/obj/structure/flora/ausbushes/palebush,/turf/unsimulated/floor{icon_state = "asteroid"},/area/rescue_base/base) "alc" = (/obj/structure/table/reinforced,/obj/item/material/ashtray/plastic,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ald" = (/obj/structure/table/reinforced,/obj/item/storage/box/donut,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) -"ale" = (/obj/structure/table/reinforced,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"ale" = (/obj/structure/table/reinforced,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "alf" = (/obj/machinery/vending/security,/turf/unsimulated/wall,/area/rescue_base/base) -"alg" = (/obj/machinery/door/airlock/centcom{name = "Security"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"alh" = (/obj/machinery/door/airlock/centcom{name = "Medical"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"alg" = (/obj/machinery/door/airlock/centcom{name = "Security"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"alh" = (/obj/machinery/door/airlock/centcom{name = "Medical"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "ali" = (/obj/machinery/vending/medical,/turf/unsimulated/wall,/area/rescue_base/base) -"alj" = (/obj/machinery/door/airlock/centcom{name = "Heavy Equipment"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular/singulo{density = 0; dir = 2; icon_state = "pdoor0"; id = "standardrescue"; name = "Heavy Equipment"; opacity = 0},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"alj" = (/obj/machinery/door/airlock/centcom{name = "Heavy Equipment"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular/singulo{name = "Heavy Equipment"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 2; id = "standardrescue"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "alk" = (/turf/space,/area/shuttle/escape_pod1/centcom) "all" = (/turf/space,/area/shuttle/escape_pod2/centcom) -"alm" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/syndicate_station/start) +"alm" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/syndicate_station/start) "aln" = (/obj/machinery/recharger,/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "alo" = (/obj/item/modular_computer/console/preset/syndicate,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "alp" = (/obj/machinery/computer/shuttle_control/multi/syndicate,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "alq" = (/obj/structure/computerframe,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"alr" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters"; name = "remote shutter control"; req_access = list(150)},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"als" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) +"alr" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; id = "syndieshutters"; req_access = list(150)},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"als" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "alt" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "alu" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "alv" = (/obj/structure/table/reinforced,/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) -"alw" = (/obj/machinery/door/airlock/centcom{name = "Unit Area"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"alx" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"aly" = (/obj/machinery/door/airlock/centcom{name = "Echo Barracks"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"alz" = (/turf/unsimulated/wall{desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"; name = "Delta Barracks"},/area/rescue_base/base) +"alw" = (/obj/machinery/door/airlock/centcom{name = "Unit Area"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"alx" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"aly" = (/obj/machinery/door/airlock/centcom{name = "Echo Barracks"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"alz" = (/turf/unsimulated/wall{name = "Delta Barracks"; desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"},/area/rescue_base/base) "alA" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 2},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "alB" = (/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "alC" = (/obj/effect/shuttle_landmark/syndi/start,/obj/structure/bed/chair/comfy/captain{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"alD" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) +"alD" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "alE" = (/obj/effect/floor_decal/industrial/warning/red/cee{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"alF" = (/obj/item/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/pen{pixel_y = 4},/obj/structure/table/glass,/obj/item/clothing/glasses/rglasses,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) -"alG" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) +"alF" = (/obj/item/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/pen{pixel_y = 4},/obj/structure/table/glass,/obj/item/clothing/glasses/rglasses,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"alG" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "alH" = (/obj/structure/table/reinforced,/obj/item/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "alI" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/blue,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/blue,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "alJ" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "alK" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/med,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/med,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "alL" = (/obj/structure/flora/ausbushes/sunnybush,/turf/unsimulated/floor{icon_state = "asteroid"},/area/rescue_base/base) -"alM" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"alN" = (/obj/machinery/recharge_station,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"alO" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"alP" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"alQ" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"alR" = (/obj/item/device/radio/intercom/specops{dir = 1; pixel_y = -22},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"alS" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "rescue_base"; pixel_x = 5; pixel_y = -25; tag_door = "rescue_base_hatch"},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"alM" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"alN" = (/obj/machinery/recharge_station,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"alO" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"alP" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"alQ" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"alR" = (/obj/item/device/radio/intercom/specops{dir = 1; pixel_y = -22},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"alS" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = 5; pixel_y = -25; frequency = 1331; id_tag = "rescue_base"; tag_door = "rescue_base_hatch"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "alT" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/nw,/area/centcom/evac) -"alU" = (/obj/structure/shuttle/engine/propulsion{dir = 1; icon_state = "propulsion_r"},/turf/space,/area/centcom/evac) +"alU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/space,/area/centcom/evac) "alV" = (/obj/structure/shuttle/engine/propulsion{dir = 1},/turf/space,/area/centcom/evac) -"alW" = (/obj/structure/shuttle/engine/propulsion{dir = 1; icon_state = "propulsion_l"},/turf/space,/area/centcom/evac) +"alW" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/space,/area/centcom/evac) "alX" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/centcom/evac) "alY" = (/obj/item/storage/box/donkpockets{pixel_x = 2; pixel_y = 3},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "alZ" = (/obj/structure/bed/chair/shuttle/red{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "ama" = (/obj/machinery/light{dir = 4},/obj/structure/computerframe,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"amb" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) -"amc" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) +"amb" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"amc" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "amd" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "ame" = (/obj/structure/table/reinforced,/obj/item/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "amf" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/vessel/bottle/vodka{pixel_x = 3; pixel_y = 12},/obj/item/reagent_containers/vessel/bottle/wine{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "amg" = (/obj/effect/floor_decal/industrial/warning/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "amh" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "ami" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"amj" = (/obj/machinery/door/airlock/centcom{name = "Squad Leader's Office"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"amk" = (/obj/machinery/door/airlock/centcom{name = "Command"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"aml" = (/obj/machinery/door/airlock/centcom{name = "Engineering"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"amj" = (/obj/machinery/door/airlock/centcom{name = "Squad Leader's Office"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"amk" = (/obj/machinery/door/airlock/centcom{name = "Command"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"aml" = (/obj/machinery/door/airlock/centcom{name = "Engineering"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "amm" = (/obj/machinery/vending/engineering,/turf/unsimulated/wall,/area/rescue_base/base) -"amn" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "rescue_base_hatch"; name = "Landing Pad"; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"amn" = (/obj/machinery/door/airlock/external{name = "Landing Pad"; frequency = 1331; req_access = list(103); id_tag = "rescue_base_hatch"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "amo" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"},/area/centcom/evac) -"amp" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig/ert,/obj/structure/window/reinforced/crescent{dir = 8},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"amp" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig/ert,/obj/structure/window/reinforced/crescent{dir = 8},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "amq" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 8},/area/centcom/evac) "amr" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"; dir = 4},/area/centcom/evac) "amu" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_d"; dir = 4},/area/centcom/evac) @@ -637,17 +433,17 @@ "amw" = (/obj/machinery/light,/obj/item/device/radio/intercom/syndicate{dir = 1; pixel_y = -22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "amx" = (/obj/item/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/pen{pixel_y = 4},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "amy" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "6"; dir = 8},/turf/simulated/floor/plating,/area/shuttle/escape/centcom) -"amz" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) +"amz" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "amA" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"amB" = (/obj/structure/table/reinforced,/obj/item/storage/box/trackimp,/obj/item/storage/box/cdeathalarm_kit,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"amC" = (/obj/structure/table/reinforced,/obj/prefab/hand_teleporter,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"amD" = (/obj/structure/table/reinforced,/obj/item/aicard,/obj/item/pinpointer/advpinpointer,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"amE" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/cell/hyper,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"amF" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"amG" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"amH" = (/obj/machinery/vending/assist,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"amI" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/obj/structure/table/rack,/obj/item/backwear/powered/rpd/loaded,/obj/item/backwear/powered/rpd/loaded,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"amJ" = (/obj/machinery/pipedispenser/disposal/orderable,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"amB" = (/obj/structure/table/reinforced,/obj/item/storage/box/trackimp,/obj/item/storage/box/cdeathalarm_kit,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"amC" = (/obj/structure/table/reinforced,/obj/prefab/hand_teleporter,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"amD" = (/obj/structure/table/reinforced,/obj/item/aicard,/obj/item/pinpointer/advpinpointer,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"amE" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/cell/hyper,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"amF" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"amG" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"amH" = (/obj/machinery/vending/assist,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"amI" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/obj/structure/table/rack,/obj/item/backwear/powered/rpd/loaded,/obj/item/backwear/powered/rpd/loaded,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"amJ" = (/obj/machinery/pipedispenser/disposal/orderable,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "amK" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) "amL" = (/obj/machinery/portable_atmospherics/powered/pump,/turf/simulated/floor/plating,/area/centcom/evac) "amM" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/centcom/evac) @@ -661,17 +457,17 @@ "amW" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/centcom/evac) "amX" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/centcom/evac) "amY" = (/obj/machinery/vending/engineering,/turf/simulated/floor/plating,/area/centcom/evac) -"amZ" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "rescuebridge"; name = "Bridge Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws5"},/turf/simulated/floor/plating,/area/rescue_base/start) +"amZ" = (/obj/machinery/door/blast/regular{name = "Bridge Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "rescuebridge"},/obj/structure/window/syndi{icon_state = "ws5"},/turf/simulated/floor/plating,/area/rescue_base/start) "ana" = (/obj/machinery/door/window/northright{name = "Flight Deck"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"anb" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "syndieshutters_infirmary"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/syndicate_station/start) -"anc" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "rescuebridge"; name = "Bridge Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws6"},/turf/simulated/floor/plating,/area/rescue_base/start) +"anb" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"anc" = (/obj/machinery/door/blast/regular{name = "Bridge Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "rescuebridge"},/obj/structure/window/syndi{icon_state = "ws6"},/turf/simulated/floor/plating,/area/rescue_base/start) "and" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) "ane" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "anf" = (/obj/effect/floor_decal/spline/plain/black{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "ang" = (/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "anh" = (/obj/item/soap/syndie,/obj/machinery/shower{pixel_y = 24},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) -"ani" = (/obj/structure/bed/chair/office/dark,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"anj" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "rescue_base_hatch"; req_access = list(103)},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) +"ani" = (/obj/structure/bed/chair/office/dark,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"anj" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/door/airlock/external{frequency = 1331; req_access = list(103); id_tag = "rescue_base_hatch"},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) "ank" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/tiled,/area/merchant_station) "anl" = (/turf/simulated/floor/plating,/area/centcom/evac) "anm" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 1},/area/centcom/evac) @@ -692,18 +488,17 @@ "anB" = (/obj/structure/table/steel,/obj/item/stamp/centcomm,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "anC" = (/obj/structure/table/steel,/obj/item/storage/fancy/cigar,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "anD" = (/obj/machinery/door/airlock/centcom{name = "Command"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) -"anE" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"anF" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"anG" = (/obj/machinery/shieldgen,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"anE" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"anF" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"anG" = (/obj/machinery/shieldgen,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "anH" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) "anI" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) -"anJ" = (/obj/machinery/button/remote/blast_door{id = "rescuegarage"; name = "Garage"; pixel_x = -24; pixel_y = -4; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"anK" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"anL" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/teleporter,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"anM" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"anJ" = (/obj/machinery/button/remote/blast_door{name = "Garage"; pixel_x = -24; pixel_y = -4; id = "rescuegarage"; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"anK" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"anL" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/teleporter,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"anM" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "anN" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/sw,/area/centcom/evac) "anO" = (/obj/machinery/door/airlock/maintenance_hatch{req_access = list(101)},/turf/simulated/floor/plating,/area/centcom/evac) -"anP" = (/obj/item/reagent_containers/food/checker/bishop{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) "anQ" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/se,/area/centcom/evac) "anR" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "anS" = (/obj/structure/bed/chair/shuttle/red{dir = 8},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/simulated/floor,/area/syndicate_station/start) @@ -711,17 +506,17 @@ "anU" = (/obj/structure/mirror{dir = 4; pixel_x = -32},/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) "anV" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "anW" = (/obj/structure/table/steel,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) -"anX" = (/obj/structure/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"anY" = (/obj/structure/table/rack,/obj/item/storage/box/flashbangs,/obj/item/storage/box/teargas,/obj/item/storage/box/handcuffs,/obj/item/melee/baton/loaded,/obj/item/gun/energy/stunrevolver,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"anZ" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/tacgoggles,/obj/item/ammo_magazine/c556,/obj/item/ammo_magazine/c556,/obj/item/gun/energy/accelerator,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoa" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/commander,/obj/item/storage/belt/security/tactical,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aob" = (/obj/structure/table/rack,/obj/item/gun/energy/gun,/obj/item/gun/energy/rifle,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoc" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert,/obj/item/clothing/head/helmet/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aod" = (/obj/structure/reagent_dispensers/fueltank,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoe" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"anX" = (/obj/structure/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"anY" = (/obj/structure/table/rack,/obj/item/storage/box/flashbangs,/obj/item/storage/box/teargas,/obj/item/storage/box/handcuffs,/obj/item/melee/baton/loaded,/obj/item/gun/energy/stunrevolver,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"anZ" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/tacgoggles,/obj/item/ammo_magazine/c556,/obj/item/ammo_magazine/c556,/obj/item/gun/energy/accelerator,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoa" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/commander,/obj/item/storage/belt/security/tactical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aob" = (/obj/structure/table/rack,/obj/item/gun/energy/gun,/obj/item/gun/energy/rifle,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoc" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert,/obj/item/clothing/head/helmet/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aod" = (/obj/structure/reagent_dispensers/fueltank,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoe" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aof" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) -"aog" = (/obj/machinery/door/blast/regular/singulo{dir = 4; id = "rescuegarage"; name = "Garage Exit"},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) -"aoh" = (/obj/machinery/mech_recharger,/obj/mecha/medical/odysseus/loaded,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"aog" = (/obj/machinery/door/blast/regular/singulo{name = "Garage Exit"; dir = 4; id = "rescuegarage"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"aoh" = (/obj/machinery/mech_recharger,/obj/mecha/medical/odysseus/loaded,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "aoi" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aoj" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aok" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) @@ -731,99 +526,98 @@ "aoo" = (/obj/structure/window_frame/indestructible/grille,/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership) "aop" = (/obj/machinery/door/airlock/centcom{name = "Suit Storage"; opacity = 1},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aoq" = (/obj/item/modular_computer/console/preset/command,/obj/item/card/id/centcom,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) -"aor" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aos" = (/obj/structure/table/rack,/obj/item/storage/secure/briefcase,/obj/item/clothing/head/beret/centcom/captain,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aot" = (/obj/machinery/power/emitter,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aou" = (/obj/machinery/mech_recharger,/obj/mecha/working/ripley/firefighter,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"aor" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aos" = (/obj/structure/table/rack,/obj/item/storage/secure/briefcase,/obj/item/clothing/head/beret/centcom/captain,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aot" = (/obj/machinery/power/emitter,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aou" = (/obj/machinery/mech_recharger,/obj/mecha/working/ripley/firefighter,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "aov" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aow" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aox" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aoy" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aoz" = (/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_50"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aoA" = (/obj/structure/closet,/obj/item/reagent_containers/food/packaged/tastybread,/obj/item/reagent_containers/food/packaged/tastybread,/obj/item/reagent_containers/food/packaged/tastybread,/obj/item/reagent_containers/food/packaged/tastybread,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aoB" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/vision/nvg,/obj/item/rig_module/device/flash,/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoC" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "merc_base"; pixel_x = -25; pixel_y = -5},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aoB" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/vision/nvg,/obj/item/rig_module/device/flash,/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoC" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; pixel_y = -5; frequency = 1331; id_tag = "merc_base"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aoD" = (/obj/structure/table/rack,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aoE" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aoE" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aoF" = (/obj/effect/floor_decal/industrial/warning/red{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aoG" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/button/remote/blast_door{id = "heavyrescue"; name = "Heavy Gear"; pixel_x = -5; pixel_y = 4},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/rescue_base/base) -"aoH" = (/obj/item/modular_computer/console/preset/ert,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/rescue_base/base) -"aoI" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/button/remote/blast_door{id = "standardrescue"; name = "Standard Gear"; pixel_x = 5; pixel_y = 4},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/rescue_base/base) -"aoJ" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoK" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoL" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/hud/standard/meson,/obj/item/clothing/glasses/hud/standard/meson,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoM" = (/obj/structure/table/rack,/obj/item/device/flash,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/inflatable_dispenser,/obj/item/inflatable_dispenser,/obj/item/pickaxe/drill/diamonddrill,/obj/item/pickaxe/drill/diamonddrill,/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoN" = (/obj/structure/table/reinforced,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/atmos,/obj/item/taperoll/atmos,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/tape_roll,/obj/item/tape_roll,/obj/item/tape_roll,/obj/item/tape_roll,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoO" = (/obj/structure/table/reinforced,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/construction/rcd,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoP" = (/obj/structure/table/reinforced,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/glass/plass{amount = 20},/obj/item/stack/material/glass/plass{amount = 20},/obj/item/stack/material/glass/plass{amount = 20},/obj/item/stack/material/glass/plass{amount = 20},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoQ" = (/obj/structure/table/reinforced,/obj/item/circuitboard/smes,/obj/item/circuitboard/smes,/obj/item/smes_coil,/obj/item/smes_coil,/obj/item/smes_coil/super_capacity,/obj/item/smes_coil/super_capacity,/obj/item/smes_coil/super_io,/obj/item/smes_coil/super_io,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoR" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"aoS" = (/obj/machinery/mech_recharger,/obj/mecha/working/hoverpod,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"aoG" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/button/remote/blast_door{name = "Heavy Gear"; pixel_x = -5; pixel_y = 4; id = "heavyrescue"},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) +"aoH" = (/obj/item/modular_computer/console/preset/ert,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) +"aoI" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/button/remote/blast_door{name = "Standard Gear"; pixel_x = 5; pixel_y = 4; id = "standardrescue"},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) +"aoJ" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoK" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoL" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/hud/standard/meson,/obj/item/clothing/glasses/hud/standard/meson,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoM" = (/obj/structure/table/rack,/obj/item/device/flash,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/inflatable_dispenser,/obj/item/inflatable_dispenser,/obj/item/pickaxe/drill/diamonddrill,/obj/item/pickaxe/drill/diamonddrill,/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoN" = (/obj/structure/table/reinforced,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/atmos,/obj/item/taperoll/atmos,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/tape_roll,/obj/item/tape_roll,/obj/item/tape_roll,/obj/item/tape_roll,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoO" = (/obj/structure/table/reinforced,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/construction/rcd,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoP" = (/obj/structure/table/reinforced,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/glass/plass{amount = 20},/obj/item/stack/material/glass/plass{amount = 20},/obj/item/stack/material/glass/plass{amount = 20},/obj/item/stack/material/glass/plass{amount = 20},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoQ" = (/obj/structure/table/reinforced,/obj/item/circuitboard/smes,/obj/item/circuitboard/smes,/obj/item/smes_coil,/obj/item/smes_coil,/obj/item/smes_coil/super_capacity,/obj/item/smes_coil/super_capacity,/obj/item/smes_coil/super_io,/obj/item/smes_coil/super_io,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoR" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoS" = (/obj/machinery/mech_recharger,/obj/mecha/working/hoverpod,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "aoT" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) -"aoU" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/armor_booster/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/armor_booster/antiproj_armor_booster,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"aoU" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/armor_booster/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/armor_booster/antiproj_armor_booster,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoV" = (/obj/structure/table/standard,/obj/item/hand_labeler,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aoW" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) -"aoX" = (/obj/machinery/flasher{id = "syndieflash"; pixel_y = 28},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) +"aoX" = (/obj/machinery/flasher{pixel_y = 28; id = "syndieflash"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) "aoY" = (/obj/item/device/radio/electropack,/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) "aoZ" = (/obj/item/device/radio/intercom/syndicate{dir = 1; pixel_y = -22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apa" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"apb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "merc_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"apc" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "merc_shuttle"; pixel_x = -8; pixel_y = 25; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"apd" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_shuttle_outer"; name = "Ship External Access"; req_access = list(150)},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/syndicate_station/start) -"ape" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_base_hatch"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"apf" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/rcd,/obj/item/rig_module/vision/meson,/obj/item/rig_module/vision/meson,/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"apb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/airlock_sensor{pixel_x = 8; pixel_y = 25; frequency = 1331; id_tag = "merc_shuttle_sensor"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"apc" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = -8; pixel_y = 25; frequency = 1331; req_access = list(150); id_tag = "merc_shuttle"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"apd" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; frequency = 1331; req_access = list(150); id_tag = "merc_shuttle_outer"},/obj/machinery/door/blast/regular{name = "Outer Airlock"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "smindicate"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/syndicate_station/start) +"ape" = (/obj/machinery/door/airlock/external{frequency = 1331; req_access = list(150); id_tag = "merc_base_hatch"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"apf" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/rcd,/obj/item/rig_module/vision/meson,/obj/item/rig_module/vision/meson,/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "apg" = (/obj/machinery/door/airlock/vault{name = "Armory"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aph" = (/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "api" = (/obj/effect/floor_decal/sign/armory/suits{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"apj" = (/obj/structure/table/woodentable{dir = 5},/obj/item/material/ashtray/bronze,/obj/item/cigbutt/cigarbutt,/obj/item/device/radio/phone{desc = "Should anything ever go wrong..."; frequency = 1345},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/rescue_base/base) -"apk" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/rescue_base/base) -"apl" = (/obj/structure/table/woodentable{dir = 5},/obj/item/storage/fancy/cigar,/obj/item/flame/lighter/zippo,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/rescue_base/base) -"apm" = (/obj/item/reagent_containers/food/checker/queen{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"apn" = (/obj/mecha/combat/gygax/dark,/obj/machinery/mech_recharger,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"apj" = (/obj/structure/table/woodentable{dir = 5},/obj/item/material/ashtray/bronze,/obj/item/cigbutt/cigarbutt,/obj/item/device/radio/phone{desc = "Should anything ever go wrong..."; frequency = 1345},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) +"apk" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) +"apl" = (/obj/structure/table/woodentable{dir = 5},/obj/item/storage/fancy/cigar,/obj/item/flame/lighter/zippo,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) +"apn" = (/obj/mecha/combat/gygax/dark,/obj/machinery/mech_recharger,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "apo" = (/obj/effect/shuttle_landmark/escape_pod/out/pod5,/turf/space,/area/shuttle/escape_pod1/centcom) -"app" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_5_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"apq" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_5_recovery"; pixel_x = -25; pixel_y = 25; req_one_access = list(13); tag_door = "escape_pod_5_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"app" = (/obj/machinery/door/airlock/external{name = "Recovery Shuttle Dock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_pod_5_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"apq" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; pixel_y = 25; frequency = 1380; req_one_access = list(13); id_tag = "escape_pod_5_recovery"; tag_door = "escape_pod_5_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "apr" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"aps" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_3_recovery"; pixel_x = 25; pixel_y = -25; req_one_access = list(13); tag_door = "escape_pod_3_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"apt" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_3_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"aps" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = 25; pixel_y = -25; frequency = 1380; req_one_access = list(13); id_tag = "escape_pod_3_recovery"; tag_door = "escape_pod_3_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"apt" = (/obj/machinery/door/airlock/external{name = "Recovery Shuttle Dock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_pod_3_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "apu" = (/obj/effect/shuttle_landmark/escape_pod/out/pod3,/turf/space,/area/shuttle/escape_pod2/centcom) -"apv" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "syndieshutters_infirmary"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"apv" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/syndicate_station/start) "apw" = (/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) "apx" = (/obj/item/cigbutt,/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) -"apy" = (/obj/machinery/door/window{dir = 2; name = "Seating"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"apy" = (/obj/machinery/door/window{name = "Seating"; dir = 2; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apz" = (/obj/structure/table/standard,/obj/machinery/computer/pod/old/syndicate{id = "smindicate"},/obj/machinery/door/window{name = "Blast Door Control"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apA" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apB" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"apC" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig/ert/engineer,/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"apC" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig/ert/engineer,/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "apD" = (/obj/effect/floor_decal/industrial/warning/red{dir = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apE" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/gun/projectile/automatic/c20r,/obj/item/gun/projectile/automatic/c20r,/obj/item/gun/projectile/automatic/c20r,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apF" = (/obj/structure/table/rack,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/device/suit_cooling_unit,/obj/item/ammo_magazine/c556,/obj/item/ammo_magazine/c556,/obj/item/ammo_magazine/c556,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apG" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) -"apH" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"apI" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"apJ" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/obj/item/mecha_parts/mecha_equipment/tool/cable_layer,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"apK" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/extinguisher,/obj/item/mecha_parts/mecha_equipment/tool/rcd,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"apL" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"apM" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"apH" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"apI" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"apJ" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/obj/item/mecha_parts/mecha_equipment/tool/cable_layer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"apK" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/extinguisher,/obj/item/mecha_parts/mecha_equipment/tool/rcd,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"apL" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"apM" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "apN" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "apO" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/centcom) -"apP" = (/obj/machinery/door/window{dir = 1; name = "Cell"; req_access = list(150)},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"apP" = (/obj/machinery/door/window{name = "Cell"; dir = 1; req_access = list(150)},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apQ" = (/obj/machinery/vending/assist/antag,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"apR" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_shuttle_inner"; name = "Ship External Access"; req_access = list(0)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"apS" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig/ert/engineer,/obj/structure/window/reinforced/crescent{dir = 4},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"apR" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; frequency = 1331; req_access = list(0); id_tag = "merc_shuttle_inner"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"apS" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig/ert/engineer,/obj/structure/window/reinforced/crescent{dir = 4},/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "apT" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apU" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apV" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apW" = (/obj/effect/floor_decal/industrial/warning/red{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apX" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/centcom/evac) "apY" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"apZ" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; dir = 4; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom) +"apZ" = (/turf/unsimulated/wall{name = "Shuttle Bay Blast Door"; desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; dir = 4},/area/centcom) "aqa" = (/turf/unsimulated/floor{name = "plating"},/area/centcom) "aqb" = (/turf/simulated/floor/plating,/area/syndicate_mothership/ninja) -"aqc" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/button/flasher{id = "syndieflash"; name = "Flasher"; pixel_x = 27},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aqc" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/button/flasher{name = "Flasher"; pixel_x = 27; id = "syndieflash"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqd" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqe" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aqf" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "merc_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aqf" = (/obj/machinery/access_button{name = "interior access button"; pixel_x = 25; pixel_y = 25; frequency = 1331; req_access = list(150); command = "cycle_interior"; master_tag = "merc_shuttle"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqg" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqh" = (/obj/machinery/door/airlock/centcom{name = "Hardsuit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aqi" = (/obj/structure/closet/secure_closet/personal/patient,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) @@ -831,11 +625,11 @@ "aqk" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "11"},/turf/simulated/floor/plating,/area/centcom/evac) "aql" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "2"},/turf/simulated/floor/plating,/area/centcom/evac) "aqm" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/nw,/area/shuttle/administration/centcom) -"aqn" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_straight"},/area/shuttle/administration/centcom) +"aqn" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 4},/area/shuttle/administration/centcom) "aqo" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/ne,/area/shuttle/administration/centcom) "aqp" = (/obj/item/material/kitchen/utensil/knife{pixel_x = -6},/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = -1},/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 4},/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 9},/obj/structure/table/glass,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqq" = (/obj/machinery/door/window{name = "Brig"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aqr" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Preparation"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aqr" = (/obj/machinery/door/window{name = "Preparation"; icon_state = "right"; dir = 8; req_access = list(150); base_state = "right"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqs" = (/obj/structure/closet/syndicate/suit{name = "suit closet"},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqt" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aqu" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) @@ -848,15 +642,15 @@ "aqB" = (/obj/structure/table/reinforced,/obj/item/paper_bin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "aqC" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "aqD" = (/obj/structure/table/reinforced,/obj/item/pen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"aqE" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/wall/syndi{dir = 9; icon_state = "syndiwall"},/area/shuttle/administration/centcom) +"aqE" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 9},/area/shuttle/administration/centcom) "aqF" = (/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "aqG" = (/obj/item/stool,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "aqH" = (/obj/structure/table/rack,/obj/item/rig/light/internalaffairs/equipped,/obj/item/rig/light/internalaffairs/equipped,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "aqI" = (/obj/machinery/light{dir = 1},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "aqJ" = (/obj/machinery/sleeper,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "aqK" = (/obj/structure/closet{name = "custodial"},/obj/item/reagent_containers/vessel/bucket,/obj/item/mop,/obj/item/reagent_containers/spray/cleaner,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aqL" = (/obj/machinery/door/window{base_state = "right"; icon_state = "right"; name = "Brig"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aqM" = (/obj/machinery/door/window{dir = 8; name = "Preparation"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aqL" = (/obj/machinery/door/window{name = "Brig"; icon_state = "right"; req_access = list(150); base_state = "right"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aqM" = (/obj/machinery/door/window{name = "Preparation"; dir = 8; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqN" = (/obj/structure/table/standard,/obj/item/storage/toolbox/syndicate{pixel_x = -1; pixel_y = 3},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqO" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) "aqP" = (/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) @@ -876,7 +670,7 @@ "ard" = (/turf/simulated/shuttle/wall/corner/syndi/nw,/area/rescue_base/start) "are" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "arf" = (/turf/simulated/shuttle/wall/corner/syndi/ne,/area/rescue_base/start) -"arg" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_t"},/area/rescue_base/start) +"arg" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/rescue_base/start) "arh" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "ari" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "arj" = (/obj/machinery/vending/coffee{prices = list()},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) @@ -900,18 +694,18 @@ "arB" = (/obj/item/clothing/gloves/insulated,/obj/item/device/assembly/signaler{pixel_y = 2},/obj/item/clothing/glasses/hud/scanners/night,/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "arC" = (/obj/item/clothing/gloves/insulated,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/hud/scanners/night,/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "arD" = (/obj/item/clothing/gloves/insulated,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/hud/scanners/night,/obj/machinery/light{dir = 4},/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"arE" = (/obj/structure/table/steel_reinforced,/obj/machinery/button/remote/blast_door{icon_state = "doorctrl0"; id = "rescuebridge"; name = "Mech Storage"; pixel_y = -4; req_access = list(108)},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) +"arE" = (/obj/structure/table/steel_reinforced,/obj/machinery/button/remote/blast_door{name = "Mech Storage"; icon_state = "doorctrl0"; pixel_y = -4; id = "rescuebridge"; req_access = list(108)},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "arF" = (/obj/item/modular_computer/console/preset/command,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "arG" = (/obj/machinery/computer/shuttle_control/multi/rescue,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "arH" = (/obj/structure/table/steel_reinforced,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "arI" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "rescue_shuttle_pump"},/obj/machinery/light{dir = 8},/obj/structure/table/steel_reinforced,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "arJ" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/structure/bed/chair,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) -"arK" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/structure/bed/chair,/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "rescue_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) +"arK" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/structure/bed/chair,/obj/machinery/airlock_sensor{pixel_x = 8; pixel_y = 25; frequency = 1331; id_tag = "rescue_shuttle_sensor"},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "arL" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "rescue_shuttle_pump"},/obj/machinery/light{dir = 4},/obj/structure/bed/chair,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) -"arM" = (/obj/machinery/door/window/northright{dir = 4; name = "Security Desk"; req_access = list(103)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"arM" = (/obj/machinery/door/window/northright{name = "Security Desk"; dir = 4; req_access = list(103)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "arN" = (/obj/structure/table/standard,/obj/item/storage/box/handcuffs,/obj/item/device/flash,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"arO" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_l"},/turf/space,/area/shuttle/administration/centcom) -"arP" = (/obj/structure/shuttle/engine/heater{dir = 8},/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_t"},/area/shuttle/administration/centcom) +"arO" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/shuttle/administration/centcom) +"arP" = (/obj/structure/shuttle/engine/heater{dir = 8},/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/shuttle/administration/centcom) "arQ" = (/obj/machinery/vending/snack{prices = list()},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "arR" = (/obj/machinery/sleeper{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "arS" = (/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) @@ -927,7 +721,7 @@ "asc" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/living) "asd" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/living) "ase" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/suppy) -"asf" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; dir = 8; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/suppy) +"asf" = (/turf/unsimulated/wall{name = "Shuttle Bay Blast Door"; desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; dir = 8},/area/centcom/suppy) "asg" = (/obj/effect/floor_decal/sign/armory/ballistic1{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "ash" = (/obj/item/screwdriver,/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "asi" = (/obj/effect/floor_decal/sign/armory/ballistic2{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) @@ -938,20 +732,20 @@ "asn" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "aso" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "asp" = (/turf/simulated/floor/shuttle/red,/area/rescue_base/start) -"asq" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "rescue_shuttle_outer"; name = "Ship External Access"; req_access = list(103)},/obj/machinery/shield_diffuser,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) +"asq" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; frequency = 1331; req_access = list(103); id_tag = "rescue_shuttle_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "asr" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_b"; dir = 1},/area/centcom/evac) "ass" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 9},/area/centcom/evac) "ast" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access = list(109)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"asu" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_r"},/turf/space,/area/shuttle/administration/centcom) +"asu" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 8},/turf/space,/area/shuttle/administration/centcom) "asv" = (/obj/machinery/vending/coffee,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "asw" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/se,/area/shuttle/administration/centcom) -"asx" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle_centcom_dock"; name = "shuttle bay controller"; pixel_x = 25; tag_door = "admin_shuttle_bay_door"},/turf/unsimulated/floor{name = "plating"},/area/centcom) +"asx" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "shuttle bay controller"; pixel_x = 25; frequency = 1380; id_tag = "admin_shuttle_centcom_dock"; tag_door = "admin_shuttle_bay_door"},/turf/unsimulated/floor{name = "plating"},/area/centcom) "asy" = (/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/living) "asz" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/living) "asA" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{name = "plating"},/area/centcom/living) "asB" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/living) "asC" = (/turf/simulated/shuttle/wall/corner/mining/nw,/area/supply/dock) -"asD" = (/turf/simulated/shuttle/wall/mining{dir = 8; icon_state = "mwall_straight"},/area/supply/dock) +"asD" = (/turf/simulated/shuttle/wall/mining{icon_state = "mwall_straight"; dir = 8},/area/supply/dock) "asE" = (/turf/simulated/shuttle/wall/corner/mining/ne,/area/supply/dock) "asF" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "asG" = (/obj/machinery/body_scanconsole{dir = 8},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) @@ -965,7 +759,7 @@ "asO" = (/obj/item/modular_computer/console/preset/engineering,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "asP" = (/obj/structure/bed/chair{dir = 4},/obj/item/device/radio/intercom/specops{dir = 4; pixel_x = -22},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "asQ" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"asR" = (/obj/structure/bed/chair{dir = 4; name = "Defense"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"asR" = (/obj/structure/bed/chair{name = "Defense"; dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "asS" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "asT" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/sw,/area/shuttle/administration/centcom) "asU" = (/obj/machinery/vending/cigarette{prices = list()},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) @@ -975,33 +769,33 @@ "asY" = (/obj/machinery/microwave,/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "asZ" = (/obj/item/modular_computer/console/preset/command,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "ata" = (/obj/structure/window/reinforced/crescent,/turf/space,/area/space) -"atb" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_bay_door"; locked = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/living) +"atb" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1380; locked = 1; id_tag = "admin_shuttle_bay_door"},/turf/unsimulated/floor{name = "plating"},/area/centcom/living) "atc" = (/turf/simulated/floor/shuttle/pod,/turf/simulated/shuttle/wall/corner/mining/se,/area/supply/dock) "atd" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/shuttle/pod,/area/supply/dock) -"ate" = (/obj/machinery/door/window{base_state = "right"; icon_state = "right"; name = "Infirmary"; req_access = list(150)},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) -"atf" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"ate" = (/obj/machinery/door/window{name = "Infirmary"; icon_state = "right"; req_access = list(150); base_state = "right"},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"atf" = (/obj/machinery/door/window{name = "Tool Storage"; dir = 8; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "atg" = (/obj/item/aicard,/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "ath" = (/obj/machinery/computer/prisoner{name = "Implant Management"},/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "ati" = (/obj/item/modular_computer/console/preset/ert,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "atj" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "rescue_shuttle_pump"},/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "atk" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "atl" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/obj/machinery/meter,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) -"atm" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "rescue_shuttle_pump"},/obj/machinery/light{dir = 4},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "rescue_shuttle"; pixel_x = 25; req_access = list(103)},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) +"atm" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "rescue_shuttle_pump"},/obj/machinery/light{dir = 4},/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = 25; frequency = 1331; req_access = list(103); id_tag = "rescue_shuttle"},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "atn" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "ato" = (/obj/item/device/radio/off,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "atp" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "atq" = (/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{name = "plating"},/area/centcom/living) "atr" = (/turf/simulated/floor/shuttle/pod,/area/supply/dock) "ats" = (/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{name = "plating"},/area/centcom/creed) -"att" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_infirmary"; name = "remote shutter control"; pixel_x = -25},/obj/structure/mopbucket,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"att" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_x = -25; id = "syndieshutters_infirmary"},/obj/structure/mopbucket,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "atu" = (/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) -"atv" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"atv" = (/obj/machinery/door/window{name = "Secure Storage"; dir = 1; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "atw" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"atx" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_telebay"; name = "remote shutter control"; pixel_y = -25; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aty" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_workshop"; name = "remote shutter control"; pixel_x = 25},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"atx" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_y = -25; id = "syndieshutters_telebay"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aty" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_x = 25; id = "syndieshutters_workshop"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "atz" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "atA" = (/obj/machinery/door/airlock/centcom{name = "Flight Deck"; opacity = 1; req_access = list(103)},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) -"atB" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "rescue_shuttle_inner"; name = "Ship External Access"; req_access = list(103)},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) +"atB" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/external{name = "Ship External Access"; frequency = 1331; req_access = list(103); id_tag = "rescue_shuttle_inner"},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "atC" = (/obj/item/storage/lockbox,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "atD" = (/obj/item/stamp/captain,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "atE" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) @@ -1019,23 +813,23 @@ "atQ" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) "atR" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) "atS" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) -"atT" = (/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "burst_l"},/turf/simulated/floor/plating/airless,/area/supply/dock) +"atT" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 4},/turf/simulated/floor/plating/airless,/area/supply/dock) "atU" = (/turf/simulated/shuttle/wall/mining{icon_state = "mwall_straight"},/area/supply/dock) "atV" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"atW" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access = list(150)},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"atW" = (/obj/machinery/door/window{name = "Surgery"; dir = 1; req_access = list(150)},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "atX" = (/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "atY" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/space,/area/space) "atZ" = (/obj/structure/table/standard,/obj/item/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/fire{pixel_x = 1},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "aua" = (/obj/item/weldingtool,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aub" = (/obj/structure/sign/warning/caution{pixel_x = 32},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "auc" = (/obj/machinery/telecomms/allinone{intercept = 1},/obj/machinery/door/window/northright{name = "Telecoms Mainframe"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aud" = (/obj/machinery/door/blast/regular{id = "syndieshutters_telebay"; name = "Outer Airlock"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"aud" = (/obj/machinery/door/blast/regular{name = "Outer Airlock"; id = "syndieshutters_telebay"},/turf/simulated/floor/plating,/area/syndicate_station/start) "aue" = (/obj/structure/flora/ausbushes/palebush,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/rescue_base/base) "auf" = (/obj/structure/closet,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "aug" = (/obj/structure/table/rack,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "auh" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "aui" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/meter,/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) -"auj" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "rescue_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(103)},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) +"auj" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/access_button{name = "interior access button"; pixel_x = 25; pixel_y = 25; frequency = 1331; req_access = list(103); command = "cycle_interior"; master_tag = "rescue_shuttle"},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "auk" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "aul" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "11"; dir = 4},/turf/simulated/floor/plating,/area/centcom/evac) "aum" = (/obj/structure/window_frame/grille,/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"; dir = 4},/turf/simulated/floor/plating,/area/centcom/evac) @@ -1046,7 +840,6 @@ "aur" = (/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "aus" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) "aut" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) -"auu" = (/obj/item/reagent_containers/food/checker/king{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) "auv" = (/obj/item/scalpel,/obj/item/circular_saw{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/structure/table/glass,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "auw" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/syringe,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/latex,/obj/item/surgicaldrill,/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; req_access = list(150)},/obj/item/reagent_containers/syringe/antiviral/packaged,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "aux" = (/obj/effect/landmark/event/nuke/bomb,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) @@ -1064,7 +857,7 @@ "auJ" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "auK" = (/obj/machinery/recharge_station,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "auL" = (/obj/machinery/mecha_part_fabricator,/obj/machinery/light{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) -"auM" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) +"auM" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "auN" = (/obj/structure/dispenser,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "auO" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/shaker,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "auP" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) @@ -1105,9 +898,9 @@ "avy" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "avz" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "avA" = (/obj/machinery/sleeper{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) -"avB" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) -"avC" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) -"avD" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) +"avB" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/centcom/living) +"avC" = (/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/centcom/living) +"avD" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/centcom/living) "avE" = (/obj/structure/table/standard,/obj/item/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/material/kitchen/rollingpin,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "avF" = (/turf/simulated/shuttle/wall/corner/mining/sw,/area/supply/dock) "avG" = (/turf/simulated/floor/shuttle/pod,/turf/simulated/shuttle/wall/corner/mining/ne,/area/supply/dock) @@ -1115,37 +908,37 @@ "avI" = (/obj/machinery/door/airlock/centcom{name = "Crew Area"; opacity = 1; req_access = list(103)},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "avJ" = (/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_9"},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "avK" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) -"avL" = (/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = -28},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) +"avL" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; layer = 3.3; pixel_x = -28},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "avM" = (/obj/machinery/door/airlock/centcom{name = "Passageway"; opacity = 1; req_access = list(103)},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "avN" = (/turf/simulated/shuttle/wall/corner/syndi/se,/area/rescue_base/start) -"avO" = (/obj/machinery/vending/medical,/turf/simulated/shuttle/wall/syndi{dir = 10; icon_state = "syndiwall"},/area/shuttle/administration/centcom) +"avO" = (/obj/machinery/vending/medical,/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/shuttle/administration/centcom) "avP" = (/obj/machinery/chemical_dispenser/ert,/obj/item/reagent_containers/vessel/beaker/large,/turf/simulated/floor/shuttle/white,/area/shuttle/administration/centcom) "avQ" = (/obj/machinery/chem_master,/turf/simulated/floor/shuttle/white,/area/shuttle/administration/centcom) "avR" = (/obj/machinery/chemical_dispenser/full,/obj/item/reagent_containers/vessel/beaker/large,/turf/simulated/floor/shuttle/white,/area/shuttle/administration/centcom) -"avS" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle"; pixel_x = -25; req_one_access = list(101); tag_door = "admin_shuttle_hatch"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) +"avS" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; frequency = 1380; req_one_access = list(101); id_tag = "admin_shuttle"; tag_door = "admin_shuttle_hatch"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "avT" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "avU" = (/obj/item/device/multitool,/obj/item/reagent_containers/spray/cleaner,/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "avV" = (/obj/item/storage/toolbox/mechanical,/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "avW" = (/obj/structure/bed,/obj/item/bedsheet,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) -"avX" = (/obj/structure/table/standard,/obj/item/card/id/centcom,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) +"avX" = (/obj/structure/table/standard,/obj/item/card/id/centcom,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/centcom/living) "avY" = (/obj/machinery/vending/dinnerware,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "avZ" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/beaker,/obj/item/reagent_containers/vessel/condiment/enzyme,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "awa" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) -"awb" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(101)},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) +"awb" = (/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(101); id_tag = "admin_shuttle_hatch"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "awc" = (/obj/machinery/light,/turf/simulated/floor/shuttle/pod,/area/supply/dock) -"awd" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "supply_shuttle"; pixel_y = -25; req_one_access = list(13,31); tag_door = "supply_shuttle_hatch"},/turf/simulated/floor/shuttle/pod,/area/supply/dock) -"awe" = (/turf/simulated/shuttle/wall/mining{dir = 4; icon_state = "mwall_straight"},/area/supply/dock) -"awf" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/shuttle/pod,/area/supply/dock) +"awd" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_y = -25; frequency = 1380; req_one_access = list(13,31); id_tag = "supply_shuttle"; tag_door = "supply_shuttle_hatch"},/turf/simulated/floor/shuttle/pod,/area/supply/dock) +"awe" = (/turf/simulated/shuttle/wall/mining{icon_state = "mwall_straight"; dir = 4},/area/supply/dock) +"awf" = (/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "supply_shuttle_hatch"},/turf/simulated/floor/shuttle/pod,/area/supply/dock) "awg" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "awh" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) -"awi" = (/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/living) +"awi" = (/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/living) "awj" = (/obj/machinery/door/airlock/centcom{name = "Living Quarters"; opacity = 1; req_access = list(105)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/living) "awk" = (/turf/simulated/shuttle/wall/corner/mining/se,/area/supply/dock) "awl" = (/turf/space/transit/south,/area/shuttle/escape/station) "awm" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/living) "awn" = (/obj/effect/shuttle_landmark/escape/internim,/turf/space/transit/south,/area/shuttle/escape/station) "awo" = (/obj/structure/bed,/obj/item/bedsheet/orange,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) -"awp" = (/obj/machinery/flasher{id = "rescueflash"; pixel_y = 28},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) +"awp" = (/obj/machinery/flasher{pixel_y = 28; id = "rescueflash"},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "awq" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "awr" = (/obj/machinery/door/airlock/centcom{name = "Storage"; opacity = 1; req_access = list(103)},/turf/simulated/floor/plating,/area/rescue_base/start) "aws" = (/obj/machinery/door/airlock/centcom{name = "Infirmary"; opacity = 1; req_access = list(103)},/turf/simulated/floor/shuttle/white,/area/rescue_base/start) @@ -1169,23 +962,23 @@ "awL" = (/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "awM" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "awN" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/shuttle/white,/area/rescue_base/start) -"awO" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/l6_saw,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"awP" = (/obj/structure/table/rack,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"awQ" = (/obj/structure/table/rack,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/gun/projectile/automatic/wt550,/obj/item/gun/projectile/automatic/wt550,/obj/item/gun/projectile/automatic/wt550,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"awR" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"awS" = (/obj/structure/table/rack,/obj/item/gun/energy/gun/nuclear,/obj/item/gun/energy/gun/nuclear,/obj/item/gun/energy/gun/nuclear,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"awT" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/z8,/obj/item/gun/projectile/automatic/z8,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"awU" = (/obj/structure/table/rack,/obj/item/storage/box/flashbangs,/obj/item/storage/box/flashbangs,/obj/item/storage/box/emps,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/gun/launcher/grenade,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"awV" = (/obj/item/aiModule/nanotrasen,/obj/item/aiModule/reset,/obj/item/aiModule/freeformcore,/obj/item/aiModule/protectStation,/obj/item/aiModule/quarantine,/obj/item/aiModule/paladin,/obj/item/aiModule/robocop,/obj/item/aiModule/safeguard,/obj/structure/table/rack,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"awW" = (/obj/machinery/door/blast/regular{dir = 8; id = "ert_synth_equipment"; name = "Synthetics Modification Equipment"},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"awX" = (/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"awY" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"awZ" = (/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"axa" = (/obj/machinery/shieldgen,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"axb" = (/obj/machinery/shieldwallgen,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"awO" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/l6_saw,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"awP" = (/obj/structure/table/rack,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/obj/item/plastique,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"awQ" = (/obj/structure/table/rack,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/gun/projectile/automatic/wt550,/obj/item/gun/projectile/automatic/wt550,/obj/item/gun/projectile/automatic/wt550,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"awR" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"awS" = (/obj/structure/table/rack,/obj/item/gun/energy/gun/nuclear,/obj/item/gun/energy/gun/nuclear,/obj/item/gun/energy/gun/nuclear,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"awT" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/z8,/obj/item/gun/projectile/automatic/z8,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"awU" = (/obj/structure/table/rack,/obj/item/storage/box/flashbangs,/obj/item/storage/box/flashbangs,/obj/item/storage/box/emps,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/gun/launcher/grenade,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"awV" = (/obj/item/aiModule/nanotrasen,/obj/item/aiModule/reset,/obj/item/aiModule/freeformcore,/obj/item/aiModule/protectStation,/obj/item/aiModule/quarantine,/obj/item/aiModule/paladin,/obj/item/aiModule/robocop,/obj/item/aiModule/safeguard,/obj/structure/table/rack,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"awW" = (/obj/machinery/door/blast/regular{name = "Synthetics Modification Equipment"; dir = 8; id = "ert_synth_equipment"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"awX" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"awY" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"awZ" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"axa" = (/obj/machinery/shieldgen,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"axb" = (/obj/machinery/shieldwallgen,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "axc" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) "axd" = (/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) -"axe" = (/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) +"axe" = (/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "axf" = (/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "axg" = (/obj/machinery/telecomms/receiver/preset_cent,/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/control) "axh" = (/obj/machinery/telecomms/bus/preset_cent,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/control) @@ -1201,11 +994,11 @@ "axt" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "axu" = (/obj/machinery/body_scanconsole{dir = 8},/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "axv" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/shuttle/white,/area/rescue_base/start) -"axw" = (/obj/machinery/door/blast/regular{id = "ASSAULT"; name = "Assault Weapon Storage"},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"axx" = (/obj/structure/table/rack,/obj/item/circuitboard/borgupload,/obj/item/circuitboard/aiupload{pixel_x = -3; pixel_y = -3},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) +"axw" = (/obj/machinery/door/blast/regular{name = "Assault Weapon Storage"; id = "ASSAULT"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"axx" = (/obj/structure/table/rack,/obj/item/circuitboard/borgupload,/obj/item/circuitboard/aiupload{pixel_x = -3; pixel_y = -3},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "axy" = (/obj/structure/table/rack,/obj/item/storage/secure/briefcase,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter/zippo,/obj/item/storage/belt/utility,/obj/item/storage/backpack/satchel,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) -"axz" = (/obj/structure/table/woodentable{dir = 10},/obj/machinery/button/remote/blast_door{id = "CREED"; name = "Spec Ops Ready Room"; pixel_x = -5; pixel_y = 4; req_access = list(108)},/obj/machinery/button/remote/blast_door{icon_state = "doorctrl0"; id = "ASSAULT"; name = "Mech Storage"; pixel_y = -4; req_access = list(108)},/obj/machinery/button/remote/blast_door{id = "ert_synth_equipment"; name = "Synth Equipment"; pixel_x = 5; pixel_y = 4; req_access = list(108)},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) -"axA" = (/obj/item/stool/padded,/obj/structure/reagent_dispensers/peppertank{pixel_y = 32},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) +"axz" = (/obj/structure/table/woodentable{dir = 10},/obj/machinery/button/remote/blast_door{name = "Spec Ops Ready Room"; pixel_x = -5; pixel_y = 4; id = "CREED"; req_access = list(108)},/obj/machinery/button/remote/blast_door{name = "Mech Storage"; icon_state = "doorctrl0"; pixel_y = -4; id = "ASSAULT"; req_access = list(108)},/obj/machinery/button/remote/blast_door{name = "Synth Equipment"; pixel_x = 5; pixel_y = 4; id = "ert_synth_equipment"; req_access = list(108)},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) +"axA" = (/obj/item/stool/padded,/obj/structure/reagent_dispensers/peppertank{pixel_y = 32},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) "axB" = (/obj/machinery/door/airlock/centcom{name = "Creed's Office"; opacity = 1; req_access = list(108)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/creed) "axC" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "axD" = (/obj/machinery/door/airlock/centcom{name = "Creed's Office"; opacity = 1; req_access = list(108)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) @@ -1222,72 +1015,55 @@ "axO" = (/turf/space,/area/centcom/specops) "axP" = (/obj/machinery/mech_recharger,/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "axQ" = (/obj/mecha/combat/gygax/dark,/obj/machinery/camera/network/ert{c_tag = "Assault Armor North"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"axR" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"axS" = (/turf/unsimulated/floor{dir = 9; icon_state = "vault"},/area/centcom/specops) -"axT" = (/obj/machinery/door/blast/regular{id = "ASSAULT"; name = "Assault Armor Storage"},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"axU" = (/obj/machinery/vending/security,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"axR" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"axS" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 9},/area/centcom/specops) +"axT" = (/obj/machinery/door/blast/regular{name = "Assault Armor Storage"; id = "ASSAULT"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"axU" = (/obj/machinery/vending/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "axV" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) "axW" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) "axX" = (/obj/structure/table/woodentable{dir = 5},/obj/item/device/radio/intercom/specops,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) "axY" = (/obj/structure/sign/warning/nosmoking_2,/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/centcom/living) "axZ" = (/obj/structure/sign/warning/secure_area,/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/centcom/living) -"aya" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"ayb" = (/obj/item/reagent_containers/food/checker/bishop{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayc" = (/obj/item/reagent_containers/food/checker/knight{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"ayd" = (/obj/machinery/button/flasher{id = "rescueflash"; name = "Flasher"; pixel_x = 27},/obj/structure/bed/chair{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) +"aya" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"ayd" = (/obj/machinery/button/flasher{name = "Flasher"; pixel_x = 27; id = "rescueflash"},/obj/structure/bed/chair{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "aye" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/rescue_base/start) "ayf" = (/obj/structure/table/rack,/obj/item/wrench,/obj/item/storage/belt/utility/full,/turf/simulated/floor/plating,/area/rescue_base/start) "ayg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/closet/medical_wall{pixel_x = -32},/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/syringe,/obj/item/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "ayh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/gas_stand/anesthetic,/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "ayi" = (/obj/effect/landmark/event/centcom/exit,/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "ayj" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"ayk" = (/obj/machinery/door/blast/regular{dir = 4; id = "ASSAULT3"; name = "Launch Bay #3"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"ayl" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT3"; name = "gravpult"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aym" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/obj/item/mecha_parts/mecha_equipment/armor_booster/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/armor_booster/antiproj_armor_booster,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"ayn" = (/obj/structure/table/rack,/obj/item/gun/energy/gun,/obj/item/gun/energy/gun,/obj/item/gun/energy/gun,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"ayo" = (/obj/machinery/vending/assist,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"ayp" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"ayq" = (/obj/machinery/pipedispenser/orderable,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"ayr" = (/obj/machinery/pipedispenser/disposal/orderable,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"ays" = (/obj/machinery/power/emitter,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"ayk" = (/obj/machinery/door/blast/regular{name = "Launch Bay #3"; dir = 4; id = "ASSAULT3"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"ayl" = (/obj/machinery/mass_driver{name = "gravpult"; dir = 8; id = "ASSAULT3"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"aym" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/obj/item/mecha_parts/mecha_equipment/armor_booster/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/armor_booster/antiproj_armor_booster,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"ayn" = (/obj/structure/table/rack,/obj/item/gun/energy/gun,/obj/item/gun/energy/gun,/obj/item/gun/energy/gun,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"ayo" = (/obj/machinery/vending/assist,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"ayp" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"ayq" = (/obj/machinery/pipedispenser/orderable,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"ayr" = (/obj/machinery/pipedispenser/disposal/orderable,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"ays" = (/obj/machinery/power/emitter,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "ayt" = (/obj/item/modular_computer/console/preset/command,/obj/item/card/id/centcom,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) "ayu" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) -"ayv" = (/obj/machinery/computer/pod{id = "NTrasen"; name = "Hull Door Control"},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) -"ayw" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"ayv" = (/obj/machinery/computer/pod{name = "Hull Door Control"; id = "NTrasen"},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) +"ayw" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "ayx" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/control) "ayy" = (/obj/machinery/telecomms/broadcaster/preset_cent,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/control) "ayz" = (/obj/machinery/telecomms/hub/preset_cent,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/control) -"ayA" = (/obj/machinery/computer/rdservercontrol{badmin = 1; name = "Master R&D Server Controller"},/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/control) +"ayA" = (/obj/machinery/computer/rdservercontrol{name = "Master R&D Server Controller"; badmin = 1},/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/control) "ayB" = (/obj/machinery/r_n_d/server/centcom,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/control) "ayC" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/control) -"ayD" = (/obj/item/reagent_containers/food/checker/rook{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayE" = (/obj/item/reagent_containers/food/checker/pawn{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayF" = (/obj/item/reagent_containers/food/checker/pawn{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"ayG" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"ayH" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayI" = (/obj/item/reagent_containers/food/checker/pawn/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"ayJ" = (/obj/item/reagent_containers/food/checker/pawn/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayK" = (/obj/item/reagent_containers/food/checker/rook/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayL" = (/obj/item/reagent_containers/food/checker/knight/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"ayM" = (/obj/item/reagent_containers/food/checker/bishop/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"ayN" = (/obj/item/reagent_containers/food/checker/queen/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"ayO" = (/obj/item/reagent_containers/food/checker/king/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) "ayP" = (/obj/item/device/flashlight/lantern,/turf/unsimulated/floor{icon_state = "asteroid"},/area/rescue_base/base) "ayQ" = (/obj/structure/closet{name = "Prisoner's Locker"},/obj/item/clothing/shoes/orange,/obj/item/clothing/under/color/orange,/obj/item/device/radio/intercom/specops{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "ayR" = (/obj/effect/shuttle_landmark/administration/centcom,/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "ayS" = (/obj/structure/table/glass,/obj/item/reagent_containers/spray/sterilizine,/obj/item/reagent_containers/spray/cleaner,/obj/item/defibrillator/compact/combat/loaded,/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "ayT" = (/obj/machinery/optable,/turf/simulated/floor/shuttle/white,/area/rescue_base/start) -"ayU" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"ayV" = (/obj/structure/table/steel_reinforced,/obj/item/circuitboard/smes,/obj/item/circuitboard/smes,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) +"ayU" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"ayV" = (/obj/structure/table/steel_reinforced,/obj/item/circuitboard/smes,/obj/item/circuitboard/smes,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "ayW" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "ayX" = (/obj/machinery/door/airlock/centcom{name = "Teleporter Bay"; opacity = 1; req_access = list(107)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/living) "ayY" = (/obj/structure/sign/warning/secure_area,/turf/unsimulated/wall,/area/centcom/control) "ayZ" = (/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{name = "plating"},/area/centcom/holding) -"aza" = (/obj/machinery/door/airlock/centcom{name = "Teleporter Bay"; opacity = 1; req_access = list(107)},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/living) -"azb" = (/obj/item/reagent_containers/food/checker/bishop/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"azc" = (/obj/item/reagent_containers/food/checker/knight/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_chess) -"azd" = (/obj/item/reagent_containers/food/checker/rook/red{randpixel = 0},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_chess) -"aze" = (/obj/structure/table/rack,/obj/item/gun/energy/lasercannon,/obj/item/gun/energy/lasercannon,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) +"aza" = (/obj/machinery/door/airlock/centcom{name = "Teleporter Bay"; opacity = 1; req_access = list(107)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/living) +"aze" = (/obj/structure/table/rack,/obj/item/gun/energy/lasercannon,/obj/item/gun/energy/lasercannon,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "azf" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/shuttle/escape/centcom) "azg" = (/obj/structure/table/reinforced,/obj/item/paper/trade_lic,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) "azh" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "11"; dir = 4},/turf/simulated/floor/plating,/area/shuttle/escape/centcom) @@ -1295,26 +1071,26 @@ "azj" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "azk" = (/obj/structure/closet{name = "Prisoner's Locker"},/obj/item/clothing/shoes/orange,/obj/item/clothing/under/color/orange,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "azl" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/floor/plating,/area/rescue_base/start) -"azm" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"azm" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "azn" = (/obj/structure/table/glass,/obj/item/storage/firstaid/surgery,/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "azo" = (/obj/structure/table/glass,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/latex,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "azp" = (/obj/mecha/medical/odysseus/loaded,/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"azq" = (/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azr" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/storage/belt/security/tactical,/obj/item/storage/belt/security/tactical,/obj/item/storage/belt/security/tactical,/obj/item/storage/belt/security/tactical,/obj/item/taperoll/police,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azs" = (/obj/structure/table/reinforced,/obj/item/storage/box/handcuffs,/obj/item/clothing/glasses/hud/scanners/night{pixel_x = -1; pixel_y = -3},/obj/item/clothing/glasses/hud/scanners/night{pixel_x = -1; pixel_y = -3},/obj/item/clothing/glasses/hud/scanners/night{pixel_x = -1; pixel_y = -3},/obj/item/clothing/glasses/hud/scanners/night,/obj/item/storage/box/handcuffs,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azt" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/storage/backpack/ert/security,/obj/item/storage/backpack/ert/security,/obj/item/storage/backpack/ert/security,/obj/item/storage/backpack/ert/security,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azu" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azv" = (/obj/structure/table/rack,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azw" = (/obj/structure/table/rack,/obj/item/rig_module/mounted,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azx" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azy" = (/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azz" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"azq" = (/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azr" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/storage/belt/security/tactical,/obj/item/storage/belt/security/tactical,/obj/item/storage/belt/security/tactical,/obj/item/storage/belt/security/tactical,/obj/item/taperoll/police,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azs" = (/obj/structure/table/reinforced,/obj/item/storage/box/handcuffs,/obj/item/clothing/glasses/hud/scanners/night{pixel_x = -1; pixel_y = -3},/obj/item/clothing/glasses/hud/scanners/night{pixel_x = -1; pixel_y = -3},/obj/item/clothing/glasses/hud/scanners/night{pixel_x = -1; pixel_y = -3},/obj/item/clothing/glasses/hud/scanners/night,/obj/item/storage/box/handcuffs,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/obj/item/clothing/glasses/tacgoggles,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azt" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/storage/backpack/ert/security,/obj/item/storage/backpack/ert/security,/obj/item/storage/backpack/ert/security,/obj/item/storage/backpack/ert/security,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azu" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azv" = (/obj/structure/table/rack,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azw" = (/obj/structure/table/rack,/obj/item/rig_module/mounted,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azx" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azy" = (/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azz" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "azA" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/item/bonesetter,/obj/item/bonegel,/obj/item/organfixer/advanced,/obj/structure/table/glass,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "azB" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/gas_stand/anesthetic,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) -"azC" = (/obj/structure/table/reinforced,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azD" = (/obj/structure/table/reinforced,/obj/item/crowbar,/obj/item/screwdriver,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azE" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azF" = (/obj/structure/table/reinforced,/obj/item/crowbar,/obj/item/screwdriver,/obj/item/wrench,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"azC" = (/obj/structure/table/reinforced,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azD" = (/obj/structure/table/reinforced,/obj/item/crowbar,/obj/item/screwdriver,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azE" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azF" = (/obj/structure/table/reinforced,/obj/item/crowbar,/obj/item/screwdriver,/obj/item/wrench,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "azG" = (/obj/effect/floor_decal/corner/green,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "azH" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "azI" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/sw{icon_state = "corner_whiteship_s"},/area/shuttle/escape/centcom) @@ -1323,15 +1099,15 @@ "azL" = (/obj/effect/floor_decal/industrial/warning/red/cee{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "azM" = (/obj/effect/floor_decal/industrial/warning/red,/obj/effect/floor_decal/industrial/warning/red{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "azN" = (/obj/machinery/door/airlock/glass_command{name = "Escape Shuttle Bridge"; req_access = list(19)},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) -"azO" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"azO" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "azP" = (/obj/machinery/door/airlock/glass_security{name = "Escape Shuttle Brig"; req_access = list(1)},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) -"azQ" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"azR" = (/obj/machinery/door/blast/regular{dir = 4; id = "ASSAULT2"; name = "Launch Bay #2"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"azS" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT2"; name = "gravpult"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"azT" = (/obj/item/mecha_parts/mecha_equipment/teleporter,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azU" = (/obj/machinery/vending/engineering,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azV" = (/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/flash,/obj/item/device/flash,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"azW" = (/obj/machinery/recharge_station,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"azQ" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"azR" = (/obj/machinery/door/blast/regular{name = "Launch Bay #2"; dir = 4; id = "ASSAULT2"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"azS" = (/obj/machinery/mass_driver{name = "gravpult"; dir = 8; id = "ASSAULT2"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"azT" = (/obj/item/mecha_parts/mecha_equipment/teleporter,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azU" = (/obj/machinery/vending/engineering,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azV" = (/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/flash,/obj/item/device/flash,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azW" = (/obj/machinery/recharge_station,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "azX" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "azY" = (/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aAa" = (/obj/structure/sign/warning/secure_area,/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/centcom/specops) @@ -1340,19 +1116,19 @@ "aAd" = (/obj/structure/bed/chair/beige,/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) "aAe" = (/obj/structure/table/standard,/obj/structure/window/reinforced/crescent{dir = 8},/obj/item/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = 1},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "aAf" = (/obj/structure/bed/chair/blue,/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) -"aAg" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aAh" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aAi" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) +"aAg" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"aAh" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"aAi" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) "aAj" = (/obj/mecha/working/ripley/firefighter,/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aAk" = (/obj/item/mecha_parts/mecha_equipment/tool/extinguisher,/obj/item/mecha_parts/mecha_equipment/tool/rcd,/obj/item/pickaxe/drill/diamonddrill,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAl" = (/obj/structure/table/reinforced,/obj/item/storage/box/flashbangs,/obj/item/handcuffs,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/storage/belt/security/tactical,/obj/item/gun/energy/stunrevolver,/obj/item/clothing/glasses/tacgoggles,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAm" = (/obj/structure/table/reinforced,/obj/item/device/megaphone,/obj/item/storage/box/trackimp,/obj/item/storage/box/cdeathalarm_kit,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAn" = (/obj/structure/table/reinforced,/obj/item/aicard,/obj/item/pinpointer/advpinpointer,/obj/item/stamp/centcomm,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAo" = (/obj/structure/table/reinforced,/obj/item/device/pda/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAp" = (/obj/structure/table/reinforced,/obj/item/gun/energy/gun/nuclear,/obj/prefab/hand_teleporter,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAq" = (/obj/item/clothing/glasses/hud/standard/meson,/obj/item/clothing/glasses/hud/standard/meson,/obj/item/clothing/glasses/hud/standard/meson,/obj/item/clothing/glasses/hud/standard/meson,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/taperoll/engineering,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAr" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"aAs" = (/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/control) +"aAk" = (/obj/item/mecha_parts/mecha_equipment/tool/extinguisher,/obj/item/mecha_parts/mecha_equipment/tool/rcd,/obj/item/pickaxe/drill/diamonddrill,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAl" = (/obj/structure/table/reinforced,/obj/item/storage/box/flashbangs,/obj/item/handcuffs,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/storage/belt/security/tactical,/obj/item/gun/energy/stunrevolver,/obj/item/clothing/glasses/tacgoggles,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAm" = (/obj/structure/table/reinforced,/obj/item/device/megaphone,/obj/item/storage/box/trackimp,/obj/item/storage/box/cdeathalarm_kit,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAn" = (/obj/structure/table/reinforced,/obj/item/aicard,/obj/item/pinpointer/advpinpointer,/obj/item/stamp/centcomm,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAo" = (/obj/structure/table/reinforced,/obj/item/device/pda/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAp" = (/obj/structure/table/reinforced,/obj/item/gun/energy/gun/nuclear,/obj/prefab/hand_teleporter,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAq" = (/obj/item/clothing/glasses/hud/standard/meson,/obj/item/clothing/glasses/hud/standard/meson,/obj/item/clothing/glasses/hud/standard/meson,/obj/item/clothing/glasses/hud/standard/meson,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/taperoll/engineering,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAr" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aAs" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) "aAt" = (/obj/structure/shuttle/engine/heater{dir = 4},/obj/structure/window/reinforced/crescent{dir = 8},/turf/simulated/floor/plating/airless,/area/supply/dock) "aAv" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced/crescent{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_station/start) "aAw" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 8},/obj/effect/floor_decal/industrial/warning/red/corner{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) @@ -1360,146 +1136,145 @@ "aAy" = (/obj/machinery/door/unpowered/simple/wood,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aAz" = (/obj/structure/table/standard,/obj/item/storage/firstaid/surgery/syndie,/obj/effect/floor_decal/spline/fancy{dir = 5},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "aAA" = (/obj/machinery/turret/network/centcomm,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) -"aAB" = (/obj/machinery/door/blast/regular{dir = 4; id = "ASSAULT1"; name = "Launch Bay #1"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aAC" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT1"; name = "gravpult"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aAD" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/obj/item/mecha_parts/mecha_equipment/tool/cable_layer,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAE" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/commander,/obj/item/clothing/suit/armor/vest/ert,/obj/item/clothing/head/helmet/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAF" = (/obj/structure/table/rack,/obj/item/rig/ert/assetprotection,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAG" = (/obj/structure/table/rack,/obj/item/gun/energy/stunrevolver,/obj/item/gun/energy/stunrevolver,/obj/item/device/flash,/obj/item/device/flash,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAH" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/backpack/ert/engineer,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aAI" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"aAB" = (/obj/machinery/door/blast/regular{name = "Launch Bay #1"; dir = 4; id = "ASSAULT1"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"aAC" = (/obj/machinery/mass_driver{name = "gravpult"; dir = 8; id = "ASSAULT1"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"aAD" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/obj/item/mecha_parts/mecha_equipment/tool/cable_layer,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAE" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/commander,/obj/item/clothing/suit/armor/vest/ert,/obj/item/clothing/head/helmet/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAF" = (/obj/structure/table/rack,/obj/item/rig/ert/assetprotection,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAG" = (/obj/structure/table/rack,/obj/item/gun/energy/stunrevolver,/obj/item/gun/energy/stunrevolver,/obj/item/device/flash,/obj/item/device/flash,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAH" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/backpack/ert/engineer,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aAI" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aAJ" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced/crescent{dir = 1},/turf/simulated/floor/plating,/area/rescue_base/start) "aAK" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/space) "aAL" = (/obj/effect/floor_decal/corner/green{dir = 4},/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aAM" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/centcom/control) "aAN" = (/obj/machinery/turret/network/centcomm,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/control) -"aAO" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/mob/living/silicon/decoy{name = "A.L.I.C.E."},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/centcom/control) -"aAP" = (/obj/machinery/turret/network/centcomm,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"aAP" = (/obj/machinery/turret/network/centcomm,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aAQ" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/centcom/control) "aAS" = (/obj/structure/bed/chair/shuttle/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/simulated/floor,/area/syndicate_station/start) "aAT" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/thunderfield) -"aAU" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/control) +"aAU" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) "aAV" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aAW" = (/obj/structure/bed/roller,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aAX" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) "aAY" = (/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) "aAZ" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) "aBa" = (/obj/mecha/working/hoverpod,/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aBb" = (/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aBc" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/grenade_launcher,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/rcd,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/mounted/egun,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aBd" = (/obj/machinery/door/airlock/centcom{name = "Armory Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"aBe" = (/obj/machinery/door/airlock/centcom{name = "Engineering Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"aBf" = (/obj/machinery/door/blast/regular{dir = 4; id = "CREED"; name = "Ready Room"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) +"aBb" = (/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aBc" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/grenade_launcher,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/rcd,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/mounted/egun,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aBd" = (/obj/machinery/door/airlock/centcom{name = "Armory Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aBe" = (/obj/machinery/door/airlock/centcom{name = "Engineering Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aBf" = (/obj/machinery/door/blast/regular{name = "Ready Room"; dir = 4; id = "CREED"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "aBg" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/specops) -"aBh" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{dir = 4; id = "CREED"; name = "Ready Room"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) +"aBh" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{name = "Ready Room"; dir = 4; id = "CREED"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "aBi" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aBj" = (/obj/machinery/door/airlock/centcom{name = "Bridge"; opacity = 1; req_access = list(109)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aBk" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "bcircuit"},/area/centcom/control) -"aBl" = (/obj/machinery/door/window{dir = 2; name = "AI Core Door"; req_access = list(109)},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/centcom/control) +"aBl" = (/obj/machinery/door/window{name = "AI Core Door"; dir = 2; req_access = list(109)},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/centcom/control) "aBm" = (/obj/structure/closet/athletic_mixed,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aBn" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "bcircuit"},/area/centcom/control) "aBo" = (/turf/unsimulated/beach/sand{icon_state = "desert2"},/turf/unsimulated/beach/sand{icon_state = "coconuts"},/area/centcom/holding) "aBq" = (/obj/machinery/optable,/obj/effect/floor_decal/industrial/outline/red,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) -"aBr" = (/obj/machinery/door/blast/regular{dir = 4; id = "ASSAULT0"; name = "Launch Bay #0"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aBs" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT0"; name = "gravpult"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aBt" = (/obj/machinery/camera/network/ert{c_tag = "Assault Armor South"; dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aBu" = (/obj/machinery/door/airlock/centcom{name = "Special Operations Command"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"aBv" = (/obj/structure/sign/warning/secure_area/armory{pixel_y = 32},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"aBw" = (/obj/structure/sign/warning/engineering_access{pixel_y = 32},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"aBx" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"aBy" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"aBz" = (/obj/structure/table/rack,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"aBr" = (/obj/machinery/door/blast/regular{name = "Launch Bay #0"; dir = 4; id = "ASSAULT0"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"aBs" = (/obj/machinery/mass_driver{name = "gravpult"; dir = 8; id = "ASSAULT0"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"aBt" = (/obj/machinery/camera/network/ert{dir = 1; c_tag = "Assault Armor South"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"aBu" = (/obj/machinery/door/airlock/centcom{name = "Special Operations Command"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aBv" = (/obj/structure/sign/warning/secure_area/armory{pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aBw" = (/obj/structure/sign/warning/engineering_access{pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aBx" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aBy" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aBz" = (/obj/structure/table/rack,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aBA" = (/obj/structure/sign/warning/nosmoking_2,/turf/unsimulated/wall{icon_state = "riveted"},/area/centcom/specops) "aBB" = (/obj/effect/floor_decal/corner/green,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aBC" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/control) -"aBF" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aBC" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) +"aBF" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aBG" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "aBH" = (/obj/structure/gas_stand/anesthetic,/obj/effect/floor_decal/spline/fancy,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) -"aBI" = (/obj/structure/sign/redcross{pixel_y = -32},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) +"aBI" = (/obj/structure/sign/redcross{pixel_y = -32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "aBJ" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"aBK" = (/obj/structure/table/reinforced,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"aBK" = (/obj/structure/table/reinforced,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aBL" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/obj/item/handcuffs,/obj/item/storage/pill_bottle/dice,/obj/item/deck/cards,/obj/item/rig/light/internalaffairs/equipped,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aBM" = (/obj/structure/bed/chair/office/light,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aBN" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aBO" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"aBQ" = (/obj/structure/bed/chair,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/control) -"aBR" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/control) +"aBQ" = (/obj/structure/bed/chair,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) +"aBR" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) "aBS" = (/obj/effect/floor_decal/corner/paleblue/three_quarters{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aBT" = (/obj/effect/floor_decal/corner/paleblue/three_quarters,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aBU" = (/obj/item/modular_computer/console/preset/security,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aBW" = (/obj/structure/sign/warning/nosmoking_2,/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/centcom/control) -"aBX" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aBY" = (/obj/machinery/door/airlock/centcom{name = "Medical Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"aBZ" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"aBX" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aBY" = (/obj/machinery/door/airlock/centcom{name = "Medical Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aBZ" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aCa" = (/obj/structure/table/reinforced,/obj/item/storage/box/donut,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aCb" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aCc" = (/obj/structure/table/reinforced,/obj/item/crowbar,/obj/item/screwdriver,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"aCd" = (/obj/structure/table/reinforced,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"aCd" = (/obj/structure/table/reinforced,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aCe" = (/obj/machinery/status_display,/turf/unsimulated/wall,/area/centcom/specops) -"aCf" = (/obj/structure/table/rack,/obj/item/device/lightreplacer,/obj/item/device/lightreplacer,/obj/item/rig/ert/janitor,/obj/item/rig/ert/janitor,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCg" = (/obj/structure/bed/chair,/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/control) +"aCf" = (/obj/structure/table/rack,/obj/item/device/lightreplacer,/obj/item/device/lightreplacer,/obj/item/rig/ert/janitor,/obj/item/rig/ert/janitor,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCg" = (/obj/structure/bed/chair,/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) "aCi" = (/obj/effect/floor_decal/corner/paleblue/three_quarters{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aCj" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/structure/bed/couch/middle/sofa,/obj/structure/bed/couch/left/sofa,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aCk" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aCm" = (/obj/structure/bed/chair/shuttle/red{dir = 8},/obj/effect/floor_decal/industrial/warning/red{dir = 5},/turf/simulated/floor,/area/syndicate_station/start) "aCn" = (/obj/structure/flora/pottedplant/minitree,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"aCo" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/control) -"aCq" = (/obj/structure/table/reinforced,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/storage/box/syringes,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCr" = (/obj/structure/table/reinforced,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/storage/box/syringes,/obj/item/reagent_containers/vessel/beaker/large,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCs" = (/obj/structure/table/reinforced,/obj/item/storage/box/autoinjectors,/obj/item/storage/box/beakers,/obj/item/storage/box/gloves,/obj/item/storage/box/pillbottles,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCt" = (/obj/machinery/chemical_dispenser/ert,/obj/item/reagent_containers/vessel/beaker/large,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCu" = (/obj/machinery/chem_master,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCv" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"aCo" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) +"aCq" = (/obj/structure/table/reinforced,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/storage/box/syringes,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCr" = (/obj/structure/table/reinforced,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical,/obj/item/storage/belt/medical,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/vessel/bottle/chemical/inaprovaline,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/reagent_containers/hypospray,/obj/item/storage/box/syringes,/obj/item/reagent_containers/vessel/beaker/large,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCs" = (/obj/structure/table/reinforced,/obj/item/storage/box/autoinjectors,/obj/item/storage/box/beakers,/obj/item/storage/box/gloves,/obj/item/storage/box/pillbottles,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCt" = (/obj/machinery/chemical_dispenser/ert,/obj/item/reagent_containers/vessel/beaker/large,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCu" = (/obj/machinery/chem_master,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCv" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aCw" = (/obj/structure/table/reinforced,/obj/item/stamp/centcomm,/obj/item/pen,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aCx" = (/obj/structure/table/reinforced,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"aCy" = (/obj/effect/landmark/start/antags/deathsquad,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCz" = (/obj/structure/closet{icon_closed = "syndicate1"; icon_opened = "syndicate1open"; icon_state = "syndicate1"; name = "emergency response team wardrobe"},/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/rank/centcom/officer,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) +"aCy" = (/obj/effect/landmark/start/antags/deathsquad,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCz" = (/obj/structure/closet{name = "emergency response team wardrobe"; icon_state = "syndicate1"; icon_closed = "syndicate1"; icon_opened = "syndicate1open"},/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/rank/centcom/officer,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "aCA" = (/obj/structure/sink{dir = 4; pixel_x = 11},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aCC" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/machinery/door/airlock/glass{name = "Swimming Pool"},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aCD" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aCE" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aCF" = (/turf/unsimulated/wall,/area/centcom/holding) -"aCG" = (/obj/structure/closet/crate,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"aCG" = (/obj/structure/closet/crate,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aCH" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"aCI" = (/obj/structure/table/rack,/obj/item/storage/backpack/security,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/gloves/color,/obj/item/clothing/glasses/hud/standard/science,/obj/item/storage/backpack/security,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/gloves/color,/obj/item/clothing/glasses/hud/standard/science,/obj/item/reagent_containers/spray/cleaner{pixel_x = 6; pixel_y = 3},/obj/item/reagent_containers/spray/cleaner{pixel_x = 6; pixel_y = 3},/obj/item/reagent_containers/spray/plantbgone,/obj/item/reagent_containers/spray/plantbgone,/obj/item/storage/box/lights/mixed,/obj/item/storage/box/lights/mixed,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCJ" = (/obj/item/mop,/obj/structure/mopbucket,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCK" = (/obj/structure/reagent_dispensers/watertank,/obj/item/reagent_containers/vessel/bucket{amount_per_transfer_from_this = 50},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"aCI" = (/obj/structure/table/rack,/obj/item/storage/backpack/security,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/gloves/color,/obj/item/clothing/glasses/hud/standard/science,/obj/item/storage/backpack/security,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/gloves/color,/obj/item/clothing/glasses/hud/standard/science,/obj/item/reagent_containers/spray/cleaner{pixel_x = 6; pixel_y = 3},/obj/item/reagent_containers/spray/cleaner{pixel_x = 6; pixel_y = 3},/obj/item/reagent_containers/spray/plantbgone,/obj/item/reagent_containers/spray/plantbgone,/obj/item/storage/box/lights/mixed,/obj/item/storage/box/lights/mixed,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCJ" = (/obj/item/mop,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCK" = (/obj/structure/reagent_dispensers/watertank,/obj/item/reagent_containers/vessel/bucket{amount_per_transfer_from_this = 50},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aCL" = (/obj/effect/floor_decal/corner/green{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aCM" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aCO" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aCP" = (/obj/machinery/computer/shuttle_control/emergency,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"aCQ" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "deathsquad_centcom_dock"; name = "docking port controller"; pixel_y = -25; req_one_access = list(103); tag_door = "deathsquad_centcom_dock_door"},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"aCS" = (/obj/machinery/door/airlock/centcom{name = "Holding Cell"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint"},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) +"aCQ" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "docking port controller"; pixel_y = -25; frequency = 1380; req_one_access = list(103); id_tag = "deathsquad_centcom_dock"; tag_door = "deathsquad_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aCS" = (/obj/machinery/door/airlock/centcom{name = "Holding Cell"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{name = "Crescent Checkpoint"; id = "crescent_checkpoint_access"},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) "aCT" = (/obj/machinery/door/airlock/glass_medical{name = "Escape Shuttle Infirmary"; req_access = list(5)},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) -"aCW" = (/obj/structure/table/reinforced,/obj/item/storage/box/bodybags,/obj/item/storage/firstaid/o2,/obj/item/storage/firstaid/regular,/obj/item/device/flash,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flash,/obj/item/storage/firstaid/regular,/obj/item/storage/firstaid/regular,/obj/item/storage/pill_bottle/dylovene,/obj/item/storage/pill_bottle/kelotane,/obj/item/storage/pill_bottle/kelotane,/obj/item/storage/pill_bottle/dylovene,/obj/item/storage/pill_bottle/kelotane,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/fire,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCX" = (/obj/structure/table/reinforced,/obj/item/roller,/obj/item/roller,/obj/item/roller,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCY" = (/obj/structure/closet/crate/medical,/obj/item/circular_saw,/obj/item/surgicaldrill,/obj/item/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/bonesetter,/obj/item/scalpel,/obj/item/retractor{pixel_y = 6},/obj/item/hemostat{pixel_y = 4},/obj/item/cautery{pixel_y = 4},/obj/item/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/nanopaste,/obj/item/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/mask/surgical,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aCZ" = (/obj/structure/table/rack,/obj/item/gun/energy/stunrevolver,/obj/item/gun/energy/stunrevolver,/obj/item/device/flash,/obj/item/device/flash,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aDa" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/storage/backpack/ert/medical,/obj/item/storage/backpack/ert/medical,/obj/item/storage/backpack/ert/medical,/obj/item/storage/backpack/ert/medical,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aDb" = (/obj/structure/table/rack,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) -"aDc" = (/obj/structure/table/rack,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/specops) +"aCW" = (/obj/structure/table/reinforced,/obj/item/storage/box/bodybags,/obj/item/storage/firstaid/o2,/obj/item/storage/firstaid/regular,/obj/item/device/flash,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flash,/obj/item/storage/firstaid/regular,/obj/item/storage/firstaid/regular,/obj/item/storage/pill_bottle/dylovene,/obj/item/storage/pill_bottle/kelotane,/obj/item/storage/pill_bottle/kelotane,/obj/item/storage/pill_bottle/dylovene,/obj/item/storage/pill_bottle/kelotane,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/adv,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/fire,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCX" = (/obj/structure/table/reinforced,/obj/item/roller,/obj/item/roller,/obj/item/roller,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCY" = (/obj/structure/closet/crate/medical,/obj/item/circular_saw,/obj/item/surgicaldrill,/obj/item/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/bonesetter,/obj/item/scalpel,/obj/item/retractor{pixel_y = 6},/obj/item/hemostat{pixel_y = 4},/obj/item/cautery{pixel_y = 4},/obj/item/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/nanopaste,/obj/item/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/mask/surgical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aCZ" = (/obj/structure/table/rack,/obj/item/gun/energy/stunrevolver,/obj/item/gun/energy/stunrevolver,/obj/item/device/flash,/obj/item/device/flash,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aDa" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/storage/backpack/ert/medical,/obj/item/storage/backpack/ert/medical,/obj/item/storage/backpack/ert/medical,/obj/item/storage/backpack/ert/medical,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aDb" = (/obj/structure/table/rack,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aDc" = (/obj/structure/table/rack,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aDd" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aDe" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"aDf" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"aDh" = (/obj/structure/table/reinforced,/obj/item/paper_bin,/obj/item/pen/blue,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) +"aDf" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"aDh" = (/obj/structure/table/reinforced,/obj/item/paper_bin,/obj/item/pen/blue,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) "aDi" = (/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{name = "plating"},/area/tdome) -"aDj" = (/obj/effect/floor_decal/corner/grey{dir = 6},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"aDl" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/structure/table/reinforced,/obj/item/device/taperecorder,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) +"aDj" = (/obj/effect/floor_decal/corner/grey{dir = 6},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"aDl" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/structure/table/reinforced,/obj/item/device/taperecorder,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) "aDn" = (/obj/structure/sign/warning/lethal_turrets,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/centcom/control) -"aDo" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aDp" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) -"aDq" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "deathsquad_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"aDo" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{name = "Crescent Checkpoint"; id = "crescent_checkpoint_access"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) +"aDp" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) +"aDq" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1380; locked = 1; id_tag = "deathsquad_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aDr" = (/obj/machinery/vending/cola{prices = list()},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"aDs" = (/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) +"aDs" = (/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) "aDt" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aDu" = (/obj/effect/floor_decal/corner/green{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aDv" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aDw" = (/obj/effect/floor_decal/corner/green{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aDx" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) -"aDz" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "burst_l"},/turf/space,/area/shuttle/deathsquad/centcom) -"aDA" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_straight"},/area/shuttle/deathsquad/centcom) -"aDB" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "deathsquad_shuttle_port_hatch"; locked = 1; name = "Port Docking Hatch"; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/shuttle/deathsquad/centcom) +"aDz" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/space,/area/shuttle/deathsquad/centcom) +"aDA" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 4},/area/shuttle/deathsquad/centcom) +"aDB" = (/obj/machinery/door/airlock/external{name = "Port Docking Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(103); id_tag = "deathsquad_shuttle_port_hatch"},/turf/unsimulated/floor{icon_state = "dark"},/area/shuttle/deathsquad/centcom) "aDC" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/ne,/area/shuttle/deathsquad/centcom) "aDD" = (/obj/machinery/vending/cigarette{name = "cigarette machine"; prices = list()},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aDE" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) @@ -1507,49 +1282,47 @@ "aDG" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aDH" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aDI" = (/obj/structure/bed/chair/shuttle/blue{dir = 1},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"aDJ" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_dock"; name = "docking port controller"; pixel_y = -25; req_one_access = list(13); tag_door = "centcom_dock_airlock"},/obj/effect/floor_decal/industrial/warning,/obj/structure/flora/pottedplant/minitree,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) +"aDJ" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "docking port controller"; pixel_y = -25; frequency = 1380; req_one_access = list(13); id_tag = "centcom_dock"; tag_door = "centcom_dock_airlock"},/obj/effect/floor_decal/industrial/warning,/obj/structure/flora/pottedplant/minitree,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aDN" = (/obj/structure/shuttle/engine/propulsion{dir = 8},/turf/space,/area/shuttle/deathsquad/centcom) "aDO" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/turf/simulated/floor/plating/airless,/area/shuttle/deathsquad/centcom) "aDP" = (/obj/machinery/computer/shuttle_control/specops,/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) "aDQ" = (/obj/structure/bed/chair/shuttle/red,/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) -"aDR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "deathsquad_shuttle_port"; name = "port docking hatch controller"; pixel_y = 25; tag_door = "deathsquad_shuttle_port_hatch"},/obj/structure/bed/chair/shuttle/red,/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) +"aDR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "port docking hatch controller"; pixel_y = 25; frequency = 1380; id_tag = "deathsquad_shuttle_port"; tag_door = "deathsquad_shuttle_port_hatch"},/obj/structure/bed/chair/shuttle/red,/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) "aDS" = (/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) "aDT" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) -"aDU" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = -28},/obj/machinery/light/small/readylight{dir = 4},/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) -"aDV" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{id = "CREED"; name = "Ready Room"},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"aDW" = (/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals - Holding Cell"; dir = 4},/obj/effect/floor_decal/corner/red{dir = 6},/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"aDX" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) +"aDU" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; layer = 3.3; pixel_x = -28},/obj/machinery/light/small/readylight{dir = 4},/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) +"aDV" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{name = "Ready Room"; id = "CREED"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aDW" = (/obj/machinery/camera/network/crescent{dir = 4; c_tag = "Crescent Arrivals - Holding Cell"},/obj/effect/floor_decal/corner/red{dir = 6},/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"aDX" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) "aDY" = (/obj/structure/window_frame/indestructible/grille,/turf/unsimulated/floor{name = "plating"},/area/centcom/holding) -"aDZ" = (/obj/machinery/door/blast/regular{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) +"aDZ" = (/obj/machinery/door/blast/regular{name = "Security Doors"; id = "CentComPort"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aEb" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 9},/area/shuttle/escape/centcom) "aEg" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 5},/area/shuttle/escape/centcom) "aEh" = (/obj/structure/bed/chair{dir = 4},/obj/effect/shuttle_landmark/deathsquad/centcom,/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) -"aEj" = (/obj/effect/floor_decal/corner/grey{dir = 9},/obj/effect/floor_decal/corner/grey{dir = 6},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"aEk" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Arrivals Processing"; req_access = list(101)},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aEl" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aEj" = (/obj/effect/floor_decal/corner/grey{dir = 9},/obj/effect/floor_decal/corner/grey{dir = 6},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"aEk" = (/obj/machinery/door/window/northleft{name = "Arrivals Processing"; icon_state = "right"; dir = 8; req_access = list(101); base_state = "right"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"aEl" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aEm" = (/obj/structure/table/rack,/obj/item/roller,/obj/item/bodybag/cryobag{pixel_x = 6},/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"aEn" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"aEn" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{name = "Thunderdome"; id = "crescent_thunderdome"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aEo" = (/obj/structure/bed/chair/shuttle/blue,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"aEp" = (/obj/structure/bed/roller,/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = -28},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) +"aEp" = (/obj/structure/bed/roller,/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; layer = 3.3; pixel_x = -28},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aEq" = (/obj/item/modular_computer/console/preset/command,/obj/item/device/radio/intercom/specops{dir = 1; pixel_y = -22},/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) "aEr" = (/obj/machinery/computer/prisoner{name = "Implant Management"},/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) "aEs" = (/obj/machinery/hologram/holopad,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aEt" = (/obj/structure/bed/chair/shuttle/red{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) "aEu" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/se,/area/shuttle/deathsquad/centcom) -"aEv" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aEw" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aEx" = (/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/obj/item/modular_computer/console/preset/security,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aEy" = (/obj/effect/floor_decal/corner/red{dir = 6},/obj/item/beach_ball/holoball,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aEv" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"aEw" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{name = "Security Doors"; desc = "A remote control switch for port-side blast doors."; pixel_x = -12; pixel_y = -25; id = "CentComPort"; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"aEx" = (/obj/machinery/camera/network/crescent{dir = 8; c_tag = "Crescent Arrivals North"},/obj/item/modular_computer/console/preset/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aEz" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aEA" = (/obj/structure/holohoop{dir = 8},/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aEB" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "CentComPort"; name = "Security Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) +"aEB" = (/obj/machinery/door/blast/regular{name = "Security Doors"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "CentComPort"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) "aEC" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/tank/oxygen,/obj/item/device/radio/intercom{pixel_y = 22},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aED" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/tank/oxygen,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aEG" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "burst_r"},/turf/space,/area/shuttle/deathsquad/centcom) -"aEJ" = (/obj/structure/closet/secure_closet/security,/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) +"aEG" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/space,/area/shuttle/deathsquad/centcom) +"aEJ" = (/obj/structure/closet/secure_closet/security,/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) "aEK" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aEL" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aEM" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aEM" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aEN" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 4},/area/shuttle/escape/centcom) "aEO" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/folder/white{pixel_x = 4},/obj/item/storage/box/bodybags,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_mono"},/area/centcom/holding) "aEP" = (/obj/machinery/light/small/readylight,/obj/structure/bed/chair/shuttle/red{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) @@ -1565,76 +1338,47 @@ "aFb" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_b"; dir = 1},/area/shuttle/escape/centcom) "aFc" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"; dir = 4},/area/shuttle/escape/centcom) "aFd" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "6"; dir = 4},/turf/simulated/floor/plating,/area/shuttle/escape/centcom) -"aFe" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/obj/machinery/mech_sensor{dir = 8; frequency = 1380; id_tag = "shuttle_dock_south_mech"; pixel_x = -30},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) +"aFe" = (/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_shuttle_hatch"},/obj/machinery/mech_sensor{dir = 8; pixel_x = -30; frequency = 1380; id_tag = "shuttle_dock_south_mech"},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aFf" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_d"; dir = 4},/area/shuttle/escape/centcom) -"aFg" = (/turf/simulated/floor/holofloor/space,/area/space) "aFi" = (/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_mono"},/area/centcom/holding) "aFk" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/tofukabob,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) "aFl" = (/obj/structure/table/woodentable{dir = 5},/obj/item/clothing/accessory/wcoat,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) -"aFm" = (/obj/machinery/door/window/westleft{dir = 2; name = "Bar"},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) -"aFn" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/holofloor/snow,/area/space) +"aFm" = (/obj/machinery/door/window/westleft{name = "Bar"; dir = 2},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) "aFo" = (/mob/living/simple_animal/crab{name = "Coffee"},/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) "aFp" = (/obj/item/beach_ball,/turf/unsimulated/beach/sand{icon_state = "desert3"},/area/centcom/holding) "aFq" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window-whiteship"},/turf/simulated/floor/plating,/area/centcom/evac) "aFr" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"; dir = 4},/turf/simulated/floor/plating,/area/shuttle/escape/centcom) -"aFs" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/obj/machinery/mech_sensor{dir = 8; frequency = 1380; id_tag = "shuttle_dock_north_mech"; pixel_x = 30},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) -"aFt" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aFs" = (/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_shuttle_hatch"},/obj/machinery/mech_sensor{dir = 8; pixel_x = 30; frequency = 1380; id_tag = "shuttle_dock_north_mech"},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) +"aFt" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aFu" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/item/modular_computer/console/preset/civilian,/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aFv" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atm{pixel_x = -32},/turf/simulated/floor/tiled,/area/merchant_station) "aFw" = (/obj/machinery/cryopod/robot{time_till_despawn = 10},/obj/machinery/computer/cryopod/robot{pixel_x = -32; pixel_y = -32},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"aFx" = (/obj/machinery/camera/network/crescent{c_tag = "Crescent Bar West"; dir = 4},/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) -"aFy" = (/turf/simulated/floor/holofloor/snow,/area/space) -"aFz" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/space) -"aFA" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/space) -"aFB" = (/obj/structure/flora/ausbushes/fernybush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFC" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFD" = (/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFE" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFF" = (/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFG" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/beach/sand{dir = 6; icon_state = "beach"},/area/centcom/holding) -"aFH" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aFI" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_dock_airlock"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aFJ" = (/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aFx" = (/obj/machinery/camera/network/crescent{dir = 4; c_tag = "Crescent Bar West"},/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) +"aFG" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/beach/sand{icon_state = "beach"; dir = 6},/area/centcom/holding) +"aFH" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"aFI" = (/obj/machinery/door/airlock/external{name = "Arrivals Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "centcom_dock_airlock"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"aFJ" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aFK" = (/obj/structure/closet/crate/freezer/rations,/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aFL" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aFM" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/obj/structure/bed/couch/left/sofa{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) -"aFP" = (/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFQ" = (/obj/structure/flora/ausbushes/ppflowers,/obj/structure/holostool,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFR" = (/obj/structure/flora/ausbushes/leafybush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFS" = (/obj/structure/flora/ausbushes/palebush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFT" = (/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFU" = (/obj/structure/flora/ausbushes/sunnybush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFV" = (/obj/structure/flora/ausbushes/genericbush,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aFW" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) "aFX" = (/obj/item/stool/bar_new/padded,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aFY" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aFZ" = (/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aGa" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aGb" = (/obj/item/device/radio/intercom{pixel_y = 22},/turf/simulated/floor/tiled,/area/merchant_station) "aGc" = (/obj/machinery/vending/engivend{req_one_access = list()},/turf/simulated/floor/tiled,/area/merchant_station) -"aGd" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) +"aGd" = (/obj/structure/closet{name = "Clothing Storage"; icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aGe" = (/obj/machinery/vending/cigarette{prices = list()},/turf/simulated/floor/trim/wood,/area/merchant_station) -"aGf" = (/obj/structure/flora/ausbushes/reedbush,/obj/structure/holostool,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) -"aGg" = (/obj/structure/flora/ausbushes/sunnybush,/obj/structure/holostool,/turf/simulated/floor/natural/grass{name = "artificial grass patch"},/area/space) "aGh" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/beach/sand{icon_state = "seashallow"},/area/centcom/holding) -"aGi" = (/obj/random/pottedplant,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) -"aGj" = (/turf/simulated/floor/holofloor/tiled,/area/space) -"aGk" = (/obj/structure/flora/ausbushes/lavendergrass,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) -"aGl" = (/obj/structure/flora/ausbushes/brflowers,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) +"aGi" = (/obj/random/pottedplant,/obj/machinery/camera/network/crescent{dir = 8; c_tag = "Crescent Arrivals North"},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) +"aGk" = (/obj/structure/flora/ausbushes/lavendergrass,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) +"aGl" = (/obj/structure/flora/ausbushes/brflowers,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) "aGm" = (/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) -"aGn" = (/obj/structure/flora/ausbushes/ppflowers,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) +"aGn" = (/obj/structure/flora/ausbushes/ppflowers,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) "aGo" = (/obj/structure/window_frame/indestructible,/turf/simulated/floor/trim/wood,/area/thunderfield) "aGp" = (/obj/machinery/status_display,/turf/unsimulated/wall,/area/centcom/holding) "aGq" = (/obj/structure/sign/warning/lethal_turrets,/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/centcom/holding) "aGr" = (/obj/structure/closet/crate,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aGs" = (/obj/structure/flora/pottedplant{icon_state = "plant-10"},/turf/simulated/floor/holofloor/tiled,/area/space) -"aGt" = (/obj/structure/flora/pottedplant{icon_state = "plant-20"},/turf/simulated/floor/holofloor/tiled,/area/space) -"aGu" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/space) -"aGv" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/space) -"aGw" = (/obj/structure/flora/pottedplant{icon_state = "plant-06"},/turf/simulated/floor/holofloor/tiled,/area/space) -"aGx" = (/obj/structure/flora/pottedplant,/turf/simulated/floor/holofloor/tiled,/area/space) -"aGy" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/space) -"aGz" = (/obj/structure/table/holo_woodentable,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/space) "aGA" = (/obj/machinery/shieldwallgen,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor,/area/centcom/control) "aGD" = (/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aGE" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) @@ -1642,14 +1386,11 @@ "aGG" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) "aGH" = (/obj/machinery/recharge_station,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aGI" = (/obj/structure/table/standard,/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"aGJ" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aGK" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aGJ" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"aGK" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aGL" = (/obj/structure/flora/pottedplant/stoutbush,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aGM" = (/obj/structure/table/standard,/obj/item/storage/firstaid/fire,/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/crowbar,/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/obj/machinery/light,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aGN" = (/turf/unsimulated/wall,/area/skipjack_station/base) -"aGO" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/carpet,/area/space) -"aGP" = (/obj/structure/table/holo_woodentable,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/space) -"aGQ" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/space) "aGR" = (/obj/machinery/shieldwallgen,/obj/machinery/shieldwallgen,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor,/area/centcom/control) "aGS" = (/obj/machinery/door/airlock/glass{name = "Basketball Court"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aGU" = (/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) @@ -1663,7 +1404,7 @@ "aHc" = (/obj/structure/bed/chair/lime{dir = 4},/turf/unsimulated/beach/sand{icon_state = "desert1"},/area/centcom/holding) "aHd" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "aHe" = (/obj/item/bikehorn/rubberducky{name = "toilet ducky"},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) -"aHf" = (/obj/structure/window_frame/indestructible,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/trim/wood,/area/thunderfield) +"aHf" = (/obj/structure/window_frame/indestructible,/obj/structure/barricade/material,/turf/simulated/floor/trim/wood,/area/thunderfield) "aHg" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "aHh" = (/obj/structure/table/standard,/obj/structure/closet/hydrant{pixel_x = -30},/obj/machinery/light,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aHi" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/obj/structure/table/standard,/obj/machinery/light,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) @@ -1672,7 +1413,7 @@ "aHl" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/holding) "aHm" = (/obj/machinery/hologram/holopad,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aHn" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/holding) -"aHo" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/holding) +"aHo" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/holding) "aHp" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) "aHq" = (/obj/structure/sign/double/picturesky/left{pixel_y = 32},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_mono"},/area/centcom/holding) "aHr" = (/obj/structure/sign/double/picturesky/right{pixel_y = 32},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_mono"},/area/centcom/holding) @@ -1691,8 +1432,8 @@ "aHE" = (/turf/unsimulated/beach/sand{icon_state = "desert3"},/area/centcom/holding) "aHF" = (/obj/structure/bed/padded,/obj/structure/curtain/open/bed{anchored = 1},/obj/item/bedsheet/rainbow,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aHG" = (/obj/structure/sign/redcross,/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/centcom/holding) -"aHH" = (/obj/structure/closet/wardrobe/pjs,/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_9"},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/holding) -"aHI" = (/obj/machinery/door/airlock{id_tag = "Dormitory 1"; name = "Dormitory"},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) +"aHH" = (/obj/structure/closet/wardrobe/pjs,/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_9"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/holding) +"aHI" = (/obj/machinery/door/airlock{name = "Dormitory"; id_tag = "Dormitory 1"},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aHJ" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/machinery/hologram/holopad,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aHK" = (/obj/structure/table/woodentable{dir = 5},/obj/random/plushie,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aHL" = (/obj/structure/table/standard,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/cell/high{layer = 4; pixel_x = -5; pixel_y = 12},/obj/item/screwdriver{layer = 4; pixel_y = 4},/obj/effect/floor_decal/corner/beige{dir = 6},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) @@ -1705,21 +1446,21 @@ "aHT" = (/obj/machinery/bodyscanner{dir = 8},/obj/effect/floor_decal/corner/blue{dir = 9},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aHU" = (/obj/machinery/body_scanconsole{dir = 8},/obj/effect/floor_decal/corner/blue{dir = 9},/obj/effect/floor_decal/industrial/warning{dir = 4; layer = 3},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aHV" = (/obj/machinery/shieldwallgen,/turf/unsimulated/floor,/area/centcom/control) -"aHW" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/holding) -"aHX" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/holding) +"aHW" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/holding) +"aHX" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/holding) "aHY" = (/obj/machinery/door/window/eastright{name = "Holding Cell"; req_access = list(2)},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "aHZ" = (/obj/structure/bed/chair/shuttle/blue{dir = 8},/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "aIa" = (/obj/item/modular_computer/console/preset/research,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"aIb" = (/obj/structure/closet/wardrobe/pjs,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/holding) +"aIb" = (/obj/structure/closet/wardrobe/pjs,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/holding) "aIc" = (/obj/item/inflatable_duck,/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) "aId" = (/obj/effect/floor_decal/corner/grey{dir = 6},/obj/random/pottedplant,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_mono"},/area/centcom/holding) -"aIe" = (/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_9"},/obj/machinery/button/remote/airlock{dir = 4; id = "Dormitory 1"; name = "Door Bolts"; pixel_x = -25; specialfunctions = 4},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) +"aIe" = (/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_9"},/obj/machinery/button/remote/airlock{name = "Door Bolts"; dir = 4; pixel_x = -25; id = "Dormitory 1"; specialfunctions = 4},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aIg" = (/obj/structure/bed/chair/shuttle/blue{dir = 8},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aIh" = (/obj/item/modular_computer/console/preset/command,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aIi" = (/obj/structure/bed/chair/shuttle/blue{dir = 4},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aIj" = (/obj/structure/table/rack,/obj/item/tank/jetpack/carbondioxide,/obj/item/tank/jetpack/carbondioxide,/obj/item/tank/jetpack/carbondioxide,/obj/item/tank/jetpack/carbondioxide,/obj/item/tank/jetpack/carbondioxide,/obj/item/tank/jetpack/carbondioxide,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aIk" = (/obj/structure/window_frame/indestructible,/turf/simulated/floor/tiled/dark,/area/thunderfield) -"aIl" = (/obj/structure/flora/ausbushes/ywflowers,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) +"aIl" = (/obj/structure/flora/ausbushes/ywflowers,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) "aIn" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access = list(45)},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "white_rough"},/area/centcom/holding) "aIp" = (/obj/machinery/computer/arcade,/obj/effect/floor_decal/corner/grey{dir = 6},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_mono"},/area/centcom/holding) "aIq" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) @@ -1727,11 +1468,11 @@ "aIs" = (/obj/effect/floor_decal/spline/plain/grey{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aIt" = (/obj/effect/floor_decal/corner/grey{dir = 6},/obj/item/stool/padded,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_mono"},/area/centcom/holding) "aIv" = (/obj/machinery/shieldwallgen,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor,/area/centcom/control) -"aIy" = (/obj/machinery/computer/teleporter,/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) +"aIy" = (/obj/machinery/computer/teleporter,/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) "aIz" = (/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aIA" = (/obj/structure/closet/secure_closet/personal,/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_9"},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aIB" = (/obj/effect/floor_decal/corner/paleblue/three_quarters{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"aIC" = (/obj/structure/table/standard,/obj/machinery/recharger,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) +"aIC" = (/obj/structure/table/standard,/obj/machinery/recharger,/obj/structure/window/reinforced{dir = 1; health = 1e+06},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "aID" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aIE" = (/obj/item/modular_computer/console/preset/command,/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aIF" = (/obj/structure/table/standard,/obj/machinery/light{dir = 8},/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/storage/firstaid/adv{pixel_x = -2},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) @@ -1753,7 +1494,7 @@ "aIY" = (/obj/structure/bed/couch/right/brown{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aIZ" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/shuttle/escape/centcom) "aJa" = (/obj/structure/bed/chair/comfy/captain,/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) -"aJb" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_shuttle"; pixel_x = 28; pixel_y = -28; req_one_access = list(13); tag_door = "escape_shuttle_hatch"},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) +"aJb" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = 28; pixel_y = -28; frequency = 1380; req_one_access = list(13); id_tag = "escape_shuttle"; tag_door = "escape_shuttle_hatch"},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aJc" = (/obj/structure/table/standard,/obj/random/medical/lite,/obj/random/medical/lite,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aJd" = (/obj/structure/table/standard,/obj/item/bodybag/cryobag{pixel_x = 2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/storage/box/masks,/obj/item/storage/box/gloves{pixel_x = 3; pixel_y = 4},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aJe" = (/obj/structure/table/standard,/obj/item/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/storage/firstaid/toxin,/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) @@ -1765,7 +1506,7 @@ "aJl" = (/obj/structure/table/woodentable,/obj/item/deck/cards,/obj/structure/sign/poster{pixel_y = -32},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aJm" = (/obj/item/reagent_containers/vessel/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/reagent_containers/vessel/beaker/cryoxadone{pixel_x = -3; pixel_y = -3},/obj/structure/table/standard{name = "plastic table frame"},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "aJn" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) -"aJr" = (/obj/machinery/teleporter_gate,/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) +"aJr" = (/obj/machinery/teleporter_gate,/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) "aJs" = (/obj/structure/bed/chair/shuttle/blue{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "aJt" = (/obj/structure/flora/pottedplant/largeleaves,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aJv" = (/obj/effect/floor_decal/industrial/warning/red{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) @@ -1774,7 +1515,7 @@ "aJy" = (/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aJz" = (/obj/machinery/organ_printer/flesh/mapped,/obj/effect/floor_decal/corner/pink/three_quarters{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aJA" = (/obj/machinery/media/jukebox,/obj/structure/sign/poster{pixel_x = 32},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"aJB" = (/obj/machinery/atmospherics/unary/freezer{dir = 1; icon_state = "freezer"},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) +"aJB" = (/obj/machinery/atmospherics/unary/freezer{icon_state = "freezer"; dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "aJC" = (/obj/machinery/hologram/holopad,/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) "aJD" = (/turf/unsimulated/beach/sand{icon_state = "beachcorner"},/area/centcom/holding) "aJE" = (/turf/unsimulated/beach/sand{icon_state = "beach"},/area/centcom/holding) @@ -1782,66 +1523,63 @@ "aJG" = (/obj/machinery/turret/network/centcomm,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aJH" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/tdome) "aJI" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 4},/turf/space,/area/space) -"aJJ" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"aJJ" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{name = "Thunderdome"; id = "crescent_thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aJK" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "aJL" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aJM" = (/obj/effect/floor_decal/industrial/warning/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aJN" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aJO" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"aJP" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aJP" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aJQ" = (/obj/structure/bed/chair/purp{dir = 4},/turf/unsimulated/beach/sand{icon_state = "desert1"},/area/centcom/holding) "aJR" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aJS" = (/obj/structure/table/standard,/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 29},/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/extinguisher,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aJT" = (/obj/effect/floor_decal/spline/plain/grey{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/holding) "aJU" = (/obj/effect/floor_decal/spline/fancy,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) -"aJV" = (/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) +"aJV" = (/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) "aJW" = (/obj/effect/floor_decal/spline/fancy/corner{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aJX" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 8},/turf/space,/area/skipjack_station/base) "aJY" = (/obj/structure/bed/couch/left/brown{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/holding) "aJZ" = (/obj/structure/bed/couch/right/brown{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/holding) "aKa" = (/obj/effect/floor_decal/industrial/warning/red/corner,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aKb" = (/turf/unsimulated/beach/sand{dir = 6; icon_state = "beach"},/area/centcom/holding) +"aKb" = (/turf/unsimulated/beach/sand{icon_state = "beach"; dir = 6},/area/centcom/holding) "aKc" = (/turf/unsimulated/beach/sand{icon_state = "seashallow"},/area/centcom/holding) -"aKd" = (/obj/structure/table/standard,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aKe" = (/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aKf" = (/obj/structure/flora/ausbushes/lavendergrass,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) +"aKd" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aKe" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aKf" = (/obj/structure/flora/ausbushes/lavendergrass,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) "aKg" = (/obj/effect/floor_decal/sign/armory/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aKh" = (/obj/effect/floor_decal/industrial/warning/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aKi" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aKj" = (/obj/structure/table/rack,/obj/item/storage/box/handcuffs{pixel_x = 4; pixel_y = 2},/obj/item/storage/box/flashbangs,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aKk" = (/obj/structure/table/rack,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aKl" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aKl" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aKm" = (/obj/effect/floor_decal/sign/armory/suits,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aKn" = (/obj/structure/table/rack,/obj/item/gun/energy/gun,/obj/item/gun/energy/gun,/obj/item/gun/energy/gun,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/obj/effect/floor_decal/industrial/hatch/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aKo" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle,/obj/effect/floor_decal/industrial/hatch/red,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aKp" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aKq" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aKr" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aKs" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/space) -"aKt" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/space) +"aKp" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aKq" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aKr" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aKu" = (/turf/space,/area/space) "aKv" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas/syndicate,/obj/item/clothing/suit/space/void/syndi/prepared,/obj/effect/floor_decal/industrial/hatch/red,/obj/item/clothing/accessory/holochip/nuke,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aKw" = (/mob/living/simple_animal/faithful_hound,/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aKx" = (/obj/effect/floor_decal/industrial/warning/red/corner{dir = 1},/obj/effect/floor_decal/industrial/warning/red/corner{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aKy" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aKy" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aKz" = (/obj/effect/floor_decal/industrial/warning/red{dir = 8},/obj/effect/floor_decal/industrial/warning/red{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aKA" = (/obj/effect/floor_decal/sign/armory,/obj/effect/floor_decal/industrial/warning/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aKB" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "syndieshutters_workshop"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"aKB" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/syndicate_station/start) "aKC" = (/obj/structure/table/rack,/obj/item/rig/syndi/empty,/obj/effect/floor_decal/industrial/hatch/red,/obj/effect/floor_decal/industrial/warning/full,/obj/item/clothing/accessory/holochip/nuke,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aKD" = (/obj/structure/holohoop{dir = 4},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) "aKE" = (/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"aKF" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "skipjackshutters"; name = "Skipjack Blast Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/skipjack_station/start) -"aKJ" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aKK" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aKL" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aKM" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) +"aKF" = (/obj/structure/window_frame/reinforced/hull,/obj/machinery/door/blast/regular{name = "Skipjack Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "skipjackshutters"},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aKJ" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"aKK" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aKL" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aKM" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aKO" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 4},/turf/space,/area/skipjack_station/base) "aKP" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 8},/turf/space,/area/space) -"aKS" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aKT" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aKU" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aKV" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aKW" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"aKS" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aKT" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aKU" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aKV" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aKW" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aKX" = (/obj/item/clothing/head/wizard/violetwizard,/obj/item/clothing/suit/wizrobe/violetwizard,/obj/item/staff/broom,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aKY" = (/obj/effect/floor_decal/spline/plain/grey{dir = 1},/obj/effect/floor_decal/spline/fancy{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/holding) "aKZ" = (/obj/structure/window_frame/indestructible/grille,/turf/unsimulated/floor{name = "plating"},/area/wizard_station) @@ -1855,39 +1593,39 @@ "aLi" = (/obj/structure/window_frame/indestructible/hull,/turf/simulated/floor/plating,/area/merchant_station) "aLj" = (/obj/structure/window_frame/indestructible,/turf/simulated/floor/tiled,/area/merchant_station) "aLk" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{name = "plating"},/area/merchant_station) -"aLl" = (/obj/structure/window_frame/indestructible/hull,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/unsimulated/floor{name = "plating"},/area/merchant_station) +"aLl" = (/obj/structure/window_frame/indestructible/hull,/obj/structure/cable/blue{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/unsimulated/floor{name = "plating"},/area/merchant_station) "aLm" = (/obj/effect/floor_decal/spline/fancy/corner{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) -"aLn" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aLo" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"aLn" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{name = "Thunderdome"; id = "crescent_thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aLo" = (/obj/effect/forcefield{name = "Blocker"; desc = "You can't get in. Heh."; layer = 1},/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aLp" = (/obj/effect/floor_decal/stairs{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/holding) -"aLq" = (/obj/machinery/door/blast/regular{id = "thunderdomeaxe"; name = "Axe Supply"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"aLq" = (/obj/machinery/door/blast/regular{name = "Axe Supply"; id = "thunderdomeaxe"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aLr" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/lattice,/turf/space,/area/space) -"aLs" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/disposalpipe/segment,/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"aLs" = (/obj/effect/forcefield{name = "Blocker"; desc = "You can't get in. Heh."; layer = 1},/obj/structure/disposalpipe/segment,/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aLt" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/lattice,/turf/space,/area/skipjack_station/base) "aLu" = (/obj/effect/floor_decal/spline/fancy/corner,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aLv" = (/obj/machinery/door/airlock/glass{name = "Arrivals Processing"},/obj/effect/floor_decal/spline/fancy{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aLw" = (/obj/machinery/door/airlock/glass{name = "Arrivals Processing"},/obj/effect/floor_decal/spline/fancy{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "aLx" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/lattice,/turf/space,/area/skipjack_station/base) -"aLy" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"aLy" = (/obj/effect/forcefield{name = "Blocker"; desc = "You can't get in. Heh."; layer = 1},/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aLz" = (/obj/effect/floor_decal/corner/green{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aLA" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) +"aLA" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) "aLB" = (/obj/structure/closet/secure_closet/bar,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "aLC" = (/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "aLD" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) -"aLE" = (/obj/structure/flora/ausbushes/ywflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) -"aLF" = (/obj/structure/bed/chair,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/control) +"aLE" = (/obj/structure/flora/ausbushes/ywflowers,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) +"aLF" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) "aLG" = (/obj/effect/floor_decal/corner/green{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aLH" = (/obj/machinery/door/blast/regular{id = "thunderdomegen"; name = "General Supply"},/obj/machinery/door/blast/regular{dir = 8; id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"aLH" = (/obj/machinery/door/blast/regular{name = "General Supply"; id = "thunderdomegen"},/obj/machinery/door/blast/regular{name = "General Supply"; dir = 8; id = "thunderdomegen"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aLI" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aLJ" = (/obj/machinery/door/airlock/command{name = "Thunderdome"},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome) +"aLJ" = (/obj/machinery/door/airlock/command{name = "Thunderdome"},/obj/machinery/door/blast/regular{name = "Thunderdome"; id = "crescent_thunderdome"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome) "aLK" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) "aLL" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aLM" = (/turf/simulated/shuttle/wall/corner/dark/nw,/area/skipjack_station/start) "aLN" = (/turf/simulated/shuttle/wall/corner/dark/ne,/area/skipjack_station/start) "aLO" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/acting/backstage) -"aLP" = (/obj/machinery/button/remote/blast_door{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_thunderdome"; name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_vip_shuttle"; name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "CREED"; name = "Spec Ops Ready Room"; pixel_x = -6; pixel_y = -34; req_access = list(108)},/obj/machinery/turret_control_panel/centcomm{pixel_x = 28; pixel_y = -28},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/control) +"aLP" = (/obj/machinery/button/remote/blast_door{name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; id = "crescent_checkpoint_access"; req_access = list(101)},/obj/machinery/button/remote/blast_door{name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; id = "crescent_thunderdome"; req_access = list(101)},/obj/machinery/button/remote/blast_door{name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; id = "crescent_vip_shuttle"; req_access = list(101)},/obj/machinery/button/remote/blast_door{name = "Spec Ops Ready Room"; pixel_x = -6; pixel_y = -34; id = "CREED"; req_access = list(108)},/obj/machinery/turret_control_panel/centcomm{pixel_x = 28; pixel_y = -28},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) "aLQ" = (/obj/effect/floor_decal/corner/green{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aLR" = (/obj/machinery/door/blast/regular{dir = 8; id = "thunderdome"; name = "Thunderdome Blast Door"},/obj/machinery/door/blast/regular{dir = 8; id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"aLR" = (/obj/machinery/door/blast/regular{name = "Thunderdome Blast Door"; dir = 8; id = "thunderdome"},/obj/machinery/door/blast/regular{name = "Thunderdome Blast Door"; dir = 8; id = "thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aLS" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/flame/lighter/zippo,/obj/item/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) "aLT" = (/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) "aLU" = (/turf/simulated/wall/voxshuttle,/area/skipjack_station/start) @@ -1900,11 +1638,11 @@ "aMc" = (/obj/structure/table/rack,/obj/item/stack/tile/floor_freezer{amount = 50},/obj/item/stack/tile/floor_freezer{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMd" = (/obj/structure/table/rack,/obj/item/stack/tile/carpet{amount = 50},/obj/item/stack/tile/carpet{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMe" = (/obj/structure/table/rack,/obj/item/stack/tile/grass{amount = 50},/obj/item/stack/tile/grass{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aMf" = (/obj/structure/table/rack,/obj/item/stack/material/steel{amount = 50; pixel_x = 5; pixel_y = 5},/obj/item/stack/material/steel{amount = 50; pixel_x = 5; pixel_y = 5},/obj/item/stack/material/steel{amount = 50; pixel_x = 5; pixel_y = 5},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"aMf" = (/obj/structure/table/rack,/obj/item/stack/material/steel{pixel_x = 5; pixel_y = 5; amount = 50},/obj/item/stack/material/steel{pixel_x = 5; pixel_y = 5; amount = 50},/obj/item/stack/material/steel{pixel_x = 5; pixel_y = 5; amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMg" = (/obj/structure/table/rack,/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMh" = (/obj/structure/table/rack,/obj/item/stack/material/wood{amount = 50},/obj/item/stack/material/wood{amount = 50},/obj/item/stack/material/wood{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMi" = (/obj/structure/table/rack,/obj/item/stack/material/sandstone{amount = 50},/obj/item/stack/material/sandstone{amount = 50},/obj/item/stack/material/sandstone{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aMj" = (/obj/structure/table/rack,/obj/item/stack/material/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/material/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/material/glass{amount = 50; pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"aMj" = (/obj/structure/table/rack,/obj/item/stack/material/glass{pixel_x = 3; pixel_y = 3; amount = 50},/obj/item/stack/material/glass{pixel_x = 3; pixel_y = 3; amount = 50},/obj/item/stack/material/glass{pixel_x = 3; pixel_y = 3; amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMk" = (/obj/structure/table/rack,/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMl" = (/obj/structure/table/rack,/obj/item/stack/material/marble{amount = 50},/obj/item/stack/material/marble{amount = 50},/obj/item/stack/material/marble{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMm" = (/obj/structure/table/rack,/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) @@ -1923,32 +1661,32 @@ "aMz" = (/obj/structure/bed/chair/shuttle/blue,/obj/machinery/status_display{pixel_y = 30},/obj/machinery/camera/network/crescent{c_tag = "Shuttle East"},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aMA" = (/obj/structure/bed/chair/shuttle/blue{dir = 8},/obj/machinery/camera/network/crescent{c_tag = "Shuttle Security"},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "aMB" = (/obj/machinery/computer/crew,/obj/machinery/camera/network/crescent{c_tag = "Shuttle Bridge East"},/obj/item/device/radio/intercom{pixel_y = 22},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"aMC" = (/obj/machinery/camera/network/crescent{c_tag = "Shuttle Medical"; dir = 4},/obj/structure/bed/roller,/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) -"aMD" = (/obj/item/paper{info = "\[center]\[b]READ INSTRUCTIONS CAREFULLY\[/b]\[/center]\[br]\[br]Hello! Welcome and congratulations on being hired for NanoTrasen's new Television initiative. You are now tasked with the creation and production of NanoTrasen brand television that is to be broadcasted to all of our stations!\[br]\[br] We've outfitted these facilities with all the materials and objects you will need.\[br]On the port side you'll find various venders and machines, namely the Wardrobe Dispenser, which will dispense holoclothing and items for you to use, and a Quickee brand plastic surgery machine (which I would remind you you are contractually obligated to \[b]not\[/b] report to the authorities.) which can change your appearance into anything you want, even other races. Stern and aft you'll find all the materials we could muster up on short notice. Use it to decorate the stage to your liking. Starboard you'll find gases, microwaves, hydroponic trays and the like. Go silly! This is already paid for (as are you) so do what you want and entertain!"; name = "Actor's Guild Instruction Pamphlet"},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"aMC" = (/obj/machinery/camera/network/crescent{dir = 4; c_tag = "Shuttle Medical"},/obj/structure/bed/roller,/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) +"aMD" = (/obj/item/paper{name = "Actor's Guild Instruction Pamphlet"; info = "\[center]\[b]READ INSTRUCTIONS CAREFULLY\[/b]\[/center]\[br]\[br]Hello! Welcome and congratulations on being hired for NanoTrasen's new Television initiative. You are now tasked with the creation and production of NanoTrasen brand television that is to be broadcasted to all of our stations!\[br]\[br] We've outfitted these facilities with all the materials and objects you will need.\[br]On the port side you'll find various venders and machines, namely the Wardrobe Dispenser, which will dispense holoclothing and items for you to use, and a Quickee brand plastic surgery machine (which I would remind you you are contractually obligated to \[b]not\[/b] report to the authorities.) which can change your appearance into anything you want, even other races. Stern and aft you'll find all the materials we could muster up on short notice. Use it to decorate the stage to your liking. Starboard you'll find gases, microwaves, hydroponic trays and the like. Go silly! This is already paid for (as are you) so do what you want and entertain!"},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aME" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{name = "plating"},/area/centcom/holding) "aMF" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aMG" = (/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) "aMH" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/item/storage/box/sinpockets,/obj/structure/closet/secure_closet/freezer/kitchen,/obj/item/reagent_containers/vessel/condiment/enzyme,/turf/unsimulated/floor{icon_state = "white"},/area/rescue_base/base) -"aMI" = (/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/living) -"aMM" = (/obj/structure/table/reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access = list(101)},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/holding) -"aMN" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/control) -"aMO" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/centcom/control) +"aMI" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/living) +"aMM" = (/obj/structure/table/reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"aMN" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{name = "Crescent Checkpoint"; id = "crescent_checkpoint_access"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) +"aMO" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/control) "aMR" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMT" = (/obj/machinery/biogenerator,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aMU" = (/obj/machinery/door/blast/regular{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"aMU" = (/obj/machinery/door/blast/regular{name = "Heavy Supply"; id = "thunderdomehea"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aMV" = (/obj/machinery/igniter,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aMW" = (/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aMX" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"aNb" = (/obj/structure/table/woodentable,/obj/item/book/wiki/nuclear,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aNb" = (/obj/structure/table/woodentable,/obj/item/book/wiki/nuclear,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aNe" = (/obj/machinery/vending/hydroseeds,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aNf" = (/turf/simulated/floor/tiled,/area/acting/stage) "aNg" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/acting/stage) "aNh" = (/obj/machinery/microwave,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aNi" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) "aNj" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) -"aNk" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/gun/energy/laser,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"aNk" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/gun/energy/laser,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aNl" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/space) -"aNo" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/gun/energy/laser,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"aNo" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/gun/energy/laser,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aNp" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "aNt" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 8},/area/centcom/holding) "aNB" = (/obj/machinery/vending/hydronutrients,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) @@ -1963,13 +1701,13 @@ "aNR" = (/obj/item/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "aNV" = (/obj/machinery/vending/robotics,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aOa" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 4},/area/tdome) -"aOb" = (/obj/item/book/wiki/robotics_cyborgs,/obj/structure/table/glass,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) +"aOb" = (/obj/item/book/wiki/robotics_cyborgs,/obj/structure/table/glass,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "aOf" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aOg" = (/obj/machinery/camera/network/thunder{anchored = 0; c_tag = "Television"; name = "Movable Camera"},/turf/simulated/floor/tiled,/area/acting/stage) +"aOg" = (/obj/machinery/camera/network/thunder{name = "Movable Camera"; anchored = 0; c_tag = "Television"},/turf/simulated/floor/tiled,/area/acting/stage) "aOh" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aOi" = (/obj/machinery/computer/pod{id = "thunderdomehea"; name = "Thunderdome Heavy Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) +"aOi" = (/obj/machinery/computer/pod{name = "Thunderdome Heavy Supply"; id = "thunderdomehea"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aOj" = (/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"aOk" = (/obj/machinery/computer/pod{id = "thunderdome"; name = "Thunderdome Blast Door Control"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) +"aOk" = (/obj/machinery/computer/pod{name = "Thunderdome Blast Door Control"; id = "thunderdome"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aOs" = (/obj/machinery/vending/dinnerware,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aOt" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "aOH" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) @@ -1981,27 +1719,27 @@ "aOQ" = (/obj/machinery/chemical_dispenser/bar_alc/full,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aOR" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) "aOS" = (/obj/structure/bed/chair,/obj/structure/disposalpipe/segment,/obj/effect/landmark/event/tdome/tdomeobserve,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) -"aOT" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/melee/energy/axe,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aOV" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/melee/energy/axe,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aOW" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/melee/baton/loaded,/obj/item/melee/energy/sword/one_hand/red,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"aOT" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/melee/energy/axe,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aOV" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/melee/energy/axe,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aOW" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/melee/baton/loaded,/obj/item/melee/energy/sword/one_hand/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aOX" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/floor/plating/airless,/area/skipjack_station/start) "aOY" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand{icon_state = "desert2"},/turf/unsimulated/beach/sand{icon_state = "coconuts"},/area/centcom/holding) -"aPb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/storage/fancy/cigarettes=10,/obj/item/storage/box/matches=10,/obj/item/flame/lighter/zippo=4,/obj/item/clothing/mask/smokable/cigarette/cigar/havana=2)},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/syndicate_mothership) +"aPb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; products = list(/obj/item/storage/fancy/cigarettes=10, /obj/item/storage/box/matches=10, /obj/item/flame/lighter/zippo=4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana=2); prices = list()},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "aPc" = (/obj/machinery/vending/containers,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPd" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/acting/stage) "aPe" = (/obj/machinery/chemical_dispenser/full,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aPf" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/melee/baton/loaded,/obj/item/melee/energy/sword/one_hand/green,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aPg" = (/obj/effect/landmark/event/tdome/tdome2,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome/tdome2) -"aPh" = (/obj/effect/landmark/event/tdome/tdome1,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome/tdome1) -"aPi" = (/obj/effect/landmark/event/tdome/tdome2,/obj/machinery/camera/network/thunder{c_tag = "Thunderdome - Red Team"; invisibility = 101},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome/tdome2) +"aPf" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/melee/baton/loaded,/obj/item/melee/energy/sword/one_hand/green,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aPg" = (/obj/effect/landmark/event/tdome/tdome2,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2) +"aPh" = (/obj/effect/landmark/event/tdome/tdome1,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1) +"aPi" = (/obj/effect/landmark/event/tdome/tdome2,/obj/machinery/camera/network/thunder{invisibility = 101; c_tag = "Thunderdome - Red Team"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2) "aPj" = (/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) "aPm" = (/obj/machinery/pipedispenser,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPn" = (/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aPo" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) -"aPp" = (/obj/effect/landmark/event/tdome/tdome1,/obj/machinery/camera/network/thunder{c_tag = "Green Team"; invisibility = 101},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome/tdome1) +"aPo" = (/obj/machinery/flasher{name = "Thunderdome Flash"; id = "flash"},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) +"aPp" = (/obj/effect/landmark/event/tdome/tdome1,/obj/machinery/camera/network/thunder{invisibility = 101; c_tag = "Green Team"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1) "aPq" = (/obj/machinery/atmospherics/pipe/vent,/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) "aPw" = (/obj/machinery/acting/changer,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aPx" = (/obj/machinery/camera/network/thunder{c_tag = "Thunderdome Arena"; invisibility = 101},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) +"aPx" = (/obj/machinery/camera/network/thunder{invisibility = 101; c_tag = "Thunderdome Arena"},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) "aPy" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aPE" = (/obj/machinery/vending/props,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPF" = (/obj/machinery/newscaster{pixel_y = -27},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) @@ -2012,10 +1750,10 @@ "aPK" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aPL" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aPM" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"aPN" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = list(102)},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"aPO" = (/obj/effect/floor_decal/corner/red{dir = 8},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"aPN" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = list(102)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aPO" = (/obj/effect/floor_decal/corner/red{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aPP" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = list(102)},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"aPR" = (/obj/effect/floor_decal/corner/green,/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"aPR" = (/obj/effect/floor_decal/corner/green,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aPS" = (/obj/structure/bed/chair{dir = 1},/obj/effect/landmark/event/tdome/tdomeadmin,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aPT" = (/obj/item/extinguisher,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aPU" = (/obj/machinery/atmospherics/valve,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) @@ -2027,9 +1765,9 @@ "aQe" = (/obj/machinery/cryopod{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/white,/area/merchant_station) "aQf" = (/obj/machinery/light/small{dir = 1},/obj/machinery/computer/cryopod{pixel_y = 32},/obj/item/roller,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/merchant_station) "aQg" = (/obj/item/device/radio/intercom{pixel_y = 22},/obj/structure/table/reinforced,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = -2},/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/merchant_station) -"aQh" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aQi" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aQj" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) +"aQh" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/natural/jungle,/area/merchant_station) +"aQi" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/natural/jungle,/area/merchant_station) +"aQj" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light{dir = 1},/turf/simulated/floor/natural/jungle,/area/merchant_station) "aQk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/white,/area/merchant_station) "aQl" = (/obj/machinery/sleeper{dir = 8},/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/white,/area/merchant_station) "aQo" = (/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/blue/three_quarters{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) @@ -2068,20 +1806,19 @@ "aQV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aQW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aQX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/merchant_station) -"aQY" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aQZ" = (/obj/structure/flora/ausbushes/ywflowers,/mob/living/simple_animal/tindalos{name = "Eddy"},/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aRa" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aRb" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/grass,/area/merchant_station) +"aQY" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/natural/jungle,/area/merchant_station) +"aRa" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/natural/jungle,/area/merchant_station) +"aRb" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/natural/jungle,/area/merchant_station) "aRc" = (/obj/structure/table/reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/effect/floor_decal/corner/blue/three_quarters,/turf/simulated/floor/tiled,/area/merchant_station) "aRe" = (/obj/structure/table/reinforced,/obj/random/loot,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/merchant_station) "aRf" = (/obj/machinery/photocopier,/obj/effect/floor_decal/corner/blue{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) -"aRg" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "merchant_station_interior"; locked = 1; name = "Station Exterior"; req_access = list(201)},/turf/simulated/floor/plating,/area/merchant_station) +"aRg" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/external{name = "Station Exterior"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(201); id_tag = "merchant_station_interior"},/turf/simulated/floor/plating,/area/merchant_station) "aRh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aRi" = (/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) -"aRj" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "merchant_station_vent"},/obj/machinery/embedded_controller/radio/airlock/docking_port{id_tag = "merchant_station_dock"; pixel_x = 26; plane = -13; req_access = list(201); tag_airpump = "merchant_station_vent"; tag_chamber_sensor = "merchant_station_sensor"; tag_exterior_door = "merchant_station_exterior"; tag_interior_door = "merchant_station_interior"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/merchant_station) +"aRj" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "merchant_station_vent"},/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = 26; plane = -13; req_access = list(201); id_tag = "merchant_station_dock"; tag_exterior_door = "merchant_station_exterior"; tag_interior_door = "merchant_station_interior"; tag_airpump = "merchant_station_vent"; tag_chamber_sensor = "merchant_station_sensor"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/merchant_station) "aRk" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aRm" = (/obj/machinery/door/window/southright{req_access = list(201)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/window/northleft{req_access = list(201)},/turf/simulated/floor/plating,/area/merchant_station) -"aRn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "merchant_station_interior"; locked = 1; name = "Station Exterior"; req_access = list(201)},/turf/simulated/floor/plating,/area/merchant_station) +"aRn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{name = "Station Exterior"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(201); id_tag = "merchant_station_interior"},/turf/simulated/floor/plating,/area/merchant_station) "aRo" = (/obj/effect/decal/cleanable/dirt,/obj/structure/extinguisher_cabinet{pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/merchant_station) "aRp" = (/obj/machinery/constructable_frame/machine_frame,/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/obj/item/storage/toolbox/mechanical,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRq" = (/obj/effect/floor_decal/corner/green{dir = 5},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark,/area/merchant_station) @@ -2090,32 +1827,32 @@ "aRt" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/green{dir = 5},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRu" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/table/rack,/obj/random/plushie,/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRv" = (/obj/structure/shuttle/engine/propulsion/burst/right{dir = 1},/turf/space,/area/shuttle/merchant/home) -"aRy" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "merchant_ship_dock"; pixel_x = -28},/obj/effect/shuttle_landmark/merchant/start,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "merchant_ship_exterior"; locked = 1; name = "Ship Exterior"; req_access = list(201)},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "merchantshuttle1"; name = "Merchant Window Shutters"; opacity = 0},/obj/machinery/button/remote/blast_door{id = "merchantshuttle1"; name = "Privacy Shutters"; pixel_x = -28; pixel_y = -8; req_access = list(201)},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aRy" = (/obj/machinery/access_button{pixel_x = -28; frequency = 1379; command = "cycle_exterior"; master_tag = "merchant_ship_dock"},/obj/effect/shuttle_landmark/merchant/start,/obj/machinery/door/airlock/external{name = "Ship Exterior"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(201); id_tag = "merchant_ship_exterior"},/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; id = "merchantshuttle1"},/obj/machinery/button/remote/blast_door{name = "Privacy Shutters"; pixel_x = -28; pixel_y = -8; id = "merchantshuttle1"; req_access = list(201)},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "aRB" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) "aRC" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRD" = (/obj/effect/floor_decal/corner/green{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRE" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRH" = (/obj/structure/table/steel,/obj/item/spacecash/bundle/c1000,/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aRK" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "merchant_ship_dock"; name = "interior access button"; pixel_x = -28; pixel_y = -6},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "merchant_ship_dock"; name = "exterior access button"; pixel_x = -28; pixel_y = 6},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aRK" = (/obj/machinery/access_button{name = "interior access button"; pixel_x = -28; pixel_y = -6; frequency = 1379; command = "cycle_interior"; master_tag = "merchant_ship_dock"},/obj/machinery/access_button{name = "exterior access button"; pixel_x = -28; pixel_y = 6; frequency = 1379; command = "cycle_exterior"; master_tag = "merchant_ship_dock"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "aRL" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1379; id_tag = "merchant_ship_vent"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) -"aRM" = (/obj/machinery/airlock_sensor{id_tag = "merchant_ship_sensor"; pixel_x = 28},/obj/structure/closet/emcloset{anchored = 1},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aRM" = (/obj/machinery/airlock_sensor{pixel_x = 28; id_tag = "merchant_ship_sensor"},/obj/structure/closet/emcloset{anchored = 1},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "aRN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) "aRO" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) -"aRP" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 2; name = "Warehouse"},/turf/simulated/floor/tiled/dark,/area/merchant_station) +"aRP" = (/obj/machinery/door/airlock/multi_tile/glass{name = "Warehouse"; dir = 2},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRQ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRR" = (/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRS" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRT" = (/obj/structure/bed/chair/office/dark{dir = 4},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRU" = (/obj/structure/table/steel,/obj/item/paper,/obj/item/pen,/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aRZ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "merchant_ship_interior"; locked = 1; name = "Ship Exterior"; req_access = list(201)},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "merchantshuttle1"; name = "Merchant Window Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aRZ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/external{name = "Ship Exterior"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(201); id_tag = "merchant_ship_interior"},/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; id = "merchantshuttle1"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "aSb" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/blue{dir = 10},/obj/item/gun/energy/gun/taser,/obj/item/gun/energy/gun/taser,/turf/simulated/floor/tiled,/area/merchant_station) "aSd" = (/obj/structure/closet/crate/freezer/rations,/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/light/small,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSe" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/reagent_dispensers{anchored = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSf" = (/obj/structure/filingcabinet,/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSg" = (/obj/structure/table/steel,/obj/structure/flora/pottedplant/shoot{pixel_y = 7},/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_y = -28},/obj/machinery/light/small,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSh" = (/obj/structure/table/steel,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/clipboard,/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aSj" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/obj/machinery/button/remote/blast_door{id = "merchantshuttle1"; name = "Privacy Shutters"; pixel_x = -28; pixel_y = 28; req_access = list(201)},/turf/simulated/floor/tiled,/area/shuttle/merchant/home) +"aSj" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/obj/machinery/button/remote/blast_door{name = "Privacy Shutters"; pixel_x = -28; pixel_y = 28; id = "merchantshuttle1"; req_access = list(201)},/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aSk" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/effect/floor_decal/industrial/loading,/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aSl" = (/obj/effect/floor_decal/corner/brown/three_quarters{dir = 1},/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aSn" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 4},/area/wizard_station) @@ -2128,10 +1865,10 @@ "aSv" = (/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSy" = (/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSz" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/largecrate,/obj/random/loot,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aSA" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aSB" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aSC" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aSD" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aSA" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aSB" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aSC" = (/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aSD" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aSF" = (/obj/structure/bed/chair/shuttle/red{dir = 4},/obj/effect/floor_decal/industrial/warning/red{dir = 9},/turf/simulated/floor,/area/syndicate_station/start) "aSG" = (/obj/structure/table/woodentable,/turf/simulated/floor/trim/carpet,/area/wizard_station) "aSH" = (/obj/structure/toilet{pixel_y = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) @@ -2152,14 +1889,14 @@ "aTb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aTc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aTe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aTf" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aTg" = (/obj/structure/closet/coffin,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aTh" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/reagent_containers/vessel/flask/barflask,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/trim/carpet,/area/wizard_station) +"aTf" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aTg" = (/obj/structure/closet/coffin,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aTh" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = -3; pixel_y = 8; on = 0},/obj/item/reagent_containers/vessel/flask/barflask,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/trim/carpet,/area/wizard_station) "aTj" = (/obj/structure/table/rack,/obj/random/action_figure,/obj/effect/floor_decal/industrial/outline/grey,/obj/item/clothing/accessory/holster,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aTk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aTl" = (/obj/machinery/light/small,/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aTm" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/grey,/obj/item/card/id{access = list(201); desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; name = "Visitor's Card - Merchant's Station"},/obj/item/card/id{access = list(201); desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; name = "Visitor's Card - Merchant's Station"},/obj/item/card/id{access = list(201); desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; name = "Visitor's Card - Merchant's Station"},/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aTn" = (/obj/structure/table/woodentable,/obj/item/storage/bag/cash,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aTm" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/grey,/obj/item/card/id{name = "Visitor's Card - Merchant's Station"; desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; access = list(201)},/obj/item/card/id{name = "Visitor's Card - Merchant's Station"; desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; access = list(201)},/obj/item/card/id{name = "Visitor's Card - Merchant's Station"; desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; access = list(201)},/turf/simulated/floor/tiled/dark,/area/merchant_station) +"aTn" = (/obj/structure/table/woodentable,/obj/item/storage/bag/cash,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aTo" = (/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTp" = (/obj/structure/bed,/obj/item/bedsheet/rd,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTq" = (/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/staff,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) @@ -2170,123 +1907,123 @@ "aTw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) "aTx" = (/obj/machinery/door/airlock/hatch{name = "Storage"; req_access = list(201)},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aTy" = (/turf/simulated/floor/asteroid,/area/merchant_station) -"aTz" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aTA" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aTz" = (/obj/structure/bookcase,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aTA" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aTB" = (/obj/machinery/door/unpowered/simple/wood,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTC" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTF" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/centcom/suppy) "aTG" = (/obj/machinery/alarm{dir = 8; pixel_x = 25; req_one_access = list(201)},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/merchant_station) "aTH" = (/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/merchant_station) -"aTI" = (/obj/machinery/alarm{pixel_y = 23; req_one_access = list(201)},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/merchant_station) +"aTI" = (/obj/machinery/alarm{pixel_y = 23; req_one_access = list(201)},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aTJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aTK" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aTN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/merchant_station) "aTO" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/asteroid,/area/merchant_station) -"aTP" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aTP" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aTQ" = (/obj/structure/table/woodentable,/obj/item/storage/backpack/cultpack,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTR" = (/obj/structure/table/woodentable,/obj/item/clothing/glasses/monocle,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTS" = (/obj/structure/table/woodentable,/obj/item/storage/backpack,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTT" = (/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aTU" = (/obj/item/clothing/shoes/sandal/marisa{desc = "A set of fancy shoes that are as functional as they are comfortable."; name = "Gentlemans Shoes"},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/staff/gentcane,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"aTU" = (/obj/item/clothing/shoes/sandal/marisa{name = "Gentlemans Shoes"; desc = "A set of fancy shoes that are as functional as they are comfortable."},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/staff/gentcane,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTV" = (/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/staff,/obj/structure/closet/cabinet/wizcabinet,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTW" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aTX" = (/obj/effect/floor_decal/corner/brown/three_quarters{dir = 4},/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aTY" = (/obj/structure/extinguisher_cabinet{pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/merchant_station) "aTZ" = (/obj/machinery/disposal,/obj/machinery/light/small{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled,/area/merchant_station) -"aUa" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/turf/simulated/floor/tiled,/area/merchant_station) +"aUa" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) "aUb" = (/obj/structure/table/rack,/obj/item/storage/bag/cash,/turf/simulated/floor/tiled,/area/merchant_station) "aUc" = (/turf/simulated/wall,/area/merchant_station) "aUd" = (/obj/machinery/door/window/brigdoor/northleft{req_access = list(201)},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) -"aUe" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/table/reinforced,/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) +"aUe" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+06},/obj/structure/table/reinforced,/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aUf" = (/obj/machinery/door/window/brigdoor/northleft{req_access = list(201)},/obj/structure/table/reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/structure/closet/walllocker/emerglocker/east,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aUg" = (/obj/structure/fireaxecabinet{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/merchant_station) "aUh" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) "aUi" = (/obj/structure/filingcabinet,/turf/simulated/floor/tiled,/area/merchant_station) "aUj" = (/obj/structure/table/steel,/obj/item/card/id/merchant,/turf/simulated/floor/tiled,/area/merchant_station) "aUk" = (/obj/structure/table/steel,/obj/item/spacecash/bundle/c1000,/obj/item/spacecash/bundle/c1000,/obj/item/spacecash/bundle/c1000,/obj/item/spacecash/bundle/c1000,/obj/item/spacecash/bundle/c1000,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/item/clipboard,/turf/simulated/floor/tiled,/area/merchant_station) -"aUl" = (/obj/structure/bed/chair/wood/wings{dir = 4; icon_state = "wooden_chair_wings"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aUm" = (/obj/structure/table/woodentable,/obj/item/dice/d20,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aUn" = (/obj/structure/table/woodentable,/obj/item/storage/box/cups,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aUo" = (/obj/structure/bed/chair/wood/wings{dir = 8; icon_state = "wooden_chair_wings"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aUp" = (/obj/item/target,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) -"aUq" = (/obj/item/target/syndicate,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) -"aUr" = (/obj/item/target/alien,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) +"aUl" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aUm" = (/obj/structure/table/woodentable,/obj/item/dice/d20,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aUn" = (/obj/structure/table/woodentable,/obj/item/storage/box/cups,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aUo" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aUp" = (/obj/item/target,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"aUq" = (/obj/item/target/syndicate,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"aUr" = (/obj/item/target/alien,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "aUt" = (/obj/structure/table/rack,/obj/item/material/knife/ritual,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "aUu" = (/obj/structure/kitchenspike,/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "aUv" = (/obj/structure/closet/secure_closet{name = "merchant's locker"; req_access = list(201)},/obj/effect/floor_decal/corner/brown{dir = 6},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aUw" = (/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) -"aUx" = (/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/table/reinforced,/obj/structure/flora/pottedplant/shoot{pixel_y = 7},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) -"aUy" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{id_tag = "merchant_ship_dock"; pixel_x = -32; pixel_y = 32; tag_airpump = "merchant_ship_vent"; tag_chamber_sensor = "merchant_ship_sensor"; tag_exterior_door = "merchant_ship_exterior"; tag_interior_door = "merchant_ship_interior"},/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) +"aUx" = (/obj/structure/window/reinforced{dir = 8; health = 1e+06},/obj/structure/table/reinforced,/obj/structure/flora/pottedplant/shoot{pixel_y = 7},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) +"aUy" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = -32; pixel_y = 32; id_tag = "merchant_ship_dock"; tag_exterior_door = "merchant_ship_exterior"; tag_interior_door = "merchant_ship_interior"; tag_airpump = "merchant_ship_vent"; tag_chamber_sensor = "merchant_ship_sensor"},/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aUz" = (/obj/machinery/vending/boozeomat{req_access = list()},/turf/simulated/floor/trim/wood,/area/merchant_station) -"aUA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/multi_tile/glass{dir = 2; name = "Warehouse"},/turf/simulated/floor/tiled,/area/merchant_station) +"aUA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/multi_tile/glass{name = "Warehouse"; dir = 2},/turf/simulated/floor/tiled,/area/merchant_station) "aUB" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) "aUC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled,/area/merchant_station) "aUD" = (/obj/structure/bed/chair/office/dark{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aUE" = (/obj/item/modular_computer/console/preset/merchant,/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/tiled,/area/merchant_station) -"aUF" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/reagent_containers/food/milosoup,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aUG" = (/obj/structure/table/woodentable,/obj/item/dice,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aUH" = (/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) +"aUF" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/reagent_containers/food/milosoup,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aUG" = (/obj/structure/table/woodentable,/obj/item/dice,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aUH" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "aUJ" = (/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) -"aUK" = (/obj/machinery/door/airlock/centcom{name = "EVA"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular/singulo{density = 0; dir = 2; icon_state = "pdoor0"; id = "standardrescue"; name = "EVA"; opacity = 0},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"aUK" = (/obj/machinery/door/airlock/centcom{name = "EVA"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular/singulo{name = "EVA"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 2; id = "standardrescue"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "aUL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aUM" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) -"aUN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/machinery/button/remote/blast_door{id = "merchantbase"; pixel_x = -26},/turf/simulated/floor/tiled,/area/merchant_station) +"aUN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/machinery/button/remote/blast_door{pixel_x = -26; id = "merchantbase"},/turf/simulated/floor/tiled,/area/merchant_station) "aUO" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/extinguisher_cabinet{pixel_y = -28},/turf/simulated/floor/tiled,/area/merchant_station) "aUP" = (/obj/machinery/merchant_pad,/obj/effect/floor_decal/industrial/hatch/red,/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aUQ" = (/obj/structure/table/woodentable,/obj/item/device/megaphone,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aUR" = (/obj/structure/table/woodentable,/obj/item/storage/box/donut,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aUQ" = (/obj/structure/table/woodentable,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aUR" = (/obj/structure/table/woodentable,/obj/item/storage/box/donut,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aUS" = (/obj/structure/table/reinforced,/obj/item/device/eftpos,/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aUT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) "aUU" = (/obj/effect/floor_decal/industrial/loading{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) "aUV" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) -"aUW" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{dir = 8; id = "merchantbase"; name = "Merchant Loading Shutters"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/merchant_station) +"aUW" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{name = "Merchant Loading Shutters"; dir = 8; id = "merchantbase"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/merchant_station) "aUX" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) "aUY" = (/obj/machinery/door/window/southleft,/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning,/obj/machinery/conveyor_switch{id = "merchantbelt2"},/turf/simulated/floor/tiled,/area/merchant_station) "aUZ" = (/obj/machinery/door/window/southright,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/merchant_station) -"aVa" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/chawanmushi,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aVb" = (/obj/structure/table/woodentable,/obj/item/spacecash/bundle/c1,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aVd" = (/obj/item/robot_parts/head,/obj/structure/table/glass,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) -"aVe" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) +"aVa" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/chawanmushi,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aVb" = (/obj/structure/table/woodentable,/obj/item/spacecash/bundle/c1,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aVd" = (/obj/item/robot_parts/head,/obj/structure/table/glass,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"aVe" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "aVh" = (/obj/effect/floor_decal/industrial/loading{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) -"aVi" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{dir = 8; id = "merchantbase"; name = "Merchant Loading Shutters"},/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/merchant_station) +"aVi" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{name = "Merchant Loading Shutters"; dir = 8; id = "merchantbase"},/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/merchant_station) "aVj" = (/obj/machinery/conveyor{dir = 8; id = "merchantbelt2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/merchant_station) "aVk" = (/obj/machinery/conveyor{dir = 8; id = "merchantbelt2"},/turf/simulated/floor/plating,/area/merchant_station) "aVl" = (/obj/machinery/conveyor{dir = 8; id = "merchantbelt1"},/turf/simulated/floor/plating,/area/merchant_station) -"aVm" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar,/turf/simulated/floor/plating/airless,/area/merchant_station) -"aVn" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aVo" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar,/turf/simulated/floor/plating/airless,/area/merchant_station) +"aVm" = (/obj/structure/cable/blue{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar,/turf/simulated/floor/plating/airless,/area/merchant_station) +"aVn" = (/obj/structure/cable/blue{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable/blue{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aVo" = (/obj/structure/cable/blue{icon_state = "0-8"; d2 = 8},/obj/machinery/power/solar,/turf/simulated/floor/plating/airless,/area/merchant_station) "aVp" = (/obj/structure/flora/pottedplant/tropical,/obj/machinery/vending/wallmed1{pixel_x = 7; pixel_y = 32},/obj/structure/extinguisher_cabinet{pixel_x = -7; pixel_y = 32},/obj/item/storage/secure/safe{pixel_x = -26},/obj/machinery/light{dir = 1},/turf/simulated/floor/trim/wood,/area/shuttle/merchant/home) "aVq" = (/turf/simulated/floor/trim/wood,/area/shuttle/merchant/home) "aVs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/merchant_station) "aVt" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) "aVu" = (/obj/effect/decal/cleanable/ash,/obj/machinery/conveyor{dir = 1; id = "merchantbelt1"},/turf/simulated/floor/plating,/area/merchant_station) -"aVz" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aVz" = (/obj/structure/cable/blue{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable/blue{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable/blue{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) "aVA" = (/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) "aVB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aVC" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) -"aVD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/button/remote/blast_door{id = "merchantbase"; pixel_x = -26},/turf/simulated/floor/tiled,/area/merchant_station) +"aVD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/button/remote/blast_door{pixel_x = -26; id = "merchantbase"},/turf/simulated/floor/tiled,/area/merchant_station) "aVE" = (/obj/structure/table/rack,/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/turf/simulated/floor/tiled,/area/merchant_station) "aVF" = (/obj/structure/table/rack,/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/turf/simulated/floor/tiled,/area/merchant_station) "aVG" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/turf/simulated/floor/tiled,/area/merchant_station) -"aVH" = (/obj/item/remains/human,/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{icon_state = "lava"; name = "plating"},/area/wizard_station) -"aVI" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{icon_state = "lava"; name = "plating"},/area/wizard_station) +"aVH" = (/obj/item/remains/human,/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"aVI" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) "aVJ" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) "aVK" = (/mob/living/simple_animal/crab{name = "Experiment 68a"},/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) -"aVL" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) -"aVM" = (/obj/structure/flora/ausbushes/fullgrass,/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) +"aVL" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"aVM" = (/obj/structure/flora/ausbushes/fullgrass,/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) "aVN" = (/obj/effect/decal/cleanable/blood,/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aVP" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) -"aVQ" = (/obj/machinery/button/remote/blast_door{id = "merchantshuttle"; name = "Merchant Window Shutters"; pixel_x = 28; req_access = list(201)},/obj/structure/bed/chair/comfy/black,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) -"aVS" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) +"aVQ" = (/obj/machinery/button/remote/blast_door{name = "Merchant Window Shutters"; pixel_x = 28; id = "merchantshuttle"; req_access = list(201)},/obj/structure/bed/chair/comfy/black,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) +"aVS" = (/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) "aVT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) "aVU" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aVV" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aVW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/merchant_station) +"aVW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) "aVX" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aVY" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/effect/decal/cleanable/dirt,/obj/machinery/conveyor{dir = 1; id = "merchantbelt1"},/turf/simulated/floor/plating,/area/merchant_station) -"aVZ" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "lava"; name = "plating"},/area/wizard_station) -"aWa" = (/obj/structure/flora/ausbushes/grassybush,/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) -"aWb" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Experiment 97d"},/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) +"aVZ" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"aWa" = (/obj/structure/flora/ausbushes/grassybush,/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"aWb" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Experiment 97d"},/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) "aWc" = (/obj/item/caution,/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aWd" = (/obj/item/material/knife/ritual,/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aWh" = (/obj/structure/table/reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) @@ -2302,19 +2039,19 @@ "aWt" = (/obj/machinery/firealarm{dir = 1; pixel_y = 24},/turf/simulated/wall/r_wall,/area/merchant_station) "aWu" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) "aWw" = (/obj/machinery/alarm{dir = 4; pixel_x = -22},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) -"aWx" = (/obj/structure/closet,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/under/rank/psych/turtleneck{desc = "A turqouise turtleneck and a pair of dark blue slacks."; name = "turtleneck"},/turf/simulated/floor/tiled,/area/merchant_station) +"aWx" = (/obj/structure/closet,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/under/rank/psych/turtleneck{name = "turtleneck"; desc = "A turqouise turtleneck and a pair of dark blue slacks."},/turf/simulated/floor/tiled,/area/merchant_station) "aWy" = (/obj/structure/table/rack,/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plasteel{amount = 10},/turf/simulated/floor/tiled,/area/merchant_station) "aWA" = (/obj/structure/lattice,/obj/machinery/light/small,/turf/space,/area/merchant_station) -"aWC" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/simulated/floor/tiled,/area/merchant_station) +"aWC" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/simulated/floor/tiled,/area/merchant_station) "aWD" = (/obj/machinery/constructable_frame/machine_frame,/obj/machinery/light/small{dir = 1},/obj/machinery/firealarm{dir = 1; pixel_y = 24},/turf/simulated/floor/tiled,/area/merchant_station) -"aWE" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/random/powercell,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24; req_access = list(201)},/obj/structure/cable{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled,/area/merchant_station) +"aWE" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/random/powercell,/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24; req_access = list(201)},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled,/area/merchant_station) "aWF" = (/obj/machinery/suit_storage_unit/standard_unit{req_access = list(201)},/turf/simulated/floor/tiled,/area/merchant_station) "aWG" = (/obj/structure/extinguisher_cabinet{pixel_x = -26},/obj/structure/flora/pottedplant/minitree,/turf/simulated/floor/tiled,/area/merchant_station) "aWH" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) "aWI" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aWJ" = (/obj/structure/table/rack,/obj/item/stack/material/wood/fifty,/obj/item/stack/material/wood/fifty,/obj/item/stack/material/wood/fifty,/obj/item/stack/material/wood/fifty,/turf/simulated/floor/tiled,/area/merchant_station) -"aWN" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) -"aWO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aWN" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) +"aWO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aWP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) "aWQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Maintenance"; req_access = list(201)},/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) "aWR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) @@ -2328,11 +2065,11 @@ "aXa" = (/obj/structure/table/rack,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/turf/simulated/floor/tiled,/area/merchant_station) "aXb" = (/obj/structure/table/rack,/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/turf/simulated/floor/plating,/area/merchant_station) "aXc" = (/obj/structure/closet,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/vox/vox_casual,/turf/simulated/floor/plating,/area/merchant_station) -"aXd" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aXd" = (/obj/structure/cable/blue{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) "aXe" = (/obj/structure/closet/crate,/obj/machinery/light/small{dir = 8},/obj/item/stack/material/glass{amount = 15},/obj/item/stack/material/plastic{amount = 10},/obj/item/stack/material/steel{amount = 10},/obj/item/device/floor_painter,/turf/simulated/floor/plating,/area/merchant_station) "aXf" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/tiled,/area/merchant_station) "aXh" = (/obj/structure/table/steel,/obj/item/storage/box/lights/mixed,/obj/item/reagent_containers/spray/cleaner,/turf/simulated/floor/plating,/area/merchant_station) -"aXi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) +"aXi" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) "aXj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aXk" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/obj/machinery/alarm{dir = 8; pixel_x = 25; req_one_access = list(201)},/turf/simulated/floor/tiled,/area/merchant_station) "aXl" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) @@ -2343,20 +2080,20 @@ "aXq" = (/obj/structure/closet/crate,/turf/simulated/floor/plating,/area/merchant_station) "aXr" = (/obj/random/trash,/turf/simulated/floor/plating,/area/merchant_station) "aXs" = (/obj/structure/table/rack,/obj/random/medical,/turf/simulated/floor/tiled,/area/merchant_station) -"aXt" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aXu" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aXv" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aXt" = (/obj/structure/cable/blue{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aXu" = (/obj/structure/cable/blue{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aXv" = (/obj/structure/cable/blue{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable/blue{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/plating/airless,/area/merchant_station) "aXw" = (/obj/structure/table/woodentable,/obj/item/material/ashtray/bronze,/obj/item/clothing/mask/smokable/cigarette/cigar/havana,/turf/simulated/floor/tiled,/area/merchant_station) -"aXx" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled,/area/merchant_station) -"aXy" = (/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/power/smes/buildable{RCon_tag = null; charge = 2.5e+006; input_attempt = 1; input_level = 250000; output_attempt = 1; output_level = 250000},/turf/simulated/floor/plating,/area/merchant_station) -"aXz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/merchant_station) -"aXA" = (/obj/structure/extinguisher_cabinet{pixel_y = 28},/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/merchant_station) +"aXx" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/blue{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled,/area/merchant_station) +"aXy" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/power/smes/buildable{charge = 2.5e+06; input_attempt = 1; input_level = 250000; output_attempt = 1; output_level = 250000; RCon_tag = null},/turf/simulated/floor/plating,/area/merchant_station) +"aXz" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/merchant_station) +"aXA" = (/obj/structure/extinguisher_cabinet{pixel_y = 28},/obj/machinery/light/small{dir = 1},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/tiled,/area/merchant_station) "aXB" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/plating,/area/merchant_station) -"aXC" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) -"aXD" = (/obj/random/trash,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/merchant_station) -"aXE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/merchant_station) -"aXF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aXG" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/merchant_station) +"aXC" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) +"aXD" = (/obj/random/trash,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/merchant_station) +"aXE" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/merchant_station) +"aXF" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aXG" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/merchant_station) "aXH" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/tiled,/area/merchant_station) "aXI" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor/plating,/area/merchant_station) "aXJ" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/merchant_station) @@ -2366,49 +2103,48 @@ "aXN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aXO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock{name = "Toilet"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aXP" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) -"aXR" = (/obj/machinery/power/tracker,/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aXS" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aXU" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/power/solar_control/autostart,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) -"aXV" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/bed/chair/comfy/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aXW" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/merchant_station) +"aXR" = (/obj/machinery/power/tracker,/obj/structure/cable/blue{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aXS" = (/obj/structure/cable/blue{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable/blue{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable/blue{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aXU" = (/obj/structure/cable/blue{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/power/solar_control/autostart,/obj/structure/cable/blue{icon_state = "0-8"; d2 = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) +"aXV" = (/obj/structure/cable/blue{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/bed/chair/comfy/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aXW" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable/blue{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable/blue{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/tiled,/area/merchant_station) "aXX" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) -"aXY" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/merchant_station) -"aXZ" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/merchant_station) -"aYa" = (/obj/machinery/door/airlock/maintenance{name = "Solar Array"; req_access = list(201)},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aYb" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aYc" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aYd" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/merchant_station) +"aXY" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/plating,/area/merchant_station) +"aXZ" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/merchant_station) +"aYa" = (/obj/machinery/door/airlock/maintenance{name = "Solar Array"; req_access = list(201)},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aYb" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aYc" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aYd" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/merchant_station) "aYe" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/meter,/turf/simulated/floor/tiled,/area/merchant_station) -"aYf" = (/obj/machinery/atmospherics/omni/filter{active_power_usage = 2500; tag_east = 1; tag_south = 4; tag_west = 2},/turf/simulated/floor/plating,/area/merchant_station) +"aYf" = (/obj/machinery/atmospherics/omni/filter{tag_south = 4; tag_east = 1; tag_west = 2; active_power_usage = 2500},/turf/simulated/floor/plating,/area/merchant_station) "aYg" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aYh" = (/obj/machinery/atmospherics/omni/filter{tag_east = 1; tag_south = 3; tag_west = 2},/turf/simulated/floor/tiled,/area/merchant_station) +"aYh" = (/obj/machinery/atmospherics/omni/filter{tag_south = 3; tag_east = 1; tag_west = 2},/turf/simulated/floor/tiled,/area/merchant_station) "aYi" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/red{dir = 9},/turf/simulated/floor/plating,/area/merchant_station) "aYj" = (/obj/machinery/atmospherics/binary/passive_gate/on{dir = 1},/turf/simulated/floor/plating,/area/merchant_station) "aYk" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/item/tank/emergency/oxygen/double,/turf/simulated/floor/plating,/area/merchant_station) -"aYl" = (/obj/machinery/shower{dir = 4; pixel_x = 5},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/machinery/door/window,/turf/simulated/floor/tiled/freezer,/area/merchant_station) +"aYl" = (/obj/machinery/shower{dir = 4; pixel_x = 5},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 1; health = 1e+06},/obj/machinery/door/window,/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aYm" = (/turf/simulated/floor/tiled/freezer,/area/merchant_station) -"aYn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/mob/living/simple_animal/tindalos{name = "Eddy"},/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aYo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/extinguisher_cabinet{pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/junction{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) "aYp" = (/obj/effect/decal/cleanable/dirt,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aYq" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aYr" = (/obj/machinery/door/airlock/glass{name = "Restroom"},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aYs" = (/obj/machinery/firealarm{pixel_y = 26},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/trim/wood,/area/merchant_station) "aYu" = (/obj/machinery/computer/arcade,/turf/simulated/floor/trim/wood,/area/merchant_station) -"aYv" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/obj/machinery/chemical_dispenser/bar_coffee/full,/turf/simulated/floor/trim/carpet,/area/merchant_station) +"aYv" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) "aYw" = (/obj/structure/bed/chair/comfy/brown,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aYx" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/simulated/floor/trim/carpet,/area/merchant_station) -"aYy" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aYz" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aYy" = (/obj/structure/cable/blue{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aYz" = (/obj/structure/cable/blue{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable/blue{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) "aYA" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/blue,/turf/simulated/floor/plating,/area/merchant_station) -"aYB" = (/obj/machinery/power/smes/buildable{RCon_tag = null; charge = 2.5e+006; input_attempt = 1; input_level = 250000; output_attempt = 1; output_level = 250000},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/merchant_station) -"aYC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/merchant_station) -"aYD" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/merchant_station) +"aYB" = (/obj/machinery/power/smes/buildable{charge = 2.5e+06; input_attempt = 1; input_level = 250000; output_attempt = 1; output_level = 250000; RCon_tag = null},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/merchant_station) +"aYC" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/merchant_station) +"aYD" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/merchant_station) "aYE" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/plating,/area/merchant_station) "aYF" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall,/area/merchant_station) "aYG" = (/obj/machinery/light/small,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) "aYH" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/merchant_station) "aYI" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/plating,/area/merchant_station) -"aYJ" = (/obj/machinery/atmospherics/omni/mixer{active_power_usage = 2500; tag_east = 1; tag_east_con = 0.21; tag_south = 2; tag_west = 1; tag_west_con = 0.79},/turf/simulated/floor/plating,/area/merchant_station) +"aYJ" = (/obj/machinery/atmospherics/omni/mixer{tag_east_con = 0.21; tag_west_con = 0.79; tag_south = 2; tag_east = 1; tag_west = 1; active_power_usage = 2500},/turf/simulated/floor/plating,/area/merchant_station) "aYK" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/plating,/area/merchant_station) "aYL" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plating,/area/merchant_station) "aYM" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/merchant_station) @@ -2433,13 +2169,13 @@ "aZg" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aZh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aZi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/merchant_station) -"aZj" = (/obj/machinery/door/airlock{id_tag = "Dormitory 1"; name = "Dorm"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) +"aZj" = (/obj/machinery/door/airlock{name = "Dorm"; id_tag = "Dormitory 1"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aZk" = (/obj/structure/sign/poster,/turf/simulated/wall,/area/merchant_station) "aZl" = (/obj/structure/flora/pottedplant/large,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/wood,/area/merchant_station) -"aZn" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 4},/obj/machinery/media/jukebox,/turf/simulated/floor/trim/wood,/area/merchant_station) +"aZn" = (/obj/structure/window/reinforced{dir = 1; health = 1e+06},/obj/structure/window/reinforced{dir = 4},/obj/machinery/media/jukebox,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZo" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/trim/carpet,/area/merchant_station) -"aZp" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aZp" = (/obj/structure/cable/blue{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable/blue{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable/blue{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) "aZq" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/merchant_station) "aZr" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/merchant_station) "aZs" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 9},/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/tank/nitrogen,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/merchant_station) @@ -2450,7 +2186,7 @@ "aZx" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor/tiled,/area/merchant_station) "aZy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/table/woodentable,/obj/random/action_figure,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/bed,/obj/structure/curtain/open/bed,/obj/item/bedsheet/blue,/turf/simulated/floor/trim/carpet,/area/merchant_station) -"aZA" = (/obj/structure/holostool,/turf/simulated/floor/trim/wood,/area/merchant_station) +"aZA" = (/obj/item/stool/padded,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZB" = (/obj/structure/table/woodentable,/obj/machinery/microwave{pixel_y = 5},/obj/machinery/light{dir = 4},/obj/structure/sign/warning/smoking{pixel_x = 32},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZC" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aZD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/freezer,/area/merchant_station) @@ -2461,24 +2197,24 @@ "aZI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZJ" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZK" = (/obj/structure/table/woodentable,/obj/item/material/ashtray,/obj/item/clothing/mask/smokable/cigarette/cigar/havana,/obj/machinery/light{dir = 8},/obj/item/music_tape_box/classic,/turf/simulated/floor/trim/wood,/area/merchant_station) -"aZL" = (/obj/structure/holostool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/wood,/area/merchant_station) +"aZL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/stool/padded,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZM" = (/obj/structure/table/woodentable,/obj/item/storage/box/glasses/pint,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZN" = (/obj/item/modular_computer/console/preset/civilian,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZO" = (/obj/structure/table/woodentable,/turf/simulated/floor/trim/carpet/blue,/area/merchant_station) -"aZP" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Wardrobe"},/obj/item/clothing/shoes/black,/obj/item/clothing/under/overalls,/obj/item/clothing/under/skirt,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/trim/carpet/blue,/area/merchant_station) +"aZP" = (/obj/structure/closet{name = "Wardrobe"; icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/shoes/black,/obj/item/clothing/under/overalls,/obj/item/clothing/under/skirt,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/trim/carpet/blue,/area/merchant_station) "aZQ" = (/obj/machinery/washing_machine,/turf/simulated/floor/tiled,/area/merchant_station) -"aZR" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Wardrobe"},/obj/item/clothing/shoes/leather,/obj/item/clothing/under/blazer,/obj/item/clothing/under/lawyer/black,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) +"aZR" = (/obj/structure/closet{name = "Wardrobe"; icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/shoes/leather,/obj/item/clothing/under/blazer,/obj/item/clothing/under/lawyer/black,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZS" = (/obj/structure/table/woodentable,/obj/random/toy,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZT" = (/obj/structure/table/woodentable,/obj/machinery/newscaster{pixel_x = -28},/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/trim/wood,/area/merchant_station) -"aZU" = (/obj/structure/holostool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/wood,/area/merchant_station) +"aZU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/stool/padded,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZW" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZX" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/trim/wood,/area/merchant_station) -"aZY" = (/obj/machinery/door/airlock/centcom{name = "Garage"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular/singulo{density = 0; icon_state = "pdoor0"; id = "standardrescue"; name = "Garage"; opacity = 0},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/rescue_base/base) +"aZY" = (/obj/machinery/door/airlock/centcom{name = "Garage"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular/singulo{name = "Garage"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "standardrescue"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "baa" = (/obj/structure/bookcase{name = "bookcase (Adult)"},/turf/simulated/floor/trim/wood,/area/merchant_station) "bab" = (/obj/structure/bookcase/manuals/engineering,/turf/simulated/floor/trim/wood,/area/merchant_station) -"bac" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"bag" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/north,/area/space) +"bac" = (/obj/structure/cable/blue{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable/blue{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) +"bag" = (/obj/effect/step_trigger/thrower{name = "thrower_leftnostop"; affect_ghosts = 1},/turf/space/transit/north,/area/space) "bah" = (/turf/space/transit/east,/area/shuttle/research/transit) "bai" = (/turf/space/transit/north,/area/shuttle/mining/transit) "baj" = (/obj/effect/shuttle_landmark/research/internim,/turf/space/transit/east,/area/shuttle/research/transit) @@ -2486,20 +2222,20 @@ "bal" = (/turf/space/transit/east,/area/shuttle/constructionsite/transit) "bam" = (/obj/effect/shuttle_landmark/engie/internim,/turf/space/transit/east,/area/shuttle/constructionsite/transit) "bax" = (/obj/item/wrench,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"bbb" = (/obj/structure/table/rack,/obj/item/storage/box/shotgun/stunshells,/obj/item/storage/box/shotgun/stunshells,/obj/item/storage/box/shotgun/beanbags,/obj/item/storage/box/shotgun/beanbags,/obj/item/storage/box/shotgun/slugs,/obj/item/storage/box/shotgun/slugs,/obj/item/storage/box/shotgun/shells,/obj/item/storage/box/shotgun/shells,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"bcb" = (/turf/simulated/shuttle/wall/merchant{dir = 6; icon_state = "merchwall"},/area/shuttle/merchant/home) +"bbb" = (/obj/structure/table/rack,/obj/item/storage/box/shotgun/stunshells,/obj/item/storage/box/shotgun/stunshells,/obj/item/storage/box/shotgun/beanbags,/obj/item/storage/box/shotgun/beanbags,/obj/item/storage/box/shotgun/slugs,/obj/item/storage/box/shotgun/slugs,/obj/item/storage/box/shotgun/shells,/obj/item/storage/box/shotgun/shells,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"bcb" = (/turf/simulated/shuttle/wall/merchant{icon_state = "merchwall"; dir = 6},/area/shuttle/merchant/home) "bcG" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 10},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) -"bdb" = (/turf/simulated/shuttle/wall/merchant{dir = 8; icon_state = "merchwall"},/area/shuttle/merchant/home) -"beb" = (/turf/simulated/shuttle/wall/merchant{dir = 4; icon_state = "merchwall"},/area/shuttle/merchant/home) -"bfb" = (/turf/simulated/shuttle/wall/merchant{dir = 10; icon_state = "merchwall"},/area/shuttle/merchant/home) +"bdb" = (/turf/simulated/shuttle/wall/merchant{icon_state = "merchwall"; dir = 8},/area/shuttle/merchant/home) +"beb" = (/turf/simulated/shuttle/wall/merchant{icon_state = "merchwall"; dir = 4},/area/shuttle/merchant/home) +"bfb" = (/turf/simulated/shuttle/wall/merchant{icon_state = "merchwall"; dir = 10},/area/shuttle/merchant/home) "bgb" = (/obj/structure/shuttle/engine/heater{dir = 1},/turf/simulated/shuttle/wall/merchant{icon_state = "merchwall"},/area/shuttle/merchant/home) "bhb" = (/turf/simulated/shuttle/wall/merchant{icon_state = "merchwall_straight"},/area/shuttle/merchant/home) "bib" = (/turf/space,/turf/simulated/shuttle/wall/corner/merchant/sw,/area/shuttle/merchant/home) "bjb" = (/turf/simulated/shuttle/wall/merchant{icon_state = "merchwall15"},/area/shuttle/merchant/home) "bjn" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/tdome) -"bjz" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/table/reinforced,/obj/item/modular_computer/laptop/preset/custom_loadout/advanced,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) +"bjz" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/table/reinforced,/obj/item/modular_computer/laptop/preset/custom_loadout/advanced,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) "bkb" = (/turf/simulated/shuttle/wall/merchant{icon_state = "merchwall_t"},/area/shuttle/merchant/home) -"blb" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "merchantshuttle1"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/miningpod,/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"blb" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; id = "merchantshuttle1"},/obj/structure/window/miningpod,/turf/simulated/floor/plating,/area/shuttle/merchant/home) "blq" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/skipjack_station/base) "bmb" = (/turf/space,/turf/simulated/shuttle/wall/corner/merchant/se,/area/shuttle/merchant/home) "bnb" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/largecrate,/obj/random/loot,/obj/effect/floor_decal/corner/green/three_quarters,/obj/random/loot,/turf/simulated/floor/tiled/dark,/area/merchant_station) @@ -2512,42 +2248,42 @@ "brb" = (/obj/structure/closet/crate,/obj/effect/floor_decal/industrial/outline/grey,/obj/random/loot,/obj/random/loot,/obj/random/contraband,/turf/simulated/floor/tiled/dark,/area/merchant_station) "bsb" = (/obj/structure/closet/crate,/obj/machinery/door/window/brigdoor/westright/merchant{req_access = list(201)},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "bsd" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 4},/area/tdome) -"bsj" = (/obj/effect/floor_decal/corner/grey{dir = 6},/obj/effect/floor_decal/corner/grey{dir = 9},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"bsC" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/table/reinforced,/obj/item/device/camera,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"btb" = (/turf/simulated/shuttle/wall/merchant{dir = 4; icon_state = "merchwall_t"},/area/shuttle/merchant/home) +"bsj" = (/obj/effect/floor_decal/corner/grey{dir = 6},/obj/effect/floor_decal/corner/grey{dir = 9},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"bsC" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/table/reinforced,/obj/item/device/camera,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"btb" = (/turf/simulated/shuttle/wall/merchant{icon_state = "merchwall_t"; dir = 4},/area/shuttle/merchant/home) "btZ" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/thunderfield) "bub" = (/obj/structure/table/rack,/obj/random/contraband,/obj/random/loot,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/decal/cleanable/dirt,/obj/item/cane/concealed,/turf/simulated/floor/tiled/dark,/area/merchant_station) "buF" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/centcom/control) "bvb" = (/obj/structure/closet/crate,/obj/effect/floor_decal/industrial/outline/grey,/obj/random/loot,/obj/random/loot,/turf/simulated/floor/tiled/dark,/area/merchant_station) -"bwb" = (/turf/simulated/shuttle/wall/merchant{dir = 8; icon_state = "merchwall_t"},/area/shuttle/merchant/home) -"bxb" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/miningpod,/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"bwb" = (/turf/simulated/shuttle/wall/merchant{icon_state = "merchwall_t"; dir = 8},/area/shuttle/merchant/home) +"bxb" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 8; id = "merchantshuttle"},/obj/structure/window/miningpod,/turf/simulated/floor/plating,/area/shuttle/merchant/home) "bxE" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_c"; dir = 8},/area/shuttle/escape/centcom) -"bxU" = (/obj/item/stool/padded,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"byb" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/miningpod,/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"bxU" = (/obj/item/stool/padded,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"byb" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 4; id = "merchantshuttle"},/obj/structure/window/miningpod,/turf/simulated/floor/plating,/area/shuttle/merchant/home) "byD" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "byW" = (/obj/structure/table/woodentable{dir = 5},/obj/item/material/ashtray/bronze{pixel_x = -1; pixel_y = 1},/obj/item/reagent_containers/rag,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) "bzb" = (/obj/structure/table/steel,/obj/item/cell/super/empty,/obj/item/cell/hyper/empty,/turf/simulated/floor/tiled,/area/merchant_station) -"bzR" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/structure/table/reinforced,/obj/item/tape_roll,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) +"bzR" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/structure/table/reinforced,/obj/item/tape_roll,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) "bAb" = (/obj/structure/table/rack,/obj/random/loot,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{pixel_y = 22},/turf/simulated/floor/tiled,/area/merchant_station) "bBb" = (/obj/structure/closet/crate,/obj/machinery/light{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/random/loot,/obj/random/loot,/obj/structure/disposalpipe/segment{dir = 4},/obj/random/loot,/turf/simulated/floor/tiled,/area/merchant_station) "bCb" = (/obj/structure/table/reinforced,/obj/random/loot,/obj/effect/floor_decal/corner/brown{dir = 9},/obj/machinery/recharger,/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) -"bCe" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_d"},/area/shuttle/syndicate_elite/mothership) +"bCe" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 8},/area/shuttle/syndicate_elite/mothership) "bDb" = (/obj/effect/floor_decal/corner/brown{dir = 6},/obj/machinery/suit_storage_unit/standard_unit{req_access = list(201)},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "bDA" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/centcom/living) -"bEb" = (/turf/simulated/shuttle/wall/merchant{dir = 1; icon_state = "merchwall_t"},/area/shuttle/merchant/home) +"bEb" = (/turf/simulated/shuttle/wall/merchant{icon_state = "merchwall_t"; dir = 1},/area/shuttle/merchant/home) "bEv" = (/obj/structure/spider/stickyweb,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "bFb" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access = list(201)},/turf/simulated/floor/trim/wood,/area/shuttle/merchant/home) "bGb" = (/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/obj/structure/closet/secure_closet{name = "merchant's locker"; req_access = list(201)},/obj/machinery/light{dir = 1},/obj/item/gun/energy/gun/taser,/turf/simulated/floor/trim/wood,/area/shuttle/merchant/home) "bHb" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/item/device/radio/intercom{pixel_y = 22},/turf/simulated/floor/tiled,/area/merchant_station) "bIb" = (/turf/space,/turf/simulated/shuttle/wall/corner/merchant/ne,/area/shuttle/merchant/home) "bJb" = (/obj/item/modular_computer/console/preset/civilian,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) -"bJk" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_t"},/area/shuttle/administration/centcom) +"bJk" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/shuttle/administration/centcom) "bJL" = (/obj/structure/bed/chair/wood{dir = 4},/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) "bKb" = (/obj/machinery/computer/shuttle_control/multi/merchant,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) "bKO" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/centcom/holding) "bLb" = (/turf/space,/turf/simulated/shuttle/wall/corner/merchant/nw,/area/shuttle/merchant/home) -"bLF" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"bMb" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/miningpod,/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"bLF" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"bMb" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 2; id = "merchantshuttle"},/obj/structure/window/miningpod,/turf/simulated/floor/plating,/area/shuttle/merchant/home) "bNb" = (/obj/structure/table/rack,/obj/item/beartrap,/obj/item/bikehorn,/turf/simulated/floor/tiled/airless,/area/merchant_station) "bNv" = (/obj/machinery/papershredder,/turf/simulated/floor/trim/carpet/purple,/area/thunderfield) "bOb" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/stack/cable_coil/random,/turf/simulated/floor/tiled,/area/merchant_station) @@ -2563,312 +2299,308 @@ "bVr" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/alien) "bVu" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 8},/area/wizard_station) "bWb" = (/obj/structure/table/rack,/obj/machinery/door/window/brigdoor/eastright/merchant{req_access = list(201)},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) -"bXb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/storage/fancy/cigarettes=10,/obj/item/storage/box/matches=10,/obj/item/flame/lighter/zippo=4,/obj/item/clothing/mask/smokable/cigarette/cigar/havana=2)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"bXb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; products = list(/obj/item/storage/fancy/cigarettes=10, /obj/item/storage/box/matches=10, /obj/item/flame/lighter/zippo=4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana=2); prices = list()},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "bXi" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/syndicate_mothership/elite_squad) "bYb" = (/obj/structure/closet/crate,/obj/item/crowbar,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"bZb" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) -"cab" = (/obj/item/modular_computer/console/preset/supply,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) -"cbb" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) -"cbY" = (/obj/machinery/door/window/brigdoor{dir = 1},/obj/effect/floor_decal/corner/grey{dir = 9},/obj/effect/floor_decal/corner/grey{dir = 6},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"ccb" = (/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) -"cdb" = (/obj/machinery/computer/robotics,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) -"ceb" = (/obj/item/modular_computer/console/preset/medical,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) -"ceG" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/corner/grey{dir = 9},/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"cfb" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) -"cfk" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/machinery/vending/security,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"cgb" = (/obj/structure/table/reinforced,/obj/item/card/id/captains_spare,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) -"chb" = (/obj/structure/table/reinforced,/obj/item/device/pda/captain,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) -"chZ" = (/turf/simulated/shuttle/wall/syndi{dir = 6; icon_state = "syndiwall"},/area/shuttle/deathsquad/centcom) -"cib" = (/obj/item/modular_computer/console/preset/civilian/professional,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) -"cjb" = (/obj/item/modular_computer/console/preset/security,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/control) -"cjW" = (/obj/effect/floor_decal/corner/grey{dir = 9},/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"ckb" = (/obj/machinery/door/airlock/centcom{name = "Arrivals Processing"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/centcom/holding) -"clb" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"clg" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_v"},/area/shuttle/administration/centcom) -"cmb" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cnb" = (/obj/structure/bed,/obj/item/bedsheet/orange,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cnj" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_c"},/area/shuttle/administration/centcom) -"cob" = (/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"bZb" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) +"cab" = (/obj/item/modular_computer/console/preset/supply,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) +"cbb" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) +"cbY" = (/obj/machinery/door/window/brigdoor{dir = 1},/obj/effect/floor_decal/corner/grey{dir = 9},/obj/effect/floor_decal/corner/grey{dir = 6},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"ccb" = (/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) +"cdb" = (/obj/machinery/computer/robotics,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) +"ceb" = (/obj/item/modular_computer/console/preset/medical,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) +"ceG" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/corner/grey{dir = 9},/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"cfb" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) +"cfk" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/machinery/vending/security,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"cgb" = (/obj/structure/table/reinforced,/obj/item/card/id/captains_spare,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) +"chb" = (/obj/structure/table/reinforced,/obj/item/device/pda/captain,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) +"chZ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/shuttle/deathsquad/centcom) +"cib" = (/obj/item/modular_computer/console/preset/civilian/professional,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) +"cjb" = (/obj/item/modular_computer/console/preset/security,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/control) +"cjW" = (/obj/effect/floor_decal/corner/grey{dir = 9},/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"ckb" = (/obj/machinery/door/airlock/centcom{name = "Arrivals Processing"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/centcom/holding) +"clb" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"clg" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_v"; dir = 8},/area/shuttle/administration/centcom) +"cmb" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cnb" = (/obj/structure/bed,/obj/item/bedsheet/orange,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cnj" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_c"; dir = 1},/area/shuttle/administration/centcom) +"cob" = (/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "con" = (/obj/structure/spider/stickyweb,/turf/simulated/floor/trim/wood,/area/thunderfield) "cow" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/centcom/holding) -"cpb" = (/obj/structure/table/steel,/obj/item/device/flashlight/lamp/brown,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cqb" = (/obj/structure/bed,/obj/item/bedsheet/purple,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cra" = (/obj/structure/barricade/material{layer = 6},/turf/simulated/wall/r_wall,/area/thunderfield) -"crb" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"crY" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/effect/floor_decal/corner/red{dir = 10},/obj/structure/filingcabinet,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"csb" = (/obj/structure/largecrate/animal/cow,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"ctb" = (/obj/structure/closet/crate/medical,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cub" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cvb" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cwb" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cxb" = (/obj/item/stool/padded,/obj/effect/landmark/start/antags/vox,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"cpb" = (/obj/structure/table/steel,/obj/item/device/flashlight/lamp/brown,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cqb" = (/obj/structure/bed,/obj/item/bedsheet/purple,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cra" = (/obj/structure/barricade/material,/turf/simulated/wall/r_wall,/area/thunderfield) +"crb" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"crY" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/effect/floor_decal/corner/red{dir = 10},/obj/structure/filingcabinet,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"csb" = (/obj/structure/largecrate/animal/cow,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"ctb" = (/obj/structure/closet/crate/medical,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cub" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cvb" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cwb" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cxb" = (/obj/item/stool/padded,/obj/effect/landmark/start/antags/vox,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "cxk" = (/obj/structure/table/gamblingtable,/obj/item/clothing/head/collectable/HoS,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) -"cyb" = (/obj/structure/table/gamblingtable,/obj/item/deck/cards,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"czb" = (/obj/item/stool/padded,/obj/effect/landmark/start/antags/vox,/turf/simulated/floor/trim/wood/broken0{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"czx" = (/obj/machinery/door/airlock/glass_security{name = "Holding Cell"; req_access = list(2)},/obj/effect/floor_decal/corner/grey{dir = 6},/obj/effect/floor_decal/corner/grey{dir = 9},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"cAb" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cBb" = (/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"cyb" = (/obj/structure/table/gamblingtable,/obj/item/deck/cards,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"czb" = (/obj/item/stool/padded,/obj/effect/landmark/start/antags/vox,/turf/simulated/floor/trim/wood/broken0{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"czx" = (/obj/machinery/door/airlock/glass_security{name = "Holding Cell"; req_access = list(2)},/obj/effect/floor_decal/corner/grey{dir = 6},/obj/effect/floor_decal/corner/grey{dir = 9},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"cAb" = (/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cBb" = (/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "cBO" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/wizard_station) -"cCb" = (/obj/structure/table/woodentable,/obj/item/storage/box/glasses,/obj/machinery/light/small{dir = 1},/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cDb" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_alc/full{pixel_y = 2},/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cEb" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cFb" = (/obj/structure/table/steel,/obj/item/paper,/obj/item/pen,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cFk" = (/obj/machinery/door/window/westright{dir = 1; name = "Medbay Reception"; req_access = list(5)},/obj/structure/table/standard{name = "plastic table frame"},/obj/item/device/radio/phone/medbay{name = "reception emergency phone"; pixel_x = -5},/obj/effect/floor_decal/corner/pink{dir = 9},/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"cGb" = (/obj/structure/closet,/obj/random/contraband,/obj/random/contraband,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cHb" = (/obj/structure/closet/crate,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/crowbar,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"cCb" = (/obj/structure/table/woodentable,/obj/item/storage/box/glasses,/obj/machinery/light/small{dir = 1},/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cDb" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_alc/full{pixel_y = 2},/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cEb" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cFb" = (/obj/structure/table/steel,/obj/item/paper,/obj/item/pen,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cFk" = (/obj/machinery/door/window/westright{name = "Medbay Reception"; dir = 1; req_access = list(5)},/obj/structure/table/standard{name = "plastic table frame"},/obj/item/device/radio/phone/medbay{name = "reception emergency phone"; pixel_x = -5},/obj/effect/floor_decal/corner/pink{dir = 9},/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) +"cGb" = (/obj/structure/closet,/obj/random/contraband,/obj/random/contraband,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cHb" = (/obj/structure/closet/crate,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/reagent_containers/syringe/drugs,/obj/item/crowbar,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "cIb" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"cIp" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "rescuebridge"; name = "Bridge Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws4"},/turf/simulated/floor/plating,/area/rescue_base/start) -"cJb" = (/obj/structure/table/standard,/obj/item/storage/firstaid/surgery,/obj/item/storage/firstaid/combat,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"cIp" = (/obj/machinery/door/blast/regular{name = "Bridge Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "rescuebridge"},/obj/structure/window/syndi{icon_state = "ws4"},/turf/simulated/floor/plating,/area/rescue_base/start) +"cJb" = (/obj/structure/table/standard,/obj/item/storage/firstaid/surgery,/obj/item/storage/firstaid/combat,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "cJk" = (/obj/structure/window/syndi{icon_state = "ws2"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) -"cKb" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cLb" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/trim/wood/broken0{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"cKb" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cLb" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/trim/wood/broken0{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "cLc" = (/obj/item/flame/lighter/zippo,/turf/simulated/floor/tiled/dark,/area/thunderfield) -"cMb" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cNb" = (/obj/structure/table/woodentable,/obj/item/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"cMb" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cNb" = (/obj/structure/table/woodentable,/obj/item/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "cNv" = (/obj/machinery/vending/boozeomat{req_access = list()},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) -"cOb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/medic,/obj/item/clothing/head/helmet/space/vox/medic,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cPb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/pressure,/obj/item/clothing/head/helmet/space/vox/pressure,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"cOb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/medic,/obj/item/clothing/head/helmet/space/vox/medic,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cPb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/pressure,/obj/item/clothing/head/helmet/space/vox/pressure,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "cPK" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/centcom/specops) -"cQb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox,/obj/item/clothing/head/helmet/space/vox,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cRb" = (/obj/effect/decal/mecha_wreckage/hoverpod,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cRI" = (/obj/effect/floor_decal/corner/grey{dir = 9},/obj/effect/floor_decal/corner/grey{dir = 6},/obj/structure/bed/chair/office/dark,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"cRM" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"cSb" = (/obj/structure/flora/pottedplant/ugly,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"cQb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox,/obj/item/clothing/head/helmet/space/vox,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cRb" = (/obj/effect/decal/mecha_wreckage/hoverpod,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cRI" = (/obj/effect/floor_decal/corner/grey{dir = 9},/obj/effect/floor_decal/corner/grey{dir = 6},/obj/structure/bed/chair/office/dark,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"cRM" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"cSb" = (/obj/structure/flora/pottedplant/ugly,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "cSs" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/rescue_base/base) -"cTb" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/closet,/obj/random/clothing/hat,/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cUb" = (/obj/structure/closet/crate/trashcart,/obj/random/drinkbottle,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cVb" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cWb" = (/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"cTb" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/closet,/obj/random/clothing/hat,/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cUb" = (/obj/structure/closet/crate/trashcart,/obj/random/drinkbottle,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cVb" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cWb" = (/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "cWA" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"},/area/shuttle/syndicate_elite/mothership) -"cWZ" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/structure/noticeboard{pixel_y = -32},/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"cXb" = (/obj/structure/table/woodentable,/obj/item/flame/lighter/zippo,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cYb" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bottle/small/beer,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"cZb" = (/obj/structure/table/woodentable,/obj/item/pizzabox/meat,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"cWZ" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/structure/noticeboard{pixel_y = -32},/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"cXb" = (/obj/structure/table/woodentable,/obj/item/flame/lighter/zippo,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cYb" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/bottle/small/beer,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"cZb" = (/obj/structure/table/woodentable,/obj/item/pizzabox/meat,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "cZM" = (/obj/structure/flora/tree/dead/deadtree_3,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"dab" = (/obj/structure/table/woodentable,/obj/random/cash,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dba" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/structure/table/reinforced,/obj/item/paper_bin,/obj/item/pen/blue,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"dbb" = (/obj/structure/table/woodentable,/obj/random/handgun,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dcb" = (/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dcG" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) +"dab" = (/obj/structure/table/woodentable,/obj/random/cash,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dba" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/structure/table/reinforced,/obj/item/paper_bin,/obj/item/pen/blue,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"dbb" = (/obj/structure/table/woodentable,/obj/random/handgun,/turf/unsimulated/floor{icon_state = "lino"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dcb" = (/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dcK" = (/turf/unsimulated/wall{icon_state = "riveted_s"; dir = 4},/area/tdome) "dcR" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) -"ddb" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"ddb" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "ddX" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/syndicate_mothership/elite_squad) -"deb" = (/turf/simulated/floor/trim/wood/broken0{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"deR" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_t"},/area/rescue_base/start) -"dfb" = (/obj/item/stool/padded,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"deb" = (/turf/simulated/floor/trim/wood/broken0{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"deR" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/rescue_base/start) +"dfb" = (/obj/item/stool/padded,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dfJ" = (/obj/structure/flora/ausbushes/fullgrass,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) -"dgb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dhb" = (/obj/structure/table/rack/dark,/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"dgb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dhb" = (/obj/structure/table/rack/dark,/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dhY" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"},/area/shuttle/deathsquad/centcom) -"dib" = (/obj/structure/table/rack/dark,/obj/item/gun/launcher/alien/spikethrower,/obj/item/gun/launcher/alien/spikethrower,/obj/item/gun/launcher/alien/slugsling,/obj/item/gun/launcher/alien/slugsling,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"dib" = (/obj/structure/table/rack/dark,/obj/item/gun/launcher/alien/spikethrower,/obj/item/gun/launcher/alien/spikethrower,/obj/item/gun/launcher/alien/slugsling,/obj/item/gun/launcher/alien/slugsling,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dis" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/centcom/suppy) -"djb" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"djh" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/structure/table/reinforced,/obj/item/book/wiki/nt_regs,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"dkb" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dlb" = (/obj/item/broken_bottle,/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dmb" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dnb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/stealth,/obj/item/clothing/head/helmet/space/vox/stealth,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/glasses/hud/plain/thermal/monocle,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dnO" = (/obj/structure/flora/tree/dead/deadtree_0,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"dob" = (/obj/structure/table/rack/dark,/obj/random/projectile,/obj/random/projectile,/obj/random/ammo,/obj/random/ammo,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dpb" = (/obj/structure/table/rack/dark,/obj/item/gun/energy/sniperrifle,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/kinetic_accelerator,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dqb" = (/obj/effect/decal/cleanable/blood/oil,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"djb" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"djh" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/structure/table/reinforced,/obj/item/book/wiki/nt_regs,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"dkb" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dlb" = (/obj/item/broken_bottle,/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dmb" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "wood"; dir = 8; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dnb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/stealth,/obj/item/clothing/head/helmet/space/vox/stealth,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/glasses/hud/plain/thermal/monocle,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dob" = (/obj/structure/table/rack/dark,/obj/random/projectile,/obj/random/projectile,/obj/random/ammo,/obj/random/ammo,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dpb" = (/obj/structure/table/rack/dark,/obj/item/gun/energy/sniperrifle,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/kinetic_accelerator,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dqb" = (/obj/effect/decal/cleanable/blood/oil,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dqt" = (/obj/structure/table/woodentable{dir = 5},/obj/item/music_tape/custom,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "dqB" = (/turf/unsimulated/wall{icon_state = "riveted_s"},/area/centcom/specops) -"drb" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"drb" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "drJ" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/rescue_base/base) "drM" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 6},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) -"dsb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"dsb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dsG" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 1},/area/syndicate_mothership) -"dtb" = (/obj/structure/sink{dir = 1; pixel_y = 16},/obj/effect/decal/cleanable/blood/splatter,/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dtm" = (/turf/unsimulated/wall{icon_state = "riveted_15"},/area/space) +"dtb" = (/obj/structure/sink{dir = 1; pixel_y = 16},/obj/effect/decal/cleanable/blood/splatter,/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dto" = (/obj/item/stool/padded,/obj/item/clothing/head/collectable/petehat,/turf/simulated/floor/trim/carpet/purple,/area/thunderfield) "dtM" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/centcom/control) -"dub" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"duI" = (/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{dir = 5; icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"},/area/centcom/holding) -"dvb" = (/obj/machinery/shower{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dwb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dxb" = (/obj/structure/toilet{dir = 4},/obj/effect/landmark/start/antags/vox,/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dyb" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/tank/nitrogen,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dzb" = (/obj/effect/decal/cleanable/cobweb{dir = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dAb" = (/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) +"dub" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"duI" = (/obj/structure/window_frame/indestructible,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_rough"; dir = 5},/area/centcom/holding) +"dvb" = (/obj/machinery/shower{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dwb" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dxb" = (/obj/structure/toilet{dir = 4},/obj/effect/landmark/start/antags/vox,/turf/unsimulated/floor{icon_state = "freezerfloor"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dyb" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/tank/nitrogen,/turf/unsimulated/floor{icon_state = "asteroid"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dzb" = (/obj/effect/decal/cleanable/cobweb{dir = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dAb" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dAh" = (/obj/machinery/door/airlock/research,/turf/simulated/floor/tiled/dark,/area/thunderfield) -"dAL" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_b"},/area/shuttle/administration/centcom) -"dAQ" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{dir = 4; id = "CREED"; name = "Ready Room"},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"dBb" = (/obj/machinery/light/small{dir = 1},/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) +"dAL" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 4},/area/shuttle/administration/centcom) +"dAQ" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{name = "Ready Room"; dir = 4; id = "CREED"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"dBb" = (/obj/machinery/light/small{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dBq" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/thunderfield) -"dCb" = (/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"dCb" = (/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dCd" = (/obj/machinery/vending/cigars,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "dCg" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/alien) -"dDb" = (/obj/random/junk,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) +"dDb" = (/obj/random/junk,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dDZ" = (/obj/structure/flora/tree/dead/deadtree_3,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) -"dEb" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) +"dEb" = (/obj/structure/bed/chair,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dEs" = (/obj/structure/sign/warning/secure_area,/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/centcom/control) "dEM" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"dFb" = (/obj/machinery/computer/station_alert/all,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) +"dFb" = (/obj/machinery/computer/station_alert/all,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dFv" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/prison/solitary) -"dGb" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) +"dGb" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dGF" = (/obj/item/device/synthesized_instrument/guitar,/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"dHb" = (/obj/machinery/floodlight,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) +"dHb" = (/obj/machinery/floodlight,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dHf" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/wizard_station) "dHz" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/trim/carpet/red,/area/thunderfield) -"dIb" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "skipjack_base"; pixel_x = -25; pixel_y = -5},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"dIb" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; pixel_y = -5; frequency = 1380; id_tag = "skipjack_base"},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dIe" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/centcom/holding) "dIC" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"dJb" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "cult"; initial_gas = list("nitrogen"=103.984); name = "plating"},/area/skipjack_station/base) -"dKb" = (/obj/machinery/door/airlock/external{frequency = 1380; id_tag = "skipjack_base_hatch"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dLb" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) +"dJb" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dKb" = (/obj/machinery/door/airlock/external{frequency = 1380; req_access = list(150); id_tag = "skipjack_base_hatch"},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dLb" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) "dLe" = (/obj/effect/floor_decal/corner/beige{dir = 9},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) -"dMb" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dNb" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/base) -"dNg" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "cult"; name = "plating"},/area/wizard_station) -"dNv" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "syndieshutters"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws6"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"dMb" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dNb" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"; initial_gas = list(nitrogen=103.984)},/area/skipjack_station/base) +"dNg" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) +"dNv" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/obj/structure/window/syndi{icon_state = "ws6"},/turf/simulated/floor/plating,/area/syndicate_station/start) "dNE" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 4},/area/centcom/control) -"dOb" = (/obj/machinery/door/airlock/hatch{frequency = 1380; icon_state = "door_locked"; id_tag = "vox_northwest_lock"; locked = 1; name = "Ship External Access"; req_one_access = 150},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"dOb" = (/obj/machinery/door/airlock/hatch{name = "Ship External Access"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_one_access = 150; id_tag = "vox_northwest_lock"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "dOM" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 1},/area/centcom/specops) -"dPb" = (/obj/machinery/door/airlock/hatch{frequency = 1380; id_tag = "skipjack_shuttle_outer"; name = "Ship External Access"; req_one_access = 150},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"dQb" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "vox_west_sensor"; pixel_x = -8; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "vox_west_vent"},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"dRb" = (/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"dPb" = (/obj/machinery/door/airlock/hatch{name = "Ship External Access"; frequency = 1380; req_one_access = 150; id_tag = "skipjack_shuttle_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"dQb" = (/obj/machinery/airlock_sensor{pixel_x = -8; pixel_y = 25; frequency = 1380; id_tag = "vox_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "vox_west_vent"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"dRb" = (/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "dRO" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 9},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) -"dSb" = (/obj/machinery/computer/station_alert/all,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"dTb" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"dSb" = (/obj/machinery/computer/station_alert/all,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"dTb" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "dTJ" = (/obj/structure/bed/chair,/obj/structure/sign/poster{pixel_y = 32},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "dTW" = (/obj/structure/flora/tree/dead/deadtree_5,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"dUb" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"dVb" = (/obj/random/trash,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"dWb" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "skipjack_shuttle_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "skipjack_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"dWt" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) -"dXb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"dYb" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "vox_west_control"; pixel_x = 25; pixel_y = 8; req_access = list(150); tag_airpump = "vox_west_vent"; tag_chamber_sensor = "vox_west_sensor"; tag_exterior_door = "vox_northwest_lock"; tag_interior_door = "vox_southwest_lock"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "vox_west_vent"},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"dZb" = (/obj/machinery/light/small{dir = 8},/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"dUb" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"dVb" = (/obj/random/trash,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"dWb" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "skipjack_shuttle_pump"},/obj/machinery/airlock_sensor{pixel_x = 8; pixel_y = 25; frequency = 1380; id_tag = "skipjack_shuttle_sensor"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"dWt" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) +"dXb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"dYb" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = 25; pixel_y = 8; frequency = 1380; req_access = list(150); id_tag = "vox_west_control"; tag_exterior_door = "vox_northwest_lock"; tag_interior_door = "vox_southwest_lock"; tag_airpump = "vox_west_vent"; tag_chamber_sensor = "vox_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "vox_west_vent"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"dZb" = (/obj/machinery/light/small{dir = 8},/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "dZr" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/centcom/control) "dZG" = (/obj/effect/floor_decal/spline/fancy{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) -"eab" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"ebb" = (/obj/structure/bed/chair{dir = 1},/obj/item/clothing/head/pirate,/obj/effect/shuttle_landmark/skipjack/start,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"ecb" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/button/remote/blast_door{id = "skipjackshutters"; name = "remote shutter control"; pixel_x = 32; pixel_y = 32; req_access = list(150)},/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"edb" = (/obj/machinery/light/small{dir = 4},/obj/structure/table/steel,/obj/machinery/recharger,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eeb" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "skipjack_shuttle"; pixel_x = -25; pixel_y = 8; req_access = list(150)},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "skipjack_shuttle_pump"},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"eab" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"ebb" = (/obj/structure/bed/chair{dir = 1},/obj/item/clothing/head/pirate,/obj/effect/shuttle_landmark/skipjack/start,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"ecb" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_x = 32; pixel_y = 32; id = "skipjackshutters"; req_access = list(150)},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"edb" = (/obj/machinery/light/small{dir = 4},/obj/structure/table/steel,/obj/machinery/recharger,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eeb" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = -25; pixel_y = 8; frequency = 1380; req_access = list(150); id_tag = "skipjack_shuttle"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "skipjack_shuttle_pump"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "eed" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) -"eev" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{icon_state = "lava"; name = "plating"},/area/wizard_station) +"eev" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) "eeN" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/alien) "eeT" = (/obj/effect/floor_decal/spline/fancy{dir = 4},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) -"efb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"egb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{frequency = 1380; icon_state = "door_locked"; id_tag = "vox_southwest_lock"; locked = 1; name = "Ship External Access"; req_one_access = 150},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"ehb" = (/obj/structure/table/rack,/obj/item/clothing/glasses/hud/plain/thermal/monocle,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eib" = (/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"ejb" = (/obj/random/junk,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"efb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"egb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{name = "Ship External Access"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_one_access = 150; id_tag = "vox_southwest_lock"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"ehb" = (/obj/structure/table/rack,/obj/item/clothing/glasses/hud/plain/thermal/monocle,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eib" = (/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"ejb" = (/obj/random/junk,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "ejY" = (/obj/structure/table/rack,/obj/item/clothing/head/bowler,/turf/simulated/floor/trim/wood,/area/thunderfield) -"ekb" = (/obj/structure/table/rack,/obj/item/gun/launcher/alien/spikethrower,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"ekb" = (/obj/structure/table/rack,/obj/item/gun/launcher/alien/spikethrower,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "ekB" = (/obj/structure/bed/chair/wood{dir = 4},/turf/simulated/floor/trim/wood,/area/thunderfield) -"elb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{frequency = 1380; id_tag = "skipjack_shuttle_inner"; name = "Ship External Access"; req_one_access = 150},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"elb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{name = "Ship External Access"; frequency = 1380; req_one_access = 150; id_tag = "skipjack_shuttle_inner"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "eli" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/vessel/bottle/winesparkling,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) -"elB" = (/obj/machinery/door/blast/regular{dir = 4; id = "ASSAULT"; name = "Assault Armor Storage"},/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/specops) -"elK" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_b"},/area/syndicate_mothership/ninja) -"emb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "vox_west_control"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access = list(150)},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"enb" = (/obj/structure/closet/crate/freezer/rations,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eob" = (/obj/structure/table/standard,/obj/item/material/kitchen/utensil/knife/unathiknife,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eoj" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall"},/area/syndicate_station/start) +"elB" = (/obj/machinery/door/blast/regular{name = "Assault Armor Storage"; dir = 4; id = "ASSAULT"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"elK" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 8},/area/syndicate_mothership/ninja) +"emb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{name = "interior access button"; pixel_x = -25; pixel_y = 25; frequency = 1380; req_access = list(150); command = "cycle_interior"; master_tag = "vox_west_control"},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"enb" = (/obj/structure/closet/crate/freezer/rations,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eob" = (/obj/structure/table/standard,/obj/item/material/kitchen/utensil/knife/unathiknife,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eoj" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 4},/area/syndicate_station/start) "eou" = (/obj/structure/flora/tree/dead/deadtree_2,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"epb" = (/obj/structure/table/standard,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eqb" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"erb" = (/obj/structure/closet,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"epb" = (/obj/structure/table/standard,/obj/item/storage/box/donkpockets,/obj/item/storage/box/donkpockets,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eqb" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"erb" = (/obj/structure/closet,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "erv" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/alien) -"esb" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/obj/item/device/multitool,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"etb" = (/obj/machinery/autolathe,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"esb" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/obj/item/device/multitool,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"etb" = (/obj/machinery/autolathe,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "etz" = (/turf/simulated/floor/trim/wood,/area/thunderfield) -"eub" = (/obj/structure/table/standard,/obj/item/clothing/gloves/insulated,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"evb" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"ewb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "skipjack_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"exb" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eyb" = (/obj/item/robot_parts/r_arm,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eyn" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/space) -"ezb" = (/obj/random/ammo,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"eub" = (/obj/structure/table/standard,/obj/item/clothing/gloves/insulated,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"evb" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"ewb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{name = "interior access button"; pixel_x = 25; pixel_y = 25; frequency = 1380; req_access = list(150); command = "cycle_interior"; master_tag = "skipjack_shuttle"},/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"exb" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eyb" = (/obj/item/robot_parts/r_arm,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"ezb" = (/obj/random/ammo,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "ezn" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"},/area/shuttle/administration/centcom) -"eAb" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eBb" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"eAb" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eBb" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "eBD" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/syndicate_mothership) -"eCb" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eDb" = (/obj/item/robot_parts/head,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eDq" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_t"},/area/syndicate_station/start) +"eCb" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eDb" = (/obj/item/robot_parts/head,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eDq" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/syndicate_station/start) "eDr" = (/obj/structure/table/rack,/obj/item/backwear/reagent/extinguisher,/obj/item/backwear/reagent/extinguisher,/obj/item/backwear/reagent/extinguisher,/turf/simulated/floor/plating,/area/rescue_base/start) -"eEb" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eFb" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eGb" = (/obj/random/junk,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"eEb" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eFb" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eGb" = (/obj/random/junk,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "eGK" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/centcom/specops) -"eHb" = (/obj/item/bodybag,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eIb" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eJb" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eKb" = (/obj/structure/bed/chair,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eLb" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eMb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/random/junk,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eNb" = (/obj/structure/synthesized_instrument/synthesizer/piano,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eOb" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"eHb" = (/obj/item/bodybag,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eIb" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eJb" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eKb" = (/obj/structure/bed/chair,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eLb" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eMb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/random/junk,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eNb" = (/obj/structure/synthesized_instrument/synthesizer/piano,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eOb" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "eOL" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/space) -"ePb" = (/obj/structure/table/steel,/obj/random/drinkbottle,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"ePb" = (/obj/structure/table/steel,/obj/random/drinkbottle,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "ePR" = (/obj/structure/table/standard,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/reagent_containers/spray/cleaner,/obj/item/stack/nanopaste,/obj/effect/floor_decal/corner/beige/three_quarters{dir = 4},/obj/effect/floor_decal/corner/beige{dir = 10},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) -"eQb" = (/obj/structure/table/steel,/obj/item/trash/dish/bowl,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"eQb" = (/obj/structure/table/steel,/obj/item/trash/dish/bowl,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "eQy" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/reagent_containers/spray/cleaner,/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "eQX" = (/obj/effect/floor_decal/corner/pink{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"eRb" = (/obj/structure/table/steel,/obj/item/storage/fancy/cigarettes,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eRP" = (/obj/machinery/pipedispenser/orderable,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/rescue_base/base) -"eSb" = (/obj/structure/table/steel,/obj/item/storage/box/handcuffs,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eTb" = (/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/obj/random/trash,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eUb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/item/wrench,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eVb" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eWb" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eXb" = (/obj/structure/mopbucket,/obj/item/mop,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eYb" = (/obj/structure/table/steel,/obj/random/medical,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"eZb" = (/obj/structure/table/steel,/obj/item/flame/lighter/zippo,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"eRb" = (/obj/structure/table/steel,/obj/item/storage/fancy/cigarettes,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eRP" = (/obj/machinery/pipedispenser/orderable,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"eSb" = (/obj/structure/table/steel,/obj/item/storage/box/handcuffs,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eTb" = (/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/obj/random/trash,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eUb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/item/wrench,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eVb" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eWb" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eXb" = (/obj/structure/mopbucket,/obj/item/mop,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eYb" = (/obj/structure/table/steel,/obj/random/medical,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"eZb" = (/obj/structure/table/steel,/obj/item/flame/lighter/zippo,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "eZW" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"fab" = (/obj/structure/table/steel,/obj/structure/table/steel,/obj/item/pizzabox/meat,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fab" = (/obj/structure/table/steel,/obj/structure/table/steel,/obj/item/pizzabox/meat,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fam" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/rescue_base/base) "faT" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) -"fbb" = (/obj/structure/table/steel,/obj/machinery/recharger,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fbb" = (/obj/structure/table/steel,/obj/machinery/recharger,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fbY" = (/obj/structure/flora/ausbushes/fernybush,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) -"fcb" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"fdb" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"feb" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"fee" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "rescuebridge"; name = "Bridge Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/rescue_base/start) -"ffb" = (/obj/structure/table/steel,/obj/item/storage/firstaid,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fcb" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"fdb" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"feb" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"fee" = (/obj/machinery/door/blast/regular{name = "Bridge Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "rescuebridge"},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/rescue_base/start) +"ffb" = (/obj/structure/table/steel,/obj/item/storage/firstaid,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "ffK" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/tdome) -"fgb" = (/obj/machinery/light/small,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fgb" = (/obj/machinery/light/small,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fgO" = (/obj/structure/table/standard,/obj/item/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/folder/blue,/obj/item/pen,/obj/machinery/light,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"fhb" = (/obj/structure/flora/pottedplant/autumn,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fhb" = (/obj/structure/flora/pottedplant/autumn,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fhm" = (/obj/structure/bed/chair/wood{dir = 8},/turf/simulated/floor/trim/carpet/red,/area/thunderfield) -"fib" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/storage/fancy/cigarettes=10,/obj/item/storage/box/matches=10,/obj/item/flame/lighter/zippo=4,/obj/item/clothing/mask/smokable/cigarette/cigar/havana=2)},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"fib" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; products = list(/obj/item/storage/fancy/cigarettes=10, /obj/item/storage/box/matches=10, /obj/item/flame/lighter/zippo=4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana=2); prices = list()},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "fit" = (/obj/structure/closet/crate/trashcart,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) -"fjb" = (/obj/structure/table/rack/holorack,/obj/item/shovel,/obj/item/storage/toolbox/mechanical,/obj/item/tank/nitrogen,/obj/item/tank/nitrogen,/obj/item/tank/nitrogen,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"fkb" = (/obj/structure/table/rack/holorack,/obj/item/wrench,/obj/item/crowbar,/obj/item/gun/energy/crossbow,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"flb" = (/obj/structure/table/rack/holorack,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"fmb" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_arm,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"fnb" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/shuttle/white{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fjb" = (/obj/item/shovel,/obj/item/storage/toolbox/mechanical,/obj/item/tank/nitrogen,/obj/item/tank/nitrogen,/obj/item/tank/nitrogen,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"fkb" = (/obj/item/wrench,/obj/item/crowbar,/obj/item/gun/energy/crossbow,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"flb" = (/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/item/storage/belt/vox,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"fmb" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_arm,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"fnb" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fnx" = (/obj/structure/table/woodentable{dir = 5},/obj/item/deck/cards,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) "fnY" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/centcom/holding) -"fob" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/shuttle/white{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fob" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "foo" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"},/area/shuttle/administration/centcom) -"fpb" = (/obj/structure/table/rack/holorack,/obj/item/gun/launcher/grenade,/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fpb" = (/obj/item/gun/launcher/grenade,/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fpX" = (/obj/structure/sign/double/maltesefalcon/right,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/skipjack_station/base) -"fqb" = (/obj/structure/closet/crate,/obj/item/implanter/freedom,/obj/item/implantcase/freedom,/obj/item/implanter/explosive,/obj/item/implantcase/explosive,/obj/item/card/emag,/obj/item/melee/energy/sword/pirate,/obj/item/melee/energy/sword/pirate,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"frb" = (/obj/structure/table/standard,/obj/item/retractor,/obj/item/circular_saw{pixel_y = 8},/obj/item/cautery,/obj/item/scalpel,/obj/item/hemostat,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/white{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fqb" = (/obj/structure/closet/crate,/obj/item/implanter/freedom,/obj/item/implantcase/freedom,/obj/item/implanter/explosive,/obj/item/implantcase/explosive,/obj/item/card/emag,/obj/item/melee/energy/sword/pirate,/obj/item/melee/energy/sword/pirate,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"frb" = (/obj/structure/table/standard,/obj/item/retractor,/obj/item/circular_saw{pixel_y = 8},/obj/item/cautery,/obj/item/scalpel,/obj/item/hemostat,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "frJ" = (/obj/effect/floor_decal/industrial/warning{dir = 1; layer = 3},/obj/effect/floor_decal/corner/pink{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"fsb" = (/turf/simulated/floor/shuttle/white{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fsb" = (/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fsD" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/syndicate_mothership/elite_squad) "fsQ" = (/obj/machinery/atm{pixel_y = 24},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) -"ftb" = (/obj/structure/gas_stand/anesthetic,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"ftb" = (/obj/structure/gas_stand/anesthetic,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "ftv" = (/obj/item/device/camera,/obj/structure/table/standard{name = "plastic table frame"},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_mono"},/area/centcom/holding) -"ftF" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_b"},/area/syndicate_station/start) -"fub" = (/obj/item/grenade/frag,/obj/item/grenade/frag,/obj/item/grenade/flashbang,/obj/item/grenade/flashbang,/obj/item/grenade/flashbang,/obj/item/grenade/chem_grenade/teargas,/obj/item/grenade/chem_grenade/teargas,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/spawnergrenade/manhacks,/obj/item/grenade/empgrenade,/obj/item/grenade/empgrenade,/obj/structure/closet/crate,/turf/simulated/floor/shuttle/black{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"ftF" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 8},/area/syndicate_station/start) +"fub" = (/obj/item/grenade/frag,/obj/item/grenade/frag,/obj/item/grenade/flashbang,/obj/item/grenade/flashbang,/obj/item/grenade/flashbang,/obj/item/grenade/chem_grenade/teargas,/obj/item/grenade/chem_grenade/teargas,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/spawnergrenade/manhacks,/obj/item/grenade/empgrenade,/obj/item/grenade/empgrenade,/obj/structure/closet/crate,/turf/simulated/floor/shuttle/black{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fur" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/tdome) -"fvb" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/syringe/antiviral/packaged,/obj/item/reagent_containers/syringe,/obj/item/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = 1},/obj/item/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/fire{pixel_x = 1},/turf/simulated/floor/shuttle/white{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"fwb" = (/obj/structure/table/standard,/obj/item/bonesetter,/obj/item/FixOVein,/obj/item/bonegel,/obj/item/reagent_containers/syringe/antiviral/packaged,/obj/item/organfixer/standard,/turf/simulated/floor/shuttle/white{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fvb" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/syringe/antiviral/packaged,/obj/item/reagent_containers/syringe,/obj/item/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = 1},/obj/item/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/fire{pixel_x = 1},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"fwb" = (/obj/structure/table/standard,/obj/item/bonesetter,/obj/item/FixOVein,/obj/item/bonegel,/obj/item/reagent_containers/syringe/antiviral/packaged,/obj/item/organfixer/standard,/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fwf" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/floor_decal/corner/beige{dir = 9},/obj/effect/floor_decal/corner/beige{dir = 10},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) -"fxb" = (/obj/machinery/optable,/turf/simulated/floor/shuttle/white{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fxb" = (/obj/machinery/optable,/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fxH" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/soylentgreen,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) -"fyb" = (/obj/machinery/body_scanconsole{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) -"fzb" = (/obj/machinery/bodyscanner{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list("nitrogen"=103.984)},/area/skipjack_station/start) +"fyb" = (/obj/machinery/body_scanconsole{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) +"fzb" = (/obj/machinery/bodyscanner{dir = 4},/turf/simulated/floor/shuttle/white{initial_gas = list(nitrogen=103.984)},/area/skipjack_station/start) "fzf" = (/obj/effect/decal/remains,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "fzQ" = (/obj/structure/table/woodentable,/obj/item/clothing/head/collectable/paper,/turf/simulated/floor/trim/carpet/purple,/area/thunderfield) -"fAC" = (/turf/simulated/shuttle/wall/syndi{dir = 5; icon_state = "syndiwall"},/area/shuttle/deathsquad/centcom) +"fAC" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 5},/area/shuttle/deathsquad/centcom) "fBF" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/trim/wood,/area/thunderfield) "fDc" = (/obj/structure/flora/ausbushes,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "fDm" = (/obj/effect/floor_decal/corner/beige{dir = 10},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) @@ -2877,9 +2609,8 @@ "fFg" = (/obj/machinery/organ_printer/robot/mapped,/obj/effect/floor_decal/corner/pink/three_quarters,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "fFh" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/structure/flora/tree/dead/deadtree_5,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "fFq" = (/obj/structure/dogbed,/obj/item/stack/material/animalhide/corgi,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) -"fFz" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) -"fGo" = (/obj/machinery/door/blast/regular{dir = 8; id = "thunderdomegen"; name = "General Supply"},/obj/machinery/door/blast/regular{dir = 8; id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) -"fGW" = (/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) +"fFz" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"fGo" = (/obj/machinery/door/blast/regular{name = "General Supply"; dir = 8; id = "thunderdomegen"},/obj/machinery/door/blast/regular{name = "General Supply"; dir = 8; id = "thunderdomegen"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "fJc" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 1},/area/centcom/specops) "fNf" = (/obj/effect/floor_decal/spline/fancy{dir = 6},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "fQF" = (/obj/structure/bed,/obj/item/bedsheet/red,/obj/item/shield/buckler,/turf/simulated/floor/trim/wood,/area/thunderfield) @@ -2889,7 +2620,7 @@ "fTh" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/centcom/creed) "fTw" = (/obj/structure/table/woodentable,/obj/item/device/flash,/turf/simulated/floor/trim/wood,/area/thunderfield) "fWG" = (/turf/unsimulated/wall{icon_state = "riveted_b"; dir = 8},/area/syndicate_mothership) -"fZD" = (/obj/machinery/door/airlock{id_tag = "Dormitory 2"; name = "Dormitory"},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) +"fZD" = (/obj/machinery/door/airlock{name = "Dormitory"; id_tag = "Dormitory 2"},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "gaH" = (/obj/effect/floor_decal/corner/pink{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "geb" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/syndicate_mothership) "ghw" = (/obj/effect/decal/remains,/obj/item/stack/material/animalhide/cat,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) @@ -2905,7 +2636,7 @@ "grq" = (/obj/structure/bed,/obj/item/bedsheet/brown,/turf/simulated/floor/trim/wood,/area/thunderfield) "gAj" = (/obj/structure/mirror/raider,/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/skipjack_station/base) "gBq" = (/obj/effect/floor_decal/corner/pink{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"gHJ" = (/obj/machinery/button/remote/airlock{dir = 4; id = "Dormitory 2"; name = "Door Bolts"; pixel_x = -25; specialfunctions = 4},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) +"gHJ" = (/obj/machinery/button/remote/airlock{name = "Door Bolts"; dir = 4; pixel_x = -25; id = "Dormitory 2"; specialfunctions = 4},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "gJu" = (/obj/effect/decal/remains,/obj/random/maintenance,/turf/simulated/floor/tiled/dark,/area/thunderfield) "gMD" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/syndicate_mothership) "gNM" = (/turf/space,/turf/simulated/shuttle/wall/corner/syndi/nw,/area/syndicate_station/start) @@ -2916,24 +2647,23 @@ "gWk" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/rescue_base/base) "gZb" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 6},/area/shuttle/escape/centcom) "gZx" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/centcom/specops) -"gZG" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 9},/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) +"gZG" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 9},/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "gZK" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/tdome) "hah" = (/obj/machinery/atmospherics/pipe/manifold/visible,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "hal" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_d"; dir = 1},/area/shuttle/escape/centcom) "hcf" = (/obj/structure/table/gamblingtable,/obj/item/deck/cards,/obj/item/reagent_containers/vessel/bottle/rum,/obj/item/wrench,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) "hdp" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/rescue_base/base) -"hgT" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_straight"},/area/syndicate_station/start) +"hgT" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 8},/area/syndicate_station/start) "hhg" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 1},/area/tdome) -"hop" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall"},/area/shuttle/administration/centcom) +"hop" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 4},/area/shuttle/administration/centcom) "hoz" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "hoP" = (/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "hrh" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership/elite_squad) "htP" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/effect/floor_decal/spline/fancy/wood,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "huC" = (/obj/effect/floor_decal/corner/pink,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "huG" = (/obj/item/clothing/head/collectable/kitty,/turf/simulated/floor/tiled/dark,/area/thunderfield) -"hxl" = (/obj/structure/flora/ausbushes/grassybush,/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) +"hxl" = (/obj/structure/flora/ausbushes/grassybush,/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) "hyv" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/sw,/area/shuttle/escape/centcom) -"hDw" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/space) "hEM" = (/obj/structure/closet/l3closet/janitor,/turf/simulated/floor/tiled/dark,/area/thunderfield) "hFx" = (/obj/item/shield/buckler,/turf/simulated/floor/tiled/dark,/area/thunderfield) "hFA" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/effect/floor_decal/corner/pink/three_quarters{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) @@ -2960,20 +2690,20 @@ "inj" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "iql" = (/obj/structure/table/gamblingtable,/obj/random/maintenance,/turf/simulated/floor/trim/carpet/red,/area/thunderfield) "iqz" = (/obj/structure/table/woodentable,/obj/item/material/knife/butch,/turf/simulated/floor/trim/wood,/area/thunderfield) -"isX" = (/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) +"isX" = (/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "itr" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 1},/turf/simulated/floor/plating,/area/centcom/evac) "ivb" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/syndicate_mothership) "iyi" = (/obj/structure/table/woodentable,/obj/item/clothing/head/rasta,/turf/simulated/floor/trim/wood,/area/thunderfield) -"izw" = (/obj/item/remains/human,/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{icon_state = "lava"; name = "plating"},/area/wizard_station) -"izU" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "rescuebridge"; name = "Bridge Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/rescue_base/start) -"iAF" = (/turf/simulated/shuttle/wall/syndi{dir = 6; icon_state = "syndiwall"},/area/shuttle/administration/centcom) +"izw" = (/obj/item/remains/human,/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"izU" = (/obj/machinery/door/blast/regular{name = "Bridge Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "rescuebridge"},/obj/structure/window/syndi{icon_state = "ws3"},/turf/simulated/floor/plating,/area/rescue_base/start) +"iAF" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/shuttle/administration/centcom) "iBO" = (/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) "iCJ" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/prison/solitary) "iIr" = (/obj/effect/floor_decal/spline/fancy/wood,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "iKO" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"},/area/syndicate_station/start) -"iMj" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/shuttle/administration/centcom) -"iOF" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_v"},/area/shuttle/administration/centcom) -"iQq" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_d"},/area/syndicate_station/start) +"iMj" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/shuttle/administration/centcom) +"iOF" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_v"; dir = 4},/area/shuttle/administration/centcom) +"iQq" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 4},/area/syndicate_station/start) "iRH" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/centcom/suppy) "iSp" = (/obj/structure/spider/stickyweb,/obj/structure/spider/stickyweb,/turf/simulated/floor/trim/wood,/area/thunderfield) "iTN" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/centcom/living) @@ -2986,84 +2716,81 @@ "jbA" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/wizard_station) "jdb" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/centcom/specops) "jfG" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/syndicate_mothership) -"jiw" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_d"},/area/syndicate_station/start) +"jiw" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 1},/area/syndicate_station/start) "jiE" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/prison/solitary) -"jjI" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_t"},/area/shuttle/administration/centcom) -"jkb" = (/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/tiled/dark,/area/thunderfield) +"jjI" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/shuttle/administration/centcom) +"jkb" = (/obj/structure/barricade/material,/turf/simulated/floor/tiled/dark,/area/thunderfield) "jlm" = (/obj/effect/decal/cleanable/vomit,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "jmK" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/rescue_base/base) "jou" = (/obj/random/closet,/turf/simulated/floor/trim/wood{icon_state = "wood_broken4"},/area/thunderfield) -"joD" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_d"},/area/shuttle/syndicate_elite/mothership) +"joD" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 1},/area/shuttle/syndicate_elite/mothership) "joH" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_c"; dir = 2},/area/shuttle/escape/centcom) "jpU" = (/obj/structure/flora/pottedplant/tropicalflowers,/obj/structure/sign/poster{pixel_y = 32},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "jrv" = (/obj/structure/flora/ausbushes,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "jty" = (/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "juQ" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"juS" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) -"jyc" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_d"},/area/shuttle/administration/centcom) +"juS" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) +"jyc" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 1},/area/shuttle/administration/centcom) "jyg" = (/turf/unsimulated/wall{icon_state = "riveted_c"},/area/centcom/living) "jyE" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/syndicate_mothership) -"jEy" = (/obj/machinery/computer/pod{id = "thunderdomegen"; name = "Thunderdome General Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) +"jEy" = (/obj/machinery/computer/pod{name = "Thunderdome General Supply"; id = "thunderdomegen"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "jIy" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "jIK" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall/corner/smoothwhite/nw,/area/centcom/evac) "jKE" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/skipjack_station/base) "jNQ" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/thunderfield) "jOd" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/rescue_base/base) -"jOE" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall"},/area/syndicate_station/start) +"jOE" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 8},/area/syndicate_station/start) "jPT" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/device/binoculars,/turf/simulated/floor/tiled/dark,/area/thunderfield) "jPX" = (/obj/structure/table/standard,/obj/item/storage/toolbox/mechanical,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "jVS" = (/obj/structure/table/gamblingtable,/obj/random/maintenance,/turf/simulated/floor/trim/wood,/area/thunderfield) -"jWj" = (/obj/machinery/door/blast/regular{id = "thunderdomegen"; name = "General Supply"},/obj/machinery/door/blast/regular{dir = 4; id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"jWj" = (/obj/machinery/door/blast/regular{name = "General Supply"; id = "thunderdomegen"},/obj/machinery/door/blast/regular{name = "General Supply"; dir = 4; id = "thunderdomegen"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "jXs" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/rescue_base/base) "jYP" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/prison/solitary) "jZg" = (/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled/dark,/area/thunderfield) "kae" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/syndicate_mothership/elite_squad) "kaY" = (/obj/structure/window/syndi{icon_state = "ws5"},/turf/simulated/floor/plating,/area/rescue_base/start) -"kaZ" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 6},/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) -"kbp" = (/turf/simulated/shuttle/wall/syndi{dir = 6; icon_state = "syndiwall"},/area/syndicate_station/start) -"kdp" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/space) -"kgz" = (/turf/simulated/shuttle/wall/syndi{dir = 9; icon_state = "syndiwall"},/area/syndicate_station/start) +"kaZ" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 6},/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) +"kbp" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/syndicate_station/start) +"kgz" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 9},/area/syndicate_station/start) "kgP" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/structure/flora/tree/dead/deadtree_2,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"khn" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "syndieshutters_workshop"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/syndicate_station/start) -"khN" = (/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall{icon_state = "riveted_t"},/area/space) +"khn" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/syndicate_station/start) "kis" = (/obj/machinery/door/airlock/medical{name = "Morgue"},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "dark_mono"},/area/centcom/holding) "kja" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/centcom/suppy) "klt" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/obj/effect/decal/remains,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "kmR" = (/obj/effect/decal/remains,/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled/dark,/area/thunderfield) "knv" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"koq" = (/obj/machinery/computer/pod{id = "thunderdomeaxe"; name = "Thunderdome Axe Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) +"koq" = (/obj/machinery/computer/pod{name = "Thunderdome Axe Supply"; id = "thunderdomeaxe"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "kpy" = (/obj/structure/bookcase,/obj/structure/spider/stickyweb,/turf/simulated/floor/trim/wood,/area/thunderfield) "kqv" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 4},/area/syndicate_mothership) "kre" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/syndicate_mothership/elite_squad) -"kvR" = (/obj/machinery/door/airlock/hatch,/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) +"kvR" = (/obj/machinery/door/airlock/hatch,/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "kwe" = (/obj/machinery/door/airlock/centcom,/turf/simulated/floor/tiled/dark,/area/thunderfield) "kxH" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "kyL" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 4},/area/centcom/evac) -"kBj" = (/turf/simulated/shuttle/wall/syndi{dir = 10; icon_state = "syndiwall"},/area/rescue_base/start) +"kBj" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/rescue_base/start) "kFI" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/folder/white{pixel_x = -4},/obj/item/folder/white,/obj/item/folder/white{pixel_x = 4},/obj/effect/floor_decal/corner/pink{dir = 10},/obj/effect/floor_decal/corner/pink{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "kFO" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/reagent_containers/food/packaged/chips,/turf/simulated/floor/trim/wood,/area/thunderfield) "kFY" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dark,/area/thunderfield) "kGD" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/trim/wood,/area/thunderfield) "kIG" = (/obj/structure/table/gamblingtable,/obj/item/clothing/head/that,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) "kKN" = (/obj/structure/flora/tree/dead/deadtree_1,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) -"kPi" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_t"},/area/syndicate_mothership/ninja) +"kPi" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/syndicate_mothership/ninja) "kRk" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/prison/solitary) "kTR" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/centcom/control) "kUo" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "2"; dir = 1},/turf/simulated/floor/plating,/area/shuttle/escape/centcom) "kUJ" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/floor_decal/industrial/warning/dust,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) -"lat" = (/obj/structure/flora/ausbushes/palebush,/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) +"lat" = (/obj/structure/flora/ausbushes/palebush,/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "ley" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) "lgL" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/nw{icon_state = "corner_syndiwall_s"},/area/shuttle/administration/centcom) "llo" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/skipjack_station/base) "lof" = (/obj/structure/bed/chair/wood{dir = 4},/turf/simulated/floor/trim/carpet/red,/area/thunderfield) "lpz" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/space) -"lqV" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) "lul" = (/turf/simulated/floor/tiled/dark,/area/thunderfield) "lvQ" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/yellow,/obj/random/maintenance,/turf/simulated/floor/tiled/dark,/area/thunderfield) "lxS" = (/obj/random/closet,/turf/simulated/floor/trim/wood,/area/thunderfield) "lzT" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/skipjack_station/base) "lDA" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"},/area/shuttle/syndicate_elite/mothership) -"lDU" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_d"},/area/shuttle/syndicate_elite/mothership) +"lDU" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 4},/area/shuttle/syndicate_elite/mothership) "lEL" = (/obj/structure/sign/warning/secure_area,/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/centcom/control) "lFz" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/centcom) "lHN" = (/obj/structure/flora/ausbushes/ywflowers,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) @@ -3074,21 +2801,21 @@ "lLM" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_c"},/area/shuttle/administration/centcom) "lNs" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/trim/carpet/purple,/area/thunderfield) "lOr" = (/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/shuttle/escape/centcom) -"lSn" = (/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) +"lSn" = (/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "lUY" = (/obj/structure/flora/pottedplant/minitree,/obj/effect/floor_decal/corner/pink/three_quarters{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "lYb" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "mez" = (/turf/unsimulated/wall{icon_state = "riveted_c"; dir = 4},/area/centcom/specops) "miR" = (/obj/effect/decal/remains,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "mkj" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/syndicate_mothership/elite_squad) -"mma" = (/turf/simulated/shuttle/wall/syndi{dir = 6; icon_state = "syndiwall"},/area/shuttle/syndicate_elite/mothership) -"mmq" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "elite_syndicate_ship"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/shuttle/syndicate_elite/mothership) +"mma" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/shuttle/syndicate_elite/mothership) +"mmq" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "elite_syndicate_ship"},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/shuttle/syndicate_elite/mothership) "mmu" = (/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) "mnf" = (/turf/unsimulated/wall{icon_state = "riveted_d"},/area/wizard_station) "mqa" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/centcom/specops) "mqq" = (/obj/machinery/computer/operating,/obj/effect/floor_decal/spline/fancy{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "mrF" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/centcom/living) "msp" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 4},/area/wizard_station) -"msL" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/syndicate_mothership/ninja) +"msL" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/syndicate_mothership/ninja) "muM" = (/obj/structure/curtain/medical,/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "white_rough"},/area/centcom/holding) "muX" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "mvv" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/centcom/specops) @@ -3099,14 +2826,14 @@ "mIe" = (/obj/random/closet,/turf/simulated/floor/trim/wood{icon_state = "wood_broken1"},/area/thunderfield) "mJN" = (/obj/effect/floor_decal/industrial/warning/dust/corner{dir = 8},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "mJP" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/space) -"mLO" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_d"},/area/shuttle/administration/centcom) +"mLO" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 4},/area/shuttle/administration/centcom) "mMh" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/centcom/specops) -"mMA" = (/obj/machinery/door/blast/regular{id = "thunderdome"; name = "Thunderdome Blast Door"},/obj/machinery/door/blast/regular{dir = 8; id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"mMA" = (/obj/machinery/door/blast/regular{name = "Thunderdome Blast Door"; id = "thunderdome"},/obj/machinery/door/blast/regular{name = "Thunderdome Blast Door"; dir = 8; id = "thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "mOy" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/tdome) -"mOG" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/shuttle/syndicate_elite/mothership) +"mOG" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/shuttle/syndicate_elite/mothership) "mOI" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "mRf" = (/turf/unsimulated/wall{icon_state = "riveted_15"},/area/syndicate_mothership) -"mRw" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 4},/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) +"mRw" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 4},/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "mRH" = (/obj/effect/floor_decal/spline/fancy/wood,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "mXk" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/syndicate_mothership/elite_squad) "naa" = (/obj/structure/bed/chair/wood{dir = 8},/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) @@ -3131,23 +2858,22 @@ "nPC" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/centcom/holding) "nQi" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/wizard_station) "nQV" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/acting/backstage) -"nRV" = (/obj/structure/flora/ausbushes/fernybush,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) -"nSx" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_t"},/area/syndicate_station/start) +"nRV" = (/obj/structure/flora/ausbushes/fernybush,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) +"nSx" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/syndicate_station/start) "nSC" = (/obj/structure/table/gamblingtable,/obj/item/reagent_containers/vessel/bottle/cognac,/turf/simulated/floor/trim/wood,/area/thunderfield) "nUU" = (/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "nWi" = (/obj/structure/flora/ausbushes/ywflowers,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"nWE" = (/obj/machinery/door/airlock/hatch,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/tiled/dark,/area/thunderfield) -"nZv" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_b"},/area/shuttle/syndicate_elite/mothership) -"obN" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "syndieshutters_workshop"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"nWE" = (/obj/machinery/door/airlock/hatch,/obj/structure/barricade/material,/turf/simulated/floor/tiled/dark,/area/thunderfield) +"nZv" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 4},/area/shuttle/syndicate_elite/mothership) +"obN" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/obj/structure/window/syndi{icon_state = "ws2"},/turf/simulated/floor/plating,/area/syndicate_station/start) "ocE" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/rescue_base/base) "ofY" = (/obj/machinery/turret/network/centcomm,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "ogZ" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) -"oiX" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/space) "olE" = (/obj/structure/table/standard,/obj/item/storage/toolbox/electrical,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"omJ" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "syndieshutters"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws5"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"omJ" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/obj/structure/window/syndi{icon_state = "ws5"},/turf/simulated/floor/plating,/area/syndicate_station/start) "onc" = (/obj/structure/flora/tree/dead/deadtree_2,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "ooa" = (/turf/simulated/shuttle/wall{icon_state = "syndiwall_d"; dir = 1},/area/centcom/evac) -"oqe" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_t"},/area/rescue_base/start) +"oqe" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/rescue_base/start) "oun" = (/obj/structure/table/woodentable,/obj/machinery/microwave,/turf/simulated/floor/trim/wood,/area/thunderfield) "owF" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/skipjack_station/base) "oxk" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 4},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) @@ -3162,7 +2888,7 @@ "oHb" = (/obj/structure/window_frame/indestructible/hull,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "oKy" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "oLD" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/skipjack_station/base) -"oMB" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_d"},/area/syndicate_mothership/ninja) +"oMB" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 4},/area/syndicate_mothership/ninja) "oNg" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/rescue_base/base) "oQt" = (/obj/structure/spider/stickyweb,/obj/structure/table/woodentable,/turf/simulated/floor/trim/wood,/area/thunderfield) "oSr" = (/obj/structure/bed/chair/shuttle/red{dir = 4},/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) @@ -3184,21 +2910,21 @@ "pth" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/centcom/living) "ptv" = (/obj/structure/table/gamblingtable,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter/zippo,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) "pzr" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/alien) -"pzY" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/shuttle/escape/centcom) -"pBe" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_straight"},/area/shuttle/administration/centcom) +"pzY" = (/obj/structure/window/reinforced{dir = 1; health = 1e+06},/turf/simulated/floor/shuttle/red,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/shuttle/escape/centcom) +"pBe" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 8},/area/shuttle/administration/centcom) "pCf" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/centcom/creed) "pDs" = (/obj/item/stool/padded,/turf/simulated/floor/trim/wood,/area/thunderfield) "pEi" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 9},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) -"pGU" = (/obj/structure/flora/ausbushes/leafybush,/obj/structure/flora/ausbushes/ywflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) +"pGU" = (/obj/structure/flora/ausbushes/leafybush,/obj/structure/flora/ausbushes/ywflowers,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) "pIH" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/sw{icon_state = "corner_whiteship_s"},/area/centcom/evac) "pKG" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/centcom/holding) "pKQ" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/acting/backstage) -"pLG" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_straight"},/area/syndicate_station/start) +"pLG" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 4},/area/syndicate_station/start) "pLT" = (/obj/structure/table/woodentable,/obj/item/clothing/head/cowboy_hat,/turf/simulated/floor/trim/wood,/area/thunderfield) -"pOo" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_d"},/area/syndicate_station/start) +"pOo" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 8},/area/syndicate_station/start) "pPu" = (/obj/structure/closet/cabinet,/turf/simulated/floor/trim/wood,/area/thunderfield) "pUf" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/syndicate_mothership) -"pUJ" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/shuttle/deathsquad/centcom) +"pUJ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/shuttle/deathsquad/centcom) "pVx" = (/obj/effect/decal/remains,/obj/item/clothing/head/ushanka,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "pXv" = (/obj/structure/table/woodentable,/obj/item/paper_bin,/turf/simulated/floor/trim/carpet/purple,/area/thunderfield) "pYU" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/effect/floor_decal/spline/fancy/wood,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) @@ -3208,26 +2934,26 @@ "qhm" = (/turf/simulated/floor/trim/wood{icon_state = "wood_broken1"},/area/thunderfield) "qjA" = (/obj/structure/table/standard{name = "plastic table frame"},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/holding) "qjG" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) -"qlU" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"qlU" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "qmJ" = (/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/tree/dead/deadtree_1,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "qsG" = (/obj/machinery/computer/arcade,/turf/simulated/floor/trim/wood,/area/thunderfield) "qzS" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/skipjack_station/base) -"qBz" = (/obj/machinery/door/unpowered/simple/wood,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/trim/wood,/area/thunderfield) -"qFb" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"qBz" = (/obj/machinery/door/unpowered/simple/wood,/obj/structure/barricade/material,/turf/simulated/floor/trim/wood,/area/thunderfield) +"qFb" = (/obj/effect/floor_decal/industrial/warning/wiz,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "qIo" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/tdome) "qKI" = (/obj/item/stool/padded,/turf/simulated/floor/trim/carpet/purple,/area/thunderfield) -"qLh" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_d"},/area/syndicate_mothership/ninja) +"qLh" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_d"; dir = 1},/area/syndicate_mothership/ninja) "qMx" = (/obj/structure/table/gamblingtable,/turf/simulated/floor/trim/wood,/area/thunderfield) "qOx" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "qRb" = (/obj/machinery/door/unpowered/simple/wood,/turf/simulated/floor/trim/wood,/area/thunderfield) "qSu" = (/obj/effect/floor_decal/industrial/warning/dust,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) -"qZv" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_b"},/area/shuttle/syndicate_elite/mothership) +"qZv" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 8},/area/shuttle/syndicate_elite/mothership) "rae" = (/turf/unsimulated/wall{icon_state = "riveted_b"; dir = 1},/area/wizard_station) "rgy" = (/turf/simulated/floor/trim/carpet/red,/area/thunderfield) -"rgC" = (/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/trim/wood,/area/thunderfield) +"rgC" = (/obj/structure/barricade/material,/turf/simulated/floor/trim/wood,/area/thunderfield) "rgP" = (/obj/structure/table/woodentable,/obj/structure/bedsheetbin,/turf/simulated/floor/trim/wood,/area/thunderfield) "rkU" = (/obj/structure/janitorialcart,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) -"rnH" = (/obj/structure/barricade/material{layer = 6},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) +"rnH" = (/obj/structure/barricade/material,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "rsN" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/centcom/creed) "rzG" = (/obj/machinery/media/jukebox,/obj/item/music_tape/custom,/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) "rBo" = (/obj/effect/decal/cleanable/vomit,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) @@ -3237,35 +2963,34 @@ "rJd" = (/turf/unsimulated/wall{icon_state = "riveted_d"; dir = 8},/area/syndicate_mothership) "rJk" = (/obj/structure/bed,/obj/item/bedsheet/clown,/turf/simulated/floor/trim/wood,/area/thunderfield) "rNB" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/syndicate_mothership) -"rPx" = (/turf/simulated/shuttle/wall/syndi{dir = 5; icon_state = "syndiwall"},/area/rescue_base/start) +"rPx" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 5},/area/rescue_base/start) "rQn" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/centcom/specops) "rTB" = (/obj/structure/closet/coffin,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "rUm" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 4},/obj/effect/decal/cleanable/vomit,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "rVY" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/structure/bed/couch/right/sofa,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "sak" = (/obj/structure/window/syndi,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) -"scC" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_t"},/area/shuttle/administration/centcom) +"scC" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/shuttle/administration/centcom) "sif" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/alien) "sjr" = (/obj/structure/flora/ausbushes/palebush,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"slZ" = (/turf/simulated/shuttle/wall/syndi{dir = 5; icon_state = "syndiwall"},/area/syndicate_station/start) +"slZ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 5},/area/syndicate_station/start) "suO" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/centcom/control) "sve" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall/corner/syndi/sw{icon_state = "corner_syndiwall_s"},/area/shuttle/administration/centcom) "svn" = (/obj/effect/floor_decal/industrial/warning/dust/corner{dir = 4},/obj/effect/decal/remains,/obj/item/wrench,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "szw" = (/turf/simulated/mineral,/area/thunderfield) "szR" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/syndicate_mothership/elite_squad) -"szV" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/space) "sAW" = (/obj/structure/table/standard,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "sBu" = (/obj/structure/table/woodentable,/turf/simulated/floor/trim/wood,/area/thunderfield) "sCg" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/centcom/control) "sCl" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/centcom/control) "sEE" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/se{icon_state = "corner_whiteship_s"},/area/shuttle/escape/centcom) "sHM" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/wizard_station) -"sKY" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall"},/area/syndicate_station/start) +"sKY" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 1},/area/syndicate_station/start) "sLz" = (/obj/effect/decal/remains,/obj/item/reagent_containers/vessel/bottle/rum,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "sMx" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/aesirsalad,/turf/simulated/floor/trim/wood,/area/thunderfield) "sML" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/centcom/control) "sPj" = (/obj/structure/table/gamblingtable,/obj/item/wrench,/turf/simulated/floor/trim/carpet/red,/area/thunderfield) "sPK" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/acting/backstage) -"sSv" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_b"},/area/syndicate_mothership/ninja) +"sSv" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 1},/area/syndicate_mothership/ninja) "sUr" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/tiled/dark,/area/thunderfield) "sXt" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/skipjack_station/base) "sXy" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/centcom/holding) @@ -3275,23 +3000,23 @@ "tbb" = (/obj/structure/table/rack,/obj/item/reagent_containers/vessel/golden_cup,/turf/simulated/floor/trim/wood,/area/thunderfield) "tbA" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/centcom/holding) "tdl" = (/obj/structure/table/gamblingtable,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) -"tgd" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/rescue_base/start) -"thj" = (/obj/structure/flora/ausbushes/sunnybush,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) +"tgd" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/rescue_base/start) +"thj" = (/obj/structure/flora/ausbushes/sunnybush,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) "tim" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/acting/backstage) "tiv" = (/obj/structure/bed/chair/wood{dir = 1},/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) -"tiZ" = (/obj/structure/morgue{dir = 1},/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/centcom/holding) +"tiZ" = (/obj/structure/morgue{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/holding) "tjx" = (/obj/structure/closet/coffin,/turf/simulated/floor/trim/wood,/area/thunderfield) "tjL" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"},/area/shuttle/escape/centcom) -"tjX" = (/obj/structure/flora/ausbushes/leafybush,/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) +"tjX" = (/obj/structure/flora/ausbushes/leafybush,/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) "tlH" = (/obj/structure/flora/ausbushes/fullgrass,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "tmt" = (/obj/random/closet,/turf/simulated/floor/tiled/dark,/area/thunderfield) "tmR" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 10},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "tqA" = (/obj/structure/sign/double/maltesefalcon/left,/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/skipjack_station/base) -"tts" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "rescuebridge"; name = "Bridge Blast Shutters"; opacity = 0},/obj/structure/window/syndi,/turf/simulated/floor/plating,/area/rescue_base/start) -"tuD" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "syndieshutters_infirmary"; name = "Shuttle Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"tts" = (/obj/machinery/door/blast/regular{name = "Bridge Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "rescuebridge"},/obj/structure/window/syndi,/turf/simulated/floor/plating,/area/rescue_base/start) +"tuD" = (/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/syndicate_station/start) "tvy" = (/obj/item/stack/gassembly,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "tvX" = (/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"twi" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_c"},/area/shuttle/administration/centcom) +"twi" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_c"; dir = 4},/area/shuttle/administration/centcom) "twu" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/applepie,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) "tBN" = (/obj/structure/flora/ausbushes/fernybush,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "tCJ" = (/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) @@ -3305,9 +3030,9 @@ "tIT" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/alien) "tJg" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/skipjack_station/base) "tLi" = (/obj/effect/decal/remains,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) -"tLx" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_b"},/area/shuttle/administration/centcom) +"tLx" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 1},/area/shuttle/administration/centcom) "tMJ" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/centcom) -"tOM" = (/obj/structure/bed/chair{dir = 4; name = "Defense"},/turf/simulated/floor/tiled/dark,/area/thunderfield) +"tOM" = (/obj/structure/bed/chair{name = "Defense"; dir = 4},/turf/simulated/floor/tiled/dark,/area/thunderfield) "tSH" = (/obj/structure/table/woodentable{dir = 5},/obj/effect/floor_decal/carpet{dir = 4},/obj/random/smokes,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "tYB" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"},/area/syndicate_station/start) "tYG" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) @@ -3315,28 +3040,28 @@ "ube" = (/obj/structure/table/gamblingtable,/obj/item/wrench,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) "ubu" = (/obj/effect/floor_decal/industrial/warning/dust/corner,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "ubv" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/syndicate_mothership) -"ubB" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_b"},/area/shuttle/syndicate_elite/mothership) +"ubB" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 1},/area/shuttle/syndicate_elite/mothership) "ucq" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/centcom/specops) "ugk" = (/obj/structure/table/gamblingtable,/obj/item/reagent_containers/vessel/bottle/rum,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) "uiN" = (/obj/effect/decal/remains,/turf/simulated/floor/trim/wood,/area/thunderfield) "umb" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/centcom/living) -"unK" = (/obj/machinery/door/blast/regular{dir = 4; id = "thunderdome"; name = "Thunderdome Blast Door"},/obj/machinery/door/blast/regular{dir = 4; id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"unK" = (/obj/machinery/door/blast/regular{name = "Thunderdome Blast Door"; dir = 4; id = "thunderdome"},/obj/machinery/door/blast/regular{name = "Thunderdome Blast Door"; dir = 4; id = "thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "uoj" = (/turf/unsimulated/wall{icon_state = "riveted_b"; dir = 4},/area/centcom/suppy) -"upw" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{icon_state = "lava"; name = "plating"},/area/wizard_station) -"uvx" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "rescuebridge"; name = "Bridge Blast Shutters"; opacity = 0},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/rescue_base/start) +"upw" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) +"uvx" = (/obj/machinery/door/blast/regular{name = "Bridge Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "rescuebridge"},/obj/structure/window/syndi{icon_state = "ws1"},/turf/simulated/floor/plating,/area/rescue_base/start) "uxg" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/tdome) -"uxi" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) +"uxi" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 6},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) "uxq" = (/turf/unsimulated/wall{icon_state = "riveted_l"},/area/thunderfield) "uBh" = (/turf/unsimulated/wall{icon_state = "riveted_g"; dir = 4},/area/centcom/suppy) "uBi" = (/obj/structure/flora/ausbushes/fullgrass,/obj/effect/floor_decal/spline/fancy/wood,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "uDO" = (/obj/machinery/door/airlock/research,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "uEj" = (/obj/structure/table/woodentable,/obj/item/storage/box/bodybags,/turf/simulated/floor/trim/carpet/purple,/area/thunderfield) -"uHZ" = (/obj/machinery/door/blast/regular{id = "thunderdome"; name = "Thunderdome Blast Door"},/obj/machinery/door/blast/regular{dir = 4; id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"uHZ" = (/obj/machinery/door/blast/regular{name = "Thunderdome Blast Door"; id = "thunderdome"},/obj/machinery/door/blast/regular{name = "Thunderdome Blast Door"; dir = 4; id = "thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "uJD" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/centcom/living) "uJX" = (/obj/structure/flora/ausbushes/leafybush,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "uMy" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/effect/floor_decal/corner/pink/three_quarters,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "uMz" = (/obj/structure/table/gamblingtable,/obj/item/reagent_containers/vessel/bottle/rum,/turf/simulated/floor/trim/wood,/area/thunderfield) -"uMV" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_c"},/area/syndicate_station/start) +"uMV" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_c"; dir = 1},/area/syndicate_station/start) "uPk" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/syndicate_mothership) "uPT" = (/obj/effect/floor_decal/spline/fancy/wood,/obj/structure/flora/tree/dead/deadtree_5,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "uTH" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/space) @@ -3345,18 +3070,18 @@ "vbo" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/appletart,/turf/simulated/floor/trim/carpet/orange,/area/thunderfield) "vbp" = (/obj/structure/flora/ausbushes/palebush,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "vfd" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/structure/table/woodentable{dir = 5},/obj/item/device/flashlight/lantern/active,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) -"vfO" = (/turf/simulated/shuttle/wall/syndi{dir = 10; icon_state = "syndiwall"},/area/syndicate_station/start) -"vja" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_straight"},/area/shuttle/syndicate_elite/mothership) +"vfO" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/syndicate_station/start) +"vja" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 8},/area/shuttle/syndicate_elite/mothership) "vks" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "vkN" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 8},/area/centcom/holding) "vok" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "vpz" = (/obj/structure/sign/poster,/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/skipjack_station/base) "vqr" = (/obj/machinery/status_display,/turf/unsimulated/wall{icon_state = "riveted"},/area/centcom/holding) "vqO" = (/turf/unsimulated/wall{icon_state = "riveted_straight"},/area/centcom/creed) -"vvD" = (/obj/machinery/door/blast/regular{dir = 4; id = "thunderdomegen"; name = "General Supply"},/obj/machinery/door/blast/regular{dir = 4; id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{dir = 5; icon_state = "vault"},/area/tdome) +"vvD" = (/obj/machinery/door/blast/regular{name = "General Supply"; dir = 4; id = "thunderdomegen"},/obj/machinery/door/blast/regular{name = "General Supply"; dir = 4; id = "thunderdomegen"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "vBE" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 5},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "vCO" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/dark,/area/thunderfield) -"vKo" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_c"},/area/shuttle/administration/centcom) +"vKo" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_c"; dir = 8},/area/shuttle/administration/centcom) "vNC" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 8},/area/syndicate_mothership/elite_squad) "vOC" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 1},/area/syndicate_mothership/elite_squad) "vRL" = (/turf/unsimulated/wall{icon_state = "riveted_t"},/area/syndicate_mothership) @@ -3372,14 +3097,14 @@ "wgF" = (/turf/unsimulated/wall{icon_state = "riveted_l"; dir = 4},/area/prison/solitary) "wqW" = (/obj/effect/floor_decal/spline/fancy/wood,/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "wvP" = (/turf/unsimulated/wall{icon_state = "riveted"},/area/centcom/suppy) -"wvU" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_t"},/area/shuttle/deathsquad/centcom) +"wvU" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/shuttle/deathsquad/centcom) "wxt" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/floor_decal/corner/beige{dir = 9},/turf/unsimulated/floor{icon = 'icons/turf/flooring/tiles.dmi'; icon_state = "steel_rough"},/area/centcom/holding) "wyd" = (/obj/structure/spider/stickyweb,/obj/structure/closet/cabinet,/turf/simulated/floor/trim/wood,/area/thunderfield) "wyk" = (/turf/unsimulated/wall{icon_state = "riveted_s"; dir = 8},/area/tdome) "wzb" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "wAd" = (/obj/machinery/sleeper{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "wEs" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/tdome) -"wFq" = (/turf/simulated/shuttle/wall/syndi{dir = 10; icon_state = "syndiwall"},/area/shuttle/syndicate_elite/mothership) +"wFq" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/shuttle/syndicate_elite/mothership) "wHf" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/skipjack_station/base) "wIm" = (/obj/structure/closet/crate/bin,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "wLw" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/centcom/control) @@ -3398,8 +3123,8 @@ "xpL" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 4},/area/rescue_base/base) "xrk" = (/turf/unsimulated/wall{icon_state = "riveted_t"; dir = 1},/area/syndicate_mothership/elite_squad) "xsp" = (/obj/structure/bed,/obj/item/bedsheet/red,/turf/simulated/floor/trim/wood,/area/thunderfield) -"xto" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_straight"},/area/rescue_base/start) -"xtG" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_b"},/area/syndicate_station/start) +"xto" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 4},/area/rescue_base/start) +"xtG" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 4},/area/syndicate_station/start) "xuX" = (/obj/effect/decal/remains,/turf/simulated/floor/tiled/dark,/area/thunderfield) "xwn" = (/obj/item/shield/buckler,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "xxY" = (/obj/structure/table/woodentable,/obj/item/device/binoculars,/turf/simulated/floor/trim/carpet/red,/area/thunderfield) @@ -3411,58 +3136,58 @@ "xLz" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) "xLY" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/centcom/ferry) "xPH" = (/turf/unsimulated/wall{icon_state = "riveted_c"},/area/centcom/specops) -"xQN" = (/turf/simulated/shuttle/wall/syndi{dir = 9; icon_state = "syndiwall"},/area/rescue_base/start) +"xQN" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 9},/area/rescue_base/start) "xRS" = (/turf/unsimulated/wall{icon_state = "riveted_s"; dir = 8},/area/wizard_station) "xUq" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 6},/obj/effect/decal/cleanable/vomit,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/thunderfield) "yaz" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 1},/area/centcom/holding) "ybm" = (/obj/effect/floor_decal/industrial/warning/wiz{dir = 5},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) "ybM" = (/turf/unsimulated/wall{icon_state = "riveted_straight"; dir = 8},/area/centcom/specops) -"ycx" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_t"},/area/syndicate_station/start) +"ycx" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/syndicate_station/start) "ydT" = (/obj/effect/floor_decal/spline/fancy/wood,/obj/structure/flora/tree/dead/deadtree_3,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/thunderfield) -"ydZ" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_b"},/area/shuttle/administration/centcom) +"ydZ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_b"; dir = 8},/area/shuttle/administration/centcom) "yfx" = (/turf/unsimulated/wall{icon_state = "riveted"; dir = 4},/area/centcom) "yhE" = (/obj/machinery/status_display,/turf/unsimulated/wall{icon_state = "riveted"; dir = 8},/area/centcom/holding) "yiE" = (/obj/structure/flora/ausbushes/fullgrass,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/unsimulated/floor{icon_state = "asteroid"},/area/thunderfield) "ykI" = (/obj/machinery/hologram/holopad{pixel_y = 16},/obj/effect/floor_decal/corner/pink{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) (1,1,1) = {" -agXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXaabaacaacaacaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNliWRaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaagaagaagaagaagaagaagaagaagaagoXdaagaagaagaagaagaagaagaagaagaagoXdaagaagaagaagaagaagaagaagaagaagoXdaagaagaagaagaagaagaagaagaagaagoXdaagaagaagaagaagaagaagaagaagaagoXdaagaagaagaagaagaagaagaagaagaagoXdaagaagaagaagaagaagaagaagaagaagiWR -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKusifxKfxKfxKfgoPxKfxKfabyaKuaalfGWfGWfGWdcGfGWfGWfGWfGWfGWfGWaaoaapaaJaaKaaJaaKaaJaaKaaJaaKaapaaoaaraasaasaasaasaasaasaasaasaasaaoaavaaNaauaaAaaDaaDaaDaaDaaMaavaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaBaaCaaCaaCaaCaaRaaRaaRaaRabaaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaFaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaFaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudCgabOabOabOoHaabOabOdCgaKuaalfGWfGWfGWfGWfGWfGWfGWfGWlqVfGWaaoaapaaKaaJaaKaaJaaKaaJaaKaaJaaqaaoaaLaaLaaLaaLaaLaaLaaLaaLaaLaaLaaoaavaaNabbabcabdabdabdabdabeaavaaoaawaaOaawaawaawaawaawaawaaOaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaPaaQaaQaaQaaQaaQaaQaaQaaQabfaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUaaUaaVaaVaaVaaUaaUaaVaaVaaVaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudCgabOacaabOacbabOabOdCgaKuaalfGWlqVfGWfGWfGWfGWfGWfGWfGWfGWaaoaapaaJaaWaaXaaYaaXaaYaaZaaKaaqaaoaaLaaLaaLaaLaaLaaLaaLaaLaaLaaLaaoaavaaNabpabrabrabrabrabrabrabraaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaPaaQaaQaaQaaQaaQaaQaaQaaQabfaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHabgaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabhaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudCgaclaclaclervabOabOdCgaKuaalfGWfGWfGWfGWfGWdcGfGWfGWfGWfGWaaoaaqaaKabiablablablablabmaaJaapaaoabnabnabnabnabnabnabnabnabnaboaaoaavaaNaaNabqabsabtabHabHabtabuaaoaawaawaawaaOaawaawaaOaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaPaaQaaQaaQaaQaaQaaQaaQaaQabfaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdeeNtITxKfxKfxKfbVrabOabOdCgaKuaalfGWfGWdcGfGWfGWfGWdcGfGWfGWfGWaaoaaqaaJabjabkabzabzabkabAaaKaapaaoabBabBabCabDabDabDabDabEabBabFaaoaavaaNaavabvabSabwabUabUabwabGaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaPaaQaaQaaQaaQaaQaaQaaQaaQabfaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSabNaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdacbabOacbabOabOabOabOabOdCgaKuaalfGWfGWfGWfGWfGWfGWfGWfGWfGWfGWaaoaapaaJabjabkabzabzabkabAaaKaaqaaoabBabBabPabQabQabQabQabRabBabFaaoaavaaNabIabJacpabUabUabUabwabGaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaaPaaQaaQaaQaaQaaQaaQaaQaaQabfaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdeeNxKfxKfabyabOabOabOacxdCgaKuaalfGWfGWfGWfGWfGWlqVfGWfGWfGWdcGaaoaapaaKabiablablablablabmaaJaapaaoabBabBabPabQabQabQabQabRabBabFaaoaavaaNaavabKabTabwabUabUabwabGaaoaawaawaawaaOaawaawaaOaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoabVabWabWabWabWacQacQacQacQacRaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudCgaclabOabOacxdCgaKuaalfGWfGWlqVfGWfGWfGWfGWfGWfGWfGWaaoaaqaaJacmaceablablaccacnaaKaaqaaoabBabBabPabQabQabQabQabRabBabFaaoaavaaNaaNabXacfacgachachacgacoaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoacqacqacracqacqacqacqacCacqacqaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacuaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUackacvacwackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudCgaclabOabOacxdCgaKuaalfGWfGWfGWfGWfGWfGWfGWfGWfGWfGWaaoaapaaKaaJabjablablabAaaKaaKaapaaoabBabBacyaczaczaczaczacAabBacBaaoacNacMacNacNacNacNacNacOacNacNaaoaawaaOaawaawaawaawaawaawaaOaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaazaazaayaazaazaazaazaayaazaazaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciacsacEactactacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaaTaaTaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUackacGacHackaaUaaUabZaaUacIaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKupzrxKfxKfxKfxKfbVraKuaaldcGfGWfGWfGWlqVfGWfGWfGWfGWlqVaaoaapaaJaaKabiablablabAaaKaaJaapaaoabBabBabBabBabBabBabBabBabBacLaaoaataataataataataataataataataataaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaayaayaayaayaayaayaayaayaayaaE -agXahbahbabYabYabYabYabYabYahbahbahbahbahbahbahbahbahbahbahbabYabYabYabYabYafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKueynacTacTacTacTacTacTacTacTacTacTdtmacTacTacTacTacTacTacTacTacTacTdtmacTacTacTacTacTacTacTacTacTacTdtmacUacUacUacUacUacUacUacUacUacUdtmacUacUacUacUacUacUacUacUacUacUdtmacUacUacUacUacUacUacUacUacUacUdtmacUacUacUacUacUacUacUacUacUacUxgs -agXahbahbabYawlawlawlawlabYabYabYabYabYabYabYabYabYabYabYabYabYawlawlawlawlafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudFvaxlaxltGUaxlaxltGUaxlaxltGUaxlaxljiEaKuaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWacWacWacWacWacWacWaaoacXacXacXacXacXacXacXacXacXacXaaoadcaddaddaddadfafaafbafbafbafcaaoadgadgadgadgadgadgadgadbafSafSaaoacPadjadjadjadkadladmadmadmadAaaoadnadnadoadoadoadoadoadoadoadoaaE -agXahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKunzVkaeadpadpafNadpadpmXkxrkadqhrhadqvNCaKuaKuaKuaKuaeqacSaeUaeqacSaeVaeqacSaeWaeqacSaeUaeqaKuaalacVacVacVadracVacVacVacVadracVaaoacWadsacWacWacWacWadsacWacWacWaaoacXacXadtaduaduaduadvacXacXacXaaoadwadxadxadxadyafqadxadxadxafraaoadgadgadgadgadgadgadgadbafSafSaaoadCadBadBadBadTaeBadBadBadBaeCaaoadoadoadoadoadDadDadDadoadoadoaaE -agXahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEadEaaGaaGaaFaaGadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSabMabMaaFabMabMadEadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUaaUaaUadFaaUadFaaUadFaaUadGaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuddXadHadIadJadJadKadJadLmkjadMadNadMddXaKuaKuaKuaKuaeqaeTaeWaeqaeTaeUaeqaeTaeUaeqaeTaeUaeqaKuaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWacWacWacWacWadOacWaaoacXacXadPadPadPadPadPacXacXacXaaoadcaddadwadxadyafqadxafrafbafcaaoadgadgadgadgadzadgadgadbafSafSaaoadCadBadBadBadTaeBadBadBadBaeCaaoadoadoadoadUadVadVadVadoadoadoaaE -agXahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacuaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUadYaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuddXadZaeaaeaaeaaeaaeaaeaaebadNadNadNddXaKuaKuaKuaKujYPaxlaxlbSkaxlaxlbSkaxlaxlbSkaxlaxlhMJaKuaalacVadracVacVacVacVadracVacVacVaaoacWacWdnOacWadOacWacWacWacWacWaaoaedaedaedaedaedaedaedaedaedaeeaaoadQadxadwadxaeyafqadxafradxafBaaoadgadgadRadgaefadgadgadbafSafSaaoadCadBadBadBadTaeBadBadBadBaeCaaoadoadDaegaehaeiaeiaejaekadDadoaaE -agXahbahbabYahHawlawlawlawlawlawlawlawlawlawnawlawlawlawlawlawlawlawlawlahIafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciadWadWaeladXacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaAKaKuaKunzVhrhhrhhrhbXiaemaeaaenaenaenaeaaeofsDaepfsDaepddXaKuaKuaKuaKuaeqacSaeUaeqacSaeUaeqafpaeUaeqacSaeWaeqaKuaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWaeracWacWacWacWaeracWaaoaedaetaeuaeuaeuaeuaeuaevaedaeeaaoaewaexadwadxadyafqadxafrafCagaaaoadgadgadgadgadgadgadgadbafSafSaaoadCadBadBadBadTaeBadBadBadBaeCaaoadoadDaegaeEaeFaeGaeHaekadDadoaaE -agXahbahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlabYaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaeIaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeIaakaAKaKuaKuddXaeKaeLaeLaeLaeMaeaaeNaeOaeOaePaeQddXaeRddXaeSddXaKuaKuaKuaKuaeqaeTaeWaeqaeTaeUaeqaeTaeUaeqaeTaeUaeqaKuaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWacWacWacWacWacWacWaaoaedaeXaeYaeYaeYaeYaeYaeZaedaeeaaoadwadxadxadxadyafqadxadxadxafraaoadgadSadgadgadgadgadgadbafSafSaaoadCadBadBadBadTaeBadBadBadBaeCaaoadoadDaegaeEafgafhaeHaekadDadoaaE -agXahbahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlabYaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuddXafkaflaflaflafmaeaaeOafnafoaePaeQppYhrhkrehrhszRaKuaKuaKuaKuiCJaxlaxlkRkaxlaxlkRkaxlaxlkRkaxlaxlwgFaKuaalacVacVacVadracVacVacVacVadracVaaoacWacWacWacWadsacWdnOacWacWadsaaoaedaeXaeYaeYaeYaeYaeYaeZaedaeeaaoaewaexaexaexaezafYafCafCafCagaaaoadgadgadgaeAadgadgadgadbafSafSaaoaeDafdafdafdafeaffafsafsafsagdaaoadoadDaegaejafuafuafvaekadDadoaaE -agXahbahbahbabYahHawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlahIabYaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuvOChrhhrhhrhvNCafwaeaafxafxafxaeaaeomkjafyaeaafyppYhrhhrhvNCaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaalacVacVacVacVacVacVacVacVacVacVaaoafzacWacWacWacWafzacWacWacWacWaaoaedaeXaeYaeYaeYaeYaeYafAaedaeeaaoafDafDafZafDafDafDafDakpafDafDaaoadgadgadgadgadgadzadgadbafSafSaaoaftaftafEaftaftaftaftagbaftaftaaoadoadoadoafFafFafFafGadoadoadoaaE -agXahbahbahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlabYahbaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuddXadZaeaaeaaeaaeaaeaaeQafJaeaaeaafKddXafLafMddXaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaalacVadracVacVacVacVadracVacVacVaaoacWaeracWdnOacWacWaeracWadOacWaaoaedafPafQafQafQafQafQafRaedaeeaaoadaadaacZadaadaadaadaacZadaadaaaoadgadgadgadgadgadgadgadbafSafSaaoadiadiadhadiadiadiadiadhadiadiaaoadoadoadoadDadDadDadoadoadoadoaaE -agXahbahbahbahbabYahHawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlahIabYahbaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuddXafTafUafVaeaaeaaeaafWfsDafyaeaafyppYhrhhrhbXiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWafzacWacWacWacWafzaaoaedaedaedaedaesaesaedaedaedaeeaaoacZacZacZacZacZacZacZacZacZacZaaoadgadgadgadgadgadgadgadbafSafSaaoadhadhadhadhadhadhadhadhadhadhaaoadoadoadoadoadoadoadoadoageageaaE -agXahbahbahbahbahbabYahHawlawlawlawlawlawlawlawlawlawlawlawlawlahIabYahbahbaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKumkjadpadpfsDagffsDadpadpvOChrhhrhhrhbXiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKulpzaggaggaggaggaggaggaggaggaggaggszVaggaggaggaggaggaggaggaggaggaggszVaggaggaggaggaggaggaggaggaggaggszVaggaggaggaggaggaggaggaggaggaggszVaggaggaggaggaggaggaggaggaggaggszVaggaggaggaggaggaggaggaggaggaggdtmacUacUacUacUacUacUacUacUacUacUxgs -agXahbahbahbahbahbahbafHafHafHahHawlawlawlawlawlawlawlahIafHafHafHahbahbahbaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahadEadEadEadEadEadEadEadEaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKuaKuaKuddXaghddXaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaalacKacKacKacKacKacKacKacKacKacKaaE -agXahbahbahbahbahbahbahbahbahbabYawlawlawlawlawlawlawlabYahbahbahbahbahbahbaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaahaahaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKuaKuaKuddXagiddXaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuahgacUacUacUacUacUkdpacUacUacUacUacUkdpacUacUacUacUacUkdpacUacUacUacUacUaiCaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaalacKacYagcanPapmauuaybaycayDacKaaE -agXahbahbahbahbahbahbahbahbahbabYahHahHahHahHahIahIahIabYahbahbahbahbahbahbahbahbahbahbahbagXaabaacaacaacaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEadEadEadEadEadEadEaahaahaahaahaahaahaahaahaahaahaahaahadEadEadEadEadEadEadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKuaKuaKumkjagjmkjaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuajTaFBaFCaFDaFEaFQajTaFgaFgaFgaFgaFgajTaFnaFyaFzaFzaFnajTaGsaGjaGjaGjaGtajTaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagkaabaKuaKuaalacKayEayFayEayFayEayFayEayFacKaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuafXagmaglvjaagnvjaaglagmagHaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuajTaFFaFWaFPaFDaGfajTaFgaFgaFgaFgaFgajTaFzaFzaFyaFyaFzajTaGjaGuaGvaGyaGjajTaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayGayHayGayHayGayHayGayHacKaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaabaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKumOGagomOGagpagqagrmOGagomOGaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuajTaFRaFSaFTaFBaFCajTaFgaFgaFgaFgaFgajTaFyaFyaFAaFzaFyajTaGjaGzaGOaGPaGjajTaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayHayGayHayGayHayGayHayGacKaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuagsubBnZvagtaguagvbCejoDagwaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuajTaGgaFDaFUaFVaFEajTaFgaFgaFgaFgaFgajTaFzaFzaFyaFyaFyajTaGjaGQaKsaKtaGjajTaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayGayHayGayHayGayHayGayHacKaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaKuaKuaKuaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKuqZvlDAvjaagxvjacWAlDUaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuajTaGfaFEaFCaFWaFRajTaFgaFgaFgaFgaFgajTaFnaFyaFzaFzaFnajTaGwaGjaGjaGjaGxajTaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayHayGayHayGayHayGayHayGacKaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKuagyagzagAagBagCagDagyaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuoiXacUacUacUacUacUdtmacUacUacUacUacUdtmacUacUacUacUacUdtmacUacUacUacUacUhDwaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayIayJayIayJayIayJayIayJacKaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKummqagzagEagCagCagDmmqaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKayKayLayMayNayOazbazcazdacKaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiaakaAKaKuaKuaKuaKuafIaKuaKuagswFqagFagCagGmmaagwaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaalacKacKacKacKacKacKacKacKacKacKaaE -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaAKaKuaKuaKuaKuafIafIaKuaKumOGagIagCagJmOGaKuaKuafIafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahagKqLhsaksSvagNaahaahaahaahaahaahaahaaaaabaKuaKulpzaggaggaggaggaggaggaggaggaggaggmJP -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahadEadEadEadEadEadEadEadEadEaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKulpzaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlmJPaKuaKuaKuaKuaKuafIaKuaKumOGagFagCagGmOGaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahelKagOagPagQoMBaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu -agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahadEadEagRagRagRagRagRagRagRadEaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIaKuaKumOGagSagTagUmOGaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuajTaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahcJkagPagVagPcJkaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu -agXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXaabaaaaahaahaahaahaahaahaahagWagRagRagRagRagRagRagRagRagRaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIaKuaKuagswFqagYmmaagwaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuajUacUacUacUacUacUkhNacUacUacUacUacUkhNacUacUacUacUacUkhNacUacUacUacUacUajVaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaanagZagPagZaanaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXaabaacaacaacaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNliWRaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKusifxKfxKfxKfgoPxKfxKfabyaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaFaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaFaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudCgabOabOabOoHaabOabOdCgaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUaaUaaVaaVaaVaaUaaUaaVaaVaaVaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudCgabOacaabOacbabOabOdCgaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHabgaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabhaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudCgaclaclaclervabOabOdCgaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdeeNtITxKfxKfxKfbVrabOabOdCgaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSabNaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdacbabOacbabOabOabOabOabOdCgaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuacdacdacdacdeeNxKfxKfabyabOabOabOacxdCgaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudCgaclabOabOacxdCgaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacuaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUackacvacwackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudCgaclabOabOacxdCgaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciacsacEactactacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaaTaaTaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUackacGacHackaaUaaUabZaaUacIaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKupzrxKfxKfxKfxKfbVraKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbabYabYabYabYabYabYahbahbahbahbahbahbahbahbahbahbahbabYabYabYabYabYafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbabYawlawlawlawlabYabYabYabYabYabYabYabYabYabYabYabYabYawlawlawlawlafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudFvaxlaxltGUaxlaxltGUaxlaxltGUaxlaxljiEaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKunzVkaeadpadpafNadpadpmXkxrkadqhrhadqvNCaKuaKuaKuaKuaeqacSaeUaeqacSaeVaeqacSaeWaeqacSaeUaeqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEadEaaGaaGaaFaaGadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSabMabMaaFabMabMadEadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUaaUaaUaaUaaUadFaaUadFaaUadFaaUadGaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuddXadHadIadJadJadKadJadLmkjadMadNadMddXaKuaKuaKuaKuaeqaeTaeWaeqaeTaeUaeqaeTaeUaeqaeTaeUaeqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacuaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaUaaUaaUadYaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaAKaKuaKuaKuaKuaKuaKuddXadZaeaaeaaeaaeaaeaaeaaebadNadNadNddXaKuaKuaKuaKujYPaxlaxlbSkaxlaxlbSkaxlaxlbSkaxlaxlhMJaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbabYahHawlawlawlawlawlawlawlawlawlawnawlawlawlawlawlawlawlawlawlahIafHahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciadWadWaeladXacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaAKaKuaKunzVhrhhrhhrhbXiaemaeaaenaenaenaeaaeofsDaepfsDaepddXaKuaKuaKuaKuaeqacSaeUaeqacSaeUaeqafpaeUaeqacSaeWaeqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlabYaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacFaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaeIaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeIaakaAKaKuaKuddXaeKaeLaeLaeLaeMaeaaeNaeOaeOaePaeQddXaeRddXaeSddXaKuaKuaKuaKuaeqaeTaeWaeqaeTaeUaeqaeTaeUaeqaeTaeUaeqaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlabYaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuddXafkaflaflaflafmaeaaeOafnafoaePaeQppYhrhkrehrhszRaKuaKuaKuaKuiCJaxlaxlkRkaxlaxlkRkaxlaxlkRkaxlaxlwgFaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbabYahHawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlahIabYaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuvOChrhhrhhrhvNCafwaeaafxafxafxaeaaeomkjafyaeaafyppYhrhhrhvNCaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbabYawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlabYahbaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuddXadZaeaaeaaeaaeaaeaaeQafJaeaaeaafKddXafLafMddXaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbabYahHawlawlawlawlawlawlawlawlawlawlawlawlawlawlawlahIabYahbaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuddXafTafUafVaeaaeaaeaafWfsDafyaeaafyppYhrhhrhbXiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbabYahHawlawlawlawlawlawlawlawlawlawlawlawlawlahIabYahbahbaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKumkjadpadpfsDagffsDadpadpvOChrhhrhhrhbXiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbafHafHafHahHawlawlawlawlawlawlawlahIafHafHafHahbahbahbaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahadEadEadEadEadEadEadEadEaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKuaKuaKuddXaghddXaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbabYawlawlawlawlawlawlawlabYahbahbahbahbahbahbaKuahbahbahbahbagXaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaahaahaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKuaKuaKuddXagiddXaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbabYahHahHahHahHahIahIahIabYahbahbahbahbahbahbahbahbahbahbahbagXaabaacaacaacaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahadEadEadEadEadEadEadEaahaahaahaahaahaahaahaahaahaahaahaahadEadEadEadEadEadEadEaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKuaKuaKumkjagjmkjaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagkaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuafXagmaglvjaagnvjaaglagmagHaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaabaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKumOGagomOGagpagqagrmOGagomOGaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaKuaKuaKuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuagsubBnZvagtaguagvbCejoDagwaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaKuaKuaKuaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKuqZvlDAvjaagxvjacWAlDUaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKuagyagzagAagBagCagDagyaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaAKaKuaKuaKuaKuafIaKuaKummqagzagEagCagCagDmmqaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiafiaakaAKaKuaKuaKuaKuafIaKuaKuagswFqagFagCagGmmaagwaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaAKaKuaKuaKuaKuafIafIaKuaKumOGagIagCagJmOGaKuaKuafIafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahagKqLhsaksSvagNaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahaahadEadEadEadEadEadEadEadEadEaahaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKulpzaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlmJPaKuaKuaKuaKuaKuafIaKuaKumOGagFagCagGmOGaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahelKagOagPagQoMBaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaaaaahaahaahaahaahaahaahadEadEagRagRagRagRagRagRagRadEaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIaKuaKumOGagSagTagUmOGaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahcJkagPagVagPcJkaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +agXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXaabaaaaahaahaahaahaahaahaahagWagRagRagRagRagRagRagRagRagRaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXagXaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIaKuaKuagswFqagYmmaagwaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaanagZagPagZaanaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaahaahaahaahaahaahaahagWagRagRagRagRahaagRagRagRagRaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabagXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIafIaKuaKuagsahcagwaKuaKuafIafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahaanagPagPagPaanaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahagWagRagRagRagRagRagRagRagRagRaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabagXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahiiCagPagPagPiiCaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahagWagRagRagRagRagRagRagRagRagRaaFaahaahaahaahaahaahaahaaaaahaahaabaaaaahaahaahaahaahaahaaFaaFaaFaaGaaGaaGaaGaaGaaGaaGaaGaaGabMabMabMabMabMabMabMabMaaFaaFaaFaahaahaahaahaahaahaahaaaaabagXahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbahbagXaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuafIafIaKuaKuaKuaKuaKuafIafIaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaabaaaaahaahaahaahaahaahaahmsLahdahfaqbmsLaahaahaahaahaahaahaahaaaaabaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu @@ -3561,7 +3286,7 @@ aAKahJahJahJahJahJahJahJaiZajaaiYaqOaqPtgdaxGaspaydargxtoxtoxtoxtooqeayeayeeDray aAKahJahJahJaiYayPaiZaiZaiZaiZaiZaqOaqPttsasnaspayQtgdaqPaqPaqPaqPtgdaAJaAJaAJaAJtgdaqPaqPaqPaqPtgdaySawLayTttsaqPaqQaiZaiYaiZahJahJaiYahJaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaxOxPHpbrpbrpbrpbrpbrpbrpbrpbrpbrpbrpbrpbrpbrpbrpbrpbrpbrpbrdOMybMgZxaxTrQnybMmMhawXawXawXawXawXawXawXawXmvvayUawXawXawXayVeGKybMybMybMybMrsNbnCbnCbnCbnCbnCpCfayWayWayWucqdZrayYangangangdtMaxoaANaxosuOdZrdZrdZrdZrdZrwLwaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuahGaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaakaakaak aAKahJahJaziaiYaiYaiZaiYaiZaiYaiZaqOaqPtgdazjaspazktgdaqPaqPaqPaqPavHazlazlazlazlavNaqPaqPaqPaqPtgdaxsaznazotgdaqPaqQaiZaiZaiZaiZaiZaiYahJaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaxOfJcdqBdqBdqBdqBdqBdqBdqBdqBdqBdqBdqBdqBdqBdqBdqBdqBdqBdqBmezaxPazpawZawZazqmvvazrazsaztazuazvazwawXawXmvvazxawXawXawXazymvvazzaAPaAPazzaveazCazDazEayWayWayWayWayWazFmvvaAsfRdazGazHazHazHazHazHazHazHazHazHaLzfRdaAskTRaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuahGaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaakaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaakaak aAKahJahJahJahJaiZaiYaiZaueaiYaiZaqOaqPtgdaAJaAJaAJtgdaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPtgdaAJaAJaAJtgdaqPaqQaiZaiZaiZaiZahJahJahJaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuayiayjayjayjayjayjayjayjayjayjayjayjayjayjazRayjayjayjayjayjazRazSayjawZawZazTmqaaveaveaveaveaveawwawXawXmqaazUawXawXawXazVmqaawXayWayWayWaveayWayWayWayWayWayWayWayWazWmvvaAsofYazXangangangangangangangangangmHWofYaAskTRaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAiaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaakaakaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaakaak -aAKahJahJahJahJahJahJahJaiZaiZaiZaqOaqPavHazlazlazlavNaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPavHazlazlazlavNaqPaqQaiZaiZahJaiZahJahJahJaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaxOrQnybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMgZxaxPaAjawZawZaAkaveaAlaAmaAnaAoaApaveawXawXaveawXawXawXawXaAqaveawXayWayWaxSaArayWayWayWazDazDeGKybMybMybMmMhaAsfRdazXangbZbaAsaAMaAOaAQaAsbZbangmHWfRdaAskTRaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuahGaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaakaakaakaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaak +aAKahJahJahJahJahJahJahJaiZaiZaiZaqOaqPavHazlazlazlavNaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPavHazlazlazlavNaqPaqQaiZaiZahJaiZahJahJahJaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaxOrQnybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMgZxaxPaAjawZawZaAkaveaAlaAmaAnaAoaApaveawXawXaveawXawXawXawXaAqaveawXayWayWaxSaArayWayWayWazDazDeGKybMybMybMmMhaAsfRdazXangbZbaAsaAMaaIaAQaAsbZbangmHWfRdaAskTRaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuahGaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaakaakaakaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaak aAKahJahJahJahJahJahJahJaiZaiZaiYaqOaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqQaiZajaaiZaiZahJahJahJaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuayiayjayjayjayjayjayjayjayjayjayjayjayjayjaABayjayjayjayjayjaABaACayjawZawZaADaveaAEawXawXawXaAFaveawXawXaveawXawXaAGaAHazvaveaAIayWayWayWawwaveaveaxeaveavemqaayWayWayWaAaaAsfRdaALangcabaAUaBkaBlaBnaBCcbbangaLGfRdaAslELdZrdZrdZrawyaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuahGaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaakaakaakaakaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaak aAKahJahJahJahJahJahJahJahJaiZaiZaAXaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAZaiZaiYaiZahJahJahJahJaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaxOrQnybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMybMgZxaxPaBaawZawZaBbawwaBcawXawXawXawXawwaBdaBdawwaBeaBerQnybMybMgZxaAIayWayWaxSaBfaBgaBgaBgaBgaBgaBhmuXmuXmuXaBhaAsfRdaBiaBjccbaAsaBQaBRaCgaAsccbaBjaLIfRdaAsaMNaMOaMOaMOkTRaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuahGaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaakaakaakaakaakaakaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaak aAKahJahJahJahJahJahJahJahJahJaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiYaiZaiZaiZajaaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZahJahJahJahJahJahJaAKaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuayiayjayjayjayjayjayjayjayjayjayjayjayjayjaBrayjayjayjayjayjaBraBsaBtawZawZaxSaBuawXawXawXawXawXaBuawXawXaBvawXawXaBwaBxaByaByawXayWayWaBzawwaveaveaxeaveaveoFxayWayWayWaBAaAsfRdaBBangcdbaAUaCoaAsaCoaBCcebangaLQfRdaAsaBWdZrdZrdZrsMLaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuahGaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaakaakaakaakaakaakaakaakaakaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu @@ -3580,7 +3305,7 @@ aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaK aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuxLYaEWaEWaEWaEWaEWaEWaEWaEWaEWaEWaEWaEWaEWfuraEnqIodIesXysXysXysXysXysXysXysXynKtaDvaDvaEKaJLpKGaJPaKyaKyaKyaaeazmazOazOazOazQpKGvfdtSHaGDaGDyazaGEdEMaFXbyWvYBcNvnwuaMEaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaJHaMWaJHaAcaAdaHDaHCaAfaHDaGaaBmaBmyazaJyaJyaJyaJLyazaKlaFJaFJaFJaAgaAhaFJaFJaFJaBFpKGaFMaAxaGDaGDaAyaGDaHuaFXfnxmmummummuaMEaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaJHaMWaJHaBoaIcaHDaHDaHCaHDaGaaGDaGDaCCaJyaJyaJyaJyayZaJPaKyaKlaFJaAgaAhaFJaBFazOazQpKGrVYaCjaGDaGDaCFaGDaHuaFXhHImmummummuaCFaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu -aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaJHaMWaJHaHDaHCaHEaHCaOYaHDaGaaEsaGDayZaJyaJyaHmaJyayZaKDaFJaKlaFJaEyaAhaFJaBFaFJaEApKGfxHghGaGDaGDaEUaGDaHuaFXeliaFkaFlaFmaMEaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaJHaMWaJHaHDaHCaHEaHCaOYaHDaGaaEsaGDayZaJyaJyaHmaJyayZaKlaFJaKlaFJaAgaAhaFJaBFaFJaBFpKGfxHghGaGDaGDaEUaGDaHuaFXeliaFkaFlaFmaMEaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaJHaMWaJHaForzGaHEaFpaHDaHDaGaaGDaGDaCCaJyaJyaJyaJyayZaKJaKMaKlaFJaAgaAhaFJaBFaFtaFHpKGaFMaAxaGDaGDaEUaGDaHuaFXaFXaFXaFXaGmoHbaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaJHaMWaJHaFxaHCaJQaHDaHEaIcaGaaGdaGdtagtbAaJyaJyaJyfnYaKlaFJaFJaFJaAgaAhaFJaFJaFJaBFpKGaGDaGDaGDaGDaEUaGDaGDaGEaGEaGEaGEaGEaMEaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaafaNlaNlaNlaNlaNlaNlaNlaNlaNllzTwHfclbaGNclbtDMlzTqzSqzSqzSqzSqzSoLDclbclbclbifNtqAfpXwHfcmbcmbcmbtDMqzSqzSlzTaNluTH aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaJHaMWaJHaHDaGGaJCaHEaJDaJEaFGaGhaGhaGhpKGaJyaJyaJypKGaKJaKMaKMaKMaGJaGKaFtaFtaFtaFHpKGaGLaGDaGDaGDfnYdICdGFdqtaJAnPCsXysXysXysXytbAaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaAKaakaakaakaakaakaakaakaakaakiWCcnbcobcpbcobcqbiWCcrbcobcsbcobctbiWCcubcvbcwbiWCcxbcybczbcAbcBbcBbcCbcDbcEbiWCaakaak @@ -3639,7 +3364,7 @@ aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaK aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaQaaQbaQbaQeaQkaQlaQbaQiaQbaQbaLbaQbaLbaQbaQbaQiaQbaLdaLdaQbaQdaKuaKuaQaaQaaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwxgxxgxlulinjxAnxAnxAnxAnxAnxAnwzbickxgxxgxaGoaGoaGoxgxxgxjtyjtyjtyjtyjtyjtynwdnwdjtyjtyjtyjtyjtyoxkxAntvXtvXtvXxAnxgxlullullulxAnxAnxAnmvFxAnxAnxAnqjGxAnxAnxAnszwszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaLdaQoaQpaQqaQraQbaLbaQbaQsaQtaQuaQvaQwaQbaLbaQbaQxaQyaQbaQaaQaaQaaQdaQaaQaaQbaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwxAntvXxAnvbpxAnxgxqBzxgxxgxsBurFRetztvXtjxxgxjtyjtyfaTbyDdcRjtyjtyjtyrnHfaTbyDwSpjtyoxkxAnmAUtvXxAnxAnxgxxgxxAnxAnxgxxAntvXxAnxAnxAnlullullulxAnxAnxAnszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaQaaLdaQAaQBaQCaQDaQbaQEaQFaQGaQEaQHaQFaQIaGbaQEaQBaQJaQFaQbaLaaQbaLaaLaaQbaLaaQbaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwxAntvXxAnxAnetzetzxgxtvXtvXxAnxAntvXxgxjtyjtyxLztvXxEwjtyjtyjtyrnHfFhxAnjuQjtyoxktvXtvXxAnvbpxAnxAnxAnxAnxAnxAnxAnxAnmHighwlullulvYKxgxxgxxAntvXszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu -aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaQaaLdaQKaQLaQMaQNaQOaQPaQQaQRaQSaQTaQUaQVaQWaQWaQUaQXaQFaQbaQhaQYaQhaQZaRaaRbaQbaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwxAntvXtvXxAnxAnetztvXetzetztvXkKNtvXetzqBzjtyjtyxLzvbpogZrnHjtyjtyjtyeedxAnxEwjtyoxktvXxAnxAnxAnxAnxAnkKNxAnxAnlullulxAntvXtvXxAnxAnxAnxAnlullultvXszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaQaaLdaQKaQLaQMaQNaQOaQPaQQaQRaQSaQTaQUaQVaQWaQWaQUaQXaQFaQbaQhaQYaQhacJaRaaRbaQbaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwxAntvXtvXxAnxAnetztvXetzetztvXkKNtvXetzqBzjtyjtyxLzvbpogZrnHjtyjtyjtyeedxAnxEwjtyoxktvXxAnxAnxAnxAnxAnkKNxAnxAnlullulxAntvXtvXxAnxAnxAnxAnlullultvXszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaQaaLdaRcaSbaReaRfaQbaLiaLaaLiaQbaRgaQbaLiaLaaLaaQbaRhaRiaQbaRbaQhaQiaQhaRbaQhaQbaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwxAntvXtHHxAnidPxAnetzxgxsjrtvXtvXtvXetzxgxjtyjtyeedxAnogZrnHjtyjtyjtyhozxAnogZjtyoxktvXtvXxAnoncxAnxAnxAnxAnxAnxgxlullultvXtvXxAnxAnqjGxAnjZglulxAnszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaQbaQbaLdaLdaQbaQbaQdaQaaKuaLaaRjaLaaQaaQaaKuaQbaQCaRkaQbaLjaRmaLjaLjaRmaLjaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwxAnxAnxAnxgxxAnxgxxgxtvXtvXetzetzpDsxgxjtyjtyhozlHNjuQjtyjtyjtyjtykgPtvXjuQjtyoxkxAnfzftvXxAnxAnxAnxAnxAnxAnxgxxgxlulxAnxgxxgxxAnxAnxAnxAnxAnszwszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaQaaQaaKuaQaaKuaKuaKuaKuaQbaRnaQbaQaaKuaKuaQbaRoaQEaQbaRpaRqaRraRsaRtaRuaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwxAnxAnxAnqSumJNrnHxgxxgxaGoaGokGDxgxxgxjtyjtyhtPuPTfEKjtyjtyjtyjtymRHiIrpiTjtyhMvwzbwzbwzbwzbwzbwzbwzbvBExAnxAnxAntvXxAnxAnxgxbEvlullullulxAnszwszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu @@ -3647,7 +3372,7 @@ aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaK aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubgbbgbbhbaRKaRLaRMbhbbgbbgbaLdaRNaROaRPaRQaRRaRSaRRaRTaRUaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwxAnxAntvXxAnrHErnHjtyjtyjtyjtyjtyjtyjtyjtyjtytLijtyjtyjtyjtyjtyjtyjtyjtyjtynwdjtywImxgxiWqpLTiyiiWqxgxoxkdDZxAnxAntvXxAnxAnxgxxgxxAnlulxgxtvXszwszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubibbjbbkbblbaRZblbbkbbjbbmbaLdaQCaQFaQbbnbaSdaSeaSfaSgaShaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwxAntvXtvXidPrHEjtyjtyjtyjtyjtyjtyxgxxgxqBzxgxqRbxgxxgxwImjtyjtyjtyxgxxgxxgxqRbxgxxgxxgxgrqekBetzgrqcraoxkxAnxAnxAntvXtvXtvXxAntvXxAntvXdfJtvXszwszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubhbbobaSjaSkaSlbsbbhbaKuaQbaQCaQHaQbaQbaQbaQbaQbaQbaQbaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwszwtvXtlHxAnrHExgxxgxaHfaGoaGoxgxxgxetzetzetzetzetzxgxxgxrnHjtyrnHxgxfTwoQtetzconkpyxgxetzetzetzetzaHfoxkxAnqjGxAntvXtHHdROwzbwzbnlPnlPvBEtvXszwszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubVlaSnaSnaSnaSnaSnaSnsHMaSnaSnaSnsHMaSnaSoaSnraebVuaKuaKuaKuaKuaKuaKuaKuaKuaKu -aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubhbbpbaSqaSraSsbsbbhbaKuaQbaStaQEaQbaSuaSvbqbbrbaSyaSzaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwszwtvXtvXoncrHExgxetzqsGetzqsGetzxgxetzbJLubeiBOetzxgxjtyjtyjtyjtyxgxoVdrgyrgyphQiSpxgxrJketzetzxspaHfoxkxAnxAnxAntvXxAnrHExgxxgxkwekwexgxxgxxgxxgxaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudHfaSAaSBaKSaSDaSDaNbnQiaSGaSGaSGnQiaSHaSIaSJxRSgQUaKuaKuaKuaKuaKuaKuaKuaKuaKu +aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubhbbpbaSqaSraSsbsbbhbaKuaQbaStaQEaQbaSuaSvbqbbrbaSyaSzaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwszwtvXtvXoncrHExgxetzqsGetzqsGetzxgxetzbJLubeiBOetzxgxjtyjtyjtyjtyxgxoVdrgyrgyphQiSpxgxrJketzetzxspaHfoxkxAnxAnxAntvXxAnrHExgxxgxkwekwexgxxgxxgxxgxaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudHfaSAaSBaKSaecaSDaNbnQiaSGaSGaSGnQiaSHaSIaSJxRSgQUaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubhbbUbaSLaSraSMbpbbtbaKuaQbaSOaRkaQbaSuaSQbubbvbaSSaSTaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwxAnxAntvXxAnrHExgxetzdtotCUqKIetzxgxetziBOugknaaetzqRbnwdjtyjtyjtyaHfconphQoDmfhmetzqRbetzetzetzetzxgxoxktvXxAnxAntvXxAnrHExgxlullullullullullvQxgxaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudHfaSCaSCaSCaSCaSCaSCaSUaSVaSWaSVaSXaSIaSIaSYxRSgQUaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubhbbUbaSLaSZaSsbVbbhbaKuaQbaQCaQEaQbaSuaTbaTcaRFaTeaSTaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwxgxxgxtvXtvXxAnrHExgxetztCUtCUtCUetzqRbetznwccxktdletzqRbnwdjtyjtyjtyaHfetzphQxxYrgygPmxgxejYetzetzpPuxgxoxktvXxAndDZtvXtvXrHExgxjZglultmtkFYxuXkFYxgxaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudHfaTfaTfaSCaSCaSCaTgjbAaSVaSVaThbVlaSnaSnaSnmnfmspaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKubwbbpbaSqaSZaSsbVbbhbaKuaLdaQCaQEaQbaQbaTjaTkaTlaTmaQbaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwxgxxgxszwszwlulxgxtvXdTWxAnrHExgxvSWetzetzetznCpxgxetzetzfBFetzetzxgxjtyjtyjtyjtyaHfconlofdHzrgyconxgxxgxxgxqRbxgxxgxoxktvXvbpxAntvXtlHrHExgxjZgjZgtmtlvQlultmtxgxaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKudHfaSCaSCaSCaSCaSCaTndHfaToaToaTpnQiaTqaTraTsaKXdHfaKuaKuaKuaKuaKuaKuaKuaKuaKu @@ -3669,7 +3394,7 @@ aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaK aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaVmaVzaVoaKuaVmaVzaVoaKuaKuaKuaQaaQaaQaaKuaQaaQaaQbaLkaLkaLkbRbaWNaWOaWPaWQaWRaWSaWTaQRaWVaWWaWXaQEaWYaUcaWZaQFaXaaXbaQdaXcaUcaQaaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwtvXxAnvbpxAnrHEaGoetzoELlNsbNvetzxgxetzleyiBOnaaetzqRbjtyjtyjtyjtyaHfkFOiBOvboiBOetzxgxfQFetzetzrgPxgxoxktvXeouxAntvXtvXxAnkKNtvXtvXtvXtvXszwszwszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaXdaKuaKuaKuaXdaLkaLkaLkaLkaQbaQbaQbaQbaQbaQbaQbaXeaXfbSbaXhaXiaXjaXkaUcaUcaUcaUcaUcaUcaUcaXlaXmaXnaUcaXoaQEaXpaXqaXraXsaUcaQaaQaaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwtvXtlHxAnxAnrHExgxetzetzetzetzetzxgxetzptvkIGhcfetzxgxrkUjtyjtyjtyaHfiqziBOtiviBOetzxgxxgxxgxqRbxgxxgxoxktvXtvXxAntvXtvXxAnqjGtvXtvXtvXszwszwszwszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaXtaXuaXuaXuaXvaLkaXwaQEaXxaXyaXzaXAaXBaUcaQEaQEaXCaXDaXEaXFaXGaXHaXIaXJaUcaXKaXLaXMaXNaXOaXPaQEankaUcaUcaUcaUcaUcaUcaUcaQbaLkaLkaQbaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwtvXtvXxAnidPrHExgxxgxaGoaHfaGoxgxxgxetziBOiBOnaaetzxgxxgxjtyjtyjtyxgxpfYetzetzetzgPmxgxubuqSukUJqSuqSulYbxAnxAnxAntvXsjrxAnxAntvXsjrxgxszwszwszwszwaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu -aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaXRaXSaLlaXUaXVaXWaXXaXXaXYaXZaYaaYbaYcaYdaYeaYfaYgaYhaYiaYjaYkaUcaYlaYmaYnaUcaUcaYoaYpaYpaYqaYqaYqaYraYsbTbaYuaYvaYwaYxaLkaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwtvXtlHxAnxAntmRqSuqSuqSuqSuqSumJNxgxxgxqBzxgxqBzxgxxgxrnHrnHjtyrnHxgxounsMxetzetzhROxgxoxkxAnxAnxAnxAnxAnxAnmHixAntvXtvXxAnxAntvXtvXxgxszwxgxxgxxgxaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu +aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaXRaXSaLlaXUaXVaXWaXXaXXaXYaXZaYaaYbaYcaYdaYeaYfaYgaYhaYiaYjaYkaUcaYlaYmaheaUcaUcaYoaYpaYpaYqaYqaYqaYraYsbTbaYuaYvaYwaYxaLkaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwszwszwszwtvXtlHxAnxAntmRqSuqSuqSuqSuqSumJNxgxxgxqBzxgxqBzxgxxgxrnHrnHjtyrnHxgxounsMxetzetzhROxgxoxkxAnxAnxAnxAnxAnxAnmHixAntvXtvXxAnxAntvXtvXxgxszwxgxxgxxgxaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaYyaXuaXuaXuaYzaLkaQEaQEaYAaYBaYCaYDaYEaYFaQEaQEaYGaYHaYIaYJaYKaYLaYMaYNaUcaUcaUcaYOaUcaUcaYPaYQaWWaWTaYRaQSaYTaYUaYVaYWaYXaYXaYYaLkaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwxAnxAntvXtvXtvXtvXxAnxAnxAnxAnxAnxAntvXtvXtmRqSuqSuqSuqSuqSuqSuqSuqSuqSuqSumJNxgxxgxxgxqRbxgxxgxxgxoxkxAndDZxAnxAnxAnidPxAnxAnxgxxgxisXxgxxgxisXhEMszwxgxlulxgxaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaXdaKuaKuaKuaXdaLkaLkaLkaLkaUcaUcaUcaUcaUcaUcaUcaUcaYZaZaaZbaZcaZdaZeaYNaUcaZfaZgaZhaUcaUcaZiaUcaZjaZkaZiaUcaUcaZlaZmaYWaZnaYXaZoaLkaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwxAnxAnxAntvXxAntvXxAndTWxAnxAnxAnxAnxAnxAnvbpxAnxAnxAnxAnxAnxAnxAnxAnxAnxAnxAntmRqSuqSuqSukUJqSuqSuqSuxUqxAnqjGxAnmiRxAntvXxAnxAnxgxlullulxAntvXlulhFxlulsUrlulxgxaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu aKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaVmaZpaVoaKuaVmaZpaVoaKuaKuaKuaQzaQzaQzaQzaQzaQzaQzaUcaUcaZqaZraZsaZtaZuaUcaUcaUcaUcaYOaUcaZvaZwaUcaZxaUcaZyaZzaUcaZAaZmaYWaYWaYWaZBaQbaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaPZaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaATszwszwszwszwtvXxAntvXsjrxAntvXxAntvXdTWtvXxAnmiRxAnxAntvXtvXtvXmHixAnxgxlSntvXxgxxgxxgxxAnxAnxAnxAnxAnxAntvXxAnxAnxAnxAntvXtvXtvXxAnxAnxAntvXxAnxAnjrvtvXlullulxgxxgxxgxaATaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKu diff --git a/maps/frontier/frontier_holodecks.dm b/maps/frontier/frontier_holodecks.dm deleted file mode 100644 index b37f026ffc6..00000000000 --- a/maps/frontier/frontier_holodecks.dm +++ /dev/null @@ -1,68 +0,0 @@ - -/datum/map/frontier - - holodeck_programs = list( - "emptycourt" = new /datum/holodeck_program(/area/holodeck/source_emptycourt, list('sound/music/THUNDERDOME.ogg')), - "boxingcourt" = new /datum/holodeck_program(/area/holodeck/source_boxingcourt, list('sound/music/THUNDERDOME.ogg')), - "basketball" = new /datum/holodeck_program(/area/holodeck/source_basketball, list('sound/music/THUNDERDOME.ogg')), - "thunderdomecourt" = new /datum/holodeck_program(/area/holodeck/source_thunderdomecourt, list('sound/music/THUNDERDOME.ogg')), - "beach" = new /datum/holodeck_program(/area/holodeck/source_beach), - "desert" = new /datum/holodeck_program(/area/holodeck/source_desert, - list( - 'sound/effects/wind/wind_2_1.ogg', - 'sound/effects/wind/wind_2_2.ogg', - 'sound/effects/wind/wind_3_1.ogg', - 'sound/effects/wind/wind_4_1.ogg', - 'sound/effects/wind/wind_4_2.ogg', - 'sound/effects/wind/wind_5_1.ogg' - ) - ), - "snowfield" = new /datum/holodeck_program(/area/holodeck/source_snowfield, - list( - 'sound/effects/wind/wind_2_1.ogg', - 'sound/effects/wind/wind_2_2.ogg', - 'sound/effects/wind/wind_3_1.ogg', - 'sound/effects/wind/wind_4_1.ogg', - 'sound/effects/wind/wind_4_2.ogg', - 'sound/effects/wind/wind_5_1.ogg' - ) - ), - "space" = new /datum/holodeck_program(/area/holodeck/source_space, - list(SFX_AMBIENT_SPACE) - ), - "picnicarea" = new /datum/holodeck_program(/area/holodeck/source_picnicarea, list('sound/music/classic/title2.ogg')), - "theatre" = new /datum/holodeck_program(/area/holodeck/source_theatre), - "meetinghall" = new /datum/holodeck_program(/area/holodeck/source_meetinghall), - "courtroom" = new /datum/holodeck_program(/area/holodeck/source_courtroom, list('sound/music/classic/traitor.ogg')), - "wildlifecarp" = new /datum/holodeck_program(/area/holodeck/source_wildlife, list()), - "chess" = new /datum/holodeck_program(/area/holodeck/source_chess, list()), - "turnoff" = new /datum/holodeck_program(/area/holodeck/source_plating, list()) - ) - - holodeck_supported_programs = list( - - "FrontierMainPrograms" = list( - "Empty Court" = "emptycourt", - "Basketball Court" = "basketball", - "Thunderdome Court" = "thunderdomecourt", - "Boxing Ring" = "boxingcourt", - "Beach" = "beach", - "Desert" = "desert", - "Space" = "space", - "Picnic Area" = "picnicarea", - "Snow Field" = "snowfield", - "Theatre" = "theatre", - "Meeting Hall" = "meetinghall", - "Courtroom" = "courtroom", - "Chess Field" = "chess" - ) - - ) - - holodeck_restricted_programs = list( - - "FrontierMainPrograms" = list( - "Wildlife Simulation" = "wildlifecarp" - ) - - ) diff --git a/maps/frontier/supermatter.dmm b/maps/frontier/supermatter.dmm index 2b06baa0b1f..8a0349d9dd0 100644 --- a/maps/frontier/supermatter.dmm +++ b/maps/frontier/supermatter.dmm @@ -172,7 +172,7 @@ "uc" = (/obj/effect/floor_decal/industrial/outline/orange,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/portable_atmospherics/canister/plasma/engine_setup,/turf/simulated/floor/tiled/dark/rough,/area/engineering/engine_room) "uw" = (/obj/machinery/power/smes/buildable{RCon_tag = "Engine - Main 2"; capacity = 2.5e+006; charge = 500000; cur_coils = 2; input_attempt = 1; input_level = 500000; output_attempt = 1; output_level = 500000},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/effect/engine_setup/smes,/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/engineering/engine_smes) "uE" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/effect/floor_decal/corner/yellow{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/engineering/break_room) -"uF" = (/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/camera/network/engineering{c_tag = "Singularity Generator Room - South"; dir = 1},/obj/effect/floor_decal/corner/yellow/diagonal,/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_coffee/full,/turf/simulated/floor/tiled/dark/rough,/area/engineering/break_room) +"uF" = (/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/camera/network/engineering{c_tag = "Singularity Generator Room - South"; dir = 1},/obj/effect/floor_decal/corner/yellow/diagonal,/obj/structure/table/standard,/turf/simulated/floor/tiled/dark/rough,/area/engineering/break_room) "uI" = (/obj/machinery/shower,/obj/machinery/light/small{dir = 4},/obj/structure/curtain/open/shower/engineering,/turf/simulated/floor/tiled/dark/rough,/area/engineering/engine_airlock) "uO" = (/obj/machinery/atmospherics/pipe/manifold/visible/black{dir = 1},/turf/simulated/floor/plating,/area/engineering/engine_room) "va" = (/turf/simulated/wall/r_wall,/area/engineering/storage) diff --git a/maps/genesis/genesis-1.dmm b/maps/genesis/genesis-1.dmm index ec446c27e3f..366d073d1d3 100644 --- a/maps/genesis/genesis-1.dmm +++ b/maps/genesis/genesis-1.dmm @@ -330,7 +330,7 @@ "gr" = (/obj/effect/floor_decal/corner/green/diagonal{icon_state = "corner_white_diagonal"; dir = 8},/obj/effect/floor_decal/corner/green/diagonal,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_virology) "gs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/remains,/turf/simulated/floor/tiled,/area/maintenance/ghetto_virology) "gt" = (/obj/effect/floor_decal/corner/green{icon_state = "corner_white"; dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/decal/cleanable/dirt,/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_virology) -"gu" = (/obj/machinery/door/airlock/medical{icon = 'icons/obj/doors/doorviro.dmi'; name = "Old Airlock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/underground/bar) +"gu" = (/obj/machinery/door/airlock/medical{icon = 'icons/obj/doors/doorviro.dmi'; name = "Old Airlock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/barricade/material,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/underground/bar) "gv" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/underground/bar) "gw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/underground/bar) "gx" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/underground/bar) @@ -521,9 +521,9 @@ "ka" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/standard,/obj/item/paper_bin,/obj/item/pen/blue{pixel_x = -3; pixel_y = 2},/obj/item/stamp/clown,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_shop) "kb" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/effect/decal/cleanable/dirt,/obj/structure/bed/chair/office/dark{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_shop) "kc" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_shop) -"kd" = (/obj/machinery/door/airlock/maintenance,/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/ghetto_shop) +"kd" = (/obj/machinery/door/airlock/maintenance,/obj/structure/barricade/material,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/ghetto_shop) "ke" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/plating,/area/maintenance/underground/library) -"kf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/machinery/door/airlock/maintenance,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_minicasino) +"kf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/machinery/door/airlock/maintenance,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_minicasino) "kg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/ghetto_minicasino) "kh" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/brown,/area/maintenance/ghetto_minicasino) "ki" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/maintenance,/turf/simulated/floor/tiled/brown,/area/maintenance/ghetto_minicasino) @@ -648,7 +648,7 @@ "mx" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/table/rack,/obj/item/clothing/under/rank/clown,/obj/item/clothing/shoes/clown_shoes,/obj/item/clothing/mask/gas/clown_hat,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_shop) "my" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/table/rack,/obj/item/storage/backpack/clown,/obj/item/toy/figure/clown,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_shop) "mz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/underground/library) -"mA" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_minicasino) +"mA" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_minicasino) "mB" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/table/rack,/obj/item/device/synthesized_instrument/guitar,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_minicasino) "mC" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_minicasino) "mD" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_minicasino) @@ -679,12 +679,12 @@ "nc" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/portables_connector,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_main) "nd" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_main) "ne" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_main) -"nf" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_shop) +"nf" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_shop) "ng" = (/obj/machinery/door/airlock/glass{name = "Clothing Shop"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/ghetto_shop) "nh" = (/obj/machinery/door/airlock/glass{name = "Clothing Shop"},/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/ghetto_shop) "ni" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/underground/library) "nj" = (/turf/simulated/floor/plating,/area/maintenance/ghetto_minicasino) -"nk" = (/obj/machinery/door/airlock/maintenance,/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_minicasino) +"nk" = (/obj/machinery/door/airlock/maintenance,/obj/structure/barricade/material,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_minicasino) "nl" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_minicasino) "nm" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/ghetto_minicasino) "nn" = (/turf/simulated/floor/plating/airless,/area/maintenance/underground/port_primary_hallway) @@ -742,7 +742,7 @@ "on" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance,/turf/simulated/floor/plating,/area/maintenance/underground/library) "oo" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/underground/library) "op" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/underground/library) -"oq" = (/obj/machinery/door/airlock/maintenance,/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_minicasino) +"oq" = (/obj/machinery/door/airlock/maintenance,/obj/structure/barricade/material,/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_minicasino) "or" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_minicasino) "os" = (/obj/structure/sign/poster{pixel_x = 0; pixel_y = 0},/turf/simulated/wall,/area/maintenance/ghetto_minicasino) "ot" = (/turf/simulated/wall,/area/maintenance/underground/locker_room) @@ -919,7 +919,7 @@ "rI" = (/obj/machinery/door/airlock{name = "Unit 3"},/turf/simulated/floor/plating,/area/maintenance/ghetto_toilet) "rJ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/table/standard,/obj/item/storage/toolbox/electrical,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/underground/library) "rK" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/underground/library) -"rL" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_minicasino) +"rL" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/structure/barricade/material,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_minicasino) "rM" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_minicasino) "rN" = (/obj/structure/table/woodentable,/obj/item/paper_bin,/obj/item/pen/blue{pixel_x = -3; pixel_y = 2},/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_minicasino) "rO" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/maintenance/ghetto_minicasino) @@ -1029,8 +1029,8 @@ "tO" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_rnd) "tP" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/plating,/area/maintenance/ghetto_rnd) "tQ" = (/obj/structure/table/reinforced,/obj/item/paper_bin,/obj/item/pen,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_rnd) -"tR" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/underground/library) -"tS" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/underground/library) +"tR" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/underground/library) +"tS" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/underground/library) "tT" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/dirt,/obj/item/newspaper,/turf/simulated/floor/trim/wood{icon_state = "wood_broken0"},/area/maintenance/ghetto_detective) "tU" = (/obj/effect/decal/cleanable/dirt,/obj/structure/bed/chair/comfy/brown,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/ghetto_detective) "tV" = (/obj/structure/computerframe,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken0"},/area/maintenance/ghetto_detective) @@ -1115,7 +1115,7 @@ "vw" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/trim/wood,/area/maintenance/ghetto_detective) "vx" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/turf/simulated/floor/trim/wood{icon_state = "wood_broken6"},/area/maintenance/ghetto_detective) "vy" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/turf/simulated/floor/trim/lino,/area/maintenance/ghetto_detective) -"vz" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_detective) +"vz" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_detective) "vA" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/turf/simulated/floor/trim/wood{icon_state = "wood_broken4"},/area/maintenance/ghetto_detective) "vB" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/trim/wood,/area/maintenance/ghetto_detective) "vC" = (/obj/machinery/vending/cigarette,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/ghetto_detective) @@ -1196,10 +1196,10 @@ "wZ" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/maintenance/ghetto_strangeplace) "xa" = (/obj/structure/flora/pottedplant{icon_state = "plant-22"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken3"},/area/maintenance/ghetto_strangeplace) "xb" = (/turf/simulated/wall,/area/maintenance/underground/robotics_lab) -"xc" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/underground/robotics_lab) +"xc" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/underground/robotics_lab) "xd" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/underground/robotics_lab) "xe" = (/obj/structure/sign/poster{pixel_x = 0; pixel_y = 0},/turf/simulated/wall,/area/maintenance/underground/robotics_lab) -"xf" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/underground/robotics_lab) +"xf" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/barricade/material,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/underground/robotics_lab) "xg" = (/turf/simulated/wall/r_wall,/area/maintenance/underground/robotics_lab) "xh" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/plating,/area/maintenance/underground/research_port) "xi" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/underground/research_port) @@ -1252,12 +1252,12 @@ "yd" = (/obj/structure/table/rack,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/tank/oxygen,/obj/item/device/radio,/obj/item/clothing/mask/breath,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_main) "ye" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_main) "yf" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_main) -"yg" = (/obj/structure/table/woodentable,/obj/item/airlock_electronics,/obj/item/firealarm_electronics,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/carpet,/area/maintenance/ghetto_strangeplace) -"yh" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/carpet,/area/maintenance/ghetto_strangeplace) -"yi" = (/obj/structure/bed/chair/comfy/black,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/carpet,/area/maintenance/ghetto_strangeplace) +"yg" = (/obj/structure/table/woodentable,/obj/item/airlock_electronics,/obj/item/firealarm_electronics,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/carpet/oldred,/area/maintenance/ghetto_strangeplace) +"yh" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/carpet/oldred,/area/maintenance/ghetto_strangeplace) +"yi" = (/obj/structure/bed/chair/comfy/black,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/carpet/oldred,/area/maintenance/ghetto_strangeplace) "yj" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/trim/wood,/area/maintenance/ghetto_strangeplace) "yk" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/trim/wood,/area/maintenance/ghetto_strangeplace) -"yl" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/ghetto_strangeplace) +"yl" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/barricade/material,/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/ghetto_strangeplace) "ym" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/random/toolbox,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/underground/robotics_lab) "yn" = (/turf/simulated/floor/plating,/area/maintenance/underground/robotics_lab) "yo" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/barricade/material,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/underground/robotics_lab) @@ -1277,10 +1277,10 @@ "yC" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_main) "yD" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/ghetto_main) "yE" = (/obj/structure/table/reinforced,/obj/effect/decal/cleanable/dirt,/obj/item/storage/toolbox/mechanical,/obj/item/device/flashlight,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_main) -"yF" = (/obj/structure/table/woodentable,/obj/item/storage/briefcase,/obj/item/device/taperecorder,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/maintenance/ghetto_strangeplace) -"yG" = (/obj/structure/table/woodentable,/obj/item/contraband/poster,/obj/item/contraband/poster,/obj/item/contraband/poster,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/carpet,/area/maintenance/ghetto_strangeplace) -"yH" = (/obj/structure/table/woodentable,/obj/item/clipboard,/obj/item/airalarm_electronics,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/carpet,/area/maintenance/ghetto_strangeplace) -"yI" = (/obj/structure/table/woodentable,/obj/item/folder,/obj/item/pen/blue{pixel_x = -3; pixel_y = 2},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/carpet,/area/maintenance/ghetto_strangeplace) +"yF" = (/obj/structure/table/woodentable,/obj/item/storage/briefcase,/obj/item/device/taperecorder,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/trim/carpet/oldred,/area/maintenance/ghetto_strangeplace) +"yG" = (/obj/structure/table/woodentable,/obj/item/contraband/poster,/obj/item/contraband/poster,/obj/item/contraband/poster,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/carpet/oldred,/area/maintenance/ghetto_strangeplace) +"yH" = (/obj/structure/table/woodentable,/obj/item/clipboard,/obj/item/airalarm_electronics,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/carpet/oldred,/area/maintenance/ghetto_strangeplace) +"yI" = (/obj/structure/table/woodentable,/obj/item/folder,/obj/item/pen/blue{pixel_x = -3; pixel_y = 2},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/carpet/oldred,/area/maintenance/ghetto_strangeplace) "yJ" = (/obj/structure/closet/crate/bin,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/trim/wood,/area/maintenance/ghetto_strangeplace) "yK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/underground/robotics_lab) "yL" = (/turf/simulated/wall,/area/maintenance/ghetto_casino) @@ -1307,12 +1307,12 @@ "zg" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_main) "zh" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_main) "zi" = (/obj/structure/table/reinforced,/obj/structure/sign/warning/high_voltage{pixel_y = -32},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_main) -"zj" = (/obj/structure/table/woodentable,/obj/item/paper_bin,/obj/item/pen/blue{pixel_x = -3; pixel_y = 2},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/carpet,/area/maintenance/ghetto_strangeplace) -"zk" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/carpet,/area/maintenance/ghetto_strangeplace) -"zl" = (/obj/structure/bed/chair/comfy/black{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/carpet,/area/maintenance/ghetto_strangeplace) +"zj" = (/obj/structure/table/woodentable,/obj/item/paper_bin,/obj/item/pen/blue{pixel_x = -3; pixel_y = 2},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/carpet/oldred,/area/maintenance/ghetto_strangeplace) +"zk" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/carpet/oldred,/area/maintenance/ghetto_strangeplace) +"zl" = (/obj/structure/bed/chair/comfy/black{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/carpet/oldred,/area/maintenance/ghetto_strangeplace) "zm" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/vomit,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/trim/wood{icon_state = "wood_broken4"},/area/maintenance/ghetto_strangeplace) "zn" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/trim/wood,/area/maintenance/ghetto_strangeplace) -"zo" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_strangeplace) +"zo" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/barricade/material,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_strangeplace) "zp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/underground/robotics_lab) "zq" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/ghetto_casino) "zr" = (/obj/structure/closet/crate/bin,/turf/simulated/floor/plating,/area/maintenance/ghetto_casino) @@ -1534,7 +1534,7 @@ "Dz" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "DA" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 1},/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "DB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) -"DC" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) +"DC" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "DD" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "DE" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23; req_one_access = list(201)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "DF" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) @@ -1591,7 +1591,7 @@ "EE" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_cafe) "EF" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/decal/cleanable/dirt,/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/plating,/area/maintenance/ghetto_cafe) "EG" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/table/standard,/obj/item/reagent_containers/ivbag/blood/AMinus,/obj/item/reagent_containers/ivbag/blood/APlus,/obj/item/reagent_containers/ivbag/blood/OMinus,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_cafe) -"EH" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/underground/research) +"EH" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/underground/research) "EI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/underground/research) "EJ" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair_preview"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/ghetto_casino) "EK" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood,/area/maintenance/ghetto_casino) @@ -1603,7 +1603,7 @@ "EQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/underground/engineering) "ER" = (/obj/machinery/door/firedoor,/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "ES" = (/obj/machinery/door/firedoor,/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) -"ET" = (/obj/machinery/door/firedoor,/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"ET" = (/obj/machinery/door/firedoor,/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "EU" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "EV" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "EW" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "merchant_shuttle_station_interior"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) @@ -1616,19 +1616,19 @@ "Fd" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/closet/crate/bin,/obj/random/maintenance,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "Fe" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/vending/snack,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "Ff" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/flora/pottedplant{anchored = 1; icon_state = "plant-21"},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) -"Fg" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) -"Fh" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) +"Fg" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/barricade/material,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) +"Fh" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/barricade/material,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "Fi" = (/obj/effect/floor_decal/corner/white{icon_state = "corner_white"; dir = 6},/obj/effect/decal/cleanable/dirt,/obj/machinery/optable,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_cafe) "Fj" = (/obj/effect/floor_decal/corner/red/diagonal{icon_state = "corner_white_diagonal"; dir = 8},/obj/effect/floor_decal/corner/red/diagonal,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/remains,/turf/simulated/floor/tiled/brown,/area/maintenance/ghetto_cafe) "Fk" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_cafe) -"Fl" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_cafe) +"Fl" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_cafe) "Fm" = (/obj/effect/floor_decal/corner/red/diagonal{icon_state = "corner_white_diagonal"; dir = 8},/obj/effect/floor_decal/corner/red/diagonal,/obj/effect/decal/cleanable/vomit,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/brown,/area/maintenance/ghetto_cafe) "Fn" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_cafe) "Fo" = (/obj/effect/floor_decal/corner/red/diagonal{icon_state = "corner_white_diagonal"; dir = 8},/obj/effect/floor_decal/corner/red/diagonal,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/brown,/area/maintenance/ghetto_cafe) "Fp" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_cafe) "Fq" = (/obj/effect/floor_decal/corner/red/diagonal{icon_state = "corner_white_diagonal"; dir = 8},/obj/effect/floor_decal/corner/red/diagonal,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/brown,/area/maintenance/ghetto_cafe) "Fr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/ghetto_cafe) -"Fs" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/underground/research_misc) +"Fs" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/barricade/material,/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/underground/research_misc) "Ft" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/underground/research_misc) "Fu" = (/turf/simulated/wall,/area/maintenance/underground/research_misc) "Fv" = (/obj/structure/flora/pottedplant{icon_state = "plant-10"},/turf/simulated/floor/plating,/area/maintenance/ghetto_casino) @@ -1661,7 +1661,7 @@ "FW" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_cafe) "FX" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/ghetto_cafe) "FY" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/ghetto_cafe) -"FZ" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/underground/research_misc) +"FZ" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/underground/research_misc) "Ga" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/underground/research_misc) "Gb" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/trim/wood{icon_state = "wood_broken4"},/area/maintenance/ghetto_casino) "Gc" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/underground/research_shuttle) @@ -1671,7 +1671,7 @@ "Gg" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "Gh" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "merchant_shuttle_station_exterior"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "Gi" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/sign/warning/airlock,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) -"Gj" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"Gj" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "Gk" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/spider/stickyweb,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "Gl" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "Gm" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) @@ -1914,11 +1914,11 @@ "KP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/underground/security_lobby) "KQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) "KR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/underground/security_lobby) -"KS" = (/obj/machinery/door/airlock/multi_tile/glass{id_tag = "MedbayFoyerPort"; req_access = list(5)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/barricade/material{layer = 6},/turf/simulated/wall,/area/maintenance/underground/security_lobby) -"KT" = (/obj/machinery/door/firedoor/border_only,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) +"KS" = (/obj/machinery/door/airlock/multi_tile/glass{id_tag = "MedbayFoyerPort"; req_access = list(5)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/barricade/material,/turf/simulated/wall,/area/maintenance/underground/security_lobby) +"KT" = (/obj/machinery/door/firedoor/border_only,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) "KU" = (/obj/structure/sign/bluecross_1,/turf/simulated/wall,/area/maintenance/underground/security_lobby) -"KV" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) -"KW" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) +"KV" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) +"KW" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/barricade/material,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) "KX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) "KY" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/underground/security_lobby) "KZ" = (/obj/machinery/light/small,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/underground/security_lobby) @@ -1932,7 +1932,7 @@ "Lh" = (/obj/effect/decal/cleanable/dirt,/obj/structure/bed/roller,/obj/structure/sign/warning/nosmoking_burned{pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/ghetto_medbay) "Li" = (/obj/effect/floor_decal/corner/green{icon_state = "corner_white"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/sleeper,/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) "Lj" = (/obj/effect/floor_decal/corner/green{icon_state = "corner_white"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/random/pottedplant,/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) -"Lk" = (/obj/machinery/door/airlock/medical{icon = 'icons/obj/doors/doorviro.dmi'; name = "Old Airlock"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/barricade/material{layer = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) +"Lk" = (/obj/machinery/door/airlock/medical{icon = 'icons/obj/doors/doorviro.dmi'; name = "Old Airlock"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/barricade/material,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/underground/security_lobby) "Ll" = (/obj/effect/floor_decal/corner/green{icon_state = "corner_white"; dir = 8},/obj/effect/decal/cleanable/dirt,/obj/item/stool/padded,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) "Lm" = (/obj/effect/decal/cleanable/dirt,/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_medbay) "Ln" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/effect/floor_decal/corner/green{dir = 9},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/spider/stickyweb,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) @@ -1991,9 +1991,9 @@ "Mo" = (/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"},/obj/item/storage/pill_bottle/tramadol,/obj/item/reagent_containers/syringe/antiviral,/turf/simulated/wall,/area/maintenance/ghetto_medbay) "Mp" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/ghetto_medbay) "Mq" = (/obj/effect/floor_decal/corner/beige,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/medical{icon = 'icons/obj/doors/doorviro.dmi'; name = "Old Airlock"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) -"Mr" = (/obj/effect/floor_decal/corner/green{dir = 1},/obj/effect/floor_decal/corner/green{icon_state = "corner_white"; dir = 8},/obj/structure/spider/stickyweb,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) +"Mr" = (/obj/effect/floor_decal/corner/green{dir = 1},/obj/effect/floor_decal/corner/green{icon_state = "corner_white"; dir = 8},/obj/structure/spider/stickyweb,/obj/structure/barricade/material,/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) "Ms" = (/obj/effect/floor_decal/corner/green/diagonal{icon_state = "corner_white_diagonal"; dir = 8},/obj/effect/floor_decal/corner/green/diagonal,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) -"Mt" = (/obj/effect/floor_decal/corner/green,/obj/effect/floor_decal/corner/green{icon_state = "corner_white"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material{layer = 6},/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) +"Mt" = (/obj/effect/floor_decal/corner/green,/obj/effect/floor_decal/corner/green{icon_state = "corner_white"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material,/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) "Mu" = (/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_medbay) "Mv" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_medbay) "Mw" = (/obj/structure/closet/crate/bin,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_medbay) @@ -2011,11 +2011,11 @@ "MI" = (/obj/effect/floor_decal/corner/green{icon_state = "corner_white"; dir = 8},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) "MJ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/spider/stickyweb,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_medbay) "MK" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/ghetto_medbay) -"ML" = (/obj/machinery/door/airlock/medical{icon = 'icons/obj/doors/doorviro.dmi'; name = "Old Airlock"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_medbay) +"ML" = (/obj/machinery/door/airlock/medical{icon = 'icons/obj/doors/doorviro.dmi'; name = "Old Airlock"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_medbay) "MM" = (/obj/effect/decal/cleanable/dirt,/obj/structure/spider/stickyweb,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/ghetto_medbay) "MN" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_medbay) "MO" = (/obj/effect/decal/cleanable/dirt,/obj/structure/spider/stickyweb,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/maintenance/ghetto_medbay) -"MP" = (/obj/machinery/door/airlock/medical{icon = 'icons/obj/doors/doorviro.dmi'; name = "Old Airlock"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/underground/fitness) +"MP" = (/obj/machinery/door/airlock/medical{icon = 'icons/obj/doors/doorviro.dmi'; name = "Old Airlock"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/underground/fitness) "MQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/underground/fitness) "MR" = (/obj/effect/floor_decal/corner/green{icon_state = "corner_white"; dir = 9},/obj/effect/decal/cleanable/dirt,/obj/machinery/constructable_frame,/turf/simulated/floor/tiled/white,/area/maintenance/ghetto_medbay) "MS" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled,/area/maintenance/ghetto_medbay) @@ -2098,14 +2098,14 @@ "Or" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/red/diagonal{icon_state = "corner_white_diagonal"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/turf/simulated/floor/tiled/brown,/area/maintenance/ghetto_cafe) "Os" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/red/diagonal{icon_state = "corner_white_diagonal"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/turf/simulated/floor/tiled/brown,/area/maintenance/ghetto_cafe) "Ot" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/red/diagonal{icon_state = "corner_white_diagonal"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/turf/simulated/floor/tiled/brown,/area/maintenance/ghetto_cafe) -"Ou" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/barricade/material{layer = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/underground/research_misc) +"Ou" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/barricade/material,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; icon_state = "intact-supply"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/underground/research_misc) "Ov" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/underground/research_misc) "Ow" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/turf/simulated/floor/plating,/area/maintenance/underground/engineering) "Ox" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/random/trash,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "Oy" = (/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "Oz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "OA" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) -"OB" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"OB" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "OC" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "OD" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/spider/stickyweb,/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "OE" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/red/diagonal{icon_state = "corner_white_diagonal"; dir = 8},/turf/simulated/floor/tiled/brown,/area/maintenance/ghetto_cafe) @@ -2140,13 +2140,13 @@ "Ph" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/underground/engineering) "Pi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "Pj" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) -"Pk" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = 0; locked = 1; name = "Port Internal Access"; req_access = list(11,13)},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"Pk" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = 0; locked = 1; name = "Port Internal Access"; req_access = list(11,13)},/obj/structure/barricade/material,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "Pl" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/effect/floor_decal/industrial/warning,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "Pm" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) -"Pn" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = 0; locked = 1; name = "Port External Access"; req_access = list(11,13)},/obj/structure/barricade/material{layer = 6},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"Pn" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = 0; locked = 1; name = "Port External Access"; req_access = list(11,13)},/obj/structure/barricade/material,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "Po" = (/obj/effect/decal/remains,/obj/item/wrench,/turf/simulated/floor/plating,/area/space) "Pp" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/vomit,/turf/simulated/floor/plating,/area/space) -"Pq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = 0; locked = 1; name = "Port Internal Access"; req_access = list(11,13)},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"Pq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = 0; locked = 1; name = "Port Internal Access"; req_access = list(11,13)},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "Pr" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/spider/stickyweb,/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "Ps" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "Pt" = (/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) @@ -2161,9 +2161,9 @@ "PC" = (/turf/simulated/floor/tiled,/area/maintenance/underground/engineering) "PD" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/random/tech_supply,/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/contraband,/turf/simulated/floor,/area/maintenance/underground/engineering) "PE" = (/obj/structure/sign/warning/engineering_access,/turf/simulated/wall,/area/maintenance/underground/engineering) -"PF" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"PF" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "PG" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) -"PH" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) +"PH" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "PI" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/space) "PJ" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "PK" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) @@ -2273,7 +2273,7 @@ "RK" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(12,24)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/underground/atmospherics) "RL" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/plating,/area/maintenance/underground/engineering) "RM" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) -"RN" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"RN" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "RO" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/spider/stickyweb,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "RP" = (/obj/machinery/vending/plasmaresearch,/turf/simulated/floor/tiled/dark,/area/maintenance/underground/atmospherics) "RQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/maintenance/underground/atmospherics) @@ -2284,7 +2284,7 @@ "RV" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"},/turf/simulated/floor/plating,/area/maintenance/underground/engineering) "RW" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/spider/stickyweb,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "RX" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) -"RY" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) +"RY" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/barricade/material,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "RZ" = (/turf/simulated/floor/tiled/dark,/area/maintenance/underground/atmospherics) "Sa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/underground/atmospherics) "Sb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/underground/atmospherics) @@ -2327,14 +2327,14 @@ "SM" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "SN" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "SO" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) -"SP" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/door/firedoor,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) -"SQ" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/door/firedoor,/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) +"SP" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/door/firedoor,/obj/structure/barricade/material,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) +"SQ" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/door/firedoor,/obj/structure/barricade/material,/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) "SR" = (/turf/simulated/wall/r_wall,/area/maintenance/sub/relay_station) "SS" = (/obj/machinery/power/port_gen/pacman{anchored = 0; sheets = 25},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/maintenance/underground/atmospherics) "ST" = (/obj/structure/table/steel,/obj/random/firstaid,/turf/simulated/floor/tiled/dark,/area/maintenance/underground/atmospherics) "SU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/underground/engineering) "SV" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/maintenance/ghetto_dockhall) -"SW" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = 0; locked = 1; name = "Port External Access"; req_access = list(11,13)},/obj/structure/barricade/material{layer = 6},/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) +"SW" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = 0; locked = 1; name = "Port External Access"; req_access = list(11,13)},/obj/structure/barricade/material,/turf/simulated/floor/plating,/area/maintenance/ghetto_dockhall) "SX" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/grid/bluegrid,/area/maintenance/sub/relay_station) "SY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/grid/bluegrid,/area/maintenance/sub/relay_station) "SZ" = (/turf/simulated/wall/r_wall,/area/maintenance/underground/engineering) diff --git a/maps/genesis/genesis-2.dmm b/maps/genesis/genesis-2.dmm index 82361001d37..0593df10c3b 100644 --- a/maps/genesis/genesis-2.dmm +++ b/maps/genesis/genesis-2.dmm @@ -1311,7 +1311,7 @@ "azr" = (/obj/machinery/cryopod,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/cryo) "azs" = (/obj/structure/cryofeed,/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/cryo) "azt" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/fitness) -"azu" = (/turf/simulated/floor/reinforced{name = "Holodeck Projector Floor"},/area/holodeck/alphadeck) +"azu" = (/turf/simulated/floor/reinforced{name = "Holodeck Projector Floor"},/area/holodeck) "azv" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry/pods) "azw" = (/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/hallway/secondary/entry/pods) "azx" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/hallway/secondary/entry/pods) @@ -1748,7 +1748,7 @@ "aHO" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = -2},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet) "aHP" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "aHQ" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/crew_quarters/fitness) -"aHR" = (/obj/machinery/computer/HolodeckControl{programs_list_id = "ExodusMainPrograms"; linkedholodeck_area = /area/holodeck/alphadeck},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/fitness) +"aHR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/computer/holodeck,/turf/simulated/floor/tiled,/area/crew_quarters/fitness) "aHS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "aHT" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "aHU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) @@ -2624,10 +2624,10 @@ "aYG" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "aYH" = (/obj/machinery/status_display,/turf/simulated/wall,/area/hallway/primary/central_two) "aYI" = (/obj/machinery/door/airlock{name = "Bar"; req_access = list(25)},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/lino,/area/crew_quarters/bar) -"aYJ" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/tiled{color = "#ceb689"; icon_state = "steel_dirty"},/area/crew_quarters/mess) +"aYJ" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/effect/floor_decal/spline/fancy/wood,/obj/structure/table/woodentable{pixel_y = 2},/obj/structure/coffee_condi_display,/turf/simulated/floor/tiled{color = "#ceb689"; icon_state = "steel_dirty"},/area/crew_quarters/mess) "aYK" = (/obj/item/stool/bar/padded,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/tiled/dark,/area/crew_quarters/mess) "aYL" = (/obj/structure/bookcase{name = "bookcase (Fiction)"},/turf/simulated/floor/trim/wood,/area/library) -"aYM" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/structure/bed/chair/wood{dir = 4; pixel_y = 3},/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/tiled{color = "#ceb689"; icon_state = "steel_dirty"},/area/crew_quarters/mess) +"aYM" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/effect/floor_decal/spline/fancy/wood,/obj/structure/table/woodentable{pixel_y = 2},/obj/item/reagent_containers/vessel/bottle/syrup_bottle/liqueur{pixel_y = 13; pixel_x = -5},/obj/item/reagent_containers/vessel/bottle/syrup_bottle/caramel{pixel_y = 9; pixel_x = 7},/turf/simulated/floor/tiled{color = "#ceb689"; icon_state = "steel_dirty"},/area/crew_quarters/mess) "aYO" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/brown,/area/crew_quarters/mess) "aYP" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "aYQ" = (/obj/structure/sink/kitchen{pixel_y = 21},/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) @@ -7604,7 +7604,7 @@ "dxb" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 1},/area/shuttle/escape_pod1/station) "dyb" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 8},/area/shuttle/mining/station) "dzb" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 1},/area/shuttle/escape_pod2/station) -"dAb" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/structure/table/woodentable{pixel_y = 2},/obj/effect/floor_decal/spline/fancy/wood,/obj/item/modular_computer/telescreen/preset/civilian{name = "telescreen"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled{color = "#ceb689"; icon_state = "steel_dirty"},/area/crew_quarters/mess) +"dAb" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/structure/table/woodentable{pixel_y = 2},/obj/effect/floor_decal/spline/fancy/wood,/obj/item/modular_computer/telescreen/preset/civilian{name = "telescreen"; pixel_x = 32; pixel_y = 0},/obj/machinery/coffeemaker,/turf/simulated/floor/tiled{color = "#ceb689"; icon_state = "steel_dirty"},/area/crew_quarters/mess) "dBb" = (/obj/effect/floor_decal/corner/beige/diagonal,/obj/item/stool/bar/padded{pixel_x = -3; pixel_y = 23},/turf/simulated/floor/tiled{color = "#ceb689"; icon_state = "steel_dirty"},/area/crew_quarters/mess) "dCb" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/dark,/area/teleporter) "dDb" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/effect/floor_decal/industrial/arrows/yellow,/turf/simulated/floor/tiled/dark,/area/teleporter) diff --git a/maps/genesis/genesis-3.dmm b/maps/genesis/genesis-3.dmm index c2d18c8cfbb..b145bf7908b 100644 --- a/maps/genesis/genesis-3.dmm +++ b/maps/genesis/genesis-3.dmm @@ -4,187 +4,49 @@ "aad" = (/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/east,/area/space) "aae" = (/turf/space,/area/space) "aaf" = (/turf/unsimulated/wall,/area/space) -"aag" = (/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall,/area/space) "aah" = (/turf/space/transit/north,/area/space) "aai" = (/turf/space/transit/west,/area/space) "aaj" = (/turf/space/transit/east,/area/space) "aak" = (/turf/simulated/mineral,/area/space) -"aal" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/wall,/area/space) -"aam" = (/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) -"aan" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) -"aao" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall,/area/space) -"aap" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaq" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aar" = (/obj/structure/table/rack/holorack,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/head/hairflower,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"aas" = (/obj/effect/landmark/costume,/obj/structure/table/rack/holorack,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"aat" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"aau" = (/obj/structure/window/reinforced/holowindow{dir = 4},/obj/structure/flora/pottedplant{icon_state = "plant-10"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"aav" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"aaw" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_wildlife) -"aax" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_plating) -"aay" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) -"aaz" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaA" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaB" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaC" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaD" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaE" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall,/area/space) -"aaF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/north,/area/space) -"aaG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north,/area/space) -"aaH" = (/turf/unsimulated/beach/sand{density = 1; opacity = 1},/area/beach) -"aaI" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) -"aaJ" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaK" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaL" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"aaM" = (/obj/machinery/door/window/holowindoor,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"aaN" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"aaO" = (/obj/effect/landmark/event/other/holodeck/carps,/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_wildlife) -"aaP" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaQ" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aaR" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"aaF" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1; stopper = 0},/turf/space/transit/north,/area/space) +"aaG" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(left)"; direction = 8; tiles = 0; affect_ghosts = 1},/turf/space/transit/north,/area/space) +"aaH" = (/turf/unsimulated/beach/sand{opacity = 1; density = 1},/area/beach) "aaS" = (/turf/space/transit/north,/area/rescue_base/transit) -"aaT" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; tiles = 0},/turf/space/transit/north,/area/space) +"aaT" = (/obj/effect/step_trigger/thrower{name = "thrower_throwup"; direction = 1; tiles = 0},/turf/space/transit/north,/area/space) "aaU" = (/turf/unsimulated/beach/sand,/area/beach) "aaV" = (/obj/structure/closet,/turf/unsimulated/beach/sand,/area/beach) -"aaW" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaX" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaY" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aaZ" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 8},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aba" = (/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"abb" = (/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abc" = (/obj/structure/window/reinforced/holowindow{dir = 1},/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abd" = (/obj/structure/window/reinforced/holowindow{dir = 1},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abe" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Jury Box"},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abf" = (/obj/machinery/door/window/holowindoor{name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) "abg" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/beach) "abh" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) -"abi" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"abj" = (/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"abk" = (/obj/effect/decal/cleanable/dirt,/obj/structure/holostool,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"abl" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"abm" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"abn" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) -"abo" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abp" = (/obj/structure/window/reinforced/holowindow,/obj/machinery/door/window/holowindoor{dir = 1; name = "Court Reporter's Box"},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abq" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow,/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abr" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abs" = (/obj/structure/table/holo_woodentable,/obj/structure/window/reinforced/holowindow,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abt" = (/obj/structure/window/reinforced/holowindow,/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 1; icon_state = "right"; name = "Witness Box"},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abu" = (/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"abv" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abw" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet/corners{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) "abx" = (/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) "aby" = (/turf/unsimulated/wall,/area/alien) -"abz" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"abA" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"abB" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) -"abC" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abD" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abE" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abF" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abG" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abH" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abI" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abJ" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abK" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north,/area/space) -"abM" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north,/area/space) +"abL" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdownside"; tiles = 0; affect_ghosts = 1; nostop = 1},/turf/space/transit/north,/area/space) +"abM" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(right)"; direction = 4; tiles = 0; affect_ghosts = 1},/turf/space/transit/north,/area/space) "abN" = (/obj/effect/shuttle_landmark/rescue/internim,/turf/space/transit/north,/area/rescue_base/transit) "abO" = (/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"abP" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abQ" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abR" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"abS" = (/obj/structure/table/holo_woodentable,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abT" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abU" = (/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abV" = (/obj/structure/table/holo_woodentable,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"abW" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"abX" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) "abY" = (/turf/space/transit/north,/area/shuttle/escape/transit) "abZ" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand,/area/beach) -"aca" = (/obj/item/paper{info = "Some stuff is missing..."; name = "Insert alien artifacts here."},/turf/unsimulated/floor{icon_state = "dark"},/area/alien) +"aca" = (/obj/item/paper{name = "Insert alien artifacts here."; info = "Some stuff is missing..."},/turf/unsimulated/floor{icon_state = "dark"},/area/alien) "acb" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acc" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"acd" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"ace" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"acf" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acg" = (/obj/structure/bed/chair/holochair{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"ach" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aci" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/west,/area/space) -"acj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east,/area/space) +"aci" = (/obj/effect/step_trigger/thrower{name = "thrower_leftnostop"; affect_ghosts = 1},/turf/space/transit/west,/area/space) +"acj" = (/obj/effect/step_trigger/thrower{name = "thrower_leftnostop"; affect_ghosts = 1},/turf/space/transit/east,/area/space) "ack" = (/obj/effect/landmark/event/rift/exit,/turf/unsimulated/beach/sand,/area/beach) "acl" = (/obj/structure/closet/acloset,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acm" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"acn" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aco" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"acp" = (/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acq" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acr" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) "acs" = (/turf/space/transit/west,/area/shuttle/escape_pod5/transit) "act" = (/turf/space/transit/east,/area/shuttle/escape_pod5/transit) -"acu" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; tiles = 0},/turf/space/transit/east,/area/space) +"acu" = (/obj/effect/step_trigger/thrower{name = "thrower_throwup"; direction = 1; tiles = 0},/turf/space/transit/east,/area/space) "acv" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/item/reagent_containers/vessel/bottle/small/beer,/turf/unsimulated/beach/sand,/area/beach) "acw" = (/obj/structure/table/standard,/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/collectable/petehat{pixel_y = 5},/turf/unsimulated/beach/sand,/area/beach) "acx" = (/turf/space,/area/shuttle/alien/base) -"acy" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acz" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acA" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acB" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acC" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acD" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) "acE" = (/obj/effect/shuttle_landmark/escape_pod/transit/pod5,/turf/space/transit/west,/area/shuttle/escape_pod5/transit) -"acF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east,/area/space) +"acF" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1; stopper = 0},/turf/space/transit/east,/area/space) "acG" = (/obj/structure/table/standard,/obj/item/reagent_containers/food/packaged/chips,/turf/unsimulated/beach/sand,/area/beach) "acH" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/obj/item/reagent_containers/vessel/can/cola,/turf/unsimulated/beach/sand,/area/beach) "acI" = (/obj/item/beach_ball,/turf/unsimulated/beach/sand,/area/beach) -"acJ" = (/turf/simulated/shuttle/wall/syndi{dir = 2; icon_state = "syndiwall"},/area/syndicate_mothership/elite_squad) -"acK" = (/obj/structure/flora/pottedplant{icon_state = "plant-06"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) -"acL" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"acM" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acN" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acO" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"acP" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"acQ" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"acR" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"acJ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 2},/area/syndicate_mothership/elite_squad) "acS" = (/obj/structure/bed/alien,/turf/unsimulated/floor{icon_state = "dark"},/area/alien) -"acT" = (/obj/structure/window/reinforced/crescent,/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall,/area/space) -"acU" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall,/area/space) -"acV" = (/turf/simulated/floor/holofloor/space,/area/holodeck/source_space) -"acW" = (/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"acX" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) -"acY" = (/obj/structure/flora/pottedplant{icon_state = "plant-06"},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) -"acZ" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) -"ada" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adb" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adc" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"add" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"ade" = (/obj/structure/holohoop,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adf" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adg" = (/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adh" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"adi" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adj" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adk" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adl" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/holo/esword/red,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adm" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adn" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"ado" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "adp" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"adq" = (/obj/structure/mirror,/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_straight"},/area/syndicate_mothership/elite_squad) -"adr" = (/obj/effect/landmark/event/other/holodeck/randcarps,/turf/simulated/floor/holofloor/space,/area/holodeck/source_space) -"ads" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"adt" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"adu" = (/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"adv" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"adw" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adx" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"ady" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"adz" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adA" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adB" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adC" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"adD" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"adE" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdownsidenostop"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north,/area/space) +"adq" = (/obj/structure/mirror,/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 8},/area/syndicate_mothership/elite_squad) +"adE" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdownsidenostop"; tiles = 0; affect_ghosts = 1; stopper = 0; nostop = 1},/turf/space/transit/north,/area/space) "adF" = (/obj/structure/bed/chair,/obj/effect/landmark/event/rift/exit,/turf/unsimulated/beach/sand,/area/beach) "adG" = (/mob/living/simple_animal/crab/Coffee,/turf/unsimulated/beach/sand,/area/beach) "adH" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) @@ -194,53 +56,19 @@ "adL" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "adM" = (/obj/structure/sink{dir = 1; pixel_y = 16},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) "adN" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) -"adO" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"adP" = (/obj/structure/table/holo_woodentable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) -"adQ" = (/obj/machinery/door/window/holowindoor{name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) -"adR" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adS" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"adT" = (/obj/machinery/door/window/holowindoor{name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"adU" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 2; icon_state = "right"; name = "Red Corner"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"adV" = (/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "adW" = (/turf/space/transit/west,/area/shuttle/escape_pod3/transit) "adX" = (/turf/space/transit/east,/area/shuttle/escape_pod3/transit) "adY" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/sand,/area/beach) "adZ" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aea" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aeb" = (/obj/machinery/door/airlock/hatch{name = "Restroom"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) -"aec" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"aed" = (/turf/simulated/floor/holofloor/lino,/area/holodeck/source_meetinghall) -"aee" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_meetinghall) -"aef" = (/obj/item/beach_ball,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"aeg" = (/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"aeh" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aei" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aej" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aek" = (/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "ael" = (/obj/effect/shuttle_landmark/escape_pod/transit/pod3,/turf/space/transit/east,/area/shuttle/escape_pod3/transit) "aem" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aen" = (/obj/structure/bed/chair/comfy/black,/obj/effect/landmark/start/antags/commando,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aeo" = (/obj/machinery/light{dir = 4},/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "aep" = (/obj/machinery/door/airlock/hatch{name = "Cabin"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership/elite_squad) "aeq" = (/turf/unsimulated/wall,/area/prison/solitary) -"aer" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"aes" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aet" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aeu" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aev" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aew" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aex" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aey" = (/obj/item/beach_ball/holoball,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aez" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aeA" = (/obj/item/inflatable_duck,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"aeB" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aeC" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aeD" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aeE" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aeF" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aeG" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aeH" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"aeI" = (/turf/unsimulated/beach/coastline{density = 1; opacity = 1},/area/beach) +"aeI" = (/turf/unsimulated/beach/coastline{opacity = 1; density = 1},/area/beach) "aeJ" = (/turf/unsimulated/beach/coastline,/area/beach) "aeK" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1; req_access = list(150)},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership/elite_squad) "aeL" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) @@ -255,18 +83,7 @@ "aeU" = (/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) "aeV" = (/obj/effect/decal/cleanable/cobweb2,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) "aeW" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) -"aeX" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aeY" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"aeZ" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afa" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afb" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afc" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afd" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"afe" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aff" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"afg" = (/obj/effect/floor_decal/corner/blue/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"afh" = (/obj/effect/floor_decal/corner/blue/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"afi" = (/turf/unsimulated/beach/water{density = 1; opacity = 1},/area/beach) +"afi" = (/turf/unsimulated/beach/water{opacity = 1; density = 1},/area/beach) "afj" = (/turf/unsimulated/beach/water,/area/beach) "afk" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afl" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) @@ -274,70 +91,44 @@ "afn" = (/obj/structure/table/steel_reinforced,/obj/item/deck/cards,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afo" = (/obj/structure/table/steel_reinforced,/obj/machinery/recharger,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afp" = (/obj/effect/landmark/event/prison/prisioner,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) -"afq" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afr" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afs" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aft" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"afu" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) -"afv" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt) "afw" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afx" = (/obj/effect/landmark/start/antags/commando,/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afy" = (/obj/machinery/mech_recharger,/obj/mecha/combat/marauder/mauler,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"afz" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"afA" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet{dir = 8},/area/holodeck/source_meetinghall) -"afB" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) -"afC" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afD" = (/turf/unsimulated/beach/sand{icon_state = "beach"},/area/holodeck/source_beach) -"afE" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"afF" = (/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"afG" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Green Corner"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "afH" = (/obj/effect/shuttle_landmark/escape/internim,/turf/space/transit/north,/area/shuttle/escape/transit) "afI" = (/obj/effect/step_trigger/teleporter/random,/turf/space,/area/space) -"afJ" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{id = "syndicate_elite_mech_room"; name = "Mech Room Door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"afK" = (/obj/machinery/button/remote/blast_door{id = "syndicate_elite_mech_room"; name = "Mech Access"; pixel_x = 32; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"afJ" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{name = "Mech Room Door"; id = "syndicate_elite_mech_room"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"afK" = (/obj/machinery/button/remote/blast_door{name = "Mech Access"; pixel_x = 32; id = "syndicate_elite_mech_room"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afL" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/elite_squad) -"afM" = (/mob/living/silicon/decoy{icon_state = "ai-malf"; name = "GLaDOS"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/elite_squad) +"afM" = (/mob/living/silicon/decoy{name = "GLaDOS"; icon_state = "ai-malf"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/elite_squad) "afN" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/elite_squad) "afO" = (/obj/structure/bed,/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) -"afP" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afQ" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afR" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"afS" = (/turf/simulated/floor/holofloor/beach/water,/area/holodeck/source_beach) "afT" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/dark,/area/syndicate_mothership/elite_squad) "afU" = (/obj/machinery/computer/shuttle_control/multi/elite_syndicate,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"afV" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "emerc_base"; name = "docking port controller"; pixel_y = -25; req_one_access = 150; tag_door = "emerc_airlock_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"afV" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "docking port controller"; pixel_y = -25; frequency = 1331; req_one_access = 150; id_tag = "emerc_base"; tag_door = "emerc_airlock_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afW" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "afX" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/wall,/area/prison/solitary) -"afY" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"afZ" = (/obj/structure/holohoop{dir = 1},/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aga" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"agb" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"agc" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/holo/esword/green,/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"agd" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"age" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"agf" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_airlock_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"agg" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall,/area/space) +"agf" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1331; locked = 1; id_tag = "emerc_airlock_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "agh" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) "agi" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) -"agj" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_airlock_dock_door"; locked = 1},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) +"agj" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1331; locked = 1; id_tag = "emerc_airlock_dock_door"},/turf/simulated/floor,/area/syndicate_mothership/elite_squad) "agk" = (/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/north,/area/space) -"agl" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/shuttle/syndicate_elite/mothership) +"agl" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/shuttle/syndicate_elite/mothership) "agm" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/space,/area/shuttle/syndicate_elite/mothership) -"agn" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_shuttle_outer"; locked = 1; name = "Ship External Access"; req_access = list(150)},/obj/machinery/shield_diffuser,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) +"agn" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; icon_state = "door_locked"; frequency = 1331; locked = 1; req_access = list(150); id_tag = "emerc_shuttle_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "ago" = (/obj/structure/shuttle/engine/heater{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) "agp" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "emerc_shuttle_pump"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "agq" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) -"agr" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "emerc_shuttle_sensor"; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "emerc_shuttle_pump"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) +"agr" = (/obj/machinery/airlock_sensor{pixel_y = 25; frequency = 1331; id_tag = "emerc_shuttle_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "emerc_shuttle_pump"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "ags" = (/turf/simulated/shuttle/wall/corner/syndi/sw,/area/shuttle/syndicate_elite/mothership) "agt" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "emerc_shuttle_pump"},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "agu" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) -"agv" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "emerc_shuttle"; pixel_x = 25; req_access = list(150)},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "emerc_shuttle_pump"},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) +"agv" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = 25; frequency = 1331; req_access = list(150); id_tag = "emerc_shuttle"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "emerc_shuttle_pump"},/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) "agw" = (/turf/simulated/shuttle/wall/corner/syndi/se,/area/shuttle/syndicate_elite/mothership) -"agx" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "emerc_shuttle_inner"; locked = 1; name = "Ship External Access"; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) -"agy" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "elite_syndicate_ship"; name = "Shuttle Blast Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/shuttle/syndicate_elite/mothership) +"agx" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; icon_state = "door_locked"; frequency = 1331; locked = 1; req_access = list(150); id_tag = "emerc_shuttle_inner"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/red,/area/shuttle/syndicate_elite/mothership) +"agy" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "elite_syndicate_ship"},/turf/simulated/floor/plating,/area/shuttle/syndicate_elite/mothership) "agz" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector{dir = 4},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agA" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) -"agB" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "emerc_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) +"agB" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/obj/machinery/access_button{name = "interior access button"; pixel_x = 25; pixel_y = 25; frequency = 1331; req_access = list(150); command = "cycle_interior"; master_tag = "emerc_shuttle"},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agC" = (/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agD" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/landmark{name = "Syndicate-Commando-Bomb"},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agE" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) @@ -347,28 +138,29 @@ "agI" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/red{dir = 9},/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agJ" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/red{dir = 6},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agK" = (/turf/simulated/shuttle/wall/corner/syndi/nw,/area/syndicate_mothership/ninja) -"agL" = (/turf/simulated/shuttle/wall/syndi{dir = 6; icon_state = "syndiwall"},/area/syndicate_mothership/ninja) +"agL" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/syndicate_mothership/ninja) "agM" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/ninja) "agN" = (/turf/simulated/shuttle/wall/corner/syndi/ne,/area/syndicate_mothership/ninja) -"agO" = (/turf/simulated/shuttle/wall/syndi{dir = 9; icon_state = "syndiwall"},/area/syndicate_mothership/ninja) +"agO" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 9},/area/syndicate_mothership/ninja) "agP" = (/turf/simulated/floor/shuttle/red,/area/syndicate_mothership/ninja) -"agQ" = (/turf/simulated/shuttle/wall/syndi{dir = 5; icon_state = "syndiwall"},/area/syndicate_mothership/ninja) +"agQ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 5},/area/syndicate_mothership/ninja) "agR" = (/turf/space/transit/north,/area/syndicate_station/transit) -"agS" = (/obj/machinery/button/remote/blast_door{id = "elite_syndicate_ship"; name = "remote shutter control"; req_access = list(150)},/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) +"agS" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; id = "elite_syndicate_ship"; req_access = list(150)},/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agT" = (/obj/structure/bed/chair,/obj/effect/shuttle_landmark/elite_syndicate/start,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agU" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agV" = (/obj/structure/bed/chair{dir = 1},/obj/effect/landmark/start/antags/ninja,/turf/simulated/floor/shuttle/red,/area/syndicate_mothership/ninja) -"agW" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north,/area/space) +"agW" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/turf/space/transit/north,/area/space) "agX" = (/obj/effect/step_trigger/teleporter/random/admin,/turf/space/transit/south,/area/space) "agY" = (/obj/machinery/computer/shuttle_control/multi/elite_syndicate,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/tiled/dark,/area/shuttle/syndicate_elite/mothership) "agZ" = (/obj/effect/landmark/start/antags/ninja,/turf/simulated/floor/shuttle/red,/area/syndicate_mothership/ninja) "aha" = (/obj/effect/shuttle_landmark/syndi/internim,/turf/space/transit/north,/area/syndicate_station/transit) "ahb" = (/turf/space/transit/south,/area/space) -"ahc" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "elite_syndicate_ship"; name = "Shuttle Blast Shutters"; opacity = 0},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) +"ahc" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "elite_syndicate_ship"},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) "ahd" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/syndicate_mothership/ninja) +"ahe" = (/mob/living/silicon/decoy{name = "A.L.I.C.E."},/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "ahf" = (/obj/machinery/teleporter_gate,/turf/simulated/floor/plating,/area/syndicate_mothership/ninja) "ahg" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced/crescent{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_mothership/ninja) -"ahh" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 1; name = "thrower_throwupsidenostop"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north,/area/space) +"ahh" = (/obj/effect/step_trigger/thrower{name = "thrower_throwupsidenostop"; direction = 1; tiles = 0; affect_ghosts = 1; stopper = 0; nostop = 1},/turf/space/transit/north,/area/space) "ahi" = (/turf/simulated/shuttle/wall/corner/syndi/sw,/area/syndicate_mothership/ninja) "ahj" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_mothership/ninja) "ahk" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_mothership/ninja) @@ -379,26 +171,26 @@ "ahp" = (/turf/space/transit/north,/area/shuttle/escape_pod2/transit) "ahq" = (/obj/effect/shuttle_landmark/escape_pod/transit/pod1,/turf/space/transit/north,/area/shuttle/escape_pod1/transit) "ahr" = (/obj/effect/shuttle_landmark/escape_pod/transit/pod2,/turf/space/transit/north,/area/shuttle/escape_pod2/transit) -"ahs" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 1; name = "thrower_throwupsidenostop"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/south,/area/space) -"aht" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/south,/area/space) +"ahs" = (/obj/effect/step_trigger/thrower{name = "thrower_throwupsidenostop"; direction = 1; tiles = 0; affect_ghosts = 1; stopper = 0; nostop = 1},/turf/space/transit/south,/area/space) +"aht" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/turf/space/transit/south,/area/space) "ahu" = (/turf/space/transit/south,/area/shuttle/syndicate_elite/transit) -"ahv" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/east,/area/space) +"ahv" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(left)"; direction = 8; tiles = 0; affect_ghosts = 1},/turf/space/transit/east,/area/space) "ahw" = (/turf/space/transit/east,/area/shuttle/administration/transit) "ahx" = (/obj/effect/shuttle_landmark/elite_syndicate/internim,/turf/space/transit/south,/area/shuttle/syndicate_elite/transit) -"ahy" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/east,/area/space) +"ahy" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(right)"; direction = 4; tiles = 0; affect_ghosts = 1},/turf/space/transit/east,/area/space) "ahz" = (/obj/effect/shuttle_landmark/administration/internim,/turf/space/transit/east,/area/shuttle/administration/transit) -"ahA" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/east,/area/space) +"ahA" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/turf/space/transit/east,/area/space) "ahB" = (/turf/space/transit/east,/area/shuttle/deathsquad/transit) "ahC" = (/obj/effect/shuttle_landmark/deathsquad/internim,/turf/space/transit/east,/area/shuttle/deathsquad/transit) "ahD" = (/turf/space/transit/south,/area/shuttle/merchant/transit) "ahE" = (/obj/effect/shuttle_landmark/merchant/internim,/turf/space/transit/south,/area/shuttle/merchant/transit) -"ahF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) -"ahG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) -"ahH" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/south,/area/space) -"ahI" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/south,/area/space) +"ahF" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) +"ahG" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) +"ahH" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(left)"; direction = 8; tiles = 0; affect_ghosts = 1},/turf/space/transit/south,/area/space) +"ahI" = (/obj/effect/step_trigger/thrower{name = "thrower_escapeshuttletop(right)"; direction = 4; tiles = 0; affect_ghosts = 1},/turf/space/transit/south,/area/space) "ahJ" = (/turf/unsimulated/mineral,/area/rescue_base/base) "ahK" = (/turf/unsimulated/wall,/area/rescue_base/base) -"ahL" = (/turf/unsimulated/wall{desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"; name = "Facility Access"},/area/rescue_base/base) +"ahL" = (/turf/unsimulated/wall{name = "Facility Access"; desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"},/area/rescue_base/base) "ahM" = (/obj/structure/table/steel_reinforced,/obj/item/material/hatchet/tacknife,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ahN" = (/obj/structure/table/steel_reinforced,/obj/item/storage/firstaid/regular,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ahO" = (/obj/machinery/floodlight,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) @@ -467,7 +259,7 @@ "aiZ" = (/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/rescue_base/base) "aja" = (/obj/structure/flora/ausbushes/fullgrass,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/rescue_base/base) "ajb" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/z8,/obj/item/gun/projectile/automatic/z8,/obj/item/grenade/frag/shell,/obj/item/grenade/frag/shell,/obj/item/grenade/frag/shell,/obj/item/grenade/frag/shell,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) -"ajc" = (/obj/machinery/door/airlock/centcom{name = "Restricted Equipment"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{id = "heavyrescue"; name = "Restricted Equipment"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"ajc" = (/obj/machinery/door/airlock/centcom{name = "Restricted Equipment"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{name = "Restricted Equipment"; id = "heavyrescue"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "ajd" = (/obj/structure/table/rack,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aje" = (/obj/structure/table/reinforced,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ajf" = (/obj/item/stool,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) @@ -477,11 +269,11 @@ "ajj" = (/obj/structure/table/rack,/obj/item/gun/launcher/grenade,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "ajk" = (/obj/structure/table/rack,/obj/item/storage/box/flashbangs,/obj/item/storage/box/flashbangs,/obj/item/storage/box/teargas,/obj/item/storage/box/teargas,/obj/item/storage/box/emps,/obj/item/storage/box/emps,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "ajl" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space) -"ajm" = (/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/mask/balaclava,/obj/item/material/coin/silver,/obj/structure/closet{icon_closed = "syndicate1"; icon_opened = "syndicate1open"; icon_state = "syndicate1"; name = "emergency response team wardrobe"},/obj/item/clothing/under/tactical,/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"ajm" = (/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/mask/balaclava,/obj/item/material/coin/silver,/obj/structure/closet{name = "emergency response team wardrobe"; icon_state = "syndicate1"; icon_closed = "syndicate1"; icon_opened = "syndicate1open"},/obj/item/clothing/under/tactical,/obj/item/clothing/accessory/holochip/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "ajn" = (/obj/structure/bed/padded,/obj/item/bedsheet/captain,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "ajo" = (/obj/structure/bed/padded,/obj/item/bedsheet/captain,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "ajp" = (/obj/machinery/vending/coffee{prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) -"ajq" = (/obj/machinery/door/airlock/centcom{name = "Heavy Equipment"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{dir = 4; id = "standardrescue"; name = "Heavy Equipment"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"ajq" = (/obj/machinery/door/airlock/centcom{name = "Heavy Equipment"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{name = "Heavy Equipment"; dir = 4; id = "standardrescue"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "ajr" = (/obj/machinery/door/airlock/centcom{name = "Detention"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) "ajs" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/space,/area/space) "ajt" = (/turf/unsimulated/wall,/area/syndicate_mothership) @@ -525,11 +317,11 @@ "akf" = (/obj/machinery/lapvend,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akg" = (/obj/structure/reagent_dispensers/water_cooler,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akh" = (/obj/structure/table/reinforced,/obj/item/device/radio/intercom/specops{pixel_y = 22},/obj/item/storage/box/cups,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) -"aki" = (/obj/structure/table/rack,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aki" = (/obj/structure/table/rack,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akj" = (/obj/structure/table/rack,/obj/item/gun/energy/laser,/obj/item/gun/energy/laser,/obj/item/gun/energy/laser,/obj/item/gun/energy/laser,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akk" = (/obj/machinery/chemical_dispenser/ert,/obj/item/reagent_containers/vessel/beaker/large,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akl" = (/obj/item/device/pda/syndicate,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) -"akm" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"akm" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akn" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "ako" = (/obj/structure/table/reinforced,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akp" = (/obj/structure/table/reinforced,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/roller,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) @@ -558,9 +350,9 @@ "akM" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/rcd,/obj/item/rig_module/vision/meson,/obj/item/rig_module/vision/meson,/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akN" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "akO" = (/obj/structure/window/reinforced/crescent,/obj/structure/table/rack,/obj/item/rig/ert/engineer,/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) -"akP" = (/turf/unsimulated/wall{desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"; name = "Foxtrot Barracks"},/area/rescue_base/base) +"akP" = (/turf/unsimulated/wall{name = "Foxtrot Barracks"; desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"},/area/rescue_base/base) "akQ" = (/turf/simulated/shuttle/wall/corner/syndi/nw,/area/syndicate_station/start) -"akR" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "syndieshutters"; name = "Shuttle Blast Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/syndicate_station/start) +"akR" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "syndieshutters"},/turf/simulated/floor/plating,/area/syndicate_station/start) "akS" = (/turf/simulated/shuttle/wall/corner/syndi/ne,/area/syndicate_station/start) "akT" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "akU" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) @@ -578,15 +370,15 @@ "alg" = (/obj/machinery/door/airlock/centcom{name = "Security"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "alh" = (/obj/machinery/door/airlock/centcom{name = "Medical"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "ali" = (/obj/machinery/vending/medical,/turf/unsimulated/wall,/area/rescue_base/base) -"alj" = (/obj/machinery/door/airlock/centcom{name = "EVA"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{dir = 4; id = "standardrescue"; name = "EVA"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"alj" = (/obj/machinery/door/airlock/centcom{name = "EVA"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{name = "EVA"; dir = 4; id = "standardrescue"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "alk" = (/turf/space,/area/shuttle/escape_pod1/centcom) "all" = (/turf/space,/area/shuttle/escape_pod2/centcom) -"alm" = (/turf/simulated/shuttle/wall/syndi{dir = 9; icon_state = "syndiwall"},/area/syndicate_station/start) +"alm" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 9},/area/syndicate_station/start) "aln" = (/obj/machinery/recharger,/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "alo" = (/obj/item/modular_computer/console/preset/syndicate,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "alp" = (/obj/machinery/computer/shuttle_control/multi/syndicate,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "alq" = (/obj/structure/computerframe,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"alr" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters"; name = "remote shutter control"; req_access = list(150)},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"alr" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; id = "syndieshutters"; req_access = list(150)},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "als" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "alt" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "alu" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) @@ -594,7 +386,7 @@ "alw" = (/obj/machinery/door/airlock/centcom{name = "Unit Area"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "alx" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "aly" = (/obj/machinery/door/airlock/centcom{name = "Echo Barracks"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) -"alz" = (/turf/unsimulated/wall{desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"; name = "Delta Barracks"},/area/rescue_base/base) +"alz" = (/turf/unsimulated/wall{name = "Delta Barracks"; desc = "A secure airlock. Doesn't look like you can get through easily."; icon = 'icons/obj/doors/doorele.dmi'; icon_state = "door_locked"},/area/rescue_base/base) "alA" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 2},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "alB" = (/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "alC" = (/obj/structure/bed/chair{dir = 1},/obj/effect/shuttle_landmark/syndi/start,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) @@ -613,8 +405,8 @@ "alP" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "alQ" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "alR" = (/obj/item/device/radio/intercom/specops{dir = 1; pixel_y = -22},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) -"alS" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "rescue_base"; pixel_x = 5; pixel_y = -25; tag_door = "rescue_base_hatch"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) -"alT" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall"},/area/syndicate_station/start) +"alS" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = 5; pixel_y = -25; frequency = 1331; id_tag = "rescue_base"; tag_door = "rescue_base_hatch"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"alT" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 1},/area/syndicate_station/start) "alU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/space,/area/centcom/evac) "alV" = (/obj/structure/shuttle/engine/propulsion{dir = 1},/turf/space,/area/centcom/evac) "alW" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/space,/area/centcom/evac) @@ -634,17 +426,18 @@ "amk" = (/obj/machinery/door/airlock/centcom{name = "Command"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "aml" = (/obj/machinery/door/airlock/centcom{name = "Engineering"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "amm" = (/obj/machinery/vending/engineering,/turf/unsimulated/wall,/area/rescue_base/base) -"amn" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "rescue_base_hatch"; name = "Landing Pad"; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"amn" = (/obj/machinery/door/airlock/external{name = "Landing Pad"; frequency = 1331; req_access = list(103); id_tag = "rescue_base_hatch"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "amo" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"},/area/centcom/evac) "amp" = (/obj/structure/window/reinforced/crescent,/obj/structure/shuttle/engine/heater{dir = 1},/turf/simulated/floor/plating/airless,/area/centcom/evac) "amq" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 8},/area/centcom/evac) "amr" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 4},/area/centcom/evac) -"ams" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_1_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"amt" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_2_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"ams" = (/obj/machinery/door/airlock/external{name = "Recovery Shuttle Dock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_pod_1_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"amt" = (/obj/machinery/door/airlock/external{name = "Recovery Shuttle Dock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_pod_2_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "amu" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 4},/area/centcom/evac) "amv" = (/obj/item/stack/material/glass{amount = 15},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "amw" = (/obj/machinery/light,/obj/item/device/radio/intercom/syndicate{dir = 1; pixel_y = -22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "amx" = (/obj/item/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/pen{pixel_y = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"amy" = (/mob/living/simple_animal/tindalos{name = "Eddy"},/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/natural/grass,/area/merchant_station) "amz" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "amA" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "amB" = (/obj/structure/table/reinforced,/obj/item/storage/box/trackimp,/obj/item/storage/box/cdeathalarm_kit,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) @@ -662,11 +455,11 @@ "amN" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 6},/area/centcom/evac) "amO" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 9},/area/centcom/evac) "amP" = (/obj/structure/closet/emcloset,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"amQ" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_1_recovery"; pixel_x = 25; pixel_y = 30; req_one_access = list(13); tag_door = "escape_pod_1_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"amQ" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = 25; pixel_y = 30; frequency = 1380; req_one_access = list(13); id_tag = "escape_pod_1_recovery"; tag_door = "escape_pod_1_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "amR" = (/obj/structure/table/standard,/obj/item/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/storage/firstaid/toxin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "amS" = (/obj/structure/table/standard,/obj/item/storage/firstaid/fire,/obj/item/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "amT" = (/obj/structure/table/standard,/obj/item/storage/firstaid/regular{pixel_x = 2},/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"amU" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_2_recovery"; pixel_x = -25; pixel_y = 30; req_one_access = list(13); tag_door = "escape_pod_2_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"amU" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; pixel_y = 30; frequency = 1380; req_one_access = list(13); id_tag = "escape_pod_2_recovery"; tag_door = "escape_pod_2_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "amV" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 5},/area/centcom/evac) "amW" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/centcom/evac) "amX" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/centcom/evac) @@ -674,14 +467,15 @@ "amZ" = (/turf/simulated/shuttle/wall/corner/syndi/sw,/area/syndicate_station/start) "ana" = (/obj/machinery/door/window/northright{name = "Flight Deck"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "anb" = (/turf/simulated/shuttle/wall/corner/syndi/se,/area/syndicate_station/start) +"anc" = (/obj/structure/table/woodentable,/obj/item/immovable_wand,/obj/item/paper/immovable_wand_note,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "and" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) "ane" = (/obj/machinery/shower{pixel_y = 32},/obj/structure/window/basic{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) "anf" = (/obj/machinery/shower{pixel_y = 32},/obj/item/soap/syndie,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) "ang" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "anh" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/armor/vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "ani" = (/obj/structure/bed/chair/office/dark,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) -"anj" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "rescue_base_hatch"; req_access = list(103)},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) -"ank" = (/obj/machinery/door/airlock/centcom{name = "Garage"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{dir = 4; id = "standardrescue"; name = "Garage"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"anj" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/door/airlock/external{frequency = 1331; req_access = list(103); id_tag = "rescue_base_hatch"},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) +"ank" = (/obj/machinery/door/airlock/centcom{name = "Garage"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{name = "Garage"; dir = 4; id = "standardrescue"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "anl" = (/turf/simulated/floor/plating,/area/centcom/evac) "anm" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 8},/area/shuttle/escape/centcom) "ann" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) @@ -706,17 +500,17 @@ "anG" = (/obj/machinery/shieldgen,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "anH" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) "anI" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) -"anJ" = (/obj/machinery/button/remote/blast_door{id = "rescuegarage"; name = "Garage"; pixel_x = -24; pixel_y = -4; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"anJ" = (/obj/machinery/button/remote/blast_door{name = "Garage"; pixel_x = -24; pixel_y = -4; id = "rescuegarage"; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "anK" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "anL" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/teleporter,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "anM" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) -"anN" = (/turf/simulated/shuttle/wall/syndi{dir = 2; icon_state = "syndiwall"},/area/syndicate_station/start) +"anN" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 2},/area/syndicate_station/start) "anO" = (/obj/machinery/door/airlock/maintenance_hatch{req_access = list(101)},/turf/simulated/floor/plating,/area/centcom/evac) -"anP" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "window-whiteship"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"anP" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 8; id = "merchantshuttle"},/obj/structure/window/shuttle{icon_state = "window-whiteship"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "anQ" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 1},/area/centcom/evac) "anR" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "anS" = (/obj/structure/bed/chair{dir = 8},/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"anT" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/north,/area/space) +"anT" = (/obj/effect/step_trigger/thrower{name = "thrower_leftnostop"; affect_ghosts = 1},/turf/space/transit/north,/area/space) "anU" = (/obj/structure/mirror{dir = 4; pixel_x = -32},/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/syndicate_mothership) "anV" = (/obj/machinery/door/airlock/centcom{name = "Suit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "anW" = (/obj/structure/table/steel,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) @@ -729,14 +523,14 @@ "aod" = (/obj/structure/reagent_dispensers/fueltank,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoe" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aof" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) -"aog" = (/obj/machinery/door/blast/regular{id = "rescuegarage"; name = "Garage Exit"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"aog" = (/obj/machinery/door/blast/regular{name = "Garage Exit"; id = "rescuegarage"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "aoh" = (/obj/machinery/mech_recharger,/obj/mecha/medical/odysseus/loaded,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "aoi" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aoj" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aok" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aol" = (/obj/structure/closet,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aom" = (/obj/structure/table/rack,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aon" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aon" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aoo" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/obj/item/gun/energy/ionrifle,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aop" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/gun/projectile/automatic/c20r,/obj/item/gun/projectile/automatic/c20r,/obj/item/gun/projectile/automatic/c20r,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aoq" = (/obj/item/modular_computer/console/preset/command,/obj/item/card/id/centcom,/turf/unsimulated/floor{icon_state = "dark"},/area/rescue_base/base) @@ -748,23 +542,23 @@ "aow" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aox" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aoy" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"aoz" = (/obj/structure/sign/poster{poster_type = "/datum/poster/bay_50"; pixel_x = -32},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aoz" = (/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_50"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aoA" = (/obj/structure/closet,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aoB" = (/obj/structure/window/reinforced/crescent,/turf/space,/area/space) -"aoC" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "merc_base"; pixel_x = -25; pixel_y = -5},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aoC" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; pixel_y = -5; frequency = 1331; id_tag = "merc_base"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aoD" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aoE" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aoF" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"aoG" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/button/remote/blast_door{id = "heavyrescue"; name = "Heavy Gear"; pixel_x = -5; pixel_y = 4},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) +"aoG" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/button/remote/blast_door{name = "Heavy Gear"; pixel_x = -5; pixel_y = 4; id = "heavyrescue"},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) "aoH" = (/obj/item/modular_computer/console/preset/ert,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) -"aoI" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/button/remote/blast_door{id = "standardrescue"; name = "Standard Gear"; pixel_x = 5; pixel_y = 4},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) +"aoI" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/button/remote/blast_door{name = "Standard Gear"; pixel_x = 5; pixel_y = 4; id = "standardrescue"},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) "aoJ" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoK" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/backpack/ert/engineer,/obj/item/storage/belt/utility/full,/obj/item/storage/belt/utility/full,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/obj/item/clothing/gloves/insulated,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoL" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoM" = (/obj/structure/table/rack,/obj/item/device/flash,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/melee/baton/loaded,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/grenade/chem_grenade/metalfoam,/obj/item/inflatable_dispenser,/obj/item/inflatable_dispenser,/obj/item/pickaxe/drill/diamonddrill,/obj/item/pickaxe/drill/diamonddrill,/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoN" = (/obj/structure/table/reinforced,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/atmos,/obj/item/taperoll/atmos,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/tape_roll,/obj/item/tape_roll,/obj/item/tape_roll,/obj/item/tape_roll,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/obj/item/cell/high,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoO" = (/obj/structure/table/reinforced,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/construction/rcd,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) -"aoP" = (/obj/structure/table/reinforced,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) +"aoP" = (/obj/structure/table/reinforced,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoQ" = (/obj/structure/table/reinforced,/obj/item/circuitboard/smes,/obj/item/circuitboard/smes,/obj/item/smes_coil,/obj/item/smes_coil,/obj/item/smes_coil/super_capacity,/obj/item/smes_coil/super_capacity,/obj/item/smes_coil/super_io,/obj/item/smes_coil/super_io,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoR" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoS" = (/obj/machinery/mech_recharger,/obj/mecha/working/hoverpod,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) @@ -772,33 +566,34 @@ "aoU" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/armor_booster/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/armor_booster/antiproj_armor_booster,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "aoV" = (/obj/structure/table/standard,/obj/item/hand_labeler,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "aoW" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) -"aoX" = (/obj/machinery/flasher{id = "syndieflash"; pixel_y = 28},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) +"aoX" = (/obj/machinery/flasher{pixel_y = 28; id = "syndieflash"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) "aoY" = (/obj/item/device/radio/electropack,/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) "aoZ" = (/obj/item/device/radio/intercom/syndicate{dir = 1; pixel_y = -22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apa" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"apb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "merc_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"apc" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "merc_shuttle"; pixel_x = -8; pixel_y = 25; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"apd" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_shuttle_outer"; name = "Ship External Access"; req_access = list(150)},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/syndicate_station/start) -"ape" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_base_hatch"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"apb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/airlock_sensor{pixel_x = 8; pixel_y = 25; frequency = 1331; id_tag = "merc_shuttle_sensor"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"apc" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = -8; pixel_y = 25; frequency = 1331; req_access = list(150); id_tag = "merc_shuttle"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"apd" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; frequency = 1331; req_access = list(150); id_tag = "merc_shuttle_outer"},/obj/machinery/door/blast/regular{name = "Outer Airlock"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "smindicate"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/syndicate_station/start) +"ape" = (/obj/machinery/door/airlock/external{frequency = 1331; req_access = list(150); id_tag = "merc_base_hatch"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apf" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apg" = (/obj/machinery/door/airlock/vault{name = "Armory"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"aph" = (/mob/living/simple_animal/tindalos{name = "Eddy"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/merchant_station) "api" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apj" = (/obj/structure/table/woodentable{dir = 5},/obj/item/material/ashtray/bronze,/obj/item/cigbutt/cigarbutt,/obj/item/device/radio/phone{desc = "Should anything ever go wrong..."; frequency = 1345},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) "apk" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) "apl" = (/obj/structure/table/woodentable{dir = 5},/obj/item/storage/fancy/cigar,/obj/item/flame/lighter/zippo,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/rescue_base/base) -"apm" = (/obj/machinery/door/airlock/centcom{name = "Combat Exosuit"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{id = "heavyrescue"; name = "Combat Exosuit"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) +"apm" = (/obj/machinery/door/airlock/centcom{name = "Combat Exosuit"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{name = "Combat Exosuit"; id = "heavyrescue"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "apn" = (/obj/mecha/combat/gygax/dark,/obj/machinery/mech_recharger,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/rescue_base/base) "apo" = (/obj/effect/shuttle_landmark/escape_pod/out/pod1,/turf/space,/area/shuttle/escape_pod1/centcom) -"app" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_5_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"apq" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_5_recovery"; pixel_x = -25; pixel_y = 25; req_one_access = list(13); tag_door = "escape_pod_5_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"app" = (/obj/machinery/door/airlock/external{name = "Recovery Shuttle Dock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_pod_5_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"apq" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; pixel_y = 25; frequency = 1380; req_one_access = list(13); id_tag = "escape_pod_5_recovery"; tag_door = "escape_pod_5_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "apr" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"aps" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_3_recovery"; pixel_x = 25; pixel_y = -25; req_one_access = list(13); tag_door = "escape_pod_3_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"apt" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_3_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"aps" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = 25; pixel_y = -25; frequency = 1380; req_one_access = list(13); id_tag = "escape_pod_3_recovery"; tag_door = "escape_pod_3_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"apt" = (/obj/machinery/door/airlock/external{name = "Recovery Shuttle Dock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_pod_3_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "apu" = (/obj/effect/shuttle_landmark/escape_pod/out/pod2,/turf/space,/area/shuttle/escape_pod2/centcom) "apv" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/syndicate_station/start) "apw" = (/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) "apx" = (/obj/item/cigbutt,/turf/simulated/floor/shuttle/black,/area/syndicate_station/start) -"apy" = (/obj/machinery/door/window{dir = 2; name = "Seating"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"apy" = (/obj/machinery/door/window{name = "Seating"; dir = 2; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apz" = (/obj/structure/table/standard,/obj/machinery/computer/pod/old/syndicate{id = "smindicate"},/obj/machinery/door/window{name = "Blast Door Control"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apA" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apB" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) @@ -815,9 +610,9 @@ "apM" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/rescue_base/base) "apN" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "apO" = (/turf/unsimulated/wall,/area/centcom) -"apP" = (/obj/machinery/door/window{dir = 1; name = "Cell"; req_access = list(150)},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"apP" = (/obj/machinery/door/window{name = "Cell"; dir = 1; req_access = list(150)},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apQ" = (/obj/machinery/vending/assist/antag,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"apR" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_shuttle_inner"; name = "Ship External Access"; req_access = list(0)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"apR" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; frequency = 1331; req_access = list(0); id_tag = "merc_shuttle_inner"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "apS" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/space,/area/space) "apT" = (/obj/structure/table/rack,/obj/item/storage/box/handcuffs{pixel_x = 4; pixel_y = 2},/obj/item/storage/box/flashbangs,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apU" = (/obj/structure/table/rack,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/pinpointer/nukeop,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/obj/item/shield/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) @@ -825,13 +620,13 @@ "apW" = (/obj/structure/table/rack,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/device/suit_cooling_unit,/obj/item/ammo_magazine/c556,/obj/item/ammo_magazine/c556,/obj/item/ammo_magazine/c556,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "apX" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 8},/area/centcom/evac) "apY" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"apZ" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom) +"apZ" = (/turf/unsimulated/wall{name = "Shuttle Bay Blast Door"; desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"},/area/centcom) "aqa" = (/turf/unsimulated/floor{name = "plating"},/area/centcom) "aqb" = (/turf/simulated/floor/plating,/area/syndicate_mothership/ninja) -"aqc" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/button/flasher{id = "syndieflash"; name = "Flasher"; pixel_x = 27},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aqc" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/button/flasher{name = "Flasher"; pixel_x = 27; id = "syndieflash"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqd" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqe" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aqf" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "merc_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aqf" = (/obj/machinery/access_button{name = "interior access button"; pixel_x = 25; pixel_y = 25; frequency = 1331; req_access = list(150); command = "cycle_interior"; master_tag = "merc_shuttle"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqg" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqh" = (/obj/machinery/door/airlock/centcom{name = "Hardsuit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aqi" = (/obj/structure/closet/secure_closet/personal/patient,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) @@ -843,7 +638,7 @@ "aqo" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/shuttle/administration/centcom) "aqp" = (/obj/item/material/kitchen/utensil/knife{pixel_x = -6},/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = -1},/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 4},/obj/item/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 9},/obj/structure/table/glass,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqq" = (/obj/machinery/door/window{name = "Brig"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aqr" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Preparation"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aqr" = (/obj/machinery/door/window{name = "Preparation"; icon_state = "right"; dir = 8; req_access = list(150); base_state = "right"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqs" = (/obj/structure/closet/syndicate/suit{name = "suit closet"},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqt" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas/syndicate,/obj/item/clothing/suit/space/void/syndi/prepared,/obj/item/clothing/accessory/holochip/nuke,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aqu" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) @@ -863,8 +658,8 @@ "aqI" = (/obj/machinery/light{dir = 1},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "aqJ" = (/obj/machinery/sleeper,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "aqK" = (/obj/structure/closet{name = "custodial"},/obj/item/reagent_containers/vessel/bucket,/obj/item/mop,/obj/item/reagent_containers/spray/cleaner,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aqL" = (/obj/machinery/door/window{base_state = "right"; icon_state = "right"; name = "Brig"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aqM" = (/obj/machinery/door/window{dir = 8; name = "Preparation"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aqL" = (/obj/machinery/door/window{name = "Brig"; icon_state = "right"; req_access = list(150); base_state = "right"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aqM" = (/obj/machinery/door/window{name = "Preparation"; dir = 8; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqN" = (/obj/structure/table/standard,/obj/item/storage/toolbox/syndicate{pixel_x = -1; pixel_y = 3},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aqO" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) "aqP" = (/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) @@ -882,9 +677,9 @@ "arb" = (/turf/unsimulated/wall,/area/centcom/living) "arc" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/turret/network/centcomm,/turf/unsimulated/floor{icon_state = "asteroidfloor"},/area/rescue_base/base) "ard" = (/turf/simulated/shuttle/wall/corner/syndi/nw,/area/rescue_base/start) -"are" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "rescuebridge"; name = "Bridge Blast Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/rescue_base/start) +"are" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{name = "Bridge Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "rescuebridge"},/turf/simulated/floor/plating,/area/rescue_base/start) "arf" = (/turf/simulated/shuttle/wall/corner/syndi/ne,/area/rescue_base/start) -"arg" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/rescue_base/start) +"arg" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/rescue_base/start) "arh" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "ari" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "arj" = (/obj/machinery/vending/coffee{prices = list()},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) @@ -908,15 +703,15 @@ "arB" = (/obj/item/clothing/gloves/insulated,/obj/item/device/assembly/signaler{pixel_y = 2},/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "arC" = (/obj/item/clothing/gloves/insulated,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "arD" = (/obj/item/clothing/gloves/insulated,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/machinery/light{dir = 4},/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"arE" = (/obj/structure/table/steel_reinforced,/obj/machinery/button/remote/blast_door{icon_state = "doorctrl0"; id = "rescuebridge"; name = "Mech Storage"; pixel_y = -4; req_access = list(108)},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) +"arE" = (/obj/structure/table/steel_reinforced,/obj/machinery/button/remote/blast_door{name = "Mech Storage"; icon_state = "doorctrl0"; pixel_y = -4; id = "rescuebridge"; req_access = list(108)},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "arF" = (/obj/item/modular_computer/console/preset/command,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "arG" = (/obj/machinery/computer/shuttle_control/multi/rescue,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "arH" = (/obj/structure/table/steel_reinforced,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "arI" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "rescue_shuttle_pump"},/obj/machinery/light{dir = 8},/obj/structure/table/steel_reinforced,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "arJ" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/structure/bed/chair,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) -"arK" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/structure/bed/chair,/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "rescue_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) +"arK" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/structure/bed/chair,/obj/machinery/airlock_sensor{pixel_x = 8; pixel_y = 25; frequency = 1331; id_tag = "rescue_shuttle_sensor"},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "arL" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "rescue_shuttle_pump"},/obj/machinery/light{dir = 4},/obj/structure/bed/chair,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) -"arM" = (/obj/machinery/door/window/northright{dir = 4; name = "Security Desk"; req_access = list(103)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"arM" = (/obj/machinery/door/window/northright{name = "Security Desk"; dir = 4; req_access = list(103)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "arN" = (/obj/structure/table/standard,/obj/item/storage/box/handcuffs,/obj/item/device/flash,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "arO" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/shuttle/administration/centcom) "arP" = (/obj/structure/shuttle/engine/heater{dir = 8},/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"},/area/shuttle/administration/centcom) @@ -931,14 +726,14 @@ "arY" = (/obj/item/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/living) "arZ" = (/obj/item/reagent_containers/vessel/condiment/small/peppermill{pixel_x = 2; pixel_y = 6},/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/living) "asa" = (/obj/item/reagent_containers/vessel/can/cola,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/living) -"asb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/storage/fancy/cigarettes=10,/obj/item/storage/box/matches=10,/obj/item/flame/lighter/zippo=4,/obj/item/clothing/mask/smokable/cigarette/cigar/havana=2)},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"asb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; products = list(/obj/item/storage/fancy/cigarettes=10, /obj/item/storage/box/matches=10, /obj/item/flame/lighter/zippo=4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana=2); prices = list()},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "asc" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/living) "asd" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/living) "ase" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/suppy) -"asf" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/suppy) -"asg" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "syndieshutters_infirmary"; name = "Shuttle Blast Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/syndicate_station/start) +"asf" = (/turf/unsimulated/wall{name = "Shuttle Bay Blast Door"; desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"},/area/centcom/suppy) +"asg" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_infirmary"},/turf/simulated/floor/plating,/area/syndicate_station/start) "ash" = (/obj/item/screwdriver,/obj/effect/spawner/newbomb/timer/syndicate,/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"asi" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "syndieshutters_workshop"; name = "Shuttle Blast Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/syndicate_station/start) +"asi" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{name = "Shuttle Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "syndieshutters_workshop"},/turf/simulated/floor/plating,/area/syndicate_station/start) "asj" = (/obj/structure/table/rack,/obj/item/rig/syndi/empty,/obj/item/clothing/accessory/holochip/nuke,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "ask" = (/obj/structure/table/steel_reinforced,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "asl" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) @@ -946,14 +741,14 @@ "asn" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "aso" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "asp" = (/turf/simulated/floor/shuttle/red,/area/rescue_base/start) -"asq" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "rescue_shuttle_outer"; name = "Ship External Access"; req_access = list(103)},/obj/machinery/shield_diffuser,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) +"asq" = (/obj/machinery/door/airlock/external{name = "Ship External Access"; frequency = 1331; req_access = list(103); id_tag = "rescue_shuttle_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "asr" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 1},/area/centcom/evac) -"ass" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall"},/area/syndicate_mothership/elite_squad) +"ass" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 8},/area/syndicate_mothership/elite_squad) "ast" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access = list(109)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "asu" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 8},/turf/space,/area/shuttle/administration/centcom) "asv" = (/obj/machinery/vending/coffee,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "asw" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 9},/area/shuttle/administration/centcom) -"asx" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle_centcom_dock"; name = "shuttle bay controller"; pixel_x = 25; tag_door = "admin_shuttle_bay_door"},/turf/unsimulated/floor{name = "plating"},/area/centcom) +"asx" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "shuttle bay controller"; pixel_x = 25; frequency = 1380; id_tag = "admin_shuttle_centcom_dock"; tag_door = "admin_shuttle_bay_door"},/turf/unsimulated/floor{name = "plating"},/area/centcom) "asy" = (/obj/item/reagent_containers/vessel/bottle/small/beer,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/living) "asz" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/living) "asA" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{name = "plating"},/area/centcom/living) @@ -973,7 +768,7 @@ "asO" = (/obj/item/modular_computer/console/preset/engineering,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "asP" = (/obj/structure/bed/chair{dir = 4},/obj/item/device/radio/intercom/specops{dir = 4; pixel_x = -22},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "asQ" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"asR" = (/obj/structure/bed/chair{dir = 4; name = "Defense"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"asR" = (/obj/structure/bed/chair{name = "Defense"; dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "asS" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "asT" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 5},/area/shuttle/administration/centcom) "asU" = (/obj/machinery/vending/cigarette{prices = list()},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) @@ -983,33 +778,33 @@ "asY" = (/obj/machinery/microwave,/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "asZ" = (/obj/item/modular_computer/console/preset/command,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "ata" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/simulated/floor/plating,/area/shuttle/administration/centcom) -"atb" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_bay_door"; locked = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/living) +"atb" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1380; locked = 1; id_tag = "admin_shuttle_bay_door"},/turf/unsimulated/floor{name = "plating"},/area/centcom/living) "atc" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"},/area/supply/dock) "atd" = (/turf/simulated/floor/shuttle/blue,/area/supply/dock) -"ate" = (/obj/machinery/door/window{base_state = "right"; icon_state = "right"; name = "Infirmary"; req_access = list(150)},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) -"atf" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"ate" = (/obj/machinery/door/window{name = "Infirmary"; icon_state = "right"; req_access = list(150); base_state = "right"},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"atf" = (/obj/machinery/door/window{name = "Tool Storage"; dir = 8; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "atg" = (/obj/item/aicard,/obj/effect/spawner/newbomb/timer/syndicate,/obj/structure/table/steel,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "ath" = (/obj/machinery/computer/prisoner{name = "Implant Management"},/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "ati" = (/obj/item/modular_computer/console/preset/ert,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "atj" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "rescue_shuttle_pump"},/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "atk" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "atl" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/obj/machinery/meter,/turf/simulated/floor/shuttle/red,/area/rescue_base/start) -"atm" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "rescue_shuttle_pump"},/obj/machinery/light{dir = 4},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "rescue_shuttle"; pixel_x = 25; req_access = list(103)},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) +"atm" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "rescue_shuttle_pump"},/obj/machinery/light{dir = 4},/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = 25; frequency = 1331; req_access = list(103); id_tag = "rescue_shuttle"},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "atn" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "ato" = (/obj/item/device/radio/off,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "atp" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "atq" = (/obj/effect/wingrille_spawn/reinforced/crescent,/obj/effect/shuttle_landmark/administration/centcom,/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "atr" = (/obj/effect/shuttle_landmark/supply/centcom,/turf/simulated/floor/shuttle/blue,/area/supply/dock) "ats" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/blue,/area/supply/dock) -"att" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_infirmary"; name = "remote shutter control"; pixel_x = -25},/obj/structure/mopbucket,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"att" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_x = -25; id = "syndieshutters_infirmary"},/obj/structure/mopbucket,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "atu" = (/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) -"atv" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"atv" = (/obj/machinery/door/window{name = "Secure Storage"; dir = 1; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "atw" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"atx" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_telebay"; name = "remote shutter control"; pixel_y = -25; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aty" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_workshop"; name = "remote shutter control"; pixel_x = 25},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"atx" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_y = -25; id = "syndieshutters_telebay"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"aty" = (/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_x = 25; id = "syndieshutters_workshop"},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "atz" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/rescue_base/start) "atA" = (/obj/machinery/door/airlock/centcom{name = "Flight Deck"; opacity = 1; req_access = list(103)},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) -"atB" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "rescue_shuttle_inner"; name = "Ship External Access"; req_access = list(103)},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) +"atB" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/external{name = "Ship External Access"; frequency = 1331; req_access = list(103); id_tag = "rescue_shuttle_inner"},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "atC" = (/obj/item/storage/lockbox,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "atD" = (/obj/item/stamp/captain,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "atE" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) @@ -1028,22 +823,22 @@ "atR" = (/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) "atS" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) "atT" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor/shuttle/blue,/area/supply/dock) -"atU" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/supply/dock) +"atU" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "supply_shuttle_hatch"},/turf/simulated/floor/plating,/area/supply/dock) "atV" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/table/standard,/obj/item/bonesetter,/obj/item/bonegel,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) -"atW" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access = list(150)},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) +"atW" = (/obj/machinery/door/window{name = "Surgery"; dir = 1; req_access = list(150)},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "atX" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/gas_stand/anesthetic,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "atY" = (/obj/structure/table/standard,/obj/structure/window/reinforced/crescent{dir = 8},/obj/item/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = 1},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "atZ" = (/obj/structure/table/standard,/obj/item/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/fire{pixel_x = 1},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "aua" = (/obj/item/weldingtool,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "aub" = (/obj/structure/sign/warning/caution{pixel_x = 32},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "auc" = (/obj/machinery/telecomms/allinone{intercept = 1},/obj/machinery/door/window/northright{name = "Telecoms Mainframe"; req_access = list(150)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"aud" = (/obj/machinery/door/blast/regular{id = "syndieshutters_telebay"; name = "Outer Airlock"},/turf/simulated/floor/plating,/area/syndicate_station/start) +"aud" = (/obj/machinery/door/blast/regular{name = "Outer Airlock"; id = "syndieshutters_telebay"},/turf/simulated/floor/plating,/area/syndicate_station/start) "aue" = (/obj/structure/flora/ausbushes/palebush,/turf/unsimulated/floor{icon_state = "asteroidplating"},/area/rescue_base/base) "auf" = (/obj/structure/closet,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/obj/item/reagent_containers/food/liquidfood,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "aug" = (/obj/structure/table/rack,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "auh" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "aui" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/meter,/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) -"auj" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "rescue_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(103)},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) +"auj" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/access_button{name = "interior access button"; pixel_x = 25; pixel_y = 25; frequency = 1331; req_access = list(103); command = "cycle_interior"; master_tag = "rescue_shuttle"},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "auk" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "aul" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 4},/turf/simulated/floor/plating,/area/centcom/evac) "aum" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"; dir = 4},/turf/simulated/floor/plating,/area/centcom/evac) @@ -1054,7 +849,7 @@ "aur" = (/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "aus" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) "aut" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) -"auu" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/shuttle/blue,/area/supply/dock) +"auu" = (/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "supply_shuttle_hatch"},/turf/simulated/floor/shuttle/blue,/area/supply/dock) "auv" = (/obj/structure/table/standard,/obj/item/scalpel,/obj/item/circular_saw{pixel_y = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "auw" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/syringe,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/latex,/obj/item/surgicaldrill,/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; req_access = list(150)},/obj/item/reagent_containers/syringe/antiviral,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "auy" = (/obj/item/crowbar,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) @@ -1071,12 +866,12 @@ "auJ" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "auK" = (/obj/machinery/recharge_station,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "auL" = (/obj/machinery/mecha_part_fabricator,/obj/machinery/light{dir = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) -"auM" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) +"auM" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "auN" = (/obj/structure/dispenser,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "auO" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/shaker,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "auP" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "auQ" = (/obj/machinery/door/airlock/centcom{name = "Living Quarters"; opacity = 1; req_access = list(105)},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/centcom/living) -"auR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "supply_shuttle"; pixel_x = 25; req_one_access = list(13,31); tag_door = "supply_shuttle_hatch"},/turf/simulated/floor/shuttle/blue,/area/supply/dock) +"auR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = 25; frequency = 1380; req_one_access = list(13,31); id_tag = "supply_shuttle"; tag_door = "supply_shuttle_hatch"},/turf/simulated/floor/shuttle/blue,/area/supply/dock) "auS" = (/obj/structure/table/standard,/obj/item/cautery,/obj/item/hemostat,/obj/item/FixOVein,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "auT" = (/obj/machinery/optable,/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) "auU" = (/obj/structure/table/standard,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/retractor,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/shuttle/white,/area/syndicate_station/start) @@ -1084,13 +879,13 @@ "auX" = (/obj/machinery/teleport/hub,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "auY" = (/obj/structure/closet,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "auZ" = (/obj/item/device/radio/intercom/specops{dir = 8; pixel_x = 22},/obj/structure/closet/l3closet,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) -"ava" = (/obj/structure/table/rack,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_t"},/area/rescue_base/start) +"ava" = (/obj/structure/table/rack,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/obj/item/tank/emergency/oxygen/double,/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/rescue_base/start) "avb" = (/obj/machinery/optable,/turf/simulated/floor/shuttle/white,/area/shuttle/administration/centcom) "avc" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/shuttle/white,/area/shuttle/administration/centcom) "avd" = (/obj/machinery/door/airlock/centcom{name = "Commander Quarters"; opacity = 1; req_access = list(109)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/living) "ave" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{name = "plating"},/area/centcom/living) "avf" = (/obj/item/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) -"avg" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/syndicate_mothership/elite_squad) +"avg" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/syndicate_mothership/elite_squad) "avh" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_station/start) "avi" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_station/start) "avj" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_station/start) @@ -1111,47 +906,47 @@ "avy" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "avz" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "avA" = (/obj/machinery/sleeper{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) -"avB" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) -"avC" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) -"avD" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) +"avB" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/centcom/living) +"avC" = (/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/centcom/living) +"avD" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/centcom/living) "avE" = (/obj/structure/table/standard,/obj/item/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/material/kitchen/rollingpin,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "avF" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor/shuttle/blue,/area/supply/dock) -"avG" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/supply/dock) +"avG" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "supply_shuttle_hatch"},/turf/simulated/floor/plating,/area/supply/dock) "avH" = (/turf/simulated/shuttle/wall/corner/syndi/sw,/area/rescue_base/start) "avI" = (/obj/machinery/door/airlock/centcom{name = "Crew Area"; opacity = 1; req_access = list(103)},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "avJ" = (/obj/structure/sign/poster{pixel_x = -32; poster_type = "/datum/poster/bay_9"},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "avK" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) -"avL" = (/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) +"avL" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; layer = 3.3; pixel_x = 28},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "avM" = (/obj/machinery/door/airlock/centcom{name = "Passageway"; opacity = 1; req_access = list(103)},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "avN" = (/turf/simulated/shuttle/wall/corner/syndi/se,/area/rescue_base/start) "avO" = (/obj/machinery/vending/medical,/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/shuttle/administration/centcom) "avP" = (/obj/machinery/chemical_dispenser/ert,/obj/item/reagent_containers/vessel/beaker/large,/turf/simulated/floor/shuttle/white,/area/shuttle/administration/centcom) "avQ" = (/obj/machinery/chem_master,/turf/simulated/floor/shuttle/white,/area/shuttle/administration/centcom) "avR" = (/obj/machinery/chemical_dispenser/full,/obj/item/reagent_containers/vessel/beaker/large,/turf/simulated/floor/shuttle/white,/area/shuttle/administration/centcom) -"avS" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle"; pixel_x = -25; req_one_access = list(101); tag_door = "admin_shuttle_hatch"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) +"avS" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; frequency = 1380; req_one_access = list(101); id_tag = "admin_shuttle"; tag_door = "admin_shuttle_hatch"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "avT" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "avU" = (/obj/item/device/multitool,/obj/item/reagent_containers/spray/cleaner,/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "avV" = (/obj/item/storage/toolbox/mechanical,/obj/structure/table/reinforced,/turf/simulated/floor/shuttle/red,/area/shuttle/administration/centcom) "avW" = (/obj/structure/bed,/obj/item/bedsheet,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) -"avX" = (/obj/structure/table/standard,/obj/item/card/id/centcom,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) +"avX" = (/obj/structure/table/standard,/obj/item/card/id/centcom,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/centcom/living) "avY" = (/obj/machinery/vending/dinnerware,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "avZ" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/beaker,/obj/item/reagent_containers/vessel/condiment/enzyme,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) "awa" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/living) -"awb" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(101)},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) +"awb" = (/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(101); id_tag = "admin_shuttle_hatch"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "awc" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 8},/area/supply/dock) "awd" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/supply/dock) "awe" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 6},/area/supply/dock) "awf" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 4},/area/supply/dock) "awg" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) "awh" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/darkred,/area/rescue_base/start) -"awi" = (/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/living) +"awi" = (/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/living) "awj" = (/obj/machinery/door/airlock/centcom{name = "Living Quarters"; opacity = 1; req_access = list(105)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/living) "awk" = (/turf/simulated/shuttle/wall/corner/smoothwhite/sw,/area/supply/dock) "awl" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 5},/area/supply/dock) "awm" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced/crescent{dir = 1},/turf/simulated/floor/plating/airless,/area/supply/dock) "awn" = (/turf/simulated/shuttle/wall/corner/smoothwhite/se,/area/supply/dock) "awo" = (/obj/structure/bed,/obj/item/bedsheet/orange,/turf/simulated/floor/shuttle/black,/area/rescue_base/start) -"awp" = (/obj/machinery/flasher{id = "rescueflash"; pixel_y = 28},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) +"awp" = (/obj/machinery/flasher{pixel_y = 28; id = "rescueflash"},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "awq" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/shuttle/black,/area/rescue_base/start) "awr" = (/obj/machinery/door/airlock/centcom{name = "Storage"; opacity = 1; req_access = list(103)},/turf/simulated/floor/plating,/area/rescue_base/start) "aws" = (/obj/machinery/door/airlock/centcom{name = "Infirmary"; opacity = 1; req_access = list(103)},/turf/simulated/floor/shuttle/white,/area/rescue_base/start) @@ -1184,7 +979,7 @@ "awT" = (/obj/structure/table/rack,/obj/item/gun/projectile/automatic/z8,/obj/item/gun/projectile/automatic/z8,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "awU" = (/obj/structure/table/rack,/obj/item/storage/box/flashbangs,/obj/item/storage/box/flashbangs,/obj/item/storage/box/emps,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/grenade/smokebomb,/obj/item/gun/launcher/grenade,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "awV" = (/obj/item/aiModule/nanotrasen,/obj/item/aiModule/reset,/obj/item/aiModule/freeformcore,/obj/item/aiModule/protectStation,/obj/item/aiModule/quarantine,/obj/item/aiModule/paladin,/obj/item/aiModule/robocop,/obj/item/aiModule/safeguard,/obj/structure/table/rack,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"awW" = (/obj/machinery/door/blast/regular{id = "ert_synth_equipment"; name = "Synthetics Modification Equipment"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"awW" = (/obj/machinery/door/blast/regular{name = "Synthetics Modification Equipment"; id = "ert_synth_equipment"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "awX" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "awY" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "awZ" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) @@ -1208,10 +1003,10 @@ "axt" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "axu" = (/obj/machinery/body_scanconsole{dir = 8},/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "axv" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/shuttle/white,/area/rescue_base/start) -"axw" = (/obj/machinery/door/blast/regular{id = "ASSAULT"; name = "Assault Weapon Storage"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"axw" = (/obj/machinery/door/blast/regular{name = "Assault Weapon Storage"; id = "ASSAULT"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "axx" = (/obj/structure/table/rack,/obj/item/circuitboard/borgupload,/obj/item/circuitboard/aiupload{pixel_x = -3; pixel_y = -3},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "axy" = (/obj/structure/table/rack,/obj/item/storage/secure/briefcase,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter/zippo,/obj/item/storage/belt/utility,/obj/item/storage/backpack/satchel,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) -"axz" = (/obj/structure/table/woodentable{dir = 10},/obj/machinery/button/remote/blast_door{id = "CREED"; name = "Spec Ops Ready Room"; pixel_x = -5; pixel_y = 4; req_access = list(108)},/obj/machinery/button/remote/blast_door{icon_state = "doorctrl0"; id = "ASSAULT"; name = "Mech Storage"; pixel_y = -4; req_access = list(108)},/obj/machinery/button/remote/blast_door{id = "ert_synth_equipment"; name = "Synth Equipment"; pixel_x = 5; pixel_y = 4; req_access = list(108)},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) +"axz" = (/obj/structure/table/woodentable{dir = 10},/obj/machinery/button/remote/blast_door{name = "Spec Ops Ready Room"; pixel_x = -5; pixel_y = 4; id = "CREED"; req_access = list(108)},/obj/machinery/button/remote/blast_door{name = "Mech Storage"; icon_state = "doorctrl0"; pixel_y = -4; id = "ASSAULT"; req_access = list(108)},/obj/machinery/button/remote/blast_door{name = "Synth Equipment"; pixel_x = 5; pixel_y = 4; id = "ert_synth_equipment"; req_access = list(108)},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) "axA" = (/obj/machinery/turret/network/centcomm,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) "axB" = (/obj/machinery/door/airlock/centcom{name = "Creed's Office"; opacity = 1; req_access = list(108)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/creed) "axC" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) @@ -1231,7 +1026,7 @@ "axQ" = (/obj/mecha/combat/gygax/dark,/obj/machinery/camera/network/ert{c_tag = "Assault Armor North"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "axR" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "axS" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 9},/area/centcom/specops) -"axT" = (/obj/machinery/door/blast/regular{id = "ASSAULT"; name = "Assault Armor Storage"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"axT" = (/obj/machinery/door/blast/regular{name = "Assault Armor Storage"; id = "ASSAULT"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "axU" = (/obj/machinery/vending/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "axV" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) "axW" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) @@ -1241,15 +1036,15 @@ "aya" = (/obj/structure/bed,/obj/item/bedsheet,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "ayb" = (/obj/structure/table/standard,/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "ayc" = (/obj/structure/closet/secure_closet/security,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) -"ayd" = (/obj/machinery/button/flasher{id = "rescueflash"; name = "Flasher"; pixel_x = 27},/obj/structure/bed/chair{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) +"ayd" = (/obj/machinery/button/flasher{name = "Flasher"; pixel_x = 27; id = "rescueflash"},/obj/structure/bed/chair{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/red,/area/rescue_base/start) "aye" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/rescue_base/start) "ayf" = (/obj/structure/table/rack,/obj/item/wrench,/turf/simulated/floor/plating,/area/rescue_base/start) "ayg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/closet/medical_wall{pixel_x = -32},/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/vessel/bottle/chemical/stoxin,/obj/item/reagent_containers/syringe,/obj/item/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "ayh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/gas_stand/anesthetic,/turf/simulated/floor/shuttle/white,/area/rescue_base/start) "ayi" = (/obj/effect/landmark{name = "Marauder Exit"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "ayj" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"ayk" = (/obj/machinery/door/blast/regular{id = "ASSAULT3"; name = "Launch Bay #3"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"ayl" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT3"; name = "gravpult"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"ayk" = (/obj/machinery/door/blast/regular{name = "Launch Bay #3"; id = "ASSAULT3"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"ayl" = (/obj/machinery/mass_driver{name = "gravpult"; dir = 8; id = "ASSAULT3"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "aym" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/obj/item/mecha_parts/mecha_equipment/armor_booster/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/armor_booster/antiproj_armor_booster,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "ayn" = (/obj/structure/table/rack,/obj/item/gun/energy/gun,/obj/item/gun/energy/gun,/obj/item/gun/energy/gun,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "ayo" = (/obj/machinery/vending/assist,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) @@ -1259,12 +1054,12 @@ "ays" = (/obj/machinery/power/emitter,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "ayt" = (/obj/item/modular_computer/console/preset/command,/obj/item/card/id/centcom,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) "ayu" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) -"ayv" = (/obj/machinery/computer/pod{id = "NTrasen"; name = "Hull Door Control"},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) +"ayv" = (/obj/machinery/computer/pod{name = "Hull Door Control"; id = "NTrasen"},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/creed) "ayw" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "ayx" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "ayy" = (/obj/machinery/telecomms/broadcaster/preset_cent,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "ayz" = (/obj/machinery/telecomms/hub/preset_cent,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"ayA" = (/obj/machinery/computer/rdservercontrol{badmin = 1; name = "Master R&D Server Controller"},/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) +"ayA" = (/obj/machinery/computer/rdservercontrol{name = "Master R&D Server Controller"; badmin = 1},/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "ayB" = (/obj/machinery/r_n_d/server/centcom,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "ayC" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "ayD" = (/obj/machinery/resleever,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) @@ -1314,7 +1109,7 @@ "azv" = (/obj/structure/table/rack,/obj/item/rig/ert/assetprotection,/obj/item/rig/ert/assetprotection,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "azw" = (/obj/structure/table/rack,/obj/item/rig_module/mounted,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "azx" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"azy" = (/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"azy" = (/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/steel{pixel_x = 2; pixel_y = 2; amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "azz" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "azA" = (/obj/machinery/turret/network/centcomm,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "azB" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) @@ -1331,10 +1126,10 @@ "azM" = (/obj/structure/bed,/obj/item/bedsheet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "azN" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "azO" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) -"azP" = (/obj/machinery/camera/network/thunder{c_tag = "Court"; pixel_x = 10; pixel_y = -6},/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) +"azP" = (/obj/machinery/camera/network/thunder{pixel_x = 10; pixel_y = -6; c_tag = "Court"},/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "azQ" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) -"azR" = (/obj/machinery/door/blast/regular{id = "ASSAULT2"; name = "Launch Bay #2"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"azS" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT2"; name = "gravpult"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"azR" = (/obj/machinery/door/blast/regular{name = "Launch Bay #2"; id = "ASSAULT2"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"azS" = (/obj/machinery/mass_driver{name = "gravpult"; dir = 8; id = "ASSAULT2"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "azT" = (/obj/item/mecha_parts/mecha_equipment/teleporter,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "azU" = (/obj/machinery/vending/engineering,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "azV" = (/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/flash,/obj/item/device/flash,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/construction/rcd,/obj/item/construction/rcd,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/item/rcd_ammo,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) @@ -1350,7 +1145,7 @@ "aAf" = (/obj/structure/table/woodentable,/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "aAg" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "aAh" = (/obj/structure/table/woodentable,/obj/effect/floor_decal/carpet{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) -"aAi" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) +"aAi" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) "aAj" = (/obj/mecha/working/ripley/firefighter,/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "aAk" = (/obj/item/mecha_parts/mecha_equipment/tool/extinguisher,/obj/item/mecha_parts/mecha_equipment/tool/rcd,/obj/item/pickaxe/drill/diamonddrill,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aAl" = (/obj/structure/table/reinforced,/obj/item/storage/box/flashbangs,/obj/item/handcuffs,/obj/item/device/flash,/obj/item/melee/baton/loaded,/obj/item/storage/belt/security/tactical,/obj/item/gun/energy/stunrevolver,/obj/item/clothing/glasses/tacgoggles,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) @@ -1362,15 +1157,14 @@ "aAr" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "aAs" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aAt" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aAu" = (/obj/item/device/radio/intercom/specops{pixel_y = 22},/mob/living/silicon/decoy{name = "A.L.I.C.E."},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aAv" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aAw" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "aAx" = (/obj/structure/table/standard,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "aAy" = (/obj/structure/bed/chair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "aAz" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "aAA" = (/obj/structure/bed/chair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) -"aAB" = (/obj/machinery/door/blast/regular{id = "ASSAULT1"; name = "Launch Bay #1"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aAC" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT1"; name = "gravpult"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"aAB" = (/obj/machinery/door/blast/regular{name = "Launch Bay #1"; id = "ASSAULT1"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"aAC" = (/obj/machinery/mass_driver{name = "gravpult"; dir = 8; id = "ASSAULT1"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "aAD" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/obj/item/mecha_parts/mecha_equipment/tool/cable_layer,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aAE" = (/obj/structure/table/rack,/obj/item/storage/backpack/ert/commander,/obj/item/clothing/suit/armor/vest/ert,/obj/item/clothing/head/helmet/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aAF" = (/obj/structure/table/rack,/obj/item/rig/ert/assetprotection,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) @@ -1382,7 +1176,7 @@ "aAL" = (/obj/effect/floor_decal/corner/green{dir = 4},/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aAM" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aAN" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aAO" = (/obj/machinery/door/window{dir = 2; name = "AI Core Door"; req_access = list(109)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) +"aAO" = (/obj/machinery/door/window{name = "AI Core Door"; dir = 2; req_access = list(109)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aAP" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aAQ" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aAR" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) @@ -1399,9 +1193,9 @@ "aBc" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/grenade_launcher,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/rcd,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/mounted/egun,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aBd" = (/obj/machinery/door/airlock/centcom{name = "Armory Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "aBe" = (/obj/machinery/door/airlock/centcom{name = "Engineering Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) -"aBf" = (/obj/machinery/door/blast/regular{id = "CREED"; name = "Ready Room"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) +"aBf" = (/obj/machinery/door/blast/regular{name = "Ready Room"; id = "CREED"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "aBg" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) -"aBh" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{id = "CREED"; name = "Ready Room"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) +"aBh" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{name = "Ready Room"; id = "CREED"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "aBi" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aBj" = (/obj/machinery/door/airlock/centcom{name = "Bridge"; opacity = 1; req_access = list(109)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aBk" = (/obj/structure/bed/chair,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) @@ -1411,9 +1205,9 @@ "aBo" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced/crescent{dir = 8},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "aBp" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/carpet,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "aBq" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) -"aBr" = (/obj/machinery/door/blast/regular{id = "ASSAULT0"; name = "Launch Bay #0"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aBs" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT0"; name = "gravpult"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) -"aBt" = (/obj/machinery/camera/network/ert{c_tag = "Assault Armor South"; dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"aBr" = (/obj/machinery/door/blast/regular{name = "Launch Bay #0"; id = "ASSAULT0"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"aBs" = (/obj/machinery/mass_driver{name = "gravpult"; dir = 8; id = "ASSAULT0"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"aBt" = (/obj/machinery/camera/network/ert{dir = 1; c_tag = "Assault Armor South"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "aBu" = (/obj/machinery/door/airlock/centcom{name = "Special Operations Command"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "aBv" = (/obj/structure/sign/warning/secure_area/armory{pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "aBw" = (/obj/structure/sign/warning/engineering_access{pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) @@ -1436,7 +1230,7 @@ "aBN" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aBO" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aBP" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aBQ" = (/obj/machinery/button/remote/blast_door{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_thunderdome"; name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_vip_shuttle"; name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "CREED"; name = "Spec Ops Ready Room"; pixel_x = -6; pixel_y = -34; req_access = list(108)},/obj/machinery/turret_control_panel/centcomm{pixel_x = 28; pixel_y = -28},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) +"aBQ" = (/obj/machinery/button/remote/blast_door{name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; id = "crescent_checkpoint_access"; req_access = list(101)},/obj/machinery/button/remote/blast_door{name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; id = "crescent_thunderdome"; req_access = list(101)},/obj/machinery/button/remote/blast_door{name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; id = "crescent_vip_shuttle"; req_access = list(101)},/obj/machinery/button/remote/blast_door{name = "Spec Ops Ready Room"; pixel_x = -6; pixel_y = -34; id = "CREED"; req_access = list(108)},/obj/machinery/turret_control_panel/centcomm{pixel_x = 28; pixel_y = -28},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aBR" = (/obj/structure/table/reinforced,/obj/item/card/id/captains_spare,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aBS" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aBT" = (/obj/machinery/door/airlock/centcom{name = "Courthouse"; opacity = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control) @@ -1445,7 +1239,7 @@ "aBW" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "aBX" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aBY" = (/obj/machinery/door/airlock/centcom{name = "Medical Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) -"aBZ" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"aBZ" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "aCa" = (/obj/structure/table/reinforced,/obj/item/storage/box/donut,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aCb" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aCc" = (/obj/structure/table/reinforced,/obj/item/crowbar,/obj/item/screwdriver,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) @@ -1471,9 +1265,9 @@ "aCw" = (/obj/structure/table/reinforced,/obj/item/stamp/centcomm,/obj/item/pen,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aCx" = (/obj/structure/table/reinforced,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aCy" = (/obj/effect/landmark/start/antags/deathsquad,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"aCz" = (/obj/structure/closet{icon_closed = "syndicate1"; icon_opened = "syndicate1open"; icon_state = "syndicate1"; name = "emergency response team wardrobe"},/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/rank/centcom/officer,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aCz" = (/obj/structure/closet{name = "emergency response team wardrobe"; icon_state = "syndicate1"; icon_closed = "syndicate1"; icon_opened = "syndicate1open"},/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/rank/centcom/officer,/obj/item/clothing/accessory/holochip/deathsquad,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "aCA" = (/obj/structure/sink{dir = 4; pixel_x = 11},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"aCB" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/control) +"aCB" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/centcom/control) "aCC" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "aCD" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control) "aCE" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) @@ -1487,10 +1281,10 @@ "aCM" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aCN" = (/obj/effect/floor_decal/corner/green{dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aCO" = (/obj/structure/closet/secure_closet/injection,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control) -"aCP" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/control) +"aCP" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/centcom/control) "aCQ" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"aCR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "deathsquad_centcom_dock"; name = "docking port controller"; pixel_y = -25; req_one_access = list(103); tag_door = "deathsquad_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) -"aCS" = (/obj/machinery/door/airlock/centcom{name = "Holding Cell"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) +"aCR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "docking port controller"; pixel_y = -25; frequency = 1380; req_one_access = list(103); id_tag = "deathsquad_centcom_dock"; tag_door = "deathsquad_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aCS" = (/obj/machinery/door/airlock/centcom{name = "Holding Cell"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{name = "Crescent Checkpoint"; id = "crescent_checkpoint_access"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "aCT" = (/obj/structure/table/standard,/obj/item/device/assembly/signaler,/obj/item/handcuffs,/obj/item/melee/classic_baton,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control) "aCU" = (/obj/structure/closet/secure_closet/courtroom,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) "aCV" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet/corners{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/control) @@ -1512,9 +1306,9 @@ "aDl" = (/obj/item/stool/padded,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aDm" = (/turf/unsimulated/wall,/area/centcom/holding) "aDn" = (/obj/structure/sign/warning/lethal_turrets,/turf/unsimulated/wall,/area/centcom/control) -"aDo" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"aDp" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) -"aDq" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "deathsquad_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"aDo" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{name = "Crescent Checkpoint"; id = "crescent_checkpoint_access"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) +"aDp" = (/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/thrower{name = "thrower_throwdown"; tiles = 0; affect_ghosts = 1},/obj/effect/step_trigger/teleporter/random/admin,/obj/effect/step_trigger/teleporter/random/admin,/turf/space,/area/space) +"aDq" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; frequency = 1380; locked = 1; id_tag = "deathsquad_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aDr" = (/obj/machinery/vending/cola{prices = list()},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aDs" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/centcom/holding) "aDt" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) @@ -1524,8 +1318,8 @@ "aDx" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aDy" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "aDz" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/space,/area/shuttle/deathsquad/centcom) -"aDA" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall"},/area/shuttle/deathsquad/centcom) -"aDB" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "deathsquad_shuttle_port_hatch"; locked = 1; name = "Port Docking Hatch"; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/shuttle/deathsquad/centcom) +"aDA" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 4},/area/shuttle/deathsquad/centcom) +"aDB" = (/obj/machinery/door/airlock/external{name = "Port Docking Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(103); id_tag = "deathsquad_shuttle_port_hatch"},/turf/unsimulated/floor{icon_state = "dark"},/area/shuttle/deathsquad/centcom) "aDC" = (/turf/simulated/shuttle/wall/corner/syndi/ne,/area/shuttle/deathsquad/centcom) "aDD" = (/obj/machinery/vending/cigarette{name = "cigarette machine"; prices = list()},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "aDE" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) @@ -1541,15 +1335,15 @@ "aDO" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced/crescent{dir = 4},/turf/simulated/floor/plating/airless,/area/shuttle/deathsquad/centcom) "aDP" = (/obj/machinery/computer/shuttle_control/specops,/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) "aDQ" = (/obj/structure/bed/chair,/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) -"aDR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "deathsquad_shuttle_port"; name = "port docking hatch controller"; pixel_y = 25; tag_door = "deathsquad_shuttle_port_hatch"},/obj/structure/bed/chair,/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) +"aDR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "port docking hatch controller"; pixel_y = 25; frequency = 1380; id_tag = "deathsquad_shuttle_port"; tag_door = "deathsquad_shuttle_port_hatch"},/obj/structure/bed/chair,/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) "aDS" = (/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) "aDT" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) -"aDU" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28},/obj/machinery/light/small/readylight{dir = 4},/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) -"aDV" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{id = "CREED"; name = "Ready Room"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) -"aDW" = (/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals - Holding Cell"; dir = 4},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/centcom/holding) +"aDU" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; layer = 3.3; pixel_x = 28},/obj/machinery/light/small/readylight{dir = 4},/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) +"aDV" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/obj/machinery/door/blast/regular{name = "Ready Room"; id = "CREED"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) +"aDW" = (/obj/machinery/camera/network/crescent{dir = 4; c_tag = "Crescent Arrivals - Holding Cell"},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/centcom/holding) "aDX" = (/obj/machinery/door/airlock/glass_security{name = "Holding Cell"; req_access = list(2)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aDY" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{name = "plating"},/area/centcom/holding) -"aDZ" = (/obj/machinery/door/blast/regular{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) +"aDZ" = (/obj/machinery/door/blast/regular{name = "Security Doors"; id = "CentComPort"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aEa" = (/obj/machinery/door/airlock/centcom{name = "Arrivals Processing"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aEb" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 9},/area/shuttle/escape/centcom) "aEc" = (/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) @@ -1560,7 +1354,7 @@ "aEh" = (/obj/structure/bed/chair{dir = 4},/obj/effect/shuttle_landmark/deathsquad/centcom,/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) "aEi" = (/obj/structure/bed,/obj/item/bedsheet/red,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/centcom/holding) "aEj" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) -"aEk" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Arrivals Processing"; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) +"aEk" = (/obj/machinery/door/window/northleft{name = "Arrivals Processing"; icon_state = "right"; dir = 8; req_access = list(101); base_state = "right"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aEl" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aEm" = (/obj/structure/table/standard,/obj/item/storage/firstaid/fire,/obj/machinery/camera/network/crescent{c_tag = "Shuttle Bridge West"},/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/extinguisher,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aEn" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) @@ -1572,21 +1366,21 @@ "aEt" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light/small/readylight,/turf/simulated/floor/shuttle/red,/area/shuttle/deathsquad/centcom) "aEu" = (/turf/simulated/shuttle/wall/corner/syndi/se,/area/shuttle/deathsquad/centcom) "aEv" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) -"aEw" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) -"aEx" = (/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) -"aEy" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) -"aEz" = (/obj/structure/flora/ausbushes/sunnybush,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) -"aEA" = (/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) -"aEB" = (/obj/structure/flora/ausbushes/lavendergrass,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) -"aEC" = (/obj/structure/flora/ausbushes/ywflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/holding) -"aED" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_shuttle"; pixel_y = -25; req_one_access = list(13); tag_door = "escape_shuttle_hatch"},/obj/machinery/light,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"aEw" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{name = "Security Doors"; desc = "A remote control switch for port-side blast doors."; pixel_x = -12; pixel_y = -25; id = "CentComPort"; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) +"aEx" = (/obj/machinery/camera/network/crescent{dir = 8; c_tag = "Crescent Arrivals North"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) +"aEy" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) +"aEz" = (/obj/structure/flora/ausbushes/sunnybush,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) +"aEA" = (/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) +"aEB" = (/obj/structure/flora/ausbushes/lavendergrass,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) +"aEC" = (/obj/structure/flora/ausbushes/ywflowers,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/centcom/holding) +"aED" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_y = -25; frequency = 1380; req_one_access = list(13); id_tag = "escape_shuttle"; tag_door = "escape_shuttle_hatch"},/obj/machinery/light,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aEE" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aEF" = (/obj/machinery/light,/obj/item/device/radio/intercom{dir = 1; pixel_y = -22},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aEG" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/space,/area/shuttle/deathsquad/centcom) "aEH" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aEI" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aEJ" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) -"aEK" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "CentComPort"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) +"aEK" = (/obj/machinery/door/blast/regular{name = "Security Doors"; icon_state = "pdoor0"; opacity = 0; density = 0; id = "CentComPort"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aEL" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aEM" = (/obj/structure/table/reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aEN" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 1},/area/shuttle/escape/centcom) @@ -1635,9 +1429,9 @@ "aFE" = (/obj/effect/shuttle_landmark/escape_pod/out/pod3,/turf/space,/area/shuttle/escape_pod3/centcom) "aFG" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aFH" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) -"aFI" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_dock_airlock"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) +"aFI" = (/obj/machinery/door/airlock/external{name = "Arrivals Airlock"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "centcom_dock_airlock"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) "aFJ" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/holding) -"aFK" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/obj/machinery/mech_sensor{dir = 8; frequency = 1380; id_tag = "shuttle_dock_security_mech"; pixel_y = -19},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) +"aFK" = (/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_shuttle_hatch"},/obj/machinery/mech_sensor{dir = 8; pixel_y = -19; frequency = 1380; id_tag = "shuttle_dock_security_mech"},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "aFL" = (/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "aFM" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) "aFN" = (/obj/machinery/door/airlock/glass_security{name = "Escape Shuttle Cell"; req_access = list(1)},/turf/simulated/floor/shuttle/red,/area/shuttle/escape/centcom) @@ -1659,10 +1453,10 @@ "aGd" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"},/area/syndicate_station/start) "aGe" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aGf" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/largecrate,/obj/random/loot,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aGg" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aGh" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aGi" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aGj" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aGg" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aGh" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aGi" = (/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aGj" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aGk" = (/obj/structure/table/woodentable,/obj/effect/landmark{name = "Teleport-Scroll"},/turf/simulated/floor/trim/carpet,/area/wizard_station) "aGl" = (/obj/structure/table/woodentable,/turf/simulated/floor/trim/carpet,/area/wizard_station) "aGm" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/green{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) @@ -1699,35 +1493,35 @@ "aGS" = (/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aGT" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aGU" = (/obj/machinery/door/airlock/glass{name = "Arrivals Bar"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) -"aGV" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/obj/machinery/mech_sensor{dir = 8; frequency = 1380; id_tag = "shuttle_dock_north_mech"; pixel_y = -19},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) -"aGW" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_straight"},/area/syndicate_mothership/elite_squad) +"aGV" = (/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_shuttle_hatch"},/obj/machinery/mech_sensor{dir = 8; pixel_y = -19; frequency = 1380; id_tag = "shuttle_dock_north_mech"},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"aGW" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 8},/area/syndicate_mothership/elite_squad) "aGX" = (/turf/simulated/mineral,/area/skipjack_station/base) "aGY" = (/obj/effect/landmark/start/antags/vox,/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) "aGZ" = (/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) -"aHa" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/cobweb2{icon_state = "spiderling"; name = "dead spider"},/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) +"aHa" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/cobweb2{name = "dead spider"; icon_state = "spiderling"},/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) "aHb" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aHc" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet,/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aHd" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{icon_state = "carpet"},/area/centcom/holding) "aHe" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/green,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) -"aHf" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_dock"; name = "docking port controller"; pixel_x = 25; req_one_access = list(13); tag_door = "centcom_dock_airlock"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) +"aHf" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/embedded_controller/radio/simple_docking_controller{name = "docking port controller"; pixel_x = 25; frequency = 1380; req_one_access = list(13); id_tag = "centcom_dock"; tag_door = "centcom_dock_airlock"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aHg" = (/obj/machinery/cryopod{time_till_despawn = 150},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aHh" = (/obj/structure/bed,/obj/item/bedsheet/orange,/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) "aHi" = (/turf/simulated/floor/plating,/area/skipjack_station/base) -"aHj" = (/obj/structure/table/woodentable{dir = 5},/obj/item/flame/lighter/zippo,/obj/item/storage/fancy/cigarettes,/obj/item/material/ashtray/bronze{pixel_x = -1; pixel_y = 1},/obj/machinery/camera/network/crescent{c_tag = "Crescent Bar East"; dir = 4},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) +"aHj" = (/obj/structure/table/woodentable{dir = 5},/obj/item/flame/lighter/zippo,/obj/item/storage/fancy/cigarettes,/obj/item/material/ashtray/bronze{pixel_x = -1; pixel_y = 1},/obj/machinery/camera/network/crescent{dir = 4; c_tag = "Crescent Bar East"},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aHk" = (/obj/structure/table/woodentable{dir = 5},/obj/item/flame/lighter/zippo,/obj/item/storage/fancy/cigarettes,/obj/item/material/ashtray/bronze{pixel_x = -1; pixel_y = 1},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aHl" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/green{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aHm" = (/obj/machinery/hologram/holopad,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aHn" = (/obj/machinery/hologram/holopad,/obj/effect/shuttle_landmark/escape/centcom,/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aHo" = (/obj/machinery/light{dir = 4},/obj/machinery/cryopod{time_till_despawn = 150},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aHp" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) -"aHq" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand{icon_state = "desert1"},/area/centcom/holding) -"aHr" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) -"aHs" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand{icon_state = "desert1"},/area/centcom/holding) +"aHq" = (/obj/structure/closet{name = "Clothing Storage"; icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand{icon_state = "desert1"},/area/centcom/holding) +"aHr" = (/obj/structure/closet{name = "Clothing Storage"; icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) +"aHs" = (/obj/structure/closet{name = "Clothing Storage"; icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand{icon_state = "desert1"},/area/centcom/holding) "aHt" = (/obj/structure/closet/athletic_mixed,/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) "aHu" = (/obj/structure/closet/athletic_mixed,/turf/unsimulated/beach/sand{icon_state = "desert1"},/area/centcom/holding) "aHv" = (/obj/machinery/camera/network/crescent{c_tag = "Crescent Bar Center"},/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aHw" = (/obj/machinery/hologram/holopad,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) -"aHx" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals South"; dir = 4},/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) +"aHx" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/camera/network/crescent{dir = 4; c_tag = "Crescent Arrivals South"},/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "aHy" = (/turf/unsimulated/floor{icon_state = "asteroid"},/area/skipjack_station/base) "aHz" = (/obj/effect/decal/cleanable/dirt,/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) "aHA" = (/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) @@ -1742,7 +1536,7 @@ "aHJ" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/slice/carrotcake/filled,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aHK" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/food/stew,/turf/unsimulated/floor{icon_state = "wood"},/area/centcom/holding) "aHL" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) -"aHM" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/obj/machinery/mech_sensor{dir = 8; frequency = 1380; id_tag = "shuttle_dock_south_mech"; pixel_y = 19},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) +"aHM" = (/obj/machinery/door/airlock/external{name = "Shuttle Hatch"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_access = list(13); id_tag = "escape_shuttle_hatch"},/obj/machinery/mech_sensor{dir = 8; pixel_y = 19; frequency = 1380; id_tag = "shuttle_dock_south_mech"},/turf/simulated/floor/shuttle/blue,/area/shuttle/escape/centcom) "aHN" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 1},/turf/simulated/floor/plating,/area/shuttle/escape/centcom) "aHO" = (/obj/structure/table/reinforced,/obj/item/tray{pixel_y = 5},/obj/random/junk,/turf/unsimulated/floor{icon_state = "white"},/area/skipjack_station/base) "aHP" = (/obj/structure/table/standard,/obj/item/storage/box/glasses/square{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/skipjack_station/base) @@ -1804,18 +1598,18 @@ "aIT" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aIU" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aIV" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"aIW" = (/obj/structure/closet/crate/freezer/rations,/obj/machinery/camera/network/crescent{c_tag = "Shuttle West Storage"; dir = 4},/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) +"aIW" = (/obj/structure/closet/crate/freezer/rations,/obj/machinery/camera/network/crescent{dir = 4; c_tag = "Shuttle West Storage"},/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) "aIX" = (/obj/structure/closet/crate/freezer/rations,/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) -"aIY" = (/obj/machinery/camera/network/crescent{c_tag = "Shuttle Medical"; dir = 4},/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) +"aIY" = (/obj/machinery/camera/network/crescent{dir = 4; c_tag = "Shuttle Medical"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aIZ" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) -"aJa" = (/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28},/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) +"aJa" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; layer = 3.3; pixel_x = 28},/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/shuttle/white,/area/shuttle/escape/centcom) "aJb" = (/obj/machinery/recharge_station,/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) -"aJc" = (/obj/machinery/camera/network/crescent{c_tag = "Shuttle East Storage"; dir = 8},/obj/machinery/cryopod/robot{time_till_despawn = 10},/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) +"aJc" = (/obj/machinery/camera/network/crescent{dir = 8; c_tag = "Shuttle East Storage"},/obj/machinery/cryopod/robot{time_till_despawn = 10},/turf/simulated/floor/shuttle/yellow,/area/shuttle/escape/centcom) "aJd" = (/obj/structure/urinal{pixel_y = 32},/obj/item/soap/syndie,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/skipjack_station/base) "aJe" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/skipjack_station/base) "aJf" = (/obj/structure/urinal{pixel_y = 32},/turf/simulated/floor/plating,/area/skipjack_station/base) "aJg" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/skipjack_station/base) -"aJh" = (/obj/machinery/camera/network/crescent{c_tag = "Crescent Bar West"; dir = 4},/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) +"aJh" = (/obj/machinery/camera/network/crescent{dir = 4; c_tag = "Crescent Bar West"},/turf/unsimulated/beach/sand{icon_state = "desert2"},/area/centcom/holding) "aJi" = (/obj/structure/closet/secure_closet/bar,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) "aJj" = (/obj/structure/table/woodentable{dir = 5},/obj/item/reagent_containers/rag,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) "aJk" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/chemical_dispenser/bar_alc/full,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/holding) @@ -1843,9 +1637,9 @@ "aJG" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/beach/sand{icon_state = "seashallow"},/area/centcom/holding) "aJH" = (/turf/unsimulated/wall,/area/tdome) "aJI" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{name = "plating"},/area/tdome) -"aJJ" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aJJ" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{name = "Thunderdome"; id = "crescent_thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aJK" = (/obj/structure/table/standard,/obj/item/reagent_containers/vessel/beaker/cryoxadone{pixel_x = 5; pixel_y = 5},/obj/item/reagent_containers/vessel/beaker/cryoxadone,/obj/item/reagent_containers/vessel/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/wrench,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"aJL" = (/obj/machinery/atmospherics/unary/freezer{dir = 1; icon_state = "freezer"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) +"aJL" = (/obj/machinery/atmospherics/unary/freezer{icon_state = "freezer"; dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aJM" = (/obj/effect/floor_decal/corner/lime/three_quarters{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aJN" = (/obj/effect/floor_decal/corner/lime/three_quarters,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aJO" = (/obj/machinery/sleeper{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) @@ -1869,7 +1663,7 @@ "aKg" = (/obj/effect/floor_decal/corner/lime/three_quarters{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aKh" = (/obj/effect/floor_decal/corner/lime/three_quarters{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "aKi" = (/obj/effect/floor_decal/corner/lime{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"aKj" = (/obj/item/clothing/mask/gas/swat{desc = "A close-fitting mask clearly not made for a human face."; name = "\improper alien mask"},/turf/unsimulated/floor{icon_state = "asteroid"},/area/skipjack_station/base) +"aKj" = (/obj/item/clothing/mask/gas/swat{name = "\improper alien mask"; desc = "A close-fitting mask clearly not made for a human face."},/turf/unsimulated/floor{icon_state = "asteroid"},/area/skipjack_station/base) "aKk" = (/obj/item/xenos_claw,/turf/unsimulated/floor{icon_state = "asteroid"},/area/skipjack_station/base) "aKl" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/gun/launcher/alien/slugsling,/obj/item/clothing/under/vox/vox_casual,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"},/area/skipjack_station/base) "aKm" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/gloves/vox,/obj/item/gun/launcher/alien/spikethrower,/obj/item/clothing/under/vox/vox_robes,/obj/item/clothing/accessory/holochip/vox,/turf/unsimulated/floor{icon_state = "asteroid"},/area/skipjack_station/base) @@ -1924,18 +1718,18 @@ "aLj" = (/obj/machinery/computer/station_alert/all,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/skipjack_station/base) "aLk" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/skipjack_station/base) "aLl" = (/obj/random/junk,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/skipjack_station/base) -"aLm" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "skipjack_base"; pixel_x = -25; pixel_y = -5},/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) -"aLn" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aLm" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{pixel_x = -25; pixel_y = -5; frequency = 1380; id_tag = "skipjack_base"},/obj/random/junk,/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) +"aLn" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{name = "Thunderdome"; id = "crescent_thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aLo" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/tank/nitrogen,/turf/unsimulated/floor{icon_state = "asteroid"},/area/skipjack_station/base) "aLp" = (/obj/item/clothing/head/philosopher_wig,/turf/unsimulated/floor{icon_state = "asteroid"},/area/skipjack_station/base) "aLq" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aLr" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 4},/turf/space,/area/skipjack_station/base) -"aLs" = (/obj/machinery/door/airlock/external{frequency = 1380; id_tag = "skipjack_base_hatch"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) +"aLs" = (/obj/machinery/door/airlock/external{frequency = 1380; req_access = list(150); id_tag = "skipjack_base_hatch"},/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) "aLt" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 8},/turf/space,/area/skipjack_station/base) "aLu" = (/obj/structure/closet/secure_closet/bar,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "aLv" = (/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "aLw" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) -"aLx" = (/obj/machinery/door/airlock/command{name = "Thunderdome"},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome) +"aLx" = (/obj/machinery/door/airlock/command{name = "Thunderdome"},/obj/machinery/door/blast/regular{name = "Thunderdome"; id = "crescent_thunderdome"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome) "aLy" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) "aLz" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/skipjack_station/base) "aLA" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) @@ -1959,9 +1753,9 @@ "aLS" = (/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) "aLT" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) "aLU" = (/turf/simulated/wall/voxshuttle,/area/skipjack_station/start) -"aLV" = (/obj/machinery/door/airlock/hatch{frequency = 1380; icon_state = "door_locked"; id_tag = "vox_northwest_lock"; locked = 1; name = "Ship External Access"; req_one_access = 150},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aLW" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "skipjackshutters"; name = "Skipjack Blast Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/skipjack_station/start) -"aLX" = (/obj/machinery/door/airlock/hatch{frequency = 1380; id_tag = "skipjack_shuttle_outer"; name = "Ship External Access"; req_one_access = 150},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/skipjack_station/start) +"aLV" = (/obj/machinery/door/airlock/hatch{name = "Ship External Access"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_one_access = 150; id_tag = "vox_northwest_lock"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/skipjack_station/start) +"aLW" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{name = "Skipjack Blast Shutters"; icon_state = "pdoor0"; opacity = 0; density = 0; dir = 4; id = "skipjackshutters"},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aLX" = (/obj/machinery/door/airlock/hatch{name = "Ship External Access"; frequency = 1380; req_one_access = 150; id_tag = "skipjack_shuttle_outer"},/obj/machinery/shield_diffuser,/turf/simulated/floor/plating,/area/skipjack_station/start) "aLY" = (/obj/effect/landmark/start/antags/actor,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aLZ" = (/obj/machinery/acting/wardrobe,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMa" = (/obj/structure/table/rack,/obj/item/storage/box/lights/mixed,/obj/item/device/floor_painter,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) @@ -1969,11 +1763,11 @@ "aMc" = (/obj/structure/table/rack,/obj/item/stack/tile/floor_freezer{amount = 50},/obj/item/stack/tile/floor_freezer{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMd" = (/obj/structure/table/rack,/obj/item/stack/tile/carpet{amount = 50},/obj/item/stack/tile/carpet{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMe" = (/obj/structure/table/rack,/obj/item/stack/tile/grass{amount = 50},/obj/item/stack/tile/grass{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aMf" = (/obj/structure/table/rack,/obj/item/stack/material/steel{amount = 50; pixel_x = 5; pixel_y = 5},/obj/item/stack/material/steel{amount = 50; pixel_x = 5; pixel_y = 5},/obj/item/stack/material/steel{amount = 50; pixel_x = 5; pixel_y = 5},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"aMf" = (/obj/structure/table/rack,/obj/item/stack/material/steel{pixel_x = 5; pixel_y = 5; amount = 50},/obj/item/stack/material/steel{pixel_x = 5; pixel_y = 5; amount = 50},/obj/item/stack/material/steel{pixel_x = 5; pixel_y = 5; amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMg" = (/obj/structure/table/rack,/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMh" = (/obj/structure/table/rack,/obj/item/stack/material/wood{amount = 50},/obj/item/stack/material/wood{amount = 50},/obj/item/stack/material/wood{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMi" = (/obj/structure/table/rack,/obj/item/stack/material/sandstone{amount = 50},/obj/item/stack/material/sandstone{amount = 50},/obj/item/stack/material/sandstone{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aMj" = (/obj/structure/table/rack,/obj/item/stack/material/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/material/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/material/glass{amount = 50; pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"aMj" = (/obj/structure/table/rack,/obj/item/stack/material/glass{pixel_x = 3; pixel_y = 3; amount = 50},/obj/item/stack/material/glass{pixel_x = 3; pixel_y = 3; amount = 50},/obj/item/stack/material/glass{pixel_x = 3; pixel_y = 3; amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMk" = (/obj/structure/table/rack,/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMl" = (/obj/structure/table/rack,/obj/item/stack/material/marble{amount = 50},/obj/item/stack/material/marble{amount = 50},/obj/item/stack/material/marble{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMm" = (/obj/structure/table/rack,/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) @@ -1986,53 +1780,53 @@ "aMt" = (/obj/structure/reagent_dispensers/fueltank,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMu" = (/obj/machinery/shower{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aMv" = (/obj/structure/bed/chair,/obj/structure/disposalpipe/segment,/obj/effect/landmark/event/tdome/tdomeobserve,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) -"aMw" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "vox_west_sensor"; pixel_x = -8; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "vox_west_vent"},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aMw" = (/obj/machinery/airlock_sensor{pixel_x = -8; pixel_y = 25; frequency = 1380; id_tag = "vox_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "vox_west_vent"},/turf/simulated/floor/plating,/area/skipjack_station/start) "aMx" = (/turf/simulated/floor/plating,/area/skipjack_station/start) "aMy" = (/obj/machinery/computer/station_alert/all,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "aMz" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "aMA" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "aMB" = (/obj/random/trash,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aMC" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "skipjack_shuttle_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "skipjack_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/turf/simulated/floor/plating,/area/skipjack_station/start) -"aMD" = (/obj/item/paper{info = "\[center]\[b]READ INSTRUCTIONS CAREFULLY\[/b]\[/center]\[br]\[br]Hello! Welcome and congratulations on being hired for NanoTrasen's new Television initiative. You are now tasked with the creation and production of NanoTrasen brand television that is to be broadcasted to all of our stations!\[br]\[br] We've outfitted these facilities with all the materials and objects you will need.\[br]On the port side you'll find various venders and machines, namely the Wardrobe Dispenser, which will dispense holoclothing and items for you to use, and a Quickee brand plastic surgery machine (which I would remind you you are contractually obligated to \[b]not\[/b] report to the authorities.) which can change your appearance into anything you want, even other races. Stern and aft you'll find all the materials we could muster up on short notice. Use it to decorate the stage to your liking. Starboard you'll find gases, microwaves, hydroponic trays and the like. Go silly! This is already paid for (as are you) so do what you want and entertain!"; name = "Actor's Guild Instruction Pamphlet"},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"aMC" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1380; id_tag = "skipjack_shuttle_pump"},/obj/machinery/airlock_sensor{pixel_x = 8; pixel_y = 25; frequency = 1380; id_tag = "skipjack_shuttle_sensor"},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aMD" = (/obj/item/paper{name = "Actor's Guild Instruction Pamphlet"; info = "\[center]\[b]READ INSTRUCTIONS CAREFULLY\[/b]\[/center]\[br]\[br]Hello! Welcome and congratulations on being hired for NanoTrasen's new Television initiative. You are now tasked with the creation and production of NanoTrasen brand television that is to be broadcasted to all of our stations!\[br]\[br] We've outfitted these facilities with all the materials and objects you will need.\[br]On the port side you'll find various venders and machines, namely the Wardrobe Dispenser, which will dispense holoclothing and items for you to use, and a Quickee brand plastic surgery machine (which I would remind you you are contractually obligated to \[b]not\[/b] report to the authorities.) which can change your appearance into anything you want, even other races. Stern and aft you'll find all the materials we could muster up on short notice. Use it to decorate the stage to your liking. Starboard you'll find gases, microwaves, hydroponic trays and the like. Go silly! This is already paid for (as are you) so do what you want and entertain!"},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aME" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/melee/energy/axe,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) -"aMF" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"aMG" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"aMF" = (/obj/effect/forcefield{name = "Blocker"; desc = "You can't get in. Heh."; layer = 1},/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"aMG" = (/obj/effect/forcefield{name = "Blocker"; desc = "You can't get in. Heh."; layer = 1},/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aMH" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/melee/energy/axe,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aMI" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aMJ" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "vox_west_control"; pixel_x = 25; pixel_y = 8; req_access = list(150); tag_airpump = "vox_west_vent"; tag_chamber_sensor = "vox_west_sensor"; tag_exterior_door = "vox_northwest_lock"; tag_interior_door = "vox_southwest_lock"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "vox_west_vent"},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aMJ" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = 25; pixel_y = 8; frequency = 1380; req_access = list(150); id_tag = "vox_west_control"; tag_exterior_door = "vox_northwest_lock"; tag_interior_door = "vox_southwest_lock"; tag_airpump = "vox_west_vent"; tag_chamber_sensor = "vox_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "vox_west_vent"},/turf/simulated/floor/plating,/area/skipjack_station/start) "aMK" = (/obj/machinery/light/small{dir = 8},/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "aML" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "aMM" = (/obj/structure/bed/chair{dir = 1},/obj/item/clothing/head/pirate,/obj/effect/shuttle_landmark/skipjack/start,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aMN" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/button/remote/blast_door{id = "skipjackshutters"; name = "remote shutter control"; pixel_x = 32; pixel_y = 32; req_access = list(150)},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) +"aMN" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/button/remote/blast_door{name = "remote shutter control"; pixel_x = 32; pixel_y = 32; id = "skipjackshutters"; req_access = list(150)},/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "aMO" = (/obj/machinery/light/small{dir = 4},/obj/vehicle/bike/thermal,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aMP" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "skipjack_shuttle"; pixel_x = -25; pixel_y = 8; req_access = list(150)},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "skipjack_shuttle_pump"},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aMP" = (/obj/machinery/light/small,/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = -25; pixel_y = 8; frequency = 1380; req_access = list(150); id_tag = "skipjack_shuttle"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "skipjack_shuttle_pump"},/turf/simulated/floor/plating,/area/skipjack_station/start) "aMQ" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/skipjack_station/start) "aMR" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aMS" = (/obj/machinery/door/airlock/glass{name = "Stage"},/turf/simulated/floor,/area/acting/backstage) "aMT" = (/obj/machinery/biogenerator,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aMU" = (/obj/machinery/door/blast/regular{id = "thunderdomeaxe"; name = "Axe Supply"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aMU" = (/obj/machinery/door/blast/regular{name = "Axe Supply"; id = "thunderdomeaxe"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aMV" = (/obj/machinery/igniter,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aMW" = (/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aMX" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"aMY" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{frequency = 1380; icon_state = "door_locked"; id_tag = "vox_southwest_lock"; locked = 1; name = "Ship External Access"; req_one_access = 150},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aMY" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{name = "Ship External Access"; icon_state = "door_locked"; frequency = 1380; locked = 1; req_one_access = 150; id_tag = "vox_southwest_lock"},/turf/simulated/floor/plating,/area/skipjack_station/start) "aMZ" = (/obj/structure/table/rack,/obj/item/rig/industrial,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "aNa" = (/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "aNb" = (/obj/random/trash,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) "aNc" = (/obj/structure/table/rack,/obj/item/rig/light/hacker,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) -"aNd" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{frequency = 1380; id_tag = "skipjack_shuttle_inner"; name = "Ship External Access"; req_one_access = 150},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aNd" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/hatch{name = "Ship External Access"; frequency = 1380; req_one_access = 150; id_tag = "skipjack_shuttle_inner"},/turf/simulated/floor/plating,/area/skipjack_station/start) "aNe" = (/obj/machinery/vending/hydroseeds,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aNf" = (/turf/simulated/floor/tiled,/area/acting/stage) "aNg" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/acting/stage) "aNh" = (/obj/machinery/microwave,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aNi" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/melee/baton/loaded,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) -"aNj" = (/obj/machinery/door/blast/regular{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aNj" = (/obj/machinery/door/blast/regular{name = "General Supply"; id = "thunderdomegen"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aNk" = (/obj/effect/landmark/event/tdome/tdome2,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2) -"aNl" = (/obj/machinery/door/blast/regular{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aNl" = (/obj/machinery/door/blast/regular{name = "Thunderdome Blast Door"; id = "thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aNm" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aNn" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aNo" = (/obj/effect/landmark/event/tdome/tdome1,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1) "aNp" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/melee/baton/loaded,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) -"aNq" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "vox_west_control"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access = list(150)},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aNq" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{name = "interior access button"; pixel_x = -25; pixel_y = 25; frequency = 1380; req_access = list(150); command = "cycle_interior"; master_tag = "vox_west_control"},/turf/simulated/floor/plating,/area/skipjack_station/start) "aNr" = (/obj/structure/table/rack,/obj/item/gun/energy/ionrifle,/obj/item/material/harpoon,/obj/item/clothing/suit/space/void/engineering/prepared,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/item/rig/light/stealth,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNs" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/obj/structure/table/steel,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNt" = (/obj/item/seeds/potatoseed,/obj/item/seeds/potatoseed,/obj/item/seeds/ambrosiavulgarisseed,/obj/item/material/minihoe,/obj/item/beartrap,/obj/structure/table/steel,/turf/simulated/floor/plating,/area/skipjack_station/start) @@ -2042,7 +1836,7 @@ "aNx" = (/obj/machinery/washing_machine,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNy" = (/obj/structure/table/standard,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter/zippo,/obj/item/clothing/gloves/insulated,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/card/emag,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNz" = (/obj/structure/table/rack,/obj/item/gun/energy/sniperrifle,/obj/item/clothing/suit/space/void/mining/prepared,/obj/item/clothing/suit/space/void/atmos/prepared,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/turf/simulated/floor/plating,/area/skipjack_station/start) -"aNA" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "skipjack_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/turf/simulated/floor/plating,/area/skipjack_station/start) +"aNA" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{name = "interior access button"; pixel_x = 25; pixel_y = 25; frequency = 1380; req_access = list(150); command = "cycle_interior"; master_tag = "skipjack_shuttle"},/turf/simulated/floor/plating,/area/skipjack_station/start) "aNB" = (/obj/machinery/vending/hydronutrients,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aNC" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark/event/tdome/tdome2,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2) "aND" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark/event/tdome/tdome1,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1) @@ -2056,16 +1850,16 @@ "aNL" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/acting/stage) "aNM" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/acting/stage) "aNN" = (/obj/machinery/vending/security,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aNO" = (/obj/effect/landmark/event/tdome/tdome2,/obj/machinery/camera/network/thunder{c_tag = "Thunderdome - Red Team"; invisibility = 101},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2) +"aNO" = (/obj/effect/landmark/event/tdome/tdome2,/obj/machinery/camera/network/thunder{invisibility = 101; c_tag = "Thunderdome - Red Team"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2) "aNP" = (/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) -"aNQ" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) -"aNR" = (/obj/effect/landmark/event/tdome/tdome1,/obj/machinery/camera/network/thunder{c_tag = "Green Team"; invisibility = 101},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1) +"aNQ" = (/obj/machinery/flasher{name = "Thunderdome Flash"; id = "flash"},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) +"aNR" = (/obj/effect/landmark/event/tdome/tdome1,/obj/machinery/camera/network/thunder{invisibility = 101; c_tag = "Green Team"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1) "aNS" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNT" = (/obj/item/ammo_magazine/c556,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNU" = (/obj/item/robot_parts/l_leg,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNV" = (/obj/machinery/vending/robotics,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aNW" = (/obj/machinery/atmospherics/pipe/vent,/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) -"aNX" = (/obj/machinery/camera/network/thunder{c_tag = "Thunderdome Arena"; invisibility = 101},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) +"aNX" = (/obj/machinery/camera/network/thunder{invisibility = 101; c_tag = "Thunderdome Arena"},/turf/unsimulated/floor{icon_state = "bcircuit"},/area/tdome) "aNY" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/plating,/area/skipjack_station/start) "aNZ" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/skipjack_station/start) "aOa" = (/obj/structure/table/rack,/obj/item/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/obj/machinery/light/small{dir = 8},/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/obj/item/beartrap,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) @@ -2074,7 +1868,7 @@ "aOd" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/skipjack_station/start) "aOe" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_leg,/obj/item/robot_parts/r_arm,/turf/simulated/floor/plating,/area/skipjack_station/start) "aOf" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"aOg" = (/obj/machinery/camera/network/thunder{anchored = 0; c_tag = "Television"; name = "Movable Camera"},/turf/simulated/floor/tiled,/area/acting/stage) +"aOg" = (/obj/machinery/camera/network/thunder{name = "Movable Camera"; anchored = 0; c_tag = "Television"},/turf/simulated/floor/tiled,/area/acting/stage) "aOh" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aOi" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aOk" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) @@ -2102,7 +1896,7 @@ "aOG" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/skipjack_station/start) "aOH" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aOI" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = list(102)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) -"aOJ" = (/obj/machinery/door/blast/regular{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) +"aOJ" = (/obj/machinery/door/blast/regular{name = "Heavy Supply"; id = "thunderdomehea"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aOK" = (/turf/simulated/shuttle/wall/corner/dark/sw,/area/skipjack_station/start) "aOL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/skipjack_station/start) "aOM" = (/obj/structure/table/steel,/obj/random/junk,/turf/simulated/floor/shuttle/red,/area/skipjack_station/start) @@ -2112,7 +1906,7 @@ "aOR" = (/obj/effect/floor_decal/corner/red{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aOS" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/gun/energy/laser,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aOT" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = list(102)},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"aOU" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"aOU" = (/obj/effect/forcefield{name = "Blocker"; desc = "You can't get in. Heh."; layer = 1},/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "aOV" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/gun/energy/laser,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aOW" = (/obj/effect/floor_decal/corner/green,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "aOX" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/floor/plating/airless,/area/skipjack_station/start) @@ -2156,10 +1950,10 @@ "aPJ" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) "aPK" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aPL" = (/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/item/grenade/chem_grenade/cleaner,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"aPM" = (/obj/machinery/computer/pod{id = "thunderdomeaxe"; name = "Thunderdome Axe Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"aPN" = (/obj/machinery/computer/pod{id = "thunderdomegen"; name = "Thunderdome General Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"aPO" = (/obj/machinery/computer/pod{id = "thunderdomehea"; name = "Thunderdome Heavy Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"aPP" = (/obj/machinery/computer/pod{id = "thunderdome"; name = "Thunderdome Blast Door Control"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) +"aPM" = (/obj/machinery/computer/pod{name = "Thunderdome Axe Supply"; id = "thunderdomeaxe"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) +"aPN" = (/obj/machinery/computer/pod{name = "Thunderdome General Supply"; id = "thunderdomegen"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) +"aPO" = (/obj/machinery/computer/pod{name = "Thunderdome Heavy Supply"; id = "thunderdomehea"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) +"aPP" = (/obj/machinery/computer/pod{name = "Thunderdome Blast Door Control"; id = "thunderdome"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aPQ" = (/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aPR" = (/obj/structure/table/standard,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "aPS" = (/obj/structure/table/standard,/obj/item/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) @@ -2177,9 +1971,9 @@ "aQe" = (/obj/machinery/cryopod{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/white,/area/merchant_station) "aQf" = (/obj/machinery/light/small{dir = 1},/obj/machinery/computer/cryopod{pixel_y = 32},/obj/item/roller,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/merchant_station) "aQg" = (/obj/item/device/radio/intercom{pixel_y = 22},/obj/structure/table/reinforced,/obj/item/storage/firstaid/toxin,/obj/item/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = -2},/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/merchant_station) -"aQh" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aQi" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aQj" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) +"aQh" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/natural/grass,/area/merchant_station) +"aQi" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/natural/grass,/area/merchant_station) +"aQj" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light{dir = 1},/turf/simulated/floor/natural/grass,/area/merchant_station) "aQk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/white,/area/merchant_station) "aQl" = (/obj/machinery/sleeper{dir = 8},/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/white,/area/merchant_station) "aQm" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/simulated/floor/plating,/area/merchant_station) @@ -2220,22 +2014,21 @@ "aQV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aQW" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aQX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/merchant_station) -"aQY" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aQZ" = (/obj/structure/flora/ausbushes/ywflowers,/mob/living/simple_animal/tindalos{name = "Eddy"},/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aRa" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/holofloor/grass,/area/merchant_station) -"aRb" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/grass,/area/merchant_station) +"aQY" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/natural/grass,/area/merchant_station) +"aRa" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/natural/grass,/area/merchant_station) +"aRb" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/natural/grass,/area/merchant_station) "aRc" = (/obj/structure/table/reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/effect/floor_decal/corner/blue/three_quarters,/turf/simulated/floor/tiled,/area/merchant_station) "aRd" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/blue{dir = 10},/obj/random/handgun,/turf/simulated/floor/tiled,/area/merchant_station) "aRe" = (/obj/structure/table/reinforced,/obj/random/loot,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/merchant_station) "aRf" = (/obj/machinery/photocopier,/obj/effect/floor_decal/corner/blue{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) -"aRg" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "merchant_station_interior"; locked = 1; name = "Station Exterior"; req_access = list(201)},/turf/simulated/floor/plating,/area/merchant_station) +"aRg" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/external{name = "Station Exterior"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(201); id_tag = "merchant_station_interior"},/turf/simulated/floor/plating,/area/merchant_station) "aRh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aRi" = (/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) -"aRj" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "merchant_station_vent"},/obj/machinery/embedded_controller/radio/airlock/docking_port{id_tag = "merchant_station_dock"; pixel_x = 26; plane = -13; req_access = list(201); tag_airpump = "merchant_station_vent"; tag_chamber_sensor = "merchant_station_sensor"; tag_exterior_door = "merchant_station_exterior"; tag_interior_door = "merchant_station_interior"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/merchant_station) +"aRj" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "merchant_station_vent"},/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = 26; plane = -13; req_access = list(201); id_tag = "merchant_station_dock"; tag_exterior_door = "merchant_station_exterior"; tag_interior_door = "merchant_station_interior"; tag_airpump = "merchant_station_vent"; tag_chamber_sensor = "merchant_station_sensor"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/merchant_station) "aRk" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aRl" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/simulated/floor/tiled,/area/merchant_station) "aRm" = (/obj/machinery/door/window/southright{req_access = list(201)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/window/northleft{req_access = list(201)},/turf/simulated/floor/plating,/area/merchant_station) -"aRn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "merchant_station_interior"; locked = 1; name = "Station Exterior"; req_access = list(201)},/turf/simulated/floor/plating,/area/merchant_station) +"aRn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{name = "Station Exterior"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(201); id_tag = "merchant_station_interior"},/turf/simulated/floor/plating,/area/merchant_station) "aRo" = (/obj/effect/decal/cleanable/dirt,/obj/structure/extinguisher_cabinet{pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/merchant_station) "aRp" = (/obj/machinery/constructable_frame/machine_frame,/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/obj/item/storage/toolbox/mechanical,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRq" = (/obj/effect/floor_decal/corner/green{dir = 5},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark,/area/merchant_station) @@ -2246,9 +2039,9 @@ "aRv" = (/obj/structure/shuttle/engine/propulsion/burst/right{dir = 1},/turf/space,/area/shuttle/merchant/home) "aRw" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 6},/area/shuttle/merchant/home) "aRx" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 8},/area/shuttle/merchant/home) -"aRy" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "merchant_ship_dock"; pixel_x = -28},/obj/effect/shuttle_landmark/merchant/start,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "merchant_ship_exterior"; locked = 1; name = "Ship Exterior"; req_access = list(201)},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "merchantshuttle1"; name = "Merchant Window Shutters"; opacity = 0},/obj/machinery/button/remote/blast_door{id = "merchantshuttle1"; name = "Privacy Shutters"; pixel_x = -28; pixel_y = -8; req_access = list(201)},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aRy" = (/obj/machinery/access_button{pixel_x = -28; frequency = 1379; command = "cycle_exterior"; master_tag = "merchant_ship_dock"},/obj/effect/shuttle_landmark/merchant/start,/obj/machinery/door/airlock/external{name = "Ship Exterior"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(201); id_tag = "merchant_ship_exterior"},/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; id = "merchantshuttle1"},/obj/machinery/button/remote/blast_door{name = "Privacy Shutters"; pixel_x = -28; pixel_y = -8; id = "merchantshuttle1"; req_access = list(201)},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "aRz" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 4},/area/shuttle/merchant/home) -"aRA" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/syndicate_station/start) +"aRA" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/syndicate_station/start) "aRB" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) "aRC" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRD" = (/obj/effect/floor_decal/corner/green{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/merchant_station) @@ -2257,23 +2050,23 @@ "aRH" = (/obj/structure/table/steel,/obj/item/spacecash/bundle/c1000,/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRI" = (/obj/structure/shuttle/engine/heater{dir = 1},/turf/simulated/shuttle/wall,/area/shuttle/merchant/home) "aRJ" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"},/area/shuttle/merchant/home) -"aRK" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "merchant_ship_dock"; name = "interior access button"; pixel_x = -28; pixel_y = -6},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "merchant_ship_dock"; name = "exterior access button"; pixel_x = -28; pixel_y = 6},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aRK" = (/obj/machinery/access_button{name = "interior access button"; pixel_x = -28; pixel_y = -6; frequency = 1379; command = "cycle_interior"; master_tag = "merchant_ship_dock"},/obj/machinery/access_button{name = "exterior access button"; pixel_x = -28; pixel_y = 6; frequency = 1379; command = "cycle_exterior"; master_tag = "merchant_ship_dock"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "aRL" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1379; id_tag = "merchant_ship_vent"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) -"aRM" = (/obj/machinery/airlock_sensor{id_tag = "merchant_ship_sensor"; pixel_x = 28},/obj/structure/closet/emcloset{anchored = 1},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aRM" = (/obj/machinery/airlock_sensor{pixel_x = 28; id_tag = "merchant_ship_sensor"},/obj/structure/closet/emcloset{anchored = 1},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "aRN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) "aRO" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) -"aRP" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 2; name = "Warehouse"},/turf/simulated/floor/tiled/dark,/area/merchant_station) +"aRP" = (/obj/machinery/door/airlock/multi_tile/glass{name = "Warehouse"; dir = 2},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRQ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRR" = (/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRS" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRT" = (/obj/structure/bed/chair/office/dark{dir = 4},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRU" = (/obj/structure/table/steel,/obj/item/paper,/obj/item/pen,/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aRV" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/sw,/area/shuttle/merchant/home) -"aRW" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_t"},/area/rescue_base/start) +"aRW" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/rescue_base/start) "aRX" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 5},/area/shuttle/merchant/home) -"aRY" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "window-whiteship"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) -"aRZ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "merchant_ship_interior"; locked = 1; name = "Ship Exterior"; req_access = list(201)},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "merchantshuttle1"; name = "Merchant Window Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/shuttle/merchant/home) -"aSa" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "merchantshuttle1"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle,/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aRY" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 4; id = "merchantshuttle"},/obj/structure/window/shuttle{icon_state = "window-whiteship"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aRZ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/external{name = "Ship Exterior"; icon_state = "door_locked"; frequency = 1379; locked = 1; req_access = list(201); id_tag = "merchant_ship_interior"},/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; id = "merchantshuttle1"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aSa" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; id = "merchantshuttle1"},/obj/structure/window/shuttle,/turf/simulated/floor/plating,/area/shuttle/merchant/home) "aSb" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/se,/area/shuttle/merchant/home) "aSc" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/largecrate,/obj/random/loot,/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSd" = (/obj/structure/closet/crate/freezer/rations,/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/light/small,/turf/simulated/floor/tiled/dark,/area/merchant_station) @@ -2282,7 +2075,7 @@ "aSg" = (/obj/structure/table/steel,/obj/structure/flora/pottedplant/shoot{pixel_y = 7},/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_y = -28},/obj/machinery/light/small,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSh" = (/obj/structure/table/steel,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/clipboard,/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSi" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/door/window/brigdoor/eastright{req_access = list(201)},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) -"aSj" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/obj/machinery/button/remote/blast_door{id = "merchantshuttle1"; name = "Privacy Shutters"; pixel_x = -28; pixel_y = 28; req_access = list(201)},/turf/simulated/floor/tiled,/area/shuttle/merchant/home) +"aSj" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/obj/machinery/button/remote/blast_door{name = "Privacy Shutters"; pixel_x = -28; pixel_y = 28; id = "merchantshuttle1"; req_access = list(201)},/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aSk" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/effect/floor_decal/industrial/loading,/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aSl" = (/obj/effect/floor_decal/corner/brown/three_quarters{dir = 1},/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aSm" = (/obj/structure/closet/crate,/obj/machinery/door/window/brigdoor/westright{req_access = list(201)},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) @@ -2294,68 +2087,68 @@ "aSs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aSw" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aSx" = (/obj/structure/closet/coffin,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aSy" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/reagent_containers/vessel/flask/barflask,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/trim/carpet,/area/wizard_station) -"aSz" = (/turf/simulated/shuttle/wall/syndi{dir = 6; icon_state = "syndiwall"},/area/shuttle/syndicate_elite/mothership) +"aSw" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aSx" = (/obj/structure/closet/coffin,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aSy" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = -3; pixel_y = 8; on = 0},/obj/item/reagent_containers/vessel/flask/barflask,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/trim/carpet,/area/wizard_station) +"aSz" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/shuttle/syndicate_elite/mothership) "aSA" = (/obj/structure/table/rack,/obj/random/action_figure,/obj/effect/floor_decal/industrial/outline/grey,/obj/item/clothing/accessory/holster,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSC" = (/obj/machinery/light/small,/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aSD" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/grey,/obj/item/card/id{access = list(201); desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; name = "Visitor's Card - Merchant's Station"},/obj/item/card/id{access = list(201); desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; name = "Visitor's Card - Merchant's Station"},/obj/item/card/id{access = list(201); desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; name = "Visitor's Card - Merchant's Station"},/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aSE" = (/obj/structure/table/woodentable,/obj/item/storage/bag/cash,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aSD" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/grey,/obj/item/card/id{name = "Visitor's Card - Merchant's Station"; desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; access = list(201)},/obj/item/card/id{name = "Visitor's Card - Merchant's Station"; desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; access = list(201)},/obj/item/card/id{name = "Visitor's Card - Merchant's Station"; desc = "A visitor's access card, this one is for the Merchant's Station."; icon_state = "guest"; access = list(201)},/turf/simulated/floor/tiled/dark,/area/merchant_station) +"aSE" = (/obj/structure/table/woodentable,/obj/item/storage/bag/cash,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aSF" = (/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aSG" = (/obj/structure/bed,/obj/item/bedsheet/rd,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aSH" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aSI" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/staff/broom,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aSJ" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aSK" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"aSH" = (/obj/structure/closet{icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"aSI" = (/obj/structure/closet{icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/staff/broom,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"aSJ" = (/obj/structure/closet{icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"aSK" = (/obj/structure/closet{icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aSL" = (/obj/structure/table/rack,/obj/machinery/door/window/brigdoor/eastright{req_access = list(201)},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aSM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) "aSN" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) "aSO" = (/obj/machinery/door/airlock/hatch{name = "Storage"; req_access = list(201)},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/merchant_station) "aSP" = (/turf/simulated/floor/asteroid,/area/merchant_station) -"aSQ" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aSR" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aSQ" = (/obj/structure/bookcase,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aSR" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aSS" = (/obj/machinery/door/unpowered/simple/wood,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aST" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aSU" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 1},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aSU" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 8; id = "merchantshuttle"},/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 1},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "aSV" = (/obj/structure/table/rack,/obj/machinery/door/window/brigdoor/westright{req_access = list(201)},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) -"aSW" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aSW" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 4; id = "merchantshuttle"},/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "aSX" = (/obj/machinery/alarm{dir = 8; pixel_x = 25; req_one_access = list(201)},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/merchant_station) "aSY" = (/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/merchant_station) -"aSZ" = (/obj/machinery/alarm{pixel_y = 23; req_one_access = list(201)},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/merchant_station) +"aSZ" = (/obj/machinery/alarm{pixel_y = 23; req_one_access = list(201)},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aTa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aTb" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aTc" = (/obj/structure/table/rack,/obj/random/loot,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aTd" = (/obj/structure/closet/crate,/obj/machinery/light{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/random/loot,/obj/random/loot,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aTe" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/merchant_station) "aTf" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/asteroid,/area/merchant_station) -"aTg" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aTg" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aTh" = (/obj/structure/table/woodentable,/obj/item/storage/backpack/cultpack,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTi" = (/obj/structure/table/woodentable,/obj/item/clothing/glasses/monocle,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTj" = (/obj/structure/table/woodentable,/obj/item/storage/backpack,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aTk" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aTl" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/shoes/sandal/marisa{desc = "A set of fancy shoes that are as functional as they are comfortable."; name = "Gentlemans Shoes"},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/staff/gentcane,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"aTm" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"aTk" = (/obj/structure/closet{icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"aTl" = (/obj/structure/closet{icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/shoes/sandal/marisa{name = "Gentlemans Shoes"; desc = "A set of fancy shoes that are as functional as they are comfortable."},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/staff/gentcane,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"aTm" = (/obj/structure/closet{icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "aTn" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aTo" = (/obj/effect/floor_decal/corner/brown/three_quarters{dir = 4},/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aTp" = (/obj/structure/extinguisher_cabinet{pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/merchant_station) "aTq" = (/obj/machinery/disposal,/obj/machinery/light/small{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled,/area/merchant_station) -"aTr" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/turf/simulated/floor/tiled,/area/merchant_station) +"aTr" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) "aTs" = (/obj/structure/table/rack,/obj/item/storage/bag/cash,/turf/simulated/floor/tiled,/area/merchant_station) "aTt" = (/turf/simulated/wall,/area/merchant_station) "aTu" = (/obj/machinery/door/window/brigdoor/northleft{req_access = list(201)},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) -"aTv" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/table/reinforced,/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) +"aTv" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+06},/obj/structure/table/reinforced,/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aTw" = (/obj/machinery/door/window/brigdoor/northleft{req_access = list(201)},/obj/structure/table/reinforced,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/structure/closet/walllocker/emerglocker/east,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aTx" = (/obj/structure/fireaxecabinet{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/merchant_station) "aTy" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) "aTz" = (/obj/structure/filingcabinet,/turf/simulated/floor/tiled,/area/merchant_station) "aTA" = (/obj/structure/table/steel,/obj/item/card/id/merchant,/turf/simulated/floor/tiled,/area/merchant_station) "aTB" = (/obj/structure/table/steel,/obj/item/spacecash/bundle/c1000,/obj/item/spacecash/bundle/c1000,/obj/item/spacecash/bundle/c1000,/obj/item/spacecash/bundle/c1000,/obj/item/spacecash/bundle/c1000,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/item/clipboard,/turf/simulated/floor/tiled,/area/merchant_station) -"aTC" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aTD" = (/obj/structure/table/woodentable,/obj/item/dice/d20,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aTE" = (/obj/structure/table/woodentable,/obj/item/storage/box/cups,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aTF" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aTC" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aTD" = (/obj/structure/table/woodentable,/obj/item/dice/d20,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aTE" = (/obj/structure/table/woodentable,/obj/item/storage/box/cups,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aTF" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aTG" = (/obj/item/target,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "aTH" = (/obj/item/target/syndicate,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "aTI" = (/obj/item/target/alien,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) @@ -2364,50 +2157,50 @@ "aTL" = (/obj/structure/kitchenspike,/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "aTM" = (/obj/structure/closet/secure_closet{name = "merchant's locker"; req_access = list(201)},/obj/effect/floor_decal/corner/brown{dir = 6},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aTN" = (/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) -"aTO" = (/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/table/reinforced,/obj/structure/flora/pottedplant/shoot{pixel_y = 7},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) -"aTP" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{id_tag = "merchant_ship_dock"; pixel_x = -32; pixel_y = 32; tag_airpump = "merchant_ship_vent"; tag_chamber_sensor = "merchant_ship_sensor"; tag_exterior_door = "merchant_ship_exterior"; tag_interior_door = "merchant_ship_interior"},/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) +"aTO" = (/obj/structure/window/reinforced{dir = 8; health = 1e+06},/obj/structure/table/reinforced,/obj/structure/flora/pottedplant/shoot{pixel_y = 7},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) +"aTP" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = -32; pixel_y = 32; id_tag = "merchant_ship_dock"; tag_exterior_door = "merchant_ship_exterior"; tag_interior_door = "merchant_ship_interior"; tag_airpump = "merchant_ship_vent"; tag_chamber_sensor = "merchant_ship_sensor"},/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aTQ" = (/obj/structure/table/reinforced,/obj/item/clipboard,/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) -"aTR" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/multi_tile/glass{dir = 2; name = "Warehouse"},/turf/simulated/floor/tiled,/area/merchant_station) +"aTR" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/multi_tile/glass{name = "Warehouse"; dir = 2},/turf/simulated/floor/tiled,/area/merchant_station) "aTS" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) "aTT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled,/area/merchant_station) "aTU" = (/obj/structure/bed/chair/office/dark{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aTV" = (/obj/item/modular_computer/console/preset/merchant,/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/tiled,/area/merchant_station) -"aTW" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/reagent_containers/food/milosoup,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aTX" = (/obj/structure/table/woodentable,/obj/item/dice,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aTW" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/reagent_containers/food/milosoup,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aTX" = (/obj/structure/table/woodentable,/obj/item/dice,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aTY" = (/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "aTZ" = (/turf/unsimulated/wall/fakeglass,/area/wizard_station) "aUa" = (/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "aUb" = (/obj/structure/table/reinforced,/obj/random/loot,/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aUc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aUd" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) -"aUe" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/machinery/button/remote/blast_door{id = "merchantbase"; pixel_x = -26},/turf/simulated/floor/tiled,/area/merchant_station) +"aUe" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/machinery/button/remote/blast_door{pixel_x = -26; id = "merchantbase"},/turf/simulated/floor/tiled,/area/merchant_station) "aUf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/extinguisher_cabinet{pixel_y = -28},/turf/simulated/floor/tiled,/area/merchant_station) "aUg" = (/obj/machinery/merchant_pad,/obj/effect/floor_decal/industrial/hatch/red,/turf/simulated/floor/tiled/dark,/area/merchant_station) -"aUh" = (/obj/structure/table/woodentable,/obj/item/device/megaphone,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aUi" = (/obj/structure/table/woodentable,/obj/item/storage/box/donut,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aUh" = (/obj/structure/table/woodentable,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aUi" = (/obj/structure/table/woodentable,/obj/item/storage/box/donut,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aUj" = (/obj/structure/table/reinforced,/obj/item/device/eftpos,/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled/dark,/area/shuttle/merchant/home) "aUk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) "aUl" = (/obj/effect/floor_decal/industrial/loading{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) "aUm" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) -"aUn" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{dir = 8; id = "merchantbase"; name = "Merchant Loading Shutters"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/merchant_station) +"aUn" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{name = "Merchant Loading Shutters"; dir = 8; id = "merchantbase"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/merchant_station) "aUo" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) "aUp" = (/obj/machinery/door/window/southleft,/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning,/obj/machinery/conveyor_switch{id = "merchantbelt2"},/turf/simulated/floor/tiled,/area/merchant_station) "aUq" = (/obj/machinery/door/window/southright,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/merchant_station) -"aUr" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/chawanmushi,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"aUs" = (/obj/structure/table/woodentable,/obj/item/spacecash/bundle/c1,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"aUr" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/chawanmushi,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) +"aUs" = (/obj/structure/table/woodentable,/obj/item/spacecash/bundle/c1,/turf/unsimulated/floor{icon_state = "wood"; dir = 8},/area/wizard_station) "aUt" = (/obj/structure/table/glass,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "aUu" = (/obj/item/robot_parts/head,/obj/structure/table/glass,/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "aUv" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{name = "plating"; icon_state = "cult"},/area/wizard_station) "aUw" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 1},/area/shuttle/merchant/home) "aUx" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access = list(201)},/turf/simulated/floor/tiled,/area/shuttle/merchant/home) "aUy" = (/obj/effect/floor_decal/industrial/loading{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) -"aUz" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{dir = 8; id = "merchantbase"; name = "Merchant Loading Shutters"},/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/merchant_station) +"aUz" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{name = "Merchant Loading Shutters"; dir = 8; id = "merchantbase"},/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/merchant_station) "aUA" = (/obj/machinery/conveyor{dir = 8; id = "merchantbelt2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/merchant_station) "aUB" = (/obj/machinery/conveyor{dir = 8; id = "merchantbelt2"},/turf/simulated/floor/plating,/area/merchant_station) "aUC" = (/obj/machinery/conveyor{dir = 8; id = "merchantbelt1"},/turf/simulated/floor/plating,/area/merchant_station) -"aUD" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar,/turf/simulated/floor/plating/airless,/area/merchant_station) -"aUE" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aUF" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar,/turf/simulated/floor/plating/airless,/area/merchant_station) +"aUD" = (/obj/structure/cable/blue{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar,/turf/simulated/floor/plating/airless,/area/merchant_station) +"aUE" = (/obj/structure/cable/blue{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable/blue{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aUF" = (/obj/structure/cable/blue{icon_state = "0-8"; d2 = 8},/obj/machinery/power/solar,/turf/simulated/floor/plating/airless,/area/merchant_station) "aUG" = (/obj/structure/flora/pottedplant/tropical,/obj/machinery/vending/wallmed1{pixel_x = 7; pixel_y = 32},/obj/structure/extinguisher_cabinet{pixel_x = -7; pixel_y = 32},/obj/item/storage/secure/safe{pixel_x = -26},/obj/machinery/light{dir = 1},/turf/simulated/floor/trim/wood,/area/shuttle/merchant/home) "aUH" = (/turf/simulated/floor/trim/wood,/area/shuttle/merchant/home) "aUI" = (/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/obj/structure/closet/secure_closet{name = "merchant's locker"; req_access = list(201)},/obj/random/handgun,/obj/machinery/light{dir = 1},/turf/simulated/floor/trim/wood,/area/shuttle/merchant/home) @@ -2418,11 +2211,11 @@ "aUN" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/wizard_station) "aUO" = (/turf/unsimulated/wall/fakeglass{dir = 1},/area/wizard_station) "aUP" = (/turf/unsimulated/wall/fakeglass{dir = 4},/area/wizard_station) -"aUQ" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aUQ" = (/obj/structure/cable/blue{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable/blue{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable/blue{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) "aUR" = (/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) "aUS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aUT" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) -"aUU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/button/remote/blast_door{id = "merchantbase"; pixel_x = -26},/turf/simulated/floor/tiled,/area/merchant_station) +"aUU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/button/remote/blast_door{pixel_x = -26; id = "merchantbase"},/turf/simulated/floor/tiled,/area/merchant_station) "aUV" = (/obj/structure/table/rack,/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/turf/simulated/floor/tiled,/area/merchant_station) "aUW" = (/obj/structure/table/rack,/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/turf/simulated/floor/tiled,/area/merchant_station) "aUX" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/turf/simulated/floor/tiled,/area/merchant_station) @@ -2430,23 +2223,23 @@ "aUZ" = (/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) "aVa" = (/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) "aVb" = (/mob/living/simple_animal/crab{name = "Experiment 68a"},/turf/unsimulated/floor{icon_state = "asteroid"},/area/wizard_station) -"aVc" = (/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) -"aVd" = (/obj/structure/flora/ausbushes/fullgrass,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) +"aVc" = (/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"aVd" = (/obj/structure/flora/ausbushes/fullgrass,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) "aVe" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aVf" = (/mob/living/carbon/human/monkey{name = "Murphey"},/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aVg" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) -"aVh" = (/obj/machinery/button/remote/blast_door{id = "merchantshuttle"; name = "Merchant Window Shutters"; pixel_x = 28; req_access = list(201)},/obj/structure/bed/chair/comfy/black,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) +"aVh" = (/obj/machinery/button/remote/blast_door{name = "Merchant Window Shutters"; pixel_x = 28; id = "merchantshuttle"; req_access = list(201)},/obj/structure/bed/chair/comfy/black,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) "aVi" = (/obj/structure/table/reinforced,/turf/simulated/floor/trim/carpet/blue,/area/shuttle/merchant/home) -"aVj" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) +"aVj" = (/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) "aVk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) "aVl" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aVm" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aVn" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/merchant_station) +"aVn" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/disposalpipe/segment{icon_state = "pipe-c"; dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) "aVo" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aVp" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/effect/decal/cleanable/dirt,/obj/machinery/conveyor{dir = 1; id = "merchantbelt1"},/turf/simulated/floor/plating,/area/merchant_station) "aVq" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{name = "plating"; icon_state = "lava"},/area/wizard_station) -"aVr" = (/obj/structure/flora/ausbushes/grassybush,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) -"aVs" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Experiment 97d"},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station) +"aVr" = (/obj/structure/flora/ausbushes/grassybush,/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) +"aVs" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Experiment 97d"},/turf/unsimulated/floor{name = "grass"; icon_state = "grass0"},/area/wizard_station) "aVt" = (/obj/item/caution,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aVu" = (/obj/item/material/knife/ritual,/turf/unsimulated/floor{icon_state = "freezerfloor"},/area/wizard_station) "aVv" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/shuttle/merchant/home) @@ -2458,7 +2251,7 @@ "aVB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) "aVC" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/conveyor_switch{id = "merchantbelt1"},/turf/simulated/floor/tiled,/area/merchant_station) "aVD" = (/obj/machinery/conveyor{dir = 1; id = "merchantbelt1"},/turf/simulated/floor/plating,/area/merchant_station) -"aVE" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 4},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"aVE" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 2; id = "merchantshuttle"},/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 4},/turf/simulated/floor/plating,/area/shuttle/merchant/home) "aVF" = (/obj/structure/noticeboard{pixel_x = 32},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/merchant_station) "aVG" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled,/area/merchant_station) "aVH" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled{icon_state = "steel_dirty"},/area/merchant_station) @@ -2468,14 +2261,14 @@ "aVL" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) "aVM" = (/obj/machinery/vending/engivend,/turf/simulated/floor/tiled,/area/merchant_station) "aVN" = (/obj/machinery/alarm{dir = 4; pixel_x = -22},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) -"aVO" = (/obj/structure/closet,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/under/rank/psych/turtleneck{desc = "A turqouise turtleneck and a pair of dark blue slacks."; name = "turtleneck"},/turf/simulated/floor/tiled,/area/merchant_station) +"aVO" = (/obj/structure/closet,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/under/rank/psych/turtleneck{name = "turtleneck"; desc = "A turqouise turtleneck and a pair of dark blue slacks."},/turf/simulated/floor/tiled,/area/merchant_station) "aVP" = (/obj/structure/table/rack,/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plasteel{amount = 10},/turf/simulated/floor/tiled,/area/merchant_station) "aVQ" = (/obj/structure/table/rack,/turf/simulated/floor/tiled/airless,/area/merchant_station) "aVR" = (/obj/structure/lattice,/obj/machinery/light/small,/turf/space,/area/merchant_station) "aVS" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{name = "plating"},/area/merchant_station) -"aVT" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/simulated/floor/tiled,/area/merchant_station) +"aVT" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/simulated/floor/tiled,/area/merchant_station) "aVU" = (/obj/machinery/constructable_frame/machine_frame,/obj/machinery/light/small{dir = 1},/obj/machinery/firealarm{dir = 1; pixel_y = 24},/turf/simulated/floor/tiled,/area/merchant_station) -"aVV" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/random/powercell,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24; req_access = list(201)},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled,/area/merchant_station) +"aVV" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/random/powercell,/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_y = 24; req_access = list(201)},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled,/area/merchant_station) "aVW" = (/obj/machinery/suit_storage_unit/standard_unit{req_access = list(201)},/turf/simulated/floor/tiled,/area/merchant_station) "aVX" = (/obj/structure/extinguisher_cabinet{pixel_x = -26},/obj/structure/flora/pottedplant/minitree,/turf/simulated/floor/tiled,/area/merchant_station) "aVY" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) @@ -2484,8 +2277,8 @@ "aWb" = (/obj/structure/table/rack,/turf/simulated/floor/tiled,/area/merchant_station) "aWc" = (/obj/structure/table/steel,/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/plating,/area/merchant_station) "aWd" = (/obj/structure/table/steel,/obj/item/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/merchant_station) -"aWe" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) -"aWf" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aWe" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) +"aWf" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aWg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) "aWh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Maintenance"; req_access = list(201)},/obj/machinery/door/firedoor,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) "aWi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) @@ -2499,12 +2292,12 @@ "aWr" = (/obj/structure/table/rack,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/turf/simulated/floor/tiled,/area/merchant_station) "aWs" = (/obj/structure/table/rack,/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/turf/simulated/floor/plating,/area/merchant_station) "aWt" = (/obj/structure/closet,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/vox/vox_casual,/turf/simulated/floor/plating,/area/merchant_station) -"aWu" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aWu" = (/obj/structure/cable/blue{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) "aWv" = (/obj/structure/closet/crate,/obj/machinery/light/small{dir = 8},/obj/item/stack/material/glass{amount = 15},/obj/item/stack/material/plastic{amount = 10},/obj/item/stack/material/steel{amount = 10},/obj/item/device/floor_painter,/turf/simulated/floor/plating,/area/merchant_station) "aWw" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/tiled,/area/merchant_station) "aWx" = (/obj/machinery/vending/engivend{req_access = list(201)},/turf/simulated/floor/plating,/area/merchant_station) "aWy" = (/obj/structure/table/steel,/obj/item/storage/box/lights/mixed,/obj/item/reagent_containers/spray/cleaner,/turf/simulated/floor/plating,/area/merchant_station) -"aWz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) +"aWz" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) "aWA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aWB" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/obj/machinery/alarm{dir = 8; pixel_x = 25; req_one_access = list(201)},/turf/simulated/floor/tiled,/area/merchant_station) "aWC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) @@ -2515,20 +2308,20 @@ "aWH" = (/obj/structure/closet/crate,/turf/simulated/floor/plating,/area/merchant_station) "aWI" = (/obj/random/trash,/turf/simulated/floor/plating,/area/merchant_station) "aWJ" = (/obj/structure/table/rack,/obj/random/medical,/turf/simulated/floor/tiled,/area/merchant_station) -"aWK" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aWL" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aWM" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aWK" = (/obj/structure/cable/blue{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aWL" = (/obj/structure/cable/blue{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aWM" = (/obj/structure/cable/blue{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable/blue{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/plating/airless,/area/merchant_station) "aWN" = (/obj/structure/table/woodentable,/obj/item/material/ashtray/bronze,/obj/item/clothing/mask/smokable/cigarette/cigar/havana,/turf/simulated/floor/tiled,/area/merchant_station) -"aWO" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled,/area/merchant_station) -"aWP" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/power/smes/buildable{charge = 2.5e+006; input_attempt = 1; input_level = 250000; output_attempt = 1; output_level = 250000; RCon_tag = null},/turf/simulated/floor/plating,/area/merchant_station) -"aWQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/merchant_station) -"aWR" = (/obj/structure/extinguisher_cabinet{pixel_y = 28},/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/merchant_station) +"aWO" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/blue{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled,/area/merchant_station) +"aWP" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/power/smes/buildable{charge = 2.5e+06; input_attempt = 1; input_level = 250000; output_attempt = 1; output_level = 250000; RCon_tag = null},/turf/simulated/floor/plating,/area/merchant_station) +"aWQ" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/merchant_station) +"aWR" = (/obj/structure/extinguisher_cabinet{pixel_y = 28},/obj/machinery/light/small{dir = 1},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/tiled,/area/merchant_station) "aWS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/plating,/area/merchant_station) -"aWT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) -"aWU" = (/obj/random/trash,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/merchant_station) -"aWV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/merchant_station) -"aWW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aWX" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/merchant_station) +"aWT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/merchant_station) +"aWU" = (/obj/random/trash,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/merchant_station) +"aWV" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/merchant_station) +"aWW" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aWX" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/merchant_station) "aWY" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/tiled,/area/merchant_station) "aWZ" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor/plating,/area/merchant_station) "aXa" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/merchant_station) @@ -2539,29 +2332,28 @@ "aXf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock{name = "Toilet"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aXg" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/merchant_station) "aXh" = (/obj/structure/reagent_dispensers{anchored = 1},/turf/simulated/floor/tiled,/area/merchant_station) -"aXi" = (/obj/machinery/power/tracker,/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aXj" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aXk" = (/obj/effect/wingrille_spawn/reinforced/crescent,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/unsimulated/floor{name = "plating"},/area/merchant_station) -"aXl" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/power/solar_control/autostart,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) -"aXm" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/bed/chair/comfy/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aXn" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/merchant_station) +"aXi" = (/obj/machinery/power/tracker,/obj/structure/cable/blue{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aXj" = (/obj/structure/cable/blue{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable/blue{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable/blue{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aXk" = (/obj/effect/wingrille_spawn/reinforced/crescent,/obj/structure/cable/blue{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/unsimulated/floor{name = "plating"},/area/merchant_station) +"aXl" = (/obj/structure/cable/blue{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/power/solar_control/autostart,/obj/structure/cable/blue{icon_state = "0-8"; d2 = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/merchant_station) +"aXm" = (/obj/structure/cable/blue{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/structure/bed/chair/comfy/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aXn" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable/blue{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable/blue{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/tiled,/area/merchant_station) "aXo" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/merchant_station) -"aXp" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/merchant_station) -"aXq" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/merchant_station) -"aXr" = (/obj/machinery/door/airlock/maintenance{name = "Solar Array"; req_access = list(201)},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aXs" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aXt" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aXu" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/merchant_station) +"aXp" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/plating,/area/merchant_station) +"aXq" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/merchant_station) +"aXr" = (/obj/machinery/door/airlock/maintenance{name = "Solar Array"; req_access = list(201)},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aXs" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aXt" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) +"aXu" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/merchant_station) "aXv" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/meter,/turf/simulated/floor/tiled,/area/merchant_station) -"aXw" = (/obj/machinery/atmospherics/omni/filter{active_power_usage = 2500; tag_east = 1; tag_south = 4; tag_west = 2},/turf/simulated/floor/plating,/area/merchant_station) +"aXw" = (/obj/machinery/atmospherics/omni/filter{tag_south = 4; tag_east = 1; tag_west = 2; active_power_usage = 2500},/turf/simulated/floor/plating,/area/merchant_station) "aXx" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) -"aXy" = (/obj/machinery/atmospherics/omni/filter{tag_east = 1; tag_south = 3; tag_west = 2},/turf/simulated/floor/tiled,/area/merchant_station) +"aXy" = (/obj/machinery/atmospherics/omni/filter{tag_south = 3; tag_east = 1; tag_west = 2},/turf/simulated/floor/tiled,/area/merchant_station) "aXz" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/red{dir = 9},/turf/simulated/floor/plating,/area/merchant_station) "aXA" = (/obj/machinery/atmospherics/binary/passive_gate/on{dir = 1},/turf/simulated/floor/plating,/area/merchant_station) "aXB" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/item/tank/emergency/oxygen/double,/turf/simulated/floor/plating,/area/merchant_station) -"aXC" = (/obj/machinery/shower{dir = 4; pixel_x = 5},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/machinery/door/window,/turf/simulated/floor/tiled/freezer,/area/merchant_station) +"aXC" = (/obj/machinery/shower{dir = 4; pixel_x = 5},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 1; health = 1e+06},/obj/machinery/door/window,/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aXD" = (/turf/simulated/floor/tiled/freezer,/area/merchant_station) -"aXE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/mob/living/simple_animal/tindalos{name = "Eddy"},/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aXF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/extinguisher_cabinet{pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/junction{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) "aXG" = (/obj/effect/decal/cleanable/dirt,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) "aXH" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/merchant_station) @@ -2569,21 +2361,21 @@ "aXJ" = (/obj/machinery/firealarm{pixel_y = 26},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/trim/wood,/area/merchant_station) "aXK" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/trim/wood,/area/merchant_station) "aXL" = (/obj/machinery/computer/arcade,/turf/simulated/floor/trim/wood,/area/merchant_station) -"aXM" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/machinery/chemical_dispenser/bar_coffee,/obj/machinery/light{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) +"aXM" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) "aXN" = (/obj/structure/bed/chair/comfy/brown,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aXO" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft,/turf/simulated/floor/trim/carpet,/area/merchant_station) -"aXP" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/merchant_station) -"aXQ" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aXP" = (/obj/structure/cable/blue{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aXQ" = (/obj/structure/cable/blue{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable/blue{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) "aXR" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/blue,/turf/simulated/floor/plating,/area/merchant_station) -"aXS" = (/obj/machinery/power/smes/buildable{charge = 2.5e+006; input_attempt = 1; input_level = 250000; output_attempt = 1; output_level = 250000; RCon_tag = null},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/merchant_station) -"aXT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/merchant_station) -"aXU" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/merchant_station) +"aXS" = (/obj/machinery/power/smes/buildable{charge = 2.5e+06; input_attempt = 1; input_level = 250000; output_attempt = 1; output_level = 250000; RCon_tag = null},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/merchant_station) +"aXT" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/merchant_station) +"aXU" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/merchant_station) "aXV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/plating,/area/merchant_station) "aXW" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall,/area/merchant_station) "aXX" = (/obj/machinery/light/small,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled,/area/merchant_station) "aXY" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/merchant_station) "aXZ" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/plating,/area/merchant_station) -"aYa" = (/obj/machinery/atmospherics/omni/mixer{active_power_usage = 2500; tag_east = 1; tag_east_con = 0.21; tag_south = 2; tag_west = 1; tag_west_con = 0.79},/turf/simulated/floor/plating,/area/merchant_station) +"aYa" = (/obj/machinery/atmospherics/omni/mixer{tag_east_con = 0.21; tag_west_con = 0.79; tag_south = 2; tag_east = 1; tag_west = 1; active_power_usage = 2500},/turf/simulated/floor/plating,/area/merchant_station) "aYb" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/plating,/area/merchant_station) "aYc" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plating,/area/merchant_station) "aYd" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/merchant_station) @@ -2608,13 +2400,13 @@ "aYx" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aYy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aYz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/merchant_station) -"aYA" = (/obj/machinery/door/airlock{id_tag = "Dormitory 1"; name = "Dorm"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) +"aYA" = (/obj/machinery/door/airlock{name = "Dorm"; id_tag = "Dormitory 1"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/merchant_station) "aYB" = (/obj/structure/sign/poster,/turf/simulated/wall,/area/merchant_station) "aYC" = (/obj/structure/flora/pottedplant/large,/turf/simulated/floor/trim/wood,/area/merchant_station) "aYD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/wood,/area/merchant_station) -"aYE" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 4},/obj/machinery/media/jukebox,/turf/simulated/floor/trim/wood,/area/merchant_station) +"aYE" = (/obj/structure/window/reinforced{dir = 1; health = 1e+06},/obj/structure/window/reinforced{dir = 4},/obj/machinery/media/jukebox,/turf/simulated/floor/trim/wood,/area/merchant_station) "aYF" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/trim/carpet,/area/merchant_station) -"aYG" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aYG" = (/obj/structure/cable/blue{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable/blue{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable/blue{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) "aYH" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/merchant_station) "aYI" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/merchant_station) "aYJ" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 9},/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/tank/nitrogen,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/merchant_station) @@ -2625,7 +2417,7 @@ "aYO" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor/tiled,/area/merchant_station) "aYP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/table/woodentable,/obj/random/action_figure,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aYQ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/bed,/obj/structure/curtain/open/bed,/obj/item/bedsheet/blue,/turf/simulated/floor/trim/carpet,/area/merchant_station) -"aYR" = (/obj/structure/holostool,/turf/simulated/floor/trim/wood,/area/merchant_station) +"aYR" = (/obj/item/stool/padded,/turf/simulated/floor/trim/wood,/area/merchant_station) "aYS" = (/obj/structure/table/woodentable,/obj/machinery/microwave{pixel_y = 5},/obj/machinery/light{dir = 4},/obj/structure/sign/warning/smoking{pixel_x = 32},/turf/simulated/floor/trim/wood,/area/merchant_station) "aYT" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/tiled/freezer,/area/merchant_station) "aYU" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/freezer,/area/merchant_station) @@ -2636,124 +2428,124 @@ "aYZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZa" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZb" = (/obj/structure/table/woodentable,/obj/item/material/ashtray,/obj/item/clothing/mask/smokable/cigarette/cigar/havana,/obj/machinery/light{dir = 8},/turf/simulated/floor/trim/wood,/area/merchant_station) -"aZc" = (/obj/structure/holostool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/wood,/area/merchant_station) +"aZc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/stool/padded,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZd" = (/obj/structure/table/woodentable,/obj/item/storage/box/glasses/pint,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZe" = (/obj/item/modular_computer/console/preset/civilian,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZf" = (/obj/structure/table/woodentable,/turf/simulated/floor/trim/carpet/blue,/area/merchant_station) -"aZg" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Wardrobe"},/obj/item/clothing/shoes/black,/obj/item/clothing/under/overalls,/obj/item/clothing/under/skirt,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/trim/carpet/blue,/area/merchant_station) +"aZg" = (/obj/structure/closet{name = "Wardrobe"; icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/shoes/black,/obj/item/clothing/under/overalls,/obj/item/clothing/under/skirt,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/trim/carpet/blue,/area/merchant_station) "aZh" = (/obj/machinery/washing_machine,/turf/simulated/floor/tiled,/area/merchant_station) -"aZi" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Wardrobe"},/obj/item/clothing/shoes/leather,/obj/item/clothing/under/blazer,/obj/item/clothing/under/lawyer/black,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) +"aZi" = (/obj/structure/closet{name = "Wardrobe"; icon_state = "cabinet_closed"; icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"},/obj/item/clothing/shoes/leather,/obj/item/clothing/under/blazer,/obj/item/clothing/under/lawyer/black,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZj" = (/obj/structure/table/woodentable,/obj/random/toy,/turf/simulated/floor/trim/carpet,/area/merchant_station) "aZk" = (/obj/structure/table/woodentable,/obj/machinery/newscaster{pixel_x = -28},/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/trim/wood,/area/merchant_station) -"aZl" = (/obj/structure/holostool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/trim/wood,/area/merchant_station) +"aZl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/stool/padded,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZn" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZo" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZq" = (/obj/machinery/vending/boozeomat,/turf/simulated/floor/trim/wood,/area/merchant_station) "aZr" = (/obj/structure/bookcase{name = "bookcase (Adult)"},/turf/simulated/floor/trim/wood,/area/merchant_station) "aZs" = (/obj/structure/bookcase/manuals/engineering,/turf/simulated/floor/trim/wood,/area/merchant_station) -"aZt" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/merchant_station) +"aZt" = (/obj/structure/cable/blue{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable/blue{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/plating/airless,/area/merchant_station) "baC" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand{icon_state = "desert2"},/turf/unsimulated/beach/sand{icon_state = "coconuts"},/area/centcom/holding) -"bbb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/storage/fancy/cigarettes=10,/obj/item/storage/box/matches=10,/obj/item/flame/lighter/zippo=4,/obj/item/clothing/mask/smokable/cigarette/cigar/havana=2)},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) +"bbb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; products = list(/obj/item/storage/fancy/cigarettes=10, /obj/item/storage/box/matches=10, /obj/item/flame/lighter/zippo=4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana=2); prices = list()},/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) "bcb" = (/obj/machinery/teleporter_gate,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"bcv" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall"},/area/syndicate_station/start) -"bdb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/storage/fancy/cigarettes=10,/obj/item/storage/box/matches=10,/obj/item/flame/lighter/zippo=4,/obj/item/clothing/mask/smokable/cigarette/cigar/havana=2)},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"beb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/storage/fancy/cigarettes=10,/obj/item/storage/box/matches=10,/obj/item/flame/lighter/zippo=4,/obj/item/clothing/mask/smokable/cigarette/cigar/havana=2)},/turf/simulated/floor/trim/wood,/area/merchant_station) +"bcv" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 4},/area/syndicate_station/start) +"bdb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; products = list(/obj/item/storage/fancy/cigarettes=10, /obj/item/storage/box/matches=10, /obj/item/flame/lighter/zippo=4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana=2); prices = list()},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"beb" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; products = list(/obj/item/storage/fancy/cigarettes=10, /obj/item/storage/box/matches=10, /obj/item/flame/lighter/zippo=4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana=2); prices = list()},/turf/simulated/floor/trim/wood,/area/merchant_station) "bsm" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 1},/area/shuttle/administration/centcom) -"bIu" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_straight"},/area/rescue_base/start) -"bMa" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_t"},/area/shuttle/syndicate_elite/mothership) -"bZR" = (/turf/simulated/shuttle/wall/syndi{dir = 5; icon_state = "syndiwall"},/area/syndicate_mothership/elite_squad) -"cvW" = (/turf/simulated/shuttle/wall/syndi{dir = 10; icon_state = "syndiwall"},/area/syndicate_mothership/ninja) -"cFN" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) -"cLe" = (/turf/simulated/shuttle/wall/syndi{dir = 10; icon_state = "syndiwall"},/area/syndicate_station/start) -"cRn" = (/turf/simulated/shuttle/wall/syndi{dir = 2; icon_state = "syndiwall"},/area/rescue_base/start) -"dvw" = (/turf/simulated/shuttle/wall/syndi{dir = 10; icon_state = "syndiwall"},/area/syndicate_mothership/elite_squad) -"dEd" = (/turf/simulated/shuttle/wall/syndi{dir = 9; icon_state = "syndiwall"},/area/rescue_base/start) +"bIu" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 8},/area/rescue_base/start) +"bMa" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/shuttle/syndicate_elite/mothership) +"bZR" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 5},/area/syndicate_mothership/elite_squad) +"cvW" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/syndicate_mothership/ninja) +"cFN" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 8; id = "merchantshuttle"},/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"cLe" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/syndicate_station/start) +"cRn" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 2},/area/rescue_base/start) +"dvw" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/syndicate_mothership/elite_squad) +"dEd" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 9},/area/rescue_base/start) "dFH" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 9},/area/supply/dock) -"ecZ" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall"},/area/rescue_base/start) +"ecZ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 4},/area/rescue_base/start) "eQr" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"},/area/syndicate_mothership/elite_squad) "eXQ" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"},/area/shuttle/administration/centcom) -"foM" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall"},/area/shuttle/syndicate_elite/mothership) -"fvi" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_t"},/area/shuttle/syndicate_elite/mothership) +"foM" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 4},/area/shuttle/syndicate_elite/mothership) +"fvi" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/shuttle/syndicate_elite/mothership) "fxJ" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 8},/area/shuttle/administration/centcom) "fPO" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 1},/area/shuttle/administration/centcom) "fQj" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"},/area/shuttle/administration/centcom) "fUz" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"},/area/shuttle/administration/centcom) "gmJ" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 1},/area/supply/dock) -"guM" = (/turf/simulated/shuttle/wall/syndi{dir = 10; icon_state = "syndiwall"},/area/rescue_base/start) -"gzF" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) -"gNw" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall"},/area/syndicate_station/start) -"hgK" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"; dir = 4},/turf/simulated/floor/plating,/area/shuttle/merchant/home) -"hQL" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/syndicate_mothership/ninja) -"imp" = (/turf/simulated/shuttle/wall/syndi{dir = 5; icon_state = "syndiwall"},/area/shuttle/deathsquad/centcom) -"ixR" = (/turf/simulated/shuttle/wall/syndi{dir = 5; icon_state = "syndiwall"},/area/syndicate_station/start) +"guM" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/rescue_base/start) +"gzF" = (/obj/machinery/autolathe{name = "Unlocked Autolathe"; desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1},/turf/unsimulated/floor{name = "plating"},/area/acting/backstage) +"gNw" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 8},/area/syndicate_station/start) +"hgK" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 2; id = "merchantshuttle"},/obj/structure/window/shuttle{icon_state = "window-whiteship-straight"; dir = 4},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"hQL" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/syndicate_mothership/ninja) +"imp" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 5},/area/shuttle/deathsquad/centcom) +"ixR" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 5},/area/syndicate_station/start) "iGQ" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"},/area/supply/dock) -"iTT" = (/turf/simulated/shuttle/wall/syndi{dir = 6; icon_state = "syndiwall"},/area/rescue_base/start) -"jfp" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_t"},/area/syndicate_mothership/elite_squad) -"jEo" = (/turf/simulated/shuttle/wall/syndi{dir = 5; icon_state = "syndiwall"},/area/shuttle/syndicate_elite/mothership) -"jXC" = (/turf/simulated/shuttle/wall/syndi{dir = 2; icon_state = "syndiwall"},/area/syndicate_mothership/ninja) +"iTT" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/rescue_base/start) +"jfp" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/syndicate_mothership/elite_squad) +"jEo" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 5},/area/shuttle/syndicate_elite/mothership) +"jXC" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 2},/area/syndicate_mothership/ninja) "knR" = (/turf/simulated/shuttle/wall{icon_state = "whiteship15"; dir = 8},/area/shuttle/administration/centcom) -"kIO" = (/turf/simulated/shuttle/wall/syndi{dir = 6; icon_state = "syndiwall"},/area/syndicate_mothership/elite_squad) +"kIO" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/syndicate_mothership/elite_squad) "lDj" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"},/area/shuttle/syndicate_elite/mothership) -"mkU" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_t"},/area/shuttle/syndicate_elite/mothership) -"mne" = (/turf/simulated/shuttle/wall/syndi{dir = 9; icon_state = "syndiwall"},/area/shuttle/syndicate_elite/mothership) +"mkU" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/shuttle/syndicate_elite/mothership) +"mne" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 9},/area/shuttle/syndicate_elite/mothership) "myK" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 1},/area/shuttle/merchant/home) -"nnI" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 1},/turf/simulated/floor/plating,/area/shuttle/merchant/home) -"nKw" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_t"},/area/syndicate_station/start) -"oIi" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_t"},/area/syndicate_mothership/elite_squad) -"oKQ" = (/turf/simulated/shuttle/wall/syndi{dir = 9; icon_state = "syndiwall"},/area/syndicate_mothership/elite_squad) -"oQQ" = (/turf/simulated/shuttle/wall/syndi{dir = 6; icon_state = "syndiwall"},/area/shuttle/deathsquad/centcom) +"nnI" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 4; id = "merchantshuttle"},/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 1},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"nKw" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/syndicate_station/start) +"oIi" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 8},/area/syndicate_mothership/elite_squad) +"oKQ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 9},/area/syndicate_mothership/elite_squad) +"oQQ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/shuttle/deathsquad/centcom) "pnZ" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 4},/area/shuttle/administration/centcom) -"ptV" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall"},/area/rescue_base/start) -"pvq" = (/turf/simulated/shuttle/wall/syndi{dir = 2; icon_state = "syndiwall"},/area/shuttle/syndicate_elite/mothership) -"pCZ" = (/turf/simulated/shuttle/wall/syndi{dir = 5; icon_state = "syndiwall"},/area/rescue_base/start) +"ptV" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 1},/area/rescue_base/start) +"pvq" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 2},/area/shuttle/syndicate_elite/mothership) +"pCZ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 5},/area/rescue_base/start) "pQp" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/shuttle/escape/centcom) -"pSz" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_straight"},/area/syndicate_station/start) -"pWx" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_t"},/area/syndicate_station/start) -"qDo" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall_straight"},/area/shuttle/deathsquad/centcom) -"rAH" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall"},/area/shuttle/deathsquad/centcom) +"pSz" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 8},/area/syndicate_station/start) +"pWx" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/syndicate_station/start) +"qDo" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 8},/area/shuttle/deathsquad/centcom) +"rAH" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 8},/area/shuttle/deathsquad/centcom) "rFk" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 9},/area/shuttle/merchant/home) "rZV" = (/obj/effect/landmark/event/nuke/bomb,/turf/simulated/floor/shuttle/darkred,/area/syndicate_station/start) -"sdv" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_straight"},/area/shuttle/deathsquad/centcom) -"syQ" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall"},/area/syndicate_mothership/elite_squad) -"sXz" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "merchantshuttle"; name = "Merchant Window Shutters"; opacity = 0},/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 8},/turf/simulated/floor/plating,/area/shuttle/merchant/home) -"tpR" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall"},/area/rescue_base/start) +"sdv" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_straight"; dir = 1},/area/shuttle/deathsquad/centcom) +"syQ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 1},/area/syndicate_mothership/elite_squad) +"sXz" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{name = "Merchant Window Shutters"; icon_state = "shutter0"; opacity = 0; density = 0; dir = 2; id = "merchantshuttle"},/obj/structure/window/shuttle{icon_state = "window-whiteship"; dir = 8},/turf/simulated/floor/plating,/area/shuttle/merchant/home) +"tpR" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 8},/area/rescue_base/start) "tva" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 6},/area/shuttle/administration/centcom) -"tMU" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall"},/area/syndicate_mothership/elite_squad) +"tMU" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 4},/area/syndicate_mothership/elite_squad) "uoA" = (/turf/simulated/shuttle/wall/syndi,/area/syndicate_mothership/elite_squad) -"uoQ" = (/turf/simulated/shuttle/wall/syndi{dir = 6; icon_state = "syndiwall"},/area/syndicate_station/start) -"vst" = (/turf/simulated/shuttle/wall/syndi{dir = 4; icon_state = "syndiwall_t"},/area/rescue_base/start) -"vNZ" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_t"},/area/syndicate_station/start) +"uoQ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 6},/area/syndicate_station/start) +"vst" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 4},/area/rescue_base/start) +"vNZ" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/syndicate_station/start) "vOr" = (/turf/simulated/shuttle/wall,/area/supply/dock) -"wKE" = (/turf/simulated/shuttle/wall/syndi{dir = 1; icon_state = "syndiwall_t"},/area/syndicate_mothership/elite_squad) -"wXG" = (/turf/simulated/shuttle/wall/syndi{dir = 8; icon_state = "syndiwall"},/area/shuttle/syndicate_elite/mothership) +"wKE" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall_t"; dir = 1},/area/syndicate_mothership/elite_squad) +"wXG" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 8},/area/shuttle/syndicate_elite/mothership) "xlj" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"; dir = 4},/area/centcom/evac) -"xVl" = (/turf/simulated/shuttle/wall/syndi{dir = 10; icon_state = "syndiwall"},/area/shuttle/syndicate_elite/mothership) +"xVl" = (/turf/simulated/shuttle/wall/syndi{icon_state = "syndiwall"; dir = 10},/area/shuttle/syndicate_elite/mothership) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaacaacaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaagaagaagaagaagaagaagaagaagaagaafaagaagaagaagaagaagaagaagaagaagaafaagaagaagaagaagaagaagaagaagaagaafaagaagaagaagaagaagaagaagaagaagaafaagaagaagaagaagaagaagaagaagaagaafaagaagaagaagaagaagaagaagaagaagaafaagaagaagaagaagaagaagaagaagaagaaf -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaalaamaamaamaanaamaamaamaamaamaamaaoaapaaqaapaaqaapaapaaqaapaaqaapaaoaaraasaasaasaasaasaasaasaasaasaaoaataauaavaavaavaavaavaavaavaavaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaazaaAaaBaaCaaCaaCaaCaaCaaDaaE -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaFaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaFaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaalaamaamaamaamaamaamaamaamaaIaamaaoaaJaaKaaJaaKaaJaaKaaJaaKaaJaaKaaoaaLaaLaaLaaLaaLaaLaaLaaLaaLaaLaaoaataaMaaNaaNaaNaaNaaNaaNaaNaaNaaoaawaaOaawaawaawaawaawaawaaOaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaazaaAaaPaaQaaQaaQaaQaaQaaRaaE -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUaaUaaVaaVaaVaaUaaUaaVaaVaaVaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaalaamaaIaamaamaamaamaamaamaamaamaaoaaKaaJaaWaaXaaYaaXaaYaaZaaKaaJaaoaaLaaLaaLaaLaaLaaLaaLaaLaaLaaLaaoaatabaaaNaavabbaavaaNabcabdabeaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaayabfaaPaaQaaQaaQaaQaaQaaRaaE -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHabgaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabhaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaalaamaamaamaamaamaanaamaamaamaamaaoaaXaaYabiabjabkabkablabmaaJaaKaaoabnabnabnabnabnabnabnabnabnaboaaoaatabaabpabqabrabsabtabuabvabwaaoaawaawaawaaOaawaawaaOaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaazaaAaaPaaQaaQaaQaaQaaQaaRaaE -aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyabyabyabyabyabyabyabyaaeaalaamaamaanaamaamaamaanaamaamaamaaoablablablablabzabzablabAaaKaaJaaoabBabBabCabDabDabDabDabEabBabFaaoaatabaabGabHabHabHabIabuabJabKaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaazaaAaaPaaQaaQaaQaaQaaQaaRaaE -aaaaahaahaahaahaahaahaahaahaahabLaaGaaGaaGaaGabMabMabMabLaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSabNaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyabOabOabOabyabOabOabyaaeaalaamaamaamaamaamaamaamaamaamaamaaoablablablablabzabzablabAaaKaaJaaoabBabBabPabQabQabQabQabRabBabFaaoaatabaabSabTabUabTabVabuabJabKaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaazaaAabWaaQaaQaaQaaQaaQabXaaE -aaaaahaahaahaahaahaahaahaahabLaaGabYabYabYabYabYabYabYabMabLaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyabOacaabOacbabOabOabyaaeaalaamaamaamaamaamaaIaamaamaamaanaaoaccacdaceabjabkabkablabmaaJaaKaaoabBabBabPabQabQabQabQabRabBabFaaoaatabaacfacgabUacgachabuabJabKaaoaawaawaawaaOaawaawaaOaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaazaaAabWaaQaaQaaQaaQaaQabXaaE -aaaaahaahaahaahaahaahaahabLaaGabYabYabYabYabYabYabYabYabYabMabLaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyaclaclaclabyabOabOabyaaeaalaamaamaaIaamaamaamaamaamaamaamaaoaaKaaJacmaccacdaccacdacnaaKaaJaaoabBabBabPabQabQabQabQabRabBabFaaoaatacoacpabUabUabUacqabuabJabKaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaayacrabWaaQaaQaaQaaQaaQabXaaE -aaaaahaahaahaahaahaahabLaaGabYabYabYabYabYabYabYabYabYabYabYabMabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacuaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUackacvacwackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeacxacxacxacxabyabyabyabyabyabyabOabOabyaaeaalaamaamaamaamaamaamaamaamaamaamaaoaaJaaKaaJaaKaaJaaKaaJaaKaaKaaJaaoabBabBacyaczaczaczaczacAabBacBaaoaatabaacfacgacgacgachabuacCacDaaoaawaaOaawaawaawaawaawaawaaOaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaazaaAabWaaQaaQaaQaaQaaQabXaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacEactactacFaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaaTaaTaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUackacGacHackaaUaaUabZaaUacIaaUaaUaaUaaUaaUaaUaaHaakaafacJaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeacxacxacxacxacbabOacbabOabOabOabOabOabyaaeaalaanaamaamaamaaIaamaamaamaamaaIaaoaapaaqaapaaqaapaapaaqaapaaqaapaaoacKabBabBabBabBabBabBabBabBacLaaoaataauacMacNacNacNacOabuaavaavaaoaawaawaawaawaawaawaawaawaawaawaaoaaxaaxaaxaaxaaxaaxaaxaaxaaxaaxaaoaayaazaaAacPacQacQacQacQacQacRaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacFaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafavgaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeacxacxacxacxabyabyabyabyabOabOabOacSabyaaeaafacTacTacTacTacTacTacTacTacTacTaafacTacTacTacTacTacTacTacTacTacTaafacTacTacTacTacTacTacTacTacTacTaafacUacUacUacUacUacUacUacUacUacUaafacUacUacUacUacUacUacUacUacUacUaafacUacUacUacUacUacUacUacUacUacUaafacUacUacUacUacUacUacUacUacUacUaaf -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaHaakaafavgaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyaclabOabOacSabyaaeaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWacWacWacWacWacWacWaaoacXacXacXacXacXacXacXacXacXacYaaoacZadaadbadcaddadcadeadfaddadfaaoadgadgadgadgadgadgadgadgadgadgaaoadhadiadjadkadladladladladladmaaoadnadnadoadoadoadoadoadoadoadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaHaakaafavgaaeaaeaaeaaeaaekIOassadpadpuoAadpadptMUwKEadqaGWadqdvwaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyaclabOabOacSabyaaeaalacVacVacVadracVacVacVacVadracVaaoacWadsacWacWacWacWadsacWacWacWaaoacXacXadtaduaduaduadvacXacXacXaaoacZadaadbadwadxadwadxadyadxadyaaoadgadgadzadgadgadgadgadgadgadgaaoadhadiadjadAadBadBadBadBadBadCaaoadoadoadoadoadDadDadDadoadoadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEadEaaGaaGaaFaaGadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSabMabMaaFabMabMadEadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUaaUaaUadFaaUadFaaUadFaaUadGaaUaaUaaUaaUaaUaaHaakaafavgaaeaaeaaeaaeaaeavgadHadIadJadJadKadJadLsyQadMadNadMavgaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyabyabyabyabyabyaaeaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWacWacWacWacWadOacWaaoacXacXadPadPadPadPadPacXacXacXaaoacZacZadQadwadxaddaddaddadxadyaaoadgadgadgadgadgadgadRadSadgadgaaoadhadhadTadAadBadBadBadBadBadCaaoadoadoadoadUadVadVadVadoadoadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacuaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUadYaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafavgaaeaaeaaeaaeaaeavgadZaeaaeaaeaaeaaeaaeaaebadNadNadNavgaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaalacVadracVacVacVacVadracVacVacVaaoacWacWaecacWadOacWacWacWacWacWaaoaedaedaedaedaedaedaedaedaedaeeaaoacZadaadbadwadxadxadxadxadxadyaaoadgadgadgadgaefadgadgadgadgadgaaoadhadiadjadAadBadBadBadBadBadCaaoadoadDaegaehaeiaeiaejaekadDadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWaeladXacFaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaafbZRaGWwKEaGWaGWaGWoKQaemaeaaenaenaenaeaaeoacJaepacJaepavgaaeaaeaaeaaeaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaaeaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWaeracWacWacWacWaeracWaaoaesaetaeuaeuaeuaeuaeuaevaedaeeaaoacZadaadbaewaexaexaeyaexaexaezaaoadgadgadgadgadgadgadgaeAadgadgaaoadhadiadjaeBaeCaeCaeCaeCaeCaeDaaoadoadDaegaeEaeFaeGaeHaekadDadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacFaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaeIaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeIaakaafaeaaeaavgaeKaeLaeLaeLaeMaeaaeNaeOaeOaePaeQavgaeRavgaeSavgaaeaaeaaeaaeaeqaeTaeUaeqaeTaeVaeqaeTaeWaeqaeTaeUaeqaaeaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWacWacWacWacWacWacWaaoaesaeXaeYaeYaeYaeYaeYaeZaedaeeaaoacZadaadbafaafbafbafbafbafbafcaaoadgadgadgadgadgadgadgadgadgadgaaoadhadiadjafdafeafeafeafeafeaffaaoadoadDaegaeEafgafhaeHaekadDadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaeaaeaavgafkaflaflaflafmaeaaeOafnafoaePaeQoIiaGWeQraGWjfpaaeaaeaaeaaeaeqafpaeWaeqafpaeUaeqafpaeUaeqafpaeUaeqaaeaalacVacVacVadracVacVacVacVadracVaaoacWacWacWacWadsacWaecacWacWadsaaoaedaeXaeYaeYaeYaeYaeYaeZaedaeeaaoacZadaadbafqadxadxadxadxadxafraaoadgadgadgadgadgadgadgadgadgadgaaoadhadiadjafsadBadBadBadBadBaftaaoadoadDaegaejafuafuafvaekadDadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafkIOaGWeQraGWaGWaGWdvwafwaeaafxafxafxaeaaeosyQafyaeaafyoIiaGWaGWaGWdvwaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaaeaalacVacVacVacVacVacVacVacVacVacVaaoafzacWacWacWacWafzacWacWacWacWaaoaedaeXaeYaeYaeYaeYaeYafAaedaeeaaoacZacZafBafqadxafCafCafCadxafraaoafDafDafDafDafDafDafDafDafDafDaaoadhadhafEafsadBadBadBadBadBaftaaoadoadoadoafFafFafFafGadoadoadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYafHabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafavgaaeaaeaaeafIaaeavgadZaeaaeaaeaaeaaeaaeQafJaeaaeaafKavgafLafMafNavgaeqaeTaeUaeqaeTaeUaeqafOaeUaeqaeTaeWaeqaaeaalacVadracVacVacVacVadracVacVacVaaoacWaeracWaecacWacWaeracWaecacWaaoaedafPafQafQafQafQafQafRaedaeeaaoacZadaadbafqadxafqadxafradxafraaoafSafSafSafSafSafSafSafSafSafSaaoadhadiadjafsadBadBadBadBadBaftaaoadoadoadoadDadDadDadoadoadoadoaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafavgaaeaaeaaeafIaaeavgafTafUafVaeaaeaaeaafWacJafyaeaafyoIiaGWaGWaGWoKQaeqafpaeUafXafpaeUaeqafpaeUaeqafpaeUaeqaaeaalacVacVacVacVacVacVacVacVacVacVaaoacWacWacWacWafzacWacWacWacWafzaaoaedaedaedaedaedaedaedaedaedaeeaaoacZadaadbafYafCafYafZagaafCagaaaoafSafSafSafSafSafSafSafSafSafSaaoadhadiadjagbagcagcagcagcagcagdaaoadoadoadoadoadoadoadoadoageageaaE -aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafavgaaeaaeaaeafIaaebZRadpadpacJagfacJadpadpbZRaGWaGWaGWoKQaaeaaeaaeaaeaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaaeaafaggaggaggaggaggaggaggaggaggaggaafaggaggaggaggaggaggaggaggaggaggaafaggaggaggaggaggaggaggaggaggaggaafaggaggaggaggaggaggaggaggaggaggaafaggaggaggaggaggaggaggaggaggaggaafaggaggaggaggaggaggaggaggaggaggaafaggaggaggaggaggaggaggaggaggaggaaf +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaacaacaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaFaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaFaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUaaUaaVaaVaaVaaUaaUaaVaaVaaVaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHabgaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabhaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyabyabyabyabyabyabyabyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahaahaahaahabLaaGaaGaaGaaGabMabMabMabLaahaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSabNaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyabOabOabOabyabOabOabyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahaahaahabLaaGabYabYabYabYabYabYabYabMabLaahaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyabOacaabOacbabOabOabyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahaahabLaaGabYabYabYabYabYabYabYabYabYabMabLaahaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyaclaclaclabyabOabOabyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLaaGabYabYabYabYabYabYabYabYabYabYabYabMabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacuaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaahaahaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUackacvacwackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeacxacxacxacxabyabyabyabyabyabyabOabOabyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacEactactacFaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaTaaTaaTaaTaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUackacGacHackaaUaaUabZaaUacIaaUaaUaaUaaUaaUaaUaaHaakaafacJaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeacxacxacxacxacbabOacbabOabOabOabOabOabyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciacsacsactactacFaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUackackaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafavgaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeacxacxacxacxabyabyabyabyabOabOabOacSabyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabgaaUaaUaaHaakaafavgaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyaclabOabOacSabyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahaahaahaahaahaaFaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaFaahaahaahaahaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUabZabxaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUabxaaUaaUaaHaakaafavgaaeaaeaaeaaeaaekIOassadpadpuoAadpadptMUwKEadqaGWadqdvwaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyaclabOabOacSabyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEadEaaGaaGaaFaaGadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSabMabMaaFabMabMadEadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUaaUaaUaaUaaUadFaaUadFaaUadFaaUadGaaUaaUaaUaaUaaUaaHaakaafavgaaeaaeaaeaaeaaeavgadHadIadJadJadKadJadLsyQadMadNadMavgaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeabyabyabyabyabyabyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacuaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaUaaUaaUadYaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaHaakaafavgaaeaaeaaeaaeaaeavgadZaeaaeaaeaaeaaeaaeaaebadNadNadNavgaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWaeladXacFaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaTaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaaHaakaafbZRaGWwKEaGWaGWaGWoKQaemaeaaenaenaenaeaaeoacJaepacJaepavgaaeaaeaaeaaeaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciadWadWadXadXacFaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakaeIaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaeIaakaafaeaaeaavgaeKaeLaeLaeLaeMaeaaeNaeOaeOaePaeQavgaeRavgaeSavgaaeaaeaaeaaeaeqaeTaeUaeqaeTaeVaeqaeTaeWaeqaeTaeUaeqaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaciaciaciacjacjacjaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafaeaaeaavgafkaflaflaflafmaeaaeOafnafoaePaeQoIiaGWeQraGWjfpaaeaaeaaeaaeaeqafpaeWaeqafpaeUaeqafpaeUaeqafpaeUaeqaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafkIOaGWeQraGWaGWaGWdvwafwaeaafxafxafxaeaaeosyQafyaeaafyoIiaGWaGWaGWdvwaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYafHabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafavgaaeaaeaaeafIaaeavgadZaeaaeaaeaaeaaeaaeQafJaeaaeaafKavgafLafMafNavgaeqaeTaeUaeqaeTaeUaeqafOaeUaeqaeTaeWaeqaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSaaSadEadEadEadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafavgaaeaaeaaeafIaaeavgafTafUafVaeaaeaaeaafWacJafyaeaafyoIiaGWaGWaGWoKQaeqafpaeUafXafpaeUaeqafpaeUaeqafpaeUaeqaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSaaSadEaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafavgaaeaaeaaeafIaaebZRadpadpacJagfacJadpadpbZRaGWaGWaGWoKQaaeaaeaaeaaeaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaeqaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahadEadEadEadEadEadEadEadEaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafavgaaeaaeaaeafIaaeaaeaaeaaeavgaghavgaaeaaeaaeaaeafIaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaaiaaiaaiaaiaaiaaiaaiaaiaaiaajaajaajaajaajaajaajaajaajaajaajaajaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaahaahaahaahaahaahaahadEaaSaaSaaSaaSaaSadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafavgaaeaaeaaeafIaaeaaeaaeaaeavgagiavgaaeaaeaaeaaeafIaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaaaahaahaahaahaahaahabLabYabYabYabYabYabYabYabYabYabYabYabYabYabLaahaahaahaahaahaahaahaahaaaaabaacaacaacaacaacaacaacaacaacaacaadaadaadaadaadaadaadaadaadaadaadaadaadaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaahaahaahaahaahadEadEadEadEadEadEadEaahaahaahaahaahaahaahaahaahaahaahaahadEadEadEadEadEadEadEaahaahaahaahaahaaaaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaafaakafiafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafjafiaakaafavgaaeaaeaaeafIaaeaaeaaeaaeavgagjavgaaeaaeaaeaaeafIaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagkaaaaaaaaaaaaaaaaaaaaaaaaaaaagkaabaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae @@ -2866,7 +2658,7 @@ aafahJahJahJahJahJahJahJaiZajaaiYaqOaqPptVaxGaspaydiTTbIubIubIubIuvstayeayeawIay aafahJahJahJaiYayPaiZaiZaiZaiZaiZaqOaqPatzasnaspayQargaqPaqPaqPaqPargayRayRayRayRargaqPaqPaqPaqPargaySawLayTatzaqPaqQaiZaiYaiZahJahJaiYahJaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaxOawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwaxTawwawwawwawXawXawXawXawXawXawXawXawwayUawXawXawXayVawwawwawwawwawwawxawxawxawxawxawxawxayWayWayWawwayXayYaxfaxfaxfawyaxoayZaxoawyaxfaxfaxfayYazaawyazbazcazbazcazbaxFawyawyawyawyaxCaxCaxCawyazdayKayKayKazeazfazgazhawyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeahGaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaakaakaak aafahJahJaziaiYaiYaiZaiYaiZaiYaiZaqOaqPcRnazjaspazkargaqPaqPaqPaqPavHazlazlazlazlavNaqPaqPaqPaqPargazmaznazocRnaqPaqQaiZaiZaiZaiZaiZaiYahJaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaxOawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwaxPazpawZawZazqawwazrazsaztazuazvazwawXawXawwazxawXawXawXazyawwazzazAazAazzazBazCazDazEayWayWayWayWayWazFawwaxoaxoazGazHazHazHazHazHazHazHazHazHazIaxoaxoazJazbazbazbazbazbaxFazKazLazMawyaxCaxCaxCawyazNazOazPazOazQazfazgazhawyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeahGaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaakaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaakaak aafahJahJahJahJaiZaiYaiZaueaiYaiZaqOaqPargayRayRayRargaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPargayRayRayRargaqPaqQaiZaiZaiZaiZahJahJahJaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeayiayjayjayjayjayjayjayjayjayjayjayjayjayjazRayjayjayjayjayjazRazSayjawZawZazTawwazBazBazBazBazBawwawXawXawwazUawXawXawXazVawwawXayWayWayWazBayWayWayWayWayWayWayWayWazWawwaxoayZazXaxfaxfaxfaxfaxfaxfaxfaxfaxfaxEayZaxoaxFazYazZaAaaAbazbaxFaAcaAdaAeawyaxCaxCaxCawyaAfaAgaAdaAgaAhazfazgazhawyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaAiaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaakaakaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaakaak -aafahJahJahJahJahJahJahJaiZaiZaiZaqOaqPavHazlazlazlavNaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPavHazlazlazlavNaqPaqQaiZaiZahJaiZahJahJahJaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaxOawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwaxPaAjawZawZaAkazBaAlaAmaAnaAoaApazBawXawXazBawXawXawXawXaAqazBawXayWayWaxSaArayWayWayWazDazDawwawwawwawwawwaxoaxoazXaxfaAsaxoaAtaAuaAvaxoaAsaxfaxEaxoaxoaxFaxFaxFaxFaxFaxFaxFaAwayHaAxawyaxCaxCaxCawyaAyaAzaAdaAzaAAazfazgazhawyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeahGaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaakaakaakaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaak +aafahJahJahJahJahJahJahJaiZaiZaiZaqOaqPavHazlazlazlavNaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPavHazlazlazlavNaqPaqQaiZaiZahJaiZahJahJahJaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaxOawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwaxPaAjawZawZaAkazBaAlaAmaAnaAoaApazBawXawXazBawXawXawXawXaAqazBawXayWayWaxSaArayWayWayWazDazDawwawwawwawwawwaxoaxoazXaxfaAsaxoaAtaheaAvaxoaAsaxfaxEaxoaxoaxFaxFaxFaxFaxFaxFaxFaAwayHaAxawyaxCaxCaxCawyaAyaAzaAdaAzaAAazfazgazhawyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeahGaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaakaakaakaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaak aafahJahJahJahJahJahJahJaiZaiZaiYaqOaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqPaqQaiZajaaiZaiZahJahJahJaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeayiayjayjayjayjayjayjayjayjayjayjayjayjayjaABayjayjayjayjayjaABaACayjawZawZaADazBaAEawXawXawXaAFazBawXawXazBawXawXaAGaAHazvazBaAIayWayWayWawwazBazBaAJazBazBawwayWayWayWaAKaxoaxoaALaxfaxoaAMaANaAOaAPaAQaARaxfaASaxoaxoaATaAUaAUaAUaAUaAUawyawyayJawyawyawyayJawyawyaAVaAdaAdaAdaAWazfazgazhawyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeahGaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaakaakaakaakaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaak aafahJahJahJahJahJahJahJahJaiZaiZaAXaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaAZaiZaiYaiZahJahJahJahJaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaxOawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwawwaxPaBaawZawZaBbawwaBcawXawXawXawXawwaBdaBdawwaBeaBeawwawwawwawwaAIayWayWaxSaBfaBgaBgaBgaBgaBgaBhaBgaBgaBgaBhaxoaxoaBiaBjaxoaxoaBkayCaBlaxoaxoaBjaBmaxoaxoaBnaxCaxCaxCaxCaxCaBnaxCaxCaxCaxCaxCaxCaxCaBnaAyaAzaAzaAzaAAaBoaBpaBqawyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeahGaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaakaakaakaakaakaakaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaak aafahJahJahJahJahJahJahJahJahJaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiYaiZaiZaiZajaaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZaiZahJahJahJahJahJahJaafaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeayiayjayjayjayjayjayjayjayjayjayjayjayjayjaBrayjayjayjayjayjaBraBsaBtawZawZaxSaBuawXawXawXawXawXaBuawXawXaBvawXawXaBwaBxaByaByawXayWayWaBzawwazBazBaAJazBazBawwayWayWayWaBAaxoaxoaBBaxfaBCaAMaBDaxoaBDaAQaxoaxfaBEaxoaxoaBnaxCaxCaxCaxCaxCaBnaxCaxCaxCaxCaxCaxCaxCaBnaBFaBGaBGaBGaBHawyaBnaBnawyawyawyawyawyaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeahGaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaakaakaakaakaakaakaakaakaakaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae @@ -2944,7 +2736,7 @@ aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaa aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaQaaQbaQbaQeaQkaQlaQbaQiaQbaQbaQmaQbaQmaQbaQbaQiaQbaQnaQnaQbaQdaaeaaeaQaaQaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaQnaQoaQpaQqaQraQbaQmaQbaQsaQtaQuaQvaQwaQbaQmaQbaQxaQyaQbaQaaQaaQaaQdaQaaQaaQbaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaQaaQnaQAaQBaQCaQDaQbaQEaQFaQGaQEaQHaQFaQIaQEaQEaQBaQJaQFaQbaQcaQbaQcaQcaQbaQcaQbaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae -aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaQaaQnaQKaQLaQMaQNaQOaQPaQQaQRaQSaQTaQUaQVaQWaQWaQUaQXaQFaQbaQhaQYaQhaQZaRaaRbaQbaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaQaaQnaQKaQLaQMaQNaQOaQPaQQaQRaQSaQTaQUaQVaQWaQWaQUaQXaQFaQbaQhaQYaQhamyaRaaRbaQbaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaQaaQnaRcaRdaReaRfaQbaQmaQcaQmaQbaRgaQbaQmaQcaQcaQbaRhaRiaQbaRbaQhaQiaQhaRbaQhaQbaQzaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaQbaQbaQnaQnaQbaQbaQdaQaaaeaQcaRjaQcaQaaQaaaeaQbaQCaRkaQbaRlaRmaRlaRlaRmaRlaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaQaaQaaaeaQaaaeaaeaaeaaeaQbaRnaQbaQaaaeaaeaQbaRoaQEaQbaRpaRqaRraRsaRtaRuaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae @@ -2952,7 +2744,7 @@ aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaa aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaRIaRIaRJaRKaRLaRMaRJaRIaRIaQnaRNaROaRPaRQaRRaRSaRRaRTaRUaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaRVaUwrFkaSaaRZaSaaRXaUwaSbaQnaQCaQFaQbaScaSdaSeaSfaSgaShaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaRJaSiaSjaSkaSlaSmaRJaaeaQbaQCaQHaQbaQbaQbaQbaQbaQbaQbaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaSnaSnaSnaSnaSnaSnaSnaSnaSnaSnaSnaSnaSnaSoaSnaSnaSnaaeaaeaaeaaeaaeaaeaaeaaeaae -aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaRJaSpaFGaFPaFQaSmaRJaaeaQbaFRaQEaQbaFSaFTaFUaFVaFWaGfaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaSnaGgaGhaGiaGjaGjaGjaSnaGkaGlaGlaSnaGsaGtaGuaSnaSnaaeaaeaaeaaeaaeaaeaaeaaeaae +aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaRJaSpaFGaFPaFQaSmaRJaaeaQbaFRaQEaQbaFSaFTaFUaFVaFWaGfaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaSnaGgaGhaGiancaGjaGjaSnaGkaGlaGlaSnaGsaGtaGuaSnaSnaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaRJaGvaGwaFPaGxaSpaRJaaeaQbaGzaRkaQbaFSaGPaGQaFVaKsaKtaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaSnaGiaGiaGiaGiaGiaGiaKuaKvaKwaKvaLaaGtaGtaMuaSnaSnaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaRJaGvaGwaSqaFQaSraRJaaeaQbaQCaQEaQbaFSaSsaStaRFaSvaKtaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaSnaSwaSwaGiaGiaGiaSxaSnaKvaKvaSyaSnaSnaSnaSnaSnaSnaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaRJaSpaFGaSqaFQaSraRJaaeaQnaQCaQEaQbaQbaSAaSBaSCaSDaQbaQbaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaQzaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaSnaGiaGiaGiaGiaGiaSEaSnaSFaSFaSGaSnaSHaSIaSJaSKaSnaaeaaeaaeaaeaaeaaeaaeaaeaae @@ -2974,7 +2766,7 @@ aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaa aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaUDaUQaUFaaeaUDaUQaUFaaeaaeaaeaQaaQaaQaaaeaQaaQaaQbaVSaVSaVSaWdaWeaWfaWgaWhaWiaWjaWkaQRaWmaWnaWoaQEaWpaTtaWqaQFaWraWsaQdaWtaTtaQaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaWuaaeaaeaaeaWuaVSaVSaVSaVSaQbaQbaQbaQbaQbaQbaQbaWvaWwaWxaWyaWzaWAaWBaTtaTtaTtaTtaTtaTtaTtaWCaWDaWEaTtaWFaQEaWGaWHaWIaWJaTtaQaaQaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaWKaWLaWLaWLaWMaVSaWNaQEaWOaWPaWQaWRaWSaTtaQEaQEaWTaWUaWVaWWaWXaWYaWZaXaaTtaXbaXcaXdaXeaXfaXgaQEaXhaTtaTtaTtaTtaTtaTtaTtaQbaVSaVSaQbaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae -aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaXiaXjaXkaXlaXmaXnaXoaXoaXpaXqaXraXsaXtaXuaXvaXwaXxaXyaXzaXAaXBaTtaXCaXDaXEaTtaTtaXFaXGaXGaXHaXHaXHaXIaXJaXKaXLaXMaXNaXOaVSaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae +aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaXiaXjaXkaXlaXmaXnaXoaXoaXpaXqaXraXsaXtaXuaXvaXwaXxaXyaXzaXAaXBaTtaXCaXDaphaTtaTtaXFaXGaXGaXHaXHaXHaXIaXJaXKaXLaXMaXNaXOaVSaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaXPaWLaWLaWLaXQaVSaQEaQEaXRaXSaXTaXUaXVaXWaQEaQEaXXaXYaXZaYaaYbaYcaYdaYeaTtaTtaTtaYfaTtaTtaYgaYhaWnaWkaYiaQSaYkaYlaYmaYnaYoaYoaYpaVSaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaWuaaeaaeaaeaWuaVSaVSaVSaVSaTtaTtaTtaTtaTtaTtaTtaTtaYqaYraYsaYtaYuaYvaYeaTtaYwaYxaYyaTtaTtaYzaTtaYAaYBaYzaTtaTtaYCaYDaYnaYEaYoaYFaVSaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae aaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaUDaYGaUFaaeaUDaYGaUFaaeaaeaaeaQzaQzaQzaQzaQzaQzaQzaTtaTtaYHaYIaYJaYKaYLaTtaTtaTtaTtaYfaTtaYMaYNaTtaYOaTtaYPaYQaTtaYRaYDaYnaYnaYnaYSaQbaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaPZaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaae diff --git a/maps/telecomms.dmm b/maps/telecomms.dmm index 3c5bc0696f4..d84193c8f9e 100644 --- a/maps/telecomms.dmm +++ b/maps/telecomms.dmm @@ -4,8 +4,8 @@ "ad" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plating,/area/derelict/ship) "ae" = (/turf/simulated/floor/shuttle/white,/turf/simulated/shuttle/wall/corner/smoothwhite/nolight/se,/area/derelict/ship) "af" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/shuttle/white,/area/derelict/ship) -"ag" = (/obj/machinery/power/apc/high/inactive{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/shuttle/white,/area/derelict/ship) -"ah" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "swall_straight"},/area/derelict/ship) +"ag" = (/obj/machinery/power/apc/high/inactive{name = "west bump"; dir = 8; pixel_x = -24},/turf/simulated/floor/shuttle/white,/area/derelict/ship) +"ah" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"; dir = 4},/area/derelict/ship) "ai" = (/turf/simulated/floor/shuttle/white,/turf/simulated/shuttle/wall/corner/smoothwhite/nolight/sw,/area/derelict/ship) "aj" = (/turf/simulated/floor/plating,/area/derelict/ship) "ak" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall/corner/smoothwhite/nolight/se,/area/derelict/ship) @@ -16,27 +16,27 @@ "ap" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/ship) "aq" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/space,/area/derelict/ship) "ar" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall/corner/smoothwhite/nolight/nw,/area/derelict/ship) -"as" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_t"},/area/space) +"as" = (/turf/simulated/shuttle/wall,/area/derelict/ship) "at" = (/obj/structure/bed/chair{dir = 8},/obj/effect/decal/remains{layer = 3},/turf/simulated/floor/shuttle/white,/area/derelict/ship) "au" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/derelict/ship) "av" = (/obj/machinery/door/airlock/glass{name = "Hibernation Pods"},/turf/simulated/floor/shuttle/white,/area/derelict/ship) -"aw" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "swall_straight"},/area/space) +"aw" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"},/area/derelict/ship) "ax" = (/turf/simulated/floor/shuttle/white,/turf/simulated/shuttle/wall/corner/smoothwhite/nolight/nw,/area/derelict/ship) -"ay" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "swall_t"},/area/derelict/ship) +"ay" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 1},/area/space) "az" = (/obj/structure/computerframe{anchored = 1},/turf/simulated/floor/shuttle/white,/area/derelict/ship) "aA" = (/obj/structure/table/standard,/obj/item/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/simulated/floor/shuttle/white,/area/derelict/ship) -"aB" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall15"},/area/derelict/ship) -"aC" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_t"},/area/derelict/ship) +"aB" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 8},/area/space) +"aC" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 9},/area/derelict/ship) "aD" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/nolight/nw,/area/space) -"aE" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall15"},/area/space) +"aE" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 4},/area/space) "aF" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 4},/turf/space,/area/derelict/ship) "aG" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/nolight/ne,/area/space) "aH" = (/obj/item/scalpel,/turf/simulated/floor/shuttle/white,/area/derelict/ship) -"aI" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_t"},/area/derelict/ship) -"aJ" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "swall_t"},/area/derelict/ship) +"aI" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"},/area/space) +"aJ" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 1},/area/derelict/ship) "aK" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/shuttle/white,/area/derelict/ship) "aL" = (/obj/structure/table/standard,/obj/item/cell,/turf/simulated/floor/shuttle/white,/area/derelict/ship) -"aM" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_straight"},/area/derelict/ship) +"aM" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 4},/area/derelict/ship) "aN" = (/obj/item/device/multitool,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "aO" = (/obj/item/cell,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "aP" = (/turf/simulated/floor/shuttle/white,/turf/simulated/shuttle/wall/corner/smoothwhite/nolight/se,/area/space) @@ -49,11 +49,10 @@ "aW" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/nolight/sw,/area/derelict/ship) "aX" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "aY" = (/obj/machinery/door/airlock/glass{name = "Living Module"},/turf/simulated/floor/shuttle/white,/area/derelict/ship) -"aZ" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "swall_t"},/area/space) "ba" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "bb" = (/obj/structure/bed,/obj/item/bedsheet,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "bc" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/shuttle/white,/area/space) -"bd" = (/obj/machinery/light/small{dir = 4; icon_state = "bulb1"},/turf/simulated/floor/shuttle/white,/area/derelict/ship) +"bd" = (/obj/machinery/light/small{icon_state = "bulb1"; dir = 4},/turf/simulated/floor/shuttle/white,/area/derelict/ship) "be" = (/obj/structure/table/standard,/obj/item/gun/energy/retro,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "bf" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "bg" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/shuttle/white,/area/derelict/ship) @@ -65,29 +64,28 @@ "bm" = (/obj/item/trash/cheesie,/turf/space,/area/space) "bn" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/shuttle/white,/area/derelict/ship) "bo" = (/obj/structure/table/standard,/obj/item/device/analyzer,/turf/simulated/floor/shuttle/white,/area/derelict/ship) -"bp" = (/obj/machinery/mass_driver{dir = 8; id = "oldship_gun"; name = "mass driver"},/turf/simulated/floor/plating,/area/derelict/ship) +"bp" = (/obj/machinery/mass_driver{name = "mass driver"; dir = 8; id = "oldship_gun"},/turf/simulated/floor/plating,/area/derelict/ship) "bq" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/nolight/sw,/area/space) -"br" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_t"},/area/space) "bs" = (/obj/machinery/door/airlock/glass,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "bt" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "bu" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/nolight/se,/area/space) "bv" = (/obj/machinery/door/window/southleft,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "bw" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "bx" = (/obj/structure/table/rack,/obj/item/tank/emergency/oxygen,/obj/item/tank/emergency/oxygen,/obj/item/tank/emergency/oxygen,/obj/item/tank/emergency/oxygen,/obj/item/clothing/suit/ianshirt,/obj/item/clothing/mask/animal_mask/horsehead,/obj/random_multi/single_item/bookrev,/turf/simulated/floor/shuttle/white,/area/derelict/ship) -"by" = (/obj/machinery/computer/pod{id = "oldship_gun"; name = "Pod Launch Control"},/turf/simulated/floor/shuttle/white,/area/derelict/ship) +"by" = (/obj/machinery/computer/pod{name = "Pod Launch Control"; id = "oldship_gun"},/turf/simulated/floor/shuttle/white,/area/derelict/ship) "bz" = (/obj/structure/lattice,/obj/structure/window_frame/grille,/turf/space,/area/space) "bA" = (/obj/structure/lattice,/turf/space,/area/space) -"bB" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bC" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bD" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bG" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bL" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"bB" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"bC" = (/obj/structure/cable/yellow{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable/yellow{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"bD" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{icon_state = "0-8"; d2 = 8},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"bE" = (/obj/structure/cable/yellow{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"bF" = (/obj/structure/cable/yellow{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"bG" = (/obj/structure/cable/yellow{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable/yellow{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"bH" = (/obj/structure/cable/yellow{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"bI" = (/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"bJ" = (/obj/structure/cable/yellow{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"bK" = (/obj/structure/cable/yellow{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable/yellow{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"bL" = (/obj/structure/cable/yellow{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "bM" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat) "bN" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat/port) "bO" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat/starboard) @@ -118,37 +116,37 @@ "cn" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/tcommsat/computer) "co" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/camera/network/telecom{dir = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) "cp" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) -"cq" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) -"cr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) -"cs" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) -"ct" = (/obj/machinery/computer/telecomms/server{network = "tcommsat"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) -"cu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"cv" = (/obj/item/reagent_containers/food/meat/syntiflesh{name = "Cuban Pete-Meat"},/obj/item/spacecash/bundle/c1,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/reinforced,/area/tcommsat/computer) -"cw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat/starboard) -"cx" = (/obj/machinery/atmospherics/binary/pump/on{name = "Air to Supply"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) -"cy" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) -"cz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) +"cq" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) +"cr" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) +"cs" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) +"ct" = (/obj/machinery/computer/telecomms/server{network = "tcommsat"},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) +"cu" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/wall/r_wall,/area/tcommsat/computer) +"cv" = (/obj/item/reagent_containers/food/meat/syntiflesh{name = "Cuban Pete-Meat"},/obj/item/spacecash/bundle/c1,/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/reinforced,/area/tcommsat/computer) +"cw" = (/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat/starboard) +"cx" = (/obj/machinery/atmospherics/binary/pump/on{name = "Air to Supply"},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) +"cy" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/cable{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) +"cz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "cA" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) -"cB" = (/obj/machinery/atmospherics/binary/pump/high_power/on{dir = 4; icon_state = "map_on"; target_pressure = 15000},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) +"cB" = (/obj/machinery/atmospherics/binary/pump/high_power/on{icon_state = "map_on"; dir = 4; target_pressure = 15000},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "cC" = (/obj/structure/sign/warning/deathsposal{pixel_x = 32},/obj/machinery/portable_atmospherics/canister/empty,/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "cD" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space) "cE" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/port) "cF" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/port) -"cG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/port) -"cH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/hatch{name = "Telecoms Control Room"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/computer) -"cI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) -"cJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) -"cK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) -"cL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) -"cM" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) +"cG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/port) +"cH" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/obj/machinery/door/airlock/hatch{name = "Telecoms Control Room"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/computer) +"cI" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) +"cJ" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) +"cK" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{icon_state = "1-2"; pixel_y = 0; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) +"cL" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) +"cM" = (/obj/structure/cable{icon_state = "0-8"; d2 = 8},/obj/machinery/power/apc{name = "east bump"; dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) "cN" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{icon_state = "intact"; dir = 5},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) -"cO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) +"cO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{icon_state = "1-2"; pixel_y = 0; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "cP" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "cQ" = (/obj/machinery/light,/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "cR" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "cS" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat/starboard) "cT" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat) -"cU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"cU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "cV" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "cW" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "cX" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/port) @@ -156,47 +154,47 @@ "cZ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/light,/turf/space,/area/turret_protected/tcomsat/port) "da" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/camera/network/telecom{dir = 1},/turf/space,/area/turret_protected/tcomsat/port) "db" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space) -"dc" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/port) +"dc" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/alarm{icon_state = "alarm0"; dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/port) "dd" = (/obj/machinery/light{dir = 8},/obj/structure/table/standard,/obj/item/device/multitool,/obj/structure/sign/warning/high_voltage{pixel_x = -32},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) "de" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) -"df" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) -"dg" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Lounge"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) +"df" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/tcommsat/computer) +"dg" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Lounge"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-2"; pixel_y = 0; d2 = 2; d1 = 1},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "dh" = (/obj/machinery/turret/network/station,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat/port) "di" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/space) "dj" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) "dk" = (/turf/simulated/wall/r_wall,/area/tcommsat/chamber) "dl" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/tcommsat/chamber) -"dm" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/tcommsat/chamber) -"dn" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/tcommsat/chamber) -"do" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/tcommsat/chamber) +"dm" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-8"; d2 = 8},/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/tcommsat/chamber) +"dn" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 0; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-8"; d2 = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/tcommsat/chamber) +"do" = (/obj/structure/cable{icon_state = "0-8"; d2 = 8},/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/tcommsat/chamber) "dp" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Control Room"; req_access = list(61)},/turf/simulated/floor/tiled/rough,/area/tcommsat/chamber) -"dq" = (/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/starboard) -"dr" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/starboard) +"dq" = (/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_x = 0; pixel_y = 24},/obj/machinery/alarm{icon_state = "alarm0"; dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/starboard) +"dr" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/starboard) "ds" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/space) -"dt" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"dt" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "du" = (/obj/machinery/camera/network/telecom{dir = 4},/turf/space,/area/turret_protected/tcomsat/port) "dv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/port) "dw" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) "dx" = (/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) -"dy" = (/obj/machinery/power/apc/super/critical{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) -"dz" = (/obj/machinery/alarm/server{pixel_y = 22},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) -"dA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) -"dB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) +"dy" = (/obj/machinery/power/apc/super/critical{name = "north bump"; dir = 1; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) +"dz" = (/obj/machinery/alarm/server{pixel_y = 22},/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) +"dA" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) +"dB" = (/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) "dC" = (/obj/structure/sign/warning/server_room{pixel_y = 32},/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) "dD" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/machinery/camera/network/telecom{dir = 4},/turf/space,/area/turret_protected/tcomsat/starboard) "dE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/starboard) -"dF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"dF" = (/obj/structure/cable/yellow{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable/yellow{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable/yellow{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "dG" = (/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) -"dH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) +"dH" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "dI" = (/obj/structure/window_frame/reinforced/hull,/turf/simulated/floor/plating,/area/turret_protected/tcomsat/starboard) -"dJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"dJ" = (/obj/structure/cable/yellow{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable/yellow{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable/yellow{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "dK" = (/obj/machinery/power/solar,/obj/structure/cable/yellow,/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "dL" = (/obj/machinery/telecomms/server/presets/supply,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "dM" = (/obj/machinery/telecomms/server/presets/service,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "dN" = (/obj/machinery/telecomms/server/presets/unused,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "dO" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "dP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) -"dQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/telecomms/broadcaster/preset_right,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) +"dQ" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/telecomms/broadcaster/preset_right,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) "dR" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "dS" = (/obj/machinery/telecomms/server/presets/common,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "dT" = (/obj/machinery/telecomms/server/presets/engineering,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) @@ -204,21 +202,21 @@ "dV" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "dW" = (/obj/structure/table/rack,/obj/item/circuitboard/telecomms/processor,/obj/item/circuitboard/telecomms/processor,/obj/item/circuitboard/telecomms/receiver,/obj/item/circuitboard/telecomms/server,/obj/item/circuitboard/telecomms/server,/obj/item/circuitboard/telecomms/bus,/obj/item/circuitboard/telecomms/bus,/obj/item/circuitboard/telecomms/broadcaster,/obj/item/circuitboard/ntnet_relay,/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "dX" = (/obj/machinery/camera/network/telecom{dir = 4},/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) -"dY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) +"dY" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) "dZ" = (/obj/machinery/camera/network/telecom{dir = 8},/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) "ea" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) "eb" = (/obj/structure/table/standard,/obj/item/stock_parts/subspace/treatment,/obj/item/stock_parts/subspace/treatment,/obj/item/stock_parts/subspace/treatment,/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "ec" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) -"ed" = (/obj/structure/table/standard,/obj/item/stock_parts/subspace/analyzer,/obj/item/stock_parts/subspace/analyzer,/obj/item/stock_parts/subspace/analyzer,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) -"ee" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"ef" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"eg" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"ed" = (/obj/structure/table/standard,/obj/item/stock_parts/subspace/analyzer,/obj/item/stock_parts/subspace/analyzer,/obj/item/stock_parts/subspace/analyzer,/obj/machinery/alarm{icon_state = "alarm0"; dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) +"ee" = (/obj/structure/cable/yellow{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable/yellow{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"ef" = (/obj/structure/cable/yellow{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"eg" = (/obj/structure/cable/yellow{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable/yellow{icon_state = "1-8"; d2 = 8; d1 = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "eh" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 4},/turf/space,/area/turret_protected/tcomsat/port) "ei" = (/obj/structure/sign/warning/nosmoking_2{pixel_x = -32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) "ej" = (/obj/machinery/telecomms/processor/preset_two,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "ek" = (/obj/machinery/telecomms/bus/preset_two,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "el" = (/obj/machinery/telecomms/relay/preset/telecomms,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) -"em" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/telecomms/hub/preset,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) +"em" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/telecomms/hub/preset,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) "en" = (/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/turret_protected/tcomsat/starboard) "eo" = (/obj/machinery/telecomms/bus/preset_four,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "ep" = (/obj/machinery/telecomms/processor/preset_four,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) @@ -230,7 +228,7 @@ "ev" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "ew" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "ex" = (/obj/structure/table/standard,/obj/item/stock_parts/subspace/amplifier,/obj/item/stock_parts/subspace/amplifier,/obj/item/stock_parts/subspace/amplifier,/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) -"ey" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"ey" = (/obj/structure/cable/yellow{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable/yellow{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "ez" = (/obj/machinery/telecomms/bus/preset_one,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "eA" = (/obj/machinery/telecomms/processor/preset_one,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "eB" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/ntnet_relay,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) @@ -241,7 +239,7 @@ "eG" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "eH" = (/obj/item/storage/toolbox/mechanical,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "eI" = (/obj/structure/table/standard,/obj/item/stock_parts/subspace/ansible,/obj/item/stock_parts/subspace/ansible,/obj/item/stock_parts/subspace/ansible,/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) -"eJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/telecomms/receiver/preset_right,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) +"eJ" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/telecomms/receiver/preset_right,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) "eK" = (/obj/structure/table/standard,/obj/item/stock_parts/subspace/transmitter,/obj/item/stock_parts/subspace/transmitter,/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "eL" = (/obj/structure/table/standard,/obj/item/stock_parts/subspace/filter,/obj/item/stock_parts/subspace/filter,/obj/item/stock_parts/subspace/filter,/obj/item/stock_parts/subspace/filter,/obj/item/stock_parts/subspace/filter,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) "eM" = (/obj/structure/table/standard,/obj/item/stock_parts/subspace/crystal,/obj/item/stock_parts/subspace/crystal,/obj/item/stock_parts/subspace/crystal,/turf/simulated/floor/tiled/rough,/area/turret_protected/tcomsat/starboard) @@ -249,19 +247,19 @@ "eO" = (/obj/machinery/telecomms/server/presets/medical,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "eP" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "eQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) -"eR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) +"eR" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "eS" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "eT" = (/obj/machinery/telecomms/server/presets/command,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) "eU" = (/obj/machinery/telecomms/server/presets/security,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/chamber) -"eV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) -"eW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) +"eV" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/light,/turf/simulated/floor/grid/bluegrid,/area/tcommsat/chamber) +"eW" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) "eX" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/space) "eY" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/turret_protected/tcomsat/starboard) "eZ" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer) -"fa" = (/obj/structure/sign/warning/lethal_turrets{pixel_x = -32},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) -"fb" = (/obj/machinery/turret/network/station,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) -"fc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/camera/network/telecom,/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) -"fd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/turret_control_panel/tcomms_lethal{pixel_y = 29;},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) +"fa" = (/obj/structure/sign/warning/lethal_turrets{pixel_x = -32},/obj/machinery/power/apc{name = "north bump"; dir = 1; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) +"fb" = (/obj/machinery/turret/network/station,/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) +"fc" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/camera/network/telecom,/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) +"fd" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/machinery/turret_control_panel/tcomms_lethal{pixel_y = 29},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fe" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "ff" = (/obj/machinery/turret/network/station,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fg" = (/obj/structure/sign/warning/lethal_turrets{pixel_x = 32},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) @@ -272,7 +270,7 @@ "fl" = (/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) -"fo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) +"fo" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fq" = (/obj/machinery/door/airlock/hatch{name = "Telecoms East Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fr" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/starboard) @@ -281,98 +279,103 @@ "fu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/port) "fv" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) "fw" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space) -"fx" = (/obj/structure/sign/warning/lethal_turrets{pixel_x = -32},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) +"fx" = (/obj/structure/sign/warning/lethal_turrets{pixel_x = -32},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{icon_state = "alarm0"; dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fy" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fz" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) -"fA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) +"fA" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fB" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fC" = (/obj/structure/sign/warning/lethal_turrets{pixel_x = 32},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomfoyer) "fD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/starboard) "fE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/turret_protected/tcomsat/starboard) -"fF" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/space,/area/space) +"fF" = (/obj/structure/window/reinforced{dir = 1; health = 1e+06},/turf/space,/area/space) "fG" = (/turf/simulated/wall/r_wall,/area/tcommsat/entrance) -"fH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/tcommsat/entrance) +"fH" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/tcommsat/entrance) "fI" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/tcommsat/entrance) "fJ" = (/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) "fK" = (/obj/effect/decal/cleanable/cobweb,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/item/device/radio/intercom{dir = 2; pixel_y = 22},/obj/structure/sign/warning/lethal_turrets{pixel_x = -32},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) -"fL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) +"fL" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) "fM" = (/obj/machinery/turret_control_panel/tcomms_foyer{pixel_y = 29; req_access = list(61)},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/structure/sign/warning/lethal_turrets{pixel_x = 32},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) -"fN" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/tcommsat/entrance) +"fN" = (/obj/structure/cable{icon_state = "0-8"; d2 = 8},/obj/structure/window_frame/grille/rglass,/turf/simulated/floor/plating,/area/tcommsat/entrance) "fO" = (/obj/machinery/camera/network/telecom{dir = 1},/turf/space,/area/turret_protected/tcomsat/starboard) -"fP" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) +"fP" = (/obj/machinery/alarm{icon_state = "alarm0"; dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) "fQ" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) "fR" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) -"fS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) +"fS" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) "fT" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/camera/network/telecom{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) "fU" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/tcommsat/entrance) "fV" = (/turf/simulated/wall/r_wall,/area/tcommsat/powercontrol) "fW" = (/obj/structure/sign/warning/vacuum,/turf/simulated/wall/r_wall,/area/tcommsat/powercontrol) "fX" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"fY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) +"fY" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "fZ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"ga" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1381; id_tag = "telecoms_pump"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera/network/telecom,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gc" = (/obj/machinery/door/airlock/external{frequency = 1381; icon_state = "door_locked"; id_tag = "telecoms_inner"; locked = 1; name = "External Access"; req_access = list(13)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gd" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1381; master_tag = "telecoms_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access = list(13)},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"ga" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1381; id_tag = "telecoms_pump"},/obj/structure/cable/yellow{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/structure/cable/yellow{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/camera/network/telecom,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gc" = (/obj/machinery/door/airlock/external{name = "External Access"; icon_state = "door_locked"; frequency = 1381; locked = 1; req_access = list(13); id_tag = "telecoms_inner"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gd" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/access_button{name = "interior access button"; pixel_x = -25; pixel_y = -25; frequency = 1381; req_access = list(13); command = "cycle_interior"; master_tag = "telecoms_airlock"},/obj/structure/cable/yellow{icon_state = "2-8"; d2 = 8; d1 = 2},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "ge" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "gf" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/camera/network/telecom,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "gg" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "gh" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"gi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) +"gi" = (/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "gj" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/camera/network/telecom{dir = 8},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"gk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gl" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1381; id_tag = "telecoms_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "telecoms_pump"; tag_exterior_door = "telecoms_outer"; frequency = 1381; id_tag = "telecoms_airlock"; tag_interior_door = "telecoms_inner"; pixel_x = 0; pixel_y = -25; req_access = list(13); tag_chamber_sensor = "telecoms_sensor"},/obj/machinery/airlock_sensor{frequency = 1381; id_tag = "telecoms_sensor"; pixel_x = 12; pixel_y = -25},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gk" = (/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gl" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1381; id_tag = "telecoms_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{pixel_x = 0; pixel_y = -25; frequency = 1381; req_access = list(13); id_tag = "telecoms_airlock"; tag_exterior_door = "telecoms_outer"; tag_interior_door = "telecoms_inner"; tag_airpump = "telecoms_pump"; tag_chamber_sensor = "telecoms_sensor"},/obj/machinery/airlock_sensor{pixel_x = 12; pixel_y = -25; frequency = 1381; id_tag = "telecoms_sensor"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "gm" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall/r_wall,/area/tcommsat/powercontrol) -"gn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"go" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/binary/pump/on{dir = 1; name = "Airlock Feed"; target_pressure = 200},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gq" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar_control/autostart,/obj/machinery/light{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gn" = (/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable/yellow{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"go" = (/obj/structure/cable/yellow{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/atmospherics/binary/pump/on{name = "Airlock Feed"; dir = 1; target_pressure = 200},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gp" = (/obj/structure/cable/yellow{icon_state = "4-8"; d2 = 8; d1 = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gq" = (/obj/structure/cable/yellow{icon_state = "0-8"; d2 = 8},/obj/machinery/power/solar_control/autostart,/obj/machinery/light{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "gr" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "gs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"gt" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"gu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"gv" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"gw" = (/obj/machinery/door/airlock/external{frequency = 1381; icon_state = "door_locked"; id_tag = "telecoms_outer"; locked = 1; name = "External Access"; req_access = list(10,13)},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/tcommsat/powercontrol) -"gx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/standard,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gt" = (/obj/structure/cable{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) +"gu" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) +"gv" = (/obj/structure/cable{icon_state = "0-8"; d2 = 8},/obj/machinery/power/apc{name = "east bump"; dir = 4; pixel_x = 24},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) +"gw" = (/obj/machinery/door/airlock/external{name = "External Access"; icon_state = "door_locked"; frequency = 1381; locked = 1; req_access = list(10,13); id_tag = "telecoms_outer"},/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/powercontrol) +"gx" = (/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/table/standard,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "gy" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "gz" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gA" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/power/sensor{long_range = 1; name_tag = "Telecommunications"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gA" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 0; d2 = 2},/obj/machinery/power/apc{name = "east bump"; dir = 4; pixel_x = 24},/obj/machinery/power/sensor{name_tag = "Telecommunications"; long_range = 1},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "gB" = (/obj/item/cell,/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "gC" = (/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "gD" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "gE" = (/obj/structure/closet/malf/suits,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"gF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"gG" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1381; master_tag = "telecoms_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access = list(13)},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"gH" = (/obj/machinery/light{dir = 1},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"gI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gF" = (/obj/structure/cable/yellow{icon_state = "4-8"; d2 = 8; d1 = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"gG" = (/obj/machinery/access_button{name = "exterior access button"; pixel_x = 25; pixel_y = 25; frequency = 1381; req_access = list(13); command = "cycle_exterior"; master_tag = "telecoms_airlock"},/obj/structure/cable/yellow{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/structure/cable/yellow{icon_state = "1-4"; d2 = 4; d1 = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"gH" = (/obj/machinery/light{dir = 1},/obj/machinery/power/apc{name = "east bump"; dir = 4; pixel_x = 24},/obj/structure/cable/yellow{icon_state = "0-8"; d2 = 8},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"gI" = (/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/light{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "gJ" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "gK" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/table/standard,/obj/machinery/recharger,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gM" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gN" = (/obj/machinery/door/airlock/hatch{name = "Power Control"; req_access = list(61)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"gP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"gQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/item/device/bluespace_beacon/hidden,/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) +"gL" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/obj/structure/table/standard,/obj/machinery/recharger,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gM" = (/obj/structure/cable{icon_state = "2-4"; d2 = 4; d1 = 2},/obj/structure/cable{icon_state = "1-2"; d2 = 2; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gN" = (/obj/machinery/door/airlock/hatch{name = "Power Control"; req_access = list(61)},/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gO" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) +"gP" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 0; d2 = 8; d1 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) +"gQ" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/item/device/bluespace_beacon/hidden,/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "gR" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "gS" = (/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "gT" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/yellow,/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"gU" = (/obj/machinery/power/smes/buildable{charge = 2.5e+006; input_attempt = 1; input_level = 250000; inputting = 0; output_attempt = 1; output_level = 250000; RCon_tag = "Telecommunications Satellite"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gU" = (/obj/machinery/power/smes/buildable{charge = 2.5e+06; input_attempt = 1; inputting = 0; input_level = 250000; output_attempt = 1; output_level = 250000; RCon_tag = "Telecommunications Satellite"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "gV" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/shuttle/white,/area/derelict/ship) -"gW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/table/standard,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gW" = (/obj/structure/cable{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/table/standard,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"gX" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_t"; dir = 8},/area/derelict/ship) "gY" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "gZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "ha" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "hb" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "hc" = (/obj/structure/closet/malf/suits,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 6},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "hd" = (/obj/machinery/camera/network/telecom{dir = 8},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"he" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"},/area/derelict/ship) "hf" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) "hg" = (/obj/machinery/light{dir = 4},/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 6},/turf/simulated/floor/tiled/rough,/area/tcommsat/entrance) -"hh" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"hh" = (/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "hi" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/dark/rough,/area/tcommsat/entrance) -"hl" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"hm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"hj" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 8},/area/derelict/ship) +"hk" = (/turf/simulated/shuttle/wall{icon_state = "whiteship_straight"; dir = 4},/area/space) +"hl" = (/obj/structure/cable/yellow{icon_state = "2-8"; d2 = 8; d1 = 2},/obj/structure/cable/yellow{icon_state = "2-4"; d2 = 4; d1 = 2},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) +"hm" = (/obj/structure/cable/yellow{icon_state = "1-8"; d2 = 8; d1 = 1},/obj/structure/cable/yellow{icon_state = "1-4"; d2 = 4; d1 = 1},/obj/structure/cable/yellow{icon_state = "1-2"; d2 = 2; d1 = 1},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) "hn" = (/turf/simulated/wall/r_wall,/area/AIsattele) "ho" = (/obj/structure/computerframe,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/AIsattele) +"hp" = (/turf/simulated/shuttle/wall{icon_state = "whiteship"; dir = 10},/area/derelict/ship) "hq" = (/turf/simulated/floor/plating/airless,/area/AIsattele) "hr" = (/obj/item/material/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/AIsattele) "hs" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/AIsattele) @@ -398,7 +401,7 @@ "hQ" = (/obj/machinery/door/airlock/glass{name = "Pod Bay"},/turf/simulated/floor/plating,/area/derelict/ship) "hR" = (/obj/machinery/door/airlock/glass{name = "Pod Bay"},/turf/simulated/floor/shuttle/white,/area/derelict/ship) "hS" = (/obj/effect/decal/remains,/turf/simulated/floor/shuttle/white,/area/derelict/ship) -"hV" = (/obj/structure/bed,/obj/item/bedsheet,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/shuttle/white,/area/derelict/ship) +"hV" = (/obj/structure/bed,/obj/item/bedsheet,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; health = 1e+06},/turf/simulated/floor/shuttle/white,/area/derelict/ship) "hW" = (/obj/structure/table/standard,/obj/item/device/radio/off,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "hX" = (/obj/machinery/light,/turf/simulated/floor/shuttle/white,/area/derelict/ship) "hY" = (/obj/structure/bed/chair,/obj/item/material/shard,/turf/simulated/floor/shuttle/white,/area/derelict/ship) @@ -435,27 +438,27 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabahahahahaIacaaaaaaaaaaaaaaabacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabahaeamamanamaiaCaIacaaaaaaaaabaCalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabayazamamamamamamaAaiaBacaaaaabakapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaBaCaoamamamamaHamamamaJaBacabakajapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaBaeazaiahaIauauauahahavaCaCaCayajajapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaeamaKamaLaMaNamaOamamamamamamadajarahaFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMaRamamamaSaMamamamamamamamamamaJahaBacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauamamamamaVaMamamaxaXahahaoambkaMbaaiaCaIacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauamamamamamaMaRamaMambbbvaMamafaMamambnaiaBacaaabaIahahahahahahahaIacaaaabAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaubeaSamambfauamamaMbgbhbkaMamamauamamamamaiaBahaBaeamamambnamamamaiaybAaaaaaDasawawawawawawawasaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauboatamamambsamamaMamambdaMamamaYamamamamambtambtamamamamamamamamambtbAaabAaEaPaQaQaQaQaQaQaQaTaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauaSaSamamamaubfamaMbwhVamaMamamauamamamamaxaBahaBaoamamamhXamamgVaxaybAbAbAbcaQaQaQaQaQaQaQaQaQbcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauamamamamamaMaRbfaiahahaXaeamafaMamamhXaxaBaUaaaWaCahahahahahahahaCaUaaaabAaEbiaQaQaQaQbjaQaQblaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauamamamamhGaJaoambfbfbfbfbfamamaMamaxaIaCaUaaaaaaaaaaaaaaaaaaaaaaaaaaaabAaabqbrawawawawawawawbrbuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMhHhYhIamaxaBaCahahaIaoamambfamaJahaBaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaoazhZaxaBaebxhKhLaiayagamaOamadajhEahalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaCaIahaBaeamamamambdaMamamaxaIayajajapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahJbphQamamamamamamhRhSaxaBaUaWhFajapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWahaybyamamamamamaJaIaBaUaaaaaWhFapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaIaoiaibhWaxaBaCaUaaaaaaaaaWaIaFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaCahahahaCaUaaaaaaaaaaaaaaaWaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabahahahahahacaaaaaaaaaaaaaaabacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabahaeamamanamaiawaJacaaaaaaaaabaCalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaMazamamamamamamaAaiaJacaaaaabakapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaJawaoamamamamaHamamamgXaJacabakajapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaJaeazaiahaJauauauahahavawawawaMajajapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagXaeamaKamaLheaNamaOamamamamamamadajarhjaFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaheaRamamamaSheamamamamamamamamamgXahasacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauamamamamaVheamamaxaXahahaoambkhebaaiawaJacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauamamamamamheaRamheambbbvheamafheamambnaiaJacaaabaJahahahahahahahaJacaaaabAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaubeaSamambfauamamhebgbhbkheamamauamamamamaiawahawaeamamambnamamamaiaMbAaaaaaDayhkhkhkhkhkhkhkayaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauboatamamambsamamheamambdheamamaYamamamamambtambtamamamamamamamamambtbAaabAaBaPaQaQaQaQaQaQaQaTaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauaSaSamamamaubfamhebwhVamheamamauamamamamaxaJahaJaoamamamhXamamgVaxaMbAbAbAbcaQaQaQaQaQaQaQaQaQbcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauamamamamamheaRbfaiahahaXaeamafheamamhXaxawaUaaaWawahahahahahahahawaUaaaabAaBbiaQaQaQaQbjaQaQblaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauamamamamhGgXaoambfbfbfbfbfamamheamaxaJawaUaaaaaaaaaaaaaaaaaaaaaaaaaaaabAaabqaIhkhkhkhkhkhkhkaIbuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahehHhYhIamaxawawahahaJaoamambfamgXahasaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagXaoazhZaxawaebxhKhLaiaMagamaOamadajhEhjalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWawahahawaeamamamambdheamamaxaJaMajajapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahJbphQamamamamamamhRhSaxawaUaWhFajapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWahhpbyamamamamamgXaJawaUaaaaaWhFapaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaJaoiaibhWaxawawaUaaaaaaaaaWhpaFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWawahahahawaUaaaaaaaaaaaaaaaWaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/templates/holodeck_basketball.dmm b/maps/templates/holodeck_basketball.dmm new file mode 100644 index 00000000000..89eb0a30d25 --- /dev/null +++ b/maps/templates/holodeck_basketball.dmm @@ -0,0 +1,54 @@ +"a" = (/obj/structure/window/reinforced,/obj/structure/bed/chair/red,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"b" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/turf/simulated/floor/tiled/rough,/area/template_noop) +"d" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/rough,/area/template_noop) +"e" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/rough,/area/template_noop) +"f" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/rough,/area/template_noop) +"g" = (/obj/effect/floor_decal/corner/green/three_quarters,/turf/simulated/floor/tiled/rough,/area/template_noop) +"h" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/turf/simulated/floor/tiled/rough,/area/template_noop) +"i" = (/obj/item/clothing/head/beanie/green,/obj/item/clothing/head/beanie/green,/obj/structure/table/standard,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"j" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled/rough,/area/template_noop) +"k" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/turf/simulated/floor/tiled/rough,/area/template_noop) +"m" = (/obj/machinery/door/window/northright,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"n" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled/rough,/area/template_noop) +"p" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/turf/simulated/floor/tiled/rough,/area/template_noop) +"r" = (/obj/effect/floor_decal/corner/red{dir = 6},/obj/item/beach_ball/basketball,/turf/simulated/floor/tiled/rough,/area/template_noop) +"s" = (/turf/simulated/floor/tiled/rough,/area/template_noop) +"t" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"u" = (/obj/structure/window/reinforced{dir = 1; health = null},/obj/structure/bed/chair/red{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"v" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled/rough,/area/template_noop) +"x" = (/obj/effect/floor_decal/corner/red/three_quarters,/turf/simulated/floor/tiled/rough,/area/template_noop) +"y" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"z" = (/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"A" = (/obj/machinery/door/window/northleft,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"B" = (/obj/item/clothing/head/beanie/red,/obj/item/clothing/head/beanie/red,/obj/structure/table/standard,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"C" = (/obj/machinery/door/window/southright,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"D" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/tiled/rough,/area/template_noop) +"F" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled/rough,/area/template_noop) +"G" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"I" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"K" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/turf/simulated/floor/tiled/rough,/area/template_noop) +"L" = (/obj/effect/floor_decal/corner/red/full,/obj/effect/floor_decal/industrial/outline,/obj/structure/hoop{dir = 4},/turf/simulated/floor/tiled/rough,/area/template_noop) +"M" = (/obj/effect/floor_decal/corner/red{dir = 1},/turf/simulated/floor/tiled/rough,/area/template_noop) +"N" = (/obj/structure/window/reinforced,/obj/structure/bed/chair/green,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"O" = (/obj/structure/window/reinforced{dir = 1; health = null},/obj/structure/bed/chair/green{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"P" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/turf/simulated/floor/tiled/rough,/area/template_noop) +"Q" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"R" = (/obj/effect/floor_decal/corner/red{dir = 8},/turf/simulated/floor/tiled/rough,/area/template_noop) +"S" = (/obj/effect/floor_decal/corner/green,/turf/simulated/floor/tiled/rough,/area/template_noop) +"T" = (/obj/machinery/door/window/southleft,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"U" = (/obj/effect/floor_decal/corner/green{dir = 4},/turf/simulated/floor/tiled/rough,/area/template_noop) +"V" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"W" = (/obj/effect/floor_decal/corner/green/full,/obj/effect/floor_decal/industrial/outline,/obj/structure/hoop{dir = 8},/turf/simulated/floor/tiled/rough,/area/template_noop) + +(1,1,1) = {" +zzzzzzzzzz +yaaTaNCNNQ +IKvvhpeekG +IxRsndsSbG +ILFsrdsfWG +IKMsndsUkG +IxjjPgDDbG +tuuAuOmOOV +zzzzzzzzzz +BBBzzzziii +"} diff --git a/maps/templates/holodeck_beach.dmm b/maps/templates/holodeck_beach.dmm new file mode 100644 index 00000000000..9b4f79dfea6 --- /dev/null +++ b/maps/templates/holodeck_beach.dmm @@ -0,0 +1,49 @@ +"a" = (/turf/simulated/floor/natural/jungle/sandgrasscorner2,/area/template_noop) +"b" = (/obj/structure/table/standard,/obj/item/glass_extra/lime_slice{pixel_y = 8; pixel_x = -4},/obj/item/glass_extra/orange_slice{pixel_y = 7},/obj/item/reagent_containers/vessel/glass/hurricane{pixel_y = 7},/obj/item/glass_extra/straw{pixel_x = 4},/obj/item/reagent_containers/food/watermelonslice,/turf/simulated/floor/natural/jungle/sand,/area/template_noop) +"c" = (/turf/simulated/floor/natural/jungle/sand,/area/template_noop) +"f" = (/turf/simulated/floor/natural/jungle/water/corner,/area/template_noop) +"i" = (/obj/structure/flora/ausbushes/fernybush,/turf/simulated/floor/natural/jungle/sandgrasscorner1,/area/template_noop) +"j" = (/turf/simulated/floor/natural/jungle/water/edge{dir = 4},/area/template_noop) +"k" = (/obj/effect/overlay/coconut,/obj/effect/overlay/palmtree_l,/turf/simulated/floor/natural/jungle/sand,/area/template_noop) +"l" = (/turf/simulated/floor/natural/jungle/sandgrasscorner1{dir = 8},/area/template_noop) +"m" = (/obj/structure/flora/ausbushes/jungleflora/grassa,/turf/simulated/floor/natural/jungle/sandgrasscorner2{dir = 8},/area/template_noop) +"o" = (/obj/effect/overlay/palmtree_l,/turf/simulated/floor/natural/jungle/sand,/area/template_noop) +"p" = (/obj/item/melee/energy/sword/pirate,/turf/simulated/floor/natural/jungle/sandgrasscorner2{dir = 8},/area/template_noop) +"q" = (/obj/structure/bed/chair/teal{dir = 4},/obj/item/clothing/head/pirate,/turf/simulated/floor/natural/jungle/sand,/area/template_noop) +"s" = (/turf/simulated/floor/natural/jungle/sandgrassedge{dir = 4},/area/template_noop) +"t" = (/obj/structure/flora/ausbushes/jungleflora/bushb,/turf/simulated/floor/natural/jungle/sandgrasscorner1,/area/template_noop) +"u" = (/obj/item/clothing/glasses/eyepatch,/turf/simulated/floor/natural/jungle/sandgrasscorner2,/area/template_noop) +"x" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/natural/jungle/sandgrasscorner1,/area/template_noop) +"y" = (/obj/structure/flora/ausbushes/jungleflora/busha,/turf/simulated/floor/natural/jungle,/area/template_noop) +"z" = (/obj/item/clothing/suit/pirate,/turf/simulated/floor/natural/jungle/sand,/area/template_noop) +"A" = (/obj/item/bikehorn/rubberducky,/turf/simulated/floor/natural/jungle/water,/area/template_noop) +"D" = (/obj/item/clothing/head/collectable/paper,/obj/item/clothing/head/collectable/paper{pixel_y = -8; pixel_x = 10},/obj/item/clothing/head/collectable/paper{pixel_y = -12; pixel_x = -5},/turf/simulated/floor/natural/jungle/water,/area/template_noop) +"F" = (/obj/item/inflatable_duck,/turf/simulated/floor/natural/jungle/water,/area/template_noop) +"H" = (/turf/simulated/floor/natural/jungle/water,/area/template_noop) +"I" = (/turf/simulated/floor/natural/jungle/sandgrasscorner1{dir = 8},/area/template_noop) +"J" = (/obj/structure/bed/chair/lime{dir = 4},/turf/simulated/floor/natural/jungle/sand,/area/template_noop) +"K" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/natural/jungle/sand,/area/template_noop) +"M" = (/obj/item/beach_ball,/turf/simulated/floor/natural/jungle/sand,/area/template_noop) +"N" = (/turf/simulated/floor/natural/jungle/water/edge{dir = 5},/area/template_noop) +"P" = (/obj/structure/flora/ausbushes/jungleflora/bushb,/obj/item/reagent_containers/food/grown/watermelon,/turf/simulated/floor/natural/jungle,/area/template_noop) +"Q" = (/turf/simulated/floor/natural/jungle,/area/template_noop) +"R" = (/turf/simulated/floor/natural/jungle/water/edge{dir = 6},/area/template_noop) +"T" = (/turf/simulated/floor/natural/jungle/water/corner{dir = 8},/area/template_noop) +"V" = (/obj/structure/flora/ausbushes/jungleflora/grassa,/turf/simulated/floor/natural/jungle/sandgrasscorner2,/area/template_noop) +"W" = (/obj/item/clothing/under/redcoat,/turf/simulated/floor/natural/jungle/sand,/area/template_noop) +"X" = (/obj/structure/flora/ausbushes/fernybush,/turf/simulated/floor/natural/jungle/sandgrasscorner2{dir = 8},/area/template_noop) +"Y" = (/obj/effect/overlay/coconut,/turf/simulated/floor/natural/jungle/sand,/area/template_noop) +"Z" = (/obj/item/melee/energy/sword/pirate,/turf/simulated/floor/natural/jungle/sand,/area/template_noop) + +(1,1,1) = {" +yQiVccfRHH +QxuzccjHDH +taZqWfRHHH +accMcjHHHH +ccYbKjFHHH +cocJcjHHHH +XccccjHHHH +sccccTNHHH +lmckccjAHH +PIpcccTNHH +"} diff --git a/maps/templates/holodeck_boxing.dmm b/maps/templates/holodeck_boxing.dmm new file mode 100644 index 00000000000..a74a6994545 --- /dev/null +++ b/maps/templates/holodeck_boxing.dmm @@ -0,0 +1,52 @@ +"a" = (/obj/structure/bed/chair/black,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/tiled/brown,/area/template_noop) +"b" = (/obj/structure/table/reinforced,/obj/item/clothing/gloves/boxing/hologloves,/obj/effect/floor_decal/corner/red/full,/obj/effect/floor_decal/spline/fancy{dir = 9},/turf/simulated/floor/tiled/brown,/area/template_noop) +"c" = (/obj/effect/floor_decal/corner/blue/three_quarters,/obj/effect/floor_decal/industrial/boxcorners{dir = 8},/turf/simulated/floor/tiled/brown,/area/template_noop) +"d" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/obj/effect/floor_decal/industrial/boxcorners{dir = 1},/turf/simulated/floor/tiled/brown,/area/template_noop) +"f" = (/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"g" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"h" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/obj/effect/floor_decal/industrial/boxcorners,/turf/simulated/floor/tiled/brown,/area/template_noop) +"i" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"j" = (/obj/effect/floor_decal/corner/yellow{dir = 4},/turf/simulated/floor/tiled/brown,/area/template_noop) +"n" = (/obj/effect/floor_decal/corner/yellow/full,/obj/effect/floor_decal/spline/fancy{dir = 1},/obj/structure/table/reinforced,/obj/item/clothing/gloves/boxing/hologloves/yellow,/turf/simulated/floor/tiled/brown,/area/template_noop) +"p" = (/obj/structure/table/reinforced,/obj/item/clothing/gloves/boxing/hologloves/blue,/obj/effect/floor_decal/corner/blue/full,/obj/effect/floor_decal/spline/fancy{dir = 10},/turf/simulated/floor/tiled/brown,/area/template_noop) +"q" = (/obj/structure/window/reinforced{dir = 1; health = null},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"s" = (/obj/structure/table/reinforced,/obj/item/clothing/gloves/boxing/hologloves/green,/obj/effect/floor_decal/corner/green/full,/obj/effect/floor_decal/spline/fancy{dir = 6},/turf/simulated/floor/tiled/brown,/area/template_noop) +"t" = (/obj/effect/floor_decal/corner/green/full,/obj/effect/floor_decal/spline/fancy{dir = 4},/obj/structure/table/reinforced,/obj/item/clothing/gloves/boxing/hologloves/green,/turf/simulated/floor/tiled/brown,/area/template_noop) +"u" = (/obj/effect/floor_decal/corner/yellow/three_quarters{dir = 1},/obj/effect/floor_decal/industrial/boxcorners{dir = 4},/turf/simulated/floor/tiled/brown,/area/template_noop) +"v" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"w" = (/obj/effect/floor_decal/corner/grey/three_quarters{dir = 4},/obj/effect/floor_decal/industrial/boxcorners{dir = 1},/turf/simulated/floor/tiled/dark,/area/template_noop) +"x" = (/obj/effect/floor_decal/corner/blue/full,/obj/effect/floor_decal/spline/fancy,/obj/structure/table/reinforced,/obj/item/clothing/gloves/boxing/hologloves/blue,/turf/simulated/floor/tiled/brown,/area/template_noop) +"y" = (/obj/structure/table/reinforced,/obj/item/clothing/gloves/boxing/hologloves/yellow,/obj/effect/floor_decal/corner/yellow/full,/obj/effect/floor_decal/spline/fancy{dir = 5},/turf/simulated/floor/tiled/brown,/area/template_noop) +"z" = (/obj/effect/floor_decal/corner/red{dir = 1},/turf/simulated/floor/tiled/brown,/area/template_noop) +"A" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"C" = (/obj/structure/bed/chair/black{dir = 1},/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/tiled/brown,/area/template_noop) +"D" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"F" = (/obj/effect/floor_decal/spline/fancy{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"H" = (/obj/machinery/door/window/southleft,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"I" = (/obj/structure/bed/chair/black{dir = 8},/obj/effect/floor_decal/corner/yellow/full,/turf/simulated/floor/tiled/brown,/area/template_noop) +"J" = (/obj/effect/floor_decal/corner/grey/three_quarters{dir = 1},/obj/effect/floor_decal/industrial/boxcorners{dir = 8},/turf/simulated/floor/tiled/dark,/area/template_noop) +"K" = (/obj/effect/floor_decal/spline/fancy{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"M" = (/obj/machinery/door/window/northright,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"N" = (/obj/effect/floor_decal/spline/fancy,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"P" = (/obj/effect/floor_decal/corner/green,/turf/simulated/floor/tiled/brown,/area/template_noop) +"Q" = (/obj/effect/floor_decal/corner/grey/three_quarters,/obj/effect/floor_decal/industrial/boxcorners{dir = 4},/turf/simulated/floor/tiled/dark,/area/template_noop) +"R" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled/brown,/area/template_noop) +"S" = (/obj/structure/bed/chair/black{dir = 4},/obj/effect/floor_decal/corner/blue/full,/turf/simulated/floor/tiled/brown,/area/template_noop) +"T" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"U" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"V" = (/obj/effect/floor_decal/corner/red/full,/obj/effect/floor_decal/spline/fancy{dir = 8},/obj/structure/table/reinforced,/obj/item/clothing/gloves/boxing/hologloves,/turf/simulated/floor/tiled/brown,/area/template_noop) +"Y" = (/obj/effect/floor_decal/corner/grey/three_quarters{dir = 8},/obj/effect/floor_decal/industrial/boxcorners,/turf/simulated/floor/tiled/dark,/area/template_noop) +"Z" = (/obj/effect/floor_decal/spline/fancy{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) + +(1,1,1) = {" +bKKKKKKKny +VffaaaaffZ +FfTAAAHDfZ +FSgdzjuUIZ +FSgzYJjUIZ +FSgRQwPUIZ +FSgcRPhUIZ +FfiMqqqvfZ +FffCCCCfft +pxNNNNNNNs +"} diff --git a/maps/templates/holodeck_chess.dmm b/maps/templates/holodeck_chess.dmm new file mode 100644 index 00000000000..efc37c6b38a --- /dev/null +++ b/maps/templates/holodeck_chess.dmm @@ -0,0 +1,43 @@ +"a" = (/obj/effect/floor_decal/corner/black/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"e" = (/obj/effect/floor_decal/spline/fancy{dir = 1},/turf/simulated/floor/trim/lino,/area/template_noop) +"f" = (/obj/effect/floor_decal/spline/fancy/corner,/turf/simulated/floor/trim/lino,/area/template_noop) +"j" = (/obj/item/reagent_containers/food/checker/king/red{randpixel = 0},/obj/effect/floor_decal/corner/black/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"l" = (/obj/item/reagent_containers/food/checker/pawn{randpixel = 0},/obj/effect/floor_decal/corner/black/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"n" = (/obj/item/reagent_containers/food/checker/pawn/red{randpixel = 0},/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/mono,/area/template_noop) +"o" = (/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/mono,/area/template_noop) +"q" = (/obj/item/reagent_containers/food/checker/queen/red{randpixel = 0},/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/mono,/area/template_noop) +"t" = (/obj/item/reagent_containers/food/checker/bishop/red{randpixel = 0},/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/mono,/area/template_noop) +"v" = (/obj/item/reagent_containers/food/checker/rook{randpixel = 0},/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/mono,/area/template_noop) +"y" = (/obj/item/reagent_containers/food/checker/knight/red{randpixel = 0},/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/mono,/area/template_noop) +"B" = (/obj/item/reagent_containers/food/checker/knight{randpixel = 0},/obj/effect/floor_decal/corner/black/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"C" = (/obj/effect/floor_decal/spline/fancy/corner{dir = 8},/turf/simulated/floor/trim/lino,/area/template_noop) +"D" = (/obj/item/reagent_containers/food/checker/pawn{randpixel = 0},/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/mono,/area/template_noop) +"E" = (/obj/item/reagent_containers/food/checker/bishop{randpixel = 0},/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/mono,/area/template_noop) +"G" = (/obj/item/reagent_containers/food/checker/rook/red{randpixel = 0},/obj/effect/floor_decal/corner/black/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"H" = (/obj/item/reagent_containers/food/checker/knight/red{randpixel = 0},/obj/effect/floor_decal/corner/black/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"I" = (/obj/effect/floor_decal/spline/fancy,/turf/simulated/floor/trim/lino,/area/template_noop) +"J" = (/obj/item/reagent_containers/food/checker/king{randpixel = 0},/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/mono,/area/template_noop) +"K" = (/obj/effect/floor_decal/spline/fancy{dir = 8},/turf/simulated/floor/trim/lino,/area/template_noop) +"M" = (/obj/effect/floor_decal/spline/fancy{dir = 4},/turf/simulated/floor/trim/lino,/area/template_noop) +"N" = (/obj/item/reagent_containers/food/checker/knight{randpixel = 0},/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/mono,/area/template_noop) +"P" = (/obj/effect/floor_decal/spline/fancy/corner{dir = 1},/turf/simulated/floor/trim/lino,/area/template_noop) +"Q" = (/obj/effect/floor_decal/spline/fancy/corner{dir = 4},/turf/simulated/floor/trim/lino,/area/template_noop) +"S" = (/obj/item/reagent_containers/food/checker/pawn/red{randpixel = 0},/obj/effect/floor_decal/corner/black/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"U" = (/obj/item/reagent_containers/food/checker/queen{randpixel = 0},/obj/effect/floor_decal/corner/black/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"V" = (/obj/item/reagent_containers/food/checker/rook{randpixel = 0},/obj/effect/floor_decal/corner/black/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"W" = (/obj/item/reagent_containers/food/checker/rook/red{randpixel = 0},/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/mono,/area/template_noop) +"Y" = (/obj/item/reagent_containers/food/checker/bishop/red{randpixel = 0},/obj/effect/floor_decal/corner/black/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"Z" = (/obj/item/reagent_containers/food/checker/bishop{randpixel = 0},/obj/effect/floor_decal/corner/black/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) + +(1,1,1) = {" +fIIIIIIIIC +MvBEUJZNVK +MlDlDlDlDK +MoaoaoaoaK +MaoaoaoaoK +MoaoaoaoaK +MaoaoaoaoK +MnSnSnSnSK +MGyYqjtHWK +PeeeeeeeeQ +"} diff --git a/maps/templates/holodeck_courtroom.dmm b/maps/templates/holodeck_courtroom.dmm new file mode 100644 index 00000000000..41e112c4065 --- /dev/null +++ b/maps/templates/holodeck_courtroom.dmm @@ -0,0 +1,54 @@ +"a" = (/turf/simulated/floor/trim/carpet,/area/template_noop) +"b" = (/obj/structure/bed/chair/red{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/trim/wood,/area/template_noop) +"c" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/donut/chaos,/turf/simulated/floor/trim/carpet,/area/template_noop) +"e" = (/obj/structure/bed/chair/purp{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/siding/wood,/turf/simulated/floor/trim/wood,/area/template_noop) +"f" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced,/obj/item/clothing/head/tinfoil,/turf/simulated/floor/trim/carpet,/area/template_noop) +"g" = (/obj/structure/table/woodentable,/obj/effect/floor_decal/siding/wood{dir = 1},/obj/item/device/flashlight/lamp/brown{pixel_x = -6},/turf/simulated/floor/trim/wood,/area/template_noop) +"h" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/donut/cherryjelly,/obj/structure/window/reinforced,/turf/simulated/floor/trim/carpet,/area/template_noop) +"i" = (/obj/structure/table/woodentable,/obj/effect/floor_decal/siding/wood{dir = 1},/obj/item/reagent_containers/food/donut/chaos,/turf/simulated/floor/trim/wood,/area/template_noop) +"j" = (/obj/structure/bed/chair/purp{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/trim/carpet/purple,/area/template_noop) +"k" = (/obj/structure/bed/chair/purp{dir = 8},/turf/simulated/floor/trim/carpet/purple,/area/template_noop) +"l" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/trim/carpet,/area/template_noop) +"m" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/food/donut/chaos,/turf/simulated/floor/trim/carpet/purple,/area/template_noop) +"n" = (/obj/structure/bed/chair/purp{dir = 1},/obj/effect/floor_decal/siding/wood,/turf/simulated/floor/trim/wood,/area/template_noop) +"p" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/trim/carpet,/area/template_noop) +"s" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/brown{pixel_x = -6},/turf/simulated/floor/trim/carpet/purple,/area/template_noop) +"t" = (/turf/simulated/floor/trim/wood,/area/template_noop) +"u" = (/obj/structure/bed/chair/purp{dir = 1},/turf/simulated/floor/trim/wood,/area/template_noop) +"v" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/siding/wood{dir = 1},/turf/simulated/floor/trim/wood,/area/template_noop) +"w" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/bed/chair/comfy/red,/obj/machinery/door/window/northleft,/obj/structure/window/reinforced,/turf/simulated/floor/trim/carpet,/area/template_noop) +"x" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced,/turf/simulated/floor/trim/carpet/purple,/area/template_noop) +"y" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/brown{pixel_x = -6},/obj/structure/window/reinforced,/turf/simulated/floor/trim/carpet,/area/template_noop) +"z" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/trim/carpet,/area/template_noop) +"A" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced,/turf/simulated/floor/trim/carpet,/area/template_noop) +"B" = (/obj/structure/table/woodentable,/obj/item/storage/box/donut/empty,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/trim/carpet,/area/template_noop) +"C" = (/obj/structure/table/woodentable,/obj/effect/floor_decal/siding/wood{dir = 1},/obj/item/reagent_containers/food/donut/cherryjelly,/turf/simulated/floor/trim/wood,/area/template_noop) +"F" = (/obj/structure/table/woodentable,/obj/item/clothing/suit/judgerobe,/obj/item/clothing/head/philosopher_wig,/turf/simulated/floor/trim/carpet,/area/template_noop) +"G" = (/obj/structure/table/woodentable,/obj/item/book/wiki/nt_regs{pixel_y = 9},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/trim/carpet,/area/template_noop) +"H" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/trim/wood,/area/template_noop) +"I" = (/obj/random/pottedplant,/obj/effect/floor_decal/siding/wood/end,/obj/effect/floor_decal/siding/wood{dir = 1},/obj/effect/floor_decal/siding/wood/corner{dir = 1},/obj/effect/floor_decal/siding/wood/corner{dir = 4},/turf/simulated/floor/trim/wood,/area/template_noop) +"J" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/bed/chair/comfy/blue,/obj/machinery/door/window/northleft,/obj/structure/window/reinforced,/turf/simulated/floor/trim/carpet,/area/template_noop) +"L" = (/obj/structure/bed/chair/red{dir = 1},/turf/simulated/floor/trim/wood,/area/template_noop) +"M" = (/obj/structure/table/woodentable,/obj/item/book/wiki/nt_regs{pixel_y = 9},/turf/simulated/floor/trim/carpet/purple,/area/template_noop) +"N" = (/obj/effect/floor_decal/siding/wood{dir = 8},/turf/simulated/floor/trim/wood,/area/template_noop) +"P" = (/obj/structure/table/woodentable,/turf/simulated/floor/trim/carpet/purple,/area/template_noop) +"Q" = (/turf/simulated/floor/trim/lino,/area/template_noop) +"R" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/trim/carpet,/area/template_noop) +"T" = (/obj/effect/floor_decal/siding/wood{dir = 1},/turf/simulated/floor/trim/wood,/area/template_noop) +"U" = (/obj/structure/bed/chair/comfy/purp,/turf/simulated/floor/trim/carpet,/area/template_noop) +"V" = (/obj/structure/bed/chair/purp{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/trim/wood,/area/template_noop) +"W" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/trim/carpet,/area/template_noop) +"Y" = (/obj/structure/bed/chair/blue{dir = 1},/turf/simulated/floor/trim/wood,/area/template_noop) + +(1,1,1) = {" +QQQQQQQQQQ +QWRaaaaGBQ +QzacUFaaaQ +QpJyAhwflQ +QIgiTCvskQ +QNYYtLbMkQ +QNttttHmkQ +QNuuuuVPkQ +QInnnnexjQ +QQQQQQQQQQ +"} diff --git a/maps/templates/holodeck_desert.dmm b/maps/templates/holodeck_desert.dmm new file mode 100644 index 00000000000..8073841788e --- /dev/null +++ b/maps/templates/holodeck_desert.dmm @@ -0,0 +1,33 @@ +"a" = (/turf/simulated/floor/natural/sand,/area/template_noop) +"c" = (/obj/structure/flora/tree/dead/deadtree_2,/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/glowshroom,/turf/simulated/floor/natural/sand,/area/template_noop) +"e" = (/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/natural/sand,/area/template_noop) +"l" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/natural/sand,/area/template_noop) +"m" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/natural/sand,/area/template_noop) +"n" = (/obj/structure/flora/ausbushes/fernybush,/turf/simulated/floor/natural/sand,/area/template_noop) +"o" = (/obj/structure/flora/tree/green/tree9,/turf/simulated/floor/natural/sand,/area/template_noop) +"p" = (/obj/structure/sink/puddle,/turf/simulated/floor/natural/sand,/area/template_noop) +"y" = (/obj/structure/flora/ausbushes/lavendergrass,/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/natural/sand,/area/template_noop) +"A" = (/obj/structure/flora/ausbushes/lavendergrass,/turf/simulated/floor/natural/sand,/area/template_noop) +"E" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/lavendergrass,/turf/simulated/floor/natural/sand,/area/template_noop) +"I" = (/obj/structure/flora/ausbushes/fullgrass,/obj/structure/gravemarker/cross,/obj/structure/flora/tree/dead/deadtree_3,/turf/simulated/floor/natural/sand,/area/template_noop) +"J" = (/obj/item/clothing/suit/poncho/colored,/obj/item/clothing/head/sombrero,/turf/simulated/floor/natural/sand,/area/template_noop) +"K" = (/obj/structure/flora/ausbushes/fullgrass,/obj/item/device/synthesized_instrument/guitar,/turf/simulated/floor/natural/sand,/area/template_noop) +"Q" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/natural/sand,/area/template_noop) +"S" = (/turf/simulated/floor/sand_floor,/area/template_noop) +"T" = (/obj/structure/flora/ausbushes/reedbush,/turf/simulated/floor/natural/sand,/area/template_noop) +"V" = (/obj/structure/flora/tree/green/tree8,/turf/simulated/floor/natural/sand,/area/template_noop) +"Y" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/tree/dead/deadtree_4,/turf/simulated/floor/natural/sand,/area/template_noop) +"Z" = (/obj/structure/flora/tree/dead/deadtree_6,/turf/simulated/floor/natural/sand,/area/template_noop) + +(1,1,1) = {" +aaaSSSSaaa +eIaaaSSSSa +alAaaaSSca +SaaaJKonTS +SaaAlnpaaS +SSYyaaaaaS +SaaEaaaaSS +aaaZmaaQVa +alaaaaaaaa +aaaSSSSaaa +"} diff --git a/maps/templates/holodeck_disco.dmm b/maps/templates/holodeck_disco.dmm new file mode 100644 index 00000000000..acf79ff1154 --- /dev/null +++ b/maps/templates/holodeck_disco.dmm @@ -0,0 +1,50 @@ +"a" = (/obj/structure/railing/steel{dir = 4},/obj/effect/floor_decal/spline/fancy{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"b" = (/obj/structure/table/steel,/obj/item/clothing/head/cakehat,/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"c" = (/obj/structure/railing/steel,/obj/effect/floor_decal/spline/fancy,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"e" = (/obj/effect/floor_decal/spline/fancy,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"f" = (/obj/structure/railing/steel{dir = 1},/obj/effect/floor_decal/spline/fancy{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"h" = (/obj/effect/floor_decal/spline/plain{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"k" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"l" = (/obj/effect/floor_decal/spline/plain{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"m" = (/obj/effect/floor_decal/spline/fancy/corner,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"n" = (/obj/structure/railing/steel{dir = 1},/obj/effect/floor_decal/spline/fancy{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"o" = (/obj/effect/floor_decal/spline/fancy{dir = 1},/obj/structure/railing/steel{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"p" = (/obj/structure/table/steel,/obj/item/clothing/head/crown,/obj/effect/floor_decal/spline/plain{dir = 10},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"t" = (/obj/structure/railing/steel{dir = 8},/obj/effect/floor_decal/spline/fancy{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"v" = (/obj/effect/floor_decal/spline/fancy{dir = 1},/obj/structure/railing/steel{dir = 1},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"w" = (/obj/effect/floor_decal/spline/fancy{dir = 8},/obj/structure/railing/steel{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"x" = (/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"y" = (/obj/effect/floor_decal/spline/plain{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"A" = (/obj/effect/floor_decal/spline/plain,/obj/structure/table/steel,/obj/item/clothing/head/beaverhat,/obj/item/clothing/head/tiara,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"B" = (/obj/effect/floor_decal/spline/fancy{dir = 4},/obj/structure/railing/steel{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"C" = (/obj/structure/railing/steel,/obj/effect/floor_decal/spline/fancy,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"D" = (/obj/effect/floor_decal/spline/plain{dir = 4},/obj/structure/table/steel,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"E" = (/obj/structure/table/steel,/obj/item/clothing/mask/uwu,/obj/item/clothing/head/samura_hat,/obj/effect/floor_decal/spline/plain{dir = 6},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"H" = (/obj/effect/floor_decal/spline/fancy{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"I" = (/obj/effect/floor_decal/spline/fancy/corner{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"J" = (/obj/effect/floor_decal/spline/plain{dir = 1},/obj/structure/table/steel,/obj/item/clothing/head/agua_helmet,/obj/item/clothing/head/bearpelt,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"K" = (/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"L" = (/obj/structure/table/steel,/obj/item/clothing/head/justice,/obj/item/clothing/head/justice/blue,/obj/item/clothing/head/justice/green,/obj/item/clothing/head/justice/pink,/obj/item/clothing/head/justice/yellow,/obj/effect/floor_decal/spline/plain{dir = 9},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"M" = (/obj/structure/table/steel,/obj/item/clothing/head/antenna,/obj/item/clothing/head/richard,/obj/effect/floor_decal/spline/plain{dir = 5},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"N" = (/obj/effect/floor_decal/spline/fancy{dir = 8},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"O" = (/obj/effect/floor_decal/spline/fancy{dir = 4},/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"P" = (/obj/structure/table/steel,/obj/item/clothing/head/kitty,/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"R" = (/obj/effect/floor_decal/spline/plain{dir = 8},/obj/structure/table/steel,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"T" = (/obj/effect/floor_decal/spline/plain{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"U" = (/obj/effect/floor_decal/spline/fancy/corner{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"W" = (/obj/effect/floor_decal/spline/fancy/corner{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"Y" = (/obj/machinery/floor_light/prebuilt,/turf/simulated/floor/grid,/area/template_noop) +"Z" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) + +(1,1,1) = {" +LbZZZkkkJM +RmcCeeccIT +haYYYYYYty +hBYYYYYYty +hOYYYYYYNy +hOYYYYYYNT +lBYYYYYYwy +laYYYYYYtT +hUnoHHvfWD +pAKxxKKKPE +"} diff --git a/maps/templates/holodeck_lasertag.dmm b/maps/templates/holodeck_lasertag.dmm new file mode 100644 index 00000000000..473d0f90759 --- /dev/null +++ b/maps/templates/holodeck_lasertag.dmm @@ -0,0 +1,38 @@ +"a" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"d" = (/obj/effect/floor_decal/corner/red{dir = 10},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"f" = (/obj/effect/floor_decal/corner/blue{dir = 6},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"l" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"n" = (/obj/structure/closet/lasertag/red,/obj/effect/floor_decal/industrial/hatch/red,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"q" = (/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"t" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"u" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"v" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"w" = (/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"y" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"A" = (/obj/structure/closet/lasertag/blue,/obj/effect/floor_decal/industrial/hatch/blue,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"B" = (/obj/effect/floor_decal/corner/purple/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"E" = (/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"F" = (/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"G" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"H" = (/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"I" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"L" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"O" = (/obj/effect/floor_decal/corner/blue/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"P" = (/obj/effect/floor_decal/corner/red/mono,/turf/simulated/floor/tiled/dark/mono,/area/template_noop) +"U" = (/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"W" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"Y" = (/obj/effect/floor_decal/corner/blue{dir = 5},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"Z" = (/obj/structure/girder/cult,/obj/structure/window/reinforced/tinted/full,/turf/simulated/floor/tiled/brown,/area/template_noop) + +(1,1,1) = {" +BttttflllA +GZZHOEUZUF +GZHHHZUUUF +GZHZqZZZqY +GHHZPOEHOI +GPHLPOZHHI +dyZZZyZHZI +uwwwZHHHZI +uwZwLPHZZI +nWWWvaaaaB +"} diff --git a/maps/templates/holodeck_meetingroom.dmm b/maps/templates/holodeck_meetingroom.dmm new file mode 100644 index 00000000000..bd1e279778c --- /dev/null +++ b/maps/templates/holodeck_meetingroom.dmm @@ -0,0 +1,41 @@ +"a" = (/obj/effect/floor_decal/corner/grey/full,/obj/effect/floor_decal/siding/wood{dir = 4},/turf/simulated/floor/tiled,/area/template_noop) +"b" = (/obj/structure/railing/wood,/obj/effect/floor_decal/siding/wood,/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/brown,/turf/simulated/floor/trim/wood,/area/template_noop) +"d" = (/obj/effect/floor_decal/corner/grey/full,/obj/effect/floor_decal/siding/wood/corner{dir = 1},/turf/simulated/floor/tiled,/area/template_noop) +"e" = (/obj/structure/railing/wood,/obj/effect/floor_decal/siding/wood{dir = 6},/obj/structure/table/woodentable,/turf/simulated/floor/trim/wood,/area/template_noop) +"f" = (/obj/structure/railing/wood,/obj/structure/bed/pew/pewchapel/left{dir = 1},/turf/simulated/floor/trim/wood,/area/template_noop) +"h" = (/obj/effect/floor_decal/siding/wood/corner{dir = 8},/turf/simulated/floor/trim/wood,/area/template_noop) +"i" = (/obj/effect/floor_decal/corner/grey/full,/obj/effect/floor_decal/siding/wood/corner{dir = 8},/turf/simulated/floor/tiled,/area/template_noop) +"j" = (/obj/structure/railing/wood,/obj/structure/table/woodentable,/obj/effect/floor_decal/siding/wood,/obj/item/device/megaphone,/turf/simulated/floor/trim/wood,/area/template_noop) +"k" = (/obj/effect/floor_decal/corner/grey/full,/obj/effect/floor_decal/siding/wood/corner{dir = 4},/turf/simulated/floor/tiled,/area/template_noop) +"l" = (/obj/structure/railing/wood,/obj/structure/table/woodentable,/obj/effect/floor_decal/siding/wood,/obj/item/clothing/suit/storage/hooded/wintercoat/centcom,/obj/item/clothing/head/centhat,/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/trim/wood,/area/template_noop) +"p" = (/obj/effect/floor_decal/stairs,/turf/simulated/floor/tiled,/area/template_noop) +"s" = (/obj/random/pottedplant,/obj/effect/floor_decal/siding/wood/end,/obj/effect/floor_decal/siding/wood{dir = 1},/obj/effect/floor_decal/siding/wood/corner{dir = 1},/obj/effect/floor_decal/siding/wood/corner{dir = 4},/turf/simulated/floor/trim/wood,/area/template_noop) +"w" = (/obj/effect/floor_decal/corner/grey/full,/turf/simulated/floor/tiled,/area/template_noop) +"x" = (/obj/structure/bed/pew/pewchapel/right{dir = 1},/obj/structure/railing/wood,/turf/simulated/floor/trim/wood,/area/template_noop) +"y" = (/obj/structure/railing/wood,/obj/structure/table/woodentable,/obj/effect/floor_decal/siding/wood,/obj/item/clothing/suit/storage/hooded/wintercoat/captain,/obj/item/clothing/head/caphat,/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/trim/wood,/area/template_noop) +"z" = (/obj/structure/bed/chair/comfy/captain,/turf/simulated/floor/trim/carpet,/area/template_noop) +"A" = (/obj/effect/floor_decal/corner/grey/full,/obj/effect/floor_decal/siding/wood,/turf/simulated/floor/tiled,/area/template_noop) +"E" = (/obj/effect/floor_decal/corner/grey/full,/obj/effect/floor_decal/siding/wood{dir = 8},/turf/simulated/floor/tiled,/area/template_noop) +"G" = (/turf/simulated/floor/trim/wood,/area/template_noop) +"I" = (/obj/effect/floor_decal/siding/wood,/turf/simulated/floor/trim/wood,/area/template_noop) +"J" = (/obj/effect/floor_decal/corner/grey/full,/obj/effect/floor_decal/siding/wood{dir = 1},/turf/simulated/floor/tiled,/area/template_noop) +"L" = (/obj/effect/floor_decal/corner/grey/full,/obj/effect/floor_decal/siding/wood/corner,/turf/simulated/floor/tiled,/area/template_noop) +"M" = (/turf/simulated/floor/trim/carpet,/area/template_noop) +"O" = (/obj/structure/bed/pew/pewchapel/middle{dir = 1; icon_state = "chair_pewchapel_middle_over"},/obj/structure/railing/wood,/turf/simulated/floor/trim/wood,/area/template_noop) +"V" = (/obj/effect/floor_decal/siding/wood/corner,/turf/simulated/floor/trim/wood,/area/template_noop) +"W" = (/obj/structure/bed/pew/pewchapel/left{dir = 1},/obj/structure/railing/wood,/turf/simulated/floor/trim/wood,/area/template_noop) +"X" = (/obj/structure/railing/wood,/obj/structure/table/woodentable,/obj/effect/floor_decal/siding/wood,/turf/simulated/floor/trim/wood,/area/template_noop) +"Z" = (/obj/structure/railing/wood,/obj/effect/floor_decal/siding/wood{dir = 10},/obj/structure/table/woodentable,/turf/simulated/floor/trim/wood,/area/template_noop) + +(1,1,1) = {" +sGGGGGGGGs +IhMzMMzMVI +pZbyXjlbep +LAAAiLAAAi +aWOxEaWOxE +aWOxEaWOxE +afOxEaWOxE +afOxEaWOxE +kJJJdkJJJd +swwwwwwwws +"} diff --git a/maps/templates/holodeck_offline.dmm b/maps/templates/holodeck_offline.dmm new file mode 100644 index 00000000000..87536d25e19 --- /dev/null +++ b/maps/templates/holodeck_offline.dmm @@ -0,0 +1,14 @@ +"a" = (/turf/simulated/floor/reinforced,/area/template_noop) + +(1,1,1) = {" +aaaaaaaaaa +aaaaaaaaaa +aaaaaaaaaa +aaaaaaaaaa +aaaaaaaaaa +aaaaaaaaaa +aaaaaaaaaa +aaaaaaaaaa +aaaaaaaaaa +aaaaaaaaaa +"} diff --git a/maps/templates/holodeck_picnic.dmm b/maps/templates/holodeck_picnic.dmm new file mode 100644 index 00000000000..8b3b4fa5672 --- /dev/null +++ b/maps/templates/holodeck_picnic.dmm @@ -0,0 +1,51 @@ +"a" = (/obj/structure/flora/ausbushes/jungleflora/bushc,/turf/simulated/floor/natural/jungle/grasscorner1{dir = 1},/area/template_noop) +"c" = (/turf/simulated/floor/natural/jungle/grasscorner2{dir = 1},/area/template_noop) +"e" = (/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/natural/jungle/grasscorner1{dir = 1},/area/template_noop) +"f" = (/turf/simulated/floor/natural/jungle/grasscorner1{dir = 1},/area/template_noop) +"h" = (/turf/simulated/floor/natural/jungle/grasscorner2{dir = 8},/area/template_noop) +"j" = (/turf/simulated/floor/natural/jungle/grasscorner2,/area/template_noop) +"k" = (/obj/structure/flora/tree/green/small/tree6,/turf/simulated/floor/natural/jungle,/area/template_noop) +"l" = (/turf/simulated/floor/natural/jungle/grassedge{dir = 4},/area/template_noop) +"n" = (/obj/structure/table/woodentable,/obj/item/trash/dish/tray{pixel_y = 7},/obj/item/reagent_containers/food/meatkabob{pixel_y = 14; pixel_x = -5},/obj/item/reagent_containers/food/meatkabob{pixel_y = 11},/obj/item/reagent_containers/food/meatkabob{pixel_y = 8; pixel_x = 5},/turf/simulated/floor/natural/jungle/dirt,/area/template_noop) +"p" = (/turf/simulated/floor/natural/jungle/grassedge,/area/template_noop) +"q" = (/obj/structure/flora/ausbushes/jungleflora/bushb,/obj/structure/flora/jungleplants/alienplant5,/obj/item/reagent_containers/vessel/flask/vacuumflask{pixel_y = 4},/obj/item/reagent_containers/vessel/mug/metal{pixel_y = -8; pixel_x = -7},/turf/simulated/floor/natural/jungle,/area/template_noop) +"r" = (/turf/simulated/floor/natural/jungle/grasscorner1{dir = 8},/area/template_noop) +"s" = (/obj/structure/flora/ausbushes/jungleflora/busha,/turf/simulated/floor/natural/jungle,/area/template_noop) +"u" = (/turf/simulated/floor/natural/jungle/grasscorner2{dir = 4},/area/template_noop) +"v" = (/obj/structure/flora/jungleplants/alienplant4,/turf/simulated/floor/natural/jungle,/area/template_noop) +"w" = (/obj/structure/flora/jungleplants/glowingflower/yellow,/turf/simulated/floor/natural/jungle/grassedge{dir = 4},/area/template_noop) +"x" = (/turf/simulated/floor/natural/jungle,/area/template_noop) +"y" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/teapot,/turf/simulated/floor/natural/jungle/dirt,/area/template_noop) +"A" = (/obj/structure/flora/tree/green/tree5,/turf/simulated/floor/natural/jungle,/area/template_noop) +"B" = (/turf/simulated/floor/natural/jungle/grassedge{dir = 1},/area/template_noop) +"C" = (/obj/structure/flora/ausbushes/jungleflora/bushc,/turf/simulated/floor/natural/jungle/grasscorner1,/area/template_noop) +"D" = (/obj/item/stool/bar,/turf/simulated/floor/natural/jungle/dirt,/area/template_noop) +"F" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/mug{pixel_x = -5; pixel_y = 7},/obj/item/reagent_containers/food/carrotfries,/obj/item/reagent_containers/food/bacon{pixel_y = 1; pixel_x = -2},/turf/simulated/floor/natural/jungle/dirt,/area/template_noop) +"G" = (/obj/structure/flora/ausbushes/jungleflora/bushc,/turf/simulated/floor/natural/jungle,/area/template_noop) +"H" = (/obj/structure/flora/jungleplants/glowingflower/yellow,/turf/simulated/floor/natural/jungle/grasscorner1,/area/template_noop) +"I" = (/obj/structure/flora/jungleplants/alienplant5,/turf/simulated/floor/natural/jungle/grasscorner1{dir = 8},/area/template_noop) +"K" = (/obj/structure/flora/ausbushes/jungleflora/busha,/turf/simulated/floor/natural/jungle/grassedge{dir = 4},/area/template_noop) +"M" = (/obj/structure/flora/jungleplants/glowingflower/yellow,/turf/simulated/floor/natural/jungle/grasscorner1{dir = 4},/area/template_noop) +"N" = (/turf/simulated/floor/natural/jungle/grasscorner1,/area/template_noop) +"O" = (/obj/structure/table/woodentable,/obj/item/reagent_containers/vessel/mug/one{pixel_y = -2; pixel_x = 8},/obj/item/reagent_containers/vessel/mug/punitelli{pixel_y = 7},/obj/item/reagent_containers/vessel/mug/heart{pixel_x = -5; pixel_y = -1},/turf/simulated/floor/natural/jungle/dirt,/area/template_noop) +"S" = (/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/natural/jungle,/area/template_noop) +"T" = (/turf/simulated/floor/natural/jungle/grassedge{dir = 8},/area/template_noop) +"U" = (/obj/structure/flora/ausbushes/jungleflora/bushb,/turf/simulated/floor/natural/jungle/grasscorner1,/area/template_noop) +"V" = (/obj/structure/flora/ausbushes/jungleflora/busha,/obj/structure/flora/tree/green/small/tree6,/turf/simulated/floor/natural/jungle,/area/template_noop) +"W" = (/obj/structure/flora/jungleplants/glowingflower/yellow,/turf/simulated/floor/natural/jungle,/area/template_noop) +"X" = (/obj/structure/flora/ausbushes/jungleflora/bushb,/turf/simulated/floor/natural/jungle,/area/template_noop) +"Y" = (/turf/simulated/floor/natural/jungle/grasscorner1{dir = 4},/area/template_noop) +"Z" = (/turf/simulated/floor/natural/jungle/dirt,/area/template_noop) + +(1,1,1) = {" +XslZTxWGxx +XkIBMXSvAW +xWsNppaqHp +pfNjDDupjZ +ZTKDFyDZZZ +ZTlDnODZcB +BYrhDDZcYx +WxsrBBBMVv +GAUexCpfxG +sXwTWlZTXS +"} diff --git a/maps/templates/holodeck_snow.dmm b/maps/templates/holodeck_snow.dmm new file mode 100644 index 00000000000..412c1a6feae --- /dev/null +++ b/maps/templates/holodeck_snow.dmm @@ -0,0 +1,33 @@ +"a" = (/turf/simulated/floor/natural/snow,/area/template_noop) +"b" = (/obj/structure/flora/grass/both,/turf/simulated/floor/natural/snow,/area/template_noop) +"d" = (/obj/structure/flora/bush,/turf/simulated/floor/natural/snow,/area/template_noop) +"e" = (/obj/effect/floor_decal/snow,/obj/effect/floor_decal/snowedge/cee,/turf/simulated/floor/plating,/area/template_noop) +"h" = (/obj/structure/flora/ausbushes/pointybush,/turf/simulated/floor/natural/snow,/area/template_noop) +"l" = (/obj/effect/floor_decal/snow,/obj/effect/floor_decal/snowedge{dir = 5},/turf/simulated/floor/plating,/area/template_noop) +"o" = (/obj/structure/flora/bush,/obj/structure/flora/grass/green,/turf/simulated/floor/natural/snow,/area/template_noop) +"p" = (/obj/structure/flora/grass/green,/turf/simulated/floor/natural/snow,/area/template_noop) +"s" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/natural/snow,/area/template_noop) +"t" = (/obj/structure/flora/tree/dead/deadtree_0,/obj/structure/flora/jungleplants/glowshroom,/turf/simulated/floor/natural/snow,/area/template_noop) +"w" = (/obj/item/clothing/head/ushanka,/turf/simulated/floor/natural/snow,/area/template_noop) +"y" = (/obj/structure/flora/bush,/obj/structure/flora/grass/brown,/turf/simulated/floor/natural/snow,/area/template_noop) +"z" = (/obj/effect/floor_decal/snow,/obj/effect/floor_decal/snowedge{dir = 10},/turf/simulated/floor/plating,/area/template_noop) +"A" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/natural/snow,/area/template_noop) +"E" = (/obj/effect/floor_decal/snow,/obj/effect/floor_decal/snowedge{dir = 6},/turf/simulated/floor/plating,/area/template_noop) +"G" = (/obj/effect/floor_decal/snow,/obj/effect/floor_decal/snowedge{dir = 1},/turf/simulated/floor/plating,/area/template_noop) +"Q" = (/obj/item/clothing/mask/sgreenscarf,/turf/simulated/floor/natural/snow,/area/template_noop) +"R" = (/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/natural/snow,/area/template_noop) +"W" = (/obj/structure/flora/tree/dead/deadtree_0,/turf/simulated/floor/natural/snow,/area/template_noop) +"X" = (/obj/effect/floor_decal/snow,/obj/effect/floor_decal/snowedge{dir = 9},/turf/simulated/floor/plating,/area/template_noop) + +(1,1,1) = {" +aaazEaeapa +paaWpAaaaa +asbpyaabAa +aadaawsahX +lhaRWQaaaz +Epaayaaaaa +aaaAabosaa +AasapoaaAa +apaoaatApa +aaaXGGlaaa +"} diff --git a/maps/templates/holodeck_space.dmm b/maps/templates/holodeck_space.dmm new file mode 100644 index 00000000000..0b1f3a8fdd2 --- /dev/null +++ b/maps/templates/holodeck_space.dmm @@ -0,0 +1,15 @@ +"b" = (/turf/simulated/floor/holospace,/area/template_noop) +"A" = (/obj/effect/holodeck_effect/carp/random,/turf/simulated/floor/holospace,/area/template_noop) + +(1,1,1) = {" +bbbbbbbbbb +bbbAbbbbAb +bbbbbbbbbb +bAbbbbAbbb +bbbbbbbbbb +bbbbbbbbbb +bbbAbbbbAb +bbbbbbbbbb +bAbbbbAbbb +bbbbbbbbbb +"} diff --git a/maps/templates/holodeck_theatre.dmm b/maps/templates/holodeck_theatre.dmm new file mode 100644 index 00000000000..23134c7a564 --- /dev/null +++ b/maps/templates/holodeck_theatre.dmm @@ -0,0 +1,36 @@ +"a" = (/obj/effect/floor_decal/corner/brown/diagonal,/turf/simulated/floor/tiled/brown,/area/template_noop) +"e" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/trim/darkwood,/area/template_noop) +"f" = (/obj/structure/table/darkwood_reinforced,/obj/effect/landmark/costume/random,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/head/hairflower,/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/trim/darkwood,/area/template_noop) +"g" = (/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/trim/darkwood,/area/template_noop) +"h" = (/obj/structure/table/darkwood_reinforced,/obj/effect/landmark/costume/random,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/trim/darkwood,/area/template_noop) +"j" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 10},/turf/simulated/floor/trim/darkwood,/area/template_noop) +"m" = (/obj/effect/floor_decal/spline/fancy/wood/cee,/turf/simulated/floor/trim/darkwood,/area/template_noop) +"p" = (/obj/effect/floor_decal/stairs,/turf/simulated/floor/tiled,/area/template_noop) +"q" = (/obj/effect/floor_decal/spline/fancy/wood/corner,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 8},/turf/simulated/floor/trim/darkwood,/area/template_noop) +"t" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/turf/simulated/floor/trim/darkwood,/area/template_noop) +"v" = (/obj/effect/floor_decal/corner/brown/diagonal,/obj/effect/floor_decal/spline/plain/corner,/turf/simulated/floor/tiled/brown,/area/template_noop) +"y" = (/obj/effect/floor_decal/corner/grey/full,/turf/simulated/floor/tiled,/area/template_noop) +"z" = (/obj/structure/table/darkwood_reinforced,/obj/effect/landmark/costume/random,/turf/simulated/floor/trim/darkwood,/area/template_noop) +"F" = (/obj/effect/floor_decal/corner/brown/diagonal,/obj/effect/floor_decal/spline/plain,/obj/structure/railing/darkwood,/turf/simulated/floor/tiled/brown,/area/template_noop) +"H" = (/obj/structure/bed/couch/right/sofa{dir = 1},/obj/structure/railing/darkwood,/turf/simulated/floor/trim/carpet/oldred,/area/template_noop) +"K" = (/obj/effect/floor_decal/corner/grey/full,/obj/structure/table/darkwood_reinforced,/obj/item/reagent_containers/food/popcorn{pixel_y = 16},/obj/item/reagent_containers/food/popcorn{pixel_y = 8; pixel_x = -6},/obj/item/reagent_containers/food/popcorn{pixel_y = 8; pixel_x = 6},/obj/item/reagent_containers/food/popcorn,/turf/simulated/floor/tiled,/area/template_noop) +"L" = (/obj/effect/floor_decal/corner/brown/diagonal,/obj/effect/floor_decal/spline/plain{dir = 6},/obj/structure/railing/darkwood,/turf/simulated/floor/tiled/brown,/area/template_noop) +"P" = (/obj/effect/floor_decal/corner/brown/diagonal,/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/tiled/brown,/area/template_noop) +"Q" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/turf/simulated/floor/trim/darkwood,/area/template_noop) +"S" = (/obj/effect/floor_decal/corner/brown/diagonal,/obj/effect/floor_decal/spline/plain/corner{dir = 8},/turf/simulated/floor/tiled/brown,/area/template_noop) +"T" = (/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 8},/obj/effect/floor_decal/spline/fancy/wood/corner,/turf/simulated/floor/trim/darkwood,/area/template_noop) +"U" = (/obj/effect/floor_decal/corner/brown/diagonal,/obj/effect/floor_decal/spline/plain{dir = 10},/obj/structure/railing/darkwood,/turf/simulated/floor/tiled/brown,/area/template_noop) +"Y" = (/obj/structure/bed/couch/left/sofa{dir = 1},/obj/structure/railing/darkwood,/turf/simulated/floor/trim/carpet/oldred,/area/template_noop) + +(1,1,1) = {" +aaaaaaaaaa +PSaaaaaavP +pUFFFFFFLp +yfzzzzzzhy +yjgTggqgQy +yYHtYHeYHy +yYHtYHeYHy +yYHmYHmYHy +yyyyyyyyyy +Kyyyyyyyyy +"} diff --git a/maps/templates/holodeck_thunderdome.dmm b/maps/templates/holodeck_thunderdome.dmm new file mode 100644 index 00000000000..09193e329a6 --- /dev/null +++ b/maps/templates/holodeck_thunderdome.dmm @@ -0,0 +1,51 @@ +"a" = (/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"b" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"d" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"f" = (/obj/machinery/door/window/northright,/obj/effect/floor_decal/stairs,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"g" = (/obj/effect/floor_decal/corner/red/three_quarters,/obj/effect/floor_decal/corner/grey{dir = 4},/turf/simulated/floor/tiled,/area/template_noop) +"h" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 1},/obj/effect/floor_decal/corner/grey{dir = 8},/turf/simulated/floor/tiled,/area/template_noop) +"l" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"m" = (/obj/effect/floor_decal/corner/grey/full,/turf/simulated/floor/tiled,/area/template_noop) +"n" = (/obj/effect/floor_decal/corner/green/three_quarters,/obj/effect/floor_decal/corner/grey{dir = 4},/obj/structure/window/basic{dir = 8},/turf/simulated/floor/tiled,/area/template_noop) +"o" = (/obj/structure/table/steel_reinforced,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/button/minigame,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"p" = (/obj/effect/floor_decal/corner/green{dir = 5},/obj/effect/floor_decal/corner/grey{dir = 10},/turf/simulated/floor/tiled,/area/template_noop) +"q" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/effect/floor_decal/corner/grey{dir = 10},/turf/simulated/floor/tiled,/area/template_noop) +"r" = (/obj/effect/floor_decal/corner/red{dir = 6},/obj/effect/floor_decal/corner/grey{dir = 9},/obj/structure/window/basic{dir = 4},/turf/simulated/floor/tiled,/area/template_noop) +"t" = (/obj/machinery/door/window/northleft,/obj/effect/floor_decal/stairs,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"u" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/melee/energy/axe,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"x" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/effect/floor_decal/corner/grey{dir = 9},/turf/simulated/floor/tiled,/area/template_noop) +"y" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 4},/obj/effect/floor_decal/corner/grey{dir = 1},/obj/structure/window/basic{dir = 4},/turf/simulated/floor/tiled,/area/template_noop) +"z" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/melee/energy/sword/dualsaber/green,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"A" = (/obj/structure/table/steel_reinforced,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"B" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"C" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"D" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning,/obj/structure/bed/chair/green,/turf/simulated/floor/tiled/rough,/area/template_noop) +"E" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 4},/obj/effect/floor_decal/corner/grey{dir = 1},/turf/simulated/floor/tiled,/area/template_noop) +"F" = (/obj/structure/window/reinforced{dir = 1; health = null},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/bed/chair/red{dir = 1},/turf/simulated/floor/tiled/rough,/area/template_noop) +"H" = (/obj/machinery/door/window/southright,/obj/effect/floor_decal/stairs{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"I" = (/obj/effect/floor_decal/corner/green/three_quarters{dir = 8},/obj/structure/window/basic{dir = 8},/turf/simulated/floor/tiled,/area/template_noop) +"K" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning,/obj/structure/bed/chair/red,/turf/simulated/floor/tiled/rough,/area/template_noop) +"M" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/melee/energy/axe,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"N" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"O" = (/obj/effect/floor_decal/corner/green{dir = 10},/obj/effect/floor_decal/corner/grey{dir = 5},/turf/simulated/floor/tiled,/area/template_noop) +"P" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 1},/obj/effect/floor_decal/corner/grey{dir = 8},/obj/structure/window/basic{dir = 4},/turf/simulated/floor/tiled,/area/template_noop) +"Q" = (/obj/effect/floor_decal/corner/red{dir = 10},/obj/effect/floor_decal/corner/grey{dir = 5},/turf/simulated/floor/tiled,/area/template_noop) +"R" = (/obj/effect/floor_decal/corner/red/three_quarters{dir = 8},/obj/effect/floor_decal/corner/grey,/turf/simulated/floor/tiled,/area/template_noop) +"U" = (/obj/structure/window/reinforced{dir = 1; health = null},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/bed/chair/green{dir = 1},/turf/simulated/floor/tiled/rough,/area/template_noop) +"V" = (/obj/effect/floor_decal/corner/red{dir = 9},/obj/effect/floor_decal/corner/grey{dir = 6},/turf/simulated/floor/tiled,/area/template_noop) +"W" = (/obj/machinery/door/window/southleft,/obj/effect/floor_decal/stairs{dir = 1},/turf/simulated/floor/tiled/dark/rough,/area/template_noop) +"Y" = (/obj/effect/floor_decal/corner/green{dir = 9},/obj/effect/floor_decal/corner/grey{dir = 6},/obj/structure/window/basic{dir = 8},/turf/simulated/floor/tiled,/area/template_noop) +"Z" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/melee/energy/sword/dualsaber/red,/turf/simulated/floor/tiled/dark/rough,/area/template_noop) + +(1,1,1) = {" +aaaaaaaaaa +dKKWKDHDDN +CuRqPIphMB +CuVmrYmxMB +CuVmrYmxMB +CZVmrYmxzB +CAVmrYmxAB +CogQynOEoB +bFFtFUfUUl +aaaaaaaaaa +"} diff --git a/maps/templates/holodeck_wildlife.dmm b/maps/templates/holodeck_wildlife.dmm new file mode 100644 index 00000000000..a11bed2b603 --- /dev/null +++ b/maps/templates/holodeck_wildlife.dmm @@ -0,0 +1,15 @@ +"a" = (/turf/simulated/floor/reinforced,/area/template_noop) +"K" = (/obj/effect/holodeck_effect/carp,/turf/simulated/floor/reinforced,/area/template_noop) + +(1,1,1) = {" +aaaaaaaaaa +aKaaaaaaKa +aaaaaaaaaa +aaaKaaKaaa +aaaaaaaaaa +aaaaaaaaaa +aaaKaaKaaa +aaaaaaaaaa +aKaaaaaaKa +aaaaaaaaaa +"} diff --git a/maps/~mapsystem/maps.dm b/maps/~mapsystem/maps.dm index 714651c58d7..ad97dff010c 100644 --- a/maps/~mapsystem/maps.dm +++ b/maps/~mapsystem/maps.dm @@ -60,13 +60,6 @@ var/const/MAP_HAS_RANK = 2 //Rank system, also togglable var/list/station_networks = list() // Camera networks that will show up on the console. - var/list/holodeck_programs = list() // map of string ids to /datum/holodeck_program instances - var/list/holodeck_supported_programs = list() // map of maps - first level maps from list-of-programs string id (e.g. "BarPrograms") to another map - // this is in order to support multiple holodeck program listings for different holodecks - // second level maps from program friendly display names ("Picnic Area") to program string ids ("picnicarea") - // as defined in holodeck_programs - var/list/holodeck_restricted_programs = list() // as above... but EVIL! - var/allowed_spawns = list("Arrivals Shuttle","Gateway", "Cryogenic Storage", "Cyborg Storage") var/default_spawn = "Arrivals Shuttle" var/flags = 0 diff --git a/prof.dll b/prof.dll index 298210f3934..084a8e0d901 100644 Binary files a/prof.dll and b/prof.dll differ diff --git a/rust_g.dll b/rust_g.dll index 37b7864a8f5..1dc4c6f0f63 100644 Binary files a/rust_g.dll and b/rust_g.dll differ diff --git a/sound/effects/toilet_flush.ogg b/sound/effects/toilet_flush.ogg new file mode 100644 index 00000000000..ed7b77bccc0 Binary files /dev/null and b/sound/effects/toilet_flush.ogg differ diff --git a/sound/effects/water_sizzle.ogg b/sound/effects/water_sizzle.ogg new file mode 100644 index 00000000000..90d63da5aaf Binary files /dev/null and b/sound/effects/water_sizzle.ogg differ diff --git a/sound/effects/welderactivate.ogg b/sound/effects/welderactivate.ogg new file mode 100644 index 00000000000..b1b5dece26c Binary files /dev/null and b/sound/effects/welderactivate.ogg differ diff --git a/sound/effects/welderdeactivate.ogg b/sound/effects/welderdeactivate.ogg new file mode 100644 index 00000000000..152e89f9157 Binary files /dev/null and b/sound/effects/welderdeactivate.ogg differ diff --git a/sound/machines/coffeemaker_brew.ogg b/sound/machines/coffeemaker_brew.ogg new file mode 100644 index 00000000000..a8e25c09867 Binary files /dev/null and b/sound/machines/coffeemaker_brew.ogg differ diff --git a/sound/machines/knob1.ogg b/sound/machines/knob1.ogg new file mode 100644 index 00000000000..56215731a2e Binary files /dev/null and b/sound/machines/knob1.ogg differ diff --git a/sound/machines/knob2.ogg b/sound/machines/knob2.ogg new file mode 100644 index 00000000000..b6c872bf8cc Binary files /dev/null and b/sound/machines/knob2.ogg differ diff --git a/sound/machines/knob3.ogg b/sound/machines/knob3.ogg new file mode 100644 index 00000000000..59bc39addd4 Binary files /dev/null and b/sound/machines/knob3.ogg differ diff --git a/sound/machines/lightsburnout.ogg b/sound/machines/lightsburnout.ogg new file mode 100644 index 00000000000..a7087b59ca8 Binary files /dev/null and b/sound/machines/lightsburnout.ogg differ diff --git a/sound/machines/sound_effects_light_on.ogg b/sound/machines/sound_effects_light_on.ogg new file mode 100644 index 00000000000..4a8c40b11e1 Binary files /dev/null and b/sound/machines/sound_effects_light_on.ogg differ diff --git a/sound/weapons/meathook.ogg b/sound/weapons/meathook.ogg new file mode 100644 index 00000000000..58cc7ac755e Binary files /dev/null and b/sound/weapons/meathook.ogg differ diff --git a/sql/migrate/V002_InitDonations.sql b/sql/migrate/V002_InitDonations.sql index 268516c5334..4320552cfe6 100644 --- a/sql/migrate/V002_InitDonations.sql +++ b/sql/migrate/V002_InitDonations.sql @@ -270,7 +270,7 @@ CREATE TABLE IF NOT EXISTS `runtimes` ( `date` datetime NOT NULL, `game_id` varchar(50) NOT NULL, `build_version` varchar(50) NOT NULL, - `file` varchar(50) NOT NULL, + `file` varchar(255) NOT NULL, `line` int(11) NOT NULL, `body` text NOT NULL, PRIMARY KEY (`id`) diff --git a/tgui/packages/common/color.js b/tgui/packages/common/color.js deleted file mode 100644 index 363e7d276fb..00000000000 --- a/tgui/packages/common/color.js +++ /dev/null @@ -1,62 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -const EPSILON = 0.0001 - -export class Color { - constructor (r = 0, g = 0, b = 0, a = 1) { - this.r = r - this.g = g - this.b = b - this.a = a - } - - toString () { - return `rgba(${this.r | 0}, ${this.g | 0}, ${this.b | 0}, ${this.a | 0})` - } -} - -/** - * Creates a color from the CSS hex color notation. - */ -Color.fromHex = hex => ( - new Color( - parseInt(hex.substr(1, 2), 16), - parseInt(hex.substr(3, 2), 16), - parseInt(hex.substr(5, 2), 16)) -) - -/** - * Linear interpolation of two colors. - */ -Color.lerp = (c1, c2, n) => ( - new Color( - (c2.r - c1.r) * n + c1.r, - (c2.g - c1.g) * n + c1.g, - (c2.b - c1.b) * n + c1.b, - (c2.a - c1.a) * n + c1.a) -) - -/** - * Loops up the color in the provided list of colors - * with linear interpolation. - */ -Color.lookup = (value, colors = []) => { - const len = colors.length - if (len < 2) { - throw new Error('Needs at least two colors!') - } - const scaled = value * (len - 1) - if (value < EPSILON) { - return colors[0] - } - if (value >= 1 - EPSILON) { - return colors[len - 1] - } - const ratio = scaled % 1 - const index = scaled | 0 - return Color.lerp(colors[index], colors[index + 1], ratio) -} diff --git a/tgui/packages/common/color.ts b/tgui/packages/common/color.ts new file mode 100644 index 00000000000..e202c9846d8 --- /dev/null +++ b/tgui/packages/common/color.ts @@ -0,0 +1,359 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +const EPSILON = 0.0001; + +export class Color { + r: number; + g: number; + b: number; + a: number; + + constructor(r = 0, g = 0, b = 0, a = 1) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + + toString() { + return `rgba(${this.r | 0}, ${this.g | 0}, ${this.b | 0}, ${this.a | 0})`; + } + + /** + * Creates a color from the CSS hex color notation. + */ + static fromHex(hex: string): Color { + return new Color( + parseInt(hex.substr(1, 2), 16), + parseInt(hex.substr(3, 2), 16), + parseInt(hex.substr(5, 2), 16) + ); + } + + /** + * Linear interpolation of two colors. + */ + static lerp(c1: Color, c2: Color, n: number): Color { + return new Color( + (c2.r - c1.r) * n + c1.r, + (c2.g - c1.g) * n + c1.g, + (c2.b - c1.b) * n + c1.b, + (c2.a - c1.a) * n + c1.a + ); + } + + /** + * Loops up the color in the provided list of colors + * with linear interpolation. + */ + static lookup(value: number, colors: Color[] = []): Color { + const len = colors.length; + if (len < 2) { + throw new Error("Needs at least two colors!"); + } + const scaled = value * (len - 1); + if (value < EPSILON) { + return colors[0]; + } + if (value >= 1 - EPSILON) { + return colors[len - 1]; + } + const ratio = scaled % 1; + const index = scaled | 0; + return Color.lerp(colors[index], colors[index + 1], ratio); + } +} + +/* + * MIT License + * https://github.com/omgovich/react-colorful/ + * + * Copyright (c) 2020 Vlad Shilov + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +const round = ( + number: number, + digits = 0, + base = Math.pow(10, digits) +): number => { + return Math.round(base * number) / base; +}; + +export interface RgbColor { + r: number; + g: number; + b: number; +} + +export interface RgbaColor extends RgbColor { + a: number; +} + +export interface HslColor { + h: number; + s: number; + l: number; +} + +export interface HslaColor extends HslColor { + a: number; +} + +export interface HsvColor { + h: number; + s: number; + v: number; +} + +export interface HsvaColor extends HsvColor { + a: number; +} + +export type ObjectColor = + | RgbColor + | HslColor + | HsvColor + | RgbaColor + | HslaColor + | HsvaColor; + +export type AnyColor = string | ObjectColor; + +/** + * Valid CSS units. + * https://developer.mozilla.org/en-US/docs/Web/CSS/angle + */ +const angleUnits: Record = { + grad: 360 / 400, + turn: 360, + rad: 360 / (Math.PI * 2), +}; + +export const hexToHsva = (hex: string): HsvaColor => rgbaToHsva(hexToRgba(hex)); + +export const hexToRgba = (hex: string): RgbaColor => { + if (hex[0] === "#") hex = hex.substring(1); + + if (hex.length < 6) { + return { + r: parseInt(hex[0] + hex[0], 16), + g: parseInt(hex[1] + hex[1], 16), + b: parseInt(hex[2] + hex[2], 16), + a: hex.length === 4 ? round(parseInt(hex[3] + hex[3], 16) / 255, 2) : 1, + }; + } + + return { + r: parseInt(hex.substring(0, 2), 16), + g: parseInt(hex.substring(2, 4), 16), + b: parseInt(hex.substring(4, 6), 16), + a: hex.length === 8 ? round(parseInt(hex.substring(6, 8), 16) / 255, 2) : 1, + }; +}; + +export const parseHue = (value: string, unit = "deg"): number => { + return Number(value) * (angleUnits[unit] || 1); +}; + +export const hslaStringToHsva = (hslString: string): HsvaColor => { + const matcher = + /hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i; + const match = matcher.exec(hslString); + + if (!match) return { h: 0, s: 0, v: 0, a: 1 }; + + return hslaToHsva({ + h: parseHue(match[1], match[2]), + s: Number(match[3]), + l: Number(match[4]), + a: match[5] === undefined ? 1 : Number(match[5]) / (match[6] ? 100 : 1), + }); +}; + +export const hslStringToHsva = hslaStringToHsva; + +export const hslaToHsva = ({ h, s, l, a }: HslaColor): HsvaColor => { + s *= (l < 50 ? l : 100 - l) / 100; + + return { + h: h, + s: s > 0 ? ((2 * s) / (l + s)) * 100 : 0, + v: l + s, + a, + }; +}; + +export const hsvaToHex = (hsva: HsvaColor): string => + rgbaToHex(hsvaToRgba(hsva)); + +export const hsvaToHsla = ({ h, s, v, a }: HsvaColor): HslaColor => { + const hh = ((200 - s) * v) / 100; + + return { + h: round(h), + s: round( + hh > 0 && hh < 200 + ? ((s * v) / 100 / (hh <= 100 ? hh : 200 - hh)) * 100 + : 0 + ), + l: round(hh / 2), + a: round(a, 2), + }; +}; + +export const hsvaToHslString = (hsva: HsvaColor): string => { + const { h, s, l } = hsvaToHsla(hsva); + return `hsl(${h}, ${s}%, ${l}%)`; +}; + +export const hsvaToHsvString = (hsva: HsvaColor): string => { + const { h, s, v } = roundHsva(hsva); + return `hsv(${h}, ${s}%, ${v}%)`; +}; + +export const hsvaToHsvaString = (hsva: HsvaColor): string => { + const { h, s, v, a } = roundHsva(hsva); + return `hsva(${h}, ${s}%, ${v}%, ${a})`; +}; + +export const hsvaToHslaString = (hsva: HsvaColor): string => { + const { h, s, l, a } = hsvaToHsla(hsva); + return `hsla(${h}, ${s}%, ${l}%, ${a})`; +}; + +export const hsvaToRgba = ({ h, s, v, a }: HsvaColor): RgbaColor => { + h = (h / 360) * 6; + s = s / 100; + v = v / 100; + + const hh = Math.floor(h), + b = v * (1 - s), + c = v * (1 - (h - hh) * s), + d = v * (1 - (1 - h + hh) * s), + module = hh % 6; + + return { + r: [v, c, b, b, d, v][module] * 255, + g: [d, v, v, c, b, b][module] * 255, + b: [b, b, d, v, v, c][module] * 255, + a: round(a, 2), + }; +}; + +export const hsvaToRgbString = (hsva: HsvaColor): string => { + const { r, g, b } = hsvaToRgba(hsva); + return `rgb(${round(r)}, ${round(g)}, ${round(b)})`; +}; + +export const hsvaToRgbaString = (hsva: HsvaColor): string => { + const { r, g, b, a } = hsvaToRgba(hsva); + return `rgba(${round(r)}, ${round(g)}, ${round(b)}, ${round(a, 2)})`; +}; + +export const hsvaStringToHsva = (hsvString: string): HsvaColor => { + const matcher = + /hsva?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i; + const match = matcher.exec(hsvString); + + if (!match) return { h: 0, s: 0, v: 0, a: 1 }; + + return roundHsva({ + h: parseHue(match[1], match[2]), + s: Number(match[3]), + v: Number(match[4]), + a: match[5] === undefined ? 1 : Number(match[5]) / (match[6] ? 100 : 1), + }); +}; + +export const hsvStringToHsva = hsvaStringToHsva; + +export const rgbaStringToHsva = (rgbaString: string): HsvaColor => { + const matcher = + /rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i; + const match = matcher.exec(rgbaString); + + if (!match) return { h: 0, s: 0, v: 0, a: 1 }; + + return rgbaToHsva({ + r: Number(match[1]) / (match[2] ? 100 / 255 : 1), + g: Number(match[3]) / (match[4] ? 100 / 255 : 1), + b: Number(match[5]) / (match[6] ? 100 / 255 : 1), + a: match[7] === undefined ? 1 : Number(match[7]) / (match[8] ? 100 : 1), + }); +}; + +export const rgbStringToHsva = rgbaStringToHsva; + +const format = (number: number) => { + const hex = number.toString(16); + return hex.length < 2 ? "0" + hex : hex; +}; + +export const rgbaToHex = ({ r, g, b, a }: RgbaColor): string => { + const alphaHex = a < 1 ? format(round(a * 255)) : ""; + return ( + "#" + format(round(r)) + format(round(g)) + format(round(b)) + alphaHex + ); +}; + +export const rgbaToHsva = ({ r, g, b, a }: RgbaColor): HsvaColor => { + const max = Math.max(r, g, b); + const delta = max - Math.min(r, g, b); + + // prettier-ignore + const hh = delta + ? max === r + ? (g - b) / delta + : max === g + ? 2 + (b - r) / delta + : 4 + (r - g) / delta + : 0; + + return { + h: 60 * (hh < 0 ? hh + 6 : hh), + s: max ? (delta / max) * 100 : 0, + v: (max / 255) * 100, + a, + }; +}; + +export const roundHsva = (hsva: HsvaColor): HsvaColor => ({ + h: round(hsva.h), + s: round(hsva.s), + v: round(hsva.v), + a: round(hsva.a, 2), +}); + +export const rgbaToRgb = ({ r, g, b }: RgbaColor): RgbColor => ({ r, g, b }); + +export const hslaToHsl = ({ h, s, l }: HslaColor): HslColor => ({ h, s, l }); + +export const hsvaToHsv = (hsva: HsvaColor): HsvColor => { + const { h, s, v } = roundHsva(hsva); + return { h, s, v }; +}; + +const hexMatcher = /^#?([0-9A-F]{3,8})$/i; + +export const validHex = (value: string, alpha?: boolean): boolean => { + const match = hexMatcher.exec(value); + const length = match ? match[1].length : 0; + + return ( + length === 3 || // '#rgb' format + length === 6 || // '#rrggbb' format + (!!alpha && length === 4) || // '#rgba' format + (!!alpha && length === 8) // '#rrggbbaa' format + ); +}; diff --git a/tgui/packages/tgui-panel/themes.js b/tgui/packages/tgui-panel/themes.js index 7134a2d1b57..dd18d2823c4 100644 --- a/tgui/packages/tgui-panel/themes.js +++ b/tgui/packages/tgui-panel/themes.js @@ -45,6 +45,8 @@ export const setClientTheme = (name) => { "outputwindow.text-color": "#000000", "mainwindow.background-color": "none", "mainvsplit.background-color": "none", + "statusbar.background-color": "none", + "statusbar.text-color": "#000000", // Buttons "changelog.background-color": "none", "changelog.text-color": "#000000", @@ -65,12 +67,6 @@ export const setClientTheme = (name) => { "output.text-color": "#000000", "statwindow.background-color": "none", "statwindow.text-color": "#000000", - "stat.background-color": "#FFFFFF", - "stat.tab-background-color": "none", - "stat.text-color": "#000000", - "stat.tab-text-color": "#000000", - "stat.prefix-color": "#000000", - "stat.suffix-color": "#000000", "asset_cache_browser.background-color": "none", "asset_cache_browser.text-color": "#000000", // Say, OOC, me Buttons etc. @@ -102,6 +98,8 @@ export const setClientTheme = (name) => { "outputwindow.text-color": COLOR_DARK_TEXT, "mainwindow.background-color": COLOR_DARK_BG, "mainvsplit.background-color": COLOR_DARK_BG, + "statusbar.background-color": COLOR_DARK_BG, + "statusbar.text-color": COLOR_DARK_TEXT, // Buttons "changelog.background-color": "#494949", "changelog.text-color": COLOR_DARK_TEXT, @@ -122,12 +120,6 @@ export const setClientTheme = (name) => { "output.text-color": COLOR_DARK_TEXT, "statwindow.background-color": COLOR_DARK_BG_DARKER, "statwindow.text-color": COLOR_DARK_TEXT, - "stat.background-color": COLOR_DARK_BG_DARKER, - "stat.tab-background-color": COLOR_DARK_BG, - "stat.text-color": COLOR_DARK_TEXT, - "stat.tab-text-color": COLOR_DARK_TEXT, - "stat.prefix-color": COLOR_DARK_TEXT, - "stat.suffix-color": COLOR_DARK_TEXT, "asset_cache_browser.background-color": COLOR_DARK_BG, "asset_cache_browser.text-color": COLOR_DARK_TEXT, // Say, OOC, me Buttons etc. diff --git a/tgui/packages/tgui/components/Interactive.tsx b/tgui/packages/tgui/components/Interactive.tsx new file mode 100644 index 00000000000..87c85462f57 --- /dev/null +++ b/tgui/packages/tgui/components/Interactive.tsx @@ -0,0 +1,153 @@ +/** + * MIT License + * https://github.com/omgovich/react-colorful/ + * + * Copyright (c) 2020 Vlad Shilov + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import { clamp } from "common/math"; +import { Component, InfernoNode, createRef, RefObject } from "inferno"; + +export interface Interaction { + left: number; + top: number; +} + +// Finds the proper window object to fix iframe embedding issues +const getParentWindow = (node?: HTMLDivElement | null): Window => { + return (node && node.ownerDocument.defaultView) || self; +}; + +// Returns a relative position of the pointer inside the node's bounding box +const getRelativePosition = ( + node: HTMLDivElement, + event: MouseEvent +): Interaction => { + const rect = node.getBoundingClientRect(); + const pointer = event as MouseEvent; + return { + left: clamp( + (pointer.pageX - (rect.left + getParentWindow(node).pageXOffset)) / + rect.width, + 0, + 1 + ), + top: clamp( + (pointer.pageY - (rect.top + getParentWindow(node).pageYOffset)) / + rect.height, + 0, + 1 + ), + }; +}; + +export interface InteractiveProps { + onMove: (interaction: Interaction) => void; + onKey: (offset: Interaction) => void; + children: InfernoNode[]; + style?: any; +} + +export class Interactive extends Component { + containerRef: RefObject; + props: InteractiveProps; + + constructor(props: InteractiveProps) { + super(); + this.props = props; + this.containerRef = createRef(); + } + + handleMoveStart = (event: MouseEvent) => { + const el = this.containerRef?.current; + if (!el) return; + + // Prevent text selection + event.preventDefault(); + el.focus(); + this.props.onMove(getRelativePosition(el, event)); + this.toggleDocumentEvents(true); + }; + + handleMove = (event: MouseEvent) => { + // Prevent text selection + event.preventDefault(); + + // If user moves the pointer outside of the window or iframe bounds and release it there, + // `mouseup`/`touchend` won't be fired. In order to stop the picker from following the cursor + // after the user has moved the mouse/finger back to the document, we check `event.buttons` + // and `event.touches`. It allows us to detect that the user is just moving his pointer + // without pressing it down + const isDown = event.buttons > 0; + + if (isDown && this.containerRef?.current) { + this.props.onMove(getRelativePosition(this.containerRef.current, event)); + } else { + this.toggleDocumentEvents(false); + } + }; + + handleMoveEnd = () => { + this.toggleDocumentEvents(false); + }; + + handleKeyDown = (event: KeyboardEvent) => { + const keyCode = event.which || event.keyCode; + + // Ignore all keys except arrow ones + if (keyCode < 37 || keyCode > 40) return; + // Do not scroll page by arrow keys when document is focused on the element + event.preventDefault(); + // Send relative offset to the parent component. + // We use codes (37←, 38↑, 39→, 40↓) instead of keys ('ArrowRight', 'ArrowDown', etc) + // to reduce the size of the library + this.props.onKey({ + left: keyCode === 39 ? 0.05 : keyCode === 37 ? -0.05 : 0, + top: keyCode === 40 ? 0.05 : keyCode === 38 ? -0.05 : 0, + }); + }; + + toggleDocumentEvents(state?: boolean) { + const el = this.containerRef?.current; + const parentWindow = getParentWindow(el); + + // Add or remove additional pointer event listeners + const toggleEvent = state + ? parentWindow.addEventListener + : parentWindow.removeEventListener; + toggleEvent("mousemove", this.handleMove); + toggleEvent("mouseup", this.handleMoveEnd); + } + + componentDidMount() { + this.toggleDocumentEvents(true); + } + + componentWillUnmount() { + this.toggleDocumentEvents(false); + } + + render() { + return ( +
    + {this.props.children} +
    + ); + } +} diff --git a/tgui/packages/tgui/components/Pointer.tsx b/tgui/packages/tgui/components/Pointer.tsx new file mode 100644 index 00000000000..1aaf63ab55b --- /dev/null +++ b/tgui/packages/tgui/components/Pointer.tsx @@ -0,0 +1,46 @@ +/** + * MIT License + * https://github.com/omgovich/react-colorful/ + * + * Copyright (c) 2020 Vlad Shilov + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import { classes } from "common/react"; +import { InfernoNode } from "inferno"; + +interface PointerProps { + className?: string; + top?: number; + left: number; + color: string; +} + +export const Pointer = ({ + className, + color, + left, + top = 0.5, +}: PointerProps): InfernoNode => { + const nodeClassName = classes(["react-colorful__pointer", className]); + + const style = { + top: `${top * 100}%`, + left: `${left * 100}%`, + }; + + return ( +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/components/index.js b/tgui/packages/tgui/components/index.js index b195a5110de..aa0d95ea664 100644 --- a/tgui/packages/tgui/components/index.js +++ b/tgui/packages/tgui/components/index.js @@ -22,6 +22,7 @@ export { Flex } from "./Flex"; export { Grid } from "./Grid"; export { Icon } from "./Icon"; export { InfinitePlane } from "./InfinitePlane"; +export { Interactive } from "./Interactive"; export { Input } from "./Input"; export { Knob } from "./Knob"; export { LabeledControls } from "./LabeledControls"; @@ -31,6 +32,7 @@ export { NoticeBox } from "./NoticeBox"; export { NumberInput } from "./NumberInput"; export { ProgressBar } from "./ProgressBar"; export { Popper } from "./Popper"; +export { Pointer } from "./Pointer"; export { RestrictedInput } from "./RestrictedInput"; export { RoundGauge } from "./RoundGauge"; export { Section } from "./Section"; diff --git a/tgui/packages/tgui/interfaces/ColorPickerModal.tsx b/tgui/packages/tgui/interfaces/ColorPickerModal.tsx new file mode 100644 index 00000000000..c8e73817844 --- /dev/null +++ b/tgui/packages/tgui/interfaces/ColorPickerModal.tsx @@ -0,0 +1,674 @@ +/** + * @file + * @copyright 2023 itsmeow + * @license MIT + */ + +import { Loader } from "./common/Loader"; +import { useBackend, useLocalState } from "../backend"; +import { + Autofocus, + Box, + Flex, + Section, + Stack, + Pointer, + NumberInput, + Tooltip, +} from "../components"; +import { Window } from "../layouts"; +import { clamp } from "common/math"; +import { + hexToHsva, + HsvaColor, + hsvaToHex, + hsvaToHslString, + hsvaToRgba, + rgbaToHsva, + validHex, +} from "common/color"; +import { Interaction, Interactive } from "tgui/components/Interactive"; +import { classes } from "common/react"; +import { Component, FocusEvent, FormEvent, InfernoNode } from "inferno"; +import { logger } from "tgui/logging"; +import { InputButtons } from "./common/InputButtons"; + +type ColorPickerData = { + autofocus: boolean; + buttons: string[]; + message: string; + large_buttons: boolean; + swapped_buttons: boolean; + timeout: number; + title: string; + default_color: string; +}; + +export const ColorPickerModal = (_, context) => { + const { data } = useBackend(context); + const { + timeout, + message, + title, + autofocus, + default_color = "#000000", + } = data; + let [selectedColor, setSelectedColor] = useLocalState( + context, + "color_picker_choice", + hexToHsva(default_color) + ); + + return ( + + {!!timeout && } + + + {message && ( + +
    + + {message} + +
    +
    + )} + +
    + {!!autofocus && } + +
    +
    + + + +
    +
    +
    + ); +}; + +export const ColorSelector = ( + { + color, + setColor, + defaultColor, + }: { color: HsvaColor; setColor; defaultColor: string }, + context +) => { + const handleChange = (params: Partial) => { + setColor((current: HsvaColor) => { + return Object.assign({}, current, params); + }); + }; + const rgb = hsvaToRgba(color); + const hexColor = hsvaToHex(color); + return ( + + + + +
    + + +
    +
    + + + Current + + + Previous + +
    + + + + + + +
    +
    +
    + + + + + + Hex: + + + { + logger.info(value); + setColor(hexToHsva(value)); + }} + prefixed + /> + + + + + + + + H: + + + + + + handleChange({ h: v })} + max={360} + unit="°" + /> + + + + + + + S: + + + + + + handleChange({ s: v })} + unit="%" + /> + + + + + + + V: + + + + + + handleChange({ v: v })} + unit="%" + /> + + + + + + + + R: + + + + + + { + rgb.r = v; + handleChange(rgbaToHsva(rgb)); + }} + max={255} + /> + + + + + + + G: + + + + + + { + rgb.g = v; + handleChange(rgbaToHsva(rgb)); + }} + max={255} + /> + + + + + + + B: + + + + + + { + rgb.b = v; + handleChange(rgbaToHsva(rgb)); + }} + max={255} + /> + + + + + +
    + ); +}; + +const TextSetter = ({ + value, + callback, + min = 0, + max = 100, + unit, +}: { + value: number; + callback: any; + min?: number; + max?: number; + unit?: string; +}) => { + return ( + + ); +}; + +/** + * MIT License + * https://github.com/omgovich/react-colorful/ + * + * Copyright (c) 2020 Vlad Shilov + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +interface HexColorInputProps + extends Omit { + /** Enables `#` prefix displaying */ + prefixed?: boolean; + /** Allows `#rgba` and `#rrggbbaa` color formats */ + alpha?: boolean; +} + +/** Adds "#" symbol to the beginning of the string */ +const prefix = (value: string) => "#" + value; + +export const HexColorInput = (props: HexColorInputProps): InfernoNode => { + const { prefixed, alpha, color, fluid, onChange, ...rest } = props; + + /** Escapes all non-hexadecimal characters including "#" */ + const escape = (value: string) => + value.replace(/([^0-9A-F]+)/gi, "").substring(0, alpha ? 8 : 6); + + /** Validates hexadecimal strings */ + const validate = (value: string) => validHex(value, alpha); + + return ( + + ); +}; + +interface ColorInputBaseProps { + fluid?: boolean; + color: string; + onChange: (newColor: string) => void; + /** Blocks typing invalid characters and limits string length */ + escape: (value: string) => string; + /** Checks that value is valid color string */ + validate: (value: string) => boolean; + /** Processes value before displaying it in the input */ + format?: (value: string) => string; +} + +export class ColorInput extends Component { + props: ColorInputBaseProps; + state: { localValue: string }; + + constructor(props: ColorInputBaseProps) { + super(); + this.props = props; + this.state = { localValue: this.props.escape(this.props.color) }; + } + + // Trigger `onChange` handler only if the input value is a valid color + handleInput = (e: FormEvent) => { + const inputValue = this.props.escape(e.currentTarget.value); + this.setState({ localValue: inputValue }); + }; + + // Take the color from props if the last typed color (in local state) is not valid + handleBlur = (e: FocusEvent) => { + if (e.currentTarget) { + if (!this.props.validate(e.currentTarget.value)) { + this.setState({ localValue: this.props.escape(this.props.color) }); // return to default; + } else { + this.props.onChange( + this.props.escape + ? this.props.escape(e.currentTarget.value) + : e.currentTarget.value + ); + } + } + }; + + componentDidUpdate(prevProps, prevState): void { + if (prevProps.color !== this.props.color) { + // Update the local state when `color` property value is changed + this.setState({ localValue: this.props.escape(this.props.color) }); + } + } + + render() { + return ( + +
    .
    + +
    + ); + } +} + +const SaturationValue = ({ hsva, onChange }) => { + const handleMove = (interaction: Interaction) => { + onChange({ + s: interaction.left * 100, + v: 100 - interaction.top * 100, + }); + }; + + const handleKey = (offset: Interaction) => { + // Saturation and brightness always fit into [0, 100] range + onChange({ + s: clamp(hsva.s + offset.left * 100, 0, 100), + v: clamp(hsva.v - offset.top * 100, 0, 100), + }); + }; + + const containerStyle = { + "background-color": `${hsvaToHslString({ + h: hsva.h, + s: 100, + v: 100, + a: 1, + })} !important`, + }; + + return ( +
    + + + +
    + ); +}; + +const Hue = ({ + className, + hue, + onChange, +}: { + className?: string; + hue: number; + onChange: (newHue: { h: number }) => void; +}) => { + const handleMove = (interaction: Interaction) => { + onChange({ h: 360 * interaction.left }); + }; + + const handleKey = (offset: Interaction) => { + // Hue measured in degrees of the color circle ranging from 0 to 360 + onChange({ + h: clamp(hue + offset.left * 360, 0, 360), + }); + }; + + const nodeClassName = classes(["react-colorful__hue", className]); + + return ( +
    + + + +
    + ); +}; + +const Saturation = ({ + className, + color, + onChange, +}: { + className?: string; + color: HsvaColor; + onChange: (newSaturation: { s: number }) => void; +}) => { + const handleMove = (interaction: Interaction) => { + onChange({ s: 100 * interaction.left }); + }; + + const handleKey = (offset: Interaction) => { + // Hue measured in degrees of the color circle ranging from 0 to 100 + onChange({ + s: clamp(color.s + offset.left * 100, 0, 100), + }); + }; + + const nodeClassName = classes(["react-colorful__saturation", className]); + + return ( +
    + + + +
    + ); +}; + +const Value = ({ + className, + color, + onChange, +}: { + className?: string; + color: HsvaColor; + onChange: (newValue: { v: number }) => void; +}) => { + const handleMove = (interaction: Interaction) => { + onChange({ v: 100 * interaction.left }); + }; + + const handleKey = (offset: Interaction) => { + onChange({ + v: clamp(color.v + offset.left * 100, 0, 100), + }); + }; + + const nodeClassName = classes(["react-colorful__value", className]); + + return ( +
    + + + +
    + ); +}; + +const RGBSlider = ({ + className, + color, + onChange, + target, +}: { + className?: string; + color: HsvaColor; + onChange: (newValue: HsvaColor) => void; + target: string; +}) => { + const rgb = hsvaToRgba(color); + + const setNewTarget = (value: number) => { + rgb[target] = value; + onChange(rgbaToHsva(rgb)); + }; + + const handleMove = (interaction: Interaction) => { + setNewTarget(255 * interaction.left); + }; + + const handleKey = (offset: Interaction) => { + setNewTarget(clamp(rgb[target] + offset.left * 255, 0, 255)); + }; + + const nodeClassName = classes([`react-colorful__${target}`, className]); + + let selected = + target === "r" + ? `rgb(${Math.round(rgb.r)},0,0)` + : target === "g" + ? `rgb(0,${Math.round(rgb.g)},0)` + : `rgb(0,0,${Math.round(rgb.b)})`; + + return ( +
    + + + +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/DetectiveGuncase.tsx b/tgui/packages/tgui/interfaces/DetectiveGuncase.tsx new file mode 100644 index 00000000000..4eff26bed56 --- /dev/null +++ b/tgui/packages/tgui/interfaces/DetectiveGuncase.tsx @@ -0,0 +1,71 @@ +import { useBackend } from "../backend"; +import { Button, NoticeBox, Section, Stack } from "../components"; +import { Window } from "../layouts"; +import { LockData, LockMenu } from "./LockedSafe"; + +interface GunData { + gunName: string; + gunDesc: string; +} + +interface Data extends LockData { + chosenGun: string; + chosenGunDesc: string; + gunSpawned: boolean; + possibleGuns: GunData[]; +} + +export const DetectiveGuncase = (props: any, context: any) => { + const { act, data } = useBackend(context); + + return ( + + + + + + Be careful! Once you chose your weapon and unlock the gun case, + you won't be able to change it. + + + + + + +
    + + {data.possibleGuns.map((gun, i) => ( + + + + ))} + +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/Guncase.tsx b/tgui/packages/tgui/interfaces/Guncase.tsx new file mode 100644 index 00000000000..89ad1e21060 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Guncase.tsx @@ -0,0 +1,72 @@ +import { useBackend } from "../backend"; +import { Button, NoticeBox, Section, Stack } from "../components"; +import { Window } from "../layouts"; + +interface GunData { + gunName: string; + gunDesc: string; +} + +interface Data { + title: string; + chosenGun: string; + chosenGunDesc: string; + gunSpawned: boolean; + possibleGuns: GunData[]; +} + +export const Guncase = (props: any, context: any) => { + const { act, data } = useBackend(context); + + return ( + + + + + + It can be locked and unlocked by swiping your ID card across the + lock. + + + Be careful! Once you chose your weapon and unlock the gun case, + you won't be able to change it. + + + + + +
    + + {data.possibleGuns.map((gun) => ( + + + + ))} + +
    +
    + +
    + {data.chosenGunDesc} +
    +
    +
    +
    +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/Holodeck.tsx b/tgui/packages/tgui/interfaces/Holodeck.tsx new file mode 100644 index 00000000000..0c369051cff --- /dev/null +++ b/tgui/packages/tgui/interfaces/Holodeck.tsx @@ -0,0 +1,161 @@ +import { BooleanLike } from "common/react"; +import { Window } from "../layouts"; +import { useBackend } from "../backend"; +import { + Box, + Button, + Flex, + Icon, + Modal, + NoticeBox, + Stack, +} from "../components"; +import { toTitleCase } from "common/string"; + +interface Data { + isLocked: BooleanLike; + canToggleSafety: BooleanLike; + isSafetyDisabled: BooleanLike; + isGravityDisabled: BooleanLike; + currentProgram: string; + programs: Program[]; + emag_programs: Program[]; +} + +interface Program { + id: string; + name: string; +} + +export const Holodeck = (props: any, context: any) => { + const { act, data } = useBackend(context); + const { + isLocked, + canToggleSafety, + isSafetyDisabled, + isGravityDisabled, + currentProgram, + programs, + } = data; + + return ( + + + + + + + act("toggleSafety")} + /> + + + act("toggleGravity")} + /> + + + act("toggleLock")} + /> + + + + + + {programs.length > 0 ? ( + programs.map((program, index) => ( + + + + ))} + + + + + + {shownCategory?.recipes.map((recipe) => ( + + + + ))} + + + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/RapidConstructionDevice.tsx b/tgui/packages/tgui/interfaces/RapidConstructionDevice.tsx index 4c45c732942..f440a8958fa 100644 --- a/tgui/packages/tgui/interfaces/RapidConstructionDevice.tsx +++ b/tgui/packages/tgui/interfaces/RapidConstructionDevice.tsx @@ -33,6 +33,7 @@ type Category = { type Design = { title: string; + type: string; icon: string; }; @@ -109,7 +110,7 @@ const DesignSection = (props: any, context: any) => { height="32px" color="transparent" selected={ - design.title === selected_design && + design.type === selected_design && shownCategory.cat_name === selected_category } onClick={() => diff --git a/tgui/packages/tgui/interfaces/Turret.tsx b/tgui/packages/tgui/interfaces/Turret.tsx index 94ec6c5ca1f..5a6e75a88bb 100644 --- a/tgui/packages/tgui/interfaces/Turret.tsx +++ b/tgui/packages/tgui/interfaces/Turret.tsx @@ -175,7 +175,7 @@ export const TurretSettings = (props: TurretSettingsProps, context: any) => {